Crossflashing Controllers

From unRAID
Jump to: navigation, search
work in progress, not ready yet

Warning! While great care has been taken to import the info from the forum thread, it has been done by cut and paste, and it's always possible that errors have been made. In addition, only the first 4 posts have been brought over so far, so there's over 71 more pages of occasional additions and revisions to bring over! Good luck, fireball!

Crossflashing Controllers

Some controllers come ready to plug in and use, and on first boot all attached drives are immediately visible and available. If that were true of all controllers, then you wouldn't need this page! But unfortunately there are a number of very good controllers that do need to be reflashed, in order to work correctly with unRAID. Sometimes they need a firmware upgrade, sometimes they need to be flashed to look like a different controller, and sometimes they need to be put into a different mode.
This page is designed to collect and present all known info for crossflashing drive controllers for unRAID systems. In fact, it is nothing unRAID specific, it can be also used for other systems that need to have the disk drives accessible without any intermediate layer, e.g. FreeNAS
It describes both firmware and tools, and the appropriate versions. The information is dynamic, will be updated as needed.
This page is derived from the excellent work spread throughout the forum thread entitled LSI Controller FW updates IR/IT modes, first started by madburg.
Considerable credit goes to madburg for his many contributions to this effort. Some of the text on this page is a direct quote of his work.
Later, fireball3 took on much of the labor of keeping the forum thread updated, and going forward will be working hard to maintain this wiki page now.
Since madburgs initial post there have been following over 1k posts and finding the right information has become hard to find in his thread. The intention is to channel all available information on the following pages.
Nevertheless, this is an ongoing effort and the result will not cover all available controllers but the most popular ones. If you are looking for specific information not available here, please have a look at the hardware compatibility section in the wiki. Usually you will find a link leading you to users experience.

Why should we care about firmware flashing?

"It is a well known practice that many vendors re-brand LSI RAID cards and host bus adapters (HBAs) using different firmware and re-sell them as their own. Oftentimes, re-branded cards are less expensive to acquire than their LSI counterparts making re-brands highly desirable."
"It is also well known that using the initiator-target (IT) firmware mode is a great way to give up the RAID features of the cards, treating the cards instead as simple HBAs in IT mode. In turn, this allows operating systems that handle parity calculations to directly access the drives, thereby reducing the rate of TLER dropouts from RAID arrays among other things."


General guidelines

  • Ideally you want to check what kind of controller fits your needs before you think of flashing it. The hardware compatibility section in the wiki can help you find the right piece of hardware. Given, you have it already in your hands and found out you need to flash it, then you have to identify your controller.
  • Search for your controller below and carefully follow the instructions. Sometimes there will be 2 ways to do it, and both may be described, use what works best for you.
  • If the OS of a tool has an admin mode, make sure you have admin privileges. DOS does not, but almost everything else does.
  • Once you have flashed your controller card to IT mode, it is recommended that you change the "Boot Support" to "Disabled" via the controllers BIOS settings (CTRL-C). This will avoid making any drive bootable in the system BIOS, so the system will post much quicker, and it lets unRAID have sole control over the drives, which is what we want.
Important Warning!
  • *** Disclaimer – You are doing this at your own risk by performing a flash on a controller ***
This is done all day long by many people in the world, but sometimes cards are bad or going bad, or you lose power, etc... Please keep this in mind!
Flashing a card should normally always work, especially if you followed the instructions carefully. But there are a few cases where cards have been 'bricked', completely unusable thereafter and not recoverable, only suitable for the trash.
  • Best practices are:
  1. Plug your PC into a UPS, the PC you have installed the controller into. Flashing is a fragile process. You don't want *any* power glitches at all. Or for that matter any other interruptions of the flash process, once it has started!
  2. Don’t boot off a drive that is connected to the controller you will be flashing
  3. Make sure, you understood the process! Ask your questions before - not after!
  4. If an error is thrown at you, keep records and ask for help!
Hardware requirements
  1. A PC using Windows/Mac OS/Linux is needed to prepare a bootable USB thumb drive.
  2. A second PC where the controller card that needs to be flashed can be plugged into and where the actual flashing takes place.
    Make sure this system runs stable!
    If you don't have a spare machine, you can use your unRAID server but you should unplug all drives and remove all other controllers. I don't recommend this as of my credo "Never touch a running system" but sometimes there is no way out.
  3. The controller card itself of course.
  4. There can be situations when you need some electrical tape. See known issues.
