1.\" 2.\" Copyright (c) 2010 Spectra Logic Corporation 3.\" Copyright (c) 2014 LSI Corp 4.\" All rights reserved. 5.\" 6.\" Redistribution and use in source and binary forms, with or without 7.\" modification, are permitted provided that the following conditions 8.\" are met: 9.\" 1. Redistributions of source code must retain the above copyright 10.\" notice, this list of conditions, and the following disclaimer, 11.\" without modification. 12.\" 2. Redistributions in binary form must reproduce at minimum a disclaimer 13.\" substantially similar to the "NO WARRANTY" disclaimer below 14.\" ("Disclaimer") and any redistribution must be conditioned upon 15.\" including a substantially similar Disclaimer requirement for further 16.\" binary redistribution. 17.\" 18.\" NO WARRANTY 19.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20.\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 22.\" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23.\" HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 25.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 27.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 28.\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29.\" POSSIBILITY OF SUCH DAMAGES. 30.\" 31.\" mpr driver man page. 32.\" 33.\" Author: Ken Merry <ken@FreeBSD.org> 34.\" Author: Stephen McConnell <stephen.mcconnell@lsi.com> 35.\" 36.\" $Id$ 37.\" $FreeBSD$ 38.\" 39.Dd May 2, 2014 40.Dt MPR 4 41.Os 42.Sh NAME 43.Nm mpr 44.Nd "LSI Fusion-MPT 3 IT/IR 12Gb/s Serial Attached SCSI/SATA driver" 45.Sh SYNOPSIS 46To compile this driver into the kernel, place the following lines in your 47kernel configuration file: 48.Bd -ragged -offset indent 49.Cd "device pci" 50.Cd "device scbus" 51.Cd "device mpr" 52.Ed 53.Pp 54Alternatively, to load the driver as a 55module at boot time, place the following line in 56.Xr loader.conf 5 : 57.Bd -literal -offset indent 58mpr_load="YES" 59.Ed 60.Sh DESCRIPTION 61The 62.Nm 63driver provides support for LSI Fusion-MPT 3 IT/IR 64.Tn SAS 65controllers. 66.Sh HARDWARE 67The following controllers are supported by the 68.Nm 69driver: 70.Pp 71.Bl -bullet -compact 72.It 73LSI SAS 3004 (4 Port SAS) 74.It 75LSI SAS 3008 (8 Port SAS) 76.It 77LSI SAS 3108 (8 Port SAS) 78.El 79.Sh CONFIGURATION 80To disable MSI interrupts for all 81.Nm 82driver instances, set the following tunable value in 83.Xr loader.conf 5 : 84.Bd -literal -offset indent 85hw.mpr.disable_msi=1 86.Ed 87.Pp 88To disable MSI interrupts for a specific 89.Nm 90driver instance, set the following tunable value in 91.Xr loader.conf 5 : 92.Bd -literal -offset indent 93dev.mpr.X.disable_msi=1 94.Ed 95.Pp 96where X is the adapter number. 97.Pp 98To disable MSI-X interrupts for all 99.Nm 100driver instances, set the following tunable value in 101.Xr loader.conf 5 : 102.Bd -literal -offset indent 103hw.mpr.disable_msix=1 104.Ed 105.Pp 106To disable MSI-X interrupts for a specific 107.Nm 108driver instance, set the following tunable value in 109.Xr loader.conf 5 : 110.Bd -literal -offset indent 111dev.mpr.X.disable_msix=1 112.Ed 113.Pp 114To set the maximum number of DMA chains allocated for all adapters, set 115the following variable in 116.Xr loader.conf 5 : 117.Bd -literal -offset indent 118hw.mpr.max_chains=NNNN 119.Ed 120.Pp 121To set the maximum number of DMA chains allocated for a specific adapter, 122set the following variable in 123.Xr loader.conf 5 : 124.Bd -literal -offset indent 125dev.mpr.X.max_chains=NNNN 126.Ed 127.Pp 128This variable may also be viewed via 129.Xr sysctl 8 130to see the maximum set for a given adapter. 131.Pp 132The current number of free chain frames may be seen via the 133dev.mpr.X.chain_free 134.Xr sysctl 8 135variable. 136.Pp 137The lowest number of free chain frames may be seen via the 138dev.mpr.X.chain_free_lowwater 139.Xr sysctl 8 140variable. 141.Pp 142The current number of active I/O commands is shown in the 143dev.mpr.X.io_cmds_active 144.Xr sysctl 8 145variable. 146.Pp 147The maximum number of active I/O commands seen since boot is shown in the 148dev.mpr.X.io_cmds_highwater 149.Xr sysctl 8 150variable. 151.Pp 152Devices can be excluded from 153.Nm 154control for all adapters by setting the following variable in 155.Xr loader.conf 5 : 156.Bd -literal -offset indent 157hw.mpr.exclude_ids=Y 158.Ed 159.Pp 160where Y is the target ID of the device. 161If more than one device is to be 162excluded, target ID's are separated by commas. 163.Pp 164Devices can be excluded from 165.Nm 166control for a specific adapter by setting the following variable in 167.Xr loader.conf 5 : 168.Bd -literal -offset indent 169dev.mpr.X.exclude_ids=Y 170.Ed 171.Pp 172where X is the adapter number and Y is the target ID of the device. 173If more 174than one device is to be excluded, target ID's are separated by commas. 175.Sh DEBUGGING 176To enable debugging prints from the 177.Nm 178driver, set the 179.Bd -literal -offset indent 180hw.mpr.X.debug_level 181.Ed 182.Pp 183variable, where X is the adapter number, either in 184.Xr loader.conf 5 185or via 186.Xr sysctl 8 . 187The following bits have the described effects: 188.Bd -literal -offset indent 1890x0001 Enable informational prints. 1900x0002 Enable prints for driver faults. 1910x0004 Enable prints for controller events. 1920x0008 Enable prints for controller logging. 1930x0010 Enable prints for tracing recovery operations. 1940x0020 Enable prints for parameter errors and programming bugs. 1950x0040 Enable prints for system initialization operations. 1960x0080 Enable prints for more detailed information. 1970x0100 Enable prints for user-generated commands. 1980x0200 Enable prints for device mapping. 1990x0400 Enable prints for tracing through driver functions. 200.Ed 201.Sh SEE ALSO 202.Xr cam 4 , 203.Xr cd 4 , 204.Xr ch 4 , 205.Xr da 4 , 206.Xr mps 4 , 207.Xr mpt 4 , 208.Xr pci 4 , 209.Xr sa 4 , 210.Xr scsi 4 , 211.Xr targ 4 , 212.Xr loader.conf 5 , 213.Xr sysctl 8 214.Sh HISTORY 215The 216.Nm 217driver first appeared in FreeBSD 9.3. 218.Sh AUTHORS 219The 220.Nm 221driver was originally written by 222.An -nosplit 223.An Scott Long Aq Mt scottl@FreeBSD.org . 224It has been improved and tested by LSI Corporation. 225.Pp 226This man page was written by 227.An Ken Merry Aq Mt ken@FreeBSD.org 228with additional input from 229.An Stephen McConnell Aq Mt stephen.mcconnell@lsi.com . 230