⎯
⎯
⎯
⎯
USER GUIDE
Solidigm™ OEM Firmware
Updater (SOFU)
August 2023
sdfsefsd
Solidigm™ OEM Firmware Updater
Revision History
Document
Description Revision Date
Revision
• 001 • Solidigm™ Firmware Updater Initial Version June 2022
• Added Windows Storage drivers support information.
• Added details about usage of Slot and Action options for
• 002 Committing firmware (section 1.6.3) and Binary-based August 2023
firmware update (section 1.6.4)
• Document formatting
Solidigm may make changes to specifications and product descriptions at any time, without notice. Designers
must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined".
Solidigm reserves these for future definition and shall have no responsibility whatsoever for conflicts or
incompatibilities arising from future changes to them. The information here is subject to change without notice.
Do not finalize a design with this information.
Solidigm disclaims all express and implied warranties, including without limitation, the implied warranties of
merchantability, fitness for a particular purpose, and non-infringement, as well as any warranty arising from course
of performance, course of dealing, or usage in trade.
The products described in this document may contain design defects or errors known as errata which may cause
the product to deviate from published specifications. Current characterized errata are available on request.
Contact your Solidigm representative or your distributor to obtain the latest specifications and before placing
your product order.
For copies of this document, documents that are referenced within, or other Solidigm literature, please contact
your Solidigm representative.
All products, computer systems, dates, and figures specified are preliminary based on current expectations, and
are subject to change without notice.
© Solidigm. Solidigm and the Solidigm logo are trademarks of Solidigm in the United States and other countries.
Other names and brands may be claimed as the property of others.
August 2023 User Guide
2
Solidigm™ OEM Firmware Updater
Contents
1 Overview .................................................................................................................................................................... 4
1.1 About ............................................................................................................................................................... 4
1.2 Requirements and Support ....................................................................................................................... 4
1.3 SOFU Package ............................................................................................................................................... 4
2 Execution ................................................................................................................................................................... 5
2.1 Windows ......................................................................................................................................................... 5
2.2 Linux................................................................................................................................................................. 5
2.3 Show Device Information........................................................................................................................... 5
2.4 Updating the Firmware ............................................................................................................................... 5
2.4.1 Updating Firmware (Default) ....................................................................................................... 6
2.4.2 Updating Firmware of specific drive ......................................................................................... 6
2.4.3 Committing firmware .................................................................................................................... 6
2.4.4 Updating via binary ......................................................................................................................... 7
2.5 Additional Tool Options .............................................................................................................................. 7
2.5.1 Debugging......................................................................................................................................... 7
2.5.2 Silent Mode ....................................................................................................................................... 7
2.5.3 Force Mode ...................................................................................................................................... 8
2.5.4 Help .................................................................................................................................................... 8
2.5.5 Return Codes ................................................................................................................................... 8
August 2023 User Guide
3
Solidigm™ OEM Firmware Updater
1 Overview
This document describes how to use the Solidigm™ OEM Firmware Updater (SOFU)) to
update the firmware on Solidigm™ SSDs including Intel® NAND SSDs.
1.1 About
SOFU is a CLI tool that provides firmware update functionality for Intel NAND and Solidigm
SSDs in Windows, Linux and ESXi.
SOFU is delivered via package. Package contains SOFU tool and firmware modules.
Firmware binaries are embedded in the firmware modules along with update logic.
If the SOFU package has an update specified for the drive it will update the firmware.
Otherwise, it will say “The selected SSD contains current firmware as of this tool release.”
1.2 Requirements and Support
SOFU supports Windows, Linux and ESXi.
SOFU supports different Windows storage drivers: Microsoft Inbox NVMe driver, Solidigm
Synergy driver, Intel RST driver, SMI NVMe driver.
SOFU must be run with Admin/Super user privileges. Admin Command Prompt for Windows
and SUDO for Linux.
SOFU executable has version appended to the name so command syntax provided in this
document should be adjusted accordingly
Firmware updates for drives behind LSI RAID cards is available for Windows/Linux
depending on the package and card.
Reboot is recommended after every firmware update as a general practice.
1.3 SOFU Package
SOFU is an executable that provides firmware update functionality. It is accompanied by
Firmware module (DLL or SO file(s) in FirmwareModules folder) that contains update logic
and embedded firmware binaries. Packages are custom generated to update specific set of
drives with specific firmware. Binaries are only pushed to the drive if requirements for
update are met. Such as Product type, Model number, Current firmware. This prohibits user
from pushing wrong firmware to the drive.
August 2023 User Guide
4
Solidigm™ OEM Firmware Updater
2 Execution
2.1 Windows
FirmwareModules folder contains the actual firmware update. So, it required to do any
update. It is not needed to display drive list.
Run Command prompt in Administrator mode. Go to directory with sofu and execute
sofu_x.[Link].
2.2 Linux
To execute on LINUX, user may have to change permissions to execute sofu. Example: sudo
chmod 777 sofu
To run sofu use sudo and execute command syntax. Example: sudo ./sofu_1.0
2.3 Show Device Information
SOFU allows user to get information about one or more SSD devices without attempting to
update the firmware.
Generally, this command is run to get list of devices attached, get basic information from
the drives, and get device index. “show” command also displays current firmware of the
drive and if there is any update available for drive(s) in the package.
Syntax
List All drives
sofu show
List details about specific drives
sofu show -ssd [(Index|SerialNumber|PhysicalPath)]
2.4 Updating the Firmware
NOTE: Reboot is recommended after every firmware update
August 2023 User Guide
5
Solidigm™ OEM Firmware Updater
2.4.1 Updating Firmware (Default)
SOFU is designed to update firmware without human interaction. By default, SOFU will scan
all the attached drives on the system and check the Firmware Modules if any drive update is
available. If there is an update, then it will automatically push the firmware update. If the
package has no update defined for a drive, it will not be updated.
Syntax
sofu
2.4.2 Updating Firmware of specific drive
If user wants to target specific drive for the update, user can target that drive via Index,
Serial Number or Device path. Index can be retrieved with command listed in “Show Device
Information”. With this method update will only be applied to the drive specified, even
though package may have an update for other drives on the system.
Syntax
sofu load -ssd [Index|SerialNumber|DevicePath]
2.4.3 Committing firmware
By default, firmware update process includes committing firmware which was previously
downloaded. However, if the drive supports multiple slots and different commit actions
then user can choose to do only Firmware Commit by specifying Slot and Action options.
NOTE: FW Download will not be executed by SOFU prior to FW Commit (even if there is new
FW available in FirmwareModule). If FW Download should be executed use -source option
(see section Updating via binary)
NOTE: These options must be used with Caution and only be used when necessary.
NOTE: Commit Actions 0 and 1 require FW image to be downloaded first. Using CA=0 or 1
without prior FW Download will result in an error. Commit Actions 2 and 3 can activate
existing image (see NVMe specification for details).
NOTE: Result of this command may differ depending on the storage driver. Most Windows
Storage drivers does not support manual selection of Commit Action as they use MSFT’s
API for FW update and don’t use passthrough mechanism ([Link]
us/windows/win32/fileio/working-with-nvme-devices#dont-update-firmware-through-
the-pass-through-mechanism). In general, it is driver’s responsibility to select appropriate
Commit Action depending on features supported by NVMe device.
August 2023 User Guide
6
Solidigm™ OEM Firmware Updater
Syntax
sofu load -ssd [Index|SerialNumber|DevicePath] [Slot = ('1|2|3|4|5|6|7')] [Action = (0|1|2|3)]
2.4.4 Updating via binary
SOFU allows firmware update through firmware binary directly instead of Firmware
Modules. In this scenario, user must have binary compatible with their drive(s).
NOTE: This option must be used with Caution and only be used when necessary, as this
bypass logic check that firmware modules provide.
NOTE: Slot and Commit Action are optional. Binary-based update will always execute FW
Download command before calling FW Commit. Support for selecting FW Commit Action
depends on storage driver (see NOTES from section Committing firmware).
Syntax
sofu load -source (BinaryfileName) -ssd [Index|SerialNumber|DevicePath] [Slot =
('1|2|3|4|5|6|7')] [Action = (0|1|2|3)]
2.5 Additional Tool Options
2.5.1 Debugging
Generating log is the best way to diagnose any issue with communicating with drives and
updating the firmware. Log contains in-depth details of communicating with drives and
commands being sent to drives/drivers.
SOFU can generate log with details for each command if log argument and file name is
specified with command.
Syntax
sofu load -ssd [Index|SerialNumber|DevicePath] -log [Link]
2.5.2 Silent Mode
SOFU can run without displaying any information on the screen or prompting for input if
silent argument is specified. Silent option does not work with load option as load option by
default prompts for confirmation for each update.
Syntax
sofu -s
August 2023 User Guide
7
Solidigm™ OEM Firmware Updater
sofu -s -log [Link]
sofu /s
2.5.3 Force Mode
If SOFU is executed with “load” argument, SOFU will prompt user to confirm (Y/N) for each
update. If the user wants to bypass the confirmation, “force” option can be provided.
Syntax
sofu load -f -ssd [Index|SerialNumber|DevicePath]
sofu load -force -ssd [Index|SerialNumber|DevicePath]
sofu load -f ssd [Index|SerialNumber|DevicePath] -log [Link]
2.5.4 Help
SOFU provides help/syntax with help argument.
Syntax
sofu help
2.5.5 Return Codes
In General, if everything is successfully updated, return code is set to 0.
As there can be multiple drives being updated and each drive may return different code,
return codes may not be fully reliable.
August 2023 User Guide
8