Use the following command-line instructions to update your MCU firmware. However, we recommend that you flash MCUby using the BMC web user interface.
The BMC Web User Interface is only available for BMC firmware version 24.04-11-v3.2 or newer.
IGX BMC can flash the MCU firmware and upgrade the MCU. The latest MCU firmware file is already part of the IGX BSP.
To update your MCU firmware, use the following procedure. The update can take 7-10 minutes or longer.
Save the IP address of your BMC as an environment variable by running the following code. Replace
<BMC_IP>
with your IP address, for example 192.168.1.110.export bmc=<BMC_IP>
Log into your BMC and save your access token as an environment variable by running the following code. Change
<BMC_Password>
to your password.export token=`curl -k \ -H "Content-Type: application/json" \ -X POST https://$bmc/login \ -d '{"username": "root", "password": "<BMC_Password>"}' | grep token | awk '{print $2;}' | tr -d '"'`
To start the update run the following code. You save the task id as an environment variable so that you can check the status of the update in the following step.
export task_id=`curl -k \ -H "X-Auth-Token:$token" \ -H "Content-Type: application/octet-stream" \ -X POST https://$bmc/redfish/v1/UpdateService \ -T "<path to MCU PLDM package>"`
To check the status of the update run the following code. After the update is done, the task status is
completed
.curl -k \ -H "X-Auth-Token:$token" \ -X GET https://$bmc/redfish/v1/TaskService/Tasks/$task_id
Use the following procedure to update your MCU firmware manually.
Go to the
mcu-flash
directory by using the following command.root@mgx-3809:~# cd /etc/smcu-flash
Copy the MCU firmware file from the package to BMC by using scp.
Stop the console service.
root@mgx-3809:~# systemctl stop obmc-console\@ttyS2.service
Flash MCU firmware and provide the MCU firmware file path.
./flash_tc39x.py <serial port> 921600 <FW File>
For example:
root@mgx-3809:~# ./flash_tc39x.py ttyS2 921600 ./P3740_TC39x_Aurix.hex
Start the console.
systemctl start obmc-console\@ttyS2.service