If you're trying to Flash an IBM ServeRAID M1015

Recently I've been building a "cloud" of my own, and I have decided to use TrueNAS.

TrueNAS uses the ZFS file system, which provides various strategies and techniques that make hardware RAID not only unnecessary but also counterproductive.

I won't enter the details of ZFS, nor why it doesn't play well with hardware RAID. If you want to know more, you can visit the FreeNAS worst practices. This topic is the very first one.

In my case, this problem affected me because I had decided to buy a nice enterprise-grade Host Bus Adapter (HBA), so my choice was the IBM ServeRAID M1015, and I had to flash it to use IT mode, which makes the data simply pass-through without RAID.

It was quite a challenge because there are many blog posts, youtube videos and forum discussions about this out there, but I was one of the lucky ones which none of them worked. Actually worse, it half worked.

This thread is widely referenced. Almost every page points to this discussion about flashing M1015. It's is a good one, the files you'll need are available there, the commands and feedbacks from other people.

The problem in my case was that half of the process worked with the information I found there, the half one telling how to wipe out the existing firmware. The second part, where we write the new firmware, didn't work, so I was at this point looking to a dead HBA.

In my case, the problem was the flash drive. A DOS bootable was enough for the first part, but it requires an EFI boot for the second one.

Part I - Taking note of the SAS address.

Before starting, it's better to take note of the SAS address. It'll be necessary later, is a sequence of numbers on a green stick at the back of the card. Just write them down.

Part II - Removing the IBM M1015 firmware.

  1. Create a bootable FreeDOS key. You can use Rufus if you're using windows or Unetbootin if you're using Linux
  2. Download SAS2008 and unzip at the root of the drive
  3. Boot from the USB key
  4. Remove IBM's firmware
    megarec -writesbr 0 sbrempty.bin
    megarec -cleanflash 0
  5. Reboot

Part III - Flashing 2118IT.bin

Here is where things get tricky, you need to create a specific file path and place the EFI shell inside to make this work. Once you're done, the indicator that it worked is a different look console after the boot. You'll see yellow words and so on.

Before booting from the key

  1. Download the EFI shell from here
    Rename the UefiShellX64.efi file to BOOTx64.EFI and place it at /USB_drive/EFI/BOOT/BOOTx64.EFI - You can create the structure by hand. I did
  2. Download the LSI DOS files and unzip them at the root of your drive
  3. Restart your machine and change the boot options. Look for anything related to EFI boot. This option is what makes the boot goes straight to the EFI shell
  4. Boot from the USB key

Once in the EFI shell, hopefully, you can see different colours meaning that it worked.

  1. Use map to list the devices
  2. Access the USB key, mount fs0:
  3. Select the device fs0:
  4. You can now navigate through the key's file system with cd and dir
  5. Flash the new firmware
    sas2flsh -o -f 2118it.bin -b mptsas2.rom (sas2flsh -o -f 2118it.bin if OptionROM is not needed)
  6. Write back the SAS address
    sas2flsh -o -sasadd 500605bxxxxxxxxx (x= numbers for SAS address)

References

Show Comments

Get the latest posts delivered right to your inbox.