[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