[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.
>
Hello,
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.
THX,
Knut Kujat.
More information about the coreboot
mailing list