Project

General

Profile

Bug #12664

fix smbios memory technology operating mode capabilities

Added by Robert Mustacchi 12 months ago. Updated 12 months ago.

Status:
Closed
Priority:
Normal
Category:
cmd - userland programs
Start date:
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:

Description

While looking at a system with a DIMM, I noticed a few peculiarities:

$ smbios -i 52
ID    SIZE TYPE
52    159  SMB_TYPE_MEMDEVICE (type 17) (memory device)

  Manufacturer: Micron Technology
  Serial Number: 2348040D
  Location Tag: DIMM 0
  Part Number: 36ASF2G72PZ-2G6F1   

  Physical Memory Array: 44
  Memory Error Data: 51
  Total Width: 128 bits
  Data Width: 64 bits
  Size: 17179869184 bytes
  Form Factor: 9 (DIMM)
  Set: None
  Rank: 2 (dual)
  Memory Type: 26 (DDR4)
  Flags: 0x2080
        SMB_MDF_SYNC (synchronous)
        SMB_MDF_REG (Registered (Buffered))
  Speed: 2666 MT/s
  Configured Speed: 2666 MT/s
  Device Locator: DIMM 0
  Bank Locator: P0 CHANNEL A
  Minimum Voltage: 1.20V
  Maximum Voltage: 1.20V
  Configured Voltage: 1.20V
  Memory Technology: 3 (DRAM)
    Operating Mode Capabilities: 0x8
        SMB_MOMC_BYTE_PM (Byte-accessible persistent memory)
  Firmware Revision: Unknown
  Module Manufacturer ID: 0x2c80
  Volatile Size: 16384 bytes

The first was that the Operating Mode Capabilities section had the wrong defines. What happened here was that I had an off by one in the flag bit assignments. Next, there was extra spacing at the front of it because the actual flag_printf() function unlike desc_printf() actually included spacing. With those fixed (and 12662) you now see:

ID    SIZE TYPE
52    159  SMB_TYPE_MEMDEVICE (type 17) (memory device)

  Manufacturer: Micron Technology
  Serial Number: 2348040D
  Location Tag: DIMM 0
  Part Number: 36ASF2G72PZ-2G6F1   

  Physical Memory Array: 44
  Memory Error Data: 51
  Total Width: 128 bits
  Data Width: 64 bits
  Size: 17179869184 bytes
  Form Factor: 9 (DIMM)
  Set: None
  Rank: 2 (dual)
  Memory Type: 26 (DDR4)
  Flags: 0x2080
        SMB_MDF_SYNC (synchronous)
        SMB_MDF_REG (Registered (Buffered))
  Speed: 2666 MT/s
  Configured Speed: 2666 MT/s
  Device Locator: DIMM 0
  Bank Locator: P0 CHANNEL A
  Minimum Voltage: 1.20V
  Maximum Voltage: 1.20V
  Configured Voltage: 1.20V
  Memory Technology: 3 (DRAM)
  Operating Mode Capabilities: 0x8
        SMB_MOMC_VOLATILE (Volatile memory)
  Firmware Revision: Unknown
  Module Manufacturer ID: Bank: 0x1 Vendor: 0x2c (Micron Technology)
  Volatile Size: 16384 bytes

Which all looks much better. Like in 12662 I made sure the nascent smbios test suite was clean and then double checked the jedec bits just in case (though nothing changed here).

#1

Updated by Electric Monk 12 months ago

  • Status changed from New to Closed
  • % Done changed from 0 to 100

git commit 9f9cceb6f1158940244c35cecdbc93f9a386a4b8

commit  9f9cceb6f1158940244c35cecdbc93f9a386a4b8
Author: Robert Mustacchi <rm@fingolfin.org>
Date:   2020-05-01T01:53:20.000Z

    12662 smbios(1M) interprets jedec IDs incorrectly
    12664 fix smbios memory technology operating mode capabilities
    Reviewed by: Yuri Pankov <ypankov@fastmail.com>
    Reviewed by: Toomas Soome <toomas@me.com>
    Reviewed by: Paul Winder <paul@winders.demon.co.uk>
    Reviewed by: Gergo Doma <domag02@gmail.com>
    Approved by: Gordon Ross <gordon.w.ross@gmail.com>

Also available in: Atom PDF