In this post, I describe how to upgrade the firmware on an LSI MegaRAID SAS controller to the latest version. Upgrading the firmware is recommended before making certain changes, e.g. installing a battery backup unit. These instructions have been tested on an LSI MegaRAID SAS 9260-4i but should also work for other models using LSI’s 2108 chipset. According to the documentation, these models are also supported: MegaRAID SAS 9250-4i, MegaRAID SAS 9260CV-4i, MegaRAID SAS 9260-8i, MegaRAID SAS 9260CV-8i, MegaRAID SAS 9260DE-8i, MegaRAID SAS 9261-8i, MegaRAID SAS 9280-4i4e, MegaRAID SAS 9280-8e, MegaRAID SAS 9280DE-8e, MegaRAID SAS 9280-24i4e, MegaRAID SAS 9280-16i4e and MegaRAID SAS 9260-16i.
Upgrading these RAID controller cards is fairly straightforward once you know what you’re doing, but it’s difficult to find coherent and up to date instructions. This is partly because LSI were bought out by Avago, who subsequently rebranded as Broadcom, and a lot of the official documentation webpages are no longer active. Broadcom’s site only seems to promote documentation and downloads for newer models of RAID controller.
- Before you start, back up your data on the RAID array! If the worst happens, you’ll want to have some way to recover it!
- First, make sure that nothing is writing data to the RAID array. I was unable to find anything in the documentation confirming whether or not it’s safe to flash the firmware while the RAID array is in use. In the absence of better information, I strongly advise caution! If your system has its root partition stored on a RAID array managed by the RAID controller that you’re trying to upgrade, you will need to use a live CD. If your root partition is not on the RAID array, I recommend doing the following:
- Comment out all entries in
/etc/fstabreferring to partitions on the RAID array.
- Reboot the system.
- Check using
mountthat nothing on the RAID array is mounted.
- Comment out all entries in
- Next, download the latest firmware. At the time of writing this appears to be https://docs.broadcom.com/docs/12.15.0-0239zip. This firmware image was released back in 2015, so there’s a good chance that there won’t be any further releases as it’s a pretty old chipset by now. Extract the zip file. It should contain a text document with release notes and the firmware image itself in a file called
- If you don’t already have it installed, get hold of a copy of MegaCli (see e.g. https://wikitech.wikimedia.org/wiki/MegaCli).
megacli -AdpFwFlash -f mr2108fw.rom -a0(replace
a2, etc as appropriate if you have more than one RAID controller).
- Check the output to see whether the command completed successfully with exit code 0x00 and no error messages.
- Reboot the system. If you keep an eye on the RAID controller BIOS messages during system boot, you should see it mention that the firmware is now version 12.15.0-0239.
- If you want to add a battery backup unit such as LSIiBBU07 or LSIiBBU08, you should shut down the system now and install the unit.
- Power the system back up. If you installed a battery backup unit, it should mention that it’s present in the RAID BIOS.
- Assuming that all is well, you can now safely uncomment the lines in
/etc/fstabthat refer to partitions on the RAID array, and reboot the system once again.
Congratulations, your system should now be running with the latest RAID firmware!
I'm trying for LSI 2208. But it's not working for me.
# ./MegaCli64 -AdpFwFlash -f mr2208fw.rom -a0
Adapter 0: LSI MegaRAID ROMB
Vendor ID: 0x1000, Device ID: 0x005B
ERROR: The image file is invalid and could not be flashed to the controller!!!
Exit Code: 0x11
Can you please help here?
Really sorry it's taken me so long to reply to this comment. Unfortunately, there's not much I can suggest here, other than running a checksum on the firmware image file to make sure it wasn't corrupted during the download process. The LSI controller is rebadged and resold by a number of vendors, including Dell, and the firmware isn't compatible between them. It's possible you might be able to work around that by tweaking the firmware - I do remember seeing a few posts on the internet about doing exactly that - but it's very complex and risky. Sorry not to be any help on this!