RShim Drivers and Usage

Linux Kernel Upstream Release Notes v6.5

This section of the user manual describes installation and operation of NVIDIA® RShim drivers.

Warning

The Rshim drivers will be installed only on Windows Server 2016 and above or Windows Client 10 Operating Systems.

  1. Open the Device Manager when no drivers are installed to make sure a new PCIe device is available as below.

    image2020-7-5_9-20-43.png

  2. Run the installer to install all 3 drivers (MlxRshimBus.sys, MlxRshimCom.sys and MlxRshimEth.sys).

    image2020-7-5_9-21-27.png

  3. Make sure the Bus driver created 2 child devices after the installation (Com port and the Ethernet adapter).

    image2020-7-5_9-22-45.png

    image2020-7-5_9-29-8.png

    image2020-7-5_9-29-22.png

At this time, PuTTY application or any other network utility can be used to communicate with DPU via Virtual Com Port or Virtual Ethernet Adapter (ssh). The Com Port can be used using the 9600 baud-rate and default settings.

Warning

RShim drivers can be connect via PCIe (the drivers we are providing) or via USB (external connection) but not both at the same time. So when the bus driver detects that an external USB is already attached, it will not create the child virtual devices for data access. Access via PCIe is available once the USB connection is removed.

The BlueField DPU can be accessed via PuTTY or any other network utility application to communicate via virtual COM or virtual Ethernet adapter. To use COM:

  1. Open Putty.

  2. Change connection type to Serial.

  3. Run the following command in order to know what to set the "Serial line" field to:

    Copy
    Copied!
                

    C:\Users\username\Desktop> reg query HKLM\HARDWARE\DEVICEMAP\SERIALCOMM | findstr MlxRshim \MlxRshim\COM3 REG-SZ COM3

    In this case use COM3. This name can also be found via Device Manager under "Ports (Com & LPT)".

    device-manager-screenshot.png

  4. Press Open and hit Enter.

    PuTTY.png

To access via BlueField management network adapter, configure an IP address as shown in the example below and run a ping test to confirm configuration.

The device does not support any type of stateful or stateless offloads. This is indicated to the Operating System accordingly when the driver loads. The MAC address is a pre-defined MAC address (CA-FE-01-CA-FE-02). The following registry keys can be used to change basic settings such as MAC address.

Registry Name

Description

Valid Values

HKLM\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\<nn>\*JumboPacket

The size, in bytes, of the largest supported Jumbo Packet (an Ethernet frame that is greater than 1514 bytes) that the hardware can support.

1514 (default) - 2048

HKLM\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\<nn>\*NetworkAddress

The network address of the device. The format for a MAC address is: XX-XX-XX-XX-XX-XX.

CA-FE-01-CA-FE-02 (default)

HKLM\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\<nn>\ReceiveBuffers

The number of receive descriptors used by the miniport adapter.

16 – 64 (Default)

Warning

Update the MAC address manually using registry key if there are more than one BlueField DPU in the system.

This driver does all the read/write work to the hardware registers. User space application can send down IOCTL’s to restart the system on chip or to push a new BlueField boot stream image.

RShimCmd is a command line tool that enables the user to:

  • Restart the DPU.

  • Push a boot stream file (.bfb). A .bfb file is a generated BlueField boot stream file that contains Linux operating system image that runs on the DPU. BFB files can be downloaded from the NVIDIA DOCA SDK webpage.

Usage

RshimCmd -RestartSmartNic <Option> -BusNum <BusNum>

Example

RshimCmd -EnumDevices

RshimCmd -PushImage c:\bin\MlnxBootImage.bfb -BusNum 11

RshimCmd -RestartSmartNic 1 -BusNum 11

Detailed Usage

RshimCmd -h

Warning

The BFB image can be either CentOS or Ubuntu. Ubuntu credentials are: ubuntu/ubuntu and for Centos credentials are: root/centos, IP address of RShim Ethernet component (called tmfifo_net0) on the BlueField side is 192.168.100.2/30 by default. Please set IP address on the Windows side accordingly to be able to communicate via SSH.

Bluefield's UEFI system boot options and more can be customized during the BFB Installation through the use of configuration parameters in the bf.cfg file. For further information on the bf.cfg file, refer to the BlueField Documentation.

To include the bf.cfg file into the BFB installation, append the file to BFB file as described below:

  1. Copy the BFB file to a local folder. For example:

    Copy
    Copied!
                

    Copy <path>\DOCA_1.4.0_BSP_3.9.2_Ubuntu_20.04-5.20220707.bfb c:\bf\MlnxBootImage.bfb

  2. Append the bf.cfg file into the BFB file.

    Copy
    Copied!
                

    Cd c:\bf Copy /b MlnxBootImage.bfb + bf.cfg MlnxBootImage_with_bf_cfg.bfb

  3. Download the BFB image.

    Copy
    Copied!
                

    RshimCmd -PushImage c:\bf\MlnxBootImage_with_bf_cfg.bfb -BusNum 11

As the bf.cfg is intended for Linux OSes, it should be created according to Linux rules. For example, the lines of this text file should end in LF and not in CR/LF as accepted in Windows.

All the syntax should be as the accepted by the OS expects. For example, there should be no spaces in the middle of "set" statements: NET_RSHIM_MAC=00:1a:ca:ff:ff:05

All driver logging is part of the Mellanox-WinOF2-Kernel trace session that comes with the network drivers installation. The default location to the trace is at %SystemRoot%\system32\LogFiles\Mlnx\Mellanox-WinOF2-System.etl.

The following are the Event logs RShim drivers generate:

RShim Bus Driver

Event ID

Severity

Message

2

Informational

RShim Bus driver loaded successfully.

3

Informational

Device successfully stopped.

4

Error

The SmartNic adapter card seems to be stuck as the boot fifo data is not being drained.

5

Error

Driver startup failed due to failure in creation of the child device.

6

Error

Smartnic is in a bad state. Please restart smartnic and reload bus drivers. Please refer to user manual on how to restart smartnic.

7

Warning

Smartnic is in LiveFish mode.

8

Warning

Failed creating child virtual devices as a backend USB device is attached and accessing RShim FIFO. Please refer to user manual for more details.

RShim Serial Driver

Event ID

Severity

Message

2

Informational

RShim Serial driver loaded successfully.

3

Informational

device successfully stopped.

RShim Ethernet Driver

Event ID

Severity

Message

2

Error

MAC Address read from registry is not supported. Please set valid unicast address.

3

Informational

device is successfully stopped.

4

Warning

value read from registry is invalid. Therefore use the default value.

5

Error

SmartNic seems stuck as transmit packets are not being drained.

6

Informational

RShim Ethernet driver loaded successfully.

© Copyright 2023, NVIDIA. Last updated on Sep 9, 2023.