FreeBSD manual
download PDF document: jedec_dimm.4.pdf
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.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
address are the "Device Type Identifier" (DTI),
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.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:
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.0-RELEASE-p11 April 25, 2023 FreeBSD 14.0-RELEASE-p11