1.\" Copyright (c) 2014 LSI Corp 2.\" All rights reserved. 3.\" Author: Kashyap Desai 4.\" Support: freebsdraid@lsi.com 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.\" 2. Redistributions in binary form must reproduce the above copyright 12.\" notice, this list of conditions and the following disclaimer in the 13.\" documentation and/or other materials provided with the distribution. 14.\" 3. Neither the name of the <ORGANIZATION> nor the names of its 15.\" contributors may be used to endorse or promote products derived 16.\" from this software without specific prior written permission. 17.\" 18.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19.\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 21.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 22.\" COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 23.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 24.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26.\" CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 28.\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29.\" POSSIBILITY OF SUCH DAMAGE. 30.\" 31.\" The views and conclusions contained in the software and documentation 32.\" are those of the authors and should not be interpreted as representing 33.\" official policies, either expressed or implied, of the FreeBSD Project. 34.\" 35.\" $FreeBSD$ 36.\" 37.Dd May 8, 2014 38.Dt MRSAS 4 39.Os 40.Sh NAME 41.Nm mrsas 42.Nd "LSI MegaRAID 6Gb/s and 12Gb/s SAS+SATA RAID controller driver" 43.Sh SYNOPSIS 44To compile this driver into the kernel, 45place the following lines in your 46kernel configuration file: 47.Bd -ragged -offset indent 48.Cd "device pci" 49.Cd "device mrsas" 50.Ed 51.Pp 52Alternatively, to load the driver as a 53module at boot time, place the following line in 54.Xr loader.conf 5 : 55.Bd -literal -offset indent 56mrsas_load="YES" 57.Ed 58.Sh DESCRIPTION 59The 60.Nm 61driver will detect LSI's next generation (6Gb/s and 12Gb/s) PCI Express 62SAS/SATA RAID controllers. 63See the 64.Nm HARDWARE 65section for the supported devices list. 66A disk (virtual disk/physical disk) attached to the 67.Nm 68driver will be visible to the user through 69.Xr camcontrol 8 70as 71.Pa /dev/da? 72device nodes. 73A simple management interface is also provided on a per-controller basis via the 74.Pa /dev/mrsas? 75device node. 76.Pp 77The 78.Nm 79name is derived from the phrase "MegaRAID SAS HBA", which is 80substantially different than the old "MegaRAID" Driver 81.Xr mfi 4 82which does not connect targets 83to the 84.Xr cam 4 85layer and thus requires a new driver which attaches targets to the 86.Xr cam 4 87layer. 88Older MegaRAID controllers are supported by 89.Xr mfi 4 90and will not work with 91.Nm , 92but both the 93.Xr mfi 4 94and 95.Nm 96drivers can detect and manage the LSI MegaRAID SAS 2208/2308/3008/3108 series of 97controllers. 98.Pp 99The 100.Xr device.hints 5 101option is provided to tune the 102.Nm 103driver's behavior for LSI MegaRAID SAS 2208/2308/3008/3108 controllers. 104By default, the 105.Xr mfi 4 106driver will detect these controllers. 107See the 108.Nm PRIORITY 109section to know more about driver priority for MR-Fusion devices. 110.Pp 111.Nm 112will provide a priority of (-30) (between 113.Dv BUS_PROBE_DEFAULT 114and 115.Dv BUS_PROBE_LOW_PRIORITY ) 116at probe call for device id's 0x005B, 0x005D, and 1170x005F so that 118.Nm 119does not take control of these devices without user intervention. 120.Sh HARDWARE 121The 122.Nm 123driver supports the following hardware: 124.Pp 125[ Thunderbolt 6Gb/s MR controller ] 126.Bl -bullet -compact 127.It 128LSI MegaRAID SAS 9265 129.It 130LSI MegaRAID SAS 9266 131.It 132LSI MegaRAID SAS 9267 133.It 134LSI MegaRAID SAS 9270 135.It 136LSI MegaRAID SAS 9271 137.It 138LSI MegaRAID SAS 9272 139.It 140LSI MegaRAID SAS 9285 141.It 142LSI MegaRAID SAS 9286 143.It 144DELL PERC H810 145.It 146DELL PERC H710/P 147.El 148.Pp 149[ Invader/Fury 12Gb/s MR controller ] 150.Bl -bullet -compact 151.It 152LSI MegaRAID SAS 9380 153.It 154LSI MegaRAID SAS 9361 155.It 156LSI MegaRAID SAS 9341 157.It 158DELL PERC H830 159.It 160DELL PERC H730/P 161.It 162DELL PERC H330 163.El 164.Sh CONFIGURATION 165To disable Online Controller Reset(OCR) for a specific 166.Nm 167driver instance, set the 168following tunable value in 169.Xr loader.conf 5 : 170.Bd -literal -offset indent 171dev.mrsas.X.disable_ocr=1 172.Ed 173.Pp 174where X is the adapter number. 175.Pp 176To change the I/O timeout value for a specific 177.Nm 178driver instance, set the following tunable value in 179.Xr loader.conf 5 : 180.Bd -literal -offset indent 181dev.mrsas.X.mrsas_io_timeout=NNNNNN 182.Ed 183.Pp 184where NNNNNN is the timeout value in milli-seconds. 185.Pp 186To change the firmware fault check timer value for a specific 187.Nm 188driver instance, set the following tunable value in 189.Xr loader.conf 5 : 190.Bd -literal -offset indent 191dev.mrsas.X.mrsas_fw_fault_check_delay=NN 192.Ed 193.Pp 194where NN is the fault check delay value in seconds. 195.Pp 196The current number of active I/O commands is shown in the 197.Va dev.mrsas.X.fw_outstanding 198.Xr sysctl 8 199variable. 200.Sh DEBUGGING 201To enable debugging prints from the 202.Nm 203driver, set the 204.Va hw.mrsas.X.debug_level 205variable, where X is the adapter number, either in 206.Xr loader.conf 5 207or via 208.Xr sysctl 8 . 209The following bits have the described effects: 210.Bl -tag -width indent -offset indent 211.It 0x01 212Enable informational prints. 213.It 0x02 214Enable tracing prints. 215.It 0x04 216Enable prints for driver faults. 217.It 0x08 218Enable prints for OCR and I/O timeout. 219.It 0x10 220Enable prints for AEN events. 221.El 222.Sh PRIORITY 223The 224.Nm 225driver will always set a default (-30) priority in the PCI subsystem for 226selection of MR-Fusion cards. 227(It is between 228.Dv BUS_PROBE_DEFAULT 229and 230.Dv BUS_PROBE_LOW_PRIORITY ) . 231MR-Fusion Controllers include all cards with the 232Device IDs - 2330x005B, 2340x005D, 2350x005F. 236.Pp 237The 238.Xr mfi 4 239driver will set a priority of either 240.Dv BUS_PROBE_DEFAULT 241or 242.Dv BUS_PROBE_LOW_PRIORITY 243(depending on the device.hints setting) in the PCI 244subsystem for selection of MR-Fusion cards. 245With the above design in place, the 246.Xr mfi 4 247driver will attach to a MR-Fusion card given that it has a higher priority than 248.Nm . 249.Pp 250Using 251.Pa /boot/device.hints 252(as mentioned below), the user can provide a preference 253for the 254.Nm 255driver to detect a MR-Fusion card instead of the 256.Xr mfi 4 257driver. 258.Bd -ragged -offset indent 259.Cd hw.mfi.mrsas_enable="1" 260.Ed 261.Pp 262At boot time, the 263.Xr mfi 4 264driver will get priority to detect MR-Fusion controllers by default. 265Before 266changing this default driver selection policy, LSI advises users to understand 267how the driver selection policy works. 268LSI's policy is to provide priority to 269the 270.Xr mfi 4 271driver to detect MR-Fusion cards, but allow for the ability to choose the 272.Nm 273driver to detect MR-Fusion cards. 274.Pp 275LSI recommends setting hw.mfi.mrsas_enable="0" for customers who are using the 276older 277.Xr mfi 4 278driver and do not want to switch to 279.Nm . 280For those customers who are using a MR-Fusion controller for the first time, LSI 281recommends using the 282.Nm 283driver and setting hw.mfi.mrsas_enable="1". 284.Pp 285Changing the default behavior is well tested under most conditions, but 286unexpected behavior may pop up if more complex and unrealistic operations are 287executed by switching between the 288.Xr mfi 4 289and 290.Nm 291drivers for MR-Fusion. 292Switching drivers is designed to happen only one time. 293Although multiple 294switching is possible, it is not recommended. 295The user should decide from 296.Nm Start of Day 297which driver they want to use for the MR-Fusion card. 298.Pp 299The user may see different device names when switching from 300.Xr mfi 4 301to 302.Nm . 303This behavior is 304.Nm Functions As Designed 305and the user needs to change the 306.Xr fstab 5 307entry manually if they are doing any experiments with 308.Xr mfi 4 309and 310.Nm 311interoperability. 312.Sh FILES 313.Bl -tag -width ".Pa /dev/mrsas?" -compact 314.It Pa /dev/da? 315array/logical disk interface 316.It Pa /dev/mrsas? 317management interface 318.El 319.Sh SEE ALSO 320.Xr cam 4 , 321.Xr mfi 4 , 322.Xr pci 4 , 323.Xr device.hints 5 , 324.Xr camcontrol 8 325.Sh HISTORY 326The 327.Nm 328driver first appeared in 329.Fx 10.1 . 330.Bd -ragged 331.Cd "mfi Driver:" 332.Xr mfi 4 333is the old 334.Fx 335driver which started with support for Gen-1 Controllers and 336was extended to support up to MR-Fusion (Device ID = 0x005B, 0x005D, 0x005F). 337.Ed 338.Bd -ragged 339.Cd "mrsas Driver:" 340.Nm 341is the new driver reworked by LSI which supports Thunderbolt and onward 342products. 343The SAS+SATA RAID controller with device id 0x005b is referred to as 344the Thunderbolt controller throughout this man page. 345.Ed 346.Bd -ragged 347.Nm cam aware HBA drivers: 348.Fx 349has a 350.Xr cam 4 351layer which attaches storage devices and provides a common access mechanism to 352storage controllers and attached devices. 353The 354.Nm 355driver is 356.Xr cam 4 357aware and devices associated with 358.Nm 359can be seen using 360.Xr camcontrol 8 . 361The 362.Xr mfi 4 363driver does not understand the 364.Xr cam 4 365layer and it directly associates storage disks to the block layer. 366.Pp 367.Nm Thunderbolt Controller: 368This is the 6Gb/s MegaRAID HBA card which has device id 0x005B. 369.Pp 370.Nm Invader Controller: 371This is 12Gb/s MegaRAID HBA card which has device id 0x005D. 372.Pp 373.Nm Fury Controller: 374This is the 12Gb/s MegaRAID HBA card which has device id 0x005F. 375.Ed 376.Sh AUTHORS 377The 378.Nm 379driver and this manual page were written by 380.An Kashyap Desai Aq Mt Kashyap.Desai@lsi.com . 381.Sh TODO 382The driver does not support big-endian architectures at this time. 383.Pp 384The driver does not support alias for device name (it is required when the user 385switches between two drivers and does not want to edit 386.Pa /etc/fstab 387manually). 388.Pp 389The 390.Nm 391driver exposes devices as 392.Pa /dev/da? , 393whereas 394.Xr mfi 4 395exposes devices as 396.Pa /dev/mfid? . 397.Pp 398.Nm 399does not support the Linux Emulator interface. 400.Pp 401.Nm 402will not work with 403.Xr mfiutil 8 . 404