Flashing LSI 2208 with IT firmware to use as an HBA

Danger Will Robinson!!

This page has information which is not substantiated, and certainly not supported by any vendors mentioned on this page.  Any damage sustained to yourself, your equipment, or your data is entirely your own responsibility, and if you break things, whilst I am sympathetic and feel your pain, I am not responsible as in no way am I suggesting this is a good idea.

I habitually push boundaries.. there, I’ve got that off my chest.

Having recently bought myself some Cheap home datacentre-quality gear, a Supermicro X9DRH-7F, I wanted to pass the onboard LSI 2208 controller to FreeNAS in a VM, to save having to plug in a PCIe expansion board.  My prior experience with LSI HBA’s said that it was pretty easy to flash them between RAID and IT mode firmwares, as I’d done it before by Flashing the Dell Perc H310 with an IT firmware.  I didn’t even research it before diving in – I just grabbed a boot disk, loaded it up with LSI tools like megarec, megacli, and sas2flash, and got to work backing up the firmware blocks and wiping the BIOS on the card.

Then when looking for firmware, I found several pages across the interwebs saying that there is no IT mode firmware for the LSI 2208 chipset on my motherboard, and that basically if I wanted to use it, the best I could hope for was JBOD mode through the hardware controller.  Yuk.  However, I got to researching, and found these pics in different documents:

LSI2208 Block Diagram

LSI2208 Block Diagram

In the red corner, we have the heavyweight LSI2208, sporting a pair of PowerPC 440 processors at 800MHz, with a x8 PCIe bus, and a 4.8Gb/s SAS-2 core, as well as 4MB of context memory.

In the blue corner, we have his slimmed down LSI2308 brother, genetically similar, with the same features, but only a single PowerPC 440-series processor, but at the same 800MHz.

The important piece of information is that the LSI2308 *does* have IT mode firmware, and I actually have a couple of HP 220 cards which use that chipset, both of which I’ve flashed to the LSI firmware v20.

LSI2308 Block Diagram

LSI2308 Block Diagram

Given the similarity of the 2208 and 2308, I wondered whether I couldn’t just flash my X9DRH’s onboard broadcom chipset with a generic LSI HBA firmware, and, having already wiped the card, figured I’d give it a shot.

This is the point where some of you will think “this guys a fuckwit, why is he risking a really expensive motherboard and functional RAID controller?”.  To me its not functional.. I have an ideological dislike of hardware RAID devices, and have a strong preference for software RAID-type solutions, on the basis that a hardware failure can be recovered using generic commodity hardware, as frankly, I’m not a data centre and don’t keep hot-swappable spare parts on the shelf in case of failure.

