NVIDIA BlueField DPU BSP v4.0.3
1.0

SoC Management Interface

The SoC management interface, formerly known as RShim, allows an external agent such as the host CPU or BMC to operate the DPU and monitor its operational state. This interface allows provisioning of the DPU, resetting Arm cores, and obtaining logs.

Warning

For instructions for Windows support, please refer to page "Windows Support".

Please refer to section Updating Repo Package on Host Side.

Configuration File

The configuration file for the SoC management interface is located at /etc/rshim.conf and includes the parameters listed in the table below.

Parameter

Default

Description

BOOT_TIMEOUT

150

Timeout value in seconds when pushing BFB while Arm side is not reading the boot stream.

DROP_MODE

0

Once set to 1, the RShim driver ignores all RShim writes and returns 0 for RShim read.

This is used in cases such as during FW_RESET or bypassing the RShim PF to VM.

PCIE_RESET_DELAY

10

Delay in seconds for RShim over PCIe, which is added after chip reset and before pushing the boot stream.

PCIE_INTR_POLL_INTERVAL

10

Interrupt polling interval in seconds when running RShim over direct memory mapping.

PCIE_HAS_VFIO

1

Setting this parameter to 0 disallows RShim memory mapping via VFIO.

PCIE_HAS_UIO

1

Setting this parameter to 0 disallows RShim memory mapping via UIO.

Warning

Configuring RShim is optional. The default parameters are designed to support out-of-box deployment scenarios including multiple DPUs on a single host.

Users may control which RShim index maps to which device by following this procedure:

Copy
Copied!
            

# Uncomment the 'rshim<N>' line to configure the mapping. # # device-name pci-device rshim0      pcie-0000:21:00.2 rshim1      pcie-0000:81:00.2   # # Ignored devices. # Uncomment the 'none' line to configure the ignored devices. # #none         usb-1-1.4 #none         pcie-lf-0000:84:00.0

Warning

If any of these configurations are changed, then the SoC management interface must be restarted by running:

Copy
Copied!
            

systemctl restart rshim


The NVIDIA® BlueField® DPU registers on the host OS a "DMA controller" for DPU management over PCIe. This can be verified by running the following:

Copy
Copied!
            

#  lspci -d 15b3: | grep 'SoC Management Interface' 27:00.2 DMA controller: Mellanox Technologies MT42822 BlueField-2 SoC Management Interface (rev 01)

A special SoC management driver must be installed and run on the host OS to expose the various BlueField management interfaces to the OS. Currently, this driver is named RShim and is automatically installed as part of the DOCA installation. Refer to section "Install RShim on Host" for information on how to obtain and install the host-side SoC management interface driver .

