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.