Nico Huber has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/43851 )
Change subject: skylake boards: Factor out copy-pasted PIRQ routes ......................................................................
Patch Set 1:
(1 comment)
Just a note, that on the KBL-U board [1], Linux does not list IRQ 11 in `/proc/interrupts` with the vendor firmware.
You would have to disable APICs (and I guess SMP) to make use of these PIRQ routes.
https://review.coreboot.org/c/coreboot/+/43851/1/src/soc/intel/skylake/irq.c File src/soc/intel/skylake/irq.c:
https://review.coreboot.org/c/coreboot/+/43851/1/src/soc/intel/skylake/irq.c... PS1, Line 257: : for (irq_dev = all_devices; irq_dev; irq_dev = irq_dev->next) { : u8 int_pin = 0, int_line = 0; : : if (!irq_dev->enabled || irq_dev->path.type != DEVICE_PATH_PCI) : continue; : : int_pin = pci_read_config8(irq_dev, PCI_INTERRUPT_PIN); : : switch (int_pin) { : case 1: /* INTA# */ : int_line = config->pirqa_routing; : break; : case 2: /* INTB# */ : int_line = config->pirqb_routing; : break; : case 3: /* INTC# */ : int_line = config->pirqc_routing; : break; : case 4: /* INTD# */ : int_line = config->pirqd_routing; : break; : } : : if (!int_line) : continue; : : pci_write_config8(irq_dev, PCI_INTERRUPT_LINE, int_line); : } Should we just kill this? If you compare the results with reasonable values for the registers you got yourself an entropy generator (not a good one).
For integrated devices, the ACPI generator in sb/intel/common/ gives some hints. For downstream PCIe devices, one has to walk the links and apply swizzling. For PCI too, but the mapping for the slots on the PCI bridge is board specific.
If we drop the 10 for PIRQB, we could also just put 11 everywhere.