Skip to content

Instantly share code, notes, and snippets.

@buswedg
Created August 2, 2024 22:55
Show Gist options
  • Save buswedg/f94a7978b07c1976e81e6d456ec37853 to your computer and use it in GitHub Desktop.
Save buswedg/f94a7978b07c1976e81e6d456ec37853 to your computer and use it in GitHub Desktop.

Lenovo 430-x HBA Firmware/BIOS Update

What?

Guide on how to update the firmware and BIOS of a Lenovo ThinkSystem 430-x SAS/SATA 12Gb HBA.

References

Steps

  1. Download the latest STORCLI utility for LSI SAS3.5 Controllers per the reference above.
  2. Download the latest HBA (Windows) driver package per the reference above.
  3. Extract the packages to a folder on your local (Windows) machine.
  4. Copy the relevant files to a FAT32 formatted USB, for example:
    • storcli.efi
    • 16i_24_00_07_00.fw
    • mpt35sas_x64_24_00_05_00.rom
    • mpt35sas_legacy_9_47_03_00.rom
  5. Boot to the USB via EFI shell.
  6. Identify the relevant (cX) HBA:
    storcli.efi show all
  7. Confirm the relevant HBA:
    storcli.efi /c0 show
  8. Backup STORCLI output to the USB:
    storcli.efi /c0 show all > backup\output.txt
  9. Backup current controller bios, firmware etc. to the USB:
    storcli.efi /c0 get bios file=backup\bios
    storcli.efi /c0 get firmware file=backup\firmware
    storcli.efi /c0 get mpb file=backup\mpb
    storcli.efi /c0 get fwbackup file=backup\fwbackup
    storcli.efi /c0 get nvdata file=backup\nvdata
    storcli.efi /c0 get flash file=backup\flash
  10. Update the firmware:
    storcli.efi /c0 download file=16i_24_00_07_00.fw
  11. Update the EFI BIOS:
    storcli.efi /c0 download efibios file=mpt35sas_x64_24_00_05_00.rom
  12. Update the BIOS:
    storcli.efi /c0 download bios file=mpt35sas_legacy_9_47_03_00.rom
  13. Check HBA versions have updated:
    storcli.efi /c0 show
  14. Power cycle the machine.
@incith
Copy link

incith commented Nov 28, 2024

Based on the product information, CableDeconn SFF-8643 Internal Mini SAS HD to (4) 29pin SFF-8482 connectors with SAS 15pin power port 12GB/S Cable supports Broadcom controllers. Customers use this cable with LSI Broadcom SAS 9300-8i SATA/SAS Host Bus Adapter and 12G LSI cards.

@webermar
Copy link

https://a.co/d/fe6ulfi

Literally the same thing but using sata instead of molex. Good reviews. I am curious why you think it wouldn't work?

I tried it with no-noname (Delock) cables and Startech adapter. I don't know why exactly but it won't work. Presumably something to do with how the pcie-lanes are handed over.

The "cheap" cables are meant for non-raid cards which essentially are adapters from pcie-slot -> sff-8643 and similar. This way, no pcie-lanes must be negotiated with a controller.

@incith
Copy link

incith commented Nov 28, 2024

It's $13. Just try it. Return it if it doesn't work?

Seems like you could potentially save yourself a lot of hassle here.

Anyway, good luck.

@dgaglioni
Copy link

aliexpress.com/item/4000758187693.html

27 USD

Try googling:

2SFF8643 to 2SFF8639 12Gb/NVMe MiniSAS HD to U.2 80CM Cable Length 20CM Large 4Pin PowerLine For Broadcom 94xx HBA/RAID Card

Try other browser than Chrome as well.

@dgaglioni
Copy link

https://a.co/d/fe6ulfi

Literally the same thing but using sata instead of molex. Good reviews. I am curious why you think it wouldn't work?

With the cables I mentioned above you can connect U.2 NVMEs on a 94XX controller, the ones you mentioned are for SATA/SAS disks.

https://www.broadcom.com/support/knowledgebase/1211219217821/nvme-cables-and-information-

@CodeRipley
Copy link

CodeRipley commented Feb 13, 2025

Thank you for making this guide. I purchased an Avago 430-16i from AliExpress. Not sure whether it's a clone or refurbished original or what, but it seems to be working as expected. I crossflashed to LSI 9400-16i FW as mentioned by others in the thread. Just one question, is it normal for the "Product Name" in storcli to remain "430-16i" after flashing to 9400-16i? All of the other info, such as "FW Version" "BIOS Version" "NVDATA Version" all seemed to have changed appropriately, and I now see NVME in Capabilities/Supported Drives, I just wasn't sure if the "Product Name" should be changing to 9400-16i or not.
Thanks again.
Edit: I knew I forgot to mention something else.. although the HBA seems to be working fine, (I did some speed tests in Windows) I am not able to boot into the HBA BIOS. Have tried changing many settings in host BIOS to accomadate legacy/EFI/CSM etc. and the most I'm seeing is a "Broadcom MPT35 HBA BIOS" splash screen on boot, where it "initializes" and then checks for disks attached to the HBA, but It never shows the option to load the BIOS with "Ctrl + C". It just finishes checking for disks and then the server boots into the OS.
Anyways.. I'm a noob with this stuff so I'm assuming I've done something wrong but hopefully someone can help. Thanks again.

