Vendor field mode (VFM) allows the BMC to work in a restricted mode with limited permissions.
Enabling VFM automatically performs the following on BMC:
-
Creates a new non-superuser user with username
fieldmodeand enables auto-login (only on the serial port) for this user. -
Stops network services on the BMC and disables the OOB management port. This blocks all network-related operations (e.g., ssh, https, lanplus) to BMC over the Ethernet interface.
-
Disables login for the
rootuser.
The fieldmode user can perform the following operations over UART:
-
Start/stop UART tunneling to the NVIDIA® BlueField® Arm OS (i.e., OS running on the Arm core)
-
Secure firmware update and track update status of BMC and CEC components
-
Reboot BMC
From the BlueField Arm OS, the user fieldmode will be able to enable or disable VFM.
Disabling VFM automatically performs the following on BMC:
-
Enables login for the
rootuser. -
Enables network services on the BMC and the OOB management port. This re-enables all network-related operations to BMC over the Ethernet interface.
Updating BMC Firmware with Vendor Field Mode
-
Get the status of the tunnel through UART. Run the following command on the host where the BMC is connected on the UART port:
echo -e "\\g\\@" > /dev/ttyUSBXExpect the following sequence of chars when the tunnel is up and running: 169 150 230.
Expect the following sequence of chars when the tunnel is not running: 165 200. -
If tunnel is up and running, stop the tunneling on BMC over UART.
echo -e "\r~." > /dev/ttyUSBX
-
Transfer the BMC firmware image over UART using the XModem tool. Run the following command on the host where the BMC is connected on the UART port:
echo -e -n "\ncd /tmp/images\n \nrz\n" > /dev/ttyUSBX sz -8b OTA.tar < /dev/ttyUSBX > /dev/ttyUSBX
-
Start the firmware update. Run the following command on the host where the BMC is connected on the UART port:
echo "touch /tmp/fw-update/fwactivate" > /dev/ttyUSBX
-
To check the progress of the firmware update on the BMC, run:
echo "cat /tmp/fw-update/fwstatus " > /dev/ttyUSBXRefer to section "Vendor Field Mode | Supported Vendor Field Mode Commands" for different firmware update values. It takes ~40 minutes to complete the BMC firmware update.
-
After a successful firmware update to activate the new firmware, reboot the BMC using the following command on the host where the BMC is connected on the UART port:
echo "touch /tmp/fw-update/reboot" > /dev/ttyUSBX
-
Keep polling the status of the tunnel through UART to check that the BMC has booted up.
-
Check the new BMC firmware version.
echo "cat /etc/os-release " > /dev/ttyUSBX
Updating CEC Firmware with Vendor Field Mode
Relevant only for BlueField-2.
-
Get the status of the tunnel through UART. Run the following command on the host where the BMC is connected on the UART port:
echo -e "\\g\\@" > /dev/ttyUSBXExpect the following sequence of characters when the tunnel is up and running: 169 150 230.
Expect the following sequence of characters when the tunnel is not running: 165 200. -
If the tunnel is up and running, stop the tunneling on BMC over UART:
echo -e "\r~." > /dev/ttyUSBX
-
Transfer the BMC firmware image over UART using the XModem tool. Run the following command on the host where the BMC is connected on the UART port.
echo -e -n "\ncd /tmp/cec_images\n \nrz\n" > /dev/ttyUSBX sz -8b CEC.bin < /dev/ttyUSBX > /dev/ttyUSBX
-
To check the progress of the firmware update on the BMC, run:
echo "cat /tmp/cec_images progress.txt " > /dev/ttyUSBXRefer to section "Vendor Field Mode | Supported Vendor Field Mode Commands" for different firmware update values.
-
After a successful CEC firmware update, power cycle the board or run the following on the host to activate the new firmware:
host# ipmitool chassis power cycle Chassis Power Control: Cycle
-
Keep polling the status of the tunnel through UART to check that BMC and CEC are booted up.
Updating BMC and Glacier Firmware with Vendor Field Mode
Relevant only for BlueField-3.
-
Get the status of the tunnel through UART. Run the following command on the host where the BMC is connected on the UART port:
echo -e "\\g\\@" > /dev/ttyUSBXExpect the following sequence of characters when the tunnel is up and running: 169 150 230.
Expect the following sequence of characters when the tunnel is not running: 165 200. -
If the tunnel is up and running, stop the tunneling on BMC over UART.
echo -e "\r~." > /dev/ttyUSBX
-
Transfer the BMC or Glacier firmware image over UART using the XModem tool. Run the following command on the host where the BMC is connected on the UART port:
echo -e -n "\ncd /tmp/images\n \nrz\n" > /dev/ttyUSBX sz -8b IMAGE.fwpkg < /dev/ttyUSBX > /dev/ttyUSBX
-
Start the firmware update. Run the following command on the host where the BMC is connected on the UART port:
echo "touch /tmp/fw-update/fwactivate" > /dev/ttyUSBX
-
To check the progress of the firmware update on the BMC, run:
echo "cat /tmp/fw-update/fwstatus " > /dev/ttyUSBXRefer to section "Vendor Field Mode | Supported Vendor Field Mode Commands" for different firmware update values. It takes ~40 minutes to complete the BMC firmware update.
-
After a successful firmware update to activate the new firmware, reboot the BMC using the following command on the host where the BMC is connected on the UART port:
echo "touch /tmp/fw-update/reboot" > /dev/ttyUSBX
-
Keep polling the status of the tunnel through UART to check that the BMC has booted up.
-
Check the new BMC firmware version.
echo "cat /etc/os-release " > /dev/ttyUSBX
Supported Vendor Field Mode Commands
|
Operation Description |
Command |
|---|---|
|
Enable VFM |
Run from Arm/BlueField OS and reboot NIC-BMC:
|
|
Disable VFM |
Run from Arm/BlueField OS and reboot NIC-BMC:
|
|
Fetch VFM |
Run from Arm OS:
|
|
Get the status of the tunnel through UART |
Run the following command on the host where the BMC is connected:
Where Expect the following sequence of chars when the tunnel is up and running: 169 150 230. Expect the following sequence of chars when the tunnel is not running: 165 200. |
|
Start tunneling on BMC through UART |
Run the following command on the host where the BMC is connected:
Where |
|
Stop tunneling on BMC through UART |
Run the following command on the host where the BMC is connected:
Where |
|
Reboot BMC through UART |
Run the following command on the host where the BMC is connected:
Where |
|
To start/activate the BMC firmware update on BMC through UART |
Run the following command on the host where the BMC is connected:
Where |
|
To check the BMC firmware update status on BMC |
Run the following command on the BMC:
Output and their values:
|
|
To check the CEC firmware update status on BMC Relevant only for BlueField-2.
|
Run the following command on the BMC:
Sample output of the
|
|
Transfer BMC firmware image for firmware update through UART |
Run the following command on the host where the BMC is connected:
Run the following command on the host where the BMC is connected:
Where |
|
Transfer CEC firmware image for firmware update through UART Relevant only for BlueField-2.
|
Run the following command on the host where the BMC is connected:
Run the following command on the host where the BMC is connected:
Where |
Last updated: