Firmware Inventory and Update Service

Firmware Inventory

FirmwareInventory represents firmware version information for each component on the server.

URI: /redfish/v1/UpdateService/FirmwareInventory

Method: GET

Response: 200

{

"@odata.type": "#SoftwareInventoryCollection.SoftwareInventoryCollection",

"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory",

"Id": "UpdateService",

"Name": "Firmware Inventory Collection",

"Members@odata.count": 19,

"Members": [

{

"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/BMC"

},

{

"@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/BIOS"

},

{

"@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/Capsule_BIOS"

},

{

"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Capsule_ME"

},

{

"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Capsule_MCU"

},

{

"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Golden_CPLD_Motherboard"

},

{

"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/CPLD_Motherboard"

},

{

"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/CPLD_Backplane_1"

},

{

"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/BIOS_ME"

},

{

"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/NIC1"

},

{

"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/NVMeController1"

},

{

"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/PowerSupply1"

},

{

"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/PowerSupply2"

}

],

"Oem": {}

}

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" to update golden firmware image for BMC.

BIOS: Use "/redfish/v1/Systems/1" 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

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

StartUpdat 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>

Notes:

  • On X12 (Whitley and Tatlow series), X13, 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).

  • With 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 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/CPLD_Motherb

oard"], "@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/CPLD_Backplan

e_[id]"],"@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.

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".

For BMC Update use, "/redfish/v1/Managers/1".

Updating Broadcom Storage Controller Firmware

You can check if the controller firmware update is supported or not under /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 Marvel Storage Controller Firmware

You can check if the controller firmware update is supported or not under /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 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:

  1. Change the type to “form-data”.

  2. Select cert_file and key_file as keys, browse and select the respective files to upload