Project

General

Profile

Actions

Bug #598

open

Lenovo m920x RAM compatibility issue

Added by Dawid Wrobel 14 days ago. Updated 8 days ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Target version:
Start date:
06/04/2025
Due date:
% Done:

0%

Estimated time:
Affected versions:
Needs backport to:
Affected hardware:
Affected OS:

Description

Hi there,

I recently flashed my m902x with coreboot (25.03-643-g69a067a9d62c-dirty). Everything seemed to work fine until I tried upgrading the memory from a single 8GB stick to 2 x 32GB (Crucial CT2K32G4SFD832A, https://eu.crucial.com/memory/ddr4/CT2K32G4SFD832A). The system won't boot in any configuration (a single stick in either slot or both).

I get no display out, the system stays on and stuck, apparently, with high CPU usage causing fans to kick in.

I have no serial port in this system at the moment (backordered an extension module), but am wondering if it will be of any help and if there's any other way to debug it?

Do note that the system is capable of running 64GB memory, as it was reported already, so I wonder if this is a matter of some SPD misconfiguration?

Crucial lists the 2x16GB modules as compatible with this system (https://eu.crucial.com/compatible-upgrade-for/lenovo/thinkcentre-m920x-tiny#memory) and they have seemingly identical specs as the 2x32GB ones.

Actions #1

Updated by Dawid Wrobel 14 days ago

I flashed the stock BIOS and the system boots just fine. dmidecode shows:

Handle 0x003C, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x003B
	Error Information Handle: Not Provided
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 32 GB
	Form Factor: SODIMM
	Set: None
	Locator: ChannelA-DIMM0
	Bank Locator: BANK 0
	Type: DDR4
	Type Detail: Synchronous
	Speed: 3200 MT/s
	Manufacturer: Micron
	Serial Number: EB37855C
	Asset Tag: 9876543210
	Part Number: CT32G4SFD832A.M16FF
	Rank: 2
	Configured Memory Speed: 2400 MT/s
	Minimum Voltage: 1.2 V
	Maximum Voltage: 1.2 V
	Configured Voltage: 1.2 V

Handle 0x003D, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x003B
	Error Information Handle: Not Provided
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 32 GB
	Form Factor: SODIMM
	Set: None
	Locator: ChannelB-DIMM0
	Bank Locator: BANK 2
	Type: DDR4
	Type Detail: Synchronous
	Speed: 3200 MT/s
	Manufacturer: Micron
	Serial Number: EB3779C4
	Asset Tag: 9876543210
	Part Number: CT32G4SFD832A.M16FF
	Rank: 2
	Configured Memory Speed: 2400 MT/s
	Minimum Voltage: 1.2 V
	Maximum Voltage: 1.2 V
	Configured Voltage: 1.2 V
Actions #2

Updated by Dawid Wrobel 14 days ago

I flashed the stock BIOS and the system boots just fine. dmidecode shows:

Handle 0x003C, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x003B
	Error Information Handle: Not Provided
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 32 GB
	Form Factor: SODIMM
	Set: None
	Locator: ChannelA-DIMM0
	Bank Locator: BANK 0
	Type: DDR4
	Type Detail: Synchronous
	Speed: 3200 MT/s
	Manufacturer: Micron
	Serial Number: EB37855C
	Asset Tag: 9876543210
	Part Number: CT32G4SFD832A.M16FF
	Rank: 2
	Configured Memory Speed: 2400 MT/s
	Minimum Voltage: 1.2 V
	Maximum Voltage: 1.2 V
	Configured Voltage: 1.2 V

Handle 0x003D, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x003B
	Error Information Handle: Not Provided
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 32 GB
	Form Factor: SODIMM
	Set: None
	Locator: ChannelB-DIMM0
	Bank Locator: BANK 2
	Type: DDR4
	Type Detail: Synchronous
	Speed: 3200 MT/s
	Manufacturer: Micron
	Serial Number: EB3779C4
	Asset Tag: 9876543210
	Part Number: CT32G4SFD832A.M16FF
	Rank: 2
	Configured Memory Speed: 2400 MT/s
	Minimum Voltage: 1.2 V
	Maximum Voltage: 1.2 V
	Configured Voltage: 1.2 V

Meanwhile decode-dimms shows:

# decode-dimms version 4.3

Memory Serial Presence Detect Decoder
By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner,
Jean Delvare, Trent Piepho and others


Decoding EEPROM: /sys/bus/i2c/drivers/ee1004/0-0050
Guessing DIMM is in                              bank 1
Kernel driver used                               ee1004

---=== SPD EEPROM Information ===---
EEPROM CRC of bytes 0-125                        OK (0x3840)
# of bytes written to SDRAM EEPROM               384
Total number of bytes in EEPROM                  512
Fundamental Memory type                          DDR4 SDRAM
SPD Revision                                     1.1
Module Type                                      SO-DIMM
EEPROM CRC of bytes 128-253                      OK (0x2355)

---=== Memory Characteristics ===---
Maximum module speed                             3200 MT/s (PC4-25600)
Size                                             32768 MB
Banks x Rows x Columns x Bits                    16 x 17 x 10 x 64
SDRAM Device Width                               8 bits
Ranks                                            2
Rank Mix                                         Symmetrical
Primary Bus Width                                64 bits
AA-RCD-RP-RAS (cycles)                           22-22-22-52
Supported CAS Latencies                          28T, 26T, 25T, 24T, 23T, 22T, 21T, 20T, 19T, 18T, 17T, 16T, 15T, 14T, 13T, 12T, 11T, 10T

---=== Timings at Standard Speeds ===---
AA-RCD-RP-RAS (cycles) as DDR4-3200              22-22-22-52
AA-RCD-RP-RAS (cycles) as DDR4-2933              21-21-21-47
AA-RCD-RP-RAS (cycles) as DDR4-2666              19-19-19-43
AA-RCD-RP-RAS (cycles) as DDR4-2400              17-17-17-39
AA-RCD-RP-RAS (cycles) as DDR4-2133              15-15-15-35
AA-RCD-RP-RAS (cycles) as DDR4-1866              13-13-13-30
AA-RCD-RP-RAS (cycles) as DDR4-1600              11-11-11-26

---=== Timing Parameters ===---
Minimum Cycle Time (tCKmin)                      0.625 ns
Maximum Cycle Time (tCKmax)                      1.600 ns
Minimum CAS Latency Time (tAA)                   13.750 ns
Minimum RAS to CAS Delay (tRCD)                  13.750 ns
Minimum Row Precharge Delay (tRP)                13.750 ns
Minimum Active to Precharge Delay (tRAS)         32.000 ns
Minimum Active to Auto-Refresh Delay (tRC)       45.750 ns
Minimum Recovery Delay (tRFC1)                   350.000 ns
Minimum Recovery Delay (tRFC2)                   260.000 ns
Minimum Recovery Delay (tRFC4)                   160.000 ns
Minimum Four Activate Window Delay (tFAW)        21.000 ns
Minimum Row Active to Row Active Delay (tRRD_S)  2.500 ns
Minimum Row Active to Row Active Delay (tRRD_L)  4.900 ns
Minimum CAS to CAS Delay (tCCD_L)                5.000 ns
Minimum Write Recovery Time (tWR)                15.000 ns
Minimum Write to Read Time (tWTR_S)              2.500 ns
Minimum Write to Read Time (tWTR_L)              7.500 ns

---=== Other Information ===---
Package Type                                     Monolithic
Maximum Activate Count (MAC)                     Unlimited
Post Package Repair                              One row per bank group
Soft PPR                                         Supported
Module Nominal Voltage                           1.2 V
Thermal Sensor                                   No

---=== Physical Characteristics ===---
Module Height                                    30 mm
Module Thickness                                 2 mm front, 2 mm back
Module Reference Card                            E revision 1

---=== Manufacturer Data ===---
Module Manufacturer                              Micron Technology
DRAM Manufacturer                                Micron Technology
Manufacturing Location Code                      0x1A
Manufacturing Date                               2025-W11
Assembly Serial Number                           0xEB37855C
Part Number                                      CT32G4SFD832A.M16FF
Actions #3

Updated by Maximilian Brune 13 days ago

What happens if you use one 8GB and one 32 GB? Ideally it doesn't get stuck even if only 8GB are shown in the OS. That way, you would at least have an easier time debugging.

Regarding debugging possibilities:
If you use an external flasher/programmer you can tell coreboot to save the serial logs in the flash. You can then use the flashprog/flashrom tooling to extract the logs from the flash.
It you don't use an external flasher and only flash internally using your OS, it gets more tricky. Ideally I would wait until your serial adapter arrives (makes things a lot easier). In general coreboot offers to send logs to a serial UART, to the flash chip, into memory (that one only helps if you successfully boot to OS), to a USB device (although I have never tested this myself and it probably only works on some boards when it comes to earpy debugging) and a couple of other methods that are pretty special and therefore usually not applicable.

Actions #4

Updated by Dawid Wrobel 8 days ago ยท Edited

Well, oddly, I flashed coreboot back and for whatever reason it will boots now with a single 32GB stick in DIMM1 slot only. I first tried with 32GB in DIMM1 and 8GB stick in DIMM2, as you suggested, and it boots, too, but the 8GB stick does not get detected.

It also won't boot with a single stick in DIMM2, although I think this is by design, per the manual https://download.lenovo.com/pccbbs/thinkcentre_pdf/m920x_ughmm_en.pdf. Most importantly, it still won't boot with two 32GB stick, although I am not getting any fan spinning this time, so something else is definitely happening here.

All in all, this sounds like https://ticket.coreboot.org/issues/592#change-2093 issue... except I am running 25.03-643-g69a067a9d62c-dirty, which as far as I understand should have this fix included already, although I am double checking this now.

Actions

Also available in: Atom PDF