how to crossflash LSI 9300 HBA card


the following is a copy/paste from an internet archive page, copied here for convenience:


Compact Steps (Using ONLY MEGAREC3 and MEGACLI in DOS)

(These instructions will allow you to flash a Dell H330 Raid card to a HBA330 Card with IT HBA firmware without using Windows, using only DOS tools)

Steps:
1. Using the same files I included in the google drive link, copy all the files over to a flash drive made with Rufus tool as a FREEDOS flash drive. (In other words, make a Rufus FREEDOS flash drive and copy over the files.)

2. Install H330 card into a free available pci-e slot. Can be x1, x4 x8 or x16. I would at least do a x4 to be sure the card gets enough powa. (Yes, I said powa.)

3. Boot to Freedos and type: 

megacli -adpallinfo -a0 > h330info.txt


This saves all the card info, such as serial number and the important SAS address for reprogramming later. You will need to pop the flash drive into another PC later to grab and open the .txt document to see the sas address so you can program it.
Of note, this is the original firmware info from the dell proprietary raid rom. You will only need the sas address. Everything else is not needed. You can save it for record purposes if you want though.
Alternatively, you could type: megacli -adpallinfo -a0 then when you start to see the verbose output with all the lines, you could press PAUSE on your keyboard and pause the scrolling text at the sas address and just write it down on a piece of paper.

4. Now, Flash the H330 card with the SMC3108.rom. Type:

megacli -adpfwflash -f smc3108.rom -noverchk -a0


It should take about a minute and flash the smc rom over to the card. It will report success once complete.

5. Reboot.

6.Be Patient! The Bios on the card will take exactly three (3) minutes to enumerate. Not sure why, but please wait till you see the message: “Baseport not responding. No adapter available” Then it should go past that and let you boot into Freedos. This is the toughest/trickiest part. Just be patient my friends!

7. Now, once booted into FREEDOS command prompt, we wanna write all zero’s to the flash.

 megarec3 -writesbr 0 sbrempty.bin


(it will return a success message with 2 lines saying something about the interrupt) As it turns out, the same sbrempty.bin file can be used from the MEGAREC SAS2 days.

8. Clean out the Dell flash once and for all:

megarec3 -cleanflash 0


It will erase the flash chip on the card. Takes about less than a minute or so.

9. Now, you must Reboot! SAS3FLASH will not recognize the card unless you reboot.

10. When back in Freedos/EFI shell:

sas3flsh -list (or sas3flash -list 

if you are using the EFI shell) It will give a message than controller is not operational, and that you need to provide a firmware. Feed it the HBA330.fw or the 12Gbpsas.fw file. Type: hba330.fw or 12gbpsas.fw and it will perform a host boot and flash it to the card. You will see a partial list output of the card with firmware. But you now need to flash the bios.

Note: I now recommend the HBA330 firmware over the 12Gbpsas firmware, as the 12Gbps firmware is more made for the external cards. It will work, and if you want the card to report as a generic 12Gbps HBA, you can use it. I prefer to see it report as a HBA330 card. Preference is yours mates.

11. Flash the MPTSAS3 bios for the card. Type: 

sas3flsh -o -b mptx64.rom 

Then it will flash the MPT bios to the card. Alternatively, you can flash the whole thing together with this command:

sas3flsh -o -f hba330.fw -b mptx64.rom 

OR 

sas3flsh -o -f 12gbpsas.fw -b mptx64.rom (no longer need mptxsas3.rom)

This will just go through the whole flashing process and flash both firmware and bios to the card.

12. Now, program your SAS address:

Type: sas3flsh -o -sasadd xxxxxxxxxxxxxxxx 

(where the 16 x’s are the alphanumerical characters you will use from the saved .txt file with the sas address. Or you can make one up. As long as no 2 cards in your system has the same sas address, you are fine. Just make sure it is 16 characters. Numbers and letters only.

13. See your newly flashed H330, now flashed over to HBA firmware.

Type: sas3flsh -list or sas3flsh -listall 

That’s it! Reboot and Test your card in Windows/Linux/Freenas/Xigmanas/Unraid or wherever you plan to use the card. The appropriate drivers should load. It should now come up as a Dell 12Gbps HBA, or if you flashed the HBA330+ Firmware and Bios, it should show as a HBA330 card, NOT a Dell Perc H330 Raid card. I am working on getting the card flashed over to stock LSI firmware, possibly the 9311-8i IT firmware, but for now, this is working great.

IMPORTANT! If you flash your card, and it doesn’t show any drives, make sure you flashed the CORRECT HBA330 firmware. The firmwares are similarly named, and can easily be mistaken for the other one. I linked the latest firmware in my download, but if you choose to download it from Dell’s website, please ensure you flash the Adapter firmware for the ADAPTER card, and the Mini Mono firmware for the MINI MONO card.

references


One response to “how to crossflash LSI 9300 HBA card”

  1. Thanks! Worked perfectly on a H330 raid card (not mini) in a Dell R230.

    Great pfSense box now, with zfs properly supported and reporting. No zfs errors.

Leave a Reply

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