To upgrade DPU BMC firmware on a BlueField-2 DPU, follow this procedure:
Download openbmctool, and resolve dependencies.
- sudo pip3 install paramiko
- sudo pip3 install scp
Trigger BMC update.
python3 openbmctool.py -H <DPU-BMC-IP> -U root -P <password> firmware flash bmc -f <path-to-signed-bmc-image>
After initiating the BMC firmware secure update, a new task is created. Example:
Attempting login... Uploading file to BMC Upload complete. Firmware activation is in progress. Please wait for activation task id="0" to get completed before rebooting the bmc. User root has been logged out
NoteBMC firmware update takes 15-20 mins .
Track the progress of the update by using the task Id received in the response above (i.e., 0) in your query and monitoring the value of the task’s TaskProgress field.
python3 openbmctool.py -H <DPU-BMC-IP> -U root -P <password> task status -i <task_Id>
Before proceeding to other operations. Keep running this command until it outputs:
TaskState="Completed" TaskStatus="OK" TaskProgress="100"
(Optional) Reset/reboot the BMC.
python3 openbmctool.py -H <DPU-BMC-IP> -U root -P <password> firmware running_version
NoteThis step may be skipped if you intend to perform eROT update.
NoteWait a few seconds before attempting to log back into the BMC as it loses connection during and shortly after reboot.
Trigger eROT update.
python3 openbmctool.py -H <ip_address> -U root -P <DPU-BMC-IP> apfirmware flash cec -f <path-to-signed-CEC-OTA-image-file>
After initiating the eROT update, the following indication is provided:
Uploading firmware image: 100.00% Firmware update for cec triggered successfully.
- Reset/reboot the BMC.
python3 openbmctool.py -H <DPU-BMC-IP> -U root -P <password> firmware running_version