After recently upgrading my FreeNAS system to from 8.3 to 9.3, I began receiving alerts about the LSI driver for my SAS controller, the LSI 9201-16i, being out of date:
WARNING: Firmware version 5 does not match driver version 16 for /dev/mps0.
While attempting to update the card with the UEFI shell, I found the process to be somewhat convoluted. The following guide details step-by-step how to upgrade the firmware and BIOs on the LSI 9201-16i SAS card using a UEFI shell.
Downloading the new Firmware
You can grab your desired firmware version from the LSI download page. Only the two most recent versions are available from the product’s page, so I found myself having to go through the full product download page. The previous versions can be found under the “Archive” link.
You’ll want to grab two files from the archive:
9201_16i_package_PXX_IT_Firmware_BIOS_for_MSDOS_Windows. I was specifically trying to upgrade to P16 for FreeNAS 9.3, for which the UEFI and DOS packages can be found here and here, respectively.
While these are downloading, grab a thumb drive. The drive doesn’t require any special formatting so long as it has some variation of a FAT filesystem. Create a folder on the thumbdrive, and copy the following files from each ZIP:
From the EFI ZIP:
From the DOS ZIP:
Updating the Firmware & BIOs
With the thumbdrive prepared, plug it in to your system and reboot into the UEFI shell. Once in the shell,
mount your thumbdrive (typically, the drive is either
fs1, making the command
mount fs0). To confirm you have the correct drive, you can use most of your typical *NIX navigation commands:
ls to list the contents of the directory, and
cd to navigate into your subfolder (if you created one).
With your thumb drive selected, list out the RAID cards in the system with the
sas2flash.efi -listall command.
If you see your card, it’s time to run the update command:
sas2flash.efi -o -f 9201-16i_it.bin -b MPTSAS2.ROM.
One the command has completed, list the cards again to make sure it has run successfully.
If you see the expected firmware version, you’re all set. Issue a
reset command to restart the system.
I hope this helps shed some light on this process!