---
name: "mrsas"
section: "4"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/mrsas"
---

# mrsas(4)

Broadcom/LSI MegaRAID 6/12Gb/s SAS+SATA RAID controller driver

## NAME

**mrsas** – Broadcom/LSI MegaRAID 6/12Gb/s SAS+SATA RAID controller driver

## SYNOPSIS

**device pci** **device mrsas**

In [loader.conf(5)](/loader.conf/5.md): **mrsas\_load="YES"**

In [sysctl.conf(5)](/sysctl.conf/5.md): **dev.mrsas.X.disable\_ocr** **dev.mrsas.X.fw\_outstanding** **dev.mrsas.X.mrsas\_fw\_fault\_check\_delay** **dev.mrsas.X.mrsas\_io\_timeout** **hw.mrsas.X.debug\_level**

## DESCRIPTION

The **mrsas** driver will detect Broadcom/LSI's 6Gb/s and 12Gb/s PCI Express SAS/SATA/NVMe RAID controllers. A disk (virtual disk/physical disk) attached to the **mrsas** driver will be visible to the user through [camcontrol(8)](/camcontrol/8.md) as */dev/da?* device nodes. A simple management interface is also provided per-controller via the */dev/mrsas?* device node.

The **mrsas** name is derived from the phrase "MegaRAID SAS HBA", which is substantially different than the old "MegaRAID" Driver [mfi(4)](/mfi/4.md) which does not connect targets to the [cam(4)](/cam/4.md) layer and thus requires a new driver which attaches targets to the [cam(4)](/cam/4.md) layer. Older MegaRAID controllers are supported by [mfi(4)](/mfi/4.md) and will not work with **mrsas**, but both the [mfi(4)](/mfi/4.md) and **mrsas** drivers can detect and manage the Broadcom/LSI MegaRAID SAS 2208/2308/3008/3108 series of controllers.

The [device.hints(5)](/device.hints/5.md) option is provided to tune the **mrsas** driver's behavior for LSI MegaRAID SAS 2208/2308/3008/3108 controllers. By default, the [mfi(4)](/mfi/4.md) driver will detect these controllers. See the PRIORITY section to know more about driver priority for MR-Fusion devices.

**mrsas** will provide a priority of (-30) (between BUS\_PROBE\_DEFAULT and BUS\_PROBE\_LOW\_PRIORITY) at probe call for device id's 0x005B, 0x005D, and 0x005F so that **mrsas** does not take control of these devices without user intervention.

Solid-state drives (SSD) get ATA TRIM support with **mrsas** if underlying adapter allows it. This may require configuring SSD as Non-RAID drive rather then JBOD virtual mode.

## HARDWARE

The **mrsas** driver supports the following Broadcom/LSI SATA/SAS RAID controllers:

| | | |
| --- | --- | --- |
| Controller | Chip | Speed |
| Broadcom SAS3916 | Aero | 12Gb/s |
| Broadcom SAS3908 | Aero | 12Gb/s |
| LSI MegaRAID SAS 9380 | Invader/Fury | 12Gb/s |
| LSI MegaRAID SAS 9361 | Invader/Fury | 12Gb/s |
| LSI MegaRAID SAS 9341 | Invader/Fury | 12Gb/s |
| LSI MegaRAID SAS 9286 | Thunderbolt | 6Gb/s |
| LSI MegaRAID SAS 9285 | Thunderbolt | 6Gb/s |
| LSI MegaRAID SAS 9272 | Thunderbolt | 6Gb/s |
| LSI MegaRAID SAS 9271 | Thunderbolt | 6Gb/s |
| LSI MegaRAID SAS 9270 | Thunderbolt | 6Gb/s |
| LSI MegaRAID SAS 9267 | Thunderbolt | 6Gb/s |
| LSI MegaRAID SAS 9266 | Thunderbolt | 6Gb/s |
| LSI MegaRAID SAS 9265 | Thunderbolt | 6Gb/s |
| LSI SAS 3108 |  | 12Gb/s |
| LSI SAS 3008 |  | 12Gb/s |
| LSI SAS 2308 |  | 6Gb/s |
| LSI SAS 2208 |  | 6Gb/s |
| DELL PERC H830 | Invader/Fury | 12Gb/s |
| DELL PERC H810 | Thunderbolt | 6Gb/s |
| DELL PERC H730/P | Invader/Fury | 12Gb/s |
| DELL PERC H710/P | Thunderbolt | 6Gb/s |
| DELL PERC H330 | Invader/Fury | 12Gb/s |
| Fujitsu D3116 | Thunderbolt | 6Gb/s |

## CONFIGURATION

To disable Online Controller Reset(OCR) for a specific **mrsas** driver instance, set the following tunable value in [loader.conf(5)](/loader.conf/5.md):

```
dev.mrsas.X.disable_ocr=1
```

where X is the adapter number.

To change the I/O timeout value for a specific **mrsas** driver instance, set the following tunable value in [loader.conf(5)](/loader.conf/5.md):

```
dev.mrsas.X.mrsas_io_timeout=NNNNNN
```

where NNNNNN is the timeout value in milli-seconds.

To change the firmware fault check timer value for a specific **mrsas** driver instance, set the following tunable value in [loader.conf(5)](/loader.conf/5.md):

```
dev.mrsas.X.mrsas_fw_fault_check_delay=NN
```

