Provided by: freebsd-manpages_12.2-2_all bug

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>.

Debian                                            July 31, 2018                                    JEDEC_DIMM(4)