How to upgrade Broadcom LSI SAS 9305-16i storage controller firmware

Written By Christian Castagna (Administrator)

Updated at February 13th, 2025

→ Applies to: SynetoOS 4.x
→ 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

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'

 

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. Login to SynetoOS 4 GUI (replace <your_ip_address_or_hostname> with the correct ip/hostname)

https://<your_ip_address_or_hostname>

 

Step 7. Click the Settings menu in the upper right corner

 

Step 8. From the dropdown menu click on Shutdown icon

 

Step 9. Select Physical appliance and click on Shutdown

 

Step 10. Run the ISO from IPMI ("How to mount an ISO via IPMI")

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

The ISO will be loaded and a CLI will be opened

 

Step 12. Move to the firmware folder

cd firmware

 

Step 13. List controllers installed on the system

SAS3FLSH -listall

EXAMPLE OUTPUT



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

 

Step 14. 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 15. Erase data of the SAS3224 controller (replace <num> with the correct information)

SAS3FLSH -c <num> -o -e 6

 

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

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

 

Step 17. Check if the firmware upgrade is completed

SAS3FLSH -listall

 

Step 18. 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 (“How to import an existing pool in SynetoOS 4”)