Hi,
I've bought two 4G DIMMs with the following characteristics: - Vendor: Corsair - Model: MACMEMORY - Markings: CMSA4GX3M1A1066C7 DDR3 <A serial number> - Chips markings: Corsair 256MB8DCJG HYE0001924
On a Thinkpad X200 with coreboot master, it gives me the following log:
coreboot-4.10-678-gdd12d53494b-dirty Mon Sep 16 13:42:10 UTC 2019 romstage starting (log level: 8)... Stepping B3 2 CPU cores AMT enabled capable of DDR2 of 800 MHz or lower VT-d enabled GMCH: GM45 TXT enabled Render frequency: 533 MHz IGD enabled PCIe-to-GMCH enabled GMCH supports DDR3 with 1067 MT or less GMCH supports FSB with up to 1067 MHz SMBus controller enabled. 0:50:b 2:51:b DDR mask 5, DDR 3 Bank 0 populated: Raw card type: D Row addr bits: 15 Col addr bits: 10 byte width: 1 page size: 1024 banks: 8 ranks: 2 tAAmin: 105 tCKmin: 15 Max clock: 533 MHz CAS: 0x01c0 Bank 1 populated: Raw card type: D Row addr bits: 15 Col addr bits: 10 byte width: 1 page size: 1024 banks: 8 ranks: 2 tAAmin: 105 tCKmin: 15 Max clock: 533 MHz CAS: 0x01c0 Trying CAS 7, tCK 15. Found compatible clock / CAS pair: 533 / 7. Timing values: tCLK: 15 tRAS: 20 tRP: 7 tRCD: 7 tRFC: 104 tWR: 8 tRD: 11 tRRD: 4 tFAW: 20 tWL: 6 Setting IGD memory frequencies for VCO #1. Memory configured in dual-channel assymetric mode. Memory map: TOM = 512MB TOLUD = 512MB TOUUD = 512MB REMAP: base = 65535MB limit = 0MB usedMEsize: 0MB JEDEC init @0x00000000 JEDEC init @0x08000000 JEDEC init @0x10000000 JEDEC init @0x18000000 Final timings for group 0, ch 0: 7.0.0.3.7 Final timings for group 1, ch 0: 7.0.0.3.2 Final timings for group 2, ch 0: 7.0.2.3.1 Final timings for group 3, ch 0: 7.0.2.1.3 Final timings for group 0, ch 1: 7.0.0.1.1 Final timings for group 1, ch 1: 7.4.0.7.1 Final timings for group 2, ch 1: 7.0.2.0.6 Final timings for group 3, ch 1: 7.0.0.8.3 Lower bound for byte lane 0, ch 0: 0.0 Upper bound for byte lane 0, ch 0: 10.5 Final timings for byte lane 0, ch 0: 5.2 Lower bound for byte lane 1, ch 0: 0.0 Upper bound for byte lane 1, ch 0: 9.3 Final timings for byte lane 1, ch 0: 4.5 Lower bound for byte lane 2, ch 0: 0.0 Upper bound for byte lane 2, ch 0: 10.0 Final timings for byte lane 2, ch 0: 5.0 Lower bound for byte lane 3, ch 0: 0.0 Upper bound for byte lane 3, ch 0: 10.3 Final timings for byte lane 3, ch 0: 5.1 Timing overflow during read training. Read training failure: lower bound.
On older Coreboot versions it failed as well.
With other known-working DIMMs I can manage to get pass this stage and the laptop gets up to ramstage:
usbdebug: ramstage starting...
However for some other reason it doesn't boot, but that's probably for another mail.
Denis.
Hi Denis,
Raw card type: D
last time we encountered problems with type D DIMMs, we concluded that it's not supposed to work [1]. Can you confirm if your DIMMs are stable with the vendor BIOS?
We should probably issue a warning when type D is installed.
Nico
On Tue, 17 Sep 2019 10:21:38 +0200 Nico Huber nico.h@gmx.de wrote:
Hi Denis,
Hi,
Raw card type: D
Is there more information on such "card type" somewhere? Is there a way to avoid buying such "card type"?
last time we encountered problems with type D DIMMs, we concluded that it's not supposed to work [1]. Can you confirm if your DIMMs are stable with the vendor BIOS?
I didn't try with the stock BIOS on a Thinkpad X200 yet, but I tried with the stock BIOS on a Thinkpad X200 Tablet and it didn't work.
We should probably issue a warning when type D is installed.
Is there also a way or place where to issue warnings to people before they buy and install such cards? Is doc.coreboot.org for users too?
For instance there is also some limitations on the individual chip size, that are mentioned in the Libreboot wiki[1], though they don't mention yet this type D issue yet (I've just informed them about it, I'll probably end up sending a patch for fixing it there as well).
Thanks a lot for the reference.
References: ----------- [1]https://libreboot.org/docs/install/x200_external.html#memory
Denis.
On 17.09.19 17:28, Denis 'GNUtoo' Carikli wrote:
On Tue, 17 Sep 2019 10:21:38 +0200
Raw card type: D
Is there more information on such "card type" somewhere?
JEDEC specifies these reference cards. Sometimes you can get their specification for free (need to register to their webpage, though), sometimes they want money, I fail to see a pattern in what they publish.
In theory, there's a good chance that we could fix the training for type D. Though, I can't tell if there are more issues lurking than the failing read training.
Is there a way to avoid buying such "card type"?
I fear, no. Unless you can find somebody who already has a specific DIMM model and can ask them for the SPD data.
There are even more obvious specs that break compatibility, but the vendors won't tell you. It's really weird. If you ask me, the whole DIMM industry is broken. Instead of documenting their DIMMs and what the boards require, they publish QVLs? It's nuts. Maybe they just fear that customers could realize that DIMMs of one vendor are replaceable with those of another (they are, if they don't violate the spec).
Now I wonder, if, or why if not, somebody started a public database of SPD data?
last time we encountered problems with type D DIMMs, we concluded that it's not supposed to work [1]. Can you confirm if your DIMMs are stable with the vendor BIOS?
I didn't try with the stock BIOS on a Thinkpad X200 yet, but I tried with the stock BIOS on a Thinkpad X200 Tablet and it didn't work.
We should probably issue a warning when type D is installed.
Is there also a way or place where to issue warnings to people before they buy and install such cards? Is doc.coreboot.org for users too?
Yes, you can just push changes (under Documentation/ in the coreboot source repo) for review. Maybe a central GM45 page and a link to that for each board? I can write down the limits of the memory controller / raminit code, but as mentioned above, it will be hard to match that to actual DIMMs.
Nico