Command Section

JEDEC_DIMM(4)          FreeBSD Kernel Interfaces Manual          JEDEC_DIMM(4)

NAME
     jedec_dimm - report asset information and temperatures for JEDEC DDR3 /
     DDR4 DIMMs

SYNOPSIS
           device jedec_dimm
           device smbus

     Alternatively, to load the driver as a module at boot time, place the
     following line in loader.conf(5):

           jedec_dimm_load="YES"

     Addressing information must be manually specified in /boot/device.hints:

           hint.jedec_dimm.0.at="smbus0"
           hint.jedec_dimm.0.addr="0xa0"
           hint.jedec_dimm.0.slotid="Silkscreen"

DESCRIPTION
     The jedec_dimm driver reports asset information (Part Number, Serial
     Number) encoded in the "Serial Presence Detect" (SPD) data on JEDEC DDR3
     and DDR4 DIMMs.  It also calculates and reports the memory capacity of
     the DIMM, in megabytes.  If the DIMM includes a "Thermal Sensor On DIMM"
     (TSOD), the temperature is also reported.

     The jedec_dimm driver accesses the SPD and TSOD over the smbus(4).

     The data is reported via a sysctl(8) interface; all values are read-only:

     dev.jedec_dimm.X.%desc     a string description of the DIMM, including
                                TSOD and slotid info if present.

     dev.jedec_dimm.X.capacity  the DIMM's memory capacity, in megabytes

     dev.jedec_dimm.X.part      the manufacturer's part number of the DIMM

     dev.jedec_dimm.X.serial    the manufacturer's serial number of the DIMM

     dev.jedec_dimm.X.slotid    a copy of the corresponding hint, if set

     dev.jedec_dimm.X.temp      if a TSOD is present, the reported temperature

     dev.jedec_dimm.X.type      the DIMM type (DDR3 or DDR4)

     These values are configurable for jedec_dimm via device.hints(5):

     hint.jedec_dimm.X.at      the smbus(4) to which the DIMM is connected

     hint.jedec_dimm.X.addr    the SMBus address of the SPD.  JEDEC specifies
                               that the four most-significant bits of the
                               address are the "Device Type Identifier" (DTI),
                               and that the DTI of the SPD is 0xa.  Since the
                               least-significant bit of an SMBus address is
                               the read/write bit, and is always written as 0,
                               that means the four least-significant bits of
                               the address must be even.

     hint.jedec_dimm.X.slotid  optional slot identifier.  If populated with
                               the DIMM slot name silkscreened on the
                               motherboard, this provides a mapping between
                               the DIMM slot name and the DIMM serial number.
                               That mapping is useful for detailed asset
                               tracking, and makes it easier to physically
                               locate a specific DIMM when doing a
                               replacement.  This is useful when assembling
                               multiple identical systems, as might be done by
                               a system vendor.  The mapping between
                               bus/address and DIMM slot must first be
                               determined, either through motherboard
                               documentation or trial-and-error.

     If the DIMMs are on an I2C bus behind an iicbus(4) controller, then the
     iicsmb(4) bridge driver can be used to attach the smbus(4).

EXAMPLES
     Consider two DDR4 DIMMs with the following hints:

           hint.jedec_dimm.0.at="smbus0"
           hint.jedec_dimm.0.addr="0xa0"
           hint.jedec_dimm.0.slotid="A1"

           hint.jedec_dimm.6.at="smbus1"
           hint.jedec_dimm.6.addr="0xa8"

     Their sysctl(8) output (sorted):

           dev.jedec_dimm.0.%desc: DDR4 DIMM w/ Atmel TSOD (A1)
           dev.jedec_dimm.0.%driver: jedec_dimm
           dev.jedec_dimm.0.%location: addr=0xa0
           dev.jedec_dimm.0.%parent: smbus0
           dev.jedec_dimm.0.%pnpinfo:
           dev.jedec_dimm.0.capacity: 16384
           dev.jedec_dimm.0.part: 36ASF2G72PZ-2G1A2
           dev.jedec_dimm.0.serial: 0ea815de
           dev.jedec_dimm.0.slotid: A1
           dev.jedec_dimm.0.temp: 32.7C
           dev.jedec_dimm.0.type: DDR4

           dev.jedec_dimm.6.%desc: DDR4 DIMM w/ TSE2004av compliant TSOD
           dev.jedec_dimm.6.%driver: jedec_dimm
           dev.jedec_dimm.6.%location: addr=0xa8
           dev.jedec_dimm.6.%parent: smbus1
           dev.jedec_dimm.6.%pnpinfo:
           dev.jedec_dimm.6.capacity: 8192
           dev.jedec_dimm.6.part: VRA9MR8B2H1603
           dev.jedec_dimm.6.serial: 0c4c46ad
           dev.jedec_dimm.6.temp: 43.1C
           dev.jedec_dimm.6.type: DDR4

COMPATIBILITY
     jedec_dimm implements a superset of the functionality of the now-deleted
     jedec_ts(4).  Hints for jedec_ts(4) can be mechanically converted for use
     with jedec_dimm.  Two changes are required:

     1.   In all jedec_ts(4) hints, replace "jedec_ts" with "jedec_dimm"

     2.   In jedec_ts(4) "addr" hints, replace the TSOD DTI "0x3" with the SPD
          DTI "0xa"

     The following sed(1) script will perform the necessary changes:

           sed -i ".old" -e 's/jedec_ts/jedec_dimm/' \
               -e '/jedec_dimm/s/addr="0x3/addr="0xa/' /boot/device.hints

SEE ALSO
     iicbus(4), iicsmb(4), smbus(4), sysctl(8)

STANDARDS
     (DDR3 SPD) JEDEC, Standard 21-C, Annex K.

     (DDR3 TSOD) JEDEC, Standard 21-C, TSE2002av.

     (DDR4 SPD) JEDEC, Standard 21-C, Annex L.

     (DDR4 TSOD) JEDEC, Standard 21-C, TSE2004av.

HISTORY
     The jedec_dimm driver first appeared in FreeBSD 12.0.

AUTHORS
     The jedec_dimm driver and this manual page were written by Ravi Pokala
     <rpokala@freebsd.org>.  They are both based in part on the now-deleted
     jedec_ts(4) driver and manual page, written by Andriy Gapon
     <avg@FreeBSD.org>.

FreeBSD 13.1-RELEASE-p6          July 31, 2018         FreeBSD 13.1-RELEASE-p6

Command Section

man2web Home...