Anywho.. lets get on with it.  (/hattip to my in-laws for that word.. there’s something satisfying about saying it like that instead of boring old “anyhow”.  The older I get, the more relaxed I am with the concept that language is a fluid beast, and not a set of rules to be enforced by grammar nazi’s who argue over stuff like whether an oxford comma is the right thing to do or not.

Results

Lets start with the outcome, as I… well.. see for yourself:

Before:

LSI 2208 all looking hunky dory

After:

My LSI2208 has an identity crisis.. it thinks its a 2308

Flashing from RAID to IT Firmware

This is entirely unsupported, and not recommended by anyone.  Its here purely as a curiosity, so if you feel compelled to copy these commands and end up bricking something, or suffer any negative outcome, its your problem.  I can’t see any support people at any vendor saying “oh?  flashing the firmware from a completely different device caused issues?  thats unexpected!”.

Here’s how I made the above happen, for my own records..

I used 2 USB sticks.. 1 which was DOS bootable with the megarec etc. tools on it (see below to find the link to LSI_DOS.zip with the tools in it), and another which just had the sas2flash.efi file on it to use from EFI shell.

Files I had/found with useful stuff in:

  • 9207_8i_Package_P20_IR_IT_FW_BIOS_for_MSDOS_Windows.zip  (has the 9207-8.bin firmware and mptsas2.rom bios in it)
  • 9207_8e_Package_P14_IT_Firmware_BIOS_for_MSDOS_Windows.zip (if you’re using DOS, the sas2flash in this version seems to care less about cross-flashing cards than newer versions)
  • lsi_dos.zip (has megarec, megacli, sas2flash etc. in it)
  • lsi2208fixer.zip (this has the 2208 recovery firmware, as well as the above lsi_dos.zip contents in it)
  • sas2008.zip  (this has the empty SBR bin file in it)
  • Installer_P20_for_UEFI.zip (this has the version of sas2flash.efi in it for UEFI shell)

First – see if megarec can see the device.. if it can’t, don’t give up, try other versions of megarec.exe  (LSI tools are weirdly fickle on interoperability across vendors/chipsets)

megarec -adplist

Next, backup the SBR and SPD for the RAID card:

megarec -readsbr 0 smc2208.sbr

megarec -readspd 0 smc2208.spd

I chose “smc” for “Supermicro”, and I stick with the traditional DOS 8.3 filename/extension format.

megacli -adpallinfo -a0 > allinfo.txt

In this file, is the magic line which stores the SAS address of the card – which is globally unique to the card.  Good to have it stored in a file, so I can restore it if it gets wiped!

Now its time to start wiping the card.. first up, replace the SBR with one I got somewhere (not sure where.. possibly the

megarec -writesbr 0 empty.bin

Not sure where I got empty.bin from – I have another file called sbrempty.bin which may be the same?

Last step is to wipe the flash memory..

megarec -cleanflash 0

Next, reboot (thanks vanfawx @ STH forums for checking the instructions)

And then switch to sas2flash (had to use the EFI version on this motherboard):

sas2flash -list

Good, it can see the card.  There are multiple versions of sas2flash (and sas2flsh.exe).  When I flashed my HP220, I had to get the sas2flsh.exe (DOS version) from the old v14 LSI drivers, as the newer sas2flash wouldn’t work.

sas2flash -o -f 9207-8.bin -b mptsas2.rom

Note you don’t have to flash the bios file (mptsas2.rom) – if you leave it off you’ll get faster boot times, but it does also give some config options.

sas2flash -list

Verify that it can see the card, but you’ll notice the “SAS Address” like is all zero’s – need to reprogram the address which was saved using megacli earlier.

sas2flash -o -sasadd 50030480195exxxx

Lastly – if you need to back-track and want to reflash without the bios, use this command to wipe it whilst preserving the SAS address – before reflashing just the firmware and leaving out the BIOS

sas2flsh -o -e 6

Going the other way, back to 2208 firmware

Yes, this is possible.  Before taking screenshots and doing the above, I got my card back to being a fully functional LSI2208, with only a couple of “sinking-feeling moments” along the way.  It involves using the recovery firmware from LSI – which I found via this superb thread on ServeTheHome: https://forums.servethehome.com/index.php?threads/is-there-a-way-to-restore-an-lsi-2208-after-firmware-update-failure.13237/

Recovery process I went through:

Using LSI_DOS.zip package from above linked thread (extracted from the ISO – appears to be the same DOS tools I used to flash to the IT firmware above):

megarec -cleanflash 0
(reboot)
megarec -writesbr 0 smc2208.sbr
megarec -m0flash 0 2208_16.rom   (this is the rom from the LSI recovery ROM thread linked above)
(reboot - got to working firmware ver 3.270.65-2578 )

Using latest version of the Supermicro 2208 firmware found here:
ftp://ftp.supermicro.com/Driver/SAS/LSI/2208/Firmware(not_for_X9DRL-7F)/

megacli -adpallinfo -a0 (spits out long file including SAS Address and all config options)
megacli -adpfwflash -f smc2208.rom -a0
(reboot - working latest firmware 3.460.115 from supermicro)

Oh and I think there might have been a step in the recovery where I had to program the SAS address back onto the card again – one of the mega* tools has that ability, but I don’t seem to have notes for that step, as I was just pleased to have un-bricked my card.  It might have been something like:

megaoem -sasadd 50030480195exxxx

Issues

Some have reported on their devices that the buzzer alarm won’t shut up after flashing.

An anonymous poster has kindly posted these commands – unverified by me as I don’t have a device with that issue.

MegaCli -AdpSetProp -AlarmSilence -aALL

or

MegaSCU -AdpSetProp -AlarmDsbl -aALL

Hopefully one of them works for you if you’re plagued by the issue?!

hooroo!

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

62 thoughts on “Flashing LSI 2208 with IT firmware to use as an HBA

  1. Thanks for the info.
    Very helpful.

    Flashed an HP Branded SAS1064E 4-Port to IT mode:
    (Flashed lshw info:) “product: SAS1064ET PCI-Express Fusion-MPT SAS”
    “SAS3041ER_ Package_P21_IR_IT_Firmware_BIOS_for_MSDOS_Windows”
    NOTE: It is quite comprehensive; prompts to backup existing BIOS/firmware; gives options to flash for different chipsets; quite user-friendly-ish.

    Used firmware / info from here:

    https://www.broadcom.com/site-search?page=1&per_page=100&q=Package_P21

    Specifically the https://docs.broadcom.com/docs/12351231 files.

    NOTES:
    If booting FreeDOS (Rufus installer for this on Win10), and try to run the default SASFLASH.EXE, you’ll get a “Unable to run program in DOS Mode” or similar.
    You’ll need to and rename the original, and move the sasflash.exe from SASFlash_DOS_rel folder to where the orginal sasflash.exe was located 🙂

    To-Do:
    Need to map the Broadcom product names (e.g. 3041 to specific chipsets e.g. 1064e in my case)

    Other links used:
    https://forums.serverbuilds.net/t/flashing-sas2208-to-it-mode-when-sas2flsh-does-not-detect-it/2357

    https://github.com/HomeofNever/Blog/tree/master/pages/_assets/file/lsi-9266-8i-to-it-mode

    https://www.serverbuilds.net/flashing-add-in-sas

  2. Hi,
    anyone so kind to share the files requested for the flashing?
    I would like to try to flash a LSI MegaRAID 9272-8i PCI-E 8Port 512MB cache 6Gbps SATA/SAS Raid Card.
    The idea is to use it with TrueNas!

  3. Also the LSI 2208 can be turned into a JBOD mode (passing through any connected disks directly to the OS, without the need to configure any virtual disks, just plug and play) by megacli/storcli, without having to change the firmware. For a lab it could be handy so the controller can be used again in RAID mode without having to reflash it. That’s what I did in my vSAN lab hosts.

  4. for those that having issue with backplane or disk not connected after flashing, i hardly suspect the revision of your sas2208 chipset : B0 seems to be responsible, D1 seems to work perfectly.

  5. Hi – just a long shot, but has anyone had any joy with flashing the LSI 9264-8i to IT mode? I understand that it’s not possible because it’s a full raid card!

  6. Thank you for your work on this. I am very new to this sort of work and hope to utilize your experience to utilize my 9271-8i card for a FreeNAS box (TrueNAS now I guess) that I hope to build. Bought my drives and didn’t realize that I’d have so much trouble using this card (which came with a trashpicker special Dell T5600 I picked up) in Linux/FreeBSD. So before I spend the money to buy a 2308 based card, I’ll see if I can flash what I have successfully. If not, I need a doorstop.

    That’ll do.

    • So far, looks like I’ve had mixed success.

      My 9271-8i card is now functioning with IT firmware, but…..

      I still need a doorstop!

      • Glad to hear people are still finding this useful 🙂
        I’m starting to look at 16i cards as my new server board is PCIe constrained, so I might get to have more cross-flash fun when I do!

        • adaptec makes sas cards with stupid high amounts of ports that can be just set to “HBA mode” in their own settings. No need to flash

          • Thanks for the tip – I just ordered an Adaptec ASR-71605 to try, as my home server is now in a Supermicro 3U case with 16 drive bays, and having a single controller card would be handy as I’m on a Ryzen Asrock server motherboard so am PCIe lane limited.

  7. Pingback: Crossflash the IBM M5110 to an LSI 9207-8i – Sleyk’s Tech Blog

  8. Hi, I also tried to set my card into IT mode and it seems i somewhere failed.
    sas2flash cant see the LSI card im usin. i tried different versions and efi and dos versions. P14 P20

    My Card is a FTS D3116c , should be based on a LSI2208.

    Megarec still can see and find the card and write and clean flash. sadly i lost my sbr and spd file.

    Is there a way to restore the card?

    thanks in advance

  9. Also, in your guide, what address do I flash back? It gives me 2 different addresses:

    …..
    Link Speed : 0
    Number of Frontend Port: 0
    Device Interface : PCIE

    Number of Backend Port: 8
    Port : Address
    0 50030480019xxxxx
    1 0000000000000000
    2 0000000000000000
    3 0000000000000000
    4 0000000000000000
    5 0000000000000000
    6 0000000000000000
    7 0000000000000000

    HW Configuration
    ================
    SAS Address : 500304801a3xxxxx
    BBU : Absent
    Alarm : Present
    NVRAM : Present
    Serial Debugger : Present
    Memory : Present
    Flash : Present
    …..

    As you can see, there are 2 different addresses and I flashed the wrong one and the entire card is bricked (I cannot proceed passed the init screen to get to my bios setup or anything).

    Motherboard is an X9DRH-7TF.

    • Hi Regis,
      Sorry, not watching the site much over the holiday period. Have you managed to unbrick the card? The Recovery Firmware link should enable it as your symptom sounds like one of the sinking-feeling points I hit trying to get back to a working original state (i.e reversing the flash).

      As far as the address – the one I typically use is the one reported in “SAS Address” on the HW config, but I can’t say I ever noticed 2 different addresses for the same card.

  10. I tried doing this tutorial. Everything was fine until I got to flashing my SAS address from the allinfo.txt.

    Before I did that, it would complain about no address on SAS 0, but it would still load all of my drives (on the init screen and in the bios).

    Now, it just sits at “Initializing drives” forever…. It appears to be ruined. I cannot get passed this screen.

  11. I’m looking at getting an X9DRH-7F myself and since I use unRAID have no use for the RAID functionality. Do you happen to have the files in a downloadable archive somewhere that I missed?

  12. I have noticed you don’t monetize mywiredhouse.net, don’t waste your traffic,
    you can earn extra cash every month with new monetization method.
    This is the best adsense alternative for
    any type of website (they approve all websites), for more info simply search in gooogle:
    murgrabia’s tools

  13. Hi,

    I followd your guide, it worked flawless, i also have two smc 9xdrh-7tf motherboards.
    Went back after a few weeks to megaraid firmware, also succes.

    Thanks,

    Bart

    • I also try to flash the 9267-8i.
      I’ve gone through all the possibilities, unfortunately none of the FW had worked. I always get error message after sas2flsh (DOS and EFI) command.

      ERROR: NVDATA Image does not match Controller Chip Revision!
      NVDATA Chip Revision Range: 0x5 to 0x5
      Controller Chip Revision: 0x1

      Maybe someone knows an advice.

        • Hi, have NEC N8103-149 (= 9267-8i) card and I can’t get 9205 firmware working on this card. Anyway, it is only IT firmware and I wanted IR due ESXi.
          Somebody with different experience and IR running on 2208?

          • I have this card too. I updated the card to the latest NEC firmware (4041_8m.rom). Here is the file: https://mega.nz/file/T5wExKJL#wCf7oo75J-6Rt-m1kopG_WuqDxbYX8Sf0_eP9Paq58s

            Then I put my discs into JBOD Mode using these commands:
            megacli -AdpSetProp EnableJBOD 1 -aALL
            megacli -PDMakeGood -PhysDrv[252:0,252:1,252:2,252:3,252:4,252:5,252:6,252:7] -Force -a0
            megacli -PDMakeJBOD -PhysDrv[252:0,252:1,252:2,252:3,252:4,252:5,252:6,252:7] -a0

            Discs can now be seen in Unraid.

        • Hi, I’m also trying to get a 9267-8i onto an IT firmware for UnRaid.

          I also get up to the flashing step with no problems but can’t get the flash to completely successfully, I’ve tried:
          9207, P14 and P20 firmware on the P20 sas2flash.efi
          9205, P14 and P20 firmwar on the P20 sas2flash.efi
          and I don’t think any complete successfully. The 9207 firmwares don’t even start the flashing process, mentioning NVDATA incompatibility.
          The 9205 ones begin the process and then fail in what seems to be one of the last steps, where it fails to validate “Mfg page 2”. At this point the buzzer starts screaming, and then it says the remaining commands won’t be completed, and exits the flasher.
          https://i.imgur.com/11wnvFE.png
          https://cdn.discordapp.com/attachments/683929821050437687/761940202917855273/video0.mov (Noise warning, buzzer is loud)

          Running “sas2flash.efi -list” fails to detect an adapter (the buzzer stops), it hangs for a moment before returning this command. Running the same command again shows the 2208 adapter as it was before the flash.
          https://i.imgur.com/UXHKrtO.png

          I’m at a bit of a loss of what to try from here. I can’t get any of the DOS flash tools working, as I get a “Failed to initialize PAL” error, though I can successfully boot into dos and use the other lsi tools. Am I missing something here or should I just try and swap the card for another that’s already on IT mode?

          Any help would be greatly appreciated,
          Thanks

  14. I am really intrigued by your guide. I have a 9265-8i which is only a PCIe 2.0 controller. But the SAS2208 on the 9265-8i is spec’d as PCIe 3.0. Do you think this is limited by the hardware on the card or the firmware? I have read of others flashing sas2208 cards to sas2308 firmware, but all have done as you have to the IT firmware. I want to retain RAID but unlock the PCIe 3.0. Is this just wishful thinking?

  15. I have the very same motherboard. I want to do this so I can move from windows server 2012r2 to freenas,
    But I Feel lost. Some of this I understand some I do not. i am unsure where to get the files and whichones are the right ones. I think once i know i have the right files i can figure it out with this guide

  16. Hi Hilton, Great write-up and thanks for sharing.

    Does flashing to IT Firmware allow for the OS to spin the drives down, or does the LSI controller still have priority over this?

    I’m struggling with a SMC 2208 in JBOD mode, keeping the drives spinning.

  17. Hmm, tried this on a 2208 riser card in a Huawei Tecal RH2288H V2 server. Everything went perfectly as far as the erase and reflash but after reboot it gets stuck at the MPT2BIOS initialization. Should’ve left that off and just done the firmware…

    Thanks for the excellent tutorial – this is just a word of warning for anyone who comes across one of these beasties.

    I may have a couple things I can try but if anyone has any suggestions I’d be happy for an extra brain.

    • As I suspected, the HDD backplane on this system seems to be the culprit – unplug it and the card initializes without a problem. However, even with the server BIOS updated and the Avago BIOS removed, it still can’t inventory the drives – FreeNAS just seems to go into an infinite loop when that comes up.

      Will need to see if I can update the backplane itself using Huawei’s Fusion tools – the iMana interface only seems to be able to update itself and the server BIOS.

  18. Dude! You are my hero! I know this post is a little old now, but I just started building a homelab. I wound up picking up an X9DRH-7F board in an 8-bay Supermicro chassis. I threw some shucked WD’s in it and could not for the life of me figure out why UnRAID couldn’t see them. Googling led me to your post on Serve which led me to here. I followed your instructions (which are pretty much spot on) – I found the sbempty.bin in one of the downloads and the efi version of sas2flash is sas2flsh.efi but other than that, everything worked just like you wrote. My RoC 2208 is now in IT mode and my drives are currently formatting in UnRAID. Thank you!

  19. Thank you! I was able to successfully flash a SuperMicro BPN-ADP-S2208L-H8iR, installed on an X9DRFR motherboard in a F627R3 chassis. It is now a basic SAS-capable IT HBA. No more “megawebgui” thing, just basic IT capabilities.

  20. Thanks for writing this guide.

    I have just tried following it through on a X9DRH-7TF motherboard. It appears to have worked, however I think I may be having issues with my backplane (BPN-SAS2-826EL1). When the backplane is disconnected, the system boots fine into FreeNAS, however, if I connect the backplane, Freenas stays at ‘run_interrupt_driven_hooks: still waiting after 60 seconds for xpt_config mps_startup’.

    Note: When I flash the MPTSAS2.ROM bios, the system halts on the Avago Bios screen at ‘initializing..’. It will however boot if I disconnect the backplane.

    Do you have any ideas what could be happening here? Do you use a similar backplane in your system

    • I had this issue with the same motherboard and the same backplane. Turned out that I flashed the wrong address to the controller.

      I’ll explain:

      Here is a dump from my allinfo.txt as per the tutorial above

      Link Speed : 0
      Number of Frontend Port: 0
      Device Interface : PCIE

      Number of Backend Port: 8
      Port : Address
      0 50030480019xxxxx
      1 0000000000000000
      2 0000000000000000
      3 0000000000000000
      4 0000000000000000
      5 0000000000000000
      6 0000000000000000
      7 0000000000000000

      HW Configuration
      ================
      SAS Address : 500304801a3yyyyy
      BBU : Absent
      Alarm : Present
      NVRAM : Present
      Serial Debugger : Present
      Memory : Present
      Flash : Present
      Memory Size : 1024MB
      TPM : Absent

      Originally I reprogrammed with the “50030480019xxxxx” address and I got all of the symptoms you stated. I had to short the disable jumper on the motherboard, get into the bios, disable the 2208 oprom, reboot to uefi, and reprogram the address to “500304801a3yyyyy” and everything works great and fast just like how I hoped it would be.

      Thank you

  21. Stumbled across this site after I fudged my way through re-flashing my M5110 to be an HBA.
    Was definitely not a straightforward process, but not really any more difficult than re-flashing an M1015 to IT mode.

    Cheers for the well written-up article, saved me faffing about writing one and finding somewhere to post it 😉

    • No worries, glad it’s useful even after the fact 😀
      Your post implies you successfully flashed the M5110 to IT firmware? Good to know, as its also a SAS2208 card, and a useful data point to have on cards which can be flashed.
      I take it you had no issues with a buzzer being on?
      (retail 9270-8i has a buzzer which goes permanently on when flashed to IT firmware – but can be removed)

  22. Hi,
    I have Intel RMS25PB080 RAID card which is LSI2208. I have tried your instructions step by step, everything went good until flashing
    sas2flash -o -f 9207-8.bin -b mptsas2.rom
    It gives me “NVDATA image does not match controller chip revision” error, and cut the operation.
    Actually I had to use uefi version, but could not find P14 UEFI. Which I download from broadcom web site, P14 file shows version 15 and its file name is sas3flash. I have tried lots of sas2flash versions, non of them worked. What did I miss?
    TIA

    • Hi,

      Firstly – this flash is deifnitely not an approved one.

      Not sure what sas3flash is/does?

      In my experience of flashing LSI cards, the validation of firmware compatibility depends heavily on the binary you’re running to do the flash, rather than the firmware.

      Two avenues I’d try:

      1. See if you can find an older version of Intel’s own flash tool/firmware to flash the card back to a much earlier version. Then try the (old) LSI tools from pre-P14 days.

      2. Change BIOS mode to be legacy-only, and try DOS tools from P10-era, or in the various lsi zip files you can fond on Servethehome forums.
      .

Leave a Reply

Your email address will not be published. Required fields are marked *