[coreboot] Patch for Nokia-IP530, now with working PIRQ table, patch on 5591
Peter Stuge
peter at stuge.se
Thu May 27 02:27:04 CEST 2010
mbertens wrote:
> +++ src/arch/i386/boot/pirq_routing.c (working copy)
> @@ -121,7 +121,11 @@
>
> printk(BIOS_DEBUG, "INT: %c link: %x bitmap: %x ",
> 'A' + j, link, bitmap);
> -
> + // fix made by Marc Bertens <mbertens at xs4all.nl>
> + if (link > 0x5f) {
> + // This is basically for the 440BX
> + link -= 0x5f;
> + }
Um, except that I gave you that code.
It is a bit of a hack. So far this file and function is actually only
called by Geode LX mainboards, and I don't quite understand why.
Maybe something equivalent of this code is invoked in other ways in
all the other boards? The gist of pirq_routing_irqs() is to call
pci_assign_irqs() and pirq_assign_irqs(). How
There are various other solutions to calling pci_assign_irqs() on
other boards:
northbridge/via/cx700/cx700_lpc.c
northbridge/via/vx800/vx800_lpc.c
southbridge/via/vt8231/vt8231_lpc.c
southbridge/via/vt8235/vt8235_lpc.c
southbridge/via/vt8237r/vt8237r_lpc.c
mainboard/amd/serengeti/cheetah/irq_tables.c
mainboard/msi/ms7135/irq_tables.c
mainboard/olpc/btest/mainboard.c
mainboard/tyan/s2882/irq_tables.c
mainboard/iwill/dk8_htx/irq_tables.c
mainboard/emulation/qemu-x86/mainboard.c
mainboard/technologic/ts5300/mainboard.c
mainboard/digitallogic/msm586seg/mainboard.c
I have fairly strong opinion about those call sites being so
different (maybe due to ignorance) but more importantly what are the
other boards doing? There seems to be a large number of non-Geode
systems not in the list above where pci_assign_irqs() is never
called. The doxygen for the function says:
"This function should be called for each PCI slot in your system."
What gives? Can we find a generic solution to this interrupt problem?
//Peter
More information about the coreboot
mailing list