xref: /freebsd/share/man/man4/mrsas.4 (revision 8e648814b040d481f0429a2675e62af92b23bdd0)
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