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 - 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. 
- 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 
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/ttyUSBX - Expect 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/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. 
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/ttyUSBX - Expect 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/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 
| 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 Note 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 Note 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  |