[U-Boot] [PATCH v2 0/4] x86: Add platform PIRQ routing
Bin Meng
bmeng.cn at gmail.com
Fri Apr 24 12:10:02 CEST 2015
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.
Changes in v2:
- Correct a typo in the commit message
- Use a local variable in fill_irq_info()
- Print a debug message if creating pirq table fails
- Use a C structure for RCBA register access
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 | 242 +++++++++++++++++++++++++++
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 | 39 ++++-
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, 868 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
More information about the U-Boot
mailing list