Carl-Daniel Hailfinger wrote:
On 01.09.2009 22:15, Rudolf Marek wrote:
On 01.09.2009 15:00, Arnaud Maye wrote:
I've been implementing the ACPI for the ep80579 and so far it is not
going very well. Linux refuses to boot unless I use acpi=off or
acpi=ht as boot parameters. acpi=ht seems to display my ACPI ioports
in proc/ioports as expected ( the ioports addresses are all mapped to
the ACPI BAR ). Without to disable acpi the kernel complains that the
0xE0000000 range is not a reserved  range and the MMCONF is not
supported and then hangs.
It should not hang. The complain is only about e820 map is not
reserved. I made recently a small patch for this for K8M890. Simply
the problem seems elsewhere to me.

But if MMCONF is not seen as active, the kernel might allocate something
else in that area. If the ACPI code uses MMCONF for PCI accesses, this
means the ACPI code will write/read with undefined side effects.
Besides that, if you forgot to (re)activate MMCONFIG inside coreboot,
you might see similar effects. I was fighting with RS690 code which
enabled MMCONF, used it for a few accesses, then disabled it again, but
the ACPI code tried to use MMCONF anyway. Effect were SATA problems/hangs.
Besides that, enabling MMCONF in the chipset may break some classic PCI
accesses. For example, if I enable MMCONF in the chipset and if the
kernel doesn't accept it due to missing reservation, my network card
fails because it uses extended config space for storing the MAC and
other stuff. When MMCONFIG in the chipset is disabled, it works, so
there must be some further interaction (maybe enabling MMCONFIG breaks
other access methods to extended config space).

Regards,
Carl-Daniel

Hello Guys,

So actually, I've been able to prevent linux complaining about non reserved 0xe0000000 range via
add_mainboard_resource().

With the intel firmware dev kit pointed by Myles I've been able to remove all the obvious ACPI issues. I've enabled the HPET in the chipset and modified the acpi_tables.c file to create that table
as well as the MADT table.

The kernel hangs around the sata! Actually the system hang for a minute and then start to display:
-------------------------------------------------------------------------------------------------
ata1.00: exception Emask 0x0 SAct 0x0 Srr 0x0 action 0x2 frozen
ata1.00: cmd a0/00:00:00:24:00/00:00:00:00:00/a0 tag 0 pio 36 in
ata1.00: status: { DRDY }
...
ata2.00: exception Emask 0x0 DAct 0x0 SErr 0x0 action 0x2 frozen
ata2.00: cmd c8/00:08:00:00:00/00:00:00:00:00/e0 tag 0 dma 4096 in
ata2.00: status: { DRDY }
...
ata1: WARNING: synchronous SCSI scan failed without making any progress,
...
Buffer I/O error on device sda, logical block 0
...

Just before the system to hang, seabios displays :
-------------------------------------------------
fail handle_legacy_disk:845(1):
  a=ffff0201  b=00000d00  c=00000001  d=47530081 ds=9000 es=9000 ss=9000
 si=fff0fff0 di=0009fff0 bp=00001ff0 sp=00008ff8 cs=9020 ip=1015  f=0283
fail handle_legacy_disk:845(1):
  a=ffff415a  b=000055aa  c=0000fe03  d=47530081 ds=9000 es=9000 ss=9000
 si=fff00d5a di=00090000 bp=00001ff0 sp=00008ffe cs=9020 ip=1043  f=0293


Here is the lspci for both legacy and coreboot :
-----------------------------------------------
legacy :
00:1f.2 IDE interface: Intel Corporation EP80579 S-ATA IDE (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
   Subsystem: Intel Corporation EP80579 S-ATA IDE
   Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 58
   I/O ports at f080 [size=8]
   I/O ports at f070 [size=4]
   I/O ports at f060 [size=8]
   I/O ports at f050 [size=4]
   I/O ports at f040 [size=16]
   Memory at d0100000 (32-bit, non-prefetchable) [size=1K]
   Capabilities: [70] Power Management version 2

00:1f.2 IDE interface: Intel Corporation EP80579 S-ATA IDE (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
   Subsystem: Intel Corporation Unknown device 2680
   Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 145
   I/O ports at 2410 [size=8]
   I/O ports at 2420 [size=4]
   I/O ports at 2418 [size=8]
   I/O ports at 2424 [size=4]
   I/O ports at 2400 [size=16]
   Memory at d4a07400 (32-bit, non-prefetchable) [size=1K]
   Capabilities: [70] Power Management version 2

Actually same except io ports are located another place and the subsystem IDs is set differently by the driver. I do
not think the last one would cause any troubles.

So am not sure where is the problem here, booting with acpi=off does not show any sata issue.

Any help/pointers are welcome,

Thank you

Arnaud











*


*

--
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to