[coreboot] Problems about booting windows xp
Wang, Qingpei
Qingpei.Wang at amd.com
Thu Mar 5 12:49:52 CET 2009
Hi Rudolf,
I changed the dsdt.asl which take M2V-MX as an example.
Now it stopped rebooting, but after the window xp scroll bar it
hangs up, which supposed to show the log in screen. I am wondering
if there is any another places should be fixed.
And also in /src/arch/i386/boot/tables.c( function: write_tables line92)
I changed rom_table_start=((512-64)*1024*1024)-64*1024 followed by an
patch,
May be it is wrong ,which address should I changed in this places?
Jason Wang
BeiJing Technology Development Center
Advanced Micro Devices (AMD)
-----Original Message-----
From: Rudolf Marek [mailto:r.marek at assembler.cz]
Sent: Tuesday, February 17, 2009 6:00 AM
To: Wang, Qingpei
Cc: Carl-Daniel Hailfinger; Coreboot; Perley, Tim
Subject: Re: [coreboot] Problems about booting windows xp
-----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