@WarmWelcome
Copy link

I purchased an Avago 430-16i from AliExpress. Not sure whether it's a clone or refurbished original or what, but it seems to be working as expected.

Very likely to be a clone. I purchased one and found it to be, and it had severe issues.

Just one question, is it normal for the "Product Name" in storcli to remain "430-16i" after flashing to 9400-16i?

I am unable to verify this, as I do not have a lenovo variant, so take it with a grain of salt. I am pretty sure that is normal. The only thing that seems to have changed is what is updated, which is the firmware.

I am not able to boot into the HBA BIOS.

Possibly an issue with the update. I had one with one of my clones. After an update, it spat out nothing but gibberish. I could get into the bios, though, so ymmv.

@MatrixInfosec
Copy link

I bought two of these off of ebay and neither shows in in the preboot. No way to get into the lenovo/LSI firmware menu like all the other LSI cards I own. Is this normal? I tried on two Supermicro x9scm-f boards and on an ASRock board. If i run lspci in linux, neither card shows up. Any ideas?

@WarmWelcome
Copy link

@MatrixInfosec

I bought two of these off of ebay and neither shows in in the preboot. No way to get into the lenovo/LSI firmware menu like all the other LSI cards I own. Is this normal? I tried on two Supermicro x9scm-f boards and on an ASRock board. If i run lspci in linux, neither card shows up. Any ideas?

Go back to the supermicro board and boot into built in uefi with the usb and storcli.efi utility. Ensure that the slot is not disabled and is set to load an oprom in the pcie settings, and is set to the right lane configuration (probably in cpu settings). When booted into the built in uefi, navigate to the flash drive (using the command fs0: probably, use map -b to see storage devices if it didnt print it initially) and use the command storcli.efi show to list the controllers and storcli.efi /cx show ("x" being the card num shown in storcli.efi show) to list the properties for the card. After you are at that point, you can probably flash it with the above commands.

Your storage controllers may have been flashed improperly, or could be without a rom of a certain type. You can try the different oprom types by changing the oprom to legacy or uefi for the pcie slot in the supermicro motherboard bios.

Additionally, make sure that your x9 motherboard is updated to the latest firmware. Sometimes, x9 boards can have issues flashing firmware. This does not relate to detecting these cards, however, so it should work at least for that.

If you have any questions about this, @ me and I will do my best to respond promptly.

@EmmanuelZapata
Copy link

I think my card might be upgraded but my ssd that I have attached to it isn't showing up. This is what is showing up right now:

image png e6cb21155fb56a21b31860888ebd7fae

@WarmWelcome
Copy link

I think my card might be upgraded but my ssd that I have attached to it isn't showing up. This is what is showing up right now:

image png e6cb21155fb56a21b31860888ebd7fae

Looks like you flashed it with the lenovo driver. Their driver only supports the sas/sata protocols. To do nvme as well, you need to flash it with the 9400 mixed variant of the firmware. You will also need cables compatible with the hba that suport u.2 drives.

@pr10dr
Copy link

pr10dr commented Jul 28, 2025

Worked great! On my B650 Motherboard Bios update of the Motherboard was required to make the HBA card visible.

@glaserf
Copy link

glaserf commented Aug 28, 2025

I dont believe that it is officially supported to do nvme over the card, but it seems to be the same model. They look exactly the same, at least. I think you could enable it by using the mixed profile version. You really shouldn't be trying to do nvme over these if you are planning on using nvme drives, as these are awful to put a drive behind. If at all posible, avoid using these with nvme drives.

@WarmWelcome
The 9400 series cards from Broadcom/LSI are tri-mode cards with full NVMe drive support. Any reason why one should avoid running NVMe drives with this car? Or what do you refer to by "putting a drive behind"?

@ForsakenRei
Copy link

I dont believe that it is officially supported to do nvme over the card, but it seems to be the same model. They look exactly the same, at least. I think you could enable it by using the mixed profile version. You really shouldn't be trying to do nvme over these if you are planning on using nvme drives, as these are awful to put a drive behind. If at all posible, avoid using these with nvme drives.

@WarmWelcome The 9400 series cards from Broadcom/LSI are tri-mode cards with full NVMe drive support. Any reason why one should avoid running NVMe drives with this car? Or what do you refer to by "putting a drive behind"?

