summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/mpr.4 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man4/mpr.4 3.html')
-rw-r--r--static/freebsd/man4/mpr.4 3.html351
1 files changed, 0 insertions, 351 deletions
diff --git a/static/freebsd/man4/mpr.4 3.html b/static/freebsd/man4/mpr.4 3.html
deleted file mode 100644
index b545c3ae..00000000
--- a/static/freebsd/man4/mpr.4 3.html
+++ /dev/null
@@ -1,351 +0,0 @@
-<table class="head">
- <tr>
- <td class="head-ltitle">MPR(4)</td>
- <td class="head-vol">Device Drivers Manual</td>
- <td class="head-rtitle">MPR(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">mpr</code> &#x2014; <span class="Nd">LSI
- Fusion-MPT 3/3.5 IT/IR 12Gb/s Serial Attached SCSI/SATA/PCIe
- driver</span></p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
-<p class="Pp">To compile this driver into the kernel, place these lines in the
- kernel configuration file:</p>
-<div class="Bd Pp Bd-indent"><code class="Cd">device pci</code>
-<br/>
-<code class="Cd">device scbus</code>
-<br/>
-<code class="Cd">device mpr</code></div>
-<p class="Pp">The driver can be loaded as a module at boot time by placing this
- line in <a class="Xr">loader.conf(5)</a>:</p>
-<div class="Bd Pp Bd-indent Li">
-<pre>mpr_load=&quot;YES&quot;</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">mpr</code> driver provides support for
- Broadcom Ltd./Avago Tech (LSI) Fusion-MPT 3/3.5 IT/IR SAS/PCIe
- controllers.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="HARDWARE"><a class="permalink" href="#HARDWARE">HARDWARE</a></h1>
-<p class="Pp">The <code class="Nm">mpr</code> driver supports the following
- SATA/SAS/NVMe RAID controllers:</p>
-<p class="Pp"></p>
-<ul class="Bl-bullet Bl-compact">
- <li>Broadcom Ltd./Avago Tech (LSI) SAS 3004 (4 Port SAS)</li>
- <li>Broadcom Ltd./Avago Tech (LSI) SAS 3008 (8 Port SAS)</li>
- <li>Broadcom Ltd./Avago Tech (LSI) SAS 3108 (8 Port SAS)</li>
- <li>Broadcom Ltd./Avago Tech (LSI) SAS 3216 (16 Port SAS)</li>
- <li>Broadcom Ltd./Avago Tech (LSI) SAS 3224 (24 Port SAS)</li>
- <li>Broadcom Ltd./Avago Tech (LSI) SAS 3316 (16 Port SAS)</li>
- <li>Broadcom Ltd./Avago Tech (LSI) SAS 3324 (24 Port SAS)</li>
- <li>Broadcom Ltd./Avago Tech (LSI) SAS 3408 (8 Port SAS/PCIe)</li>
- <li>Broadcom Ltd./Avago Tech (LSI) SAS 3416 (16 Port SAS/PCIe)</li>
- <li>Broadcom Ltd./Avago Tech (LSI) SAS 3508 (8 Port SAS/PCIe)</li>
- <li>Broadcom Ltd./Avago Tech (LSI) SAS 3516 (16 Port SAS/PCIe)</li>
- <li>Broadcom Ltd./Avago Tech (LSI) SAS 3616 (16 Port SAS/PCIe)</li>
- <li>Broadcom Ltd./Avago Tech (LSI) SAS 3708 (8 Port SAS/PCIe)</li>
- <li>Broadcom Ltd./Avago Tech (LSI) SAS 3716 (16 Port SAS/PCIe)</li>
- <li>Broadcom Ltd./Avago Tech (LSI) SAS 3808 (8 Port SAS/PCIe)</li>
- <li>Broadcom Ltd./Avago Tech (LSI) SAS 3816 (16 Port SAS/PCIe)</li>
- <li>Broadcom Ltd./Avago Tech (LSI) SAS 3916 (16 Port SAS/PCIe)</li>
-</ul>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="CONFIGURATION"><a class="permalink" href="#CONFIGURATION">CONFIGURATION</a></h1>
-<p class="Pp">In all tunable descriptions below, X represents the adapter
- number.</p>
-<p class="Pp">To disable MSI interrupts for all <code class="Nm">mpr</code>
- driver instances, set this tunable value in
- <a class="Xr">loader.conf(5)</a>:</p>
-<div class="Bd Pp Bd-indent Li">
-<pre>hw.mpr.disable_msi=1</pre>
-</div>
-<p class="Pp">To disable MSI interrupts for a specific
- <code class="Nm">mpr</code> driver instance, set this tunable value in
- <a class="Xr">loader.conf(5)</a>:</p>
-<div class="Bd Pp Bd-indent Li">
-<pre>dev.mpr.X.disable_msi=1</pre>
-</div>
-<p class="Pp">To disable MSI-X interrupts for all <code class="Nm">mpr</code>
- driver instances, set this tunable value in
- <a class="Xr">loader.conf(5)</a>:</p>
-<div class="Bd Pp Bd-indent Li">
-<pre>hw.mpr.disable_msix=1</pre>
-</div>
-<p class="Pp">To disable MSI-X interrupts for a specific
- <code class="Nm">mpr</code> driver instance, set this tunable value in
- <a class="Xr">loader.conf(5)</a>:</p>
-<div class="Bd Pp Bd-indent Li">
-<pre>dev.mpr.X.disable_msix=1</pre>
-</div>
-<p class="Pp">To set the maximum number of DMA chains allocated for all
- adapters, set this tunable in <a class="Xr">loader.conf(5)</a>:</p>
-<div class="Bd Pp Bd-indent Li">
-<pre>hw.mpr.max_chains=NNNN</pre>
-</div>
-<p class="Pp">To set the maximum number of DMA chains allocated for a specific
- adapter, set this tunable in <a class="Xr">loader.conf(5)</a>:</p>
-<div class="Bd Pp Bd-indent Li">
-<pre>dev.mpr.X.max_chains=NNNN</pre>
-</div>
-<p class="Pp">The default max_chains value is 16384.</p>
-<p class="Pp">The current number of free chain frames is stored in the
- dev.mpr.X.chain_free <a class="Xr">sysctl(8)</a> variable.</p>
-<p class="Pp">The lowest number of free chain frames seen since boot is stored
- in the dev.mpr.X.chain_free_lowwater <a class="Xr">sysctl(8)</a>
- variable.</p>
-<p class="Pp">The number of times that chain frame allocations have failed since
- boot is stored in the dev.mpr.X.chain_alloc_fail <a class="Xr">sysctl(8)</a>
- variable. This can be used to determine whether the max_chains tunable
- should be increased to help performance.</p>
-<p class="Pp">The current number of active I/O commands is shown in the
- dev.mpr.X.io_cmds_active <a class="Xr">sysctl(8)</a> variable.</p>
-<p class="Pp">The current number of free PRP pages is stored in the
- dev.mpr.X.prp_pages_free <a class="Xr">sysctl(8)</a> variable. PRP pages are
- used by NVMe devices for I/O transfers, much like Scatter/Gather lists.</p>
-<p class="Pp">The lowest number of free PRP pages seen since boot is stored in
- the dev.mpr.X.prp_pages_free_lowwater <a class="Xr">sysctl(8)</a>
- variable.</p>
-<p class="Pp">The number of times that PRP page allocations have failed since
- boot is stored in the dev.mpr.X.prp_page_alloc_fail
- <a class="Xr">sysctl(8)</a> variable.</p>
-<p class="Pp">To set the maximum number of pages that will be used per I/O for
- all adapters, set this tunable in <a class="Xr">loader.conf(5)</a>:</p>
-<div class="Bd Pp Bd-indent Li">
-<pre>hw.mpr.max_io_pages=NNNN</pre>
-</div>
-<p class="Pp">To set the maximum number of pages that will be used per I/O for a
- specific adapter, set this tunable in <a class="Xr">loader.conf(5)</a>:</p>
-<div class="Bd Pp Bd-indent Li">
-<pre>dev.mpr.X.max_io_pages=NNNN</pre>
-</div>
-<p class="Pp">The default max_io_pages value is -1, meaning that the maximum I/O
- size that will be used per I/O will be calculated using the IOCFacts values
- stored in the controller. The lowest value that the driver will use for
- max_io_pages is 1, otherwise IOCFacts will be used to calculate the maximum
- I/O size. The smaller I/O size calculated from either max_io_pages or
- IOCFacts will be the maximum I/O size used by the driver.</p>
-<p class="Pp">The highest number of active I/O commands seen since boot is
- stored in the dev.mpr.X.io_cmds_highwater <a class="Xr">sysctl(8)</a>
- variable.</p>
-<p class="Pp">Devices can be excluded from <code class="Nm">mpr</code> control
- for all adapters by setting this tunable in
- <a class="Xr">loader.conf(5)</a>:</p>
-<div class="Bd Pp Bd-indent Li">
-<pre>hw.mpr.exclude_ids=Y</pre>
-</div>
-<p class="Pp">Y represents the target ID of the device. If more than one device
- is to be excluded, target IDs are separated by commas.</p>
-<p class="Pp">Devices can be excluded from <code class="Nm">mpr</code> control
- for a specific adapter by setting this tunable in
- <a class="Xr">loader.conf(5)</a>:</p>
-<div class="Bd Pp Bd-indent Li">
-<pre>dev.mpr.X.exclude_ids=Y</pre>
-</div>
-<p class="Pp">Y represents the target ID of the device. If more than one device
- is to be excluded, target IDs are separated by commas.</p>
-<p class="Pp" id="StartStopUnit">The adapter can issue the
- <a class="permalink" href="#StartStopUnit"><b class="Sy">StartStopUnit</b></a>
- SCSI command to SATA direct-access devices during shutdown. This allows the
- device to quiesce powering down. To control this feature for all adapters,
- set the</p>
-<div class="Bd Pp Bd-indent Li">
-<pre>hw.mpr.enable_ssu</pre>
-</div>
-<p class="Pp">tunable in <a class="Xr">loader.conf(5)</a> to one of these
- values:</p>
-<div class="Bd-indent">
-<dl class="Bl-tag">
- <dt>0</dt>
- <dd>Do not send SSU to either HDDs or SSDs.</dd>
- <dt>1</dt>
- <dd>Send SSU to SSDs, but not to HDDs. This is the default value.</dd>
- <dt>2</dt>
- <dd>Send SSU to HDDs, but not to SSDs.</dd>
- <dt>3</dt>
- <dd>Send SSU to both HDDs and SSDs.</dd>
-</dl>
-</div>
-<p class="Pp">To control this feature for a specific adapter, set this tunable
- value in <a class="Xr">loader.conf(5)</a>:</p>
-<div class="Bd Pp Bd-indent Li">
-<pre>dev.mpr.X.enable_ssu</pre>
-</div>
-<p class="Pp">The same set of values are valid as when setting this tunable for
- all adapters.</p>
-<p class="Pp">SATA disks that take several seconds to spin up and fail the SATA
- Identify command might not be discovered by the driver. This problem can
- sometimes be overcome by increasing the value of the spinup wait time in
- <a class="Xr">loader.conf(5)</a> with the</p>
-<div class="Bd Pp Bd-indent Li">
-<pre>hw.mpr.spinup_wait_time=NNNN</pre>
-</div>
-<p class="Pp">tunable. NNNN represents the number of seconds to wait for SATA
- devices to spin up when the device fails the initial SATA Identify
- command.</p>
-<p class="Pp">Spinup wait times can be set for specific adapters in
- <a class="Xr">loader.conf(5)</a>: with the</p>
-<div class="Bd Pp Bd-indent Li">
-<pre>dev.mpr.X.spinup_wait_time=NNNN</pre>
-</div>
-<p class="Pp">tunable. NNNN is the number of seconds to wait for SATA devices to
- spin up when they fail the initial SATA Identify command.</p>
-<p class="Pp">The driver can map devices discovered by the adapter so that
- target IDs corresponding to a specific device persist across resets and
- reboots. In some cases it is possible for devices to lose their mapped IDs
- due to unexpected behavior from certain hardware, such as some types of
- enclosures. To overcome this problem, a tunable is provided that will force
- the driver to map devices using the Phy number associated with the device.
- This feature is not recommended if the topology includes multiple
- enclosures/expanders. If multiple enclosures/expanders are present in the
- topology, Phy numbers are repeated, causing all devices at these Phy numbers
- except the first device to fail enumeration. To control this feature for all
- adapters, set the</p>
-<div class="Bd Pp Bd-indent Li">
-<pre>hw.mpr.use_phy_num</pre>
-</div>
-<p class="Pp">tunable in <a class="Xr">loader.conf(5)</a> to one of these
- values:</p>
-<div class="Bd-indent">
-<dl class="Bl-tag">
- <dt>-1</dt>
- <dd>Only use Phy numbers to map devices and bypass the driver's mapping
- logic.</dd>
- <dt>0</dt>
- <dd>Never use Phy numbers to map devices.</dd>
- <dt>1</dt>
- <dd>Use Phy numbers to map devices, but only if the driver's mapping logic
- fails to map the device that is being enumerated. This is the default
- value.</dd>
-</dl>
-</div>
-<p class="Pp">To control this feature for a specific adapter, set this tunable
- value in <a class="Xr">loader.conf(5)</a>:</p>
-<div class="Bd Pp Bd-indent Li">
-<pre>dev.mpr.X.use_phy_num</pre>
-</div>
-<p class="Pp">The same set of values are valid as when setting this tunable for
- all adapters.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="DEBUGGING"><a class="permalink" href="#DEBUGGING">DEBUGGING</a></h1>
-<p class="Pp">Driver diagnostic printing is controlled in
- <a class="Xr">loader.conf(5)</a> by using the global
- <var class="Va">hw.mpr.debug_level</var> and per-device
- <var class="Va">dev.mpr.X.debug_level</var> tunables. One can alter the
- debug level for any adapter at run-time using the
- <a class="Xr">sysctl(8)</a> variable
- <var class="Va">dev.mpr.X.debug_level</var>.</p>
-<p class="Pp">All <var class="Va">debug_level</var> variables can be named by
- either an integer value or a text string. Multiple values can be specified
- together by either ORing the integer values or by providing a
- comma-separated list of names. A text string prefixed by &quot;+&quot; adds
- the specified debug levels to the existing set, while the prefix
- &quot;-&quot; removes them from the existing set. The current
- <var class="Va">debug_level</var> status is reported in both formats for
- convenience. The following levels are available:</p>
-<table class="Bl-column Bd-indent">
- <tr id="Flag">
- <td><a class="permalink" href="#Flag"><i class="Em">Flag</i></a></td>
- <td><a class="permalink" href="#Name"><i class="Em" id="Name">Name</i></a></td>
- <td><a class="permalink" href="#Description"><i class="Em" id="Description">Description</i></a></td>
- </tr>
- <tr>
- <td>0x0001</td>
- <td>info</td>
- <td>Basic information (enabled by default)</td>
- </tr>
- <tr>
- <td>0x0002</td>
- <td>fault</td>
- <td>Driver faults (enabled by default)</td>
- </tr>
- <tr>
- <td>0x0004</td>
- <td>event</td>
- <td>Controller events</td>
- </tr>
- <tr>
- <td>0x0008</td>
- <td>log</td>
- <td>Logging data from controller</td>
- </tr>
- <tr>
- <td>0x0010</td>
- <td>recovery</td>
- <td>Tracing of recovery operations</td>
- </tr>
- <tr>
- <td>0x0020</td>
- <td>error</td>
- <td>Parameter errors and programming bugs</td>
- </tr>
- <tr>
- <td>0x0040</td>
- <td>init</td>
- <td>System initialization operations</td>
- </tr>
- <tr>
- <td>0x0080</td>
- <td>xinfo</td>
- <td>More detailed information</td>
- </tr>
- <tr>
- <td>0x0100</td>
- <td>user</td>
- <td>Tracing of user-generated commands (IOCTL)</td>
- </tr>
- <tr>
- <td>0x0200</td>
- <td>mapping</td>
- <td>Tracing of device mapping</td>
- </tr>
- <tr>
- <td>0x0400</td>
- <td>trace</td>
- <td>Tracing through driver functions</td>
- </tr>
-</table>
-</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">cam(4)</a>, <a class="Xr">cd(4)</a>,
- <a class="Xr">ch(4)</a>, <a class="Xr">da(4)</a>, <a class="Xr">mps(4)</a>,
- <a class="Xr">mpt(4)</a>, <a class="Xr">pci(4)</a>, <a class="Xr">sa(4)</a>,
- <a class="Xr">scsi(4)</a>, <a class="Xr">targ(4)</a>,
- <a class="Xr">loader.conf(5)</a>, <a class="Xr">mprutil(8)</a>,
- <a class="Xr">sysctl(8)</a></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">mpr</code> driver first appeared in
- <span class="Ux">FreeBSD 9.3</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">mpr</code> driver was originally written by
- <span class="An">Scott Long</span>
- &lt;<a class="Mt" href="mailto:scottl@FreeBSD.org">scottl@FreeBSD.org</a>&gt;.
- It has been improved and tested by LSI Corporation, Avago Technologies
- (formerly LSI), and Broadcom Ltd. (formerly Avago).</p>
-<p class="Pp">This manual page was written by <span class="An">Ken Merry</span>
- &lt;<a class="Mt" href="mailto:ken@FreeBSD.org">ken@FreeBSD.org</a>&gt; with
- additional input from <span class="An">Stephen McConnell</span>
- &lt;<a class="Mt" href="mailto:slm@FreeBSD.org">slm@FreeBSD.org</a>&gt;.</p>
-</section>
-</div>
-<table class="foot">
- <tr>
- <td class="foot-date">September 28, 2025</td>
- <td class="foot-os">FreeBSD 15.0</td>
- </tr>
-</table>