[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