[coreboot] Problems about booting windows xp
Rudolf Marek
r.marek at assembler.cz
Mon Feb 16 23:00:01 CET 2009
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I ran also acpiexec util on it, here is what I found.
First I will present how PCI0 _CRS method looks on MINE Asus M2V-MX SE, this
works with windows...
[00] 16-Bit WORD Address Space Resource
Resource Type : Bus Number Range
Consumer/Producer : ResourceProducer
Address Decode : PosDecode
Min Relocatability : MinFixed
Max Relocatability : MaxFixed
Granularity : 0000
Address Minimum : 0000
Address Maximum : 0005
Translation Offset : 0000
Address Length : 0006
Resource Source Index : 00
Resource Source : [Not Specified]
[01] 32-Bit DWORD Address Space Resource
Resource Type : I/O Range
Range Type : EntireRange
Translation : TypeStatic
Translation Type : DenseTranslation
Consumer/Producer : ResourceProducer
Address Decode : PosDecode
Min Relocatability : MinFixed
Max Relocatability : MaxFixed
Granularity : 00000000
Address Minimum : 000003B0
Address Maximum : 000003DF
Translation Offset : 00000000
Address Length : 00000030
Resource Source Index : 00
Resource Source : [Not Specified]
[02] 32-Bit DWORD Address Space Resource
Resource Type : I/O Range
Range Type : EntireRange
Translation : TypeStatic
Translation Type : DenseTranslation
Consumer/Producer : ResourceProducer
Address Decode : PosDecode
Min Relocatability : MinFixed
Max Relocatability : MaxFixed
Granularity : 00000000
Address Minimum : 00000D00
Address Maximum : 00001FFF
Translation Offset : 00000000
Address Length : 00001300
Resource Source Index : 00
Resource Source : [Not Specified]
[03] 32-Bit DWORD Address Space Resource
Resource Type : Memory Range
Write Protect : ReadWrite
Caching : NonCacheable
Range Type : AddressRangeMemory
Translation : TypeStatic
Consumer/Producer : ResourceProducer
Address Decode : PosDecode
Min Relocatability : MinFixed
Max Relocatability : MaxFixed
Granularity : 00000000
Address Minimum : C0000000
Address Maximum : DFFFFFFF
Translation Offset : 00000000
Address Length : 20000000
Resource Source Index : 00
Resource Source : [Not Specified]
[04] 32-Bit DWORD Address Space Resource
Resource Type : Memory Range
Write Protect : ReadWrite
Caching : NonCacheable
Range Type : AddressRangeMemory
Translation : TypeStatic
Consumer/Producer : ResourceProducer
Address Decode : PosDecode
Min Relocatability : MinFixed
Max Relocatability : MaxFixed
Granularity : 00000000
Address Minimum : E0000000
Address Maximum : F12FFFFF
Translation Offset : 00000000
Address Length : 11300000
Resource Source Index : 00
Resource Source : [Not Specified]
[05] 32-Bit DWORD Address Space Resource
Resource Type : Memory Range
Write Protect : ReadWrite
Caching : NonCacheable
Range Type : AddressRangeMemory
Translation : TypeStatic
Consumer/Producer : ResourceProducer
Address Decode : PosDecode
Min Relocatability : MinFixed
Max Relocatability : MaxFixed
Granularity : 00000000
Address Minimum : 000A0000
Address Maximum : 000BFFFF
Translation Offset : 00000000
Address Length : 00020000
Resource Source Index : 00
Resource Source : [Not Specified]
[06] I/O Resource
Address Decoding : Decode16
Address Minimum : 0CF8
Address Maximum : 0CF8
Alignment : 01
Address Length : 08
[07] 16-Bit WORD Address Space Resource
Resource Type : I/O Range
Range Type : EntireRange
Translation : TypeStatic
Translation Type : DenseTranslation
Consumer/Producer : ResourceProducer
Address Decode : PosDecode
Min Relocatability : MinFixed
Max Relocatability : MaxFixed
Granularity : 0000
Address Minimum : 0000
Address Maximum : 0CF7
Translation Offset : 0000
Address Length : 0CF8
Resource Source Index : 00
Resource Source : [Not Specified]
[08] EndTag Resource
See, there is no RAM mentioned at all. Just PCI decode ranges from CPU as well
the PCI IO ranges. Also please note that:
LEN = MAX - MIN + 1
This is needed for Windows.
And here what you have for your board:
acpixtract -a data.txt
./acpiexec ./DSDT.dat
- - resources \_SB_.PCI0
[00] I/O Resource
Address Decoding : Decode16
Address Minimum : 0CF8
Address Maximum : 0CF8
Alignment : 01
Address Length : 08
[01] 16-Bit WORD Address Space Resource
Resource Type : I/O Range
Range Type : EntireRange
Translation : TypeStatic
Translation Type : DenseTranslation
Consumer/Producer : ResourceProducer
Address Decode : PosDecode
Min Relocatability : MinFixed
Max Relocatability : MaxFixed
Granularity : 0000
Address Minimum : 0000
Address Maximum : 0CF7
Translation Offset : 0000
Address Length : 0CF8
Resource Source Index : 00
Resource Source : [Not Specified]
[02] 16-Bit WORD Address Space Resource
Resource Type : I/O Range
Range Type : EntireRange
Translation : TypeStatic
Translation Type : DenseTranslation
Consumer/Producer : ResourceProducer
Address Decode : PosDecode
Min Relocatability : MinFixed
Max Relocatability : MaxFixed
Granularity : 0000
Address Minimum : 0D00
Address Maximum : FFFF
Translation Offset : 0000
Address Length : F300
Resource Source Index : 00
Resource Source : [Not Specified]
[03] 32-Bit Fixed Memory Range Resource
Write Protect : ReadWrite
Address : 00000000
Address Length : 000A0000
[04] 32-Bit Fixed Memory Range Resource
Write Protect : ReadOnly
Address : 000A0000
Address Length : 00020000
[05] 32-Bit Fixed Memory Range Resource
Write Protect : ReadOnly
Address : 000C0000
Address Length : 00020000
[06] 32-Bit Fixed Memory Range Resource
Write Protect : ReadOnly
Address : 000E0000
Address Length : 00020000
[07] 32-Bit Fixed Memory Range Resource
Write Protect : ReadWrite
Address : 00100000
Address Length : 3FF00000
I think this does not agree the e820 map here, because of the ACPI tables. Also
both below are empty. No good?
[08] 32-Bit DWORD Address Space Resource
Resource Type : Memory Range
Write Protect : ReadWrite
Caching : Cacheable
Range Type : AddressRangeMemory
Translation : TypeStatic
Consumer/Producer : ResourceProducer
Address Decode : PosDecode
Min Relocatability : MinFixed
Max Relocatability : MaxFixed
Granularity : 00000000
Address Minimum : 00000000
Address Maximum : 00000000
Translation Offset : 00000000
Address Length : 00000000
Resource Source Index : 00
Resource Source : [Not Specified]
[09] 64-Bit QWORD Address Space Resource
Resource Type : Memory Range
Write Protect : ReadWrite
Caching : Cacheable
Range Type : AddressRangeMemory
Translation : TypeStatic
Consumer/Producer : ResourceProducer
Address Decode : PosDecode
Min Relocatability : MinFixed
Max Relocatability : MaxFixed
Granularity : 00000000FFFFFFFF
Address Minimum : 0000000000000000
Address Maximum : 0000000000000000
Translation Offset : 0000000000000000
Address Length : 0000000000000000
Resource Source Index : 00
Resource Source : [Not Specified]
[0A] 64-Bit QWORD Address Space Resource
Resource Type : Memory Range
Write Protect : ReadWrite
Caching : Cacheable
Range Type : AddressRangeMemory
Translation : TypeStatic
Consumer/Producer : ResourceProducer
Address Decode : PosDecode
Min Relocatability : MinFixed
Max Relocatability : MaxFixed
Granularity : 00000000FFFFFFFF
Address Minimum : 0000000000000000
Address Maximum : 0000000000000000
Translation Offset : 0000000000000000
Address Length : 0000000000000000
Resource Source Index : 00
Resource Source : [Not Specified]
I would suggest just to start with totally artificial and static _CRS returned
object, similar what is in QEMU:
http://bochs.sourceforge.net/cgi-bin/lxr/source/bios/acpi-dsdt.dsl
Just grab it and fill all resources manually. (edit the MEMP so all fields are
valid for your HW, then just put into _CRS Return (MEMP), without any
computations). Then try to boot windows. Once it works you can play with the
generic runtime adjustments.
Thanks,
Rudolf
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iEYEARECAAYFAkmZ4d8ACgkQ3J9wPJqZRNVKUACgn4rbrxdPEzEFE5zjdit1cbFB
4QgAn3U/bM2FOs+Vg91AD48jEMxZ4odF
=+C4j
-----END PGP SIGNATURE-----
More information about the coreboot
mailing list