[coreboot] coreboot and win7
scott at notabs.org
Tue Sep 14 01:37:35 CEST 2010
I am able to boot Win7 using coreboot+seabios on a couple of AMD SB700 systems.
Testing so far is with simnow only. Hopefully someone else can try the changes
on a real board. I am still building with UMA disabled and using external PCI
video instead, to avoid a payload/acpi table overlap problem. I have tested
with Tilapia family 10h and Mahogany family 10h on simnow using Win7 PE
edition (see attached). Usually a pass with this setup means real hardware
will work, and other Win7 editions will work as well. Here are the changes:
1) Fix BSOD about "this bios is not fully acpi compliant". Windows makes this
BSOD because DRAM is reported both by E820 and by SB ACPI _CRS. Also, there
is a reference to undefined ACPI object TOM2. Removing the reporting of DRAM
from ACPI _CRS solves these problems.
2) SB I/O APIC ID: Coreboot programs ID zero, which conflicts with processor
cores. ACPI reports ID 2, which conflicts with processor cores. Win7
reprograms to match ACPI. The conflict seems harmless, at least with simnow
testing. I gave the I/O APIC a unique ID just to be sure.
3) PS/2 KB and mouse were missing from ACPI which causes Win7 to ignore them.
I added them.
Other patches I used, unrelated to Win7:
1) Avoid an essentially infinite PCI bus scan when a bad dev_fn value is
passed in from hypertransport.c. It is not clear if this can happen only
2) Patch to allow use of gcc 4.5.0.
I looked briefly at the Cheetah Win7 BSOD with coreboot+seabios. Win7
sees ACPI SCI_EN is zero, telling it to enable ACPI mode. But SMI_CMD
is zero, so it can't enable ACPI mode. The BSOD results. Setting SCI_EN
before Win7 launch avoids the BSOD, but causes the animated logo phase
to not complete in a reasonable amount of time. I may not debug this
one further because the chipset is no longer current.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 273043 bytes
Desc: not available
More information about the coreboot