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

FreeBSD Manual Pages

  
 
  

home | help
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 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.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-signif-
			       icant 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 mother-
			       board, 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 spe-
			       cific DIMM when doing a replacement.  This is
			       useful when assembling multiple identical sys-
			       tems, 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	Ports 11.2		 July 31, 2018		    FreeBSD Ports 11.2

NAME | SYNOPSIS | DESCRIPTION | EXAMPLES | COMPATIBILITY | SEE ALSO | STANDARDS | HISTORY | AUTHORS

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

home | help