Update Your MCU Firmware#
Use the following command-line instructions to update your MCU firmware. However, we recommend that you flash MCUby using the BMC web user interface.
Note
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.
Update your MCU firmware by using Redfish#
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.1export 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.1export token=`curl -k \ 2 -H "Content-Type: application/json" \ 3 -X POST https://$bmc/login \ 4 -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.
1export task_id=$(curl -k \ 2 -H "X-Auth-Token: $token" \ 3 -H "Content-Type: application/octet-stream" \ 4 -X POST https://$bmc/redfish/v1/UpdateService \ 5 -T "<path and filename of the MCU PLDM package>" | jq -r ".Id")
To check the status of the update run the following code. After the update is done, the task status is
completed
.1curl -k \ 2 -H "X-Auth-Token: $token" \ 3 -X GET https://$bmc/redfish/v1/TaskService/Tasks/$task_id
Update your MCU firmware manually#
Use the following procedure to update your MCU firmware manually.
Go to the
mcu-flash
directory by using the following command.1root@mgx-3809:~# cd /etc/smcu-flash
Copy the MCU firmware file from the package to BMC by using scp.
Stop the console service.
1root@mgx-3809:~# systemctl stop obmc-console\@ttyS2.service
Flash MCU firmware and provide the MCU firmware file path.
1./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.
1systemctl start obmc-console\@ttyS2.service