Main index | Section 4 | Options |
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"
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).
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: DDR4dev.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
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
Standard 21-C, Annex K,
,(DDR3 TSOD)
Standard 21-C, TSE2002av,
,(DDR4 SPD)
Standard 21-C, Annex L,
,(DDR4 TSOD)
Standard 21-C, TSE2004av,
,JEDEC_DIMM (4) | July 31, 2018 |
Main index | Section 4 | Options |
Please direct any comments about this manual page service to Ben Bullock. Privacy policy.
“ | There are 10 types of people in the world: those who understand binary, and those who don't. | ” |