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 on simnow.
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.
Thanks, Scott