Dmidecode –type memory showing wrong DDR type

ddrdmimemory

A few weeks ago I decided to upgrade my laptop memory. In order to determine which type I need I used the following command on my Linux box (Ubuntu 10.04, not inside VM):

sudo dmidecode --type memory

And the output was:

# dmidecode 2.9
SMBIOS 2.5 present.

Handle 0x001B, DMI type 16, 15 bytes
Physical Memory Array
    Location: System Board Or Motherboard
    Use: System Memory
    Error Correction Type: None
    Maximum Capacity: 4 GB
    Error Information Handle: Not Provided
    Number Of Devices: 2

Handle 0x001C, DMI type 17, 27 bytes
Memory Device
    Array Handle: 0x001B
    Error Information Handle: No Error
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 2048 MB
    Form Factor: SODIMM
    Set: 1
    Locator: M1
    Bank Locator: Bank 0
    Type: DDR2
    Type Detail: Synchronous
    Speed: 667 MHz (1.5 ns)
    Manufacturer: Mfg 0
    Serial Number: 1234-B0
    Asset Tag: Not Specified
    Part Number: SODIMM000

Handle 0x001D, DMI type 17, 27 bytes
Memory Device
    Array Handle: 0x001B
    Error Information Handle: No Error
    Total Width: Unknown
    Data Width: Unknown
    Size: No Module Installed
    Form Factor: SODIMM
    Set: 1
    Locator: M2
    Bank Locator: Bank 1
    Type: DDR2
    Type Detail: Synchronous
    Speed: 667 MHz (1.5 ns)
    Manufacturer: Mfg 1
    Serial Number: 1234-B1
    Asset Tag: Not Specified
    Part Number: SODIMM001

So I bought 1 SO-DIMM DDR2 667 (PC2-5300). When the product arrived, I tried to install it, but I found that, to my surprising, the remaining slot was incompatible – the card could not be inserted into the slot. It turned out that the slot was designed for DDR3 (as it is written on the slot), not DDR2 which is displayed by dmidecode.

Is it possible that dmidecode is showing incorrect data for memory type / speed?

If yes, how can I check the right memory type without it?

Best Answer

The dmidecode program gives you the DMI information as reported by the BIOS. It is as accurate as the BIOS makes it. Inaccuracies are common.

You'll notice the BIOS didn't populate the manufacturer or serial number fields, so it's not bothering to provide any more information in the DMI table than it thinks the operating system needs.

To get accurate memory information, you should interrogate the SPD chips on the actual memory sticks.