Hi folks,
It works! On my m57sli board the 2 PCI slots are functional.
The problem I had the last week came from the fact that I used a (very) old version of FILO and I haven't noticed that in the recent releases of coreboot the configuration flag HAVE_HIGH_TABLES was active by default => filo wasn't able to find the lb_table => no valid e820 table for linux.
This being said I think that the irq problem on m57sli is fixed now (I haven't yet tested the PCIe slots because I have no pcie boards for testing..)
Now it remains the ACPI problem.. Harald (or someone else..), can you brielfly remind me what I have to do to enable acpi in coreboot and how to extract and integrate acpi tables (I know, I know, I have to RTFM but this could save me some time and Im so lazy.. ;-))
Congrats anyway for your great work Harald, Florentin
Quoting Harald Gutmann harald.gutmann@gmx.net:
On Thursday 11 June 2009 10:28:51 you wrote:
Hi Harald,
Hello Florentin!
Thanks for testing this patch, but it seems to me, that you did somewhere a mistake.
I begun to test your patch (against the coreboot revision 4350) but unfortunately linux crashes after booting with your coreboot patch on my machine. :/ Unfortunately I cannot send you any debug logs right now, but I will do it this evening when I return home (Im at work right now). The only informations that I can give you is that I used a 64 bit kernel (2.6.20) and the behaviour of the kernel seems like an "IRQ storm" to me.. (the acpi was not activated in linux, but in coreboot I dont know..)
You need to test this patch against a clean coreboot tree, without any ACPI support for M57SLI. The problem which I also ran into with this patch is: When ACPI is activated in Coreboot with the vendors dstd.asl the interrupt routing is different to the interrupts set in mptable.c.
This means that Linux is not able to boot, because it normally prefers ACPI interrupt routing, and then the IRQ's which are set correctly in the ACPI tables don't fit to what is set in the interrupt registers.
If you are interested in the details have a look at http://www.coreboot.org/Nvidia_MCP55_Porting_Notes.
The registers from 0x7c-0x84 in mptable.c are set up with pci_write_config32 in mptable.c. There you can assign the IRQ's like you want to the different devices on the mainboard. This can be done as you like, but you have to adjust all the PCI_INT (for mptable) and ACPI IRQ routing stuff so that it fits to those registers. The wiring is in that case what you need to look at. (Porting Notes)
Problem with activated ACPI: The ACPI IRQ routing does not fit to the patched 0x7c-0x84 registers, and therefore you get what you called "IRQ Storm" (which means that no device get's is IRQ like it should; keep in mind that linux always prefers ACPI tables instead of falling back to a correct mptable it gives you those errors.)
I didn't miss that you wrote "acpi was not activated in linux", but i strongly believe that it was not completle deactivated.
So, please try my patch with a clean coreboot tree, and it should work well!
Regards, Florentin Demetrescu
Regards, Harald
PS: Please be so kindly and CC the list at least when talking about patches of coreboot.
Quoting Harald Gutmann harald.gutmann@gmx.net:
Hello,
after a few tries of me to fix the interrupt problems which occurred on the M57SLI here is the final patch from me.
The Patch fixes the following issues on M57SLI:
- Interrupt routing in the MPTable
which affects the following hardware parts:
- PCI-E 16x Slots (blue and black) - both are working now like a charm
- PCI-E 1x Slots - all three should be fine, but I have no card to test.
(untested)
- PCI Slots - both work fine now.
This is the first and (hopefully) the last patch on this issue which gets a
Signed-off-by: Harald Gutmann harald.gutmann@gmx.net
from me.
I'm really looking forward to commit this patch (which is my first one) and mark the interrupt issues on the wiki page to the M57SLI as solved. :)
Kind regards, Harald Gutmann