image image image image image

You are not viewing documentation for the latest version of this software.

On This Page

NVIDIA BMC is based on the OpenBMC open-software framework which builds a complete Linux image for a board management controller (BMC). It uses the Yocto project as the underlying building and distro generation framework.

The primary software components of BMC are the following:

  • U-boot bootloader
  • Linux kernel
  • OpenBMC distro

Software Versioning

There is a software version for each of the BMC software components. You may retrieve this information by running the following for each component:

  • U-boot version – version command from the u-boot prompt
  • Linux version – uname -a command from the Linux prompt
  • OpenBMC version – cat /etc/os-release from the Linux prompt

Boot Sequence Overview

  1. BMC starts booting through u-boot bootloader once the power supply is powered on.
  2. By default, the BMC automatically boots into Linux. To stop at the u-boot prompt, users must type the password 0penBmc (note the use of the digit zero in 0pen) within 5 seconds. To boot Linux from the u-boot prompt, type boot.
  3. The BMC provides indications of its status during its operation:

    ScenarioMessage
    At the beginning of the boot process of the u-boot
    Nvidia Bluefield BMC U-BOOT starting
    At the beginning of the OS boot process
    Nvidia Bluefield BMC Starting kernel ...
    At the login prompt
    Nvidia Bluefield BMC OS is up and running
    Upon reboot or shutdown
    Nvidia Bluefield BMC is shutting down
  4. The default password for the root user, to be typed in once Linux is booted, is 0penBmc.

    The default global password is set to expire upon first login. A new password must be configured according to the following policy:

    • Minimum length: 13
    • Minimum upper-case characters: 1
    • Minimum lower-case characters: 1
    • Minimum digits: 1 

    Note that the root account locks after four consecutive failed attempts and automatically unlocks after 10 minutes.

Flattened Image Tree Linux Kernel Format

The BlueField platform BMC uses Flattened Image Tree (FIT) format for its Linux kernel. 

The output from u-boot's imls command shows the configurations within the FIT image. By default, u-boot has bootcmd_string=bootm 0x20070000 configured and there is no configuration ID used to boot configuration 1 or 2 of the FIT image. So, by default, the BlueField platform BMC boots using BlueField 1U Reference Platform DTB file.

To boot the BMC using the BlueField 2U Reference Platform DTB, do one of two things from the u-boot command line:

  • For a one-time boot of the platform, run:

    bootm 0x20070000#conf@aspeed-bmc-mlx-bluewhale2u.dtb
  • For persistent boot of the 2U reference platform, modify the environmental variable bootcmd_string:

    setenv bootcmd_string bootm 0x20070000#conf@aspeed-bmc-mlx-bluewhale2u.dtb
    saveenv
    boot

User Management

The supported user management commands are listed in the following table.

No.FunctionCommand
1List the users
ipmitool user list [<channel number>]

For example:

ipmitool user list 1
2User creation
ipmitool user set name <user id> <user name>

For example:

ipmitool user set name 2 ADMIN 
3Set user password
ipmitool user set password <user id> <password>

For example:

ipmitool user set password 2 ADMIN123

Password policy:

  • Minimum length: 13
  • Minimum upper case characters: 1
  • Minimum lower case characters: 1
  • Minimum digits: 1 

    Root account locks after four consecutive failed attempts and automatically unlocks after 10 minutes.

4Enable user
ipmitool user enable <user id>

For example:

ipmitool user enable 2
5Disable user
ipmitool user disable <user id>

For example:

ipmitool user disable 2
6Set user privilege
ipmitool user priv <user id> <privilege level(1-4)> [<channel number>]

Where "privilege level":

  • 1 – callback level (currently not supported)

  • 2 – user level

  • 3 – operator level

  • 4 – administrator level

For example:

ipmitool user priv 2 0x3 1
7Enable remote IPMI command functionality for user
ipmitool channel setaccess [<channel number>] <user id> ipmi = on| off

For example:

ipmitool channel setaccess 1 2 ipmi=on
8Lanplus commands to execute IPMI commands remotely for users with admin permissions
ipmitool -C 17 -I lanplus -U <user> -P <password> -H <bmc_ip_address> <ipmi command>

For example:

ipmitool -C 17 -I lanplus -U ADMIN -P ADMIN123 -H 10.10.10.10 user list 1
9Lanplus commands to execute IPMI commands remotely for users with other than administrator roles
ipmitool -C 17 -I lanplus -U <user> -P <password> -H <bmc_ip_address> -L <privilege (operator|user)> <ipmi command>

For example:

ipmitool -C 17 -I lanplus -U operator1 -P operator123 -H 10.10.10.10 -L operator user list 1
ipmitool -C 17 -I lanplus -U user1 -P user123 -H 10.10.10.10 -L user chassis status
10Delete user
ipmitool user set name <user id> ""

For example:

ipmitool user set name 2 ""

Network Protocol Support

The BMC MAC address is derived from the DPU's base MAC with +2 offset. For example:

Base MACB8:CE:F6:F7:FF:8C
BMC MACB8:CE:F6:F7:FF:8E

BMC management network interface can be configured using IPMI. By default, BMC comes up with the DHCP network configuration.

Network configuration functions:

  • Setting DHCP/Static network mode configuration
  • Adding/setting IPv4/IPv6 configuration including IP address, gateway, netmask
  • Adding DNS servers
  • Adding NTP server
  • Setting BMC time with NTP server or system RTC

The following table lists the available network IPMI commands:

No.FunctionCommandDescription
1Change mode to Static
ipmitool lan set 1 ipsrc <mode>

For example:

