How to upgrade the firmware on an LSI MegaRAID SAS controller under Linux

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.

(Bonus note: these instructions might also work for the 2208 chipset, using the firmware at https://www.supermicro.com/wdl/driver/SAS/LSI/2208/Firmware(not_for_X9D… - thanks to Jacob for supplying the link.)

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.

  1. 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!
  2. 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:
    1. Comment out all entries in /etc/fstab referring to partitions on the RAID array.
    2. Reboot the system.
    3. Check using mount that nothing on the RAID array is mounted.
  3. 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 mr2108fw.rom.
  4. If you don’t already have it installed, get hold of a copy of MegaCli (see e.g. https://wikitech.wikimedia.org/wiki/MegaCli).
  5. Run megacli -AdpFwFlash -f mr2108fw.rom -a0 (replace a0 with a1, a2, etc as appropriate if you have more than one RAID controller).
  6. Check the output to see whether the command completed successfully with exit code 0x00 and no error messages.
  7. 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.
  8. 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.
  9. Power the system back up. If you installed a battery backup unit, it should mention that it’s present in the RAID BIOS.
  10. Assuming that all is well, you can now safely uncomment the lines in /etc/fstab that 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!

Comments

michael schnohr - Fri, 22/02/2019 - 20:19

Permalink

Hi
trying to crossflash from dell H700 to megariad 9260i.
using just the above method - (with BBU) I
1) cant brak with Ctrl-H - - the splashcreen still announces "Dell H700......." but FW is now 12-15.
2) the BBU is now NOT recognized..... so booting into OS - but no BBU - thus no write-back cache....

what is wrong here.... ?

Regards - Michael

Hi Michael, sorry, cross-flashing is unreliable at best and I don't have a unit available to test with. Hope you managed to get this sorted. If you did, please post some notes on here to help others in the same situation.

Mohiddin - Tue, 12/03/2019 - 13:14

Permalink

Hello,

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!

Add new comment

CAPTCHA