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:

  1. Creates a new non-superuser user with username fieldmode and enables auto-login (only on the serial port) for this user.

  2. 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.

  3. Disables login for the root user.

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:

  1. Enables login for the root user.

  2. Enables network services on the BMC and the OOB management port. This re-enables all network-related operations to BMC over the Ethernet interface.

  1. Get the status of the tunnel through UART. Run the following command on the host where the BMC is connected on the UART port:

    Copy
    Copied!
                

    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.

  2. If tunnel is up and running, stop the tunneling on BMC over UART.

    Copy
    Copied!
                

    echo -e "\r~." > /dev/ttyUSBX

  3. 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:

    Copy
    Copied!
                

    echo -e -n "\ncd /tmp/images\n \nrz\n" > /dev/ttyUSBX sz -8b OTA.tar < /dev/ttyUSBX > /dev/ttyUSBX

  4. Start the firmware update. Run the following command on the host where the BMC is connected on the UART port:

    Copy
    Copied!
                

    echo "touch /tmp/fw-update/fwactivate" > /dev/ttyUSBX 

  5. To check the progress of the firmware update on the BMC, run:

    Copy
    Copied!
                

    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.

  6. 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:

    Copy
    Copied!
                

    echo "touch /tmp/fw-update/reboot" > /dev/ttyUSBX

  7. Keep polling the status of the tunnel through UART to check that the BMC has booted up.

  8. Check the new BMC firmware version.

    Copy
    Copied!
                

    echo "cat /etc/os-release " > /dev/ttyUSBX

Warning

Relevant only for BlueField-2.

  1. Get the status of the tunnel through UART. Run the following command on the host where the BMC is connected on the UART port:

    Copy
    Copied!
                

    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.

  2. If the tunnel is up and running, stop the tunneling on BMC over UART:

    Copy
    Copied!
                

    echo -e "\r~." > /dev/ttyUSBX

  3. 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.

    Copy
    Copied!
                

    echo -e -n "\ncd /tmp/cec_images\n \nrz\n" > /dev/ttyUSBX sz -8b CEC.bin < /dev/ttyUSBX > /dev/ttyUSBX

  4. To check the progress of the firmware update on the BMC, run:

    Copy
    Copied!
                

    echo "cat /tmp/cec_images progress.txt " > /dev/ttyUSBX

    Refer to section "Supported Vendor Field Mode Commands" for different firmware update values.

  5. After a successful CEC firmware update, power cycle the board or run the following on the host to activate the new firmware:

    Copy
    Copied!
                

    host# ipmitool chassis power cycle Chassis Power Control: Cycle

  6. Keep polling the status of the tunnel through UART to check that BMC and CEC are booted up.

Warning

Relevant only for BlueField-3.

  1. Get the status of the tunnel through UART. Run the following command on the host where the BMC is connected on the UART port:

    Copy
    Copied!
                

    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.

  2. If the tunnel is up and running, stop the tunneling on BMC over UART.

    Copy
    Copied!
                

    echo -e "\r~." > /dev/ttyUSBX

  3. 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:

    Copy
    Copied!
                

    echo -e -n "\ncd /tmp/images\n \nrz\n" > /dev/ttyUSBX sz -8b IMAGE.fwpkg < /dev/ttyUSBX > /dev/ttyUSBX

  4. Start the firmware update. Run the following command on the host where the BMC is connected on the UART port:

    Copy
    Copied!
                

    echo "touch /tmp/fw-update/fwactivate" > /dev/ttyUSBX 

  5. To check the progress of the firmware update on the BMC, run:

    Copy
    Copied!
                

    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.

  6. 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:

    Copy
    Copied!
                

    echo "touch /tmp/fw-update/reboot" > /dev/ttyUSBX

  7. Keep polling the status of the tunnel through UART to check that the BMC has booted up.

  8. Check the new BMC firmware version.

    Copy
    Copied!
                

    echo "cat /etc/os-release " > /dev/ttyUSBX

Operation Description

Command

Enable VFM

Run from Arm/BlueField OS and reboot NIC-BMC:

Copy
Copied!
            

ipmitool raw 0x32 0x67 0x01

Disable VFM

Run from Arm/BlueField OS and reboot NIC-BMC:

Copy
Copied!
            

ipmitool raw 0x32 0x67 0x00

Fetch VFM

Run from Arm OS:

Copy
Copied!
            

ipmitool raw 0x32 0x68

Get the status of the tunnel through UART

Run the following command on the host where the BMC is connected:

Copy
Copied!
            

echo -e "\\g\\@" > /dev/ttyUSBX

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:

Copy
Copied!
            

echo "touch /tmp/fw-update/uart-tunneling" > /dev/ttyUSBX

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:

Copy
Copied!
            

echo -e "\r~." > /dev/ttyUSBX

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:

Copy
Copied!
            

echo "touch /tmp/fw-update/reboot" > /dev/ttyUSBX

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:

Copy
Copied!
            

echo "touch /tmp/fw-update/fwactivate" > /dev/ttyUSBX

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:

Copy
Copied!
            

cat /tmp/fw-update/fwstatus

Output and their values:

  • Activating – indicates firmware update is in progress

  • Active – indicates firmware update succeeded

  • Failed – indicates firmware update failed

To check the CEC firmware update status on BMC

Warning

Relevant only for BlueField-2.

Run the following command on the BMC:

Copy
Copied!
            

cat /tmp/cec_images progress.txt

Sample output of the progress.txt:

  • CEC update in progress:

    Copy
    Copied!
                

    TaskState="Running" TaskStatus="OK" TaskProgress="50"

  • CEC update completed:

    Copy
    Copied!
                

    TaskState=Firmware update succeeded. TaskStatus=OK TaskProgress=100

Transfer BMC firmware image for firmware update through UART

Run the following command on the host where the BMC is connected:

Copy
Copied!
            

echo -e -n "\ncd /tmp/images\n \nrz\n" > /dev/ttyUSBX

Run the following command on the host where the BMC is connected:

Copy
Copied!
            

sz -8b OTA.tar < /dev/ttyUSBX > /dev/ttyUSBX

Where /dev/ttyUSBX is the UART port number to which BMC is connected.

Transfer CEC firmware image for firmware update through UART

Warning

Relevant only for BlueField-2.

Run the following command on the host where the BMC is connected:

Copy
Copied!
            

echo -e -n "\ncd /tmp/cec_images\n \nrz\n" > /dev/ttyUSBX

Run the following command on the host where the BMC is connected:

Copy
Copied!
            

sz -8b OTA.bin < /dev/ttyUSBX > /dev/ttyUSBX

Where /dev/ttyUSBX is the UART port number to which BMC is connected.

© Copyright 2023, NVIDIA. Last updated on Mar 18, 2024.