[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