When the SoC management interface driver runs properly on the host side, a sysfs device, /dev/rshim0/*, and a virtual Ethernet interface, tmfifo_net0, become available. The following is an example for querying the status of the SoC management interface driver on the host side:

Copy
Copied!
            

# systemctl status rshim ● rshim.service - rshim driver for BlueField SoC Loaded: loaded (/lib/systemd/system/rshim.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2022-05-31 14:57:07 IDT; 1 day 1h ago Docs: man:rshim(8) Process: 90322 ExecStart=/usr/sbin/rshim $OPTIONS (code=exited, status=0/SUCCESS) Main PID: 90323 (rshim) Tasks: 11 (limit: 76853) Memory: 3.3M CGroup: /system.slice/rshim.service └─90323 /usr/sbin/rshim May 31 14:57:07 … systemd[1]: Starting rshim driver for BlueField SoC... May 31 14:57:07 … systemd[1]: Started rshim driver for BlueField SoC. May 31 14:57:07 … rshim[90323]: Probing pcie-0000:a3:00.2(vfio) May 31 14:57:07 … rshim[90323]: Create rshim pcie-0000:a3:00.2 May 31 14:57:07 … rshim[90323]: rshim pcie-0000:a3:00.2 enable May 31 14:57:08 … rshim[90323]: rshim0 attached

If the SoC management interface driver device does not appear, refer to section "RShim Troubleshooting and How-Tos".

Virtual Ethernet Interface

On the host, the SoC management interface driver exposes a virtual Ethernet device called tmfifo_net0. This virtual Ethernet can be thought of as a peer-to-peer tunnel connection between the host and the DPU OS. The DPU OS also configures a similar device. The DPU OS's BFB images are customized to configure the DPU side of this connection with a preset IP of 192.168.100.2/30. It is up to the user to configure the host side of this connection. Configuration procedures vary for different OSs.

The following example configures the host side of tmfifo_net0 with a static IP and enables IPv4-based communication to the DPU OS:

Copy
Copied!
            

#  ip addr add dev tmfifo_net0 192.168.100.1/30

Warning

For instructions on persistent IP configuration of the tmfifo_net0 interface, refer to step "Assign a static IP to tmfifo_net0" under "Updating Repo Package on Host Side".

Logging in from the host to the DPU OS is now possible over the virtual Ethernet. For example:

Copy
Copied!
            

ssh ubuntu@192.168.100.2


SoC Management Interface Driver Support for Multiple DPUs

Multiple DPUs may connect to the same host machine. When the SoC management interface driver is loaded and operating correctly, each BlueField device is expected to have its own device directory on sysfs, /dev/rshim<N>, and a virtual Ethernet device, tmfifo_net<N>.

Warning

<N> correlates to the number of BlueField DPUs used where the SoC management interfaces of the first DPU is 0, incrementing by 1 for each added BlueField.

The following are some guidelines on how to set up the SoC management virtual Ethernet interfaces properly if multiple DPUs are installed in the host system.

There are two methods to manage multiple tmfifo_net interfaces on a Linux platform:

  • Using a bridge, with all tmfifo_net<N> interfaces on the bridge – the bridge device bares a single IP address on the host while each DPU has unique IP in the same subnet as the bridge

  • Directly over the individual tmfifo_net<N> – each interface has a unique subnet IP and each DPU has a corresponding IP per subnet

Whichever method is selected, the host-side tmfifo_net interfaces should have different MAC addresses, which can be:

  • Configured using ifconfig. For example:

    Copy
    Copied!
                

    $ ifconfig tmfifo_net0 192.168.100.1/24 hw ether 02:02:02:02:02:02

  • Or saved in configuration via the /udev/rules as can be seen later in this section.

In addition, each Arm-side tmfifo_net interface must have a unique MAC and IP address configuration, as BlueField OS comes uniformly pre-configured with a generic MAC, and 192.168.100.2. The latter must be configured in each DPU manually or by DPU customization scripts during BlueField OS installation.

Multi-board Management Example

This example deals with two BlueField DPUs installed on the same server (the process is similar for more DPUs). The example assumes that the RShim package has been installed on the host server.

Configuring Management Interface on Host

Warning

This example is relevant for CentOS/RHEL operating systems only.

  1. Create a bf_tmfifo interface under /etc/sysconfig/network-scripts. Run:

    Copy
    Copied!
                

    vim /etc/sysconfig/network-scripts/ifcfg-br_tmfifo

  2. Inside ifcfg-br_tmfifo, insert the following content:

    Copy
    Copied!
                

    DEVICE="br_tmfifo" BOOTPROTO="static" IPADDR="192.168.100.1" NETMASK="255.255.255.0" ONBOOT="yes" TYPE="Bridge"

  3. Create a configuration file for the first BlueField DPU, tmfifo_net0. Run:

    Copy
    Copied!
                

    vim /etc/sysconfig/network-scripts/ifcfg-tmfifo_net0

  4. Inside ifcfg-tmfifo_net0, insert the following content:

    Copy
    Copied!
                

    DEVICE=tmfifo_net0 BOOTPROTO=none ONBOOT=yes NM_CONTROLLED=no BRIDGE=br_tmfifo

  5. Create a configuration file for the second BlueField DPU, tmfifo_net1. Run:

    Copy
    Copied!
                

    DEVICE=tmfifo_net1 BOOTPROTO=none ONBOOT=yes NM_CONTROLLED=no BRIDGE=br_tmfifo

  6. Create the rules for the tmfifo_net interfaces. Run:

    Copy
    Copied!
                

    vim /etc/udev/rules.d/91-tmfifo_net.rules

  7. Restart the network for the changes to take effect. Run:

    Copy
    Copied!
                

    # /etc/init.d/network restart Restarting network (via systemctl): [ OK ]

Configuring BlueField DPU Side

BlueField DPUs arrive with the following factory default configurations for tmfifo_net0.

Address

Value

MAC

00:1a:ca:ff:ff:01

IP

192.168.100.2

Therefore, if you are working with more than one DPU, you must change the default MAC and IP addresses.

Updating RShim Network MAC Address

Warning

This procedure is relevant for Ubuntu/Debian (sudo needed), and CentOS BFBs. The procedure only affects the tmfifo_net0 on the Arm side.

  1. Use a Linux console application (e.g. screen or minicom) to log into each BlueField. For example:

    Copy
    Copied!
                

    # sudo screen /dev/rshim<0|1>/console 115200

  2. Create a configuration file for tmfifo_net0 MAC address. Run:

    Copy
    Copied!
                

    # sudo vi /etc/bf.cfg

  3. Inside bf.cfg, insert the new MAC:

    Copy
    Copied!
                

    NET_RSHIM_MAC=00:1a:ca:ff:ff:03

  4. Apply the new MAC address. Run:

    Copy
    Copied!
                

    sudo bfcfg

  5. Repeat this procedure for the second BlueField DPU (using a different MAC address).

    Note

    Arm must be rebooted for this configuration to take effect. It is recommended to update the IP address before you do that to avoid unnecessary reboots.

Warning

For comprehensive list of the supported parameters to customize bf.cfg during BFB installation, refer to section "bf.cfg Parameters".


Updating IP Address

For Ubuntu:

  1. Access the file 50-cloud-init.yaml and modify the tmfifo_net0 IP address:

    Copy
    Copied!
                

    sudo vim /etc/netplan/50-cloud-init.yaml   tmfifo_net0: addresses: - 192.168.100.2/30 ===>>> 192.168.100.3/30

  2. Reboot the Arm. Run:

    Copy
    Copied!
                

    sudo reboot

  3. Repeat this procedure for the second BlueField DPU (using a different IP address).

    Note

    Arm must be rebooted for this configuration to take effect. It is recommended to update the MAC address before you do that to avoid unnecessary reboots.

For CentOS:

  1. Access the file ifcfg-tmfifo_net0. Run:

    Copy
    Copied!
                

    # vim /etc/sysconfig/network-scripts/ifcfg-tmfifo_net0

  2. Modify the value for IPADDR:

    Copy
    Copied!
                

    IPADDR=192.168.100.3

  3. Reboot the Arm. Run:

    Copy
    Copied!
                

    reboot

    Or perform netplan apply.

  4. Repeat this procedure for the second BlueField DPU (using a different IP address).

    Note

    Arm must be rebooted for this configuration to take effect. It is recommended to update the MAC address before you do that to avoid unnecessary reboots.

Permanently Changing Arm-side MAC Address

Warning

It is assumed that the commands in this section are executed with root (or sudo) permission.

The default MAC address is 00:1a:ca:ff:ff:01. It can be changed using ifconfig or by updating the UEFI variable as follows:

  1. Log into Linux from the Arm console.

  2. Run:

    Copy
    Copied!
                

    $ "ls /sys/firmware/efi/efivars".

  3. If not mounted, run:

    Copy
    Copied!
                

    $ mount -t efivarfs none /sys/firmware/efi/efivars $ chattr -i /sys/firmware/efi/efivars/RshimMacAddr-8be4df61-93ca-11d2-aa0d-00e098032b8c $ printf "\x07\x00\x00\x00\x00\x1a\xca\xff\xff\x03" > \ /sys/firmware/efi/efivars/RshimMacAddr-8be4df61-93ca-11d2-aa0d-00e098032b8c

The printf command sets the MAC address to 00:1a:ca:ff:ff:03 (the last six bytes of the printf value). Either reboot the device or reload the tmfifo driver for the change to take effect.

The MAC address can also be updated from the server host side while the Arm-side Linux is running:

  1. Enable the configuration. Run:

    Copy
    Copied!
                

    # echo "DISPLAY_LEVEL 1" > /dev/rshim0/misc

  2. Display the current setting. Run:

    Copy
    Copied!
                

    # cat /dev/rshim0/misc DISPLAY_LEVEL 1 (0:basic, 1:advanced, 2:log) BOOT_MODE 1 (0:rshim, 1:emmc, 2:emmc-boot-swap) BOOT_TIMEOUT 300 (seconds) DROP_MODE 0 (0:normal, 1:drop) SW_RESET 0 (1: reset) DEV_NAME pcie-0000:04:00.2 DEV_INFO BlueField-2(Rev 1) PEER_MAC 00:1a:ca:ff:ff:01 (rw) PXE_ID 0x00000000 (rw) VLAN_ID 0 0 (rw)

  3. Modify the MAC address. Run:

    Copy
    Copied!
                

    $ echo "PEER_MAC xx:xx:xx:xx:xx:xx" > /dev/rshim0/misc

For more information and an example of the script that covers multiple DPU installation and configuration, refer to section "Installing Full DOCA Image on Multiple DPUs" of the NVIDIA DOCA Installation Guide.

BlueField OOB Ethernet Interface

The BlueField OOB interface is a gigabit Ethernet interface which provides TCP/IP network connectivity to the Arm cores. This interface is named oob_net0 and is intended to be used for management traffic (e.g., file transfer protocols, SSH, etc). The Linux driver that controls this interface is named mlxbf_gige.ko, and is automatically loaded upon boot. This interface can be configured and monitored using of standard tools (e.g., ifconfig, ethtool, etc). The OOB interface is subject to the following design limitations:

  • Only supports 1Gb/s full-duplex setting

  • Only supports GMII access to external PHY device

  • Supports maximum packet size of 2KB (i.e., no support for jumbo frames)

The OOB interface can also be used for PXE boot. This OOB port is not a path for the BlueField boot stream. Any attempt to push a BFB to this port would not work. Refer to How to use the UEFI boot menu for more information about UEFI operations related to the OOB interface.

OOB Interface MAC Address

The MAC address to be used for the OOB port is burned into Arm-accessible UPVS EEPROM during the manufacturing process. This EEPROM device is different from the SPI Flash storage device used for the NIC firmware and associated NIC MACs/GUIDs. The value of the OOB MAC address is specific to each platform and is visible on the board-level sticker.

Important

It is not recommended to reconfigure the MAC address from the MAC configured during manufacturing.

If there is a need to re-configure this MAC for any reason, follow these steps to configure a UEFI variable to hold new value for OOB MAC.:

Warning

The creation of an OOB MAC address UEFI variable will override the OOB MAC address defined in EEPROM, but the change can be reverted.

  1. Log into Linux from the Arm console.

  2. Issue the command ls /sys/firmware/efi/efivars to show whether efivarfs is mounted. If it is not mounted, run:

    Copy
    Copied!
                

    mount -t efivarfs none /sys/firmware/efi/efivars

  3. Run:

    Copy
    Copied!
                

    chattr -i /sys/firmware/efi/efivars/OobMacAddr-8be4df61-93ca-11d2-aa0d-00e098032b8c

  4. Set the MAC address to 00:1a:ca:ff:ff:03 (the last six bytes of the printf value).

    Copy
    Copied!
                

    printf "\x07\x00\x00\x00\x00\x1a\xca\xff\xff\x03" > /sys/firmware/efi/efivars/OobMacAddr-8be4df61-93ca-11d2-aa0d-00e098032b8c

  5. Reboot the device for the change to take effect.

To revert this change and go back to using the MAC as programmed during manufacturing, follow these steps:

  1. Log into UEFI from the Arm console, go to "Boot Manager" then "EFI Internal Shell".

  2. Delete the OOB MAC UEFI variable. Run:

    Copy
    Copied!
                

    dmpstore -d OobMacAddr

  3. Reboot the device by running "reset" from UEFI.

  4. Log into Linux from the Arm console.

  5. Issue the command ls /sys/firmware/efi/efivars to show whether efivarfs is mounted. If it is not mounted, run:

    Copy
    Copied!
                

    mount -t efivarfs none /sys/firmware/efi/efivars

  6. Run:

    Copy
    Copied!
                

    chattr -i /sys/firmware/efi/efivars/OobMacAddr-8be4df61-93ca-11d2-aa0d-00e098032b8c

  7. Reconfigure the original MAC address burned by the manufacturer in the format aa\bb\cc\dd\ee\ff. Run:

    Copy
    Copied!
                

    printf "\x07\x00\x00\x00\x00\<original-MAC-address>" > /sys/firmware/efi/efivars/OobMacAddr-8be4df61-93ca-11d2-aa0d-00e098032b8c

  8. Reboot the device for the change to take effect.

Supported ethtool Options for OOB Interface

The Linux driver for the OOB port supports the handling of some basic ethtool requests: get driver info, get/set ring parameters, get registers, and get statistics.

To use the ethtool options available, use the following format:

Copy
Copied!
            

$ ethtool [<option>] <interface>

Where <option> may be:

  • <no-argument> – display interface link information

  • -i – display driver general information

  • -S – display driver statistics

  • -d – dump driver register set

  • -g – display driver ring information

  • -G – configure driver ring(s)

  • -k – display driver offload information

  • -a – query the specified Ethernet device for pause parameter information

  • -r – restart auto-negotiation on the specified Ethernet device if auto-negotiation is enabled

For example:

Copy
Copied!
            

$ ethtool oob_net0 Settings for oob_net0: Supported ports: [ TP ] Supported link modes: 1000baseT/Full Supported pause frame use: Symmetric Supports auto-negotiation: Yes Supported FEC modes: Not reported Advertised link modes: 1000baseT/Full Advertised pause frame use: Symmetric Advertised auto-negotiation: Yes Advertised FEC modes: Not reported Link partner advertised link modes: 1000baseT/Full Link partner advertised pause frame use: Symmetric Link partner advertised auto-negotiation: Yes Link partner advertised FEC modes: Not reported Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 3 Transceiver: internal Auto-negotiation: on MDI-X: Unknown Link detected: yes

Copy
Copied!
            

$ ethtool -i oob_net0 driver: mlxbf_gige version: firmware-version: expansion-rom-version: bus-info: MLNXBF17:00 supports-statistics: yes supports-test: no supports-eeprom-access: no supports-register-dump: yes supports-priv-flags: no

Copy
Copied!
            

# Display statistics specific to BlueField-2 design (i.e. statistics that are not shown in the output of "ifconfig oob0_net") $ ethtool -S oob_net0 NIC statistics: hw_access_errors: 0 tx_invalid_checksums: 0 tx_small_frames: 1 tx_index_errors: 0 sw_config_errors: 0 sw_access_errors: 0 rx_truncate_errors: 0 rx_mac_errors: 0 rx_din_dropped_pkts: 0 tx_fifo_full: 0 rx_filter_passed_pkts: 5549 rx_filter_discard_pkts: 4


IP Address Configuration for OOB Interface

The files that control IP interface configuration are specific to the Linux distribution. The udev rules file (/etc/udev/rules.d/92-oob_net.rules) that renames the OOB interface to oob_net0 and is the same for Yocto, CentOS, and Ubuntu:

Copy
Copied!
            

SUBSYSTEM=="net", ACTION=="add", DEVPATH=="/devices/platform/MLNXBF17:00/net/eth[0-9]", NAME="oob_net0"

The files that control IP interface configuration are slightly different for CentOS and Ubuntu:

  • CentOS configuration of IP interface:

    • Configuration file for oob_net0: /etc/sysconfig/network-scripts/ifcfg-oob_net0

    • For example, use the following to enable DHCP:

      Copy
      Copied!
                  

      NAME="oob_net0" DEVICE="oob_net0" NM_CONTROLLED="yes" PEERDNS="yes" ONBOOT="yes" BOOTPROTO="dhcp" TYPE=Ethernet

    • For example, to configure static IP use the following:

      Copy
      Copied!
                  

      NAME="oob_net0" DEVICE="oob_net0" IPV6INIT="no" NM_CONTROLLED="no" PEERDNS="yes" ONBOOT="yes" BOOTPROTO="static" IPADDR="192.168.200.2" PREFIX=30 GATEWAY="192.168.200.1" DNS1="192.168.200.1" TYPE=Ethernet

  • For Ubuntu configuration of IP interface, please refer to section "Default Network Interface Configuration".

Function

Command

Comments

1

Push BFB

Copy
Copied!
            

bfb-install –r rshim<N> -b <bfb> [-c bf.cfg]

Using bf.cfg in the command is optional. For more details about bf.cfg, refer to section "DPU Configuration File".

2

Open console

Copy
Copied!
            

screen /dev/rshim<N>/console 115200 minicom -D /dev/rshim<N>/console

The N index depends on the number of DPUs in your setup.

Use Linux's screen or minicom console applications to access the BlueField console.

3

Configure a virtual network interface

Copy
Copied!
            

ip addr add dev tmfifo_net<N> 192.168.100.1/30

The N index depends on the number of DPUs in your setup. Refer to section "SoC Management Interface Driver Support for Multiple DPUs" for more information.

The default IP address for the DPU is 192.168.100.2/30.

The IP used in the command (192.168.100.1/30) is for example purposes only.

4

Log into the DPU

Copy
Copied!
            

ssh -6  user@fe80::21a:caff:feff:ff01%tmfifo_net<N>

The N index depends on the number of DPUs in your setup. Refer to section "SoC Management Interface Driver Support for Multiple DPUs" for more information.

5

PXE boot over RShim

N/A

Please refer to section "Deploying BlueField Software Using BFB with PXE" for more information.

6

Issue Arm software reset

Copy
Copied!
            

echo "SW_RESERT 1" > /dev/rshim<N>/misc

7

Expose log messages

N/A

For more information, please refer to section "Logging".

The bf.cfg file contains configuration that can be pushed to customize the installation of the BFB.

Copy
Copied!
            

############################################################################### # This file contains configuration that can be pushed together to customize # the BFB installation. The configuration is stored as /etc/bf.cfg and is # used by the 'bfcfg' and other tools as input. # # Uncomment variables to customize their values as needed. Otherwise, the # values remain unchanged or default values are used when the variables # are created. # Note: # - Try to keep at least one comment line from beginning if possible when # pushed together with BFB; # - Try not to use spaces around the '=', which might not work for all BFBs. ###############################################################################   ############################################################################### # Manufacturing information (not applicable for BlueField-1). # !!! Note: These variables are only allowed to be programmed once, then the # values will be locked. Be sure to set to correct values when # customizing them. ############################################################################### # MAC address of the OOB network interface #MFG_OOB_MAC=00:1a:ca:11:22:33   # OPN number of this board #MFG_OPN=MBF1M332A # SKU ID of this board #MFG_SKU=MBF1M332A # Model of this board #MFG_MODL=X # Serial Number of this board #MFG_SN=X # UUID of this board #MFG_UUID=X   ############################################################################### # Configuration which can also be set in # UEFI->Device Manager->System Configuration ############################################################################### # Enable SMMU in ACPI. #SYS_ENABLE_SMMU=TRUE   # Enable I2C0 in ACPI. #SYS_ENABLE_I2C0=FALSE   # Disable SPMI in ACPI. #SYS_DISABLE_SPMI=FALSE   # Enable eMMC boot partition protection. #SYS_BOOT_PROTECT=FALSE   # Enable SPCR table in ACPI. #SYS_ENABLE_SPCR=FALSE   # Disable PCIe in ACPI. #SYS_DISABLE_PCIE=FALSE   # Enable OP-TEE in ACPI (obsolete). #SYS_ENABLE_OPTEE=FALSE   # Disable the 'force_pxe' retry behavior. # By default, PXE boot will keep retrying all the PXE devices. # If disabled, it'll try PXE interfaces one round then continue the normal # booting sequence. #SYS_DISABLE_FORCE_PXE_RETRY=FALSE   # Disable BMC Field Mode. #SYS_ENABLE_BMC_FIELD_MODE=FALSE   ############################################################################### # Partition configuration # Multiple devices can be added here as DISK<M>_NAME. # Each device can have multiple partitions identified by "DISK<M>_PART<N>_xxx" # '<N>' is the partition ID, which represents partition "DISK<M>_NAME"p<N>. # For example, assuming DISK0_NAME is /dev/mmcblk0. N=1 means partition # /dev/mmcblk0p1, N=8 means partition /dev/mmcblk0p8, etc. # # Each device has the following definitions. Optional attributes are marked # as (optional) below. # DISK<M>_NAME: device path, such as /dev/mmcblk0 # DISK<M>_PART<N>_SIZE: partition <N> size in MB # Value 0 means 'max remaining space', which is only # allowed on one partition. # DISK<M>_PART<N>_TYPE: partition <N> type, which could be # EFI, Linux or UUID defined in # https://en.wikipedia.org/wiki/GUID_Partition_Table # DISK<M>_PART<N>_MOUNT: mount path # DISK<M>_PART<N>_PERSIST: CREATE | KEEP (optional) # CREATE: create or overwrite this partition # KEEP: keep this partition, or create if not exist # Only one partition could be marked as 'persist'. ############################################################################### #DISK0_NAME=/dev/mmcblk0 #DISK0_PART1_SIZE=150 #DISK0_PART1_TYPE=EFI #DISK0_PART1_MOUNT=/boot/efi #DISK0_PART2_SIZE=0 #DISK0_PART2_TYPE=Linux #DISK0_PART2_MOUNT=/ #DISK0_PART8_PERSIST=CREATE #DISK0_PART8_SIZE=250 #DISK0_PART8_TYPE=Linux   ############################################################################### # Boot Order configuration # Each entry BOOT<N> could have the following format: # PXE or HTTP: # BOOT<N>=NET-<NIC_P0 | NIC_P1 | OOB | RSHIM>-<IPV4 | IPV6>[-HTTP] # PXE over VLAN (vlan-id in decimal): # BOOT<N>=NET-<NIC_P0 | NIC_P1 | OOB | RSHIM>[.<vlan-id>]-<IPV4 | IPV6>[-HTTP] # UEFI Shell: # BOOT<N>=UEFI_SHELL # DISK: boot entries created during OS installation. # BOOT<N>=DISK ############################################################################### # In the example below, BOOT0 is use for PXE boot over the 2nd ConnectX port. # BOOT1 is for HTTP boot over the 2nd ConnectX port. If both BOOT0 and BOOT1 # fail, it continues to boot from disk with boot entries created during OS # installation. #BOOT0=NET-NIC_P1-IPV4 #BOOT1=NET-NIC_P1-IPV4-HTTP #BOOT2=DISK   ############################################################################### # Other misc configuration ############################################################################### # MAC address of the rshim network interface. #NET_RSHIM_MAC=00:1a:ca:ff:ff:01   # DHCP class identifier for PXE (arbitrary string up to 32 chracters) # If FACTORY_DEFAULT_DHCP_BEHAVIOR is TRUE (or not specified), default value # 'NVIDIA/BF/PXE' will be configured during BFB installation. Or else it'll # take the value configured in 'PXE_DHCP_CLASS_ID'. #FACTORY_DEFAULT_DHCP_BEHAVIOR=FALSE #PXE_DHCP_CLASS_ID=NVIDIA/BF/PXE   ############################################################################### # Hook function to customize the BFB installation ############################################################################### # bfb_modify_os() # - SHELL function called after file the system is extracted on the target # partitions. It can be used to modify files or create new files on the # target file system mounted under /mnt. So the file path should look as # follows: # /mnt/<expected_path_on_target_OS>. # - This can be used to run a specific tool from the target OS (remember to # add /mnt to the path for the tool).   # bfb_pre_install() # – SHELL function called before EMMC partitions format # and OS filesystem is extracted.   # bfb_post_install() # – SHELL function called as a last step before reboot. # All EMMC partitions are unmounted at this stage.

© Copyright 2023, NVIDIA. Last updated on Jun 23, 2023.