Power Shelf Firmware Update Process#
No |
Series |
Part Number (PN) |
|---|---|---|
1 |
Delta PR1 PSU |
ECD17020036 |
2 |
Delta PR1 PMC |
ECD70000011 |
3 |
Delta PR3 PSU |
ECD17020044 |
4 |
Delta PR3 PMC |
ECD70000018 |
5 |
LiteOn PSU |
SP-2552-7RD |
6 |
LiteOn PMC |
CM-14MP-2RD |
Note
The ApplyTime Property determines when the FW Updates takes effect
OnReset (Default) - Update to new firmware version on the next reboot.
Immediate - Flashes the PMC immediately.
You can use the following GET/SET commands for queerying and changing this parameter.
Please note the NVFWUPD 2.0.9 script switches to Immediate Apply Time setting as part of its FW Update Process
GET ApplyTime property:
curl -k -u $USER:$PASS -X GET https://<PMC_IP>/redfish/v1/UpdateService
SET ApplyTime property to Immediate:
curl -k -u $USER:$PASS -X PATCH 'https://<PMC_IP>/redfish/v1/UpdateService' -d'{"HttpPushUriOptions": {"HttpPushUriApplyTime": {"ApplyTime": "OnReset"}}}' -H'Content-Type: application/json'
Method 1 - Firmware Update for Power Shelf using NVFWUPD tool#
Refer to NVIDIA NVFUPD Guide for more information about the Power Shelf Firmware Update Process.
PMC FW Update for Delta PR1
Get the Power Shelf part number:
curl -k -u $USER:$PASS -X GET https://<PMC_IP>/redfish/v1/Managers/PMC_0
Use the Part Number in the table above to make sure you have a Delta PR1 PowerShelf.
Get PMC FW version for the Primary and Backup partitions and compare them with the version in the target FW file
nvfwupd -t ip=<PMC_IP> user=$USER password=$PASS servertype=Powershelf show_version -p ${PMC_FW_FILE}
Set the FlashSelector to Backup
curl -sk -u $USER:$PASS -X PATCH https://${PMC_IP}/redfish/v1/Managers/PMC_0 --data '{"Oem" : {"deltaenergysystems": {"FlashSelector": "Backup"}}}' -H "content-type: application/json"
Update FW for the Backup partition
nvfwupd -t ip=${PMC_IP} user=${USER} password=${PASS} servertype=Powershelf update_fw -p ${PMC_FW_BACKUP_FILE}
Set the FlashSelector to Primary
curl -sk -u $USER:$PASS -X PATCH https://${PMC_IP}/redfish/v1/Managers/PMC_0 --data '{"Oem" : {"deltaenergysystems": {"FlashSelector": "Primary"}}}' -H "content-type: application/json"
Update FW for the Primary partition
nvfwupd -t ip=${PMC_IP} user=${USER} password=${PASS} servertype=Powershelf update_fw -p ${PMC_FW_PRIMARY_FILE}
Confirm FW version for both primary and backup partitions
nvfwupd -t ip=<PMC_IP> user=$USER password=$PASS servertype=Powershelf show_version
PMC FW Update for Delta PR3
Get the Power Shelf part number:
curl -k -u $USER:$PASS -X GET https://<PMC_IP>/redfish/v1/Managers/PMC_0
Use the Part Number in the table above to make sure you have a Delta PR3 PowerShelf.
Get PMC FW version for the Primary and Backup partitions.
nvfwupd -t ip=<PMC_IP> user=$USER password=$PASS servertype=Powershelf show_version
Update FW for the Backup partition - Use the Backup PMC FWpkg file. Ex: “nvidia-pmc-3.*.*-RELEASE.FOR.BACKUP.UPDATE.CEC-CFG.fwpkg”
nvfwupd -t ip=${PMC_IP} user=${USER} password=${PASS} servertype=Powershelf update_fw -p ${PMC_FW_BACKUP_FILE}
Update FW for the Primary partition - Use the Primary PMC FWPkg file. Ex: “nvidia-pmc-3.*.*-RELEASE.FOR.UPDATE.CEC-CFG.fwpkg”
nvfwupd -t ip=${PMC_IP} user=${USER} password=${PASS} servertype=Powershelf update_fw -p ${PMC_FW_PRIMARY_FILE}
Confirm FW version for both primary and backup partitions
nvfwupd -t ip=<PMC_IP> user=$USER password=$PASS servertype=Powershelf show_version
PSU FW Update for Delta PR1 & PR3
Confirm the current PSU firmware version:
nvfwupd -t ip=<PMC_IP> user=$USER password=$PASS servertype=Powershelf show_version
Check the PSU part number to ensure it matches the table above:
curl -k -u $USER:$PASS -X GET https://<PMC_IP>/redfish/v1/Managers/PMC_0 | grep PartNumber
Flash the PSU firmware using the same command from PMC step 5 with
<FIRMWARE_FILE>replaced with PSU firmware binaryRun step 1 again to ensure the PSU firmware updated successfully
PMC FW Update for LiteOn
Get the Power Shelf part number:
curl -k -u $USER:$PASS -X GET https://<PMC_IP>/redfish/v1/Managers/PMC_0
Use the Part Number in the table above to make sure you have a Delta PR3 PowerShelf.
Get the current PMC FW version:
nvfwupd -t ip=<PMC_IP> user=$USER password=$PASS servertype=Powershelf show_version
Flash the new PMC FW:
nvfwupd -t ip=${PMC_IP} user=${USER} password=${PASS} servertype=Powershelf update_fw -p ${PMC_FW_FILE}
Run step 2 again to ensure the PMC firmware updated successfully
Warning
A PSU firmware update will temporarily power off the PSU, so we recommend that the rack is idle during the PSU update process.
PSU FW Update for LiteOn
Confirm the current PSU firmware version:
nvfwupd -t ip=<PMC_IP> user=$USER password=$PASS servertype=Powershelf show_version
Check the PSU part number to ensure it matches the table above:
curl -k -u $USER:$PASS -X GET https://<PMC_IP>/redfish/v1/Managers/PMC_0 | grep PartNumber
Flash the PSU firmware using the command below:
cat liteon_psu_device0.json { "LiteOnPowerDeviceId": "0" } nvfwupd -t ip=${PMC_IP} user=${USER} password=${PASS} servertype=Powershelf update_fw -p ${PSU_FW_FILE} -s liteon_psu_device0.json
Track the PSU update completion.
nvfwupd -t ip=<PMC_IP> user=${USER} password=${PASS} show_update_progress -i powerdevice0
Run step 1 again to ensure the PSU firmware updated successfully
Note
Please wait for a PSU FW update to complete before starting the next one.
Method 2 - Firmware Update for Power Shelf using native curl commands#
PMC FW Update for Delta PR1
Get the Power Shelf part number:
curl -k -u $USER:$PASS -X GET https://<PMC_IP>/redfish/v1/Managers/PMC_0
Use the Part Number in the table above to make sure you have a Delta PR1 PowerShelf.
Get PMC FW version for the Primary and Backup partitions.
curl -sk -u $USER:$PASS -X GET https://${PMC_IP}/redfish/v1/Managers/PMC_0 | grep Firm | egrep 'Prima|Back'
Set the FlashSelector to Backup
curl -sk -u $USER:$PASS -X PATCH https://${PMC_IP}/redfish/v1/Managers/PMC_0 --data '{"Oem" : {"deltaenergysystems": {"FlashSelector": "Backup"}}}' -H "content-type: application/json"
Update FW for the Backup partition
curl -k -u $USER:$PASS -X POST -H "Content-Type: application/octet-stream" --data-binary "@${PMC_FW_FILE}" https://${PMC_IP}/redfish/v1/UpdateService/update
Set the FlashSelector to Primary
curl -sk -u $USER:$PASS -X PATCH https://${PMC_IP}/redfish/v1/Managers/PMC_0 --data '{"Oem" : {"deltaenergysystems": {"FlashSelector": "Primary"}}}' -H "content-type: application/json"
Update FW for the Primary partition
curl -k -u $USER:$PASS -X POST -H "Content-Type: application/octet-stream" --data-binary "@${PMC_FW_FILE}" https://${PMC_IP}/redfish/v1/UpdateService/update
Confirm FW version for both primary and backup partitions
curl -sk -u $USER:$PASS -X GET https://${PMC_IP}/redfish/v1/Managers/PMC_0 |grep Firm | egrep 'Prima|Back'
PMC FW Update for Delta PR3
Get the Power Shelf part number:
curl -k -u $USER:$PASS -X GET https://<PMC_IP>/redfish/v1/Managers/PMC_0
Use the Part Number in the table above to make sure you have a Delta PR3 PowerShelf.
Get PMC FW version for the Primary and Backup partitions.
curl -sk -u $USER:$PASS -X GET https://${PMC_IP}/redfish/v1/Managers/PMC_0 | grep Firm | egrep 'Prima|Back'
Update FW for the Backup partition - Use the Backup PMC FWpkg file. Ex: “nvidia-pmc-3.*.*-RELEASE.FOR.BACKUP.UPDATE.CEC-CFG.fwpkg”
curl -k -u $USER:$PASS -X POST -H "Content-Type: application/octet-stream" --data-binary "@${PMC_FW_BACKUP_FILE}" https://${PMC_IP}/redfish/v1/UpdateService/update
Update FW for the Primary partition - Use the Primary PMC FWPkg file. Ex: “nvidia-pmc-3.*.*-RELEASE.FOR.UPDATE.CEC-CFG.fwpkg”
curl -k -u $USER:$PASS -X POST -H "Content-Type: application/octet-stream" --data-binary "@${PMC_FW_PRIMARY_FILE}" https://${PMC_IP}/redfish/v1/UpdateService/update
Confirm FW version for both primary and backup partitions
curl -sk -u $USER:$PASS -X GET https://${PMC_IP}/redfish/v1/Managers/PMC_0 |grep Firm | egrep 'Prima|Back'
PSU FW Update for Delta PR1 & PR3
Confirm the current PSU firmware version:
curl -k -u $USER:$PASS -X GET https://<PMC_IP>/redfish/v1/Managers/PMC_0 | grep Version
Check the PSU part number to ensure it matches the table above:
curl -k -u $USER:$PASS -X GET https://<PMC_IP>/redfish/v1/Managers/PMC_0 | grep PartNumber
Flash the PSU firmware using the same command from PMC step 5 with
<FIRMWARE_FILE>replaced with PSU firmware binaryRun step 1 again to ensure the PSU firmware updated successfully
PMC FW Update for LiteOn
Get the Power Shelf part number:
curl -k -u $USER:$PASS -X GET https://<PMC_IP>/redfish/v1/Managers/PMC_0
Use the Part Number in the table above to make sure you have a Delta PR3 PowerShelf.
Get the current PMC FW version
curl -sk -u $USER:$PASS -X GET https://${PMC_IP}/redfish/v1/Managers/PMC_0 | grep Firm
Flash the new PMC FW .. code-block:: bash
curl -k -H “Content-Type: application/octet-stream” -u root:0penBmc -X POST -T ~/PMC_FW.tar https://<PMC_IP>/redfish/v1/UpdateService
Run step 2 again to ensure the PMC firmware updated successfully
Warning
A PSU firmware update will temporarily power off the PSU, so we recommend that the rack is idle during the PSU update process.
PSU FW Update for LiteOn
Confirm the current PSU firmware version:
curl -k -u $USER:$PASS -X GET https://<PMC_IP>/redfish/v1/Managers/PMC_0 | grep Version
Check the PSU part number to ensure it matches the table above:
curl -k -u $USER:$PASS -X GET https://<PMC_IP>/redfish/v1/Managers/PMC_0 | grep PartNumber
Flash the PSU firmware using the command below:
curl -k -H "Content-Type: application/octet-stream" -u root:0penBmc -H "LiteonPowerDeviceId: 0" --data-binary @SP-2552-6RB_0101_Bootloader_20250617.D2DAppA.tar -X POST https://<PMC_IP>/redfish/v1/Chassis/powershelf/Power/Oem/LiteOn/PowerUnits/Actions/UpdateService
Track the PSU update completion.
curl -k -u "root:0penBmc" https://<PMC_IP>/redfish/v1/Chassis/powershelf/Power/Oem/LiteOn/PowerUnits/powerdevice1
Run step 1 again to ensure the PSU firmware updated successfully
Note
Please wait for a PSU FW update to complete before starting the next one.