Vendor Field Mode
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 fieldmode and 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 root user.
The fieldmode user can perform the following operations over UART:
Start/stop UART tunneling to the NVIDIA® BlueField®-2 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-2 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 root user.
Enables network services on the BMC and the OOB management port. This re-enables all network-related operations to BMC over the Ethernet interface.
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/ttyUSBX
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.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/ttyUSBX
Refer to section "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
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/ttyUSBX
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.
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/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/ttyUSBX
Refer to section "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.
Operation Description |
Command |
Enable VFM |
Run from Arm/BlueField-2 OS and reboot NIC-BMC:
|
Disable VFM |
Run from Arm/BlueField-2 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 /dev/ttyUSBX is the UART port number to which BMC is connected. 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 /dev/ttyUSBX is the UART port number to which BMC is connected. |
Stop tunneling on BMC through UART |
Run the following command on the host where the BMC is connected:
Where /dev/ttyUSBX is the UART port number to which BMC is connected. |
Reboot BMC through UART |
Run the following command on the host where the BMC is connected:
Where /dev/ttyUSBX is the UART port number to which BMC is connected. |
To start/activate the BMC firmware update on BMC through UART |
Run the following command on the host where the BMC is connected:
Where /dev/ttyUSBX is the UART port number to which BMC is connected. |
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 |
Run the following command on the BMC:
Sample output of the progress.txt:
|
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 /dev/ttyUSBX is the UART port number to which BMC is connected. |
Transfer CEC 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 /dev/ttyUSBX is the UART port number to which BMC is connected. |