where NN is the fault check delay value in seconds.

The current number of active I/O commands is shown in the *dev.mrsas.X.fw\_outstanding* [sysctl(8)](/sysctl/8.md) variable.

## DEBUGGING

To enable debugging prints from the **mrsas** driver, set the *hw.mrsas.X.debug\_level* variable, where X is the adapter number, either in [loader.conf(5)](/loader.conf/5.md) or via [sysctl(8)](/sysctl/8.md). The following bits have the described effects:

- 0x01

  Enable informational prints.

- 0x02

  Enable tracing prints.

- 0x04

  Enable prints for driver faults.

- 0x08

  Enable prints for OCR and I/O timeout.

- 0x10

  Enable prints for AEN events.

## PRIORITY

The **mrsas** driver will always set a default (-30) priority in the PCI subsystem for selection of MR-Fusion cards. (It is between BUS\_PROBE\_DEFAULT and BUS\_PROBE\_LOW\_PRIORITY). MR-Fusion Controllers include all cards with the Device IDs - 0x005B, 0x005D, 0x005F.

The [mfi(4)](/mfi/4.md) driver will set a priority of either BUS\_PROBE\_DEFAULT or BUS\_PROBE\_LOW\_PRIORITY (depending on the device.hints setting) in the PCI subsystem for selection of MR-Fusion cards. With the above design in place, the [mfi(4)](/mfi/4.md) driver will attach to a MR-Fusion card given that it has a higher priority than **mrsas**.

Using */boot/device.hints* (as mentioned below), the user can provide a preference for the **mrsas** driver to detect a MR-Fusion card instead of the [mfi(4)](/mfi/4.md) driver.

**hw.mfi.mrsas\_enable="1"**

At boot time, the [mfi(4)](/mfi/4.md) driver will get priority to detect MR-Fusion controllers by default. Before changing this default driver selection policy, LSI advises users to understand how the driver selection policy works. LSI's policy is to provide priority to the [mfi(4)](/mfi/4.md) driver to detect MR-Fusion cards, but allow for the ability to choose the **mrsas** driver to detect MR-Fusion cards.

LSI recommends setting *hw.mfi.mrsas\_enable="0"* for customers who are using the older [mfi(4)](/mfi/4.md) driver and do not want to switch to **mrsas**. For those using a MR-Fusion controller for the first time, LSI recommends using the **mrsas** driver and setting *hw.mfi.mrsas\_enable="1".*

Changing the default behavior is well tested under most conditions, but unexpected behavior may pop up if more complex and unrealistic operations are executed by switching between the [mfi(4)](/mfi/4.md) and **mrsas** drivers for MR-Fusion. Switching drivers is designed to happen only one time. Although multiple switching is possible, it is not recommended. The user should decide from **boot** which driver they want to use for the MR-Fusion card.

The user may see different device names when switching from [mfi(4)](/mfi/4.md) to **mrsas**. This behavior **works** **as** **intended** and the user needs to change the [fstab(5)](/fstab/5.md) entry manually if they are doing any experiments with [mfi(4)](/mfi/4.md) and **mrsas** interoperability.

## FILES

- */dev/da?*

  array/logical disk interface

- */dev/mrsas?*

  management interface

## SEE ALSO

[cam(4)](/cam/4.md), [mfi(4)](/mfi/4.md), [pci(4)](/pci/4.md), [device.hints(5)](/device.hints/5.md), [camcontrol(8)](/camcontrol/8.md)

## HISTORY

The **mrsas** driver first appeared in FreeBSD 10.1.

**mfi Driver:** [mfi(4)](/mfi/4.md) is the old FreeBSD driver which started with support for Gen-1 Controllers and was extended to support up to MR-Fusion (Device ID = 0x005B, 0x005D, 0x005F).

**mrsas Driver:** **mrsas** is the new driver reworked by LSI which supports Thunderbolt and onward products. The SAS+SATA RAID controller with device id 0x005B is referred to as the Thunderbolt controller throughout this man page.

**cam** **aware** **HBA** **drivers:** FreeBSD has a [cam(4)](/cam/4.md) layer which attaches storage devices and provides a common access mechanism to storage controllers and attached devices. The **mrsas** driver is [cam(4)](/cam/4.md) aware and devices associated with **mrsas** can be seen using [camcontrol(8)](/camcontrol/8.md). The [mfi(4)](/mfi/4.md) driver does not understand the [cam(4)](/cam/4.md) layer and it directly associates storage disks to the block layer.

**Thunderbolt** **Controller:** This is the 6Gb/s MegaRAID HBA card which has device id 0x005B.

**Invader** **Controller:** This is 12Gb/s MegaRAID HBA card which has device id 0x005D.

**Fury** **Controller:** This is the 12Gb/s MegaRAID HBA card which has device id 0x005F.

## AUTHORS

The **mrsas** driver and this manual page were written by Kashyap Desai ⟨*Kashyap.Desai@lsi.com*⟩.

## CAVEATS

The **mrsas** driver exposes devices as */dev/da?*, whereas [mfi(4)](/mfi/4.md) exposes devices as */dev/mfid?*.

**mrsas** does not support the Linux Emulator Interface, [mfiutil(8)](/mfiutil/8.md), or device name aliases for switching drivers without editing [fstab(5)](/fstab/5.md).
