Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
JEDEC_DIMM(4)		     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  Num-
     ber)  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.mfg_week	the week within the year in which the  DIMM  was
				manufactured

     dev.jedec_dimm.X.mfg_year	the year in which the DIMM was manufactured

     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  ad-
			       dress 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 ad-
			       dress 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 assem-
			       bling multiple identical  systems,  as  might  be
			       done  by  a  system  vendor.  The mapping between
			       bus/address and DIMM slot must  first  be  deter-
			       mined,  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.mfg_week: 30
	   dev.jedec_dimm.0.mfg_year: 17
	   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.mfg_week: 13
	   dev.jedec_dimm.6.mfg_year: 19
	   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 ports 15.quarterly	 April 25, 2023 		   JEDEC_DIMM(4)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=jedec_dimm&sektion=4&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help