Terms and abbreviations
FW - firmware - the embedded software that operates a card or chipset (often can be replaced)
BIOS - basic I/O system - basic software that allows to change controller settings without the need to flash
UEFI - Unified Extensible Firmware Interface - the successor of BIOS
flash - to replace all or part of the firmware on a card or chipset
IT - initiator-target - passthrough operating mode of a controller (this is what we need, a card in IT mode)
IR - integrated-RAID - RAID operating mode of a controller (this is how the controllers get shipped usually)
SBR - Serial Boot ROM - tbd
SPD - Serial Presence Detect - tbd
Additional notes / known issues
  • Some boards will refuse to boot or end up in a boot-loop with a controller plugged into the PCIe slot instead of a graphics card. Another effect, with the same root cause, might be disabled RAM slots.
In this case you can try to fix the issue by applying the tape mod.
You need to mask the pins B5 (SMCLK, SMBus clock) and B6 (SMDAT, SMBus data) on the controller card.
According to the PCIe spec, those pins can be optionally used for ASF and IPMI applications. If this is implemented on your board, it will affect all PCIe slots. This problem can be on the flashing rig as well as on the unRAID server itself!
  • If you receive a "Failed to initialize PAL" error while trying to flash the controller card, it is most likely due to your motherboard having limited option ROM. You will need to find another motherboard to use to flash the controller card. If your motherboard supports UEFI it will also work if you boot into UEFI shell and perform the necessary steps. See Boot drives
  • When using the UEFI shell, only the *.efi applications will run. All other e.g. megarec, megacli still need to be executed under DOS environment!

Instructions for specific controllers

General instructions for flashing

The next passage shall give you an idea what the procedure should look like. This can vary in certain details, but in general the specific instructions should reflect this tasks.

Boot to OS

  1. Prepare an USB thumb drive to boot off. See chapter Boot drives
  2. Configure your computers BIOS to boot from the USB thumb drive. Finding the right settings can be challenging.
  3. Once booting from USB is successful, copy the necessary tools to the stick.

Start the process

The instructions are prepared to guide the user step-by-step
Step
Grab the current information of the card and dump it to a file. The file will be used to extract the SAS adress.
Step
Save the current firmware to file as a backup.
Step
Wipe the cards flash (firmware and BIOS)
Step
Reboot. This opportunity can be used to extract the SAS adress and to prepare the last step.
Step
Flash the desired IT firmware.
Dependent on the card, this can be tricky. Better said, we have to trick the card to accept other firmware.
This can result in repeated flashing of different firmwares, so this step might have sub-steps. The card specific instructions will tell you what to do!
Step
Rewrite the SAS adress and you're done. Reboot

LSI SAS1068E chipset

Applies to
  1. LSI SAS 3081-R
  2. IBM BR10i
  3. Intel SASUC8I
Firmware
FW:1.32.00.00, BIOS 6.34.00.00 / 20-DEC-10 (LSI P20)
Both IT/IR mode available
LSI SAS1068E Controllers(P20).zip - 3.8 MB (Windows)
LSI SAS1068E Controllers(P20)Linux.zip - 4.5 MB (unRAID)
FW:1.33.00.00, BIOS 6.36.00.00 / 22-AUG-11 (LSI P21)
Both IT/IR mode available
LSI SAS1068E Controllers(P21).rar - 1.46 MB (Windows)
LSI SAS1068E Controllers(P21)Linux.rar - 2.02 MB (unRAID)
Notes
Linux Driver: MPTSAS - supports the LSI SAS1064, SAS1064A, SAS1064E, SAS1066, SAS1068, SAS1068E, and SAS1078 chipsets. (Thanks to "BRiT"s prior post)
unRAID Support: Added as of 5.0Beta6a
Drive Spin Down Support: YES (UPDATE: Added as of 5.0Beta7)
Drive Temp Readings: YES
3TB Drive Support with this card: Will only offer 2.2TB out of 3TB (UPDATE: even though 5.0Beta7 added 3TB Drive support, this card does NOT support 3TB drives, it only sees and uses 2.2TB from a 3TB drive)
*** Note: Multiple controllers all post under one MPTSAS Bios, there are global setting that affect all controllers and individual settings per controller available ***


LSI SAS2004 chipset

Applies to
  1. LSI SAS9211-4i
Firmware
FW: 10.00.02.00 / BIOS: 7.19.00.00 / 15-JUN-11 (LSI P10)
Both IT/IR mode available
LSI SAS2004 Controllers(P10).zip - 2.32 MB (Windows)
Important! After you expand the zip file, please read the file "__ReadMeFirst.txt" before doing anything!
LSI SAS2004 Controllers(P10)Linux.zip - 3.16 MB (unRAID)
FW: 11.00.00.00 / BIOS: 7.21.00.00 / 22-AUG-11 (LSI P11)
Both IT/IR mode available
LSI SAS2004 Controllers(P11).rar - 1.94 MB (Windows)
Important! After you expand the zip file, please read the file "__ReadMeFirst.txt" before doing anything!
LSI SAS2004 Controllers(P11)Linux.rar - 2.88 MB (unRAID)
Notes
Linux Driver: MPT2SAS - supports the LSI SAS2004, SAS2008, SAS2108, SAS2116, SAS2208, and SAS2308 chipsets. (Thanks to "BRiT"s prior post)
unRAID Support: Added as of 5.0Beta6a
Drive Spin Down Support: YES (UPDATE: Added as of 5.0Beta7)
Drive Temp Readings: YES
3TB Drive Support with this card: YES (UPDATE: 5.0Beta7 added 3TB Drive support)
*** Note: Multiple controllers all post under one MPT2SAS Bios, there are global setting that affect all controllers and individual settings per controller available ***