LSI 9400 yes everything is supported, while Lenovo 430 shared the same hardware, they use their own firmware to disable NVMe drive support. But since it's the same hardware you can cross flash the firmware to enble that.
Because this card is only x8, 2 NVMe SSDs' bandwidth, so if you purely use NVMe SSDs you will lose performance, but if you have SAS SSDs or performance is not the top priority, you can definitly put NVMe SSDs on this card.

@glaserf
Copy link

glaserf commented Aug 28, 2025

LSI 9400 yes everything is supported, while Lenovo 430 shared the same hardware, they use their own firmware to disable NVMe drive support. But since it's the same hardware you can cross flash the firmware to enble that. Because this card is only x8, 2 NVMe SSDs' bandwidth, so if you purely use NVMe SSDs you will lose performance, but if you have SAS SSDs or performance is not the top priority, you can definitly put NVMe SSDs on this card.

Thanks for the clarification. Yes I was going for a mixed SATA/NVMe config and anyways have a BW limit of 10Gb/s imposed by my NIC, so x8 PCIe 3.0 lanes are way more than that and I can never use the full BW of the card anyways (which is almost 8GB/s or 64Gb/s, more than 6x faster than my NIC..).

@glaserf
Copy link

glaserf commented Aug 28, 2025

@dgaglioni

As I stated above you need to connect the NVMEs with a compatible cable, these cards do not work with generic SFF8643 to SFF8639 cables due to Broadcom proprietary cable, anyway you can buy a compatible one on Aliexpress, link on my comment above:

https://gist.github.com/buswedg/f94a7978b07c1976e81e6d456ec37853?permalink_comment_id=5208888#gistcomment-5208888

Broadcom genuine: 05-50064-00 or 05-50065-00

https://docs.broadcom.com/doc/12354774

Do you have any clue if a SFF8643-to-SFF8643 cable connecting the card to an SFF8643-to-M.2 breakout board like these would work?

@webermar
Copy link

@dgaglioni

As I stated above you need to connect the NVMEs with a compatible cable, these cards do not work with generic SFF8643 to SFF8639 cables due to Broadcom proprietary cable, anyway you can buy a compatible one on Aliexpress, link on my comment above:
https://gist.github.com/buswedg/f94a7978b07c1976e81e6d456ec37853?permalink_comment_id=5208888#gistcomment-5208888
Broadcom genuine: 05-50064-00 or 05-50065-00
https://docs.broadcom.com/doc/12354774

Do you have any clue if a SFF8643-to-SFF8643 cable connecting the card to an SFF8643-to-M.2 breakout board like these would work?

Yeah sadly they do not work. I tried with a similar board. I don't know what it is, but something special is with the official cables, that generic cables and adapter/boards don't have. Maybe just some rearranged pins of the PCIe lanes? Would be nice if someone can reverse engineer this.

@glaserf
Copy link

glaserf commented Aug 29, 2025

@webermar

Yeah sadly they do not work. I tried with a similar board. I don't know what it is, but something special is with the official cables, that generic cables and adapter/boards don't have. Maybe just some rearranged pins of the PCIe lanes? Would be nice if someone can reverse engineer this.

Hmm snap! How about a combination of a "special" SFF8643-to-U.2 and a U.2-to-M.2 adapter?
Edit: Found one that was used in a LTT video: https://www.startech.com/en-ch/hdd/u2m2e125

But yeah, buying a regular and a special to-U.2 cable and comparing them shouldn't be that hard I guess..

@webermar
Copy link

@webermar

Yeah sadly they do not work. I tried with a similar board. I don't know what it is, but something special is with the official cables, that generic cables and adapter/boards don't have. Maybe just some rearranged pins of the PCIe lanes? Would be nice if someone can reverse engineer this.

Hmm snap! How about a combination of a "special" SFF8643-to-U.2 and a U.2-to-M.2 adapter? Edit: Found one that was used in a LTT video: https://www.startech.com/en-ch/hdd/u2m2e125

But yeah, buying a regular and a special to-U.2 cable and comparing them shouldn't be that hard I guess..

Yeah, funny this is exactly the Adapter I used (in combination with a generic cable).

@glaserf
Copy link

glaserf commented Aug 30, 2025

Yeah, funny this is exactly the Adapter I used (in combination with a generic cable).

Okay - I‘ll give it a try with the special cable and report :)

@Eagle248
Copy link

Yeah, funny this is exactly the Adapter I used (in combination with a generic cable).

Okay - I‘ll give it a try with the special cable and report :)

Can you please share the link to the special cable to connect to nvme?

@Eagle248
Copy link

If I do not want nvme support in that case lenovo 430-8i will work fine with ASUS motherboard and seagate sata hard drives with original lenovo firmware?

@glaserf
Copy link

glaserf commented Sep 24, 2025

