Bug #598
openLenovo m920x RAM compatibility issue
0%
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.
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
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
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.
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.