[coreboot] H8QME-2+ IRQ assignment and AMD 8132

Knut Kujat knuku at gap.upv.es
Mon Jan 11 11:24:17 CET 2010

Knut Kujat escribió:
> Hello,
> over this week I've tried to do a proper IRQ assignment on the H8QME-2+
> I've got here. So opened mp_tables.c and started changing the irq
> routing values with those I got form the board booting with a factory
> bios. Then I started giving the devices the irq they have when boot with
> factory bios and it booted without any problems except for two things
> first of all the two NICs still have irq 0 and thats because they are
> not pending on the mcp55 as they are on the "donator" board but on a AMD
> 8132 tunnel devices that is hanging on a different node:
> socketF(node3) ----------- socketF(node2)
>    |                                        |    
> socketF(node1) ----------- socketF(node0)
>    |                                        |
>    |ht                                     |ht
>    |                                        |
> AMD8132                    MCP55
>    |--  LAN                            |
>    |-- SCSI                           |-- SATA
>                                             |-- ATI ES 1000
>                                             |-- USB
>                                             |-- PCI
>                                             | lpc
>                                          SIO
> I started adding the AMD8132 to the get_bus_conf.c code, by adding I
> mean stealing code from other boards pasting it to get_bus_conf and
> trying to make it work ;). So the problem there is that coreboot won't
> boot with the new code but not because the code is incorrect because it
> wasn't even executed, I know that because coreboot soft resets in middle
> of cpu initialization. I already increased Stack size up to 0x10000 more
> makes the boot sequence fail.
> My second problem is the, irq_tables.c code I tried to customize for
> this board. I first tried the handy tool that comes with coreboot that
> auto-generates the irq_tables.c file but it doesn't compile with my
> board but I at least was able to use the information to modify the
> already existing irq_tables.c. So before doing changes the dump_irq
> output look like that:
> Interrupt routing table found at address 0xf55bb:
>   Version 106.117, size 0x8366
>   Interrupt router is device 3d:17.4
>   PCI exclusive interrupt mask: 0x0fde [1,2,3,4,6,7,8,9,10,11]
>   Compatible router: vendor 0x0000 device 0x6075
> Device d2:00.2 (slot 106):
>   INTA: link 0x54, irq mask 0x0005 [0,2]
>   INTB: link 0x40, irq mask 0xc839 [0,3,4,5,11,14,15]
>   INTC: link 0x72, irq mask 0x84f7 [0,1,2,4,5,6,7,10,15]
>   INTD: link 0xd2, irq mask 0x4275 [0,2,4,5,6,9,14]
> Device 83:19.2 (slot 195):
>   INTA: link 0xff, irq mask 0x74b8 [3,4,5,7,10,12,13,14]
>   INTB: link 0x74, irq mask 0x000f [0,1,2,3]
>   INTC: link 0xe8, irq mask 0x9f77 [0,1,2,4,5,6,8,9,10,11,12,15]
>   INTD: link 0xff, irq mask 0x89ff [0,1,2,3,4,5,6,7,8,11,15]
>                                      ....
> Interrupt router at 3d:17.4:
> Could not read router info from /proc/bus/pci/3d/17.4.
> and after compiling with the new irq_tables.c I've got the exact same
> output! So no changes were applied, I cleaned everything before
> compiling so no doubt I compiled the correct file. So why is it still
> the same? (I attached a dump_irq output from the board with factory bios).
> And last but not least, at linux bootup it complains to find only 2 cpus
> but 16 cores later doing a lspci I can see all 4 cpus (18.0, 19,0 1a.0,
> 1b.0) and Linux only recognizes 8GB of ram but there are 16GB installed!
> Thanks in advanced and have a nice weekend,
> Knut Kujat.

I fixed the 2 cpu and just 8 GB ram issues, now linux finds all 4 cpus
and 16 GB.
But I'm still having trouble adding AMD 8132 for giving the NICs IRQ.

Knut Kujat.

More information about the coreboot mailing list