[coreboot] Asus M2V-MX memory init

Darmawan Salihun darmawan.salihun at gmail.com
Thu Feb 23 12:58:42 CET 2012


Hi guys,

Does this have something to do with remapping the RAM "shadowed" by
PCI devices to above 4GB?

Anyway, I haven't know yet whether Coreboot remaps RAM "shadowed" by
PCI devices.

Regards,

Darmawan

On 2/22/12, Peter Stuge <peter at stuge.se> wrote:
> David Hillman wrote:
>> It looks like I am missing something to properly initialize memory
>> to get correct SPD info.  Maybe SMBUS isn't working properly?
>
> I think SMBUS is OK and memory init too. Here's the diff between your
> two logs with some comments, but there may be more relevant stuff
> than what I see.
>
> Next time when posting logs please make sure that they do not wrap.
> One good way is to send them as attachments, under all circumstances
> with text/plain mime type.
>
>
> --- m2v_mx-2g	2012-02-22 04:13:21.309138502 +0100
> +++ m2v_mx-4g	2012-02-22 04:13:02.663139149 +0100
> @@ -1,4 +1,4 @@
> -coreboot-4.0-2000-g91be49b-dirty Mon Feb 20 22:44:53 EST 2012 starting...
> +coreboot-4.0-2000-g91be49b-dirty Wed Feb 15 22:11:37 EST 2012 starting...
>  now booting...
>  Enabling routing table for node 00 done.
>  Enabling UP settings
> @@ -47,16 +47,21 @@
>  sdram_set_spd_registers: paramx :000ceee8
>  Device error
>  Device error
> -Device error
> +Enabling dual channel memory
>  Unbuffered
>  400MHz
>  400MHz
>  Interleaved
> -RAM end at 0x00200000 kB
> +RAM end at 0x00400000 kB
>  Ram3
>  IN TEST WAKEUP
>  800Initializing memory:  done
>  Setting variable MTRR 2, base:    0MB, range: 2048MB, type WB
> +Setting variable MTRR 3, base: 2048MB, range: 1024MB, type WB
> +Setting variable MTRR 4, base: 3072MB, range:  512MB, type WB
> +Setting variable MTRR 5, base: 3584MB, range:  256MB, type WB
> +Setting variable MTRR 6, base: 3840MB, range:  128MB, type WB
> +Setting variable MTRR 7, base: 3968MB, range:   64MB, type WB
>  DQS Training:RcvrEn:Pass1: 00
>   CTLRMaxDelay=1d
>   done
> @@ -68,41 +73,45 @@
>  TrainDQSPos: MutualCSPassW[48] :000ce828
>  TrainDQSPos: MutualCSPassW[48] :000ce828
>  TrainDQSPos: MutualCSPassW[48] :000ce828
> +TrainDQSPos: MutualCSPassW[48] :000ce828
> +TrainDQSPos: MutualCSPassW[48] :000ce828
> +TrainDQSPos: MutualCSPassW[48] :000ce828
> +TrainDQSPos: MutualCSPassW[48] :000ce828
>   done
>  DQS Training:RcvrEn:Pass2: 00
> - CTLRMaxDelay=43
> + CTLRMaxDelay=34
>   done
>  DQS SAVE NVRAM: c2000
>  Writing 113222 of size 4 to nvram pos: 0
> -Writing 17161515 of size 4 to nvram pos: 4
> +Writing 17151515 of size 4 to nvram pos: 4
>  Writing 17171615 of size 4 to nvram pos: 8
>  Writing 15 of size 1 to nvram pos: 12
>  Writing 202520 of size 4 to nvram pos: 13
> -Writing 17171918 of size 4 to nvram pos: 17
> -Writing 17191718 of size 4 to nvram pos: 21
> +Writing 18171819 of size 4 to nvram pos: 17
> +Writing 18181718 of size 4 to nvram pos: 21
>  Writing 17 of size 1 to nvram pos: 25
> -Writing 33 of size 1 to nvram pos: 26
> +Writing 32 of size 1 to nvram pos: 26
>  Writing 0 of size 1 to nvram pos: 27
>  Writing 0 of size 1 to nvram pos: 28
>  Writing 0 of size 1 to nvram pos: 29
> -Writing 111222 of size 4 to nvram pos: 30
> -Writing 0 of size 4 to nvram pos: 34
> -Writing 0 of size 4 to nvram pos: 38
> -Writing 0 of size 1 to nvram pos: 42
> -Writing 0 of size 4 to nvram pos: 43
> -Writing 2f2f2f2f of size 4 to nvram pos: 47
> -Writing 2f2f2f2f of size 4 to nvram pos: 51
> -Writing 0 of size 1 to nvram pos: 55
> -Writing 43 of size 1 to nvram pos: 56
> +Writing 113222 of size 4 to nvram pos: 30
> +Writing 15141615 of size 4 to nvram pos: 34
> +Writing 15141515 of size 4 to nvram pos: 38
> +Writing 15 of size 1 to nvram pos: 42
> +Writing 202520 of size 4 to nvram pos: 43
> +Writing 17191818 of size 4 to nvram pos: 47
> +Writing 18191716 of size 4 to nvram pos: 51
> +Writing 16 of size 1 to nvram pos: 55
> +Writing 34 of size 1 to nvram pos: 56
>  Writing 0 of size 1 to nvram pos: 57
>  Writing 0 of size 1 to nvram pos: 58
>  Writing 0 of size 1 to nvram pos: 59
> -Writing 741080ab of size 4 to nvram pos: 60
> -DQS Training:tsc[00]=000000005eac6acb
> -DQS Training:tsc[01]=000000006087914d
> -DQS Training:tsc[02]=0000000060879156
> -DQS Training:tsc[03]=00000000df309c2e
> -DQS Training:tsc[04]=00000000f2a194b3
> +Writing 7410809b of size 4 to nvram pos: 60
> +DQS Training:tsc[00]=000000008cbdd63c
> +DQS Training:tsc[01]=000000008f476e2e
> +DQS Training:tsc[02]=000000008f476e37
> +DQS Training:tsc[03]=000000015b152149
> +DQS Training:tsc[04]=000000016daed79e
>  Ram4
>  v_esp=000cef28
>  testx = 5a5a5a5a
> @@ -121,7 +130,7 @@
>  0x100000
>  Stage: done loading.
>  Jumping to image.
> -coreboot-4.0-2000-g91be49b-dirty Mon Feb 20 22:44:53 EST 2012 booting...
> +coreboot-4.0-2000-g91be49b-dirty Wed Feb 15 22:11:37 EST 2012 booting...
>  Enumerating buses...
>  Show all devs...Before device enumeration.
>  Root Device: enabled 1
> @@ -147,7 +156,7 @@
>  PNP: 002e.8: enabled 0
>  PNP: 002e.9: enabled 0
>  PNP: 002e.a: enabled 0
> -PCI: 00:12.0: enabled 0
> +PCI: 00:12.0: enabled 1
>
> Why is 12.0 enabled with 4G? What is 12.0?
>
>
>  PCI: 00:13.0: enabled 1
>  PCI: 00:13.1: enabled 1
>  PCI: 00:18.1: enabled 1
> @@ -177,7 +186,7 @@
>      PNP: 002e.8: enabled 0
>      PNP: 002e.9: enabled 0
>      PNP: 002e.a: enabled 0
> -   PCI: 00:12.0: enabled 0
> +   PCI: 00:12.0: enabled 1
>     PCI: 00:13.0: enabled 1
>     PCI: 00:13.1: enabled 1
>    PCI: 00:18.1: enabled 1
> @@ -265,7 +274,7 @@
>  PCI: 00:00.2 [1106/2336] ops
>  PCI: 00:00.2 [1106/2336] enabled
>  PCI: 00:00.3 [1106/3336] ops
> -K8M890: UMA base is 7e000000 size is 32 (MB)
> +K8M890: UMA base is fa000000 size is 32 (MB)
>   VIA_X_3 device dump:
>  00: 06 11 36 33 06 00 00 02 00 00 00 06 00 00 00 00
>  10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> @@ -275,7 +284,7 @@
>  50: 22 22 00 00 00 00 e4 00 00 00 00 00 00 00 00 00
>  60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> -80: ff ff ff 30 00 80 19 00 80 00 00 00 00 00 00 00
> +80: ff ff ff 30 00 fc 19 00 fc 00 00 00 00 00 00 00
>  90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  a0: 00 80 00 00 00 00 3f 00 00 00 00 00 00 00 00 00
>  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> @@ -363,7 +372,7 @@
>  d0: 50 00 00 00 02 00 00 00 00 00 00 00 08 00 02 a8
>  e0: 00 0b 01 9a f8 00 00 00 00 00 00 00 00 00 00 00
>  f0: 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00
> -PCI: 00:03.0 PCIe link up after 15000 us
> +PCI: 00:03.0 PCIe link up after 15100 us
>  00: 06 11 38 c2 00 00 10 00 00 00 04 06 00 00 01 00
>  10: 00 00 00 00 00 00 00 00 00 00 00 00 f0 00 00 00
>  20: f0 ff 00 00 f1 ff 01 00 00 00 00 00 00 00 00 00
> @@ -399,6 +408,7 @@
>  PCI: 00:11.0 [1106/3337] enabled
>  PCI: 00:11.7 [1106/287e] ops
>  PCI: 00:11.7 [1106/287e] enabled
> +PCI: Static device PCI: 00:12.0 not found, disabling it.
>  Capability: type 0x08 @ 0x60
>  Capability: type 0x0d @ 0x70
>  Capability: type 0x08 @ 0x60
> @@ -978,10 +988,10 @@
>  PCI: 00:13.1 allocate_resources_mem: next_base: febfffff size: 0 align: 20
>  gran: 20 done
>  Root Device assign_resources, bus 0 link: 0
> -node 0 : uma_memory_base/1024=0x001f8000, mmio_basek=0x00300000,
> -basek=0x00000300, limitk=0x00200000
> -node 0: UMA memory starts below mmio_basek
> -0: mmio_basek=00300000, basek=00000300, limitk=00200000
> +node 0 : uma_memory_base/1024=0x003e8000, mmio_basek=0x00300000,
> +basek=0x00000300, limitk=0x00400000
> + split: 1088K table at =f9ef0000
> +0: mmio_basek=00300000, basek=00300000, limitk=00400000
>  Adding UMA memory area
>  PCI_DOMAIN: 0000 assign_resources, bus 0 link: 0
>  amdk8_set_resource, enabling legacy VGA IO forwarding for PCI: 00:18.0 link
> @@ -1114,9 +1124,11 @@
>  limit febfffff flags 40040200 index 10000100
>    PCI_DOMAIN: 0000 resource base 0 size a0000 align 0 gran 0 limit 0 flags
> e0004200 index 10
> -  PCI_DOMAIN: 0000 resource base c0000 size 7df40000 align 0 gran 0 limit 0
> +  PCI_DOMAIN: 0000 resource base c0000 size bff40000 align 0 gran 0 limit 0
> flags e0004200 index 20
> -  PCI_DOMAIN: 0000 resource base 7e000000 size 2000000 align 0 gran 0 limit
> +  PCI_DOMAIN: 0000 resource base c0000000 size 3fffe000000 align 0 gran 0
> limit 0 flags e0004200 index 30
> +  PCI_DOMAIN: 0000 resource base fa000000 size 2000000 align 0 gran 0 limit
> 0 flags f0000200 index 7
>
> The size for the c0000000 domain is crazy. This is worth looking into
> further. I did some manual line unwrapping above. The email had extra
> line endings damaging the log messages. It will be easier for you if
> you fix that.
>
>
>     PCI: 00:18.0 child on link 0 PCI: 00:00.0
>     PCI: 00:18.0 resource base 1000 size 2000 align 12 gran 12 limit ffff
> @@ -1368,7 +1380,9 @@
>  DONE fixed MTRRs
>  Setting variable MTRR 0, base:    0MB, range: 2048MB, type WB
>  ADDRESS_MASK_HIGH=0xff
> -Setting variable MTRR 1, base: 2016MB, range:   32MB, type UC
> +Setting variable MTRR 1, base: 2048MB, range: 1024MB, type WB
> +ADDRESS_MASK_HIGH=0xff
> +Setting variable MTRR 2, base: 4000MB, range:   32MB, type UC
>
> Find out why the 32 MB framebuffer ends at TOM on 2GB, but ends at
> TOM-64MB on 4GB, what the top 64MB is for. Hopefully PCI resources
> but 64MB is unexpectedly small for that. Investigate.
>
>
>  ADDRESS_MASK_HIGH=0xff
>  DONE variable MTRRs
>  Clear out the extra MTRR's
> @@ -1493,7 +1507,7 @@
>  60: 00 00 00 00 00 00 00 04 80 00 d0 fe 80 00 00 00
>  70: 43 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  80: 20 84 49 00 b2 30 00 00 01 05 00 00 05 18 00 00
> -90: 00 06 19 88 a0 cc 00 00 00 3a 00 00 00 00 00 00
> +90: 00 04 99 88 a0 cc 00 02 00 3a 00 00 00 00 00 00
>  a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  c0: 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00
> @@ -1506,7 +1520,7 @@
>  20: 00 00 00 00 00 00 00 00 00 00 00 00 06 11 7e 33
>  30: 00 00 00 00 58 00 00 00 00 00 00 00 00 00 00 00
>  40: f4 24 00 80 82 00 00 00 23 3b 88 80 82 44 00 43
> -50: 00 03 33 03 00 04 01 80 08 00 01 80 00 00 00 00
> +50: 00 03 33 03 00 04 01 fc 08 00 01 80 00 00 00 00
>  60: 00 ff ff 30 30 00 00 00 00 00 00 00 00 00 00 00
>  70: c2 c8 ee 01 3c 0f 50 48 01 00 00 00 77 00 00 12
>  80: 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> @@ -1605,14 +1619,14 @@
>  PCI: 03:00.0: enabled 1
>  PCI: 04:01.0: enabled 1
>  cbmem_initialize: acpi_slp_type=0
> -Initializing CBMEM area to 0x7def0000 (1114112 bytes)
> -Adding CBMEM entry as no. 1
> -Moving GDT to 7def0200...ok
> -High Tables Base is 7def0000.
> -Adding CBMEM entry as no. 2
> -ACPI: Writing ACPI tables at 7def0400...
> +Initializing CBMEM area to 0xf9ef0000 (1114112 bytes)
> +ERROR: CBMEM was not initialized yet.
> +Error: Could not relocate GDT.
> +High Tables Base is f9ef0000.
> +ERROR: CBMEM was not initialized yet.
>
> This is very bad. Investigate. The CBMEM code should be easy to
> follow.
>
>
> +ACPI: Writing ACPI tables at f0000...
>  ACPI:     * FACS
> -ACPI:     * DSDT @ 7def0540 Length ba5
> +ACPI:     * DSDT @ 000f0140 Length ba5
>
> So with 2GB ACPI tables are written high, with 4GB because CBMEM
> fails they end up in F-segment.
>
>
>  ACPI:     * FADT
>  ACPI: added table 1/32, length now 40
>  ACPI:    * HPET
> @@ -1626,7 +1640,9 @@
>  set_srat_mem: dev PCI_DOMAIN: 0000, res->index=0010 startk=00000000,
>  sizek=00000280
> -set_srat_mem: dev PCI_DOMAIN: 0000, res->index=0020 startk=00000300,
> sizek=001f7d00
> +set_srat_mem: dev PCI_DOMAIN: 0000, res->index=0020 startk=00000300,
> sizek=002ffd00
> +set_srat_mem: dev PCI_DOMAIN: 0000, res->index=0030 startk=00300000,
> sizek=ffff8000
>
> At least the last one is bogus.
>
>
>  ACPI: added table 5/32, length now 56
>  ACPI:    * SLIT
>  ACPI: added table 6/32, length now 60
> @@ -1645,9 +1661,8 @@
>  1100mv Pstate_power[4] = 169141mw
>  ACPI: added table 7/32, length now 64
>  ACPI: done.
> -ACPI tables: 4677 bytes.
> -Adding CBMEM entry as no. 3
> -smbios_write_tables: 7defb800
> +ERROR: CBMEM was not initialized yet.
> +smbios_write_tables: 000f1400
>  Root Device (ASUS M2V-MX Mainboard)
>  APIC_CLUSTER: 0 (AMD K8 Root Complex)
>  APIC: 00 (Socket AM2 CPU)
> @@ -1697,36 +1712,37 @@
>  PCI: 01:00.0 ()
>  PCI: 03:00.0 ()
>  PCI: 04:01.0 ()
> -SMBIOS tables: 277 bytes.
> -Adding CBMEM entry as no. 4
> +SMBIOS size 277 bytes
> +ERROR: CBMEM was not initialized yet.
>  Writing high table forward entry at 0x00000500
> -Wrote coreboot table at: 00000500 - 00000518  checksum c1ee
> +Wrote coreboot table at: 00000500 - 00000518  checksum eaaf
>  New low_table_end: 0x00000518
> -Now going to write high coreboot table at 0x7defc000
> -rom_table_end = 0x7defc000
> +Now going to write high coreboot table at 0x000f1520
> +rom_table_end = 0x000f1520
>  Adjust low_table_end from 0x00000518 to 0x00001000
> -Adjust rom_table_end from 0x7defc000 to 0x7df00000
> +Adjust rom_table_end from 0x000f1520 to 0x00100000
>  Adding high table area
>  coreboot memory table:
>   0. 0000000000000000-0000000000000fff: CONFIGURATION TABLES
>   1. 0000000000001000-000000000009ffff: RAM
> - 2. 00000000000c0000-000000007deeffff: RAM
> - 3. 000000007def0000-000000007dffffff: CONFIGURATION TABLES
> - 4. 000000007e000000-000000007fffffff: RESERVED
> - 5. 00000000e0000000-00000000efffffff: RESERVED
> - 6. 00000000fec00000-00000000fec000ff: RESERVED
> - 7. 00000000fecc0000-00000000fecc00ff: RESERVED
> - 8. 00000000ff000000-00000000ffffffff: RESERVED
> -Wrote coreboot table at: 7defc000 - 7defc214  checksum 336b
> -coreboot table: 532 bytes.
> -Adding CBMEM entry as no. 5
> + 2. 00000000000c0000-00000000000effff: RAM
> + 3. 00000000000f0000-00000000000fffff: CONFIGURATION TABLES
> + 4. 0000000000100000-00000000bfffffff: RAM
> + 5. 00000000c0000000-00000000dfffffff: RAM
> + 6. 00000000e0000000-00000000efffffff: RESERVED
> + 7. 00000000f0000000-00000000f9eeffff: RAM
> + 8. 00000000f9ef0000-00000000f9ffffff: CONFIGURATION TABLES
> + 9. 00000000fa000000-00000000fbffffff: RESERVED
> +10. 00000000fc000000-00000000febfffff: RAM
> +11. 00000000fec00000-00000000fec000ff: RESERVED
> +12. 00000000fec00100-00000000fecbffff: RAM
> +13. 00000000fecc0000-00000000fecc00ff: RESERVED
> +14. 00000000fecc0100-00000000feffffff: RAM
> +15. 00000000ff000000-00000000ffffffff: RESERVED
> +16. 0000000100000000-00000400bdffffff: RAM
>
> Here, coreboot says that you have almost 4 TB of RAM. Investigate.
>
>
> +Wrote coreboot table at: 000f1520 - 000f17d4  checksum f32e
> +ERROR: CBMEM was not initialized yet.
>  Multiboot Information structure has been written.
> - 0. FREE SPACE 7dffe000 00002000
> - 1. GDT        7def0200 00000200
> - 2. ACPI       7def0400 0000b400
> - 3. SMBIOS     7defb800 00000800
> - 4. COREBOOT   7defc000 00002000
> - 5. ACPI RESUME7defe000 00100000
>  Searching for fallback/payload
>  Check cmos_layout.bin
>  Check pci1106,3230.rom
> @@ -1737,26 +1753,30 @@
>  Loading segment from rom address 0xfffad538
>    data (compression=1)
> -  New segment dstaddr 0xe6b54 memsize 0x194ac srcaddr 0xfffad570 filesize
> 0xc8aa
> -  (cleaned up) New segment addr 0xe6b54 size 0x194ac offset 0xfffad570
> filesize 0xc8aa
> +  New segment dstaddr 0xe6b54 memsize 0x194ac srcaddr 0xfffad570 filesize
> 0xc8ba
> +  (cleaned up) New segment addr 0xe6b54 size 0x194ac offset 0xfffad570
> filesize 0xc8ba
>  Loading segment from rom address 0xfffad554
>    Entry Point 0x00000000
> -Loading Segment: addr: 0x00000000000e6b54 memsz: 0x00000000000194ac filesz:
> -0x000000000000c8aa
> -lb: [0x0000000000100000, 0x0000000000198000)
> -Post relocation: addr: 0x00000000000e6b54 memsz: 0x00000000000194ac filesz:
> -0x000000000000c8aa
> -using LZMA
> -[ 0x000e6b54, 00100000, 0x00100000) <- fffad570
> -dest 000e6b54, end 00100000, bouncebuffer 7ddc0000
> -Loaded segments
> -Jumping to boot code at fc8e4
> -entry    = 0x000fc8e4
> -lb_start = 0x00100000
> -lb_size  = 0x00098000
> -adjust   = 0x7dd58000
> -buffer   = 0x7ddc0000
> -     elf_boot_notes = 0x001270c8
> -adjusted_boot_notes = 0x7de7f0c8
> -Start bios (version 1.6.3-20120215_224505-debby)
> +No matching ram area found for range:
> +  [0x00000000000e6b54, 0x0000000000100000)
>
> And finally instead of the "Start bios" message from SeaBIOS it's not
> possible to load the payload to it's address, because..
>
>
> +Ram areas
> +  [0x0000000000000000, 0x0000000000001000) Reserved
> +  [0x0000000000001000, 0x00000000000a0000) RAM
> +  [0x00000000000c0000, 0x00000000000f0000) RAM
> +  [0x00000000000f0000, 0x0000000000100000) Reserved
>
> ..the F segment has been marked reserved, because this is where the
> ACPI tables were written to, because the highmem address was not
> available, because CBMEM failed to initialize.
>
>
> The error isn't really with hardware init I believe, but with
> calculation, generation and preparation of system description data
> for the payload and later the operating system. You need to find out
> why coreboot gets upset with 4G of memory.
>
>
> //Peter
>
> --
> coreboot mailing list: coreboot at coreboot.org
> http://www.coreboot.org/mailman/listinfo/coreboot
>


-- 
--------------------------------------------------------------------
-= Human knowledge belongs to the world =-




More information about the coreboot mailing list