Firmware Update Bricked Your RAID/HBA Controller? Here's the Fix
Your storage controller went dark after a firmware update. Don't panic—this is recoverable in most cases with a forced boot into safe mode and a reflash.
When This Happens
You just flashed your RAID or HBA controller—maybe an LSI 9400, Broadcom 9560, Dell PERC H750, or HP Smart Array P408i—using the vendor's utility, everything said "success," and then you rebooted. The system hangs on POST, or the controller simply doesn't appear in the BIOS. No drives detected. No boot. You've got a black screen with maybe a single blinking cursor. This is the classic "firmware update bricked the controller" scenario.
I've seen it happen from a power glitch mid-flash, a corrupt firmware image (thanks, bad download), or even a mismatch between the firmware version and the bootloader. The controller's flash memory is split into regions—boot block, main firmware, configuration—and if the main area gets corrupted while the boot block survives, you can still recover it. If both go, you might need a hardware programmer. But in most cases, the boot block is intact and we can force the controller into recovery mode.
Root Cause: Partial or Corrupt Flash
The controller's firmware update process writes to NAND flash in stages. If the process is interrupted—lost power, USB disconnect, or the host system crashed—the main firmware region ends up with a partial or checksum-failed image. The boot block, which is usually write-protected or uses a two-stage update, often survives. But the controller's firmware loader checks the main region first. If it sees a bad CRC, it panics and stops. No drives, no enumeration, just a dead controller.
Most modern controllers (LSI/Broadcom, Dell, HP) have a built-in recovery mode triggered by holding a specific key combination during power-up or by jumping a header on the card. The trick is knowing which one your card uses.
The Fix: Force Recovery Mode and Reflash
Step 1: Identify Your Controller and Its Recovery Method
Before you do anything, pull the card out and look for a jumper labeled JP1, JP2, or something similar. Common recovery methods:
- LSI/Broadcom SAS controllers and Dell PERC (based on LSI chipsets): Hold Ctrl+Y during boot until the recovery screen appears. You'll see a message like "MFG Mode" or "Firmware Recovery Mode."
- HP Smart Array controllers: Hold F8 during POST to enter the Option ROM Configuration for Arrays (ORCA) and look for a firmware recovery menu. Some older HP cards need a jumper.
- Areca controllers: Set DIP switch 1 to ON position, then power on. This forces the card into a minimal bootloader state.
Step 2: Boot into Recovery Mode
- Power down the system completely. Remove the power cord. Wait 30 seconds.
- If your card uses a jumper, install the jumper on the correct pins. For LSI cards, it's usually JP1 on the back edge.
- Reinsert the card if you removed it, then power up.
- As soon as the system powers on, press and hold the recovery key combination (Ctrl+Y for LSI). Keep holding until you see a "Recovery Mode" prompt or a blinking cursor with a firmware download message.
Step 3: Flash Correct Firmware via UEFI Shell or DOS
Once in recovery mode, the controller expects a specific firmware file pushed over the PCIe bus. You have two routes:
- UEFI Shell method (recommended for modern boards): Boot from a USB stick with the UEFI shell. Download the correct firmware file (usually a .bin with a recovery suffix, like
fwXXX.romorrecovery.bin) from the vendor's site. Run the recovery flasher tool—for LSI it'ssas3flash.efiorsas3flash -o. Command example:
sas3flash.efi -o -f recovery.bin -b mptsas3.rom - DOS method: Create a FreeDOS bootable USB. Place the same firmware file and a DOS flasher (like
sas3flash.exe). Run the same command with-oflag. The-oflag tells the tool to skip validation checks and force the write.
Important: Use only the firmware version that matches your controller's exact model and revision. Mismatched firmware can kill the boot block. I've personally seen a PERC H730 bricked with a wrong firmware because someone downloaded the H740 version.
Step 4: Verify and Reboot
After the reflash completes (usually 1-3 minutes), the tool should report success. Remove the jumper if you used one. Power down, remove the USB, and boot normally. The controller should now enumerate drives. If it still doesn't, repeat the process with a different firmware version—sometimes the latest version has a bug, and you need to go one step back.
What to Check If It Still Fails
- Boot block corruption: If the recovery mode doesn't even show, the boot block might be dead. This requires a hardware programmer (like a CH341A) to reflash the SPI flash chip directly. I've done it on a few LSI cards—it's tedious but doable if you're comfortable soldering and reading datasheets.
- Dead controller hardware: A power surge during the failed flash may have physically damaged the power regulator or the flash chip itself. Check for any burnt smell, bulging capacitors, or visible damage. If you see that, the card is toast—replace it.
- Host system issue: Try the controller in a different PCIe slot or a different motherboard entirely. I've seen faulty slots prevent the card from entering recovery mode.
- Try an older firmware: Sometimes the latest firmware from the vendor has a bad image (yes, it happens). Roll back to a known stable version from a year or two ago. You can often find these archived on forums like ServeTheHome or the vendor's FTP.
This method has saved my bacon more times than I can count—probably 40+ controllers over the years across dozens of servers. Don't give up after one attempt. Recovery mode is picky about timing and key pressings. If it doesn't work the first time, try the key combination faster or slower, and make sure your USB stick is formatted correctly (FAT32, bootable). Good luck.
Was this solution helpful?