diff options
Diffstat (limited to 'static/freebsd/man4/jedec_dimm.4 3.html')
| -rw-r--r-- | static/freebsd/man4/jedec_dimm.4 3.html | 193 |
1 files changed, 193 insertions, 0 deletions
diff --git a/static/freebsd/man4/jedec_dimm.4 3.html b/static/freebsd/man4/jedec_dimm.4 3.html new file mode 100644 index 00000000..71cd7359 --- /dev/null +++ b/static/freebsd/man4/jedec_dimm.4 3.html @@ -0,0 +1,193 @@ +<table class="head"> + <tr> + <td class="head-ltitle">JEDEC_DIMM(4)</td> + <td class="head-vol">Device Drivers Manual</td> + <td class="head-rtitle">JEDEC_DIMM(4)</td> + </tr> +</table> +<div class="manual-text"> +<section class="Sh"> +<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1> +<p class="Pp"><code class="Nm">jedec_dimm</code> — + <span class="Nd">report asset information and temperatures for JEDEC DDR3 / + DDR4 DIMMs</span></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1> +<div class="Bd Bd-indent"><code class="Cd">device jedec_dimm</code> +<br/> +<code class="Cd">device smbus</code></div> +<p class="Pp">Alternatively, to load the driver as a module at boot time, place + the following line in <a class="Xr">loader.conf(5)</a>:</p> +<div class="Bd Pp Bd-indent Li"> +<pre>jedec_dimm_load="YES"</pre> +</div> +<p class="Pp">Addressing information must be manually specified in + <span class="Pa">/boot/device.hints</span>:</p> +<div class="Bd Pp Bd-indent Li"> +<pre><code class="Cd">hint.jedec_dimm.0.at="smbus0"</code> +<br/> +<code class="Cd">hint.jedec_dimm.0.addr="0xa0"</code> +<br/> +<code class="Cd">hint.jedec_dimm.0.slotid="Silkscreen"</code></pre> +</div> +</section> +<section class="Sh"> +<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> +<p class="Pp">The <code class="Nm">jedec_dimm</code> 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.</p> +<p class="Pp">The <code class="Nm">jedec_dimm</code> driver accesses the SPD and + TSOD over the <a class="Xr">smbus(4)</a>.</p> +<p class="Pp">The data is reported via a <a class="Xr">sysctl(8)</a> interface; + all values are read-only:</p> +<dl class="Bl-tag"> + <dt id="dev.jedec_dimm.X._desc"><var class="Va">dev.jedec_dimm.X.%desc</var></dt> + <dd>a string description of the DIMM, including TSOD and slotid info if + present.</dd> + <dt id="dev.jedec_dimm.X.capacity"><var class="Va">dev.jedec_dimm.X.capacity</var></dt> + <dd>the DIMM's memory capacity, in megabytes</dd> + <dt id="dev.jedec_dimm.X.mfg_week"><var class="Va">dev.jedec_dimm.X.mfg_week</var></dt> + <dd>the week within the year in which the DIMM was manufactured</dd> + <dt id="dev.jedec_dimm.X.mfg_year"><var class="Va">dev.jedec_dimm.X.mfg_year</var></dt> + <dd>the year in which the DIMM was manufactured</dd> + <dt id="dev.jedec_dimm.X.part"><var class="Va">dev.jedec_dimm.X.part</var></dt> + <dd>the manufacturer's part number of the DIMM</dd> + <dt id="dev.jedec_dimm.X.serial"><var class="Va">dev.jedec_dimm.X.serial</var></dt> + <dd>the manufacturer's serial number of the DIMM</dd> + <dt id="dev.jedec_dimm.X.slotid"><var class="Va">dev.jedec_dimm.X.slotid</var></dt> + <dd>a copy of the corresponding hint, if set</dd> + <dt id="dev.jedec_dimm.X.temp"><var class="Va">dev.jedec_dimm.X.temp</var></dt> + <dd>if a TSOD is present, the reported temperature</dd> + <dt id="dev.jedec_dimm.X.type"><var class="Va">dev.jedec_dimm.X.type</var></dt> + <dd>the DIMM type (DDR3 or DDR4)</dd> +</dl> +<p class="Pp">These values are configurable for + <code class="Nm">jedec_dimm</code> via + <a class="Xr">device.hints(5)</a>:</p> +<dl class="Bl-tag"> + <dt id="hint.jedec_dimm.X.at"><var class="Va">hint.jedec_dimm.X.at</var></dt> + <dd>the <a class="Xr">smbus(4)</a> to which the DIMM is connected</dd> + <dt id="hint.jedec_dimm.X.addr"><var class="Va">hint.jedec_dimm.X.addr</var></dt> + <dd>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.</dd> + <dt id="hint.jedec_dimm.X.slotid"><var class="Va">hint.jedec_dimm.X.slotid</var></dt> + <dd>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.</dd> +</dl> +<p class="Pp">If the DIMMs are on an I2C bus behind an + <a class="Xr">iicbus(4)</a> controller, then the <a class="Xr">iicsmb(4)</a> + bridge driver can be used to attach the <a class="Xr">smbus(4)</a>.</p> +</section> +<section class="Sh"> +<h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1> +<p class="Pp">Consider two DDR4 DIMMs with the following hints:</p> +<div class="Bd Pp Bd-indent Li"> +<pre>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"</pre> +</div> +<p class="Pp">Their <a class="Xr">sysctl(8)</a> output (sorted):</p> +<div class="Bd Pp Bd-indent Li"> +<pre>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</pre> +</div> +<p class="Pp">You can use <a class="Xr">smbmsg(8)</a> to probe for devices.</p> +</section> +<section class="Sh"> +<h1 class="Sh" id="COMPATIBILITY"><a class="permalink" href="#COMPATIBILITY">COMPATIBILITY</a></h1> +<p class="Pp"><code class="Nm">jedec_dimm</code> implements a superset of the + functionality of the now-deleted <a class="Xr">jedec_ts(4)</a>. Hints for + <a class="Xr">jedec_ts(4)</a> can be mechanically converted for use with + <code class="Nm">jedec_dimm</code>. Two changes are required:</p> +<ol class="Bl-enum"> + <li>In all <a class="Xr">jedec_ts(4)</a> hints, replace + “jedec_ts” with “jedec_dimm”</li> + <li>In <a class="Xr">jedec_ts(4)</a> “addr” hints, replace the + TSOD DTI “0x3” with the SPD DTI “0xa”</li> +</ol> +<p class="Pp">The following <a class="Xr">sed(1)</a> script will perform the + necessary changes:</p> +<div class="Bd Pp Bd-indent Li"> +<pre>sed -i ".old" -e 's/jedec_ts/jedec_dimm/' \ + -e '/jedec_dimm/s/addr="0x3/addr="0xa/' /boot/device.hints</pre> +</div> +</section> +<section class="Sh"> +<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE + ALSO</a></h1> +<p class="Pp"><a class="Xr">iicbus(4)</a>, <a class="Xr">iicsmb(4)</a>, + <a class="Xr">smbus(4)</a>, <a class="Xr">sysctl(8)</a></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="STANDARDS"><a class="permalink" href="#STANDARDS">STANDARDS</a></h1> +<p class="Pp"><cite class="Rs">(DDR3 SPD) <span class="RsA">JEDEC</span>, + <span class="RsT">Standard 21-C, Annex K</span>.</cite></p> +<p class="Pp"><cite class="Rs">(DDR3 TSOD) <span class="RsA">JEDEC</span>, + <span class="RsT">Standard 21-C, TSE2002av</span>.</cite></p> +<p class="Pp"><cite class="Rs">(DDR4 SPD) <span class="RsA">JEDEC</span>, + <span class="RsT">Standard 21-C, Annex L</span>.</cite></p> +<p class="Pp"><cite class="Rs">(DDR4 TSOD) <span class="RsA">JEDEC</span>, + <span class="RsT">Standard 21-C, TSE2004av</span>.</cite></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1> +<p class="Pp">The <code class="Nm">jedec_dimm</code> driver first appeared in + <span class="Ux">FreeBSD 12.0</span>.</p> +</section> +<section class="Sh"> +<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1> +<p class="Pp">The <code class="Nm">jedec_dimm</code> driver and this manual page + were written by <span class="An">Ravi Pokala</span> + <<a class="Mt" href="mailto:rpokala@freebsd.org">rpokala@freebsd.org</a>>. + They are both based in part on the now-deleted <a class="Xr">jedec_ts(4)</a> + driver and manual page, written by <span class="An">Andriy Gapon</span> + <<a class="Mt" href="mailto:avg@FreeBSD.org">avg@FreeBSD.org</a>>.</p> +</section> +</div> +<table class="foot"> + <tr> + <td class="foot-date">January 2, 2026</td> + <td class="foot-os">FreeBSD 15.0</td> + </tr> +</table> |
