How to Flash an LSI HBA into IT Mode (with UEFI Shell v1 and Other Gotchas)

Homelab , Storage , TrueNAS

Flashing an LSI HBA to IT Mode in 2025: the Real-World, Hands-On Guide I Wish I’d Had

TL;DR: If your LSI/Avago/Broadcom SAS2308 (e.g., 9207-8i/9208-8i/9211-8i) card refuses to see drives or shows “0 B” ghosts, you probably need IT mode P20. The gotcha: the classic sas2flash.efi only works from a UEFI Shell v1, not v2—boot a TianoCore UEFI Shell v1 (link below) as \EFI\BOOT\BOOTX64.EFI and the flasher will finally run. Also, don’t trust passive VGA→HDMI “converters” during setup—use real VGA or an active adapter so you can see the shell.


Why I ended up here (and why you might, too)

I was adding new large SATA HDDs (20 TB Ultrastar HC560) to a TrueNAS box with a freshly acquired LSI 9208-8i HBA (SAS2308) in IT mode… or so the listing claimed. The OS saw the controller, but the drives either didn’t show or appeared as 0 B. Classic signs that:

  • The card is on IR firmware (RAID) instead of IT (initiator/“HBA” mode), or
  • The firmware is too old for modern drives, or
  • Cabling/power quirks are interfering.

I decided to (re)flash the card to a known-good P20 (20.00.07.00) IT mode… and discovered a pile of gotchas:

  • Passive VGA→HDMI dongles don’t actually convert analog to digital; some UEFI screens just stayed black. A plain VGA monitor made the shell visible again.
  • Even with a proper sas2flash.efi, launching it from UEFI Shell v2 produces
    InitShellApp: Application not started from Shell.
    You need UEFI Shell v1.

Working UEFI Shell v1 binary:

Helpful forum walk-through (notes the v1 requirement):


What you’ll need

  • An LSI/Avago/Broadcom SAS2308 HBA (e.g., 9207-8i/9208-8i/9211-8i).
  • A USB stick formatted FAT32.
  • A UEFI Shell v1 binary (BOOTX64.EFI) — see link above.
  • A good sas2flash.efi (the actual UEFI flasher; not DOS; not Linux).
  • The IT firmware for your card (e.g., 9208IT.bin or 9207-8.bin).
  • (Optional) mptsas2.rom if you want the card to be bootable. For TrueNAS data HBAs, you can skip the ROM.

⚠️ Risk disclaimer: Flashing firmware always has risk. Power the machine from a UPS, disconnect other HBAs, and make sure you’re flashing the correct controller.


Step 0 — Sanity checks before you flash

  • Cabling: If using SATA drives, you need forward SFF-8087→4×SATA breakout cables (controller→drives). Reverse cables won’t work.
  • Drive type: SAS ↔ SATA mismatches need the right cables (SAS drives need SFF-8482).
  • Power/PWDIS: New enterprise SATA drives often implement PWDIS on SATA power pin 3. If your PSU supplies 3.3 V on pin 3, the drive won’t spin. Use Molex→SATA (no 3.3 V), PWDIS-safe cables, or cover pin 3 with Kapton tape.

Step 1 — Prepare a bootable UEFI Shell v1 USB

  1. Format the USB FAT32. On older boards, MBR + FAT32 tends to be the least fussy.
  2. Create the path \EFI\BOOT\ and place the UEFI Shell v1 binary there as:
    \EFI\BOOT\BOOTX64.EFI
  3. Copy these to the root of the USB:
    \sas2flash.efi       (UEFI version)
    \9208IT.bin          (or 9207-8.bin, depending on your card)
    \mptsas2.rom         (optional)

If you boot and see UEFI Shell v2.x, you grabbed the wrong shell. Use the v1 shell from the link above.


Step 2 — BIOS settings & display caveat

  • In BIOS, set Launch Storage OpROM Policy to UEFI (or “UEFI first”) so the system will run BOOTX64.EFI.
  • Use a real VGA monitor or an active VGA→HDMI converter. Passive adapters often yield a black screen in UEFI graphics modes.

Step 3 — Boot into the UEFI Shell v1 and verify you can run the flasher

  1. Boot from the USB’s UEFI entry (e.g., “UEFI: ”).
  2. At the shell prompt:
    fs0:
    dir
    (Try fs1:, fs2: if needed until you see your files.)
  3. Test the flasher:
    sas2flash.efi -list
    You should see controller info.
    If you get InitShellApp: Application not started from Shell, you’re not in Shell v1 (or you have the wrong sas2flash.efi).

Step 4 — Flash to IT mode P20

If your card is OEM-locked (Dell/IBM/HP), you might need an extra erase step (-e 6) before flashing. Don’t interrupt power during any step.

Typical clean sequence:

# See current state
sas2flash.efi -list

# (Optional but common) Erase flash regions
sas2flash.efi -o -e 6

# Flash IT firmware (choose the right .bin for your card)
sas2flash.efi -o -f 9208IT.bin

# (Optional) Also flash BIOS ROM if you need to boot from the HBA
# sas2flash.efi -o -f 9208IT.bin -b mptsas2.rom

# Verify
sas2flash.efi -list

You want to see:

  • Firmware Product ID: IT
  • Firmware Version: 20.00.07.00

If you have multiple LSI controllers installed, add -c 0 (or -c 1) to target the right one, e.g. sas2flash.efi -c 0 -list.


Step 5 — Reboot and confirm in your OS

Back in TrueNAS (or Linux):

dmesg | grep -i mpt3sas
lsblk
# or on SCALE, check /dev/disk/by-id/

You should see your SATA/SAS drives with full capacity (no more 0 B ghosts). If you don’t:

  • Re-check cables (forward breakout vs reverse).
  • Re-check power/PWDIS (use Molex→SATA, or tape pin 3).
  • Try a single drive directly on the HBA to isolate cabling/backplane issues.

Troubleshooting nuggets I learned the hard way

  • UEFI Shell v1 is non-negotiable for sas2flash.efi. The v2 shell will throw the dreaded
    InitShellApp: Application not started from Shell.
    Use this v1 shell:
    https://github.com/tianocore/edk2/blob/UDK2014/ShellBinPkg/UefiShell/X64/Shell.efi

  • Passive VGA→HDMI ≠ converter. It can show some text modes but blank others (like the shell). Use real VGA or an active converter.

  • PWDIS (SATA power pin 3) can make brand-new enterprise SATA disks look dead. If a drive doesn’t even spin, block 3.3 V on pin 3 (tape), or power it from Molex.

  • Forward vs reverse breakout matters. For HBA → drives you need forward SFF-8087→SATA. A reverse cable will not enumerate drives.


Alternative paths (if UEFI Shell v1 is too fussy)

  • FreeDOS method: Create a FreeDOS USB and use sas2flsh.exe (DOS). It works on many systems, but can be finicky on machines with lots of RAM.
  • Another host: Pop the HBA into a newer UEFI PC or server, flash there (using Shell v1), then move it back.

Closing thoughts

Flashing an LSI HBA in 2025 is still totally doable—but the “secret sauce” is booting a UEFI Shell v1 and using a proper UEFI sas2flash.efi. Once you’ve got those two right, the rest is straightforward. From there, TrueNAS + ZFS will treat your HBA like the dumb, reliable pipe it’s supposed to be.

About the Author
totophe's avatar

totophe

Creative Mind, Digital Development Strategist, and Web & Marketing Technologies Consultant in Brussels, Belgium