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
       Number)	encoded	 in  the  "Serial Presence Detect" (SPD) data on JEDEC
       DDR3 and	DDR4 DIMMs.  It	also calculates	and reports the	memory	capac-
       ity  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 tempera-
				  ture

       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	speci-
				 fies  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-sig-
				 nificant 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	 moth-
				 erboard,  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 replace-
				 ment.	This is	useful when assembling	multi-
				 ple  identical	systems, as might be done by a
				 system	vendor.	 The mapping  between  bus/ad-
				 dress 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.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 con-
       verted 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	14.3			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+14.3-RELEASE+and+Ports>

home | help