How to Upgrade Broadcom LSI SAS 9305-16i Storage Controller Firmware

Written By Christian Castagna (Administrator)

Updated at November 18th, 2025

→ Applies to: VMware ESXi 6.5 and above

This article describes how to upgrade the firmware of the Broadcom LSI SAS 9305-16i storage controller, installed on Syneto HYPER Core 3000 appliances, to version 16.0.12.0. The storage controller is managed directly by the SynetoOS VM and controls the data storage disks.

To upgrade the controller firmware, you must boot the HYPER Core appliance from a virtual CD-ROM using IPMI.

WARNING
The firmware upgrade operation requires powering down the VM in the datastore.

IMPORTANT
Before performing the upgrade, ensure all data on the affected appliance's storage pool has been replicated to a secondary appliance.

Ensure the following prerequisites are met before starting:

Controller chip: ensure the storage controller chip model is SAS3224;
IPMI: ensure you have access to the IPMI interface from remote management;
Firmware ISO: ensure you have downloaded the ISO file for firmware upgrade (SASFWUPG.ISO, MD5);
Windows PC: ensure you have a Windows PC with Java JRE installed;
Downtime: schedule appropriate downtime.

 

Verify Appliance Model, Controller Model and Firmware Version


Step 1. Login to VMware ESXi GUI (replace <your_ip_address_or_hostname> with the correct ip/hostname)

https://<your_ip_address_or_hostname>

 

Step 2. From the left menu, click on Host


Step 3. Check the Model of Syneto appliance in Hardware


Step 4. From the left menu, click on Virtual Machines and on the SynetoOS VM


Step 5. Check the model of PCI device 0 in Hardware Configuration


Step 6. Connect to SynetoOS appliance via SSH as admin

ssh admin@<your_ip_address_or_hostname>

 

Step 7 (optional). Change into Solaris shell (in case you're directed to an unsupported shell)

un sh

 

Step 8. Get root privileges

sudo su -

 

Step 9. Check the firmware version

If the system is running SynetoOS 4:

prtconf -vd | grep -C 30 SAS9305-16i | grep -A1 firmware-version

If the output is like the one below, the firmware version is confirmed to be "16.0.1.0".

name='firmware-version' type=string items=1 dev=none
    value='16.0.1.0'

 

If the system is running SynetoOS 5 or SynetoOS 6:

dmesg | grep "LSISAS3008"

If the output is like the one below, the firmware version is confirmed to be "16.0.1.0".

[    3.398856] mpt3sas_cm0: LSISAS3008: FWVersion(16.00.10.00), ChipRevision(0x02)

 

Upgrade Controller Firmware


Step 1. Shut down and unregister all VMs except SynetoOS

Step 2. Connect to SynetoOS appliance via SSH as admin

ssh admin@<your_ip_address_or_hostname>

 

Step 3 (optional). Change into Solaris shell (in case you're directed to an unsupported shell)

un sh

 

Step 4. Get root privileges

sudo su -

 

Step 5. Delete cache pools

rm -f /etc/zfs/zpool.cache

 

Step 6. Shutdown Physical Appliance

Step 7. Run the ISO from IPMI ("How to Mount an ISO via IPMI")

Step 8. From IPMI console, click on Virtual Media > Virtual Keyboard

The ISO will be loaded and a CLI will be opened

 

Step 9. Move to the firmware folder

cd firmware

 

Step 10. List controllers installed on the system

SAS3FLSH -listall

EXAMPLE OUTPUT



IMPORTANT
The controller model that needs to be upgraded is the SAS3224 model.

 

Step 11. Check the number assigned to SAS3224 controller (num column)



IMPORTANT
In this example, the number assigned to the SAS3224 controller is 1.
In other situations, the SAS3224 controller may be at number 0.

 

Step 12. Erase data of the SAS3224 controller (replace <num> with the correct information)

SAS3FLSH -c <num> -o -e 6

 

Step 13. Upgrade firmware (replace <num> with the correct information)

SAS3FLSH -c <num> -o -f SAS9305.BIN -b MPTSAS3.ROM -b MPT3X64.ROM

 

Step 14. Check if the firmware upgrade is completed

SAS3FLSH -listall

 

Step 15. Reboot the system

 

Import Pools

Due to the pools cache deletion and controller firmware upgrade, re-importing the pools is required when rebooting SynetoOS.

Step 1. Import pools

If the system is running SynetoOS 4: 
Import pools for SynetoOS 4 (“How to Import an Existing Pool in SynetoOS 4”)

If the system is running SynetoOS 5:  
Import pools for SynetoOS 5 (“How to Import an Existing Pool in SynetoOS 5”)

If the system is running SynetoOS 6: 
Import pools for SynetoOS 6 (“How to Import an Existing Pool in SynetoOS 6”)