Power Shelf Firmware Update Process#

Power Shelf Part Number Mapping#

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

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

  2. 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}
    
  3. 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"
    
  4. Update FW for the Backup partition

    nvfwupd -t ip=${PMC_IP} user=${USER} password=${PASS} servertype=Powershelf update_fw -p ${PMC_FW_BACKUP_FILE}
    
  5. 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"
    
  6. Update FW for the Primary partition

    nvfwupd -t ip=${PMC_IP} user=${USER} password=${PASS} servertype=Powershelf update_fw -p ${PMC_FW_PRIMARY_FILE}
    
  7. 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

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

  2. Get PMC FW version for the Primary and Backup partitions.

    nvfwupd -t ip=<PMC_IP> user=$USER password=$PASS servertype=Powershelf show_version
    
  3. 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}
    
  4. 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}
    
  5. 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

  1. Confirm the current PSU firmware version:

    nvfwupd -t ip=<PMC_IP> user=$USER password=$PASS servertype=Powershelf show_version
    
  2. 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
    
  3. Flash the PSU firmware using the same command from PMC step 5 with <FIRMWARE_FILE> replaced with PSU firmware binary

  4. Run step 1 again to ensure the PSU firmware updated successfully

PMC FW Update for LiteOn

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

  2. Get the current PMC FW version:

    nvfwupd -t ip=<PMC_IP> user=$USER password=$PASS servertype=Powershelf show_version
    
  3. Flash the new PMC FW:

    nvfwupd -t ip=${PMC_IP} user=${USER} password=${PASS} servertype=Powershelf update_fw -p ${PMC_FW_FILE}
    
  4. 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

  1. Confirm the current PSU firmware version:

    nvfwupd -t ip=<PMC_IP> user=$USER password=$PASS servertype=Powershelf show_version
    
  2. 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
    
  3. 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
    
  4. Track the PSU update completion.

    nvfwupd -t ip=<PMC_IP> user=${USER} password=${PASS} show_update_progress -i powerdevice0
    
  5. 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

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

  2. 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'
    
  3. 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"
    
  4. 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
    
  5. 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"
    
  6. 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
    
  7. 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

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

  2. 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'
    
  3. 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
    
  4. 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
    
  5. 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

  1. Confirm the current PSU firmware version:

    curl -k -u $USER:$PASS -X GET https://<PMC_IP>/redfish/v1/Managers/PMC_0 | grep Version
    
  2. 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
    
  3. Flash the PSU firmware using the same command from PMC step 5 with <FIRMWARE_FILE> replaced with PSU firmware binary

  4. Run step 1 again to ensure the PSU firmware updated successfully

PMC FW Update for LiteOn

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

  2. Get the current PMC FW version

    curl -sk -u $USER:$PASS -X GET https://${PMC_IP}/redfish/v1/Managers/PMC_0 | grep Firm
    
  3. 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

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

  1. Confirm the current PSU firmware version:

    curl -k -u $USER:$PASS -X GET https://<PMC_IP>/redfish/v1/Managers/PMC_0 | grep Version
    
  2. 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
    
  3. 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
    
  4. Track the PSU update completion.

    curl -k -u "root:0penBmc" https://<PMC_IP>/redfish/v1/Chassis/powershelf/Power/Oem/LiteOn/PowerUnits/powerdevice1
    
  5. 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.