Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
BMC User GuideVersion latest
Graphcore Ltd
Nov 08, 2021
CONTENTS
1 Introduction 11.1 BMC command line interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Graphical user interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 REST API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4 IPMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.5 Redfish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.6 Abbreviations and acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 IPU-M2000 BMC specification 32.1 BMC subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.1.1 System FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.1.2 LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2 BMC functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.3 IPU-M2000 block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.4 Supported IPMI commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.5 Supported ipmitool commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Power operations 93.1 BMC command line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.2 GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.3 REST API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.4 IPMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.5 Redfish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Sensor monitoring 164.1 BMC command line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164.2 GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174.3 REST API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184.4 IPMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184.5 Redfish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.6 List of monitored sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 Inventory monitoring 345.1 BMC command line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.2 GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355.3 REST API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365.4 IPMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385.5 Redfish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 Events and logging 426.1 BMC command line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426.2 GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426.3 REST API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436.4 IPMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Version: latest (2021-11-08) i
6.5 Redfish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476.6 List of supported events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486.6.1 Sensor crossing threshold events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486.6.2 Inventory items presence or functional-state events . . . . . . . . . . . . . . . . . . . . . . . 497 Maintenance mode and BIST 527.1 BMC command line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527.2 Host command line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527.3 GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537.4 REST API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537.5 IPMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537.6 Redfish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 Firmware operations 548.1 GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548.2 REST API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568.3 IPMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568.4 Redfish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569 User management 589.1 BMC command line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599.2 GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599.3 REST API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609.4 IPMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619.5 Redfish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629.6 LDAP integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6310 Network configuration 6610.1 BMC command line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6610.2 GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6710.3 REST API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6710.4 IPMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6811 Serial over LAN (SoL) 6911.1 BMC command line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6911.2 GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6911.3 IPMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7012 Debug collector 7112.1 REST API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7213 Reset lost root password 7313.1 BMC command line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7313.2 Factory reset from U-Boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7314 Time settings 7514.1 BMC command line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7514.2 GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7614.3 REST API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7614.4 IPMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7714.5 Redfish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7715 Summary of supported IPMI commands 78
16 Trademarks & copyright 86
Version: latest (2021-11-08) ii
CHAPTER
ONE
INTRODUCTION
This document defines the functions and the interfaces provided by the BMC software on an IPU-M2000.Note: Note that setting a power cap is an advance preview feature in the current versions of the IPU-M2000.To access the BMC, you will need the following information from the system administrator:
• BMC host name or IP address• OpenBMC user ID and password
Initially, there will a single default user account on the BMC. When you log in as that user you can create furtheraccounts, if you wish (see Section 9, User management).
1.1 BMC command line interface
To use the command-line interface, you must be logged in to the BMC via SSH or the serial console.The command line interface uses either standard Linux commands or the ipum_utils command.
1.2 Graphical user interface
A graphical user interface (GUI) to the BMC is available. You can access this with a web browser.
1.3 REST API
You can send REST API commands using curl or the openbmctool.py command line tool on the host server.OpenBMC recommends token-based authentication when using the REST interface and provides some commandexamples, including power related operations. See the “OpenBMC cheatsheet”. A successful REST commandresults in a “200 OK” message as shown below:{
"data": null,"message": "200 OK","status": "ok"
}
Version: latest (2021-11-08) 1
BMC User Guide
1.4 IPMI
You can use the the ipmitool to control the BMC over IPMI. You can download this from https://github.com/ipmitool/ipmitool.
1.5 Redfish
The Redfish standard is a suite of specifications that deliver an industry standard protocol providing a RESTfulinterface for the management of servers, storage and networking.The IPU-M2000 BMC supports a Redfish basic profile. You can perform operations through the Redfish interfaceby sending curl queries to the URI. You can also use a browser to access the Redfish GUI.
1.6 Abbreviations and acronyms
Common abbreviations used by this document are listed in Table 1.1.Table 1.1: Abbreviations
Abbreviation Description
BGA Ball grid array packageBIST Built-in self-testBMC Baseboard management controllerCLI Command line interfaceFRU Field replaceable unitGUI Graphical user interfaceGW IPU gateway deviceIPMI Intelligent platform management interfaceICU IPU control unitIPU Intelligence Processing UnitJSON JavaScript object notation format for representing dataNTP Network time protocolPSU Power supply unitREST Representational state transfer web APIRPM Revolutions per minuteSDR Sensor data recordSEL System event logSNMP Simple network management protocolSoL Serial over LAN
Version: latest (2021-11-08) 2
CHAPTER
TWO
IPU-M2000 BMC SPECIFICATION
The IPU-M2000 baseboard management controller (BMC) runs software based on the OpenBMC project.The responsibilities of the BMC software stack are to control, monitor and manage system hardware, includingpower, sensors, inventories and event logging.You can control and monitor the system, via the BMC, using a variety of user interfaces such as a command lineinterface (CLI), graphical user interface (GUI), REST API, IPMI and Redfish.
2.1 BMC subsystem
A block diagram of the IPU-M2000, showing the BMC subsystem, is shown in Fig. 2.1.The physical components in the BMC subsystem are:
• ASPEED AST2520 baseboard management controller• System FPGA• 128 MB serial boot flash• 1 GB of DDR4 DRAM• One USB port — Micro-USB management interface, see Fig. 13.1• Two 1 GbE ports — at boot the BMC Ethernet interface (eth0) is set to 100 Mbps, full-duplex, auto-negotiation on• Two I2C PSU interfaces for monitoring the state of the power supplies• Five fan interfaces for controlling and measuring the speed of the system cooling fans• Three LEDs used to indicate status
2.1.1 System FPGA
The FPGA is mainly a status and control signal concentrator. It ensures that those control signals are always in asafe state. In addition, it provides hardware monitoring and protection for any thermal or voltage abnormalities.It also controls the sequencing of supply voltages, clocks and reset signals.
Version: latest (2021-11-08) 3
BMC User Guide
2.1.2 LEDs
There are three LEDs used to indicate status:• Green indicates normal operation status• White is used to identify a specific IPU-M2000 in a system• Yellow indicates various error conditions:
– Temperature alert detected– Standby voltages detected failing– PSUs detected failing– Connector domain detected failing– GW 1 domain detected failing– IPU 1 and 2 or IPU 3 and 4 domains detected failing– Fan fail detected (too few fans or fans running too slow)– No profile configuration found in flash– BMC flash not trusted
2.2 BMC functions
The BMC supports the following system management functions:• Events and logging
• Firmware operations
• Inventory monitoring
• Maintenance mode and BIST
• Network configuration
• Power operations
• Sensor monitoring
• Time settings
• User management
Version: latest (2021-11-08) 4
BMC User Guide
2.3 IPU-M2000 block diagram
Fig. 2.1: IPU-M2000 BMC block diagram
Version: latest (2021-11-08) 5
BMC User Guide
2.4 Supported IPMI commands
2.5 Supported ipmitool commands
This section summarises the ipmitool commands supported by the BMC. For details of the parameters and ex-amples of use, see the appropriate user guide chapter.The BMC is tested with ipmitool version 1.8.18.
Table 2.1: Inventory monitoring
Command Description
fru print Display information about all FRUsfru print <fruid> Display information about the FRU with the specifiedID
Table 2.2: Events and logging
Command Description
sel clear Clear all event logssel list Display list of eventssel elist Display list of events with extended information
Table 2.3: Network configuration
Command Description
lan print Print network informationipsrc dhcp Enable DHCPipsrc static Configure static IPipaddr <ip_address> Set IP addressnetmask <x.x.x.x> Set IP addressdefgw ipaddr <ip_address> Set default gateway IP address
Table 2.4: Power operations
Version: latest (2021-11-08) 6
BMC User Guide
Command Description
power off Hard power offpower soft Soft power offpower reset Warm rebootpower on Power onbmc reset cold BMC rebootdcmi power get_limit Get current status of power capdcmi power set_limit limit <limit> Set new power cap valuedcmi power activate Enable power cappingdcmi power deactivate Disable power capping
Table 2.5: Sensor monitoring
Command Description
sdr list Display sensor data repository (SDR) entry readingsand their statussdr elist Display extended sensor informationsensor list Display sensors and thresholds in a wide table formatsdr get <sensor_name> Display information for sensor data records specifiedby sensor IDsdr type Display a list of sensor typessdr type <sensor_type> Display all records from the SDR repository of a spe-cific type
Table 2.6: Serial over LAN (SoL)
Command Description
sol activate Access serial over LAN (SoL) interface
Table 2.7: Time settings
Command Description
sel time set “DD/MM/YYYY HH:MM:SS” Set time and date (will fail if system is in NTP mode)sel time get Get time and date
Table 2.8: User management
Version: latest (2021-11-08) 7
BMC User Guide
Command Description
user summary [<channel_number>] Print a summary, including number of users on thesystemuser list [<channel_number>] List usersuser set name <user_id> <username> Create a user with <user_id> and <username>user set password <user_id> [<password> <16|20>] Create a password for user with <user_id> (the pass-word can be 16 or 20 bytes in length)user enable <user_id> Enable user with <user_id> (must be done after creat-ing user and password)user disable <user_id> Disable user with <user_id>user priv <user_id> <privilege_level> [<chan-nel_number>] Set privilege level for user with <user_id>channel setaccess <channel> <user_id> ipmi=on Enable IPMI access for a user• The maximum number of system users is 30• The maximum number of users with IPMI access is 15• The maximum username length for an IPMI user is 16 bytes• User IDs are from 1 to 15• Passwords must be a minimum of 8 characters in length• The privilege levels are:
– 0x1: Callback– 0x2: User– 0x3: Operator– 0x4: Administrator– 0x5: OEM Proprietary– 0xF: No Access
Version: latest (2021-11-08) 8
CHAPTER
THREE
POWER OPERATIONS
This section describes power management operations using the CLI, GUI, REST, IPMI and Redfish interfaces.
3.1 BMC command line
You can use the ipum-utils command to control power. Table 3.1 lists the available commands.Table 3.1: Power control options
Parameter Description
power_hardoff Immediately turn off power for the IPU and gateway domains, without saving statepower_softoff Save state and turn off power for the IPU and gateway domainspower_hardreset Safely turn power off and on for all power domains including the connector domainpower_on Turn on power for the IPU and gateway domainspowercap Show the current power cap setting
To reboot the BMC, use the Linux reboot command.You can set a limit on the power used by the system with the powercap command, as described below.$ powercap -hUsage: powercap--get-pcap | -g: Read current power cap from MCP47FEB DAC--user-pcap | -p: Print user power cap config setting--set-pcap | -s: Set power cap to the specified value in range [600-2600] Watts. Only writes to MCP47FEB DAC volatile␣→˓registers.--force-pcap | -f: Force power cap to the specified value in range [600-2600] Watts. Updates MCP47FEB DAC and and user␣→˓configs.
Running ipum-utils powercap with no options will display the current setting.
3.2 GUI
You can use the GUI to perform power operations. The operations available in the GUI are described in Table 3.2.The user interface for these operations is shown in Fig. 3.1 and Fig. 3.2.Table 3.2: GUI power operations
Version: latest (2021-11-08) 9
BMC User Guide
Command Description
Immediate shutdown Immediately turn off power for the IPU and gateway domains, without saving stateOrderly shutdown Save state and turn off power for the IPU and gateway domainsCold reboot Immediate shutdown followed by power onWarm reboot Orderly shutdown followed by power onPower On Turn on power for the IPU and gateway domains
Fig. 3.1: GUI: IPU-M2000 power operations
Version: latest (2021-11-08) 10
BMC User Guide
Fig. 3.2: GUI: BMC reboot page
To manage power consumption in the GUI, select Manage Power Usage under the Server Control tab (see Fig.3.3).
Fig. 3.3: GUI: manage power use
The accepted power cap range is between 600 to 2600 Watts (AC).
Version: latest (2021-11-08) 11
BMC User Guide
3.3 REST API
You can perform power operations through the REST API either by sending curl queries to the URI or by usingthe Graphcore openbmctool.py utility.Table 3.3 describes the available commands.
Table 3.3: Power operations using REST interface
Command Description
Hard power off Immediately turn off power for the IPU and gateway domains, without saving state$ curl -k -H "Content-Type: application/json" -X PUT -d '{"data":"xyz.openbmc_project.State.Chassis.Transition.Off"}'␣→˓https://<bmcuser>:<bmcpass>@<bmcip>/xyz/openbmc_project/state/chassis0/attr/RequestedPowerTransition
$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> chassis power hardoff
Soft power off Save state and turn off power for the IPU and gateway domains$ curl -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.openbmc_project.State.Host.Transition.Off"}'␣→˓https://<bmcuser>:<bmcpass>@<bmcip>/xyz/openbmc_project/state/host0/attr/RequestedHostTransition
$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> chassis power softoff
Warm reboot Soft power off followed by power on$ curl -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.openbmc_project.State.Host.Transition.Reboot"}'␣→˓https://<bmcuser>:<bmcpass>@<bmcip>/xyz/openbmc_project/state/host0/attr/RequestedHostTransition
No direct openbmtool.py command available. You can use the “soft power off” and “power on” commandsinstead.Power on Turn on power for the IPU and gateway domains$ curl -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.openbmc_project.State.Host.Transition.On"}'␣→˓https://<bmcuser>:<bmcpass>@<bmcip>/xyz/openbmc_project/state/host0/attr/RequestedHostTransition
$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> chassis power on
BMC reboot Reboot the BMC$ curl -k -H "Content-Type: application/json" -X PUT -d '{"data":"xyz.openbmc_project.State.BMC.Transition.Reboot"}'␣→˓https://<bmcuser>:<bmcpass>@<bmcip>/xyz/openbmc_project/state/bmc0/attr/RequestedBMCTransition
$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> bmc reset
You can manage power consumption using the REST interface with the commands in Table 3.4.Table 3.4: Power consumption management using REST interface
Version: latest (2021-11-08) 12
BMC User Guide
Command Description
Power cap status Get current settings$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> chassis chassis pcap -gAttempting login...Chassis PowerCap State: {'PowerCap': 2400, 'PowerCapEnable': False}User root has been logged out
Set power cap Set new power cap value$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> chassis pcap -s <600-2600>Attempting login...Attempting to disable power cap ...User root has been logged out
Disable power cap Disable power capping$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> chassis pcap -d
3.4 IPMI
Table 3.5 describes the ipmitool power-related commands that are available.Table 3.5: Power operations using IPMI interface
Command Description
Hard power off Immediately turn off power for the IPU and gateway domains, without saving state$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> power off
Soft power off Save state and turn off power for the IPU and gateway domains$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> power soft
Warm reboot Soft power off followed by power on$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> power reset
Power on Turn on power for the IPU and gateway domains$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> power on
BMC reboot Reboot the BMC$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> bmc reset cold
You can manage power consumption using the IPMI interface with the commands in Table 3.6.Table 3.6: Power consumption management using IPMI interface
Version: latest (2021-11-08) 13
BMC User Guide
Command Description
Power cap status Get current settings$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> dcmi power get_limitCurrent Limit State: No Active Power Limit0Exception actions: Hard Power Off & Log Event to SELPower Limit: 2200 WattsCorrection time: 0 millisecondsSampling period: 0 seconds
Set power cap Set new power cap value$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> dcmi power set_limit limit 2100Current Limit State: No Active Power Limit0Exception actions: Hard Power Off & Log Event to SELPower Limit: 2100 WattsCorrection time: 0 millisecondsSampling period: 0 seconds
Enable power cap Enable power capping$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> dcmi power activatePower limit successfully activated
Disable power cap Disable power capping$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> dcmi power deactivatePower limit successfully deactivated
3.5 Redfish
You can see the supported power operations at https://<bmcip>/redfish/v1/Systems/system. Table 3.7 de-scribes the power operations.Table 3.7: Power operations using Redfish interface
Version: latest (2021-11-08) 14
BMC User Guide
Command Description
HardpoweroffImmediately turn off power for the IPU and gateway domains, without saving state
$ curl -k -H "X-Auth-Token: <token>" -X POST https://${bmcip}/redfish/v1/Systems/system/Actions/ComputerSystem.Reset -→˓d '{"ResetType": "ForceOff"}' -u <bmcpass>:<bmcuser>
SoftpoweroffSave state and turn off power for the IPU and gateway domains
$ curl -k -H "X-Auth-Token: <token>" -X POST https://${bmcip}/redfish/v1/Systems/system/Actions/ComputerSystem.Reset -→˓d '{"ResetType": "GracefulShutdown"}' -u <bmcpass>:<bmcuser>
Warmreboot Soft power off followed by power on
$ curl -k -H "X-Auth-Token: <token>" -X POST https://${bmcip}/redfish/v1/Systems/system/Actions/ComputerSystem.Reset -→˓d '{"ResetType": "GracefulRestart"}' -u <bmcpass>:<bmcuser>
Poweron Turn on power for the IPU and gateway domains
$ curl -k -H "X-Auth-Token: <token>" -X POST https://${bmcip}/redfish/v1/Systems/system/Actions/ComputerSystem.Reset -→˓d '{"ResetType": "ForceOn"}' -u <bmcpass>:<bmcuser>
Version: latest (2021-11-08) 15
CHAPTER
FOUR
SENSORMONITORING
This section describes the sensor monitoring operations using the CLI, GUI, REST, IPMI and Redfish interfaces. Alist of all available sensors and their thresholds is shown in Table 4.6.
4.1 BMC command line
You can use the ipum-utils command for sensor monitoring. Table 4.1 lists the available commands.Table 4.1: Sensor monitoring options
Parameter Description
sensor_list Display sensors present on the IPU-M2000 with the current sensor value, thresh-old levels, scale and unit. Threshold levels are defined as CRIT_HIGH, CRIT_LOW,WARN_HIGH andWARN_LOW, which correspond to critical high and low values,and warning high and low values.An example of the output from the command is shown below:$ ipum-utils sensor_listNAME VALUE CRIT_HIGH WARN_HIGH CRIT_LOW WARN_LOW SCALE UNITfan0_0 16319 18356 17522 7471 8405 0 RPMSfan0_1 15264 16911 16142 5040 5670 0 RPMS...fan4_1 15418 16911 16142 5040 5670 0 RPMSps0_input_power 0 1100000000 1000000000 0 0 -6 Wattsps0_output_power 0 1100000000 1000000000 0 0 -6 Wattsps1_input_power 292000000 1100000000 1000000000 0 0 -6 Wattsps1_output_power 288000000 1100000000 1000000000 0 0 -6 Wattstotal_power 288000000 2200000000 2000000000 0 0 -6 WattsIPU0_BGA_area_bottom 36447 70000 65000 5000 10000 -3 DegreesCIPU0_CoreV_bottom 38158 95000 90000 5000 10000 -3 DegreesC...ps1_outlet_temp 48000 75000 55000 0 0 -3 DegreesCps_dimm_temp 36500 90000 85000 0 5000 -3 DegreesCIPU01_3V3 3340 3465 3399 3135 3201 -3 VoltsIPU01_VDDDRV 6704 7140 7004 6460 6596 -3 Volts...stby_2v5_volt 2471 2625 2575 2375 2425 -3 Voltsstby_3v3_volt 3332 3465 3399 3135 3201 -3 Volts
Version: latest (2021-11-08) 16
BMC User Guide
4.2 GUI
The sensor monitoring operations available in the GUI are described in Table 4.2.Table 4.2: GUI sensor monitoring operations
Command Description
Sensors Display the sensors present in the system with the current value and thresholdvalues. You can filter sensors by severity with the “Filter by severity” button.Fig. 4.1 shows the IPU-M2000 sensor-monitoring GUI page for this operation.
Fig. 4.1: GUI: IPU-M2000 sensor monitoring operations
Version: latest (2021-11-08) 17
BMC User Guide
4.3 REST API
You can perform sensor monitoring through the REST interface either by sending curl queries to the URI or byusing the openbmctool.py utility. Table 4.3 describes the commands available.Table 4.3: Sensor monitoring using REST interface
Command Description
list List sensors available in the system. Using the openbmctool.py will print currentsensor values together with thresholds for critical high and low, and warning highand lowList all sensors:$ curl -k https://<bmcip>/xyz/openbmc_project/sensors/list -u <bmcuser>:<bmcpass>
$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> sensors list
List sensor groups:$ curl -k https://<bmcip>/xyz/openbmc_project/sensors/<sensortype>/list -u <bmcuser>:<bmcpass>
Show individual sensors:$ curl -k https://<bmcip>/xyz/openbmc_project/ sensors/<sensortype>/<sensor_name>/list -u <bmcuser>:<bmcpass>
<sensortype> can be one of “voltage”, “temperature”, “power” or “fan_tach”enumerate Display information associated with the sensor$ curl -k https://<bmcip>/xyz/openbmc_project/sensors/<sensortype>/<sensor_name>/enumerate -u <bmcuser>:<bmcpass>
Example output from the command:$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> sensors listAttempting login...sensor | type | units | value | targetIPU0_BGA_area_bottom | temperature | DegreesC | 37.408 | N/AIPU0_CoreV_bottom | temperature | DegreesC | 38.024 | N/A...stby_1v8_volt | voltage | Volts | 1.802 | N/Astby_1v15_volt | voltage | Volts | 1.147 | N/Astby_2v5_volt | voltage | Volts | 2.471 | N/Astby_3v3_volt | voltage | Volts | 3.328 | N/Atotal_power | power | Watts | 288.0 | N/A
4.4 IPMI
Table 4.4 describes the ipmitool sensor-related commands that are available.Table 4.4: sensor operations using IPMI interface
Version: latest (2021-11-08) 18
BMC User Guide
Command Description
SDR list Display sensor data repository (SDR) entry readings and their status$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> sdr list
SDR extended list Display extended sensor information$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> sdr elist
Sensor list Display sensors and thresholds in a wide table format$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> sensor list
SDR get Display information for sensor data records specified by sensor ID$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> sdr get <sensor_name>
The sensor name cannot be more than 16 characters longSDR type Display all records from the SDR repository of a specific type$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> sdr type <sensor_type>
Use the command ipmitool sdr type to get a full list of sensor typesExample output from the command is shown below:$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> sdr elistBootProgress | 02h | ok | 34.1 |cpu0 | 08h | ok | 3.1 | Presence detectedpowersupply0 | 09h | ok | 10.1 | Presence detected, Failure detectedpowersupply1 | 0Ah | ok | 10.2 | Presence detecteddimm0 | 0Bh | ok | 32.1 | Presence Detecteddimm1 | 0Ch | ok | 32.2 | Presence Detected...IPU3_I2C48_Inlet | A9h | ok | 45.37 | 28 degrees CIPU3_I2C49_Outle | AAh | ok | 45.38 | 33 degrees C
4.5 Redfish
You can do sensor monitoring through the Redfish interface either by sending curl queries or browsing the URI.You can find the Sensors in the Chassis collection available at https://<bmcip>/redfish/v1/Chassis/. The Chas-sis collection represents a physical view of the IPU-M2000, containing items such as fans, power supplies andsensors.The sensors are divided into three groups: thermal, power and voltage.An example of using Redfish to view the thermal sensors associated with the chassis is shown below. The resultof browsing the same endpoint is shown in Fig. 4.2.$ curl -k https://<bmcip>/redfish/v1/Chassis/chassis/Thermal -u <bmcuser>:<bmcpass>{"@odata.context": "/redfish/v1/$metadata#Thermal.Thermal","@odata.id": "/redfish/v1/Chassis/chassis/Thermal","@odata.type": "#Thermal.v1_4_0.Thermal","Fans": [
{"@odata.id": "/redfish/v1/Chassis/chassis/Thermal#/Fans/0","@odata.type": "#Thermal.v1_3_0.Fan","LowerThresholdCritical": 7471,
(continues on next page)
Version: latest (2021-11-08) 19
BMC User Guide
(continued from previous page)"LowerThresholdNonCritical": 8405,"MaxReadingRange": 0,"MemberId": "fan0_0","MinReadingRange": 0,"Name": "fan0 0","Reading": 10890,"ReadingUnits": "RPM","Status": {
"Health": "OK","State": "Enabled"
},"UpperThresholdCritical": 18356,"UpperThresholdNonCritical": 17522
},{
"@odata.id": "/redfish/v1/Chassis/chassis/Thermal#/Fans/1","@odata.type": "#Thermal.v1_3_0.Fan","LowerThresholdCritical": 5040,"LowerThresholdNonCritical": 5670,"MaxReadingRange": 0,"MemberId": "fan0_1","MinReadingRange": 0,"Name": "fan0 1","Reading": 7830,"ReadingUnits": "RPM","Status": {
"Health": "OK","State": "Enabled"
},"UpperThresholdCritical": 16911,"UpperThresholdNonCritical": 16142
},{
"@odata.id": "/redfish/v1/Chassis/chassis/Thermal#/Fans/2","@odata.type": "#Thermal.v1_3_0.Fan","LowerThresholdCritical": 7471,"LowerThresholdNonCritical": 8405,"MaxReadingRange": 0,"MemberId": "fan1_0","MinReadingRange": 0,"Name": "fan1 0","Reading": 10752,"ReadingUnits": "RPM","Status": {
"Health": "OK","State": "Enabled"
},"UpperThresholdCritical": 18356,"UpperThresholdNonCritical": 17522
},{
"@odata.id": "/redfish/v1/Chassis/chassis/Thermal#/Fans/3","@odata.type": "#Thermal.v1_3_0.Fan","LowerThresholdCritical": 5040,"LowerThresholdNonCritical": 5670,"MaxReadingRange": 0,"MemberId": "fan1_1","MinReadingRange": 0,"Name": "fan1 1","Reading": 7730,"ReadingUnits": "RPM","Status": {
"Health": "OK","State": "Enabled"
},"UpperThresholdCritical": 16911,"UpperThresholdNonCritical": 16142
},{
"@odata.id": "/redfish/v1/Chassis/chassis/Thermal#/Fans/4",
(continues on next page)
Version: latest (2021-11-08) 20
BMC User Guide
(continued from previous page)"@odata.type": "#Thermal.v1_3_0.Fan","LowerThresholdCritical": 7471,"LowerThresholdNonCritical": 8405,"MaxReadingRange": 0,"MemberId": "fan2_0","MinReadingRange": 0,"Name": "fan2 0","Reading": 10676,"ReadingUnits": "RPM","Status": {
"Health": "OK","State": "Enabled"
},"UpperThresholdCritical": 18356,"UpperThresholdNonCritical": 17522
},{
"@odata.id": "/redfish/v1/Chassis/chassis/Thermal#/Fans/5","@odata.type": "#Thermal.v1_3_0.Fan","LowerThresholdCritical": 5040,"LowerThresholdNonCritical": 5670,"MaxReadingRange": 0,"MemberId": "fan2_1","MinReadingRange": 0,"Name": "fan2 1","Reading": 7705,"ReadingUnits": "RPM","Status": {
"Health": "OK","State": "Enabled"
},"UpperThresholdCritical": 16911,"UpperThresholdNonCritical": 16142
},{
"@odata.id": "/redfish/v1/Chassis/chassis/Thermal#/Fans/6","@odata.type": "#Thermal.v1_3_0.Fan","LowerThresholdCritical": 7471,"LowerThresholdNonCritical": 8405,"MaxReadingRange": 0,"MemberId": "fan3_0","MinReadingRange": 0,"Name": "fan3 0","Reading": 11066,"ReadingUnits": "RPM","Status": {
"Health": "OK","State": "Enabled"
},"UpperThresholdCritical": 18356,"UpperThresholdNonCritical": 17522
},{
"@odata.id": "/redfish/v1/Chassis/chassis/Thermal#/Fans/7","@odata.type": "#Thermal.v1_3_0.Fan","LowerThresholdCritical": 5040,"LowerThresholdNonCritical": 5670,"MaxReadingRange": 0,"MemberId": "fan3_1","MinReadingRange": 0,"Name": "fan3 1","Reading": 7577,"ReadingUnits": "RPM","Status": {
"Health": "OK","State": "Enabled"
},"UpperThresholdCritical": 16911,"UpperThresholdNonCritical": 16142
},
(continues on next page)
Version: latest (2021-11-08) 21
BMC User Guide
(continued from previous page){
"@odata.id": "/redfish/v1/Chassis/chassis/Thermal#/Fans/8","@odata.type": "#Thermal.v1_3_0.Fan","LowerThresholdCritical": 7471,"LowerThresholdNonCritical": 8405,"MaxReadingRange": 0,"MemberId": "fan4_0","MinReadingRange": 0,"Name": "fan4 0","Reading": 10664,"ReadingUnits": "RPM","Status": {
"Health": "OK","State": "Enabled"
},"UpperThresholdCritical": 18356,"UpperThresholdNonCritical": 17522
},{
"@odata.id": "/redfish/v1/Chassis/chassis/Thermal#/Fans/9","@odata.type": "#Thermal.v1_3_0.Fan","LowerThresholdCritical": 5040,"LowerThresholdNonCritical": 5670,"MaxReadingRange": 0,"MemberId": "fan4_1","MinReadingRange": 0,"Name": "fan4 1","Reading": 7668,"ReadingUnits": "RPM","Status": {
"Health": "OK","State": "Enabled"
},"UpperThresholdCritical": 16911,"UpperThresholdNonCritical": 16142
}],"Id": "Thermal","Name": "Thermal","Redundancy": [],"Temperatures": [
{"@odata.id": "/redfish/v1/Chassis/chassis/Thermal#/Temperatures/0","@odata.type": "#Thermal.v1_3_0.Temperature","LowerThresholdCritical": 0.0,"LowerThresholdNonCritical": 5.0,"MaxReadingRangeTemp": 0.0,"MemberId": "exhaust","MinReadingRangeTemp": 0.0,"Name": "exhaust","ReadingCelsius": 33.5,"Status": {
"Health": "Warning","State": "Enabled"
},"UpperThresholdCritical": 37.0,"UpperThresholdNonCritical": 32.0
},{
"@odata.id": "/redfish/v1/Chassis/chassis/Thermal#/Temperatures/1","@odata.type": "#Thermal.v1_3_0.Temperature","LowerThresholdCritical": 0.0,"LowerThresholdNonCritical": 5.0,"MaxReadingRangeTemp": 0.0,"MemberId": "inlet","MinReadingRangeTemp": 0.0,"Name": "inlet","ReadingCelsius": 29.0,"Status": {
"Health": "OK",
(continues on next page)
Version: latest (2021-11-08) 22
BMC User Guide
(continued from previous page)"State": "Enabled"
},"UpperThresholdCritical": 35.0,"UpperThresholdNonCritical": 30.0
}]
Version: latest (2021-11-08) 23
BMC User Guide
Fig. 4.2: Thermal sensor outputVersion: latest (2021-11-08) 24
BMC User Guide
4.6 List of monitored sensors
Table 4.5 lists all the sensors monitored by the BMC. Table 4.6 lists their types and thresholds for logging events.Some sensors have an associated event or action when the sensor crosses a threshold. These are listed in Table4.7.Note: Sensor event logs are not automatically cleared once the sensor is in the valid range again after a thresholdviolation. You must manually clear these event logs using the GUI, REST or ipmitool, or by deleting the log inRedfish.
Table 4.5: Sensors associated with each inventory item
Inventory items Sensor name Comments
Fans fan0_0 Fan module 0fan0_1 Fan module 0fan1_0 Fan module 1fan1_1 Fan module 1fan2_0 Fan module 2fan2_1 Fan module 2fan3_0 Fan module 3fan3_1 Fan module 3fan4_0 Fan module 4fan4_1 Fan module 4
Gateway gw_core_tempgw1_0v85_voltgw1_0v9_voltgw1_1v8_voltgw1_3v3_voltgw1_6v8_voltvrm_gw1_ic10_6v8_currvrm_gw1_ic10_6v8_tempvrm_gw1_ic10_6v8_vinvrm_gw1_ic10_6v8_voutvrm_gw1_ic11_3v3_currvrm_gw1_ic11_3v3_tempvrm_gw1_ic12_2v5_currvrm_gw1_ic12_2v5_tempvrm_gw1_ic12_2v5_vinvrm_gw1_ic12_2v5_voutvrm_gw1_ic13_1v8_curr
continues on next page
Version: latest (2021-11-08) 25
BMC User Guide
Table 4.5 – continued from previous pageInventory items Sensor name Comments
vrm_gw1_ic13_1v8_tempvrm_gw1_ic13_1v8_vinvrm_gw1_ic13_1v8_vout
IPUs IPU0_BGA_area_bottom IPU 0 BGA bottom sideIPU0_CoreV_bottom IPU 0 phase tempIPU0_I2C48_Inlet_top IPU 0 air-inlet top sideIPU0_I2C4B_Outlet_top IPU 0 air-outlet top sideIPU0_Inlet_top IPU 0 air-inlet top sideIPU0_Outlet_0_top IPU 0 air-outlet top sideIPU0_PVT_East IPU 0 on-chip east edgeIPU0_PVT_West IPU 0 on-chip west edgeIPU0_THERM_2_BGA_area_bot IPU 0 BGA bottom sideIPU0_VDDIO IPU 0IPU0_VDDPLL IPU 0IPU01_VDD_CLK_BUF IPU 0 & 1IPU01_VDDDRV IPU 0 & 1IPU01_VDDUSB IPU 0 & 1IPU1_BGA_area_bottom IPU 1 BGA bottom sideIPU1_CoreV_bottom IPU 1 phase tempIPU1_I2C4A_Inlet_top IPU 1 air-inlet top sideIPU1_Outlet_0_bottom IPU 1 air-outlet top sideIPU1_PVT_East IPU 1 on-chip east edgeIPU1_PVT_West IPU 1 on-chip west edgeIPU1_VDDIO IPU 1IPU1_VDDPLL IPU 1IPU2_BGA_area_bottom IPU 2 BGA bottom sideIPU2_CoreV_bottom IPU 2 phase tempIPU2_I2C48_Inlet_top IPU 2 air-inlet top sideIPU2_I2C4B_Outlet_top IPU 2 air-outlet top sideIPU2_Inlet_top IPU 2 air-inlet top sideIPU2_Outlet_0_top IPU 2 air-outlet top sideIPU2_PVT_East IPU 2 on-chip east edgeIPU2_PVT_West IPU 2 on-chip west edgeIPU2_THERM_2_BGA_area_bot IPU 2 BGA bottom sideIPU2_VDDIO IPU 2IPU2_VDDPLL IPU 2
continues on next pageVersion: latest (2021-11-08) 26
BMC User Guide
Table 4.5 – continued from previous pageInventory items Sensor name Comments
IPU23_VDD_CLK_BUF IPU 2 & 3IPU23_VDDDRV IPU 2 & 3IPU23_VDDUSB IPU 2 & 3IPU3_BGA_area_bottom IPU 3 BGA bottom sideIPU3_CoreV_bottom IPU 3 phase tempIPU3_I2C4A_Inlet_top IPU 3 air-inlet top sideIPU3_Outlet_0_bottom IPU 3 air-outlet top sideIPU3_PVT_East IPU 3 on-chip east edgeIPU3_PVT_West IPU 3 on-chip west edgeIPU3_VDDIO IPU 3IPU3_VDDPLL IPU 3vrm_ipu01_ic16_3v3_curr IPU 0 & 1vrm_ipu01_ic16_3v3_temp IPU 0 & 1vrm_ipu01_ic16_3v3_vin IPU 0 & 1vrm_ipu01_ic16_3v3_vout IPU 0 & 1vrm_ipu23_ic16_3v3_curr IPU 2 & 3vrm_ipu23_ic16_3v3_temp IPU 0 & 1vrm_ipu23_ic16_3v3_vin IPU 2 & 3vrm_ipu23_ic16_3v3_vout IPU 2 & 3
Mainboard aux_1v2_voltconn_1v8_voltconn_2v5_voltconn_3v3_voltexhaust_temp (mainboard)inlet_temp (mainboard)main_12v0_voltstbe_1v2_voltstby_1v0_voltstby_1v15_voltstby_1v8_voltstby_2v5_voltstby_3v3_voltvrm_cn0_ic5_3v3_currvrm_cn0_ic5_3v3_tempvrm_cn0_ic5_3v3_vin
continues on next page
Version: latest (2021-11-08) 27
BMC User Guide
Table 4.5 – continued from previous pageInventory items Sensor name Comments
vrm_cn0_ic5_3v3_voutMemory pl_dimm_b_temp PL DIMM B
pl_dimm_c_temp PL DIMM Cps_dimm_a_temp PS DIMM A
Power supply ps0_inlet_temp Power supply 0ps0_input_Power Power supply 0ps0_input_volt Power supply 0ps0_outlet_temp Power supply 0ps0_output_Power Power supply 0ps0_output_volt Power supply 0ps1_hotspot_temp Power supply 1ps1_inlet_temp Power supply 1ps1_input_Power Power supply 1ps1_input_volt Power supply 1ps1_outlet_temp Power supply 1ps1_output_Power Power supply 1ps1_output_volt Power supply 1total_Power Total power for power supply 0 & 1
Note: Fan module 0 is the furthest left, when looking at the rear of the IPU-M2000. Fan module 4 is the furthestright.Power supply 0 is on the left, when looking at the rear. Power supply 1 is on the right.
Table 4.6: Sensors monitored by BMC
Sensor name Type Units Warn low Warn high Critical low Critical high
fan0_0 Tacho RPM 7789 29400 6924 30800fan0_1 Tacho RPM 6597 26400 5864 27600fan1_0 Tacho RPM 7789 29400 6924 30800fan1_1 Tacho RPM 6597 26400 5864 27600fan2_0 Tacho RPM 7789 29400 6924 30800fan2_1 Tacho RPM 6597 26400 5864 27600fan3_0 Tacho RPM 7789 29400 6924 30800fan3_1 Tacho RPM 6597 26400 5864 27600fan4_0 Tacho RPM 7789 29400 6924 30800fan4_1 Tacho RPM 6597 26400 5864 27600
continues on next page
Version: latest (2021-11-08) 28
BMC User Guide
Table 4.6 – continued from previous pageSensor name Type Units Warn low Warn high Critical low Critical high
ps0_input_power Power 10-6 W 0 1300000000 0 1400000000ps0_output_power Power 10-6 W 0 1300000000 0 1400000000ps1_input_power Power 10-6 W 0 1300000000 0 1400000000ps1_output_power Power 10-6 W 0 1300000000 0 1400000000total_power Power 10-6 W 0 2600000000 0 2800000000ps0_inlet_temp Temp 10-3 ºC 0 40000 0 60000ps0_outlet_temp Temp 10-3 ºC 0 55000 0 75000ps1_hotspot_temp Temp 10-3 ºC 0 80000 0 90000ps1_inlet_temp Temp 10-3 ºC 0 40000 0 60000ps1_outlet_temp Temp 10-3 ºC 0 55000 0 75000ps0_input_volt Voltage 10-3 V 100000 250000 90000 264000ps0_output_volt Voltage 10-3 V 11500 12500 11000 13000ps1_input_volt Voltage 10-3 V 100000 250000 90000 264000ps1_output_volt Voltage 10-3 V 11500 12500 11000 13000aux_1v2_volt Voltage 10-3 V 1158 1242 1140 1260conn_1v8_volt Voltage 10-3 V 1737 1863 1710 1890conn_2v5_volt Voltage 10-3 V 1737 2375 1710 2412conn_3v3_volt Voltage 10-3 V 3185 3415 3135 3465gw1_0v85_volt Voltage 10-3 V 820 879 807 892gw1_0v9_volt Voltage 10-3 V 868 931 855 945gw1_1v8_volt Voltage 10-3 V 1737 1863 1710 1890gw1_3v3_volt Voltage 10-3 V 3185 3415 3135 3465gw1_6v8_volt Voltage 10-3 V 6596 7004 6460 7140main_12v0_volt Voltage 10-3 V 11500 12500 11000 13000stbe_1v2_volt Voltage 10-3 V 1158 1242 1140 1260stby_1v0_volt Voltage 10-3 V 965 1035 950 1050stby_1v15_volt Voltage 10-3 V 1109 1190 1097 1207stby_1v8_volt Voltage 10-3 V 1737 1863 1710 1890stby_2v5_volt Voltage 10-3 V 2412 2587 2375 2625stby_3v3_volt Voltage 10-3 V 3185 3415 3135 3465exhaust_temp (mainboard) Temp 10-3 ºC 5000 70000 0 75000inlet_temp (mainboard) Temp 10-3 ºC 5000 40000 0 45000gw_core_temp Temp 10-3 ºC 5000 100000 0 120000pl_dimm_b_temp Temp 10-3 ºC 5000 85000 0 90000pl_dimm_c_temp Temp 10-3 ºC 5000 85000 0 90000
continues on next pageVersion: latest (2021-11-08) 29
BMC User Guide
Table 4.6 – continued from previous pageSensor name Type Units Warn low Warn high Critical low Critical high
ps_dimm_a_temp Temp 10-3 ºC 5000 85000 0 90000IPU0_BGA_area_bottom Temp 10-3 ºC 10000 65000 5000 70000IPU0_CoreV_bottom Temp 10-3 ºC 10000 90000 5000 95000IPU0_I2C48_Inlet_top Temp 10-3 ºC 10000 65000 5000 70000IPU0_I2C4B_Outlet_top Temp 10-3 ºC 10000 65000 5000 70000IPU0_Inlet_top Temp 10-3 ºC 10000 65000 5000 70000IPU0_Outlet_0_top Temp 10-3 ºC 10000 65000 5000 70000IPU0_PVT_East Temp 10-3 ºC 10000 77000 5000 85000IPU0_PVT_West Temp 10-3 ºC 10000 77000 5000 85000IPU0_THERM_2_BGA_area_bot Temp 10-3 ºC 10000 65000 5000 70000IPU1_BGA_area_bottom Temp 10-3 ºC 10000 65000 5000 70000IPU1_CoreV_bottom Temp 10-3 ºC 10000 90000 5000 95000IPU1_I2C4A_Inlet_top Temp 10-3 ºC 10000 65000 5000 70000IPU1_Outlet_0_bottom Temp 10-3 ºC 10000 65000 5000 70000IPU1_PVT_East Temp 10-3 ºC 10000 77000 5000 85000IPU1_PVT_West Temp 10-3 ºC 10000 77000 5000 85000IPU2_BGA_area_bottom Temp 10-3 ºC 10000 65000 5000 70000IPU2_CoreV_bottom Temp 10-3 ºC 10000 90000 5000 95000IPU2_I2C48_Inlet_top Temp 10-3 ºC 10000 65000 5000 70000IPU2_I2C4B_Outlet_top Temp 10-3 ºC 10000 65000 5000 70000IPU2_Inlet_top Temp 10-3 ºC 10000 65000 5000 70000IPU2_Outlet_0_top Temp 10-3 ºC 10000 65000 5000 70000IPU2_PVT_East Temp 10-3 ºC 10000 77000 5000 85000IPU2_PVT_West Temp 10-3 ºC 10000 77000 5000 85000IPU2_THERM_2_BGA_area_bot Temp 10-3 ºC 10000 65000 5000 70000IPU3_BGA_area_bottom Temp 10-3 ºC 10000 65000 5000 70000IPU3_CoreV_bottom Temp 10-3 ºC 10000 90000 5000 95000IPU3_I2C4A_Inlet_top Temp 10-3 ºC 10000 65000 5000 70000IPU3_Outlet_0_bottom Temp 10-3 ºC 10000 65000 5000 70000IPU3_PVT_East Temp 10-3 ºC 10000 77000 5000 85000IPU3_PVT_West Temp 10-3 ºC 10000 77000 5000 85000IPU01_VDDDRV Voltage 10-3 V 4850 5150 4750 5250IPU01_VDDUSB Voltage 10-3 V 3007 3193 2945 3255IPU01_VDD_CLK_BUF Voltage 10-3 V 3201 3399 3135 3465IPU0_VDDIO Voltage 10-3 V 1737 1863 1710 1890
continues on next pageVersion: latest (2021-11-08) 30
BMC User Guide
Table 4.6 – continued from previous pageSensor name Type Units Warn low Warn high Critical low Critical high
IPU0_VDDPLL Voltage 10-3 V 1737 1863 1710 1890IPU1_VDDIO Voltage 10-3 V 1737 1863 1710 1890IPU1_VDDPLL Voltage 10-3 V 1737 1863 1710 1890IPU23_VDDDRV Voltage 10-3 V 4850 5150 4750 5250IPU23_VDDUSB Voltage 10-3 V 3201 3399 3135 3465IPU23_VDD_CLK_BUF Voltage 10-3 V 3201 3399 3135 3465IPU2_VDDIO Voltage 10-3 V 1737 1863 1710 1890IPU2_VDDPLL Voltage 10-3 V 1737 1863 1710 1890IPU3_VDDIO Voltage 10-3 V 1737 1863 1710 1890IPU3_VDDPLL Voltage 10-3 V 1737 1863 1710 1890vrm_cn0_ic5_3v3_curr Current 10-3 A 0 15000 0 15000vrm_gw1_ic10_6v8_curr Current 10-3 A 0 6000 0 6000vrm_gw1_ic11_3v3_curr Current 10-3 A 0 6000 0 6000vrm_gw1_ic12_2v5_curr Current 10-3 A 0 6000 0 6000vrm_gw1_ic13_1v8_curr Current 10-3 A 0 6000 0 6000vrm_ipu01_ic16_3v3_curr Current 10-3 A 0 6000 0 6000vrm_ipu23_ic16_3v3_curr Current 10-3 A 0 6000 0 6000vrm_cn0_ic5_3v3_temp Temp 10-3 ºC 0 135000 0 130000vrm_gw1_ic10_6v8_temp Temp 10-3 ºC 0 135000 0 130000vrm_gw1_ic11_3v3_temp Temp 10-3 ºC 0 135000 0 130000vrm_gw1_ic12_2v5_temp Temp 10-3 ºC 0 135000 0 130000vrm_gw1_ic13_1v8_temp Temp 10-3 ºC 0 135000 0 130000vrm_ipu01_ic16_3v3_temp Temp 10-3 ºC 0 135000 0 130000vrm_ipu23_ic16_3v3_temp Temp 10-3 ºC 0 135000 0 130000vrm_cn0_ic5_3v3_vin Voltage 10-3 V 11500 12500 11000 13000vrm_cn0_ic5_3v3_vout Voltage 10-3 V 3185 3415 3135 3465vrm_gw1_ic10_6v8_vin Voltage 10-3 V 11500 12500 11000 13000vrm_gw1_ic10_6v8_vout Voltage 10-3 V 6596 7004 6460 7140vrm_gw1_ic12_2v5_vin Voltage 10-3 V 11500 12500 11000 13000vrm_gw1_ic12_2v5_vout Voltage 10-3 V 2412 2625 2375 2587vrm_gw1_ic13_1v8_vin Voltage 10-3 V 11500 12500 11000 13000vrm_gw1_ic13_1v8_vout Voltage 10-3 V 1737 1863 1710 1890vrm_ipu01_ic16_3v3_vin Voltage 10-3 V 11500 12500 11000 13000vrm_ipu01_ic16_3v3_vout Voltage 10-3 V 3185 3415 3135 3465vrm_ipu23_ic16_3v3_vin Voltage 10-3 V 11500 12500 11000 13000
continues on next pageVersion: latest (2021-11-08) 31
BMC User Guide
Table 4.6 – continued from previous pageSensor name Type Units Warn low Warn high Critical low Critical high
vrm_ipu23_ic16_3v3_vout Voltage 10-3 V 3185 3415 3135 3465
Table 4.7: Event log/actions for sensors monitored by BMC
Sensor name Event log or action
fan0_0 Non-functional event log. Shutdown on more than 3 fan failuresfan0_1 Non-functional event log. Shutdown on more than 3 fan failuresfan1_0 Non-functional event log. Shutdown on more than 3 fan failuresfan1_1 Non-functional event log. Shutdown on more than 3 fan failuresfan2_0 Non-functional event log. Shutdown on more than 3 fan failuresfan2_1 Non-functional event log. Shutdown on more than 3 fan failuresfan3_0 Non-functional event log. Shutdown on more than 3 fan failuresfan3_1 Non-functional event log. Shutdown on more than 3 fan failuresfan4_0 Non-functional event log. Shutdown on more than 3 fan failuresfan4_1 Non-functional event log. Shutdown on more than 3 fan failuresaux_1v2_volt Event log on crossing critical low or high thresholdsconn_1v8_volt Event log on crossing critical low or high thresholdsconn_2v5_volt Event log on crossing critical low or high thresholdsconn_3v3_volt Event log on crossing critical low or high thresholdsgw1_0v85_volt Event log on crossing critical low or high thresholdsgw1_0v9_volt Event log on crossing critical low or high thresholdsgw1_1v8_volt Event log on crossing critical low or high thresholdsgw1_3v3_volt Event log on crossing critical low or high thresholdsgw1_6v8_volt Event log on crossing critical low or high thresholdsmain_12v0_volt Event log on crossing critical low or high thresholdsstbe_1v2_volt Event log on crossing critical low or high thresholdsstby_1v0_volt Event log on crossing critical low or high thresholdsstby_1v15_volt Event log on crossing critical low or high thresholdsstby_1v8_volt Event log on crossing critical low or high thresholdsstby_2v5_volt Event log on crossing critical low or high thresholdsstby_3v3_volt Event log on crossing critical low or high thresholdsexhaust_temp Event log and shutdown on crossing critical high thresholdinlet_temp Event log and shutdown on crossing critical high thresholdgw_core_temp Event log crossing critical high thresholdpl_dimm_b_temp Event log crossing critical high threshold
continues on next page
Version: latest (2021-11-08) 32
BMC User Guide
Table 4.7 – continued from previous pageSensor name Event log or action
pl_dimm_c_temp Event log crossing critical high thresholdps_dimm_a_temp Event log crossing critical high thresholdIPU0_PVT_East Event log crossing warning & critical high thresholdsIPU0_PVT_West Event log crossing warning & critical high thresholdsIPU1_PVT_East Event log crossing warning & critical high thresholdsIPU1_PVT_West Event log crossing warning & critical high thresholdsIPU2_PVT_East Event log crossing warning & critical high thresholdsIPU2_PVT_West Event log crossing warning & critical high thresholdsIPU3_PVT_East Event log crossing warning & critical high thresholdsIPU3_PVT_West Event log crossing warning & critical high thresholds
Version: latest (2021-11-08) 33
CHAPTER
FIVE
INVENTORY MONITORING
This section describes how to monitor the hardware inventory using the CLI, GUI, REST, IPMI and Redfish inter-faces.
5.1 BMC command line
You can use the ipum-utils command for inventory monitoring. Table 5.1 describes the parameters to the com-mand.Table 5.1: Inventory monitoring options
Parameter Description
inventory_list Display the hardware inventory present on the IPU-M2000 with the meta-data fields NAME, PRETTY_NAME, PRESENT, FUNCTIONAL, MANUFACTURER,MODEL, SERIALNUMBER and PARTNUMBER.Example output from the command is shown below:$ ipum-utils inventory_listNAME PRETTY_NAME PRESENT FUNCTIONAL MANUFACTURER MODEL ␣→˓ SERIALNUMBER PARTNUMBERsystem IPU_Machine_P2_1 true true Graphcore 23 ␣→˓ 820182-0002 300-0024 Rev. Achassis IPU_Machine_P2_1 true true Graphcore N/A ␣→˓ 820182-0002 300-0024 Rev. Amotherboard IPU_Machine_P2_1 true true Graphcore p2.1 ␣→˓ 820182-0002 300-0024 Rev. Abmc BMC true true ASPEED AST2520 ␣→˓ N/A N/AcPortL1_ipu3NM0B ClusterPortL1 true N/A LUXSHARE-ICT␣→˓OSFP::CopperUnEQ::NonSep::CL=0.3,S VUSQ00107D0087 LVUSQ001-SD-RcPortL2_ipu3NM0C ClusterPortL2 false N/A N/A N/A ␣→˓ N/A N/AcPortL3_ipu4NM0B ClusterPortL3 true N/A LUXSHARE-ICT␣→˓OSFP::CopperUnEQ::NonSep::CL=3.0,S VUSQ00398H0003 LVUSQ004-SD-RcPortL4_ipu4NM0C ClusterPortL4 true N/A LUXSHARE-ICT␣→˓OSFP::CopperUnEQ::NonSep::CL=2.0,S VUSQ00398L0002 LVUSQ003-SD-RcPortU1_ipu1NM0B ClusterPortU1 true N/A Amphenol ␣→˓OSFP::CopperUnEQ::NonSep::CL=1.0,S APF20240011FK7 NDVVYF-0001cPortU2_ipu1NM0C ClusterPortU2 true N/A Amphenol ␣→˓OSFP::CopperUnEQ::NonSep::CL=2.0,S APF19250020CEN NDVVYF-0002cPortU3_ipu2NM0B ClusterPortU3 true N/A LUXSHARE-ICT␣→˓OSFP::CopperUnEQ::NonSep::CL=1.0,S VUSQ00298L0002 LVUSQ002-SD-RcPortU4_ipu2NM0C ClusterPortU4 true N/A Amphenol ␣→˓OSFP::CopperUnEQ::NonSep::CL=0.3,S N/A NDVVJR-G405cpu0 ZynqUltraS+ true true Xilinx XCZU19EG␣→˓ N/A N/Acore0 Cortex-A53 true true ARM 4 ␣→˓ N/A N/A (continues on next page)
Version: latest (2021-11-08) 34
BMC User Guide
(continued from previous page)core1 Cortex-A53 true true ARM 4 ␣→˓ N/A N/Acore2 Cortex-A53 true true ARM 4 ␣→˓ N/A N/Acore3 Cortex-A53 true true ARM 4 ␣→˓ N/A N/Adimm0 PL_DIMM_B true true Samsung RDIMM-→˓DDR4 SDRAM-65536 MB 0x03FA48CB M393A8G40AB2-CVFdimm1 PS_DIMM_A true true Samsung RDIMM-→˓DDR4 SDRAM-16384 MB 0x14735D68 M393A2K43CB2-CTDdimm2 PL_DIMM_C true true Samsung RDIMM-→˓DDR4 SDRAM-65536 MB 0x03FA4A3C M393A8G40AB2-CVFfan0 fan0 true true Graphcore N/A ␣→˓ N/A N/Afan1 fan1 true true Graphcore N/A ␣→˓ N/A N/Afan2 fan2 true true Graphcore N/A ␣→˓ N/A N/Afan3 fan3 true true Graphcore N/A ␣→˓ N/A N/Afan4 fan4 true true Graphcore N/A ␣→˓ N/A N/AgwPort1 GwPortU true false Amphenol QSFP28,→˓SFF-8636::CopperUnEQ::NonSe APF19160077E1F NDAAFF-0007gwPort2 GwPortL true false INNOLIGHT QSFP28,→˓SFF-8636::1310nm-EML::LC::C INKBJU560002 TR-ZC13H-N00ipu0 IPU0 true true Graphcore MK2 ␣→˓ T8N535.19.7.3.T8N53500.26194 N/Aipu1 IPU1 true true Graphcore MK2 ␣→˓ T8N535.21.7.7.T8N53500.33586 N/Aipu2 IPU2 true true Graphcore MK2 ␣→˓ T8N535.19.2.5.T8N53500.26474 N/Aipu3 IPU3 true true Graphcore MK2 ␣→˓ T8N535.11.2.5.T8N53500.35782 N/Amcu0 MCU0 true true Graphcore N/A ␣→˓ 0002.0001.0082018.A N/Amcu1 MCU1 true true Graphcore N/A ␣→˓ 0002.0002.0082018.A N/Anvme0 SAMSUNG MZ1LB960HAJQ-00007 true true SAMSUNG SAMSUNG␣→˓MZ1LB960HAJQ-00007 S435NA0N414401 N/Arnic0 Mellanox Technologies MT28800 Family [ConnectX-5 Ex] true true Mellanox MT4121 ␣→˓ MT1912K01140 MCX516A-CDATrnic1 Mellanox Technologies MT28800 Family [ConnectX-5 Ex] true true Mellanox MT4121 ␣→˓ MT1912K01140 MCX516A-CDATsysfpga System FPGA true true Xilinx Spartan␣→˓7 xc7s N/A xc7s50fgga484-1powersupply0 PowerSupply0 true true Murata-PS D1U54P-W-→˓1500-12-HC4TC Q92038Q1007Y N/Apowersupply1 PowerSupply1 true true Murata-PS D1U54P-W-→˓1500-12-HC4TC Q92038Q1006N N/A
5.2 GUI
Inventory monitoring operations available via the GUI are described in Table 5.2. The GUI page is shown in Fig.5.1.Table 5.2: GUI inventory monitoring operations
Command Description
Hardware status Display status of hardware present in the system.
Version: latest (2021-11-08) 35
BMC User Guide
Fig. 5.1: GUI: Inventory monitoring operations
5.3 REST API
Table 5.3 describes the commands available for inventory monitoring through the REST interface.Table 5.3: Inventory monitoring using REST interface
Command Description
list List inventory of the system. Using openbmctool.py will print following metadatafields: “Is a FRU”, “Present”, “Functional”, “Manufacturer”, “Model”, “SerialNumber”,“Has Logs”List all inventory items:$ curl -k https://<bmcip>/xyz/openbmc_project/inventory/list -u <bmcuser>:<bmcpass>
$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> fru list
List an individual inventory item:$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> fru list <inventory_item_name>
Example output from the command is shown below:$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> fru list <inventory_item_name>Component | PrettyName | Is a FRU | Present | Functional | Manufacturer␣→˓| Model | SerialNumber | Has Logsbmc | BMC | No | Yes | Yes | ASPEED ␣→˓| AST2520 | | NocPortL1_ipu3NM0B | ClusterPortL1 | Yes | Yes | Yes | Amphenol ␣→˓| OSFP Pluggable Tranceiver - 5 meter | | NocPortL2_ipu3NM0C | ClusterPortL2 | Yes | No | Yes | ␣→˓| | | NocPortL3_ipu4NM1C | ClusterPortL3 | Yes | No | Yes | ␣→˓| | | No
(continues on next page)
Version: latest (2021-11-08) 36
BMC User Guide
(continued from previous page)cPortL4_ipu4NM1B | ClusterPortL4 | Yes | Yes | Yes | Amphenol ␣→˓| OSFP Pluggable Tranceiver - 2 meter | APF19240028RHJ | NocPortU1_ipu1NM0B | ClusterPortU1 | Yes | Yes | Yes | Amphenol ␣→˓| OSFP Pluggable Tranceiver - 5 meter | | NocPortU2_ipu1NM0C | ClusterPortU2 | Yes | No | Yes | ␣→˓| | | NocPortU3_ipu2NM1C | ClusterPortU3 | Yes | No | Yes | ␣→˓| | | NocPortU4_ipu2NM1B | ClusterPortU4 | Yes | Yes | Yes | Amphenol ␣→˓| OSFP Pluggable Tranceiver - 2 meter | APF19240028RHJ | Nocpu0 | ZynqUltraS+(XCZU19EG) | No | Yes | Yes | ARM ␣→˓| Cortex-A53 | | Nocpu0-core0 | | No | Yes | Yes | ␣→˓| | | Nocpu0-core1 | | No | Yes | Yes | ␣→˓| | | Nocpu0-core2 | | No | Yes | Yes | ␣→˓| | | Nocpu0-core3 | | No | Yes | Yes | ␣→˓| | | Nodimm0 | PL_DIMM | Yes | Yes | Yes | Samsung ␣→˓| RDIMM-DDR4 SDRAM-65536 MB | 0x368DA4E4 | Nodimm1 | PS_DIMM | Yes | Yes | Yes | Samsung ␣→˓| RDIMM-DDR4 SDRAM-16384 MB | 0x314708B3 | Nofan0 | fan0 | Yes | Yes | Yes | ␣→˓| | | Nofan1 | fan1 | Yes | Yes | Yes | ␣→˓| | | Nofan2 | fan2 | Yes | Yes | Yes | ␣→˓| | | Nofan3 | fan3 | Yes | Yes | Yes | ␣→˓| | | Nofan4 | fan4 | Yes | Yes | Yes | ␣→˓| | | NogwPort1 | GwPortU | Yes | Yes | Yes | Amphenol ␣→˓| OSFP Pluggable Tranceiver - 5 meter | | NogwPort2 | GwPortL | Yes | Yes | Yes | Amphenol ␣→˓| OSFP Pluggable Tranceiver - 5 meter | | Noipu0 | IPU0 | No | Yes | Yes | Graphcore ␣→˓| B0 | PMPS95.2.6.8.BC08.9320 | Noipu1 | IPU1 | No | Yes | Yes | Graphcore ␣→˓| B0 | PMPS95.1.5.7.BC08.8375 | Noipu2 | IPU2 | No | Yes | Yes | Graphcore ␣→˓| B0 | PMPS95.4.5.4.CORR.20742 | Noipu3 | IPU3 | No | Yes | Yes | Graphcore ␣→˓| B0 | PMPS95.24.4.5.BC08.5043 | Nomcu0 | MCU0 | No | Yes | Yes | Graphcore ␣→˓| | 0001.0002.001003.A | Nomcu1 | MCU1 | No | Yes | Yes | Graphcore ␣→˓| | 0003.0004.001003.A | Nonvme0 | Samsung SSD 970 EVO Plus 1TB | Yes | Yes | Yes | Samsung ␣→˓| Samsung SSD 970 EVO Plus 1TB | S4EWNF0M410854E | Nopowersupply0 | PowerSupply0 | Yes | Yes | Yes | Murata-PS ␣→˓| D1U54P-W-1200-12-HC3PC | H21931RM00C6 | Nopowersupply1 | PowerSupply1 | Yes | Yes | No | Murata-PS ␣→˓| D1U54P-W-1200-12-HC3PC | H21931RM00C2 | Nornic0 | Mellanox Technologies MT28800 Family [ConnectX-5 Ex] | Yes | Yes | Yes | Mellanox ␣→˓| MT4121 | MT1901K07893 | Nornic1 | Mellanox Technologies MT28800 Family [ConnectX-5 Ex] | Yes | Yes | Yes | Mellanox ␣→˓| MT4121 | MT1901K07893 | No
Version: latest (2021-11-08) 37
BMC User Guide
5.4 IPMI
Table 5.4 describes the ipmitool inventory-related commands that are available.Table 5.4: inventory operations using IPMI interface
Command Description
fru print Display information about all FRUs$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> fru print
fru print <fruid> Display information about the FRU with the specified ID$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> fru print <fruid>
Example output of the fru print command for the system FRU with ID 80 is shown below:$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> fru print 80Chassis Type : UnspecifiedChassis Part Number : 23Chassis Serial : 219191-0003Board Mfg Date : Mon 13 May 2019 03:13:00 PM CEST CESTBoard Mfg : GraphcoreBoard Product : IPU Machine P1Board Serial : 219191-0003Board Part Number : 400-0015 Rev. C
5.5 Redfish
You can do inventory monitoring through the Redfish interface either by sending curl queries or browsing theURI.You can find the inventory items in the Systems collection and theChassis collection available at https://<bmcip>/redfish/v1/Systems/system and https://<bmcip>/redfish/v1/Chassis.The Chassis collection represents a physical view of the IPU-M2000, containing items such as fans, power suppliesand sensors. The Systems collection represents the logical view of the system as seen from the operating system.All Redfish endpoints can be traversed in a top-down fashion.Table 5.5 describes the commands available.
Table 5.5: Inventory monitoring using Redfish interface
Command Description
Inventory list systems List inventory of hardware that is part of the Systems collection$ curl -k https://<bmcip>/redfish/v1/Systems/system -u <bmcuser>:<bmcpass>
Inventory list chassis List inventory of hardware that is part of the Chassis collection$ curl -k https://<bmcip>/redfish/v1/Chassis/ -u <bmcuser>:<bmcpass>
Below is an example of using Redfish to query information about “powersupply0” and “cpu0”. The results ofbrowsing the same endpoints is shown in Fig. 5.2 and Fig. 5.3.
Version: latest (2021-11-08) 38
BMC User Guide
$ curl -k https://<bmcip>/redfish/v1/Chassis/powersupply0 -u <bmcuser>:<bmcpass>{
"@odata.context": "/redfish/v1/$metadata#Chassis.Chassis","@odata.id": "/redfish/v1/Chassis/powersupply0","@odata.type": "#Chassis.v1_4_0.Chassis","ChassisType": "RackMount","Id": "powersupply0","Links": {
"ComputerSystems": [{
"@odata.id": "/redfish/v1/Systems/system"}
],"ManagedBy": [
{"@odata.id": "/redfish/v1/Managers/bmc"
}]
},"Manufacturer": "Murata-PS","Model": "D1U54P-W-1200-12-HC3PC","Name": "powersupply0","PartNumber": "","Power": {
"@odata.id": "/redfish/v1/Chassis/powersupply0/Power"},"PowerState": "On","SerialNumber": "H21931RM00C6","Status": {
"Health": "OK","HealthRollup": "OK","State": "Enabled"
},"Thermal": {
"@odata.id": "/redfish/v1/Chassis/powersupply0/Thermal"}
}
$ curl -k https://<bmcip>/redfish/v1/Systems/system/Processors/cpu0 -u <bmcuser>:<bmcpass>{
"@odata.context": "/redfish/v1/$metadata#Processor.Processor","@odata.id": "/redfish/v1/Systems/system/Processors/cpu0","@odata.type": "#Processor.v1_3_1.Processor","Id": "cpu0","Name": "Processor","Status": {
"Health": "OK","State": "Enabled"
}}
Version: latest (2021-11-08) 39
BMC User Guide
Fig. 5.2: Power supply monitoring
Version: latest (2021-11-08) 40
BMC User Guide
Fig. 5.3: CPU monitoring
Version: latest (2021-11-08) 41
CHAPTER
SIX
EVENTS AND LOGGING
This section describes how tomonitor and configure logging using the CLI, GUI, REST, IPMI and Redfish interfaces.
6.1 BMC command line
The standard Linux journal is available with the journalctl command on the BMC.
6.2 GUI
The logging operations available via the GUI are described in Table 6.1. The GUI page for viewing event logs isshown in Fig. 6.1.Table 6.1: GUI logging operations
Command Description
Event log Display event logs.
Version: latest (2021-11-08) 42
BMC User Guide
Fig. 6.1: GUI event logging operations
6.3 REST API
You can perform logging operations through the REST API either by sending curl queries to the URI or by usingthe Graphcore openbmctool.py utility. Table 6.2 describes the commands available.Table 6.2: Logging operations using the REST interface
Version: latest (2021-11-08) 43
BMC User Guide
Command Description
list List log entries (all types), log managers and log configurations available on thesystem.List all logs:$ curl -k https://<bmcip>/xyz/openbmc_project/logging/list -u <bmcuser>:<bmcpass>
enumerate Show detailed information about log entries (all types), log managers and log con-figurations available on the system.Enumerate logs:$ curl -k https://<bmcip>/xyz/openbmc_project/logging/enumerate -u <bmcuser>:<bmcpass>
resolve Clear a SEL$ curl -k -H "Content-Type: application/json" -d '{"data":true}' -X PUT https://<bmcip>/xyz/openbmc_project/logging/→˓entry/<eventId>/attr/Resolved -u <bmcuser>:<bmcpass>
Configuration Configure syslog logging on the BMC.Configure syslog server address and port:$ curl -k -H "Content-Type: application/json" -X PUT -d '{"data":<port>}' https://<bmcuser>:<bmcpass>@<bmcip>/xyz/→˓openbmc_project/logging/config/remote/attr/Port
$ curl -k -H "Content-Type: application/json" -X PUT -d '{"data":"<address>"}' https://<bmcuser>:<bmcpass>@<bmcip>/xyz/→˓openbmc_project/logging/config/remote/attr/Address
$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> logging remote_logging_config -a ADDRESS -p PORT
View syslog configuration:$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> logging remote_logging view
Disable syslog:$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> logging remote_logging disable
Example of listing log entries, log managers and logging configuration:$ curl -k https://<bmcip>/xyz/openbmc_project/logging/list -u <bmcuser>:<bmcpass>{
"data": ["/xyz/openbmc_project/logging/config","/xyz/openbmc_project/logging/config/remote","/xyz/openbmc_project/logging/entry","/xyz/openbmc_project/logging/entry/15","/xyz/openbmc_project/logging/entry/16","/xyz/openbmc_project/logging/entry/17","/xyz/openbmc_project/logging/entry/18","/xyz/openbmc_project/logging/entry/19","/xyz/openbmc_project/logging/entry/20","/xyz/openbmc_project/logging/entry/21","/xyz/openbmc_project/logging/entry/21/callout","/xyz/openbmc_project/logging/internal","/xyz/openbmc_project/logging/internal/manager","/xyz/openbmc_project/logging/rest_api_logs"
],"message": "200 OK","status": "ok"
}
Version: latest (2021-11-08) 44
BMC User Guide
6.4 IPMI
You can read all the events for the IPU-M2000 using the IPMI commands shown in Table 6.3.Table 6.3: SEL operations using IPMI interface
Command Description
SEL clear Clear all event logsipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> sel clear
SEL list Display list of eventsipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> sel list
SEL elist Display list of events with extended informationipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> sel elist
Some examples of SEL entries for sensors going over their threshold, or errors with inventory items (such as notpresent or not functional) are shown below.• When the inlet sensor goes above 45°C or the exhaust temperature sensor goes above 75°C, two genericsystem hardware failure events are logged as shown below.
$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> sel elistXX | 05/11/2020 | 08:06:21 AM CEST | System Event #0x90 | Undetermined system hardware failure | AssertedXX | 05/11/2020 | 08:06:24 AM CEST | System Event #0x90 | Undetermined system hardware failure | Asserted
Note: Event logging for sensors is not limited to inlet and exhaust sensors (it is available for all sensors).However, only these two sensors will cause a system shutdown.All sensor related events are logged as generic hardware failures. You will need to cross-check the SDR tofind the specific sensor fault.In addition, if you have configured an SNMP manager (see SNMP trap) for receiving SNMP event traps, youcan see the following traps associated with the SEL entries. You can use these to identify the faulty sensor(in this case, the inlet sensor going over 45°C).2020-05-11 08:06:24 <bmc_fqdomain> [UDP: [<bmcip>]:<port>->[<snmpmgrip>]:<dport>]:iso.3.6.1.6.3.1.1.4.1.0 = OID: iso.3.6.1.4.1.49871.1.0.0.1 iso.3.6.1.4.1.49871.1.0.1.1 = Gauge32: 47 iso.3.6.→˓1.4.1.49871.1.0.1.2 = Opaque: UInt64: 168713071370436978 iso.3.6.1.4.1.49871.1.0.1.3 = INTEGER: 3 iso.3.6.1.4.→˓1.49871.1.0.1.4 = STRING: "xyz.openbmc_project.Sensor.Threshold.Error.CriticalHigh - SENSOR_DATA=|/xyz/openbmc_→˓project/sensors/temperature/inlet:Value=45000|"
2020-05-11 08:06:24 <bmc_fqdomain> [UDP: [<bmcip>]:60408->[<snmpmgrip>]:<dport>]:iso.3.6.1.6.3.1.1.4.1.0 = OID: iso.3.6.1.4.1.49871.1.0.0.1 iso.3.6.1.4.1.49871.1.0.1.1 = Gauge32: 48 iso.3.6.→˓1.4.1.49871.1.0.1.2 = Opaque: UInt64: 168728099461005682 iso.3.6.1.4.1.49871.1.0.1.3 = INTEGER: 3 iso.3.6.1.4.→˓1.49871.1.0.1.4 = STRING: "xyz.openbmc_project.State.Shutdown.ThermalEvent.Error.Ambient - _PID=265"
• When a power supply failure or removal is detected, you will see the following SEL entry:$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> sel elistXX | 05/11/2020 | 08:39:53 AM CEST | Power Supply #0x0a | Presence detected | Asserted
You need to cross-check with the SDR to identify if this is a failure or absence of the power supply.– In the case of a functional error, you will see the following output:
Version: latest (2021-11-08) 45
BMC User Guide
powersupply1 | 0Ah | ok | 10.2 | Presence Detected, Failure detected
– In the case of a presence error, you will see the following output:powersupply1 | 0Ah | ok | 10.2 |
For this power supply SEL entry, the following trap is received on the SNMP manager.2020-05-12 13:38:14 <bmc_fqdomain> [UDP: [<bmcip>]:<sport>->[<snmpgrip>]:<dport>]:iso.3.6.1.6.3.1.1.4.1.0 = OID: iso.3.6.1.4.1.49871.1.0.0.1 iso.3.6.1.4.1.49871.1.0.1.1 = Gauge32: 52 iso.→˓3.6.1.4.1.49871.1.0.1.2 = Opaque: UInt64: 625323637452308850 iso.3.6.1.4.1.49871.1.0.1.3 = INTEGER: 3 ␣→˓ iso.3.6.1.4.1.49871.1.0.1.4 = STRING: "xyz.openbmc_project.Inventory.Error.Nonfunctional - CALLOUT_INVENTORY_→˓PATH=/xyz/openbmc_project/inventory/system/chassis/powersupply1"
• When an IPU failure is detected, you will see the following SEL entry:$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> sel elistXX | 05/12/2020 | 04:13:22 PM CEST | Processor #0x11 | Disabled | Asserted
You need to cross-check with the SDR to identify if it is a functional or presence error.– In the case of a functional error, you will see the following output:
ipu0 | 11h | ok | 45.1 | Presence detected, Disabled
– In the case of a presence error, you will see the following output:ipu0 | 11h | ok | 45.1 |
Note: RNICs are also defined as processor/IO modules and similar SEL/SDR entries will appear in the caseof an RNIC failure.For the above IPU SEL entry, a trap similar to that shown below will be received by the configured SNMPmanager.2020-05-12 22:53:45 ipum.example.com [UDP: [<bmcip>]:<sport>->[<snmpmgrip>]:<dport>]:iso.3.6.1.6.3.1.1.4.1.0 = OID: iso.3.6.1.4.1.49871.1.0.0.1 iso.3.6.1.4.1.49871.1.0.1.1 = Gauge32: 63 iso.3.→˓6.1.4.1.49871.1.0.1.2 = Opaque: UInt64: 768481056411091314 iso.3.6.1.4.1.49871.1.0.1.3 = INTEGER: 3 ␣→˓iso.3.6.1.4.1.49871.1.0.1.4 = STRING: "xyz.openbmc_project.Inventory.Error.Nonfunctional - CALLOUT_INVENTORY_→˓PATH=/xyz/openbmc_project/inventory/system/chassis/motherboard/ipu0"
• When an NVMe failure is detected, an SEL entry like the following will be logged:XX | 05/13/2020 | 10:18:37 AM CEST | Drive Slot / Bay #0x42 | Drive Fault | Asserted
A cross check with SDR is needed to figure out if it is a functional or presence error.– In the case of a functional error:
nvme0 | 42h | ok | 4.1 | Drive Present, Drive Fault
– In the case of a presence error:nvme0 | 42h | ok | 4.1 |
For the above NVMe SEL entry, a trap like the following is received on the SNMP manager:2020-05-13 10:18:37 ipum.example.com [UDP: [<bmcip>]:<sport>->[snmpmgrip]:<dport>]:iso.3.6.1.6.3.1.1.4.1.0 = OID: iso.3.6.1.4.1.49871.1.0.0.1 iso.3.6.1.4.1.49871.1.0.1.1 = Gauge32:␣→˓71 iso.3.6.1.4.1.49871.1.0.1.2 = Opaque: UInt64: 944969603430220146 iso.3.6.1.4.1.49871.1.→˓0.1.3 = INTEGER: 3 iso.3.6.1.4.1.49871.1.0.1.4 = STRING: "xyz.openbmc_project.Inventory.Error.→˓Nonfunctional - CALLOUT_INVENTORY_PATH=/xyz/openbmc_project/inventory/system/chassis/motherboard/nvme0"
Version: latest (2021-11-08) 46
BMC User Guide
• When an event is de-asserted, a generic system entry with Deasserted state is recorded in the SEL as shownbelow:05/13/2020 | 08:24:21 AM CEST | System Event #0x90 | Undetermined system hardware failure | Deasserted
6.5 Redfish
You can do logging operations through Redfish interface either by sending curl queries or browsing the URI.You can find SEL endpoints in the Systems collection available at https://<bmcip>/redfish/v1/Systems/system/LogServices/.You can find journal endpoints in the Manager collection available at https://<bmcip>/redfish/v1/Managers/bmc/LogServices.
Table 6.4: Logging operations using Redfish interface
Command Description
List SEL List SEL entries.$ curl -k https://<bmcip>/redfish/v1/Systems/system/LogServices/EventLog/Entries -u <bmcuser>:<bmcpass>
Delete logging entries Delete system event entries.$ curl -k https://<bmcip>/redfish/v1/Systems/system/LogServices/EventLog/Actions/LogService.ClearLog -u <bmcuser>:→˓<bmcpass>
List journal logs List systemd journal logs through Redfish.$ curl -k https://<bmcip>/redfish/v1/Managers/bmc/LogServices/Journal/Entries -u <bmcuser>:<bmcpass>
Note: Redfish SELs do not include the inventory item that created the log.Example output from the list SEL command is shown below:$ curl -k https://<bmcip>/redfish/v1/Systems/system/LogServices/EventLog/Entries -u <bmcuser>:<bmcpass>{
"@odata.context": "/redfish/v1/$metadata#LogEntryCollection.LogEntryCollection","@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries","@odata.type": "#LogEntryCollection.LogEntryCollection","Description": "Collection of System Event Log Entries","Members": [
{"@odata.context": "/redfish/v1/$metadata#LogEntry.LogEntry","@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries/15","@odata.type": "#LogEntry.v1_4_0.LogEntry","Created": "2020-05-11T11:45:21+00:00","EntryType": "Event","Id": "15","Message": "xyz.openbmc_project.Inventory.Error.Nonfunctional","Name": "System Event Log Entry","Severity": "Critical"
},{
"@odata.context": "/redfish/v1/$metadata#LogEntry.LogEntry","@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries/16","@odata.type": "#LogEntry.v1_4_0.LogEntry","Created": "2020-05-11T11:45:23+00:00",
(continues on next page)
Version: latest (2021-11-08) 47
BMC User Guide
(continued from previous page)"EntryType": "Event","Id": "16","Message": "xyz.openbmc_project.Inventory.Error.Nonfunctional","Name": "System Event Log Entry","Severity": "Critical"
},],"[email protected]": 2,"Name": "System Event Log Entries"
}
Example output from the command to list journal entries is shown below:$ curl -k https://<bmcip>/redfish/v1/Managers/bmc/LogServices/Journal/Entries -u <bmcuser>:<bmcpass>{
"@odata.context": "/redfish/v1/$metadata#LogEntryCollection.LogEntryCollection","@odata.id": "/redfish/v1/Managers/bmc/LogServices/BmcLog/Entries","@odata.type": "#LogEntryCollection.LogEntryCollection","Description": "Collection of BMC Journal Entries","Members": [
{"@odata.context": "/redfish/v1/$metadata#LogEntry.LogEntry","@odata.id": "/redfish/v1/Managers/bmc/LogServices/Journal/Entries/1589216068566513","@odata.type": "#LogEntry.v1_4_0.LogEntry","Created": "2020-05-11T16:54:28+00:00","EntryType": "Oem","Id": "1589216068566513","Message": "Booting Linux on physical CPU 0x0","Name": "BMC Journal Entry","OemRecordFormat": "BMC Journal Entry","Severity": "OK"
},....
],"[email protected]": 2096,"[email protected]": "/redfish/v1/Managers/bmc/LogServices/Journal/Entries?$skip=1000","Name": "Open BMC Journal Entries"
}
6.6 List of supported events
6.6.1 Sensor crossing threshold events
For the sensors that support event logging, a single “Undetermind system hardware failure” is logged in “Asserted”state.$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sel elist
1a | 06/20/2021 | 07:41:04 | System Event #0x90 | Undetermined system hardware failure | Asserted
For the sensors that support event logging and shutdown action, two consecutive “Undetermined system hard-ware failure” message are logged in Asserted state.$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sel elist1a | 06/20/2021 | 07:41:04 | System Event #0x90 | Undetermined system hardware failure | Asserted1b | 06/20/2021 | 07:41:06 | System Event #0x90 | Undetermined system hardware failure | Asserted
Note: Please see Section 4, Sensor monitoring for the list of monitored sensors and event/actions associatedwith them.Sensor crossing threshold events are not cleared automatically and need to be cleared manually as described inprevious sections. The sel elist command reports as shown below when those events are cleared.
Version: latest (2021-11-08) 48
BMC User Guide
$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sel elist1a | 06/20/2021 | 07:41:04 | System Event #0x90 | Undetermined system hardware failure | Deasserted1b | 06/20/2021 | 07:41:06 | System Event #0x90 | Undetermined system hardware failure | Deasserted
You can use the Redfish, GUI or REST interfaces for a more detailed description of sensor related events, includingthe sensor name and the value of the sensor when the threshold was crossed.$ curl -k https://<bmcip>/redfish/v1/Systems/system/LogServices/EventLog/Entries -u <bmcuser>:<bmcpass>{
"@odata.context": "/redfish/v1/$metadata#LogEntryCollection.LogEntryCollection","@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries","@odata.type": "#LogEntryCollection.LogEntryCollection","Description": "Collection of System Event Log Entries","Members": [
{"@odata.context": "/redfish/v1/$metadata#LogEntry.LogEntry","@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries/26","@odata.type": "#LogEntry.v1_4_0.LogEntry","Created": "2021-06-20T07:41:04+00:00","EntryType": "Event","Id": "26","Message": "xyz.openbmc_project.Sensor.Threshold.Error.CriticalHigh","Name": "System Event Log Entry","Severity": "Critical"
},{
"@odata.context": "/redfish/v1/$metadata#LogEntry.LogEntry","@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries/27","@odata.type": "#LogEntry.v1_4_0.LogEntry","Created": "2021-06-20T07:41:06+00:00","EntryType": "Event","Id": "27","Message": "xyz.openbmc_project.State.Shutdown.ThermalEvent.Error.Ambient","Name": "System Event Log Entry","Severity": "Critical"
}],"[email protected]": 2,"Name": "System Event Log Entries"
}
Note: GUI, REST and Redfish interfaces represent sensor crossing threshold events with“xyz.openbmc_project.Sensor.Threshold.Error.CriticalHigh” or “xyz.openbmc_project.Sensor.Threshold.Error.WarningHigh”events with the sensor name as metadata. If the event is a shutdown event, it gets logged with“xyz.openbmc_project.State.Shutdown.ThermalEvent.Error.Ambient” message in the event logs.
6.6.2 Inventory items presence or functional-state events
Presence and functional state of the following inventory items are tracked.1. PSU0 and PSU12. FAN0 to FAN43. IPU0 to IPU34. RNIC0 and RNIC15. NVMe0
Note: For the inventory items listed under number 3 to 5, the functional state is determined by checking thestate of PCIe link of the endpoint to be up as Gen4x8 links.1. The following are examples of SEL logs when power supply presence or functional state changes.
Version: latest (2021-11-08) 49
BMC User Guide
# Powersupply0 not present$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sel elist
1c | 06/20/2021 | 13:22:58 | Power Supply #0x09 | Presence detected | Asserted$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sdr elist | grep powersupply
powersupply0 | 09h | ok | 10.1 |powersupply1 | 0Ah | ok | 10.2 | Presence detected
# Powersupply1 not present$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sel elist
1d | 06/20/2021 | 13:41:52 | Power Supply #0x0a | Presence detected | Asserted$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sdr elist | grep powersupply
powersupply0 | 09h | ok | 10.1 | Presence detectedpowersupply1 | 0Ah | ok | 10.2 |
# Powersupply0 back to present or functional$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sel elist
1c | 06/20/2021 | 13:22:58 | System Event #0x90 | Undetermined system hardware failure | Deasserted# Powersupply1 back to present$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sel elist
1d | 06/20/2021 | 13:22:58 | System Event #0x90 | Undetermined system hardware failure | Deasserted
# Powersupply0 not functional$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sel elist
20 | 06/20/2021 | 14:40:41 | Power Supply #0x09 | Presence detected | Asserted$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sdr elist | grep powersupply
powersupply0 | 09h | ok | 10.1 | Presence detected, Failure detectedpowersupply1 | 0Ah | ok | 10.2 | Presence detected
# Powersupply1 not functional$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sel elist
21 | 06/20/2021 | 14:40:41 | Power Supply #0x09 | Presence detected | Asserted$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sdr elist | grep powersupply
powersupply0 | 09h | ok | 10.1 | Presence detectedpowersupply1 | 0Ah | ok | 10.2 | Presence detected, Failure detected
2. The following are examples of SEL logs when fan module presence or functional state changes.# Fan module 0 not present$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sel elist
22 | 06/20/2021 | 14:49:41 | Fan #0x3c | State Deasserted | Asserted$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sdr elist | grep fan
fan0 | 3Ch | ok | 29.11 |fan1 | 3Dh | ok | 29.12 | State Deassertedfan2 | 3Eh | ok | 29.13 | State Deassertedfan3 | 3Fh | ok | 29.14 | State Deassertedfan4 | 40h | ok | 29.15 | State Deasserted
# Fan module 0 not functional$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sel elist
22 | 06/20/2021 | 14:49:41 | Fan #0x3c | State Deasserted | Asserted
# Fan module present or functional state back to ok$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sel elist
22 | 06/20/2021 | 14:59:08 | System Event #0x90 | Undetermined system hardware failure | Deasserted
3. The following are examples of SEL logs when the “ipu0” inventory item is not detected as a PCIe endpoint,or their functional state changes.# IPU 0 is not detected as present$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sel elist
23 | 06/20/2021 | 15:06:03 | Processor #0x11 | Disabled | Asserted$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sdr elist | grep ipu
ipu0 | 11h | ok | 45.1 |ipu1 | 12h | ok | 45.2 | Presence detectedipu2 | 13h | ok | 45.3 | Presence detectedipu3 | 14h | ok | 45.4 | Presence detected
# IPU 0 is not detected as functional$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sel elist24 | 06/20/2021 | 15:12:36 | Processor #0x11 | Disabled | Asserted
(continues on next page)
Version: latest (2021-11-08) 50
BMC User Guide
(continued from previous page)$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sdr elist | grep ipu
ipu0 | 11h | ok | 45.1 | Presence detected, Disabledipu1 | 12h | ok | 45.2 | Presence detectedipu2 | 13h | ok | 45.3 | Presence detectedipu3 | 14h | ok | 45.4 | Presence detected
4. The following are examples of SEL logs when the “rnic0” inventory item is not detected as a PCIe endpoint,or its functional state changes.# RNIC 0 is not detected as prenset$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sel elist25 | 06/20/2021 | 16:01:01 | Processor #0x17 | Disabled | Asserted$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sdr elist | grep rnicrnic0 | 17h | ok | 45.7 |rnic1 | 18h | ok | 45.8 | Presence detected
# RNIC 0 is not detected as functional$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sel elist26 | 06/20/2021 | 16:05:13 | Processor #0x17 | Disabled | Asserted$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sdr elist | grep rnicrnic0 | 17h | ok | 45.7 | Presence detected, Disabledrnic1 | 18h | ok | 45.8 | Presence detected
5. The following are examples of SEL logs when the “nvme0” inventory item is not detected as a PCIe endpoint,or its functional state changes.# NVMe drive is detected as not present$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sel elist27 | 06/20/2021 | 16:07:57 | Drive Slot / Bay #0x42 | Drive Fault | Asserted$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sdr elist | grep nvmenvme0 | 42h | ok | 4.1 |
# NVMe drive is detected as not functional$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sel elist28 | 06/20/2021 | 16:10:27 | Drive Slot / Bay #0x42 | Drive Fault | Asserted$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sdr elist | grep nvmenvme0 | 42h | ok | 4.1 | Drive Present, Drive Fault
# When presence-state error or functional-state error is resolved.$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sel elist27 | 06/20/2021 | 16:07:57 | System Event #0x90 | Undetermined system hardware failure | Deasserted$ ipmitool -I lanplus -U <bmcuser> -P <bmcpass> -H <bmcip> sdr elist | grep nvmenvme0 | 42h | ok | 4.1 | Drive Present
Note: GUI, REST and Redfish represent inventory presence or functional-error events with“xyz.openbmc_project.Inventory.Error.NonPresent” or “xyz.openbmc_project.Inventory.Error.Nonfunctional”with the name of the inventory item name that is in a faulty state as the metadata in the event logs.
Version: latest (2021-11-08) 51
CHAPTER
SEVEN
MAINTENANCE MODE AND BIST
This section describes how to conduct maintenance operations using the BMC and host command lines.
7.1 BMC command line
You can use the ipum-diags command for maintenance operations. Table 7.1 describes the available commands.Table 7.1: Maintenance options
Parameter Description
check_i2cs Check status of i2c busescheck_fans Check status of fanscheck_temps Check status of inlet and exhaust temperaturecheck_voltages Check status of voltage sensorscheck_bmc_all Run all BMC related tests, ignoring cablesset_fans_speed Set fan speed - range 100 to 255check_mcu_all A suite of IPU-Link and USB connectivity testsbist Run a complete built-in self testbist-lpbk Run a complete built-in self test with loop-back cables plugged in
7.2 Host command line
You can also do maintenance operations by using the Graphcore openbmctool.py utility. Table 7.2 describes thecommands available.Table 7.2: Maintenance mode operations using openbmctool
Version: latest (2021-11-08) 52
BMC User Guide
Command Description
status Check if BMC is in maintenance mode$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> maintenance mode status
start Start maintenance mode$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> maintenance mode start
stop Stop maintenance mode$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> maintenance mode stop
bist Start BIST$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> maintenance bist
bist-lpbk Start BIST in loop-back mode$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> maintenance bist-lpbk
Note: The BMC must be in maintenance mode for the bist and bist-lpbk commands to be executed.
7.3 GUI
No maintenance operations are available from the GUI.
7.4 REST API
No maintenance operations are available via REST.
7.5 IPMI
No maintenance operations are available via IPMI.
7.6 Redfish
No Redfish commands are available for maintenance operations.
Version: latest (2021-11-08) 53
CHAPTER
EIGHT
FIRMWARE OPERATIONS
This section describes how to conduct firmware operations using the CLI, GUI, REST and Redfish interfaces.The latest version of the firmware is included in the IPU-M2000 software release. You can download this fromthe Graphcore software download portal:
https://graphcore.ai/supportThe version of the firmware is listed in the file manifest.json.You can check the currently installed version of the BMC firmware with the following command, when logged into the BMC via SSH or the serial console.:$ cat /etc/os-release
8.1 GUI
The firmware operations available in the GUI are described in Table 8.1. The firmware GUI page is shown in Fig.8.1.Table 8.1: GUI firmware operations
Command Description
Firmware Manage BMC and server firmware.
Version: latest (2021-11-08) 54
BMC User Guide
Fig. 8.1: GUI: IPU-M2000 firmware operations
Version: latest (2021-11-08) 55
BMC User Guide
8.2 REST API
You can do firmware operations through the REST interface either by sending curl queries to the URI or by usingthe Graphcore openbmctool.py utility. Table 8.2 describes the commands available.Table 8.2: Firmware operations using REST interface
Command Description
functional Show the ID of the current functional firmware$ curl -k https://<bmcip>/xyz/openbmc_project/software/functional -u <bmcuser>:<bmcpass>
$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> firmware list
enumerate Generate a JSON formatted list of firmware IDs and their prop-erties.$ curl -k https://<bmcip>/xyz/openbmc_project/software/enumerate -u <bmcuser>:<bmcpass>
activate Activate the firmware with the specified ID. The activation willtake place after next reboot.$ curl -k -H "Content-Type: application/json" -X PUT https://<bmcip>/xyz/openbmc_project/software/<image_id>/attr/→˓Priority -d '{"data": 0}' u <bmcuser>:<bmcpass>
$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> firmware activate <image_id>
delete Delete firmware with the specified ID from system.$ curl -k -H "Content-Type: application/json" -X POST -d '{"data": []}' https://<bmcip>/xyz/openbmc_project/software/→˓<image_id>/action/Delete -u <bmcuser>:<bmcpass>
$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> firmware delete <image_id>
flash Flash & activate a new firmware image$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> firmware flash bmc -f <image_loc>
8.3 IPMI
Firmware operations are not available via IPMI.
8.4 Redfish
You can do firmware operations through Redfish by either by sending curl queries or browsing the URI. You canfind firmware information and operations in the UpdateService collection available at https://<bmcip>/redfish/v1/UpdateService. All Redfish endpoints can be traversed in a top-down fashion.Table 8.3 describes the commands available.
Table 8.3: Inventory monitoring using Redfish interface
Version: latest (2021-11-08) 56
BMC User Guide
Command Description
Firmware list List firmware available on the system.$ curl -k https://<bmcip>/redfish/v1/UpdateService/FirmwareInventory -u <bmcuser>:<bmcpass>
Firmware enumerate Get detailed information about a firmware image$ curl -k https://<bmcip>/redfish/v1/UpdateService/FirmwareInventory/<fw_image> -u <bmcuser>:<bmcpass>
An example of using Redfish to view detailed information about the firmware image “fd6e887a” is shown below:$ curl -k https://<bmcip>/redfish/v1/UpdateService/FirmwareInventory/fd6e887a -u <bmcuser>:<bmcpass>{"@odata.context": "/redfish/v1/$metadata#SoftwareInventory.SoftwareInventory","@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/fd6e887a","@odata.type": "#SoftwareInventory.v1_1_0.SoftwareInventory","Description": "BMC update","Id": "fd6e887a","[email protected]": 1,"Name": "Software Inventory","RelatedItem": [
{"@odata.id": "/redfish/v1/Managers/bmc"
}],"Status": {
"Health": "OK","HealthRollup": "OK","State": "Enabled"
},"Updateable": false,"Version": "2.7.0-1439-gb1b05fe86"}
Version: latest (2021-11-08) 57
CHAPTER
NINE
USER MANAGEMENT
This section describes how to conduct user management operations using the BMC command line, GUI, RESTand Redfish interfaces. In addition, the BMC supports integrations with an LDAP server.The maximum number of system users is 30. The maximum number of users with IPMI capabilities is 15. Pass-words have to be minimum 8 characters long.Note: The BMC will come with a default user, root.OpenBMC 2.7.0 provides four roles: administrator, operator, user and callback. However, they all have the sameprivileges in this version.
• All roles have access to the web GUI, REST, Redfish and SSH interfaces.• All roles have access to the same operations on GUI, Rest and Redfish.• Only the root user can run BIST, reboot the machine via the command line and use ipum-utils.• Using IPMI, the privilege levels are, in order of capabilities: administrator, operator, user, callback.
Table 9.1: User management summary with capabilities
Tasks
Redfish/REST/Web IPMI Graphcorespe-cific*
Firmwareupgrade
Role
Root All All All AllAdministrator All All None YesOperator All User list. All supported chassis operations. AllDCMI (except config setting). All sensor, SEL,FRU and SDR operations.
None Yes
User All Get chassis status, set POH counter, SEL, SDR,FRU and sensor list. None YesCallback All None None Yes
Note: Graphcore-specific commands include BIST and ipum-utils commands.
Version: latest (2021-11-08) 58
BMC User Guide
9.1 BMC command line
You can manage users with the standard Linux commands useradd, userdel, usermod and passwd via SSH or aserial console.Warning: If you create users with useradd, they will not be known to the OpenBMC dbus backend and,therefore, will not be reflected in the GUI, IPMI, Redfish or REST interfaces. This method therefore does notsupport unified user management, and you should avoided it except for debug purposes.
9.2 GUI
The user management operations available in the GUI are described in Table 9.2. The GUI page is shown in Fig.9.1.Table 9.2: User management operations
Command Description
List users List usersCreate a user Create a user with an OpenBMC role (administrator, user, callback or operator)Delete a user Delete the user from systemEdit a user Edit the user properties
Version: latest (2021-11-08) 59
BMC User Guide
Fig. 9.1: GUI: user management operations
9.3 REST API
You can do user management operations through the REST interface either by sending curl queries to the URI orby using the Graphcore openbmctool.py. Table 9.3 describes the commands available.Table 9.3: Inventory monitoring using REST interface
Command Description
list List users on the BMC$ curl -k https://<bmcip>/xyz/openbmc_project/user/list -u <bmcuser>:<bmcpass>
$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> local_users queryenabled
Version: latest (2021-11-08) 60
BMC User Guide
9.4 IPMI
The user management operations available via IPMI are described in Table 9.4.Table 9.4: User management operations
Command Description
user summary [<channelnumber>] Print a summary, including number of users on the systemuser list [<channel num-ber>] List usersuser set name <user id><username> Create a user with a with a userid and usernameuser set password<user id> [<password><16|20>]
Create a password for user with <user id>If no password is supplied, you will be prompted to supply oneuser enable <user id> Enable user with <user id>user disable <user id> Disable user with <user id>user priv <user id> <priv-ilege level> [<channelnumber>]
Set privilege level for user with <user id>.The privilege levels are:• 0x1 - Callback• 0x2 - User• 0x3 - Operator• 0x4 - Administrator• 0x5 - OEM Proprietary• 0xF - No Access
Note: The maximum number of IPMI users is 15, and the IDs for these users are from 1-15.The maximum username length for an IPMI user is 16 bytes.For example, adding a new administrator user with user ID 5 and username “test_ipmi”.# <Optional> First check existing users, to see available IDs:$ ipmitool -I lanplus -U <existing_user> -P <password> -H <hostip/hostname> user list
# Add a new user:$ ipmitool -I lanplus -U <existing_user> -P <password> -H <hostip/hostname> user set name 5 test_ipmi
# Set password for the newly created user. Note; it is possible to store the password in 16 or 20 bytes:$ ipmitool -I lanplus -U <existing_user> -P <password> -H <hostip/hostname> user set password 5 test_password 16
# Set privilege level to administrator for user:$ ipmitool -I lanplus -U <existing_user> -P <password> -H <hostip/hostname> user priv 5 0x4 0x1
# Enable the newly created user:$ ipmitool -I lanplus -U <existing_user> -P <password> -H <hostip/hostname> user enable 5
# <Optional> Verify that the newly created user exists with expected privileges:$ ipmitool -I lanplus -U <existing_user> -P <password> -H <hostip/hostname> user list
Note: By default, users created via IPMI do not have IPMI access. To enable that, issue the following command:
Version: latest (2021-11-08) 61
BMC User Guide
$ ipmitool -I lanplus -U <existing_user> -P <password> -H <hostip/hostname> channel setaccess <channel> <userid> ipmi=on
Example:$ ipmitool -I lanplus -U <existing_user> -P <password> -H <hostip/hostname> channel setaccess 0x1 5 ipmi=on
Note: You need to specify the privilege level of non-administrator roles with -L, because ipmitool defaults toADMINISTRATOR.Example:$ ipmitool -I lanplus -U <existing_operator> -P <password> -H <hostip/hostname> -L OPERATOR user list
9.5 Redfish
You can perform user management through the Redfish interface either by sending curl queries or browsing theURI.You can find the user management operations in the AccountService collection available at https://<bmcip>/redfish/v1/AccountService. Table 9.5 describes the commands available.
Table 9.5: Inventory monitoring using Redfish interface
Command Description
Users list List users available on the BMC.$ curl -k https://<bmcip>/redfish/v1/AccountService/Accounts -u <bmcuser>:<bmcpass>
Example output from the command is shown below. The results of browsing the same endpoints is shown in Fig.9.2.$ curl -k https://<bmcip>/redfish/v1/AccountService/Account -u <bmcuser>:<bmcpass>{
"@odata.context": "/redfish/v1/$metadata#ManagerAccountCollection.ManagerAccountCollection","@odata.id": "/redfish/v1/AccountService/Accounts","@odata.type": "#ManagerAccountCollection.ManagerAccountCollection","Description": "BMC User Accounts","Members": [
{"@odata.id": "/redfish/v1/AccountService/Accounts/root"
}],"[email protected]": 1,"Name": "Accounts Collection"
}
Version: latest (2021-11-08) 62
BMC User Guide
Fig. 9.2: Redfish user management
9.6 LDAP integration
OpenBMC supports LDAP integration to both OpenLDAP and Active Directory servers.You can set the LDAP configuration by using the busctl commands described in Table 9.6.
Table 9.6: Configure LDAP
Version: latest (2021-11-08) 63
BMC User Guide
Command Description
Enable LDAP Enable LDAP$ busctl set-property xyz.openbmc_project.Ldap.Config /xyz/openbmc_project/user/ldap/<ldaptype> xyz.openbmc_project.→˓Object.Enable Enabled b true
<ldaptype> can have the value “openldap” or “active_directory”Set LDAP server URI Set LDAP server URI.$ busctl set-property xyz.openbmc_project.Ldap.Config /xyz/openbmc_project/user/ldap/<ldaptype> xyz.openbmc_project.→˓User.Ldap.Config LDAPServerURI s "<ldap_server_uri>"
<ldaptype> can have the value “openldap” or “active_directory”Set LDAP Search Scope Set LDAP search scope$ busctl set-property xyz.openbmc_project.Ldap.Config /xyz/openbmc_project/user/ldap/<ldaptype> xyz.openbmc_project.→˓User.Ldap.Config LDAPSearchScope s "<ldap_search_scope>"
<ldap_search_scope> is in the format xyz.openbmc_project.User.Ldap.Config.SearchScope.subSet LDAP BindDN Set LDAP bind DN$ busctl set-property xyz.openbmc_project.Ldap.Config /xyz/openbmc_project/user/ldap/<ldaptype> xyz.openbmc_project.→˓User.Ldap.Config LDAPBindDN s "<ldap_binddn>"
Example ldap_bindn string: “uid=testbind,ou=People,dc=domain,dc=test,dc=co”Set LDAP BindDN PW Set LDAP bind DN password$ busctl set-property xyz.openbmc_project.Ldap.Config /xyz/openbmc_project/user/ldap/<ldaptype> xyz.openbmc_project.→˓User.Ldap.Config LDAPBindDNPassword s "<ldap_binddn_pw>"
Set LDAP BaseDN Set LDAP base DN$ busctl set-property xyz.openbmc_project.Ldap.Config /xyz/openbmc_project/user/ldap/<ldaptype> xyz.openbmc_project.→˓User.Ldap.Config LDAPBaseDN s "<ldap_base>"
Example ldap_basedn string: “dc=domain,dc=test,dc=co”Set UserNameAttribute Set UserNameAttribute$ busctl set-property xyz.openbmc_project.Ldap.Config /xyz/openbmc_project/user/ldap/<ldaptype> xyz.openbmc_project.→˓User.Ldap.Config UserNameAttribute s "<uattr>"
Example of uattr string: “uid”To use a secure LDAP connection, you need to upload and install client and root certificate authority (CA) certifi-cates on the BMC. You can do this using the commands in Table 9.7.
Table 9.7: Install certificates
Version: latest (2021-11-08) 64
BMC User Guide
Command Description
Install client cert Install client certificate$ busctl call xyz.openbmc_project.Certs.Manager.Client.Ldap /xyz/openbmc_project/certs/client/ldap xyz.openbmc_project.→˓Certs.Install Install s "<cert.pem>"
If successful, the client certificate is installed in /etc/nslcd/certs/cert.pem
Install Root CA cert Install root CA certificate$ busctl call xyz.openbmc_project.Certs.Manager.Authority.Ldap /xyz/openbmc_project/certs/authority/ldap xyz.openbmc_→˓project.Certs.Install Install s "<cacert.pem>"
If successful, the CA certificate is installed in /etc/ssl/certs/Root-CA.pem
To map privileges from LDAP user groups to local user groups, use the commands in Table 9.8.Table 9.8: Privilege mapping
Command Description
LDAP privilege map Map privileges from LDAP to local groups$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass>$ ldap privilege-mapper create -g <ldapgroup> -p {priv-admin/priv-user}
To display current LDAP configuration, use the commands in Table 9.9.Table 9.9: LDAP configuration
Command Description
Display LDAP configura-tion Display current LDAP configuration
$ curl -b cjar -k https://<bmcip>/xyz/openbmc_project/user/ldap/enumerate -u <bmcuser>:<bmcpass>
Version: latest (2021-11-08) 65
CHAPTER
TEN
NETWORK CONFIGURATION
This section describes how to configure network settings via CLI, GUI, REST, IPMI and Redfish in-terface. It is described upstream in https://github.com/openbmc/phosphor-networkd/blob/master/docs/Network-Configuration.md.
10.1 BMC command line
• To get the default gateway of BMC:$ busctl get-property xyz.openbmc_project.Network /xyz/openbmc_project/network/config xyz.openbmc_project.Network.→˓SystemConfiguration DefaultGateway
• To get the default ipv6 gateway of BMC:$ busctl get-property xyz.openbmc_project.Network /xyz/openbmc_project/network/config xyz.openbmc_project.Network.→˓SystemConfiguration DefaultGateway6
• To get the default gateway of BMC:$ busctl get-property xyz.openbmc_project.Network /xyz/openbmc_project/network/config xyz.openbmc_project.Network.→˓SystemConfiguration HostName
DHCP settings:• To check if DNS is enabled:
$ busctl get-property xyz.openbmc_project.Network /xyz/openbmc_project/network/config/dhcp xyz.openbmc_project.→˓Network.DHCPConfiguration DNSEnabled
• To check HostnameEnabled:$ busctl get-property xyz.openbmc_project.Network /xyz/openbmc_project/network/config/dhcp xyz.openbmc_project.→˓Network.DHCPConfiguration HostNameEnabled
• To check if NTP is enabled:$ busctl get-property xyz.openbmc_project.Network /xyz/openbmc_project/network/config/dhcp xyz.openbmc_project.→˓Network.DHCPConfiguration NTPEnabled
• To check SendHostNameEnabled:$ busctl get-property xyz.openbmc_project.Network /xyz/openbmc_project/network/config/dhcp xyz.openbmc_project.→˓Network.DHCPConfiguration SendHostNameEnabled
You can execute the following operations on interface “eth0”:• Check if autonegotiation is enabled:
$ busctl get-property xyz.openbmc_project.Network /xyz/openbmc_project/network/eth0 xyz.openbmc_project.Network.→˓EthernetInterface AutoNeg
Version: latest (2021-11-08) 66
BMC User Guide
• Check if DHCP is enabled:$ busctl get-property xyz.openbmc_project.Network /xyz/openbmc_project/network/eth0 xyz.openbmc_project.Network.→˓EthernetInterface DHCPEnabled
10.2 GUI
The network configuration available in the GUI are shown in Fig. 10.1.
Fig. 10.1: GUI: Network setting
10.3 REST API
You can uses the REST interface to query the network configuration, by using openbmctool.py.• Viewing current configuration:
python3 openbmctool.py -H <hostip/hostname> -U <user> -P <password> network view-config
• Get hostname:python3 openbmctool.py -H <hostip/hostname> -U <user> -P <password> network getHostName
• Print out default gateway on the BMC:
Version: latest (2021-11-08) 67
BMC User Guide
python3 openbmctool.py -H <hostip/hostname> -U <user> -P <password> network getDefaultGW
• Get IPs on the given interface:python3 openbmctool.py -H <hostip/hostname> -U <user> -P <password> network getIP -I <interface>
10.4 IPMI
• Print network information:$ ipmitool -I lanplus -U <user> -P <password> -H <hostip/hostname> lan print <channel>
• Enable DHCP:$ ipmitool -I lanplus -U <user> -P <password> -H <hostip/hostname> lan set <channel> ipsrc dhcp
• Configure static IP:$ ipmitool -I lanplus -U <user> -P <password> -H <hostip/hostname> lan set <channel> ipsrc static
• Set IP address:$ ipmitool -I lanplus -U <user> -P <password> -H <hostip/hostname> lan set <channel> ipaddr <ipaddr>
• Set netmask:$ ipmitool -I lanplus -U <user> -P <password> -H <hostip/hostname> lan set <channel> netmask <x.x.x.x>
• Set default gateway IP address:$ ipmitool -I lanplus -U <user> -P <password> -H <hostip/hostname> lan set <channel> defgw ipaddr <ip>
Note: Since the system does not allow unpingable gateway addresses, make sure the gateway address is pingable.
Version: latest (2021-11-08) 68
CHAPTER
ELEVEN
SERIAL OVER LAN (SOL)
This section describes how to get access to the serial console of the IPU-M2000 gateway over the LAN interface.Serial over LAN (SoL) support is only available using the CLI, GUI and IPMI interfaces.
11.1 BMC command line
On the BMC command line, use the obmc-console-client command to access the gateway serial console. If thechassis is powered on, a prompt appears and authentication is needed to log in.• To exit from obmc-console-client, type: <Return>~~.. (Note: two ~ characters)• To exit from the ssh session to BMC, type: <Return>~.
In order to directly connect to the gateway serial console from a remote machine, use the command:$ ssh root@<BMC-IP> -p 2200
11.2 GUI
To access the IPU-M2000 gateway serial console using the GUI, log into the GUI and navigate to the Servercontrol tab and then the Serial over LAN console tab, as shown in Fig. 11.1.
Version: latest (2021-11-08) 69
BMC User Guide
Fig. 11.1: GUI: IPU-M2000 serial over LAN
11.3 IPMI
To access the IPU-M2000 gateway serial console using IPMI, use the following command:$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> sol activate
To exit from the console, type: <Return>~~. (Note: two ~ characters)
Version: latest (2021-11-08) 70
CHAPTER
TWELVE
DEBUG COLLECTOR
The debug collector provides mechanisms to collect various system log files, and is useful for troubleshooting. Aset of collected logs are referred to as a “dump”.The logs gathered by the debug collector are shown in Table 12.1.
Table 12.1: Debug collector logs
Log name Description
bmc-state.log Contains the value of the OpenBMC BMCState property.chassis-state.log Contains the value of the OpenBMC Chassis PowerState property.cpuinfo Contains information about the CPU on the BMC.disk-usage.log Shows disk usage on BMC, gathered with the df command.dreport.log Contains a summary of the status of different logs collected by the dump-collector.envtest.log Result of system environment test, containing sensor threshold checks, PSU andfans status checks, systemd services checks, and so on.failed-services.log Displays failing services (if any).firmware_version.log Shows IPU-Machine firmware version, including BMC, GW, ICU (MCU) and SysF-PGA.fw-printenv.log Contains the U-Boot environment.gw_cpu_usage.log Load information of GW CPUs.gw_disk_usage.log Shows disk usage on GW, gathered with df command.gw_memory_usage.log Displays GW memory usagegw_uptime.log Displays the output of the uptime command on the GW.hostlogs Contains GW journal.hostnamectl.log Contains hostname, machine ID, OS, kernel and architecture information.host-state.log Displays the value of the OpenBMC HostState property.inventory.log Contains system inventory information.ipaddr.log IP information from BMC.iplink.log IP link information from BMC.ipus-regdump.log A dump of selected IPU status registers, including tr, xb, nlc, pci and ss status.journal-pretty.log Prettified journal log from BMC.meminfo Memory information from BMC.
continues on next page
Version: latest (2021-11-08) 71
BMC User Guide
Table 12.1 – continued from previous pageLog name Description
obmc-console.log Log from the BMC-GW serial-console.os-release Information gathered from /etc/os-release on BMC.pcie-state.log PCIe boot and state information.summary.log Summary of the dump/debug-collection taken.top.log Log gathered from the top-command on BMC.uptime.log Output from uptime command on BMC.
12.1 REST API
You can use the openbmctool.py to create, list and retrieve dumps.• Create a dump:
$ python3 openbmctool.py -H <hostip/hostname> -U <user> -P <password> dump create
Note: This command will complete before the dump is actually created and ready for retrieval. Dumpcreation will take approximately 1 min 30 seconds. You can check if the dump is available by using the dumplist command. The maximum number of dumps that can exist on a BMC is two.
• List dumps on the system:$ python3 openbmctool.py -H <hostip/hostname> -U <user> -P <password> dump list
• Retrieve a dump from the system:$ python3 openbmctool.py -H <hostip/hostname> -U <user> -P <password> dump retrieve -s <dump_save_path> <dump_→˓number># Example$ python3 openbmctool.py -H <hostip/hostname> -U <user> -P <password> dump retrieve -s . 1
• Delete a dump from the system:$ python3 openbmctool.py -H <hostip/hostname> -U <user> -P <password> dump delete [-n [DUMPNUM [DUMPNUM ...]]] {all}# Example$ python3 openbmctool.py -H <hostip/hostname> -U <user> -P <password> dump delete -n 1
Version: latest (2021-11-08) 72
CHAPTER
THIRTEEN
RESET LOST ROOT PASSWORD
This section describes how to reset a forgotten or lost BMC root password.If the firmware version is 1.9.0 or later, then you can recover the password by using the serial port (see Section13.1, BMC command line). if firmware version is earlier than 1.9.0, you will need to perform a factory reset (seeSection 13.2, Factory reset from U-Boot).
13.1 BMC command line
This procedure is only applicable with BMC firmware version 1.9.0 or later.If you have forgotten the BMC root password then physical access to the IPU-Machine is required to reset it. Youneed to use a USB cable to connect the Micro-USB management port of the IPU-Machine to the managementserver (see Fig. 13.1).
Fig. 13.1: IPU-Machine rear side showing the location of the Micro-USB management port (green) indicated by“Mgt”
You can then reset the password by rebooting the machine and interrupting U-Boot from the serial console using,for example, minicom. Once in U-Boot, append rescue_bmc to the bootargs environment variable, and then boot:ast# setenv bootargs console=ttyS4,115200n8 root=/dev/ram rw rescue_bmcast# boot
This will automatically log you in as the root user on the serial console. You can now change the root passwordby using the passwd command.
13.2 Factory reset from U-Boot
You can perform a factory reset from U-Boot, using the following steps:1. Gain physical access to the IPU-Machine and connect your laptop or server to the IPU-Machinemanagementport with a Micro-USB cable (see Fig. 13.1).2. Start a serial communication program, for example minicom. The required settings are:
• Baud rate: 115200• Data bits: 8• Stop bits: 1
Version: latest (2021-11-08) 73
BMC User Guide
• Enable software flow control if using minicom. Set flow control to “none” if using putty.3. Do an AC power cycle by unplugging the AC cables from the power supplies. Let the system power down,and then reinsert the cables, while having the serial terminal running. When the BMC reboots, enter U-Bootby pressing any key.4. You will now see the ast# prompt. Enter the following commands:
ast# setenv openbmconce factory-resetast# saveast# saveast# reset
5. Factory reset will now be in progress. Once it is complete, let the BMC boot and log in with the defaultcredentials.6. You can now change the root password by using the passwd command.
Version: latest (2021-11-08) 74
CHAPTER
FOURTEEN
TIME SETTINGS
This section describes how to retrieve or configure time and date settings using the supported BMC interfaces.You can configure the BMC to use two different time synchronization methods: NTP or manual.If the time synchronization method is manual, you must manually set the date and time using the CLI, REST orIPMI interfaces.If the time synchronizationmethod is NTP, the date and time is automatically synchronized using the NTP protocol(with the timesyncd service as theNTP client). This either uses the default systemdNTP servers (time.google.com)or other specified NTP servers.Note: Time zones are not supported by OpenBMC. All times read from BMC are assumed to be in UTC.
14.1 BMC command line
• To get the current date and time, use the date command. Refer to the Linux man pages for details of thiscommand.• To get the current time synchronization method of BMC:
$ busctl get-property xyz.openbmc_project.Settings /xyz/openbmc_project/time/sync_method xyz.openbmc_project.Time.→˓Synchronization TimeSyncMethod
• To set the time synchronization method of BMC:# Set BMC time synchronization method to NTP$ busctl set-property xyz.openbmc_project.Settings /xyz/openbmc_project/time/sync_method xyz.openbmc_project.Time.→˓Synchronization TimeSyncMethod s "xyz.openbmc_project.Time.Synchronization.Method.NTP"
# Set BMC time synchronization method to Manual$ busctl set-property xyz.openbmc_project.Settings /xyz/openbmc_project/time/sync_method xyz.openbmc_project.Time.→˓Synchronization TimeSyncMethod s "xyz.openbmc_project.Time.Synchronization.Method.Manual"
• To confirm that setting of time mode is applied, you can check the “NTP service” status of the output of thetimedatectl command.$ timedatectl
Local time: Sat 2021-06-19 16:14:23 UTCUniversal time: Sat 2021-06-19 16:14:23 UTCRTC time: Sat 2021-06-19 16:14:24Time zone: n/a (UTC, +0000)System clock synchronized: yesNTP service: activeRTC in local TZ: no
If the “NTP service” field is reported as “active” then BMC timesyncd service is syncing time with either a config-ured NTP server or the default one.
Version: latest (2021-11-08) 75
BMC User Guide
• To manually add NTP servers in CLI, you can use the following command:$ busctl set-property xyz.openbmc_project.Network /xyz/openbmc_project/network/eth0 xyz.openbmc_project.Network.→˓EthernetInterface NTPServers as 1 "<ntp_server>"
14.2 GUI
The time management operations available in the GUI are shown in Fig. 14.1.Note: BMC is the only time owner of the system.
Note: If the BMC time synchronization method is NTP then manually setting the date and time from the GUImight fail the first time. This is due to the time it takes for the timesyncd service to be stopped on BMC andis described in https://github.com/openbmc/phosphor-time-manager#special-note-on-changing-ntp-setting. Asecond try should set the time and date correctly.
Fig. 14.1: GUI: time management operations
14.3 REST API
• To get current time synchronization method of BMC use the following curl command:$ curl -k https://<bmcip>/xyz/openbmc_project/time/sync_method/attr/TimeSyncMethod -u <bmcuser>:<bmcpass>
• To set time synchronization method of BMC use the following command:
Version: latest (2021-11-08) 76
BMC User Guide
# Set BMC time synchronization method to NTP$ curl -k -X PUT -d '{"data": "xyz.openbmc_project.Time.Synchronization.Method.NTP" }' https://<bmcip>/xyz/→˓openbmc_project/time/sync_method/attr/TimeSyncMethod -u <bmcuser>:<bmcpass>
# Set BMC time synchronization method to Manual$ curl -k -X PUT -d '{"data": "xyz.openbmc_project.Time.Synchronization.Method.Manual" }' https://<bmcip>/xyz/→˓openbmc_project/time/sync_method/attr/TimeSyncMethod -u <bmcuser>:<bmcpass>
• To manually add NTP servers with the CLI, you can use the following command:$ curl -k -X PUT -d '{"data": ["<ntp_server>"] }' https://<bmcip>/xyz/openbmc_project/network/eth0/attr/NTPServers
Note: It is possible to get the BMC time using REST interface using the following command, however the time isreturned as epoch time, that is as microseconds after 1970:01:01.$ curl -b cjar -k https://<bmcip>/xyz/openbmc_project/time/bmc
14.4 IPMI
Time synchronization mode setting is not supported over the IPMI interface. Assuming the BMC is not in NTPmode, you can get or set time using the following IPMI commands:# Set time and date$ ipmitool -I lanplus -U <user> -P <password> -H <hostip/hostname> sel time set "DD/MM/YYYY HH:MM:SS"# Get time and date$ ipmitool -I lanplus -U <user> -P <password> -H <hostip/hostname> sel time get
Note: Setting the time over the IPMI interface if the BMC time synchronization method is NTP, will fail. Pleaseuse the CLI or REST interface to set the time synchronization method to manual before setting the time.
14.5 Redfish
Setting the time and date of BMC is not supported.
Version: latest (2021-11-08) 77
CHAPTER
FIFTEEN
SUMMARY OF SUPPORTED IPMI COMMANDS
The following section contains a list of all commands defined in the IPMI v2.0 spec.Listed below are the description of the commands. Items marked with “M” are mandatory according to the spec.Items marked with “O” are optional.
Table 15.1: Global commands (NetFn: 6h)
Command NetFn Optional/Mandatory Hexcmdvalue
Returns
Get Device ID APP M 1h Device ID:0. Device Rev:0. FWversion: major (byte 3), mi-nor (byte 4). IPMI version:0x2. Additional Device Sup-port : Sensor Device, SEL De-vice, FRU Inventory Device,Chassis Device (0X8d), AuxFirmware Rev Info (4 last bytes,MSB first)Cold Reset APP O 0x02Warm Reset APP O (Not supported) 3hGet Self Test Re-sults APP M 4h Byte 1: 56h : Self Test functionnot implemented in this con-troller.Manufacturing teston APP O (Not supported) 5hSet ACPI PowerState APP O 6hGet ACPI PowerState APP O (Not supported) 7hGet Device GUID APP O 8h See 20.8 in IPMI spec
Table 15.2: Broadcast commands (NetFn: 6h)
Command NetFn Optional/Mandatory Hex cmdvalue
Broadcast ‘Get Device ID’ APP O (Not supported) 1h
Version: latest (2021-11-08) 78
BMC User Guide
Table 15.3: Messaging commands (NetFn: 6h)
Command NetFn Optional/Mandatory Hex cmdvalue
Set BMC Global Enables APP M (Not supported) 2ehGet BMC Global Enables APP M (Not supported) 2fhClear Message Flags APP M (Not supported) 30hGet Message Flags APP M (Not supported) 31hEnable Message Channel Re-ceive APP O (Not supported) 32hGet Message APP M (Not supported) 33hSend Message APP M (Not supported) 34hRead Event Message Buffer APP O (Not supported) 35hGet System Interface Capabili-ties APP O 36hMaster Write-Read APP M (Not supported) 52hGet System GUID APP O 37hSet System Info APP O (Not supported) 58hGet System Info APP O (Not supported) 59hGet Channel AuthenticationCapabilities APP O 38hGet Channel Cipher Suites APP M (Not supported) 54hGet Session Challenge APP O (Not supported) 39hActivate Session APP O (Not supported) 3AhSet Session Privilege Level APP O (Not supported) 3BhClose Session APP O (Not supported) 3ChGet Session Info APP O (Not supported) 3DhGet AuthCode APP O (Not supported) 3FhSet Channel Access APP O 40hGet Channel Access APP O 41hGet Channel Access APP O 41hGet Channel Info APP O 42hSet Channel Security Keys APP M (Not supported) 56hSet User Access APP O 43hGet User Access APP O 44hSet User Name APP O 45hGet User Name APP O 46hSet User Password APP O 47h
Version: latest (2021-11-08) 79
BMC User Guide
Table 15.4: Firmware firewall & Command discovery commands (NetFn: 6h)
Command NetFn Optional/Mandatory Hex cmdvalue
Get NetFn Support APP O (Not supported) 9hGet Command Support APP O (Not supported) AhGet Command Sub-functionSupport APP O (Not supported) BhGet Configurable Commands APP O (Not supported) ChGet Configurable CommandsSub-functions APP O (Not supported) DhSet Command Enables APP O (Not supported) 60hGet Command Enables APP O (Not supported) 61hSet Command Sub-functionEnables APP O (Not supported) 62hGet Command Sub-functionEnables APP O (Not supported) 63hGet OEMNetFn IANA Support APP O (Not supported) 64h
Table 15.5: RCMP+ support and Payloads commands (NetFn: 6h)
Command NetFn Optional/Mandatory Hex cmdvalue
Activate Payload APP O (Not supported) 48hDeactivate Payload APP O (Not supported) 49hSuspend/Resume Payload En-cryption Command APP O (Not supported) 55hGet Payload Activation Status APP O (Not supported) 4AhGet Payload Instance Info APP O (Not supported) 4BhGet Payload Instance Info APP O (Not supported) 4BhSet User Payload Access APP O (Not supported) 4ChGet User Payload Access APP O (Not supported) 4DhGet Channel Payload Support APP O 4EhGet Channel Payload VersionCommand APP O 4FhGet Channel OEMPayload InfoCommand APP O 50h
Table 15.6: LAN commands (NetFn: Ch)
Version: latest (2021-11-08) 80
BMC User Guide
Command NetFn Optional/Mandatory Hex cmd value
Set LAN Configuration Param-eters TRANSPORT M 1hSet LAN Configuration Param-eters TRANSPORT M 2hSuspend BMC ARPs TRANSPORT O (Not supported) 3hGet IP/UDP/RMCP Statistics TRANSPORT O (Not supported) 4h
Table 15.7: IPMI serial/modem commands (NetFn: Ch)
Command NetFn Optional/Mandatory Hex cmdvalue
Set Serial/MODEM Configura-tion TRANSPORT O (Not supported) 10hSet Serial/MODEM Configura-tion TRANSPORT O (Not supported) 11hGet TAP response codes TRANSPORT O (Not supported) 12hSet PPP UDP proxy transmitdata TRANSPORT O (Not supported) 13hGet PPP UDP proxy transmitdata TRANSPORT O (Not supported) 14hSend PPP UDP proxy packet TRANSPORT O (Not supported) 15hGet PPP UDP proxy Receivedata TRANSPORT O (Not supported) 16hSerial/MODEMconnection ac-tive TRANSPORT O (Not supported) 17hCallback TRANSPORT O (Not supported) 18hSet User Callback options TRANSPORT O (Not supported) 1AhGet User Callback options TRANSPORT O (Not supported) 1Bh
Table 15.8: SOL commands (NetFn: Ch)
Command NetFn Optional/Mandatory Hex cmdvalue
SOL activating TRANSPORT O (Not supported) 20hSet SOL Configuration Param-eters TRANSPORT O (Not supported) 21hSet SOL Configuration Param-eters TRANSPORT O (Not supported) 22h
Table 15.9: BMCWatchdog timer commands (NetFn: 6h)
Version: latest (2021-11-08) 81
BMC User Guide
Command NetFn Optional/Mandatory Hex cmdvalue
Reset watchdog timer APP M 22hSet Watchdog timer APP M 24hSet Watchdog timer APP M 25h
Table 15.10: Chassis commands (NetFn: 0h)
Command NetFn Optional/Mandatory Hex cmdvalue
Get Chassis Capabilities CHASSIS M 00hGet Chassis Status CHASSIS M 01hChassis control CHASSIS M 02hChassis reset CHASSIS O (Not supported) 03hChassis identify CHASSIS O 04hSet Front Panel Button Enables CHASSIS O 0AhSet Chassis Capabilities CHASSIS O (Not supported) 05hSet Power Restore Policy CHASSIS O 06hSet Power Cycle Interval CHASSIS O (Not supported) 0BhGet System Restart Cause CHASSIS O (Not supported) 07hSet System Boot Options CHASSIS O (Not supported) 08hGet System Boot Options CHASSIS O (Not supported) 09hGet POH Counter CHASSIS M 0Fh
Table 15.11: Sensor/Event commands (NetFn: 04h)
Command NetFn Optional/Mandatory Hex cmdvalue
Set Event Receiver SENSOR O (Not supported) 00hGet Event Receiver SENSOR O (Not supported) 01hPlatform Event SENSOR M (Not supported) 02h
Table 15.12: PEF and Alerting commands (NetFn: 04h)
Version: latest (2021-11-08) 82
BMC User Guide
Command NetFn Optional/Mandatory Hex cmdvalue
Get PEF Capabilities SENSOR M (Not supported) 10hARM PEF Postpone timer SENSOR M (Not supported) 11hSet PEF Configuration Parame-ters SENSOR M (Not supported) 12hGet PEF Configuration Param-eters SENSOR M (Not supported) 13hSet Last Processed Event ID SENSOR M (Not supported) 14hGet Last Processed Event ID SENSOR M (Not supported) 15hAlert immediate SENSOR O (Not supported) 16hPET acknowledge SENSOR O (Not supported) 17h
Table 15.13: SEL commands (NetFn: Ah)
Command NetFn Optional/Mandatory Hex cmdvalue
Get SEL info STORAGE M 40hGet SEL Allocation Info STORAGE O (Not supported) 41hReserve SEL STORAGE O 42hGet SEL Entry STORAGE M 43hAdd SEL Entry STORAGE M 44hPartial Add SEL Entry STORAGE O (Unsupported) 45hDelete SEL Entry STORAGE O 46hClear SEL STORAGE M 47hGet SEL Time STORAGE M 48hSet SEL Time STORAGE M 49hGet SEL Time UTC Offset STORAGE O (Not supported) 5ChSet SEL Time UTC Offset STORAGE O (Not supported) 5DhGet Auxiliary Log Status STORAGE O (Not supported) 5AhSet Auxiliary Log Status STORAGE O (Not supported) 5Bh
Table 15.14: SDR Repository commands (NetFn: Ah)
Command NetFn Optional/Mandatory Hex cmdvalue
Get SDR Repository Info STORAGE O (Not supported) 21hGet SDR Repository AllocationInfo STORAGE M 22h
continues on next page
Version: latest (2021-11-08) 83
BMC User Guide
Table 15.14 – continued from previous pageCommand NetFn Optional/Mandatory Hex cmd
value
Reserve SDR Repository STORAGE M 22hGet SDR STORAGE M 23hAdd SDR STORAGE O (Not supported) 24hPartial Add SDR STORAGE O (Not supported) 25hDelete SDR STORAGE O (Not supported) 26hClear SDR Repository STORAGE O (Not supported) 27hGet SDR Repository Time STORAGE O (Not supported) 28hSet SDR Repository Time STORAGE O (Not supported) 29hEnter SDR Repository UpdateMode STORAGE O (Not supported) 2AhExit SDR Repository UpdateMode STORAGE O (Not supported) 2BhRun Initialization Agent STORAGE O (Not supported) 2Ch
Table 15.15: FRU Inventory Device commands (NetFn: Ah)
Command NetFn Optional/Mandatory Hex cmdvalue
Get FRU Inventory Area Info STORAGE M (FRU device ID = 0h for BMC’s FRU) 10hRead FRU Data STORAGE M (FRU device ID = 0h for BMC’s FRU) 11hWrite FRU Data STORAGE M (Not supported) 12h
Table 15.16: Sensor device commands (NetFn: 4h)
Command NetFn Optional/Mandatory Hex cmdvalue
Get Device SDR Info SENSOR O 20hGet Device SDR SENSOR O 21hReserve Device SDR Reposi-tory SENSOR O 22hGet Sensor Reading Factors SENSOR O (Not supported) 23hSet Sensor Hysteresis SENSOR O (Not supported) 24hGet Sensor Hysteresis SENSOR O (Not supported) 25hSet Sensor Threshold SENSOR O (Not supported) 26hGet Sensor Threshold SENSOR O 27hSet Sensor Event Enable SENSOR O (Not supported) 28hGet Sensor Event Enable SENSOR O (Not supported) 29h
continues on next pageVersion: latest (2021-11-08) 84
BMC User Guide
Table 15.16 – continued from previous pageCommand NetFn Optional/Mandatory Hex cmd
value
Re-arm Sensor Events SENSOR O (Not supported) 2AhGet Sensor Event Status SENSOR O (Not supported) 2BhGet Sensor Reading SENSOR M 2DhSet Sensor Type SENSOR O (Not supported) 2EhGet Sensor Type SENSOR O (Not supported) 2FhSet Sensor Reading and EventStatus SENSOR O 30h
Version: latest (2021-11-08) 85
CHAPTER
SIXTEEN
TRADEMARKS & COPYRIGHT
Graphcore® and Poplar® are registered trademarks of Graphcore Ltd.AI-Float™, Colossus™, Exchange Memory™, Graphcloud™, In-Processor-Memory™, IPU-Core™, IPU-Exchange™,IPU-Fabric™, IPU-Link™, IPU-M2000™, IPU-Machine™, IPU-POD™, IPU-Tile™, PopART™, PopLibs™, PopVision™,PopTorch™, Streaming Memory™ and Virtual-IPU™ are trademarks of Graphcore Ltd.All other trademarks are the property of their respective owners.Copyright © 2016-2020 Graphcore Ltd. All rights reserved.
Version: latest (2021-11-08) 86