Home Server, Software • Updating the firmware on a 3Ware 9650SE controller via CLI

Updating the firmware on a 3Ware 9650SE controller via CLI


8336283143wareEarlier this year I acquired an old SuperMicro storage server which sports a 3Ware 9650SE-16ML RAID-controller. I sometimes see that it randomly starts throwing “DEVICE-ERROR” errors in the tw-cli tool. Mostly these appear when the controller is too busy or when a harddrive is responding too slow and are false positives. As I monitor the disks in this system I receive notifications about this and is not desirable when they are false.

First thing I checked was the firmware of the controller which seems to date back to 2009/2010. The controller is considered legacy as of 2015 and will not receive further firmware updates from Avago. As a result the latest available firmware is from 2014/2015 which we will install in this post.

The instructions will be performed via SSH as the root user. You need the “tw-cli” tool installed to communicate with the 3Ware RAID-controller. The tool can be downloaded from the Avago website or hwraid.le-vert.net. The firmware is also required and can be downloaded from the Avago site as well. For the 9650SE card the firmware will be downloaded from the CLI directly (as I know the URL).

Getting current firmware version:
When logged in as root via SSH run the following to retrieve the card’s slot:
tw-cli show

The output in our case is:
Ctl Model (V)Ports Drives Units NotOpt RRate VRate BBU
c2 9650SE-16ML 16 15 1 0 1 1 -

The slot the RAID-controler resides in is “c2” in this case. Now we will get the firmware version of the card:
tw-cli /c2 show firmware

Which will show similar output (version may be different) as below:
/c2 Firmware Version = FE9X

Preparing the firmware update:
We need to download the firmware package for the RAID-controller. I know the URL for the firmware that is needed for my card, so I can simply use wget for it. For your card, download and upload it to your server.

To download the firmware package for the 9650SE line of cards use:
wget http://docs.avagotech.com/docs-and-downloads/raid-controllers/raid-controllers-common-files/9650SE_9690SA_firmware_9-5-5-1codeset_fw4-10-00-027.zip

Unpack the firmware files:
unzip 9650SE_9690SA_firmware_9-5-5-1codeset_fw4-10-00-027.zip

This will leave several files in the directory where the ZIP file is in. The one we need to flash is called “prom0006.img”. This information can be retrieved by looking into the up9650.bat file which points to the prom0006.img file.

In my case the absolute path to the file is “/root/prom0006.img”. You need to know the absolute location to the firmware file for use in tw-cli later on.

Updating the firmware:
Now that we have the firmware image, we can start flashing it into the RAID-controller with the following command:
tw-cli /c2 update fw=/root/prom0006.img

This will show the following output, waiting for your confirmation:
Warning: Updating the firmware can render the device driver and/or
management tools incompatible. Before you update the firmware,
it is recommended that you:

1) Back up your data.

2) Make sure you have a copy of the current firmware image so that
you can roll back, if necessary.

3) Close all applications.

Examining compatibility data from firmware image and /c0 ... Done.

New-Firmware Current-Firmware Current-Driver Current-API

Both API and Driver are compatible with the new firmware.
Recommendation: proceed to update.

Given the above recommendation...
Do you want to continue ? Y|N [N]: Y
Downloading the firmware from file /root/prom0006.img ... Done.
The new image will take effect after reboot.

Check if the recommendation is set to “proceed to update” and confirm with Y.
Downloading the firmware from file /root/prom0006.img ... Done.
The new image will take effect after reboot.

Now that the update is finished, reboot the machine to have the new firmware activated in the RAID-controler:

Checking new installed firmware version:
Once the server is back online, check the firmware version again to confirm the update went with success:
tw-cli /c2 show firmware
/c2 Firmware Version = FE9X

As seen above, the update of the firmware went with succes!

Author:Jeffrey Langerak

3 responses to “Updating the firmware on a 3Ware 9650SE controller via CLI”

  • Tom 30-03-2017 at 00:25 Reply 

    Hi … helpful article. Thanks.
    But I have a question.
    I’m using a 9690 with 5x 3TB. Now I wan to swap to 5x 4TB.
    The fastest way to transfer data should be, copy from old RAID to the new RAID.
    So I would install the new 4TB-Drives to my 9690, and connect the old 3-TB-Drives to an 9650SE.
    Are the data going to be corrupt, if it’s not a 9690? Or can I use it like on 9690?
    Thanks, Tom

    • langerak 11-04-2017 at 15:23 Reply 


      As far as I am aware the 9650 and 9690 share the same CPU, only the harddisk controller is different due to SAS/SATA. What you could try is to create the RAID set on the 9690 and then plug the set on the 9650 to see if the 9650 sees the created RAID set (I actually think this will work as I’ve done this from a 9500 -> 9550 -> 9650). If the RAID controleer sees the RAID set you should be able to proceed?

      Kind regards,

      Jeffrey Langerak

  • Mykl Bren 08-05-2023 at 08:12 Reply 

    Neat. But of course the tw_cli no longer works (ca May 2023) and instead throws a segfault while trying to ‘load’ the firmware image file. This shows the inescapable ridiculousness of relying upon hardware vendors and their closed-source traps.

Leave a Reply

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



This site uses Akismet to reduce spam. Learn how your comment data is processed.