BMC Management (original) (raw)

Firmware upgrade of BMC and CEC components using BMC can be performed from a remote server using openbmctool.

The following table presents the commands available to perform the upgrade:

No. Function Command Description
1 Trigger a BMC secure update Copy Copied! python3 openbmctool.py -H <ip_address> \ -U \ -P firmware flash bmc \ -f Where: -H – BMC IP -U – username -P – password -f – path to signed BMC image tar file Triggers BMC secure update
2 Track a BMC firmware update Copy Copied! python3 openbmctool.py -H <ip_address> \ -U \ -P task status \ -i Where: -H – BMC IP -U – username -P – password -i – task ID of the triggered firmware update, will be displayed after triggering the firmware update Tracks the BMC firmware update
3 Fetch running BMC firmware version Copy Copied! python3 openbmctool.py -H <ip_address> \ -U \ -P firmware running_version Where: -H – BMC IP -U – username -P – password Fetches the running firmware version from BMC
4 Reset/reboot a BMC Copy Copied! python3 openbmctool.py -H <ip_address> \ -U \ -P bmc reset warm Where: -H – BMC IP -U – username -P – password Reboots/resets the BMC
5 Trigger a CEC secure update Copy Copied! python3 openbmctool.py -H <ip_address> \ -U \ -P apfirmware flash cec \ -f Where: -H – BMC IP -U – username -P – password -f – path to signed CEC OTA image file Triggers CEC secure update
6 Track a CEC firmware update Copy Copied! python3 openbmctool.py -H <ip_address> \ -U \ -P apfirmware status cec Where: -H – BMC IP -U – username -P – password Tracks the CEC firmware update
7 Trigger CEC attestation/challenge-response Copy Copied! python3 -H <bmc_ip> -U \ -P apfirmware getattestation cec \ --pubkeyfile \ --randomnumbers <32-byte random number in hex format> Where: -H – BMC IP -U – username -P – password --pubkeyfile – (optional) NVIDIA public key certificate provided for CEC validation --randomnumbers – (optional) 32-byte random number in hex format (see format in the example below) to use in challenge response. The same set of numbers as provided in same order can be validated in the attestation file returned from CEC. For example: Copy Copied! python3 openbmctool.py -H <bmc_ip> \ -U \ -P apfirmware getattestation cec \ --pubkeyfile pubkey.pem \ --randomnumbers 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20 In the above example the hex string represents the 32-byte decimal number "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32". Triggers CEC attestation or challenge-response

BMC Update

The command in line #2 in the table above can be used to track the BMC firmware update. The following example shows the completion the first stage of BMC secure update.

        `

python3 openbmctool.py -H -U -P task status -i Attempting login... Task Details: TaskState="Completed" TaskStatus="OK" TaskProgress="100" User root has been logged out

`

BMC reboot is required to complete the BMC secure update operation. BMC reboot can be triggered after the completion of the first stage of BMC secure update operation.

CEC Update

The command in line #6 in the table above can be used to track the CEC firmware update. The following example shows the completion of the first stage of CEC secure update:

        `

python3 openbmctool.py -H -U -P apfirmware status cec Firmware update status for the component cec as below. TaskState=Frimware update succeeded. TaskStatus=OK TaskProgress=100

`

Power-cycle/cold reset is required to complete the CEC secure update operation. Power-cycle/cold reset can be triggered after the completion of the first stage of CEC secure update operation.