4.8 KiB
+++ title = 'Updating LSI HBA on TrueNAS Scale' description = 'Navigating Broadcom and LSI HBA updates on TrueNAS Scale' date = 2025-05-29T07:11:45-05:00 draft = false categories = ['references'] tags = ['LSI', 'TrueNAS Scale', 'Broadcom', 'Update', 'SAS3Flash', 'HBA'] +++
Navigating Broadcom and LSI HBA updates on TrueNAS Scale.
{{< lead >}} Navigating Broadcom and LSI HBA updates on TrueNAS Scale. {{< /lead >}}
All of the references I was able to find for updating LSI firmware was outdated, and since this took me longer than I would like, I thought I would share my experience as a guide to others.
Find your hardware information:
lspci -vvv | grep -A 20 -B 5 "LSI\|Broadcom"
65:00.0 Serial Attached SCSI controller: Broadcom / LSI SAS3224 PCI-Express Fusion-MPT SAS-3 (rev 01)
Subsystem: Broadcom / LSI SAS9305-16i
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 73
NUMA node: 0
IOMMU group: 4
Region 0: I/O ports at b000 [size=256]
Region 1: Memory at e0e00000 (64-bit, non-prefetchable) [size=64K]
Expansion ROM at e0d00000 [disabled] [size=1M]
Capabilities: [50] Power Management version 3
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [68] Express (v2) Endpoint, MSI 00
DevCap: MaxPayload 4096 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0W
DevCtl: CorrErr- NonFatalErr- FatalErr+ UnsupReq-
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ FLReset-
MaxPayload 256 bytes, MaxReadReq 512 bytes
DevSta: CorrErr+ NonFatalErr- FatalErr- UnsupReq+ AuxPwr- TransPend-
LnkCap: Port #0, Speed 8GT/s, Width x8, ASPM not supported
If we look under Subsystem, we can see the model number of the HBA, in my case: LSI SAS9305-16i
. If you have multiple HBAs, they should all be listed in similar entries.
Now we can find out what firmware version we are currently running by using the sas3flash
command.
sas3flash -listall
Avago Technologies SAS3 Flash Utility Version 16.00.00.00 (2017.05.02) Copyright 2008-2017 Avago Technologies. All rights reserved.
Adapter Selected is a Avago SAS: SAS3224(A1)
Num Ctlr FW Ver NVDATA x86-BIOS PCI Addr
0 SAS3224(A1) 16.00.01.00 10.00.00.05 08.27.00.00 00:17:00:00 1 SAS3224(A1) 16.00.01.00 10.00.00.05 08.27.00.00 00:65:00:00
Finished Processing Commands Successfully.
Exiting SAS3Flash.
# Download the firmware:
Navigate to the [Broadcom website](https://www.broadcom.com/support/download-search?pg=&pf=Host+Bus+Adapters&pn=&pa=Firmware&po=&dk=&pl=&l=false) and search for your HBA model number. Broadcom does not make it easy to get direct links to the downloads, so hit F12 in your browser, and go to the `Network` tab. When you click on the download link you will see a GET request, copy the URL. In my case, the URL is: https://docs.broadcom.com/docs-and-downloads/host-bus-adapters/host-bus-adapters-common-files/sas_sata_12g_p16.12_cutlass_point_release/9305_16i_Pkg_P16.12_IT_FW_BIOS_for_MSDOS_Windows.zip
Now in our TrueNAS Scale shell, we can download the firmware using wget.
```bash
wget https://docs.broadcom.com/docs-and-downloads/host-bus-adapters/host-bus-adapters-common-files/sas_sata_12g_p16.12_cutlass_point_release/9305_16i_Pkg_P16.12_IT_FW_BIOS_for_MSDOS_Windows.zip
unzip 9305_16i_Pkg_P16.12_IT_FW_BIOS_for_MSDOS_Windows.zip
cd 9305_16i_Pkg_P16.12_IT_FW_BIOS_for_MSDOS_Windows
cd Firmware
cd SAS9305_16i_IT_P
Backup the current firmware:
For each HBA, we should backup our current firmware in case something goes wrong.
sas3flash -c 0 -ufirmware backup_card0_fw.bin
sas3flash -c 1 -ufirmware backup_card1_fw.bin
Update the firmware:
{{< alert >}} Warning! I was able to update my firmware on a live system with no restart or issues, but this may not be the case for you. It is a good idea to make sure that your arrays are not in use, and that you have good backups before proceeding. {{< /alert >}}
Lets flash the firmware!
sas3flash -c 0 -f SAS9305_16i_IT_P.bin
sas3flash -c 1 -f SAS9305_16i_IT_P.bin
Clean up
We are all done!
Once you have verified that things are working the way you want them to, you can remove the firmware download and the backup files.