LSI SAS2008 chipset

Applies to
  1. LSI SAS9211-8i
  2. SuperMicro X8SI6-F with onboard SAS2008 controller
Firmware
FW: 10.00.02.00 / BIOS: 7.19.00.00 / 15-JUN-11 (LSI P10)
Both IT/IR mode available
LSI SAS2008 Controllers(P10).zip - 2.59 MB (Windows)
Important! After you expand the zip file, please read the file "__ReadMeFirst.txt" before doing anything!
LSI SAS2008 Controllers(P10)Linux.zip - 3.43 MB (unRAID)
FW: 11.00.00.00 / BIOS: 7.21.00.00 / 22-AUG-11 (LSI P11)
Both IT/IR mode available
LSI SAS2008 Controllers(P11).rar - 2.21 MB (Windows)
Important! After you expand the zip file, please read the file "__ReadMeFirst.txt" before doing anything!
LSI SAS2008 Controllers(P11)Linux.rar - 3.16 MB (unRAID)
Notes
Linux Driver: MPT2SAS - supports the LSI SAS2004, SAS2008, SAS2108, SAS2116, SAS2208, and SAS2308 chipsets. (Thanks to "BRiT"s prior post)
unRAID Support: Added as of 5.0Beta6a
Drive Spin Down Support: YES (UPDATE: Added as of 5.0Beta7)
Drive Temp Readings: YES
3TB Drive Support with this card: YES (UPDATE: 5.0Beta7 added 3TB Drive support)
*** Note: Multiple controllers all post under one MPT2SAS Bios, there are global setting that affect all controllers and individual settings per controller available ***
*** Note: If combined with any other MPT2SAS Controller/s (ex. (1) LSI SAS2116 and (1) LSI SAS2008 they post under one MPT2SAS BIOs ***


LSI MegaRAID with SAS2008 chipsets

This cards are rebranded LSI 9240-8i cards. They can be cross-flashed with the 9211-8i firmware.
Applies to
  1. IBM ServeRAID M1015
  2. Intel RS2WC080
  3. Dell Perc H310 dedicated instructions will be included in the wiki later on
  4. Dell Perc H200 dedicated instructions will be included in the wiki later on
  5. Lenovo RAID 500 dedicated instructions will be included in the wiki later on
Firmware
20.10.1-0037 (APP-2.120.54-1235) / 15-APR-11
Only iMR mode available.
LSI MegaRAID SAS2008 Controller.zip - 5.32 MB (Windows)
Notes
Linux Driver: megaraid_sas - supports the LSI SAS1078, SAS1078 GEN2, SAS1079 GEN2, SAS0073 and SAS0071 chipsets. Though is is an old version indeed. (Thanks to "BRiT"s prior post)
unRAID Support: Driver not included at this point.
Drive Spin Down support: YES (UPDATE: Added as of 5.0Beta7)
Drive Temp Readings: YES
3TB Drive Support with this card: YES (UPDATE: 5.0Beta7 added 3TB Drive support)
Update: Convert your LSI MegaRAID controller card with LSI SAS2008 chipset to a Plain SAS2008 controller card (IT or IR mode), will look and feel like a LSI SAS9211-8i, and will be ready to use with unRAID (BIG THANKS to KKM for creating the empty.bin, so you dont need to have to worry about which sbr to obtain and use.)
  1. IBM ServeRAID M1015 (tested successfully)
  2. Intel RS2WC080 (tested successfully)
LSI MegaRAID to SAS2008(P10).zip - 6.38 MB (DOS, via bootable usb key)
LSI MegaRAID to SAS2008(P11).zip - 5.87 MB (DOS, via bootable usb key)
LSI MegaRAID to SAS2008(P20).zip - 4.1 MB (FREEDOS, via bootable usb key)
Please read the __READMEFIRST.txt file so you are clear as to all the steps and why it is important not to skip any steps.
Converting it follows all details in the post above for the LSI SAS2008 chipset (firmware release, support, etc.)

LSI SAS2116 chipset

Applies to
  1. LSI SAS9201-16i
Firmware
FW: 10.00.02.00 / BIOS: 7.19.00.00 / 15-JUN-11 (LSI P10)
Only IT mode available.
LSI SAS2116 Controllers(P10).zip - 2.28 MB (Windows)
Important! After you expand the zip file, please read the file "__ReadMeFirst.txt" before doing anything!
LSI SAS2116 Controllers(P10)Linux.zip - 3.12 MB (unRAID)
FW: 11.00.00.00 / BIOS: 7.21.00.00 / 22-AUG-11 (LSI P11)
Only IT mode available.
LSI SAS2116 Controllers(P11).rar - 1.97 MB (Windows)
Important! After you expand the zip file, please read the file "__ReadMeFirst.txt" before doing anything!
LSI SAS2116 Controllers(P11)Linux.rar - 2.91 MB (unRAID)
Notes
Linux Driver: MPT2SAS - supports the LSI SAS2004, SAS2008, SAS2108, SAS2116, SAS2208, and SAS2308 chipsets. (Thanks to "BRiT"s prior post)
unRAID Support: Added as of 5.0beta6a
Drive Spin Down Support: YES (UPDATE: Added as of 5.0Beta7)
Drive Temp Readings: YES
3TB Drive Support with this card: YES (UPDATE: 5.0Beta7 added 3TB support)
*** Note: Multiple controllers all post under one MPT2SAS Bios, there are global setting that affect all controllers and individual settings per controller available ***
*** Note: If combined with any other MPT2SAS Controller/s (ex. (1) LSI SAS9201-16i and (1) LSI SAS9211-8i they post under one MPT2SAS BIOs ***

LSI SAS2 Series Flash via ESXi 5.0

Note: Not for beginners
Applies to
Package includes ALL files to flash via ESX 5.0:
  1. LSI SAS2004
  2. LSI SAS2008
  3. LSI SAS2116
Firmware
LSI P10
LSI SAS2series Controllers(P10)ESX5.rar - 2.61 MB (ESXi5.0)
LSI P11
LSI SAS2series Controllers(P11)ESX5.rar - 2.4 MB (ESXi5.0)
Notes
Important! After you expand the zip file, please read the file "__ReadMeFirst.txt" before doing anything!

Boot drives

Basics

DOS

There are several ways how to get a bootable thumb drive. But there are also several reasons why it will not work sometimes.

e.g. plain thumb drive incompatibility, thumb drive size, wrong filesystem, bootloader issues, BIOS settings

The available toolsets should bring all the necessary files to prepare a DOS based thumb drive using Windows.
Note: The thumb drive will be formatted in the process, so backup the files on the stick before you begin!
Until this section is fully reworked you can use the HP tool from this package.
Windows 10 users please use Rufus instead. The HP tool is buggy with W10.

If you don't have a running Windows OS you can prepare a FreeDOS bootdisk using UNetbootin. The FreeDOS distribution can be selected within the tool.

UEFI

EFI and later on UEFI is the successor of the PC-BIOS. UEFI is primarily designed for the use in 64-bit systems. It brings a lot of additional functionality (although some of them are quite questionable). For our purpose we need the integrated UEFI shell. The benefit is a quite simple boot process.

Depending on the board, the UEFI shell can be part of the firmware or not. If it is, plug the thumb drive, enter the UEFI (BIOS) and select your drive to boot from.
It will show up with UEFI in its name.

If the UEFI shell is not part of the firmware, the boot file has to be placed on the root of the thumb drive.
At this point I can't tell if that is enough or if additional effort is needed - please report missing information in the forum.

Usage of the UEFI shell
Select your drive by typing "FSx" with x being the drive letter of your USB drive. e.g. FS0, FS1
Type "ls" to list the content of your drive.
Type "cd" to change directory.
The executables are called .efi

Note
When booting into the (64bit) UEFI shell, 32bit applications will not work!
There is a 32bit UEFI shell available, but I can't tell if and how it can be switched - feel free to add your experience here!

Windows without UEFI

Windows with UEFI

Tools

megaCLI

MegaCLI SAS RAID Management Tool
This utility is used for configuring MegaRAID cards.
megacli -help / -h: display the help

megaREC

MegaRAID HWR Contoller Recovery tool.
MegaREC utility for flashing LSI 9240/926x cards.

This utility can handle MegaRAID cards.
megarec -help : display the list of options

sas2flash

The SAS2Flash utility provides the ability to flash the Fusion-MPT™ firmware and the OptionROM image.
The utility can program an LSI SAS2 controller and also supports the updating of LSI SAS2 controllers.

The binary file is available for DOS, EFI, Windows and several nix based OS.
It is recommended to use the version of sas2flash that comes with the corresponding firmware.

sas2flsh -h / -help / -?: display the help

Other