Firmware Inventory and Update Service
Firmware Inventory
FirmwareInventory represents firmware version information for each component on the server.
GET FirmwareInventory Collection
URI: /redfish/v1/UpdateService/FirmwareInventory
Method: GET
Response: 200
{
"@odata.type": "#SoftwareInventoryCollection.SoftwareInventoryCollection",
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory",
"Name": "Firmware Inventory Collection",
"Members@odata.count": 15,
"Members": [
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/BMC"
},
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/BIOS"
},
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Backup_BMC"
},
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Golden_BMC"
},
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Staging_BMC"
},
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Backup_BIOS"
},
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Golden_BIOS"
},
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Staging_BIOS"
},
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Motherboard_CPLD_[num]"
},
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Golden_Motherboard_CPLD_[num]"
},
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/PowerSupply1"
},
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Capsule_MCU"
},
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Capsule_BIOS"
},
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Capsule_ME"
},
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/BIOS_ME"
}
],
"Oem": {},
"@odata.etag": "\"5c52f4d48b358c4e7f40f29e9d8cc34d\""
}
GET Broadcom Unit Information
In RelatedItem, added the following as of Redfish v1.21.1:
-
/redfish/v1/Systems/1/Storage/HA-RAID/Controllers/num
-
/redfish/v1/Systems/1/Storage/HBA/Controllers/num
URI: /redfish/v1/UpdateService/FirmwareInventory/Broadcom[broadcom_num]
Method: GET
{
"@odata.type": "#SoftwareInventory.v1_3_0.SoftwareInventory",
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Broadcom1",
"Id": "1",
"Name": "SAS3108 Device 0",
"Updateable": true,
"Version": "4.680.00-8519",
"Status": {
"State": "Enabled",
"Health": "OK"
},
"RelatedItem": [
{
"@odata.id": "/redfish/v1/Systems/1/Storage/HA-RAID#/StorageControllers/0"
},
{
"@odata.id": "/redfish/v1/Systems/1/Storage/HA-RAID/Controllers/num"
//It may be /redfish/v1/Systems/1/Storage/HBA/Controllers/num
},
],
"Actions": {
"Oem": {}
},
"Oem": {},
"Manufacturer": "Supermicro",
"WriteProtected": false
}
Response: 200
Update Service
Firmware Resiliency Actions
Set the current active image as the golden template. If the current image is used as the golden image by the golden template under Supermicro’s recommendation or the administrator’s preference, then use this option to update the golden firmware image with the active firmware image.
Allowable values for Targets:
BMC: Use "/redfish/v1/Managers/1" or "/redfish/v1/UpdateService/FirmwareInventory/BMC" to update golden firmware image for BMC.
BIOS: Use "/redfish/v1/Systems/1" or "/redfish/v1/UpdateService/FirmwareInventory/BIOS" to update golden firmware image for BIOS.
URI: /redfish/v1/UpdateService/Actions/Oem/SmcUpdateService.Install
Method: POST
Payload:
{
"Targets":[ "/redfish/v1/Managers/1"],
"InstallOptions":["UpdateGolden"]
}
Response: 200
Modify Preserve SMBIOS Setting with BIOS Recovery
-
This feature is supported since BMC firmware versions Gen 13 1.12 and Gen 14 1.10.
-
This command requires an SFT-DCMS-Single license.
URI: /redfish/v1/UpdateService/Actions/Oem/SmcUpdateService.Install
Method: POST
Targets:
"/redfish/v1/Systems/1"
"/redfish/v1/Systems/1/Bios"
"/redfish/v1/UpdateService/FirmwareInventory/BIOS"
"/redfish/v1/UpdateService/FirmwareInventory/BMC"
Value: false, true
Payload:
{
"Targets": ["/redfish/v1/Systems/1"],
"InstallOptions": ["Recover"],
"PreserveSMBIOS": (Value)
}
Response: 200
-
The default value is false.
-
The backup image is always used for recovery when it exists; otherwise, the golden image is used.
-
If the user POSTs with PreserveSMBIOS equaling true or false, and InstallOptions equaling UpdateGolden, the response code should be 400 (Bad Request).
Staged Firmware Update
Note: This feature is supported only for Gen 13 and Gen 14.
Upload New Firmware Image (Restored in Staging Area)
Note: This command requires an SFT-DCMS-Single license.
Use this command to store an image in the Staging Region (non-volatile). The image will still be staged after resets. The default for this property is false.
URI: /redfish/v1/UpdateService/upload
Method: POST
Response: 202
Payload:
{
...
"Stage": true,
...
}
Activate Staged Firmware (Single Staged Firmware Update)
Note: This command requires an SFT-DCMS-Single license.
{Base URI of target resource} will disappear once overwriting is complete.
{Base URI of target resource} may be one of the following:
-
/redfish/v1/UpdateService/FirmwareInventory/Staging_BIOS
-
/redfish/v1/UpdateService/FirmwareInventory/Staging_BMC
-
/redfish/v1/UpdateService/FirmwareInventory/Staging_Motherboard_CPLD_num
The firmware update sequence may implement system shutdown/reboot based on hardware dependencies or different RoT designs.
After finishing the operation, the system should return the previous power state.
URI: {Base URI of target resource}/Actions/SoftwareInventory.Activate
Method: POST
Response: 202
Payload:
{
}
Activate Staged Firmware (Multiple Staged Firmware Update)
Note: This command requires an SFT-DCMS-Single license.
The firmware update sequence is in the order of BIOS > CPLD > BMC when multiple staged firmware updates are activated.
The firmware update sequence may implement system shutdown/reboot based on hardware dependencies or different RoT designs.
After finishing the operation, the system should return the previous power state.
URI: /redfish/v1/UpdateService/Actions/UpdateService.Activate
Method: POST
Response: 202
Payload: This example shows how to select multiple components.
{
"Targets": [
{ @odata.id: /redfish/v1/UpdateService/FirmwareInventory/Staging_BIOS},
{ @odata.id: /redfish/v1/UpdateService/FirmwareInventory/Staging_BMC},
{ @odata.id: /redfish/v1/UpdateService/FirmwareInventory/Staging_Motherboard_CPLD_num}
]
}s
Check UpdateServiceCapabilities
URI: /redfish/v1/UpdateService/UpdateServiceCapabilities
Method: GET
Response: 200
This example shows how to select multiple components.
{
"@odata.type": "#UpdateServiceCapabilities.v1_0_0.UpdateServiceCapabilities",
"Id": "UpdateServiceCapabilities",
"Name": "Update Service Capabilities",
"AllowableTargets": [
"/redfish/v1/UpdateService/FirmwareInventory/Motherboard_CPLD_[num]"
]
"@odata.id": "/redfish/v1/UpdateService/UpdateServiceCapabilities"
"AllowableStaging":[
"/redfish/v1/UpdateService/FirmwareInventory/BIOS",
"/redfish/v1/UpdateService/FirmwareInventory/BMC",
"/redfish/v1/UpdateService/FirmwareInventory/Motherboard_CPLD_[num]"
]
}
SoftwareInventory
URI: /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId}
Method: GET
Response: 200
This example shows the activation status of the firmware.
{
...
"Active": XXX,
"Staged": XXX
...
}
Updating BIOS Firmware
To perform BIOS firmware update, use the image file available on the local system:
Allowable values for @Redfish.OperationApplyTime:
-
Immediate: Start BIOS firmware update immediately after POST action to /redfish/v1/UpdateService/upload.
-
OnStartUpdateRequest: upload firmware with POST action upload API and then BIOS firmware update will only start after POST action to /redfish/v1/UpdateService/Actions/UpdateService.StartUpdate.
StartUpdate API doesn’t require any parameter in the payload.
URI: /redfish/v1/UpdateService/upload
Method: POST
Response: 202
UpdateParameters:
{"Targets": ["/redfish/v1/Systems/1/Bios"],
"@Redfish.OperationApplyTime": "Immediate",
"Oem": {"Supermicro": { "BIOS": { "PreserveME": true, "PreserveNVRAM": true, "PreserveSMBIOS": true, "BackupBIOS": false }}}}
UpdateFile: <File>
-
Initiating a BIOS upgrade will first perform a system power off.
-
On Gen 12 (Whitley and Tatlow series), Gen 13, and later platforms, only these commands are available for use when using this method: PreserveOA, PreserveSETUPCONF, PreserveSETUPPWD, PreserveSECBOOTKEY, PreserveBOOTCONF, and UpdateRollbackID (note that this only works for RoT).
-
ith RoT, only these commands are available for use when using this method: PreserveME, PreserveNVRAM, PreserveSMBIOS, and BackupBIOS.
Check BIOS update status in TaskService API.
URI: /redfish/v1/TaskService
Method: GET
Response: 200
When the update completes, check the BIOS version in UpdateService/FirmwareInventory.
Updating BMC Firmware
Use the image file available on the local system to update BMC firmware:
Allowable values for @Redfish.OperationApplyTime:
-
Immediate: Start BMC firmware update immediately after POST action to /redfish/v1/UpdateService/upload.
-
OnStartUpdateRequest: upload firmware with POST action upload API and then BMC firmware update will only start after POST action to /redfish/v1/UpdateService/Actions/UpdateService.StartUpdate.
StartUpdate API doesn’t require any parameter in the URI: /redfish/v1/UpdateService/upload
Method: POST
Response: 202
UpdateParameters:
{"Targets": ["/redfish/v1/Managers/1"],
"@Redfish.OperationApplyTime": "Immediate",
"Oem": {"Supermicro": { "BMC": {"PreserveCfg":true, "PreserveSdr":true, "PreserveSsl":true, "BackupBMC": true}}}
}
UpdateFile: <File>
Check BMC update status in TaskService API
URI: /redfish/v1/TaskService
Method: GET
Response: 200
When the update completes, check the BMC version in UpdateService/FirmwareInventory
Updating CPLD Firmware
There are two types of CPLD firmware to be updated:
Use the image file available on the local system to update CPLD motherboard firmware:
URI: /redfish/v1/UpdateService/upload
Method: POST
Response: 202
UpdateParameters:
{
"Targets":[ "/redfish/v1/UpdateService/FirmwareInventory/Motherboard_CPLD_[num]"]
, "@Redfish.OperationApplyTime":"Immediate"
}
UpdateFile: <File>
Note: After Motherboard CPLD update, it will trigger a BMC reset.
Use the image file available on the local system to update CPLD backplane firmware:
URI: /redfish/v1/UpdateService/FirmwareInventory
Method: POST
Response: 202
UpdateParameters:
{
"Targets":[ "/redfish/v1/UpdateService/FirmwareInventory/Backplane_[num]_CPLD_[num]"]
,"@Redfish.OperationApplyTime":"Immediate"
}
UpdateFile: <File>
Simple Update
Simple Update only supports BMC and BIOS. You can update the installed software component(s) as contained within a software image file located at a URI referenced by the ImageURI parameter, and preserve BMC config, SSL, SDR, and SMBIOS, BIOS BootConfg by default.
You are required to prepare the FTP, HTTP, or HTTPS file server to put BMC or BIOS firmware image file.
It is advised to power off on the host side before conducting a BIOS FW update.
URI: /redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate
Method: POST
Response: 202
Payload:
{
"ImageURI": "<file ip>/<path and image file name>",
"TransferProtocol": "FTP",
"Targets": ["/redfish/v1/Managers/1"]
}
Target value:
For BIOS Update, use "/redfish/v1/Systems/1" or "/redfish/v1/UpdateService/FirmwareInventory/BIOS".
For BMC Update, use "/redfish/v1/Managers/1" or "/redfish/v1/UpdateService/FirmwareInventory/BMC".
Updating Broadcom Storage Controller Firmware
You can check if the controller firmware update is supported or not under the location /redfish/v1/UpdateService/FirmwareInventory/Broadcom[num].
To update Broadcom firmware using the image file available on the local system:
URI: /redfish/v1/UpdateService/upload
Method: POST
Response: 202
UpdateParameters:
{"Targets":[ "/redfish/v1/Systems/1/Storage/HARAID#/StorageControllers/[num]"],"
@Redfish.OperationApplyTime":"OnStartUpdateRequest"}
UpdateFile: <File>
Note: Currently, this is supported to update HA-RAID 3108, 38xxIR, 39xx ,and BCOM 3916. After the update, it needs a system reboot for the new firmware to take effect.
Updating Marvell Storage Controller Firmware
You can check if the controller firmware update is supported or not under the location /redfish/v1/UpdateService/FirmwareInventory/Marvell[num].
To update Marvell firmware using the image file on the local system:
URI: /redfish/v1/UpdateService/upload
Method: POST
Response: 202
UpdateParameters:
{"Targets":[ "/redfish/v1/Systems/1/Storage/MRVL.HARAID#/StorageControllers/[num]"],
"@Redfish.OperationApplyTime":"OnStartUpdateRequest"}
UpdateFile: <File>
Updating AOC NIC Firmware
“NIC [num]” exists under the Redfish/v1 directory when your AOC NIC controller is supported. To ensure that you can update the AOC NIC controller firmware, check if “NIC [num]” exists in the URI /redfish/v1/UpdateService/FirmwareInventory/NIC[num].
To update AOC NIC firmware, use the image file on the local system:
URI: /redfish/v1/UpdateService/upload
Method: POST
Response: 202
UpdateParameters:
{"Targets":[ "//redfish/v1/UpdateService/FirmwareInventory/NIC[num]"],
"@Redfish.OperationApplyTime":"OnStartUpdateRequest"}
UpdateFile: <File>
Updating UBB CPLD Firmware
URI: /redfish/v1/UpdateService/upload
Method: POST
Response: 202
UpdateParameters:
{"Targets":[ “/redfish/v1/UpdateService/FirmwareInventory/UBB_1_CPLD_1"], "@Redfish.OperationApplyTime":"Immediate"}
UpdateFile: <File>
Updating UBB Retimer Firmware
URI: /redfish/v1/UpdateService/upload
Method: POST
Response: 202
UpdateParameters:
{"Targets":[ "/redfish/v1/UpdateService/FirmwareInventory/UBB_1_Retimer_1"],"@Redfish.OperationApplyTime":"Immediate""}
UpdateFile: <File>
Updating SSL Certificate and Key
Update the SSL certificate and key for a secure web server connection.
URI: /redfish/v1/UpdateService/Oem/Supermicro/SSLCert/Actions/SmcSSLCert.Upload
Payload:
-
Change the type to “form-data”.
-
Select cert_file and key_file as keys, browse and select the respective files to upload.
{
"cert_file": "server_certificate_4096.pem", "key_file": "server_private_4096.pem"
}