ipmitool lan set 1 ipsrc static
Sets LAN channel 1 IP config mode to static which corresponds to network interface "eth0"
2Change mode to DHCP
ipmitool lan set 1 ipsrc <mode>

For example:

ipmitool lan set 1 ipsrc dhcp
Sets LAN channel 1 IP config mode to DHCP which corresponds to the network interface "eth0"
3Add IPv4 address
ipmitool lan set 1 ipaddr <IP Address>
ipmitool lan set 1 defgw ipaddr <IP Address>
ipmitool lan set 1 netmask <Netmask>
Adds IPv4 address, default gateway, and netmask to the network interface "eth0"
4Get IPv4 config
ipmitool lan print 1
Gets IPv4 network config for channel 1 which corresponds to the network interface "eth0"
5Set IPv6 address
ipmitool lan6 set 1 nolock static_addr 0 enable <IPv6 address> 64
Adds IPv6 address to the network interface "eth0"
6Get IPv6 config
ipmitool lan6 print 1
Gets IPv6 network config for channel 1 which corresponds to the network interface "eth0"
7Get DNS server
ipmitool raw 0x32 0x6B

Output:

0b 31 30 2e 31 35 2e 31 32 2e 36 37


Corresponds to: 10.15.12.67
Gets the DNS server
8Add DNS server
ipmitool raw 0x32 0x6C 0x0b 0x31 0x30 0x2e 0x31 0x35 0x2e 0x31 0x32 0x2e 0x36 0x37

Output:

0x0b 0x31 0x30 0x2e 0x31 0x35 0x2e 0x31 0x32 0x2e 0x36 0x37

Corresponds to: 10.15.12.67

Adds the DNS server
9Get NTP server
ipmitool raw 0x32 0xA7

Output:

01 11 31 2e 69 6e 2e 70 6f 6f 6c 2e 6e 74 70 2e 6f 72 67

Where:

  • 01 – NTP status enable/disable
  • 11 – NTP server length
  • 31 2e 69 6e 2e 70 6f 6f 6c 2e 6e 74 70 2e 6f 72 67 – NTP server address byte stream corresponds to 1.in.pool.ntp.org
Gets NTP server
10Add NTP server
ipmitool raw 0x32 0xA8 0x01 0x31 0x2e 0x69 0x6e 0x2e 0x70 0x6f 0x6f 0x6c 0x2e 0x6e 0x74 0x70 0x2e 0x6f 0x72 0x67

Where:

  • 31 2e 69 6e 2e 70 6f 6f 6c 2e 6e 74 70 2e 6f 72 67 – NTP server address byte stream corresponds to 1.in.pool.ntp.org
Adds NTP server
11Enable time sync to NTP server
ipmitool raw 0x32 0xA8 0x02 0x01

Where:

  • 0x01 – enable NTP
Enables NTP time sync
12Enable time sync to system RTC
ipmitool raw 0x32 0xA8 0x02 0x00

Where:

  • 0x00 – disable NTP
Disables NTP time sync

DPU Reset

DPU reset and checking reset status can be performed from a remote server using the openbmctool.

No.FunctionCommandDescription
1Trigger soft reset to the DPU
python3 openbmctool.py  -H <ip_address> \
                        -U <username> \
                        -P <password> dpu_reset soft \
                        -t

Where:

  • -H – BMC IP
  • -U – username
  • -P – password
  • -t – wait till finish the reset with timeout
Triggers soft reset to the DPU
2Track DPU reset status
python3 openbmctool.py  -H <ip_address> \
                        -U <username> \
                        -P <password> dpu_reset status

Where:

  • -H – BMC IP
  • -U – username
  • -P – password
Track the BMC-DPU reset status

Factory Reset

Run the following IPMI command to factory reset the BMC configuration.

ipmitool raw 0x32 0x66

After issuing the ipmitool raw command for factory reset, you must log into the BMC and reboot it for the factory reset to take effect.

If you have lost your BMC login credentials and cannot login, you may issue the following command from the BlueField Arm:

ipmitool mc reset cold

Factory reset also sets the global password for the root user back to its default (0penBmc). Upon first boot following factory reset, make sure to reconfigure the default global password to prevent potential malicious attackers from hacking your system.

Be sure to follow this password policy:

  • Minimum length: 13
  • Minimum upper case characters: 1
  • Minimum lower case characters: 1
  • Minimum digits: 1 

Note that the root account locks after four consecutive failed attempts and automatically unlocks after 10 minutes.

BMC and CEC Firmware Update

BlueField BMC Redfish Triggers

Redfish triggers allow the user to get a journal message when a certain metric crosses a defined threshold for a defined time:

  • The trigger threshold can only be a numeric threshold
  • The trigger thresholds are unrelated to the sensor thresholds
  • The maximum number of triggers allowed in the system is 10

For more details, refer to Redfish Resource and Schema Guide.

No.FunctionCommandDescription
1

Add a numeric trigger

curl -k -H "X-Auth-Token: $token" -H "Content-Type: application/json" -X POST https://${bmc}/redfish/v1/TelemetryService/Triggers/ -d '{"Id":"< >","Name":"<>","MetricType":"<>","TriggerActions":["<>"],"NumericThresholds":{"<>":{"Activation":"<>","DwellTime":"<>","Reading":<>}},"MetricProperties":["<>"]}'

Adds a numeric trigger to the BMC

2

Delete a trigger

curl -k -H "X-Auth-Token: $token" -H "Content-Type: application/json" -X DELETE https://${bmc}/redfish/v1/TelemetryService/Triggers/<Trigger name>

Deletes a trigger

  • No labels