@Eagle248 No, in that case you don't have to do anything. SAS and SATA are always supported. The link to the cable was posted many times here already: https://de.aliexpress.com/item/4000758187693.html?gatewayAdapt=bra2deu

@glaserf
Copy link

glaserf commented Sep 24, 2025

@webermar So I bought the adapter cable from Ali and the startech U.2-to-M.2 adapter (from Reichelt), cross-flashed my Lenovo HBA to the newest Broadcom mixed-mode firmware (now showing NVMe as supported mode in storcli) - and NO LUCK with an M.2 NVMe drive :( It simply isn't detected/listed during boot.

Any idea how I can debug this or what else could be going wrong in the U2/M2 adapter? Otherwise I'll have to quit this exercise, buying U.2 drives is pointless as they are stupidly expensive, even used ones on ebay.

@webermar
Copy link

webermar commented Sep 24, 2025

@glaserf thank you very much for testing! I got mine from Reichelt, too, I wonder if they have high return rates of this adapter because of this! :D
That's sad to hear, but I stumbled upon the same topic over at servethehome which finally answers the question: https://forums.servethehome.com/index.php?threads/broadcom-9500-8i-nvme-u-2-u-3-tri-mode.39426/
Basically, the Ali cable isn't genuine, they did it with u.2 adapters and this is also what I thought what the problem is, because u.2 and m.2 don't differ in protocol, u.2 only provides more lanes (AFAIK!).

In short for all others still reading along:
In the end, it isn't worth it connecting nvme drives with those hbas/raid controllers. Use bifurcation cards with power loss protection drives instead.

@glaserf
Copy link

glaserf commented Sep 24, 2025

@webermar Thanks for the link - but I still don't get the explanation part why the Ali adapters don't work to be honest.. What do you mean by "they did with with u.2 adapters" (who is "they", Ali or Broadcom)?

@webermar
Copy link

webermar commented Sep 25, 2025

@webermar Thanks for the link - but I still don't get the explanation part why the Ali adapters don't work to be honest.. What do you mean by "they did with with u.2 adapters" (who is "they", Ali or Broadcom)?

Yeah nobody else knows what is special about that cable, too. From images we can infer that it has no active components but they way it connects to the controller must be special.
The people at servthehome did it with u.2 to m.2 adapters. So for me, that confirms the cable is the critical part.

If you look at it it seems there are only genuine cables which connect 2x SAS8643 to 2x U.2. I would speculate that this is for some reason...
https://www.genuinemodules.de/05-50065-00

@glaserf
Copy link

glaserf commented Sep 25, 2025

@webermar Thanks for the link - but I still don't get the explanation part why the Ali adapters don't work to be honest.. What do you mean by "they did with with u.2 adapters" (who is "they", Ali or Broadcom)?

Yeah nobody else knows what is special about that cable, too. From images we can infer that it has no active components but they way it connects to the controller must be special. The people at servthehome did it with u.2 to m.2 adapters. So for me, that confirms the cable is the critical part.

Ah okay, got it. Yeah indeed no active components neither in the cable nor the U2/M2 adapter. What all threads in this regard seem to agree on is that the "secret sauce" really is Broadcom somehow mapping NVMe on a connector that can also do SAS/SATA (SFF-8643). For this to work they had to get creative in the pinout, and the special cable "undoes" this. I suspect that this is also the reason that there is no single-SFF-8643 to single-U.2 cable, but only dual-to-dual and each U.2 gets some signals from both of the SFF-8643 connectors.

However, that still does not explain why this darn cable from Ali does not work even though it claims to be Broadcom compatible/special, or why this setup as a whole does not work.
I found this cable from Amazon which looks different compared to the Ali one (and is even cheaper), reluctant to give it a try: https://www.amazon.com/dp/B07JM1H18S

@webermar

@glaserf
Copy link

glaserf commented Sep 25, 2025

If you look at it it seems there are only genuine cables which connect 2x SAS8643 to 2x U.2. I would speculate that this is for some reason... https://www.genuinemodules.de/05-50065-00

Damn.. there's also this https://www.genuinemodules.de/05-50061-00 which further cements our suspicion about the 2x 8643 being necessary. And now I really wonder if these cables work with what I originally had in mind (see above).

@glaserf
Copy link

glaserf commented Oct 10, 2025

Well, what should I say?

It bloody works - finally!

Turns out, the cable from Ali was dodgy - who would've thought! Not sure if only mine or they don't work in general, either way it is straight going back and my money refunded.
The cable from Amazon just works, is cheaper, and in general looks like its built with higher quality.

What a journey. Sadly, temperature reporting for the NVMe drive connected to the HBA does not work, as has been mentioned here and elsewhere already. Apart from that, it absolutely fits my use case, given the PCIe limitations of my MoBo/platform.

@webermar

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment