Although by default (without pci=nomsi in the kernel bootline) Linux device drivers try to use MSI for device's interrupt generation, there are still some devices which only support INTx generation. Currently U-Boot on some x86 boards do not configure those devices' IRQ and route them to 8259 PIC, so when Linux kernel boots up it complains:
pci 0000:00:17.0: can't find IRQ for PCI INT A; please try using pci=biosirq This series adds the platform PIRQ routing support, so that all PCI devices found are set up to route their INTx correctly to 8259 PIC (the so-called PIC mode, as defined in the Multi-Processor Sepcification v1.4). A new Kconfig option GENERATE_PIRQ_TABLE is introduced to control whether U-Boot needs to generate a PIRQ routing table for OS to use. Bin Meng (4): x86: Add a function to assign IRQ numbers to PCI device x86: Write configuration tables in last_stage_init() x86: Support platform PIRQ routing x86: queensbay: Implement PIRQ routing arch/x86/Kconfig | 31 ++++ arch/x86/cpu/cpu.c | 10 ++ arch/x86/cpu/pci.c | 21 +++ arch/x86/cpu/queensbay/Makefile | 2 +- arch/x86/cpu/queensbay/irq.c | 236 +++++++++++++++++++++++++++ arch/x86/cpu/queensbay/tnc.c | 10 +- arch/x86/include/asm/arch-queensbay/device.h | 94 +++++++++++ arch/x86/include/asm/arch-queensbay/irq.h | 55 +++++++ arch/x86/include/asm/arch-queensbay/tnc.h | 26 ++- arch/x86/include/asm/pci.h | 14 ++ arch/x86/include/asm/pirq_routing.h | 139 ++++++++++++++++ arch/x86/include/asm/tables.h | 49 ++++++ arch/x86/include/asm/u-boot-x86.h | 2 + arch/x86/lib/Makefile | 2 + arch/x86/lib/pirq_routing.c | 129 +++++++++++++++ arch/x86/lib/tables.c | 30 ++++ configs/crownbay_defconfig | 1 + include/configs/crownbay.h | 1 + include/configs/x86-common.h | 1 + 19 files changed, 849 insertions(+), 4 deletions(-) create mode 100644 arch/x86/cpu/queensbay/irq.c create mode 100644 arch/x86/include/asm/arch-queensbay/device.h create mode 100644 arch/x86/include/asm/arch-queensbay/irq.h create mode 100644 arch/x86/include/asm/pirq_routing.h create mode 100644 arch/x86/include/asm/tables.h create mode 100644 arch/x86/lib/pirq_routing.c create mode 100644 arch/x86/lib/tables.c -- 1.8.2.1 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot