Chassis Manager Module
Edit this on GitLab
OVERVIEW
The CH1 function module from NAI is a powerful Chassis Management Controller designed to run the Chassis Manager service (ChM) under the Linux operating system. It is a single COSA module slot Chassis Management Module (CMM) that can be used with an OpenVPX (VITA 65) chassis, offering robust system management capabilities for VITA 46.11, Hardware Open Systems Technologies (HOST), and Sensor Open System Architecture (SOSA). Figure 1 depicts the various hardware components and interfaces that make up a complete VITA 46.11 chassis management solution. Using the CH1’s System Management Interfaces (SMI), higher level System Management Software (SMS) can easily access and interact with the Intelligent Platform Management Controllers (IPMCs), which represent the various Field Replaceable Units (FRUs) connected to the redundant Intelligent Platform Management Buses (IPMB).

Figure 1. VITA 46.11 Chassis Management Infrastructure
The CH1 is compatible with NAI COSA motherboards that support chassis managers and is designed for installation inside an SIU system chassis. It can also function as a standalone card for use in other systems. The module comes equipped with discrete control signals for fans, LEDs, and various other chassis sensors and controls.
In this manual, we provide practical use models and guidelines for interacting with Intelligent Platform Management Controllers (IPMCs), Intelligent Platform Management Interface (IPMI) aware payload elements, and the Chassis Manager software (ChM) using the ChM’s user interfaces. For detailed information on the low-level hardware signals that the CH1 can monitor and control in your chassis, please contact the factory for additional details.
INTERFACES
The CH1 provides two physical interfaces, which together provide access to the three software interfaces available for Chassis Management control.
Ethernet |
USB UART |
Serial Console |
|
SMI |
X |
||
Operator’s Console |
X |
X |
X |
ChMC Console |
X |
Physical Interfaces
Ethernet
The CH1 comes from the factory pre-configured with two ethernet ports, one 10/100/1000 Base-T connection and one 1000 Base-X connection. Both ports will provide the same capabilities. The interfaces have static IP addresses of 192.168.1.19 for the Base-T connection and 192.168.1.20 for the 1000Base-X connection. The user can change these IP addresses to fit their network requirements.
USB UART Hub
The USB UART can be used to connect to either the operator’s console or the ChMC console. The UART exposes four USB interfaces- the operator’s console can be accessed by connecting to “Silicon Labs Quad CP2108 USB to UART Bridge: Interface 1”. The ChMC console can be accessed by connecting to “Silicon Labs Quad CP2108 USB to UART Bridge: Interface 2”. Interface 0 is for debug purposes and can be ignored. Interface 3 is not populated. This connection uses Silicon Labs CP210x USB to UART Bridge Virtual COM Port (VCP) drivers. Contact the factory if assistance is required in finding and installing these drivers.
Software Interfaces
System Management Interface
The System Management Interface (SMI) operates over an Ethernet connection using Remote Management Console Protocol (RMCP) as defined in the Intelligent Platform Management Interface Specification v1.5. For an Out-of-Band Chassis Management system, the Base-T Ethernet connection on the CH1 can be routed outside the chassis/card to an external Local Area Network (LAN). This allows System Management Software (SMS) to access the CH1 from a remote computer. In an In-Band system, the 1000 Base-X connection is located on the 68G6 host card and can be routed across the backplane to an SBC running system management software.
Please contact the factory if the intention is to align with SOSA objectives. REST APIs must be used when interfacing with the SMI in this case and NAI can include the required software running on the chassis manager.
Operator’s Console The operator’s console can be accessed through a linux shell being run on the module. From the factory, the default Linux username for the CH1 is: “root” with no password. Once logged in, the operator’s console is communicated with through a virtual terminal that can be launched with command “sudo conspy 10”. For human interaction, the console size can be adjusted with command “sudo stty -F /dev/tty10 columns x rows y”
Refer to the Operator’s Console section of this manual for more details about the various commands that are available.
ChMC Console
The CH1 also provides a command line interface to the controller that runs the chassis manager, primarily for debug purposes. Refer to Appendix B: Command Line Interface for more details. The terminal should be set to 115,200 Baud, with local echo enabled, a transmit delay of 150 ms/line, with flow control set to Xon/Xoff.
Power
The CH1 requires a 3.3V Aux @ 2.0A power source. This connection is typically self-contained and power to the CH1 may be controlled through a Management Power switch on the chassis.
Chassis Control Signals
The CH1 features a group of commands that allow for modular management of power, temperature, and health management functions on the chassis (see Table 2). To determine which features are available for an individual system, reference the specific chassis wiring diagram vs the CH1 pinout map or contact the factory for additional details.
Chassis Control Signal |
Signal Description |
ENABLE* |
An active low signal that enables 3.3V_AUX (management power) to the backplane when low. If the CH1 is integrated, it also enables the 5V supply for CH1. |
INHIBIT* |
An active low signal that disables payload power rails in the backplane. May be associated with the ENABLE* signal in unmanaged chassis. In an implementation that integrates CH1, the ChM de-asserts/asserts INHIBIT* in response to power-up, power-down, and power-cycle commands. |
FAIL* |
This active low signal indicates an internal failure from a power supply unit. May be visible to ChM and/or SMS software. |
SYSRESET* |
This active low signal causes a chassis-wide payload reset. Does not affect ChM or IPMCs. CH1 often monitors this signal for visibility to SMS software. |
NVMRO |
This active high signal enters each plug-in module into a write-protected state for Non-Volatile Memory (NVM). CH1 can monitor and report its state, and some implementations allow for operator/SMS to assert/de-assert NVMRO using ChMC general-purpose output. |
gDiscrete1* |
This active low signal may cause user-defined actions for ChM or ChMC when asserted/de-asserted. Typically driven low through push-button switch closure on the front panel. |
Maskable Reset* |
This signal allows the CH1 to assert/de-assert Maskable Reset* to some or all plug-in slots on the backplane through the ChMC general-purpose output. |
System IPMB |
This interface connects to the OpenVPX backplane and supports 100 kHz and 400 kHz operation. CH1 automatically chooses the appropriate operating speed based on the Chassis FRU Information provided. |
LEDs |
Up to three single or multi-color LEDs that can be controlled through SMS. ChMC includes LED Definition Records in its Board FRU information. |
Fans (Pending) |
Up to two PWM-controlled fans (or fan groups) that can be controlled through ChM/SMS. ChMC supports Fan Geography Records for matching cooling capabilities to the dynamic heat load of the current plug-in card population. IPMC fan/fan trays can be controlled like standard FRUs. |
Additional implementation-specific inputs/outputs may be available. Please contact the factory for additional details.
Sensors
To comply with VITA standards, the CH1’s ChM software includes support for the eight mandatory VITA-defined sensors in every Tier-3 IFRU. The operator’s console and SMI interface at IPMB address 20h LUN 00b allows for easy access and monitoring of these sensors.
Chassis Sensor |
Sensor Description |
FRU_STATE (#0) |
Indicates the ChM service’s activation state. State 0h (offline) shows that the ChM is in the booting process or has a critical fault. State 1h (standby) shows that the ChM is actively managing the chassis, but the payload cards are not powered. States 2h and 3h are not supported. State 4h (active) indicates a successful FRU activation script. State 5h (pd request) occurs when the ChMC’s FRU_STATE sensor requests a de-activation command from the SMS software. State 6h (powering down) executes the FRU de-activation script, then asserts INHIBIT* and returns to state 1h (standby). |
IPMB_LINK_STATE (#1) |
Indicates the CH1’s operational state for System IPMB connections. |
FRU_HEALTH (#2) |
A pass/fail aggregate of the ChM BIST result and all the FRU_HEALTH sensors in the ChMC and all IPMCs connected to the System IPMB. If a fault occurs anywhere in the chassis, this sensor indicates the fault. |
FRU_VOLTAGE (#3) |
A pass/fail aggregate of all the FRU_VOLTAGE sensors in the ChMC and all IPMCs connected to the System IPMB. If a fault occurs anywhere in the chassis, this sensor indicates the fault. |
FRU_TEMPERATURE (#4) |
An aggregate of all the FRU_TEMPERATURE sensors in the ChMC and all IPMCs connected to the System IPMB. If any of the six IPMI thresholds are asserted anywhere in the chassis, this sensor also asserts that threshold. |
PAYLOAD_BIST_RESULT (#5) |
A pass/fail aggregate of all the PAYLOAD_BIST_RESULT sensors in the ChMC and all IPMCs connected to the System IPMB. If a fault occurs anywhere in the chassis, this sensor indicates the fault. |
PAYLOAD_BIST_STATUS (#6) |
An aggregate of all the PAYLOAD_BIST_STATUS sensors in the ChMC and all IPMCs connected to the System IPMB. If any sensor indicates that payload BIST is running, this sensor indicates that payload BIST is running. |
PAYLOAD_MODE (#7) |
Valid when the chassis FRU_STATE sensor is in state 4h or state 5h. When the chassis FRU_STATE is any other value, the chassis PAYLOAD_MODE will read as 0h. When the chassis FRU_STATE is either 4h or 5h, the chassis PAYLOAD_MODE sensor indicates the last value that was globally broadcast to the IPMCs using the 'set payload mode' command. |
The ChMC, which is part of the CH1, also includes these eight sensors. In this case, the sensors are associated with LUN 00b at the ChMC address 10h (primary CMM) or 12h (redundant CMM if present) and they represent current operational states within the context of the CH1 as a Chassis Management Module.
Each VITA-compliant IPMC that connects to the System IPMB also includes the eight VITA-defined mandatory sensors. In this case, the sensors are associated with LUN 00b at each IPMC address 41h-5Fh for plug-in cards and they represent current operational states within the context of each plug-in module. An IPMC may also include discrete or analog/threshold-based sensors that convey more detailed information about signals or measurable parameters on the card, which it represents on the System IPMB.
SENSOR DATA RECORD REPOSITORY
Each device connected to the System IPMB contains a locator record that provides details about the device. Each logical or physical device that contains one or more sensors will also contain a Sensor Data Record (SDR) for each sensor. These records describe the sensor type and capabilities, as well as informing ChM and SMS software how to interpret readings and events from each sensor. During its discovery phase, the ChM software gathers these records from each device, aggregates them into its SDR Repository, and makes them available to the System Management Software.
The CH1 implements a 'complete' SDR Repository. All Device Locator Records, Sensor Data Records, and Entity Association Records found during its discovery phase are read, validated, and cached into its SDR Repository. This allows both the ChM service and SMS software to quickly access SDRs as needed to interpret event messages and sensor readings without having to routinely access SDRs over the System IPMB interface.
The CH1’s SDR cache is non-volatile and provides and 'overlay' of the underlying cards. This allows an operator or SMS Software to modify Sensor Data Records for a given 'device' in the SDR Repository at IPMB address 20h without directly updating the underlying FRU’s device SDRs. This enables an operator or SMS Software to do things like, change the threshold or hysteresis values for a given sensor and set the 'initialization requested' bit in the SDR, so that the ChM, dynamically re-initialize those settings each time the ChM’s initialization agent is executed without making a non-volatile change to the underlying FRU itself. The ChM service does not update the SDRs associated with an underlying FRU unless it detects a change during its discovery and polling processes. In such cases, the current device SDRs from the underlying FRU replace the cached SDRs.
Chassis SDRs
The ChM service comes with a Management Controller Locator and eight logical sensors, each containing Sensor Data Records. These SDRs, along with the Locator, are stored as a file (chassis_SDRs.hex) in the ChM cache (/etc/ChM).
SMS software can add/delete records from this file using IPMI storage commands addressed to the logical chassis management address (20h:00b). Alternatively, the user can edit the file to add/remove records to manage Entity Association and FRU Confirmation records as needed for high-level system management of your application.
FRU INFORMATION
There are two basic types of FRU Information in a managed chassis: 1) Chassis FRU Information, and 2) Board FRU Information.
Chassis FRU Information
The Chassis FRU Information contains records that describe the chassis (manufacturer, part number, serial number, name, etc.) and the VITA 46.11 defined management capabilities that it supports (IPMB configuration, network address, cooling infrastructure, physical site topology, etc.).
The ChM service on the CH1 supports two parallel 'views' of the Chassis FRU Information: Physical and Product.
Physical View
First is the 'physical' view of the chassis. This data set is typically created by the chassis/backplane vendor and stored in a physical Chassis FRU Information site/device within the chassis.
Note
|
Not all NAI backplanes are configured with this feature. Please contact the factory if this is a requirement. |
Often, this is an I2C-based Serial EEPROM located on the backplane and wired to a private I2C bus on the ChMC. In some cases, the Chassis FRU Information may be stored on the CH1; either as a file (chassis_fru_info_253.hex) in the ChM cache (/etc/ChM), or/and in non-volatile memory within the ChMC.
If no physical Chassis FRU Information is stored in the chassis when you first powered on, the CH1 will post an Error message to the operator’s console during its initialization process and default to an ‘unknown chassis’ data set. This data set populates the identification field with 'unknown' values and assumes that the backplane implements redundant, bussed IPMB topology with maximum operating frequency of 100 kHz. It assumes, un-managed or no cooling control and no chassis LED or special control signals. The address table is fully populated, (during discovery, all possible IPMB addresses are scanned); this will dramatically increase the time needed to complete the power-on discovery process. Once this initial discovery is completed, the user will have the option to edit and save Chassis FRU Information either in the ChM cache or any previously discovered physical storage locations. This will dramatically reduce start-up time.
A physical storage location for Chassis FRU Information is often identified with its own FRU ID number within the FRU Inventory and is associated with a 'FRU Info Site'. The ChM service on the CH1 keeps track of these locations and will automatically use them to store updates to the Chassis FRU Information for the physical view of the chassis/backplane.
The ChM service mirrors the physical view of the chassis/backplane at logical FRU ID 253 within the FRU Inventory. An operator, or SMS Software can read and write the FRU information at FRU ID 253 and then choose to discard it or commit that information either to the ChM cache (chassis_fru_info_253.hex), or one or more physical storage locations identified in the FRU Inventory. For details on writing Chassis FRU information, refer to [VITA] section 8.2 and Chassis Discovery section of this document.
Product View
The second data set is the 'product' view for your application. The product view is an 'overlay' of the physical view that represents 'how the chassis is being used'. This data set uses the same records/format as the physical view but resides in the ChM cache as a file (chassis_fru_info_254.hex).
The first time you power-up the CH1, it will populate this data set with a 'copy' of the physical Chassis FRU Information. If you do not commit (save) this view, it will be re-populated with the physical view each time the ChM service runs its discovery process. The product FRU Information is mirrored at FRU ID 254 within the FRU Inventory and can be read/written just the same as the physical view at FRU 253.
The product view typically has different manufacturer, part number, and serial number fields than the physical view. Often, it has a different IP Address record and an address table that contains a sub-set of the one in the physical view. The Fan Geography and IPMB records are usually identical across the two views.
Chassis Discovery
Each time the CH1 starts-up, it first checks for physical Chassis FRU Information in the ChM cache. If it does not find chassis_fru_info_253.hex, it checks for physical Chassis FRU Information at the last known location. If it does not find physical Chassis FRU Information, it populates FRU ID 253 with the 'unknown chassis' data set as described previously.
If chassis_fru_info_253.hex is found, the ChM then checks for matching data at the last known physical storage location. If no previous location is cached, or the stored information matches the cached information, then the cached information is loaded into FRU ID 253. If the previous location is missing, or the cached information does not match the information stored externally, the ChM must conclude that the data has been moved to a new chassis. If the previous location is missing, the ChM will default to the 'unknown chassis' data set. If the storage location contains valid Chassis FRU Information, it will invalidate chassis_fru_info_253.hex and load the latest information into FRU ID 253 from the external storage location.
Then the ChM service checks to see if chassis_fru_info_254.hex is present in the cache. If it is, then the cached product data set is compared to the data set at FRU ID 253 to make sure that the product view is 'compatible' with the current physical view. If they are compatible, then the cached data is loaded into FRU ID 254; otherwise chassis_fru_info_254.hex is invalidated and FRU ID 254 gets a copy of the data in FRU ID 253.
Once the chassis discovery process is complete, an operator or SMS software can modify the physical Chassis FRU Information Records at FRU ID 253. A commit of FRU ID 253 will update the chassis_fru_info_253.hex file in the ChM cache, and, if present, any physical storage devices that have previously been associated with physical FRU Information. An operator may also copy the contents of FRU ID 253 to FRU ID 254, or explicitly save the physical view to any external FRU storage device that is present in the current FRU inventory.
An operator or SMS software can modify the product Chassis FRU Information Records at FRU ID 254. A commit (save) of FRU ID 254 will update the chassis_fru_info_254.hex file in the ChM cache. They may also copy the contents of FRU ID 254 to FRU ID 253 or explicitly save the product view to any external FRU storage device that is present in the current FRU inventory.
Refer to [VITA] section 8.2 and the associated IPMI command definitions and Appendix B: Command Line Interface for details on how to use these commands to modify, save, or remove Chassis FRU Information through the CH1.
Board FRU Information
Each managed plug-in card, Power Supply Module, subsidiary XMC or FMC card, or other hardware element that is represented by an IPMC on the System IPMB is required to contain Board FRU Information as defined in the [ISD]. This data set includes several ASCII strings or numeric fields that provide the manufacture name, board name, part number, serial number, manufacture date, and other relevant information. Board FRU information is usually stored in non-volatile memory within the IPMC, or an external I2C-based serial EEPROM connected to the IPMC. Often, ChM and SMS software will only read Board FRU information from the underlying FRUs. Some FRUs may allow writing to their FRU Information devices, while other might not. Please refer to the vendor documentation for each card/device to determine whether writing their FRU Information Area is possible and what steps if any are required to enable this capability.
The ChM reads the FRU information for each new FRU and stores it in the ChM cache. This allows both the ChM and SMS software to quickly access FRU information without having to routinely access this information over the System IPMB interface.
FRU Inventory
During its start-up process, the ChM service quickly scans each hardware address in the Chassis Address Table (part of the Chassis FRU Information at FRU ID 254) to locate FRUs that are present within the chassis. As FRUs are discovered, they are assigned a FRU_ID within the FRU inventory (starting with the Logical ChM service (20h) at FRU #0, its ChMC (10h) at FRU #1, and incrementing upward). If FRU data has previously been gathered from a location, the cached information is checked against the current responses from the device. If there have been any changes to the underlying FRU, the ChM selectively re- loads FRU Information, Sensor Data Records, and other information as needed.
Confirmation Records included in the Chassis SDRs can inform the ChM service about FRUs that are expected or required and cause it to issue warning or error messages when an FRU is missing. An operator can add/remove confirmation records via the operator’s console.
The discovery process is continuous. An FRU’s start-up process may experience a delay for a variety of reasons, so even if the FRU is not found during the initial quick discovery process, the ChM will discover it later as part of its on-going health polling or event processing routines.
Note
|
VITA Tier-1 IPMCs that responds to an address not included in the Chassis Address Table will not be discovered. Similarly, the CH1 ChM service cannot manage IPMC that do not support the VITA 46.11 defined command set. |
As seen in Figure 2, once the discovery process is complete, the ChM represents each underlying device as FRU #n. FRU 0 represents the Chassis Manager Software or ‘the chassis’, while FRUs 1-252 target the individual FRUs that are present within the chassis. FRU 253 and FRU 254 serve as reserved logical FRU ID that enable access the physical view and product views of the Chassis FRU information. They are not physical FRUs; therefore, they will not appear in the FRU inventory, and they will not accept FRU control commands.

Figure 2. FRU Inventory displayed on the operator’s console
Interactions with a given FRU can be accomplished by sending VITA 46.11 commands containing the target FRU number to address 20h LUN 00b. The ChM will respond on the FRU’s behalf with locally cached data or poll the underlying FRU over IPMB as needed. The primary exception is reading sensor values. The IPMI sensor commands do not include a FRU_ID selection byte, and so, SMS software must bridge sensor commands through the ChM using a 'send message' request addressed to the sensor owner specified in the associated Sensor Data Record to forward a command to the underlying FRU via the System IPMB.
CHASSIS INITIALIZATION
Upon completion of the initial FRU discovery process, the ChM scans the SDR Repository to locate any Sensor Data Records that require initialization by the ChM. If a sensor is present and requires initialization, the ChM will send commands to the corresponding IPMC to perform the initialization. The ChM activates the Platform Event Filter and enables event generation for all sensor devices that support it once it completes initializing all sensors.
CHASSIS & FRU CONTROL
Control commands can come from the operator’s console, SMS Software, or from the ChM software itself based on various policy settings and platform event messages acted upon by the Platform Event Filter. The user can direct most commands either to the entire chassis (FRU 0), or to individual FRUs as needed.
Activation
The CH1 supports chassis control commands that rely upon the ChM to manage chassis start-up, reset, and shut-down. FRU State Policy Bits and scripts may be used to guide the ChM’s behavior. Alternatively, FRU activation can be controlled individually for each underlying FRU by sending FRU activation/deactivation commands to address 20h LUN 00b FRU N. This approach allows SMS software to implement start-up and shut-down sequences at a higher level if desired.
Once the ChM service completes its initialization phase, it will check the 'default activation locked' policy bit for FRU 0 (the chassis). If this bit is 'set' (1), the ChM will wait in FRU STATE 1h (stand-by) for a Chassis Activation command. If the bit is 'cleared' (0), or when a Chassis Activation command is received, the ChM first checks to see that no safety interlocks are open and that the power supply module is ready to provide payload power to the backplane. After meeting these conditions, the ChM will execute startup_script.txt from the ChM cache. If the script is not present, then the ChM will simply send FRU Activation commands to each underlying FRU in the chassis starting with FRU#1 and progressing incrementally.
Note
|
the default deactivation script does not monitor FRU states. If it is important to allow time or confirm that an FRU has completed its activation process before moving on to the next FRU or group of FRUs, you should use a custom start-up script or manage start-up individually from higher-level SMS software. |
Once activated, the chassis remains powered until the ChM detects a chassis level power-fault, receives a kill command, an event triggers de-activation via the Platform Event Table (non-maskable), or receives a valid Chassis Deactivation command.
Deactivation
If a power-fault is detected, or a kill command is received, the ChM will assert the INHIBIT* pin low to immediately disable the payload power outputs of the power supply unit(s) if the INHIBIT* pin has been connected from the CH1 I/O to the power supply. An event may trigger either an immediate deactivation (kill) or an orderly shut-down. In either case, the Commanded Deactivation Ignored (CDI) policy bit does not govern event triggered
The ChM will execute shutdown_script.txt from the ChM cache if it receives a Chassis Deactivation command while the CDI bit is cleared, or if an event triggers an orderly shutdown.. If the script is not present, then the ChM will simply send the FRU Deactivation command to each underlying FRU in the chassis starting with the highest active FRU ID and decrementing until it deactivates FRU 1 (which asserts INHIBIT* if this connection is supported).
Note
|
the default deactivation script does not monitor FRU states. If it is important to allow time or confirm that an FRU has completed its shutdown process before removing backplane power, you should use a custom shutdown script or manage shutdown individually from higher-level SMS software. |
Power-Cycle
Upon receiving a power-cycle command and with the CDI policy bit cleared, or when a power-cycle event is triggered, the ChM will initiate chassis deactivation (as explained earlier) and subsequently wait for a pre-configured duration before reactivating the chassis. This delay period is non-volatile and can be set either through IPMI command or via the operator’s console.
Resets
Reset |
Command/Signal |
Reset Description |
Chassis Reset |
Command |
This resets the ChM service itself, which can be done by sending a Chassis Reset command to address 20h LUN 00b, or by typing 'quit' on the operator’s console. Linux will then automatically restart the ChM service. |
SYSRESET* |
Signal |
If configured, this signal can be pulsed by sending a CHASSIS_CONTROL:hard reset command to address 20h LUN 00b, or by issuing a 'payload crst' command via the operator’s console. |
Diagnostic IRQ |
Command |
When this command is initiated, the ChM will send an FRU Control:diagnostic irq command to each underlying FRU. This can be done by sending a Chassis Control:Diagnostic IRQ command or from the operator’s console using the 'payload test' command. |
FRU Resets |
Command |
These commands individually reset FRUs. These include FRU Control:cold reset, warm reset, graceful reset, or Diagnostic IRQ to address 20h:LUN 00b:FRU N. The ChM will forward the command to the FRU via the System IPMB. |
IPMC Resets |
Command |
The ChM may send hard or warm reset to a particular underlying IPMC in response to an event trigger in the Platform Event Filter or if the ChM loses contact with a previously discovered IPMC. These resets can also be sent manually from the operator’s console. |
CMM RESET |
Signal |
CMM Reset is an active low signal that resets the Chassis Manager. |
GPIO Reset |
Signal |
This GPIO can be configured to receive or drive reset signals. Behavior can be defined with changes to the chassis manager software configuration |
SYSTEM EVENT HANDLING
The ChM service running on the CH1 maintains a log of events that can generate both internally, and externally. At power-up, the ChM’s Event Receiver address will default to 20h LUN 00b and it will consider itself to be 'the' System Event Log (SEL); meaning that, the ChM will log and process events locally without forwarding them to SMS software over the SMI interface. If SMS software sets the Event Receiver address of the ChM itself to anything other than 20h LUN 00b, then the ChM will forward all events that it generates or receives to the designated Event Receiver over the SMI interface.
Either way, the ChM will set the Event Receiver address in each of its underlying FRUs to 20h LUN 00b so that all FRUs in the chassis send their event messages to the ChM. Events received from previously undiscovered devices will trigger the ChM to attempt discovery at the specified source address. Sensor events for the VITA mandatory sensors will update the associated chassis level sensor, and temperature sensor events are monitored by the cooling control routine (if enabled) and may trigger an update to the fan settings. If the System Event Log (SEL) is enabled, the incoming event may be logged (refer to the Operator’s Console / SEL Set-up section for additional details).
Reading entries or erasing the SEL can be done using both console and IPMI. Only IPMI commands (platform event message or add SEL entry) can add information to the SEL.
PLATFORM EVENT FILTER (PENDING)
The Platform Event Filter (PEF) processes events as they arrive in the ChM Event Log and can trigger various actions. When both logging and the PEF are enabled, each new event is screened against the Event Filter Table (EFT), which is an end-user defined list of actions to be taken in response to various events. A given EFT entry (action) can be associated with a specific event from a specific device/sensor with a specific value, or it may apply to all events from of a given device, or all events from a given sensor type that contain specific value(s), or it may be even more abstract. Refer to [IPMI] section 17 for specific details. Supported Actions are listed in Table 8. An operator, or SMS software can update PEF control settings and EFT entries using either the operator’s console or related IPMI commands.
IPMI MESSAGE BRIDGING
The ChM can 'bridge' messages sent to it using the ‘send message command’ from one IPMI interface to another. This allows SMS software to directly interact with underlying FRUs by bridging commands sent on the SMI interface through the ChM to the IPMC that represents the target FRU via the System IPMB interface. If the IPMC on a FRU also supports message bridging, the message that SMS software sends to the FRUs IPMC may also be a send_message command that causes the IPMC to forward a message over its payload interface to an IPMI aware entity in the payload. The same path can work in reverse, with an IPMI aware payload sending messages through its IPMC to the ChM, or through the ChM as well to the SMS software.
AUTHENTICATION/PRIVILEGE
The ChM’s SMI interface requires an external entity to provide authentication credentials to establish as session (login). Each account carries an assigned maximum privilege level (user, operator, admin). An entity that attempts to issue a command that is above their privilege level will receive an error message and the command is ignored. Note that, unlike all the other commands, the privilege level of a 'send message' command is inherited from the message that is encapsulated within it (recursively). This mechanism helps to screen commands received on the external ChM interfaces to limit access to specific commands such as chassis reset, power-down, etc.
COOLING MANAGEMENT
The CH1 includes direct PWM control outputs and Tach monitoring inputs for up to two (2) cooling fans (or fan groups). If connected to fans in your chassis, these control signals may be managed either by the ChMC (local control) or through the Chassis Manager (ChM control).
Local Control (Pending)
The CH1 supports 'local control' of Fan PWM outputs. Each PWM output may be associated with a user defined temperature sensor within the ChMC. Typically, this temperature sensor measures the outlet air temperature for the associated fan. When the temperature drops below the designated 'low' temperature setting, the PWM duty cycle will drop to its lowest programmed setting (possibly 'off' or 0% duty cycle). When the temperature is between its 'low' and 'high' sensor thresholds, the PWM duty cycle is set to a 'nominal' setting. If the temperature exceeds the 'high' sensor threshold, the PWM duty cycle will increase to a 'medium' setting, and finally, if the temperature rises above the 'critical' sensor threshold, the PWM duty cycle is set to 100%. If local control has been enabled, these threshold and duty-cycle settings are pre-programmed into the ChMC when the CH1 is integrated into the chassis. To determine if these signals are available, please contact the factory for additional details.
When local control is enabled, the PWM duty cycle will be the larger of either the local control setting or the ChM control setting as described herein.
ChM Control
The Chassis Manager augments local fan control by implementing the Cooling Control capabilities defined in VITA 46.11 Section 4.1.11. At power-up, the ChM scans the Chassis Address Table found in the Chassis FRU Information looking for Fan Tray sites. If a Fan Tray site is found, and an IPMC that supports FAN Control commands is discovered in that site, the Fan Tray is included in the ChM’s list of Active Cooling Units. If at least one PWM output on the CH1 has been enabled via ChMCgen, then the ChM will recognize the ChMC as a Fan Tray and add it to the list of Active Cooling Units as well.
Next, the ChM searches the Chassis FRU Information for Chassis Fan Geography Records and parses them to associate physical sites in the chassis with specific fans in the various fan trays. If a given physical site is not included in any Chassis Fan Geography Record, it will be associated with (and therefore influence) all fans in all fan trays. You can query which fan trays are present and their fan associations from the ChM operator’s console. For details on how to create Chassis FRU Information including Chassis Fan Geography Records, refer to the CH1 Integration Guide and the ChMgen Users Guide.
Once all the FRUs in the chassis are initialized, the ChM continuously monitors the VITA defined FRU Temperature Sensor for each FRU (both by periodic polling and receiving event messages).
Whenever a threshold change is detected, the ChM updates its control setting for this FRU. When the temperature drops below the designated 'low' temperature setting, the ChM defers to local control. When no threshold crossings are asserted, the PWM duty cycle is set to a 'nominal' setting. If the temperature exceeds the 'high' sensor threshold, the PWM duty cycle will increase to a 'medium' setting, and finally, if the temperature rises above the 'critical' sensor threshold, the PWM duty cycle is set to 100%.
Periodically, the ChM scans through each fan in each Fan Tray and sends a command to update the speed setting for that fan based on the highest setting found among all FRUs that are associated with that fan.
Note
|
the ChM’s default behavior is to co-operate with any local control of the fans, so the actual PWM output to the fan will be the higher of the local control or the ChM commanded setting. You can override both local and ChM autonomous control over any/all fans via the operator’s console. |
OPERATOR’S CONSOLE
The operator’s console is an authenticated serial terminal interface. For Connection details, reference the INTERFACES section of this manual. This section describe each console command in context with other related commands.
Note
|
the CH1 currently does not implement authentication/privilege level on the console interface. The console is currently session-less with OEM privilege (all commands allowed). |
>help { command }
This command prints syntax and a brief description of each command that is available. Including a specific command will provide additional detail.

Figure 3. Summary of operator’s console commands
Most console commands can include a [dev] specifier to act on a specific underlaying FRU in the chassis. The [dev] specifier will accept the values listed in Table 5.
Pin |
Description |
blank or chassis |
Acts on the chassis as a whole |
fru N |
Where N is the FRU_ID number assigned to an IPMC |
0xHW |
Where HW is the 7-bit hardware address for an IPMC (assumes LUN 00b and FRU ID 0) |
0xHW:LL |
Where HW is the 7-bit hardware address for an IPMC and LL is the binary Logical Unit Number within that IPMC (assumes FRU ID 0) |
0xHW:LL:N |
Where HW is the 7-bit hardware address for an IPMC and LL is the binary Logical Unit Number within that IPMC and N is the local FRU ID number assigned to a subsidiary FRU represented by that IPMC |
SAh |
Where SA is the 8-bit IPMB address for an IPMC (assumes LUN00b and FRU ID 0) |
SAh:LL |
Where SA is the 8-bit IPMB address for an IPMC and LL is the binary Logical Unit Number within that IPMC (assumes FRU ID 0) |
SAh:LL:N |
Where SA is the 8-bit IPMB address for an IPMC and LL is the binary Logical Unit Number within that IPMC and N is the local FRU ID number assigned to a subsidiary FRU represented by that IPMC |
[site] [#] |
Where [site] is a valid site type from the list below and # is a valid site number found in the Chassis Address Table accessed at FRU 254 Site types: PIC, PEM, ChMM, ChID, FAN, FILTER, PNL, XMC, FMC, PSM, RTM, OEM, OEM# (0-7) |
Status Commands
>status
This command displays identification, current state, and sensor readings of the ‘chassis’ (entity 0x17:00).

Figure 4. Chassis Status displayed on the operator’s console
The identification fields (name, p/n, s/n) are from the product view Chassis FRU Information accessed at FRU 254 (refer to the FRU Information section). The ChM (20h) sensors are associated with the 'chassis' entity (0x17:00) and provide an 'aggregate view' of states within the Chassis Manager itself and the underlying FRUs throughout the chassis. Please refer to the Sensors sub-section under Chassis Control Signals.
>get ( backplane | generic )
This command displays identification, capabilities, and state of each physical site in the chassis based on the physical view Chassis FRU Information Records accessed at FRU 253 (refer to the FRU Information section). This view displays the default settings of a 'bare chassis' which will be used if no changes are made to them by the product view. It provides an overview of the basic configuration of the chassis, which can serve as a reference point for modifications.

Figure 5. Backplane capabilities displayed on the operator’s console
>get chassis ( chassis | app )
This command displays identification, capabilities, and state of each physical site in the chassis based on the physical view Chassis FRU Information Records accessed at FRU 254 (refer to the FRU Information section).
>get sites [-b | -c]
Option |
Response |
None / -c |
Displays current state of all logical sites listed in Chassis Address Table based on the Chassis FRU information accessed at FRU 254. |
-b |
Displays current state of all physical sites listed in Chassis Address Table based on the Chassis FRU information accessed at FRU 253. |
Sites that contain active FRUs have an assigned FRU number, display the FRU name from its Management Controller Locator Record, and show the IPMB STATUS and FRU STATE for that FRU. Sites that are empty/not-managed display '---' for the FRU number as seen in Figure 6.

Figure 6. Chassis Site Population displayed on the operator’s console
>get ipmb
This command displays System IPMB connectivity and supported capabilities for Chassis and each active FRU.
>get [dev] { -i | -d | -b | -s | -a }
Option |
Response |
None |
Returns current state of specified FRU. |
-i |
Includes 'FRU Information' from target FRU. |
-d |
Includes 'device details' from the IPMC of target FRU. |
-b |
Includes target FRUs Built-In Self-Test results. |
-s |
Includes current states of all sensors within target FRU. |
-a |
Includes ALL listed options. |
>get sensors {-a | device}
Option |
Response |
None |
Displays states of chassis sensors in Figure 4 without chassis identification. |
-a |
Includes all sensors from all active FRUs within chassis. |
device |
Displays the sensors for specified device (as described in 'get fru x' command) |
>get [dev] sensor N {settings}
If the user does not add 'settings', this command returns the current state of the specified sensor (by number) within the target FRU. Instead of 'fru x', you can also specify the target FRU by address as described for the 'get fru x' command.
If the user does include 'settings', this command returns the sensor/event enables, and for threshold-based sensors the threshold and hysteresis settings as shown in Figure 7. This command operates in conjunction with the 'set fru x sensor settings' commands (refer to the Chassis Setup sub-section).
Threshold appear in the following order: low fault, critically low, low, high, critically high, high fault; and hysteresis is listed in order: going-low and going-high.

Figure 7. Threshold-based Sensor Settings displayed on the operator’s console
>get sel { N | settings }
Option |
Response |
N |
Displays last 12 entries in System Event Log. Note: a maximum number of entries (N) can be specified. |
settings |
Displays current System Event Log settings; used in conjunction with >set sel commands (see SEL Setup section). |
Chassis/FRU Control
>kill
If ChM supports control of the INHIBIT* signal, initiating this command will immediately assert the INHIBIT* signal. This action should cause the power supply unit to disable power to the payload voltages in the backplane to force an emergency shutdown of all payload cards. This is equivalent to receiving a Chassis Control[0] command over the SMI interface.
|>payload { on, off, cycle, reset, test }
The payload command, when used without specifying an underlying FRU, is the same as receiving a Chassis Control command from SMS Software.
Option |
Response |
on |
Attempts to activate all the payload cards by executing the startup_script.txt located in the ChM cache. |
off |
Attempts to deactivate all the payload cards executing the shutdown_script.txt located in the ChM cache. |
cycle |
Executes the shutdown_script.txt, pauses for as determined by the power cycle delay setting (refer to the Chassis Setup section), and then executes the start_script.txt to re-activate all the payload cards. |
reset |
If ChM control of the SYSRESET* signal is supported, the 'reset' option causes the ChM to pulse SYSRESET* low for the duration that is statically configured into the CH1 ChMC. |
test |
ChM sends a FRU Control[diagnostic irq] command to each underlying FRU device that is currently being managed by the ChM. |
>payload {dev} [ on, off, crst, wrst, grst, test ]
Option |
Response |
on |
Sends 'on' FRU Activation command to IPMC of target FRU. |
off |
Sends 'off' FRU Activation command to IPMC of target FRU. |
crst |
FRU Control command that initiates cold reset to payload of the card. |
wrst |
FRU Control command that initiates warm reset to payload of the card. |
grst |
FRU Control command that initiates graceful reset to payload of the card. |
test |
FRU Control command that sends diagnostic interrupt request to payload of the card. |
You can determine which of these commands a FRU will accept using the 'get fru x -d' command and looking at the FRU Control capabilities listed for the FRU.
Cache Management
The CH1 maintains a 'cache' (etc/ChM) that is uses to expedite the power-up discovery process that it goes through when management power is first enabled. The cache contains both internal and external information and automatically updates whenever it detects changes in the Chassis FRU Information or underlying FRU population. Additionally, the cache stores a history file of console commands, and the SEL may be set-up to log events into files in the cache.
Internal files include:
File |
Description |
address_cache.bin |
Internal pointers/settings |
chassis_SDRs.hex |
CH1 device SDRs and user added Records |
ChM_FRU_info.hex |
FRU Information for the ChM Software (FRU 0) |
counter.bin |
Power-on hours count |
last_chm_event |
Index to last SEL event processed by the PEF |
last_sms_event.bin |
Index to last SEL event processed by SMS Software |
console_history |
List of recently used console commands |
>rm all
In general, the internal files should not be accessed by the user. If these files are erased (using 'rm all') they will be automatically re-generated when the ChM service is re-started; however, any previous POH hours, changes to settings, and user added SDRs will be lost. The one exception is ChM_FRU_info.hex. If this file is deleted, it must be re-loaded using the 'upload' command (see below) or you will get a discovery time warning that the ChM FRU information is missing, and the FRU Info AREA for FRU 0 will be null.
External files include:
File |
Description |
chassis_fru_info_253.hex |
Cached Chassis FRU information (physical view) |
chassis_fru_info_254.hex |
Cached Chassis FRU information (logical view) |
system_event.log |
Active log file - most recent events |
system_event_xyz.log |
Archived SEL files (xyz = closing timestamp) |
xSA…hex |
Cached information for a FRU at the specified hardware address |
>rm logs
The user may choose to remove previous log files using the 'rm logs' command. This command removes all the log files (including the active log). The SEL receiving its next event initiates the creation of a new log.
>rm { [dev] | frus }
This command allows the user to remove cached FRU information for a specific FRU or Site, or to flush all of the stored FRU information from the cache.
>rm backplane
This command will remove the chassis_fru_info_253.hex file from the cache. This will cause the ChM to search for physical Chassis FRU Information device(s) during discovery. The ChM will issue an error message and defer to the chassis_fru_info_254.hex (see below) if no device is found. As an alternative to storing the physical Chassis FRU Information in the ChMC or an EEPROM on the backplane or Chassis Info Site, the user can upload a backplane.hex file into the cache (see upload command) or enter basic Chassis FRU Information using console commands and save it to chassis_fru_info_253.hex (see Chassis Setup section).
>rm chassis
The command will remove the chassis_fru_info_254.hex file from the cache. This will cause the ChM to issue a warning message and defer to the chassis_fru_info_253.hex (see Chassis Discovery section). To create/update a chassis_fru_info_254.hex file, the user can create the file externally and upload it into the cache or enter basic Chassis FRU Information using console commands and save it to chassis_fru_info_254.hex (see below).
Chassis Setup
Once the CH1’s initial discovery and initialization process is complete, console commands may be used to update both physical (backplane = FRU 253) and local (chassis = FRU 254) descriptions of the chassis. If generation of Chassis FRU Information in the form of ASCII-HEX files requires an external tool, the user can upload them as chassis_fru_info_253.hex or chassis_fru_info_254.hex via the >upload command.
To manually modify information in either view, utilize the following console commands. After editing the information, it can be saved to the cache and underlying physical FRU storage device(s) as needed, particularly in the case of the physical view (FRU 253).
Ex:Turning on the CH1 for the first time in a new chassis that has a blank FRU EEPROM connected to the CH1’s ChMC as FRU 1.
-
The ChM runs its discovery process and finds the ChMC and discovers that a Chassis FRU information device exists, but its contents are 'not valid', resulting in a warning.
-
It checks the cache for the chassis_fru_info_253.hex file. If it does not find the file, it reports an error that no backplane information was found.
-
It checks the cache for the chassis_fru_info_254.hex file. If it does not find the file, it reports a warning that the file was not found.
-
The ChM defaults to 'unknown chassis' and populates both FRU 253 (backplane) and FRU 254 (chassis) with the default Chassis FRU Information.
-
The ChM assumes that the chassis includes a bussed, redundant IPMB topology and attempts to discover and initialize any FRUs that it finds.
In most instances of an off-the-shelf development chassis, this will be sufficient.
Physical View
The first step is to manually update the physical (backplane) Chassis FRU Information to reflect the true capabilities of the chassis using the commands described below:
>set ( backplane | generic ) type N
Generally, the correct type code for a desktop development chassis is 3. For other options refer to Table 16 in the System Management BIOS (SMBIOS) Reference Specification Version 2.7.1.
>set ( backplane | generic ) name <string>
Provides a descriptive name.
>set ( backplane | generic ) part <string>
Provide an ASCII string up to thirty-two (32) characters in length with the orderable part number for the generic chassis.
>set ( backplane | generic ) snum <string>
Provide an ASCII string up to thirty-two (32) characters in length with the serial number for this chassis.
>set ( backplane | generic ) ipmb { a | r } { 100 | 400 }
The current CH1 release supports only 'bussed' System IPMB topologies. This command allows the user to tell the CH1 if the System IPMB implementation in the chassis is singular or redundant and whether the bus must operate at or below 100 kHz (default) or it can operate at up to 400 kHz.
Option |
Response |
-a |
Only IPMB-A is available. |
-r |
Both IPMB-A and IPMB-B are available. |
Option |
Response |
100 |
Bus must operate at or below 100 kHz (default) |
400 |
Bus can operate up to or at 400 kHz. |
Note
|
Placing an IPMB Hub device (with static configuration) between the CH1’s System IPMB interface(s) and the radial or hybrid backplane (contact factory for additional details) allows for the implementation of other topologies. Because the CH1 references the logical Chassis FRU Information during initialization, the 'backplane' Chassis FRU information CAN include IPMB Descriptors that describe the true physical chassis implementation; however, the console commands do not currently support entering this information manually. Currently, creating the physical Chassis FRU Information requires an external tool, and that information may be loaded into an SEEPROM that the CH1 can access, or if ASCII- HEX format is used, the file can be uploaded into the cache as chassis_fru_info_253.hex. |
>set ( backplane | generic ) { ip | net | gateway } n.n.n.n
The default IPv4 address, Network mask, or default Gateway addresses for the generic chassis (no chassis_fru_info_253.hex file present) can be set using this command where 'n' is a decimal value between 0 and 255 inclusive.
Using this command and saving the backplane info without a chassis_fru_info_253.hex file in the cache, will cause the CH1, during its next power-up sequence, to update these 'static' settings and restart its IP service within Linux. The System Management Interface (SMI) will then respond accordingly going forward.
Product View
>set ( chassis | app ) type N
Generally, the correct type code for a desktop development chassis is 3. For other options refer to Table 16 in the System Management BIOS (SMBIOS) Reference Specification Version 2.7.1.
>set ( chassis | app ) name <string>
Provides a descriptive name.
>set ( chassis | app ) part <string>
Provide an ASCII string up to thirty-two (32) characters in length with the orderable part number for the generic chassis.
>set ( chassis | app ) snum <string>
Provide an ASCII string up to thirty-two (32) characters in length with the serial number for this chassis.
>set ( chassis | app ) ipmb { a | r } { 100 | 400 }
The current CH1 release supports only ‘bussed’ System IPMB topologies. This command allows the user to tell the CH1 if the System IPMB implementation in the chassis is singular or redundant and whether the bus must operate at or below 100 kHz (default) or it can operate at up to 400 kHz.
Option |
Response |
-a |
Only IPMB-A is available. |
-r |
Both IPMB-A and IPMB-B are available. |
Option |
Response |
100 |
Bus must operate at or below 100 kHz (default) |
400 |
Bus can operate up to or at 400 kHz. |
>set ( chassis | app ) { ip | net | gateway } n.n.n.n
The default IPv4 address, Network mask, or default Gateway addresses for the generic chassis (no chassis_fru_info_253.hex file present) can be set using this command where 'n' is a decimal value between 0 and 255 inclusive.
Using this command and saving the backplane info without a chassis_fru_info_253.hex file in the cache, will cause the CH1, during its next power-up sequence, to update these 'static' settings and restart its IP service within Linux. The System Management Interface (SMI) will then respond accordingly going forward.
Address Table
The last step is to update the physical Chassis Address Table to match the actual capabilities of the chassis. The default address table for an 'unknown chassis' contains every possible hardware address with mostly 'unknown' site type/number except ChMM, PSM, and PIC address ranges which are defined by VITA. During discovery, the polling of non-existent sites for potential FRUs can result in a lengthy delay. It also adversely effects the periodic FRU health polling routine with non-existent sites dramatically increasing the latency of the polling loop. It is necessary to optimize the address table in the backplane view so that it only contains sites that are physically present and 'may' have a card with an IPMC to represent it plugged in at some point.
>rm ( backplane | generic ) site all
This command allows the user to easily remove all the address table entries from the backplane view of the Chassis FRU Information.
>add ( backplane | generic ) site <hw_addr> <type> <number>
Use this command to add back only the hardware addresses that you want the ChMC to actively poll during its initial discovery and then within the health polling loop. For the backplane view, you should include all sites that are physically present.
The Hardware Address should take the form 0xAA where AA is the 7-bit I2C slave address that is associated with the physical site.
There are three methods for entering the Site Type: as a decimal number (0-99), as a HEX number in either NNh or 0xNN form, or as a string chosen from Table 6.
String |
Description |
PIC |
VPX Front Loading Card Slot |
PEM |
Power Entry Module |
ChMM |
Chassis Management Module |
ChID |
Chassis FRU Information Storage Site |
INFO |
Chassis FRU Information Storage Site |
FAN |
VPX Fan Tray |
FILTER |
VPX Filter Tray |
PNL |
Front Panel |
XMC |
VPX XMC Site |
FMC |
VPX FMC Site |
PSM |
Power Supply Module |
OEM |
OEM Defined Site type (0xC0) |
OEM1 |
0xC1 |
OEM2 |
0xC2 |
OEM3 |
0xC3 |
OEM4 |
0xC4 |
OEM5 |
0xC5 |
OEM6 |
0xC6 |
OEM7 |
0xC7 |
There are two methods for entering the Site Number: as a decimal number (0-99), or as a HEX number in either NNh or 0xNN form. Site numbers may be 'system relative' (0 - 191) or 'chassis relative' (192-255). Site numbers are assigned consecutively (starting with 1) for each site type. For example, a chassis with 6 PIC slots, with hardware addresses ranging from 0x41 to 0x47, the chassis relative site numbers assigned to them should be 0xC1-0xC7 (In this case relative to the Active Chassis Manager).
While it is not necessary to include 'subsidiary sites' in the Chassis Address Table, you may choose to do so. Especially in the chassis (logical) view, where it may be known that the PIC in a specific slot supports a subsidiary FMC site that is required to have an FMC card present, and you therefore want to include that subsidiary site in the health polling process. The Chassis Address Table must have consecutive entries representing the primary FRU site and its subsidiary site(s). The hardware address for both sites is the same. The first entry gets the primary site type (VPX front-loading card slot) while the second entry get the subsidiary site type (VPX FMC site). The subsidiary site(s) typically receive a 'device relative' site number starting with '0xC1' (in this case relative to the IPMC on the card in the primary site).
Note
|
The order of site polling during discovery and health polling affects the entry order. Although this may affect the chassis-level FRU IDs, the assignment is not guaranteed to follow the order due to the need for all IPMCs to be powered up and responsive during the ChM’s discovery process. In case an IPMC is not immediately responsive during the initial discovery process, a higher FRU number may be assigned later upon discovery by the health polling routine or Event Receiver. |
>rm ( backplane | generic ) site <hw_addr>
This command allows the user to remove all entries for a specific hardware address if any input errors have been made.
>set ( backplane | generic ) capability N
This command tells the ChM whether the implementation supports the extended capabilities listed in accompanying table. The setting is a single byte in HEX format (NNh or 0xNN). Each bit indicates support for a specific capability as indicated in the table.
Bit |
Description |
0 |
Intrusion Sensor |
1 |
Front Panel Lockout |
2 |
Diagnostic Interrupt |
3 |
Power Interlock |
7:4 |
Reserved |
>save ( backplane | generic ) { to cache (default) | to chassis | to eeprom | to [dev] }
Once all changes have been made, the Chassis FRU Information at FRU 253 can be saved as chassis_fru_info_253.hex in the ChM cache, copied into FRU 254 (to chassis), written into the FRU Information storage device(s) that has previously discovered to contain the physical Chassis FRU Information, and/or written into a specific FRU Information storage device (to [dev]).
Saving changes to FRU 253 does not immediately affect the current operating state of the ChM, but it may have an impact during the next time the ChM powers up (E.g., changes to the IPMB settings or Address Table may cause changes to the ChM behavior).
rm ( chassis | app ) site all
This command allows the user to easily remove all the address table entries from the chassis view of the Chassis FRU Information.
>add ( chassis | app ) site <hw_addr> <type> <number>
Use this command to add back only the hardware address that you want the ChMC to actively poll during its initial discovery and then within the health polling loop. See add ( backplane | generic } site for more details.
>rm ( chassis | app ) site <hw_addr>
This command allows the user to remove all entries for a specific hardware address if any input errors have been made.
>set ( chassis | app ) capability N
This command tells the ChM whether the implementation supports the extended capabilities listed in Table 7. The setting is a single byte in HEX format (NNh or 0xNN). Each bit indicates support for a specific capability as indicated in the table.
>set { chassis | app } { to cache (default) | to generic }
Once all changes have been made, the Chassis FRU Information at FRU 254 can be saved as chassis_fru_info_254.hex in the ChM cache, or copied into FRU 253 (to backplane).
Saving changes to FRU 254 does not immediately affect the current operating state of the ChM, but it may have an impact during the next time the ChM powers up (E.g., changes to the IPMB settings or Address Table may cause changes to the ChM behavior).
Logical View
Manually updating the logical (chassis) Chassis FRU Information to reflect the capabilities of the chassis as it is being used is the next step.
One possibility is simply to 'save' the physical Chassis FRU Information (FRU 253) to the logical view using the 'save backplane to chassis' command, and then 'save chassis' to create the chassis_fru_info_254.hex file in the ChM cache. At this point, chassis_fru_info_253.hex and chassis_fru_info_254.hex are identical.
Often, however, the logical view (chassis) is updated using 'set chassis' with all of the same command options described previously for the backplane info to differentiate the 'integrated product' from the 'bare chassis'. SMS software will see the 'logical' view (FRU 254) of the Chassis FRU Information, while the physical Chassis Information (FRU 253) is preserved and can be used to detect when the CH1 is moved to a different chassis, or 'fall back' if the chassis is to be re-purposed for a new application.
>save population { to chassis (default) | to backplane }
Use this command to add entries to a blank Chassis Address Table (either view) for all physical sites currently containing active FRUs. The primary objective of this command is to update the logical Chassis Address Table with only currently used sites, thereby optimizing the ChM’s discovery and health polling for maximum performance. However, in case a new card is added to an unused slot, the logical chassis address table needs to be updated, or else the ChM may fail to discover the card. If the newly added card generates an event after the ChM has enabled its Event Receiver, then the ChM will detect it and add it to the health polling loop, regardless of the Chassis Address Table entries, but this can result in an unpredictable situation.
>add [dev] confirmation
This command functions to add an FRU Confirmation Record for a specific device into the chassisSDRs.hex file. Adding the record to the SDRs will cause the ChM, during chassis initialization, to verify key responses from the device against the information stored during record creation. An event message generates when any change occurs. The Platform Event Filter (PEF) can be set-up to take actions or send alert messages to the SMS software as needed.
>rm [dev] confirmation
This command allows the user to remove an FRU Confirmation Record for the specified device from the chassisSDRs.hex file. This will not immediately remove the record from the SDR Repository; but the record will no longer be loaded into the Repository once the ChM is reset or power-cycled.
FAN Control
The following commands enable the user to assert direct control of an individual fan (or all fans in a tray) for troubleshooting purposes.
>set fan speed [ L | N | H | M ]
The Cooling Management routines determine the fan speed setting (0-100%) for fans associated with a given FRU site based on thresholds asserted by the FRU_TEMPERATURE sensor for each FRU. One of four speed settings are applicable: low (L), nominal (N), high (H), max (M). Settings entered using this command are saved in non-volatile memory and apply to all fans in all fan trays.
SEL Setup
There are several ways to manage the System Event Log. It may be 'volatile' so that the log starts 'empty' each time the chassis is turned-on, or it may be cached (non-volatile) so that events remain until the log is erased by an Admin or an IPMI command from SMS software. The log may contain 'all' events received by the ChM (typical for 'operational' mode), or set to filter events by criticality, type, or source (useful for integration debug and troubleshooting). The depth can be set from 16-16k events, and you may choose from several reactions with the SEL gets full. The following section describes the commands to set-up the. Settings are non-volatile.
>set sel size N
This command sets the depth of the ChM’s SEL table (as a decimal value from 100 to 65534).
>set sel [cache | circular | keep N ]
By using this command, the user can configure how the System Event Log (SEL) will be handled in the ChM. You can set the SEL to be cached or volatile and choose the action to take when the SEL table becomes full.
Reset |
Reset Description |
cache |
The SEL table is cached and each event is stored in the internal SEL table and system_event.log file in the ChM cache. When the SEL table is full, the system_event.log file is closed, and a new file is started. When the ChM is reset or power-cycled, it reloads the current system_event.log file into the SEL table before starting Built-In Self-Tests. |
circular |
The SEL table is volatile and has no entries when the ChM is reset or powered up. Events are added to the SEL until the maximum index is reached. |
linear (keep N%) |
The SEL table is volatile and has no entries when the ChM is reset or powered up. Events are added to the SEL until the maximum index is reached. When the SEL table is full, the last N% of events in the table are moved to the beginning, and the write pointer moves to the N%+1 location. N must be a whole integer between 0 and 100. |
Note
|
'keep 100' in effect means that the SEL will overflow, and events received after the SEL is full are lost until a command is received to erase the SEL. |
>set sel [ honor | ignore ]
This command determines whether the SEL will honor or ignore the NVMRO control input.
>set sel [ all | none | limit | critical ]
This command sets the 'logging threshold' for the SEL. In most instances an application will log 'all' events; however, there may be times (especially while troubleshooting) it may be desirable to limit what goes into the log.
Option |
Response |
all |
The SEL logs all events. |
none |
The SEL logs no events. |
critical |
The SEL processes all events internally, but only 'critical' events are logged. |
limit |
Only events from specific sources or of specific types are logged. |
>set sel from [ all | none | [dev1] [dev2] … ]
This command enables the creation a 'white list' (space-delineated string of device identifiers) that determines which origin(s) will be logged.
Ex: to log only events from three specific PICs, enter 'set SEL from 0x41 0x43 0x48'
>set sel type [ all | none | vita | oem | type1 type2 … ]
This command enables the creation of a 'white list' (space-delineated string of device identifiers) that determines which sensor types will be logged.
Option |
Response |
all |
All sensor types are logged. |
none |
No sensor types are logged. |
vita |
VITA 46.11-defined sensor types are logged. |
oem |
OEM-defined sensor type codes are logged. |
type N |
User-defined Sensory types are logged. |
Ex: to log only events from temperature sensors, enter 'set SEL type 1'
PEF Setup
The Platform Event Filter defaults to disabled state with no Event Filter Table entries. Settings entered from the operator’s console or via IPMI commands are 'volatile' until saved (committed) to the cache. To configure PEF parameters, the operator’s console uses the commands described in this section.
>get pef {-t}
Option |
Response |
none |
Displays the current PEF control settings. |
-t |
Displays the contents of the Event Filter Table (EFT). |
>set pef [ enable | disable ]
This command enables or disables PEF operation.
Command |
Response |
enable |
Enables PEF operation. When the PEF is enabled, the SEL processes each new entry in order. |
disable |
Disables PEF operation. When the PEF is disabled, each new entry in the SEL advances the 'last processed event' pointer. |
>set pef events [ enable | disable ]
This command enables or disables PEF events.
Command |
Response |
enable |
Enables events generated by the PEF when an action is triggered. |
disable |
Disables events generated by the PEF when an action is triggered. |
Note
|
If both logging and PEF event generation are enabled, events generated by the PEF are added to the System Event Log. |
>set pef control HH HH [ enable | disable ]
This command sets the ACTION-CTL parameters. Each parameter consists of one ASCII-HEX coded 'byte' with bit assignments as described in Table 8.
Note
|
the CH1 does not currently support Alert or OEM actions. |
Bit |
Description |
ACTION-CTL |
|
0 |
Enable/Disable Alert Actions (currently not supported) |
1 |
Enable/Disable Power-Down Action |
2 |
Enable/Disable Reset Action |
3 |
Enable/Disable Power-Cycle Action |
4 |
Enable/Disable OEM Action (currently not supported) |
5 |
Enable/Disable Diagnostic IRQ |
7:6 |
Reserved - write as '0' |
>set pef startup [ disable | N ]
This command serves to disable delayed start-up of the PEF or set the delay time as a decimal integer from 0 to 255 in seconds (default 60 seconds). Enabling this function will cause the ChM to delay startup of the PEF for the specified period after a ChM Initialization. This mechanism allows time for SMS software or an operator to disable or re-configure the PEF after start-up of the ChM so that it is possible to recover if a fault or error in an EFT entry causes the ChM to continually power down or reset the chassis.
>set pef erase
This command erases all the Event Filter Table entries so that a new set of Filters may be entered.
>set pef entry N HH…HH
This command functions to update Event Filter #N (0-63). The Event Filter entry must be a 20-byte (40 characters) ASCII-HEX string. No error checking or validation is performed. For details on the Event Filter format and how it is used by the PEF, refer to [IPMI] section 17.
Note
|
currently Alert and OEM actions are not supported by the CH1 (see Table 8). |
Chassis Settings
>set discovery ipmb { a | b | r } { 100 | 400 }
When the ChMC initiates discovery on the System IPMB, it defaults to a transmission rate of 100 kHz in Standard Mode and performs its initial discovery on IPMB-A only. After discovery is complete and all IPMCs report support for Fast Mode and redundant IPMB, the ChMC enables IPMB-B and switches to Fast Mode (400 kHz).
Before discovery starts, you can use this command to set up the ChMC’s IPMB configuration. If you know that all devices support Fast Mode and redundant IPMB, you can configure the ChMC to perform discovery at the higher speed using both interfaces. Then, the ChMC enables these capabilities in each IPMC as they are discovered, rather than waiting until after the initial discovery process is complete.
>set discovery delay N
The 'start-up delay' command allows the ChM to be configured with a delay before beginning the discovery process. This delay, specified by N as a decimal integer in seconds, is useful to ensure that all underlying IPMCs have completed booting and are ready for enumeration.
>set interval N
This command sets the interval that the ChM is observed between power-down and power-up when performing a 'power-cycle' of the chassis, with N representing the decimal integer in seconds.
>set polling N
This command allows the user to set the period for the health polling routine where N is a decimal integer in seconds. The ChM service utilizes a polling algorithm to collect information from multiple devices. The interval between polling cycles is determined by dividing the total polling time by the number of devices to poll, resulting in the sleep interval for each device in the loop.
>set io N [name]
The ChM supports several 'standard' signals that may be assigned to GPIO in the ChMC (see Table 9). This command allows you to tell the ChM which GPIO these signals are associated with so that the ChM can monitor and control them as needed. These settings are non-volatile.
Name |
Description |
sysreset |
SYSRESET* Output Driver (optional) |
interlock |
Safety/Tamper Interlock Switch |
Inputgood |
Input Power Good |
Bppwrgood |
Backplane Power Rails Good |
Device Settings
>set [dev] name < string >
This command overwrites the 16-bit device name in the ChM’s local cache of the Management Controller Locator Record (a device SDR) for the specified device. This will cause the ChM and SMS software to display this name in the FRU inventory rather that the underlying name found in the actual SDR read from the device. This setting persists until a change in the underlying device causes the ChM to refresh its cache for the affected device.
>set [dev] auto [ on | off ]
This command sends a command to the specified device to enable or disable its default FRU activation policy bit (non-volatile setting).
Command |
Response |
on |
Device autonomously activates its payload whenever it transitions from FRU State M0 to M1, and payload power is present on the backplane. |
off |
Device will remain in FRU state M1 until commanded to activate its payload. |
Sensor and SDR Settings
When the ChM discovers a new (or updated) FRU, it will load (refresh) its cache of SDRs for that device. Once this is done, the ChM will use the cached device SDRs for the device rather than re-loading them every time the chassis is turned-on. This provides the opportunity to 'overlay' event enables and threshold/hysteresis settings for any sensor in the chassis using the commands below. The overlayed event enables and/or threshold/hysteresis settings are automatically sent to the device during the ChM’s initialization phase. This does not update the SDRs in the target device. It is a 'run-time' modification of the sensor settings that persists only until the chassis is powered down. Any changes to the cached SDRs are lost if the device is modified and the ChM re-loads the device SDRs unless the changes have been explicitly saved to the target device.
>get [dev] sensor N settings
This command displays the current settings (read from the device) for the specified sensor N as shown in Figure 8. For an example of settings for a threshold-based sensor, see Figure 7.

Figure 8. Discrete Sensor Settings displayed on the operator’s console
As highlighted in Figure 8, the sensor (#0 of type F0h = FRU State sensor) has scanning enabled (which allows it to be periodically updated), and event generation is enabled for the sensor. The sensor is set to generate an assertion event whenever it enters one of the six (6) enabled states (0,1,4,5,6,7).
>set [dev] sensor { N } scanning [ on | off ]
This command sends an IPMI request to the target device to set the scan enable bit for the specified sensor. If a specific sensor number is not indicated, the command is applied to all sensors within the target device. This action is volatile.
>set [dev] sensor { N } events [ on | off ]
This command sends an IPMI request to the target device to set the sensor event enable bit for the specified sensor. If a specific sensor number is not indicated, the command is sent to all sensors within the target device. This command does not change the event assertion/de-assertion masks, it affects a single control bit that controls event generation at the 'sensor' level. This action is volatile.
User Admin
The ChM service maintains a non-volatile list of user accounts that is separate from the Linux users. There are two ways to update this list: either by using the related IPMI commands or by using the commands provided in this document through the Operator’s console. For secure access to both IPMI and Console sessions, user accounts are employed. These accounts authenticate a session and determine the maximum privilege level allowed for that session, ensuring that only authorized individuals access the system.
Debug/Troubleshooting
>set [dev] ipmb { a | b | r } { 100 | 400 }
This command will update the IPMB State settings for the target device. This action is 'volatile'; it only persists until the device is reset or power-cycled.
Option |
Response |
-a |
Enables IPMB-A only. |
-b |
Enables IPMB-B only. |
-r |
Enables both IPMB-A and IPMB-B simultaneously. |
Option |
Response |
100 |
Manual set the maximum operating frequency to 100 kHz. |
400 |
Manual set the maximum operating frequency to 400 kHz. |
When this command is directed to the ChMC, it has a direct impact on the usage of the System IPMB for all IPMCs that are connected to it.
>set fan [T[.F]] local enable|disable
Designation |
Response |
no designator |
Affects all fans in all fan trays. |
valid tray # (T) |
Affects only fans associated with selected tray. |
valid Fan ID (.F) |
Affects only the selected fan. |
Command |
Response |
enable |
Enables local control of fan. |
disable |
Disables local control of fan. |
>set fan [T.[.F]] enable|disable|shutdown|N [for S]
Designation |
Response |
no designator |
Affects all fans in all fan trays. |
valid tray # (T) |
Affects only fans associated with selected tray. |
valid Fan ID (.F) |
Affects only the selected fan. |
Command |
Response |
enable |
Enables ChM control of the fane (indefinite). |
disable |
Disables all cooling associations with the fan (disable (ChM control). |
shutdown |
Enables forced shutdown of fan; also allows for setting of a specific duty cycle (0-100%) |
N [for S] |
Fan is set to run indefinitely (no timeout) or for a specified period (S) that can range from 5 to 1275 seconds. |
Caution
|
Exhibit caution when using this command to either shutdown a fan or slow a fan indefinitely, as overheating can permanently damage the chassis' electronics. |
>get sdr { [dev] }
This command displays SDRs for the specified device from the ChM’s SDR Repository (cache). If the command does not indicate a specific device, ALL the SDRs are displayed.
>debug [level]
This command enables debug messages associated with one of the 'level' described in Table 10. Setting debug levels is cumulative (multiple levels can be active at the same time). These settings are non-volatile.
Level |
Description |
off |
Disables all levels. |
hold |
Holds ChM in pre-Standby state until a 'begin' command. |
on |
Low-level ChM bring-up/BIST messages. |
rmi |
Report messages sent/received on the RMI interface. |
smi |
Report messages sent/received on the SMI interface. |
ipmb |
Report messages sent/received on the Serial IPMI interface(s). |
discovery |
Detailed messages throughout the discovery process. |
queue |
Low-level reporting as messages move through various queues. |
events |
Report events as they are received/logged/processed. |
verbose |
Prove full detail when available. |
all |
Enables all the above levels. |
>send ctl
This command sends the 'ctl-i' character (09h) on the serial IPMB-0 interface to signal an external device to put its interface into Basic Mode so that you can send IPMB messages to the device.
Note
|
This action is non-standard and only applies to a NAI IPMC or ChMC device. |
>send [dev] NetFn CCDDDD….
This command allows you to send a raw (hex) command to the target device. The NetFn code can be entered as a decimal or hex (0xNN or NNh) value, or using one of the abbreviations listed in Table 11. The CC byte is the 'command code' (hex) and DD bytes are the request data bytes as needed (hex).
Level |
Description |
app |
0x06 - IPMI Application command set |
Storage |
0x0A - IPMI Storage command set |
event |
0x04 - IPMI event/sensor command set |
sensor |
0x04 - IPMI event/sensor command set |
vita |
0x2C - extended command set |
oem |
0x2E - extended command set |
mfg |
0x30 - extended command set |
>set chm { FAULT | STBY | SWAP }
Use this command to change the operational state of the ChM, either by emulating a 'fault condition' or causing the ChM to swap roles with a redundant ChM. When a redundant ChM is present, forcing a ChM into the stand-by role will cause them to re-negotiate for the active role.
>set polling { on | off }
Use this command to toggle the ChM’s health polling functionality on/off. This can be useful when testing messages on the System IPMB and monitoring responses without interruptions caused by the polling process.
Note
|
this setting is not permanent and only persists until the ChM is reset or powered off. |
Note
|
turning polling off may cause the chassis sensors to be 'out of sync' if any underlying FRUs do not generate events for every state transition. |
>upload [-y] < file name >
Utilize this command to put the console into 'upload' mode so that you can send an ASCII coded file over the terminal that the ChM will write into its cache using the specified file name.
Option |
Response |
-y |
Enables an autonomous over-write of an existing file. |
The command will timeout if it does not receive any file within thirty (30) seconds of initialization.
>quit
This command will gracefully terminate the ChM service. Linux will then automatically re-start the ChM service. In effect, this serves as a 'cold reset' or 're-boot' of the ChM software without having to login to the Linux terminal to stop/start the service or power-cycle the CH1 and re-boot Linux.
APPENDIX A: SUPPORTED COMMANDS
Supported IPMI Commands
IPM Device "Global" Commands |
NetFn |
CMD |
|
Get Device ID |
App |
0x01 |
|
Cold Reset |
App |
0x02 |
|
Warm Reset |
App |
0x03 |
|
Get Self Test Result |
App |
0x04 |
|
BMC Device and Messaging Commands |
NetFn |
CMD |
|
Set BMC Global Enables |
App |
0x2E |
|
Get BMC Global Enables |
App |
0x2F |
|
Clear Message Flags |
App |
0x30 |
|
Get Message Flags |
App |
0x31 |
|
Get Message |
App |
0x33 |
|
Send Message |
App |
0x34 |
|
Master Write-Read |
App |
0x52 |
|
Get System GUID |
App |
0x37 |
|
Get Channel Authentication Capabilities |
App |
0x38 |
|
Get Session Challenge |
App |
0x39 |
|
Activate Session |
App |
0x3A |
|
Set Session Privilege Level |
App |
0x3B |
|
Close Session |
App |
0x3C |
|
Get Session Info |
App |
0x3D |
|
Get AuthCode |
App |
0x3F |
|
Set Channel Access |
App |
0x40 |
|
Get Channel Access |
App |
0x41 |
|
Get Channel Info |
App |
0x42 |
|
Set User Access |
App |
0x43 |
|
Get User Access |
App |
0x44 |
|
Set User Name |
App |
0x45 |
|
Get User Name |
App |
0x46 |
|
Set User Password |
App |
0x47 |
|
Chassis Device Commands |
NetFn |
CMD |
|
Get Chassis Capabilities |
Chassis |
0x00 |
|
Get Chassis Status |
Chassis |
0x01 |
|
Chassis Control |
Chassis |
0x02 |
|
Chassis Reset |
Chassis |
0x03 |
|
Set Power Restore Policy |
Chassis |
0x06 |
|
Set Power Cycle Interval |
Chassis |
0x0B |
|
Get POH Counter |
Chassis |
0x0F |
|
Event Commands |
NetFn |
CMD |
|
Set Event Receiver |
S/E |
0x00 |
|
Get Event Receiver |
S/E |
0x01 |
|
Platform Event Message |
S/E |
0x02 |
|
PEF and Alerting Commands |
NetFn |
CMD |
|
Get PEF Capabilities |
S/E |
0x10 |
|
Arm PEF Postpone Timer |
S/E |
0x11 |
|
Set PEF Configuration Parameters |
S/E |
0x12 |
|
Get PEF Configuration Parameters |
S/E |
0x13 |
|
Set Last Processed Event ID |
S/E |
0x14 |
|
Get Last Processed Event ID |
S/E |
0x15 |
|
Sensor Device Commands |
NetFn |
CMD |
|
Get Device SDR Info |
S/E |
0x20 |
|
Get Device SDR |
S/E |
0x21 |
|
Reserve Device SDR Repository |
S/E |
0x22 |
|
Set Sensor Hysteresis |
S/E |
0x24 |
|
Get Sensor Hysteresis |
S/E |
0x25 |
|
Set Sensor Threshold |
S/E |
0x26 |
|
Get Sensor Threshold |
S/E |
0x27 |
|
Set Sensor Event Enable |
S/E |
0x28 |
|
Get Sensor Event Enable |
S/E |
0x29 |
|
Get Sensor Reading |
S/E |
0x2D |
|
Set Sensor Reading |
S/E |
0x30 |
|
FRU Device Commands |
NetFn |
CMD |
|
Get FRU Inventory Area Info |
Storage |
0x10 |
|
Read FRU Data |
Storage |
0x11 |
|
Write FRU Data |
Storage |
0x12 |
|
SDR Device Commands |
NetFn |
CMD |
|
Get SDR Repository Info |
Storage |
0x20 |
|
Reserve SDR Repository |
Storage |
0x22 |
|
Get SDR |
Storage |
0x23 |
|
Add SDR |
Storage |
0x24 |
|
Partial Add SDR |
Storage |
0x25 |
|
Clear SDR Repository |
Storage |
0x27 |
|
Get SDR Repository Time |
Storage |
0x28 |
|
Set SDR Repository Time |
Storage |
0x29 |
|
Enter SDR Repository Update Mode |
Storage |
0x2A |
|
Exit SDR Repository Update Mode |
Storage |
0x2B |
|
SEL Device Commands |
NetFn |
CMD |
|
Get SEL Info |
Storage |
0x40 |
|
Reserve SEL |
Storage |
0x42 |
|
Get SEL Entry |
Storage |
0x43 |
|
SEL Device Commands |
NetFn |
CMD |
|
Add SEL Entry |
Storage |
0x44 |
|
Partial Add SEL Entry |
Storage |
0x45 |
|
Clear SEL |
Storage |
0x47 |
|
Get SEL Time |
Storage |
0x48 |
|
Set SEL Time |
Storage |
0x49 |
|
LAN Device Commands |
NetFn |
CMD |
|
Set LAN Configuration Parameters |
Transport |
0x01 |
|
Get LAN Configuration Parameters |
Transport |
0x02 |
|
Suspend BMC ARPs |
Transport |
0x03 |
|
Get IP/UDP/RMCP Statistics |
Transport |
0x04 |
|
Firmware Firewall Commands |
NetFn |
CMD |
|
Get NetFn Support |
App |
0x09 |
|
Get OEM NetFn IANA Support |
App |
0x64 |
|
Get Command Support |
App |
0x0A |
|
Get Command Sub-Function Support |
App |
0x0B |
|
Get Configurable Commands |
App |
0x0C |
|
Get Configurable Commands Sub-Functions |
App |
0x0D |
|
Get Command Enables |
App |
0x61 |
|
Firmware Firewall Commands |
NetFn |
CMD |
|
Get Configurable Command Sub-Function Enables |
App |
0x63 |
|
Set Command Enables |
App |
0x60 |
|
Set Configurable Command Sub-Function Enables |
App |
0x62 |
|
VITA 46.11 Commands |
NetFn |
Group ID |
CMD |
Get VSO Capabilities |
Group Extension |
VSO (03h) |
0x00 |
Get Chassis Address Table Info |
Group Extension |
VSO (03h) |
0x01 |
Get Chassis Identifier |
Group Extension |
VSO (03h) |
0x02 |
Set Chassis Identifier |
Group Extension |
VSO (03h) |
0x03 |
Set FRU Control |
Group Extension |
VSO (03h) |
0x04 |
Set IPMB State |
Group Extension |
VSO (03h) |
0x09 |
Set FRU State Policy Bits |
Group Extension |
VSO (03h) |
0x0A |
Get FRU State Policy Bits |
Group Extension |
VSO (03h) |
0x0B |
Set FRU Activation |
Group Extension |
VSO (03h) |
0x0C |
Get Device Locator Record ID |
Group Extension |
VSO (03h) |
0x0D |
Get Fan Speed Properties |
Group Extension |
VSO (03h) |
0x14 |
Set Fan Level |
Group Extension |
VSO (03h) |
0x15 |
Get Fan Level |
Group Extension |
VSO (03h) |
0x16 |
Get IPMB Link Info |
Group Extension |
VSO (03h) |
0x18 |
Get Chassis Manager IPMB Address |
Group Extension |
VSO (03h) |
0x1B |
Set Fan Policy |
Group Extension |
VSO (03h) |
0x1C |
VITA 46.11 Commands |
NetFn |
Group ID |
CMD |
Get Fan Policy |
Group Extension |
VSO (03h) |
0x1D |
FRU Control Capabilities |
Group Extension |
VSO (03h) |
0x1E |
FRU Inventory Lock Control |
Group Extension |
VSO (03h) |
0x1F |
FRU Inventory Device Write |
Group Extension |
VSO (03h) |
0x20 |
Get Chassis Manager IP Address |
Group Extension |
VSO (03h) |
0x21 |
Get FRU Address Info |
Group Extension |
VSO (03h) |
0x40 |
Get Mandatory Sensor Numbers |
Group Extension |
VSO (03h) |
0x44 |
Get FRU Hash |
Group Extension |
VSO (03h) |
0x45 |
Get Payload Mode Capabilities |
Group Extension |
VSO (03h) |
0x46 |
Set Payload Mode |
Group Extension |
VSO (03h) |
0x47 |
Get Write Protect Capabilities |
Group Extension |
VSO (03h) |
0x48 |
Get Write Protect Enables |
Group Extension |
VSO (03h) |
0x49 |
Set Write Protect Enables |
Group Extension |
VSO (03h) |
0x4A |
Get Power Supply Capabilities |
Group Extension |
VSO (03h) |
0x4B |
Get Power Supply Status |
Group Extension |
VSO (03h) |
0x4C |
Set Power Supply Status |
Group Extension |
VSO (03h) |
0x4D |
Get Control Bits Capabilities |
Group Extension |
VSO (03h) |
0x4E |
Get Control Bits |
Group Extension |
VSO (03h) |
0x4F |
Set Control Bits |
Group Extension |
VSO (03h) |
0x50 |
Bridged Firewall Commands |
NetFn |
Group ID |
CMD |
Get Bridged NetFn Support |
Group Extension |
VSO (03h) |
0x51 |
Get Bridged Command Enables |
Group Extension |
VSO (03h) |
0x52 |
Set Bridged Command Enables |
Group Extension |
VSO (03h) |
0x53 |
Get Bridged Command Sub-Function Enables |
Group Extension |
VSO (03h) |
0x54 |
Set Bridged Command Sub-Function Enables |
Group Extension |
VSO (03h) |
0x55 |
Set Bridged NetFn Policy |
Group Extension |
VSO (03h) |
0x56 |
Get Bridged NetFn Policy |
Group Extension |
VSO (03h) |
0x57 |
APPENDIX B: COMMAND LINE INTERFACE
At the command-line prompt, simply type 'help' to see which privilege level is active (operator vs admin), and which commands are currently available. The basic operator level commands are as shown in Figure 9.

Figure 9. Operator level commands
Operator Mode Commands
These commands allow a user to identify and check the status of the FRU and perform limited activation, de-activation, and FRU recovery (reset/diagnostic) operations from the console.
>help
This displays a list of commands with a short description of each command (shown in Figure 9 above).
>status
This command displays the operational state of FRU0 and any subsidiary FRUs and their sensors as shown in Figure 10. The information is updated once per second until the user begins to type another command, or any event message is printed to the console.
The first line of status information shows the software and firmware (FPGA fabric) versions that are currently loaded into the device followed by the time of day HH:MM:SS.

Figure 10: Status Display
The second line of status information indicates whether Event Forwarding is enabled or disabled. The next group of lines identify the ChMC itself and an NVM that holds backplane information. The main output from the 'status' command is information on all of the included sensors. Sensors 00-08 are defined in VITA 46.11-2022 with Sensor 07 (Payload Mode) having different modes defined between SOSA and VITA. The CH1 is configured for SOSA. If a different configuration is desired, please contact the factory. Sensor 08 is not required by SOSA or VITA though is recommended. Detailed definitions of the sensors can be found in the VITA 46.11-2022 and the SOSA specifications.
>show FRUx
The show FRUx command shows board and/or product FRU information for the card that is represented by the ChMC (the X may be omitted for FRU0). When FRU0 is a carrier that includes subsidiary FRU devices (FMC, XMC, etc…) the X determines which subsidiary device is accessed.

Figure 11: FRU Information display
>payload on | off | rst x | test
The payload on and payload off commands are equivalent in effect to sending a [VITA] FRU_activation command to activate or de-activate the payload connected to the ChMC. See previous sections for details on the power-up and power-down sequences related to FRU activation. The CH1 is configured to assert INHIBIT*_O to a payload off command.
The payload rst c and payload rst w commands are equivalent in effect to sending a [VITA] FRU_control cold reset or warm reset command respectively. The CH1 is configured to assert SYSRESET*_O in response to a payload rst command.
The payload test command is equivalent in effect to sending a [VITA] FRU_control diagnostic irq command. This command does not effect the CH1.
>FRUx on | off | rst
Similar to the payload commands above, the FRUx on, FRUx off, and FRUx rst allow you to activate, deactivate, or assert cold-reset to the specified subsidiary FRU independently of the base FRU (FRU0). The only FRU for the CH1 is the chassis itself.
>get ipmb [c | p | l]
The get_ipmb command displays the current state and statistics for each of the IPMB interfaces of the ChMC to help with troubleshooting IPMB communication issues. The display shows which I2C interfaces and address(es) are associated with each IPMB channel, and the rate at which it is operating. Figure 12 is an example output if no arguments are provided. If arguments are provided, then 'get ipmb c' returns the Chassis IPMB_0. The arguments 'p' and 'l' return Payload (IPMB_2) and Local (IPMB_3), respectively.

Figure 12: IPMB Statistics
>States
The states command displays the current logic states of various flags and signals within the ChMC as shown in Figure 13. This display may be useful for in-system troubleshooting.

Figure 13. Display of signal/flag states
For signals, a=asserted, d=de-asserted, z=high-impedance. If a signal is configured as active low (INV=L), then asserted means that this signal is low. If a signal is configured as active high (INV=H), then asserted means that the signal is high. For GPIO, the INV register shows whether the I/O pad is configured active- high or active-low.
The IPMCf register contains Self-Test results and stays valid for later evaluation. The IPMIf register contains the internal state of the ChMC. Both the IPMCf and IPMIf registers are defined in Appendix A.
The lower 8 bits of the hFLAGS register duplicate the lower bits of the IPMCf register. Additional faults may be mapped into the upper bits of this register, which then affect the FRU_HEALTH_SENSOR. Check the vendor documentation for your card to see if additional faults have been included.
The vFLAGS register may have up to 24 pGood inputs mapped into various bits. When the pGood input is asserted, the corresponding bit is cleared (i.e. '1' = fault). Check the vendor documentation for your card to see if/how the various pGood signals have been mapped.
The tFLAGS register shows the threshold states for up to 4 temperature sensors that may be mapped into the FRU_TEMPERATURE sensor. There are six thresholds associated with each sensor. They are mapped into the register as 6 consecutive bits with High_Fault, High_Critical, High, Low_Fault, Low_Critical, and Low from left to right. The thresholds for sensor 1 are mapped to bits[5:0], while the thresholds for sensor 4 are in bits [23:18].
Admin Mode
For any of the NAI evaluation or reference builds, simply type admin at the command line to login as the admin. The initial password is NULL. Once in admin mode, you have the option to set a password containing up to 16 characters long using any displayable keyboard characters. Once a password is set, it must be included as admin <password> on the command-line to login to admin mode.
The admin commands are shown in Figure 14. Admin mode allows greater access to view current settings and states within the ChMC, dump or erase the SEL and SDR repositories, control the JTAG MUX, upload configuration settings, and reset ChMC interfaces (warm reset) or REBOOT the ChMC software (cold reset).

Figure 14. Admin level commands
>set password
The set password [password] command can be used to set a 16-character password to deter casual access to the admin commands. This password is stored in non-volatile memory and cannot be altered except by entering admin mode and then using the set password command, or complete erasure and re-programming of the SmartFusion2 device through JTAG (which requires both the Flash-Lock key and a 256-bit AES key).
Once a password is set, it must be included on the admin <password> command line in order to log-in to admin mode.
>setup FRUx [bsn|bfn|psn|ver|tag |pfn]
This command is used to set up the information shown in Figure 15 (above).
Info |
Description |
bsn |
Board Serial Number |
bfn |
Board File Number |
psn |
Product Serial Number |
ver |
Product Version ID |
tag |
Asset Tag Number |
pfn |
Product File Name |
>get/set/clr xyz
set (gpio, time, auto, dci, uart, db, nvmro, sysrst, led1, led2, pavail, gap, por_en_ipmbb, ga, )
Command |
Response |
gpio |
Manually asserts/deasserts a GPIO Ex: set gpio 3 D will deassert gpio 3; the updated GPIO value can be viewed by issuing the 'states' command. |
time |
Allows the user to enter a 32-bit UNIX epoch to initialize the RTC (if present in system). The 32-bit hexidecimal value is the number of seconds that have elapsed since Jan 1st, 1970 midnight UTC/GMT. Ex: "set time 63878B33" will set the current time to Wednesday, November 30, 2022 4:56:19 PM (GMT). |
auto |
Issues payload on commands automatically once the ChMC has booted and finished BIST. |
dci |
Changes the Ignore Deactivation Command bit so that the ChMC will not accept de-activation commands. |
uart |
Changes the baud rate for UART 0 and UART 1. Ex: set uart0 115200 will set the baud rate of the UART 0 interface to 115200 Baud. |
db |
Changes the debounce value with a range from 0 to 255ms. Ex: set db 200 will apply a 200ms debounce. |
nvmro |
Asserts NVMRO. Requires the user to be in test mode. Ex: set nvmro |
sysrst |
Asserts SYSRESETn. Requires the user to be in test mode. Ex: set sysrst |
led1 |
Asserts Green LED. Requires the user to be in test mode. Ex: set led1 |
led2 |
Asserts Red LED. Requires the user to be in test mode. Ex: set led2 |
pavail |
Asserts Payload power available. Requires the user to be in test mode. Ex: set pavail |
gap |
Asserts Global address parity - odd. Requires the user to be in test mode. Ex: set gap |
por_en_ipmbb |
Asserts Enable IPMB_B receives at POR. Requires the user to be in test mode. Ex: set por_en_ipmbb |
ga |
Asserts Global address. Requires the user to be in test mode. Ex: set ga |
get (time, uart)
Command |
Response |
time |
Returns the 32-bit UNIX epoch timestamp in hexidecimal format. |
uart |
Returns the baud rate assigned to UART0 and UART1. If the user has not configured the baud rate with the set uart command, get UART will return 0 for the baud rate value |
clr (auto, wp, dci, nvmro, sysrst, led1, led2, pavail, gap, por_en_ipmbb, ga)
Command |
Response |
auto |
Removes the automatic boot of the FRUs when the ChMC finishes booting. The user will have to issue payload on commands for the FRUs. |
wp |
Enables user to clear write protect settings when eNVM has been write protected through the VITA 'set write protect' command. |
dci |
Changes the Ignore Deactivation Command bit so that the ChMC will accept de-activation commands. |
nvmro |
Deasserts NVMRO. Requires the user to be in test mode. Ex: clr nvmro |
sysrst |
Deasserts SYSRESETn. Requires the user to be in test mode. Ex: clr sysrst |
led1 |
Deasserts Green LED. Requires the user to be in test mode. Ex: clr led1 |
led2 |
Deasserts Red LED. Requires the user to be in test mode. Ex: clr led2 |
pavail |
Deasserts Payload power available. Requires the user to be in test mode. Ex: clr pavail |
gap |
Deasserts Global address parity - odd. Requires the user to be in test mode. Ex: clr gap |
por_en_ipmbb |
Deasserts Enable IPMB_B receives at POR. Requires the user to be in test mode. Ex: clr por_en_ipmbb |
ga |
Deasserts Global address. Requires the user to be in test mode. Ex: clr ga |
>SEL erase
In Admin Mode the erase option is added to the SEL command. The option erases all the entries in the System Event Log.
>SDR erase | count | dump
This command can erase all of the SDRs, count them, or write them all to the screen in a HEX format.
>upload
The upload command is used to load configuration or FRU information files into the ChMC. These files may be generated from the [IPMCgen] tool. This command supports uploads to several partitions within the ChMC’s non-volatile memory. NVMRO must be de-asserted to use this command. Refer to 'How to Upload Configuration Files' in IPMCgen User Guide.
>warm_reset
This command is equivalent to the [IPMI] warm_reset request. This action flushes all of the interface buffers and re-initialized the IPMB, I2C, SPI and serial interfaces. It will also clear FRU_VOLTAGE faults associated with attempting to activate the payload while payload power is not available (pAVAIL de- asserted) and reset the sensor event status of all sensors (cause them to re-send their current event state).
>REBOOT
This command is equivalent to the [IPMI] cold_reset request or asserting the soft-reset input to the ChMC. It causes the software to completely re-start as if from power-up - EXCEPT that the time and test register values are not reset.
>debug events|ipmb|nvm|off
This command enables or disables additional diagnostic messages to the console output.
Debug Mode
If the ChMC is configured to include debug access, admin mode will include the 'debug enable' command. Once debug is enabled, the 'help' display includes access to the debug commands shown in Figure 15.

Figure 15. ChMC Debug Commands
These commands provide low-level access to read and write individual bits and bytes within and over various registers and interfaces on the ChMC to aid in bring-up, testing, and debugging of a card.
>mode test | run
By default, the ChMC will power-up in run mode. If a card is on the bench or in a test fixture without valid VPX backplane inputs (SYSRESET*, NVMRO, GAP, GA…), the test mode can be used to give a user control of various control inputs using the set and clr commands. Test mode causes the ChMC software to look at a 'test register' instead of the actual input pads for some signals (see set/clr command). Once test mode is activated settings will persist even through 'reboot' until you power-cycle or use DEVRSTn to hard reset the ChMC. So, the typical use model is to put the ChMC into test mode, set/clr control signals to the desired states, and then REBOOT the ChMC so that it boots into test mode with the desired states present during the initialization process.
>peek / poke
The peek/poke commands allow you to directly read and write 32-bit data from and to internal registers in the ChMC for testing and troubleshooting. For detailed information about the low-level registers within the ChMC please contact the factory.
>no_poll | poll
The no_poll command is used to temporarily turn-off device descriptor and sensor polling so that you can read/write on the I2C interfaces and get/set GPIO states without battling the ChMC of the interfaces or having the ChMC over-write the 'state' that you are trying to induce.
>i2c w N SA HHHHHHHH…
This command performs a simple I2C write on the selected bus (N = 0-7) targeting the device specified by the 7-bit Slave Address (SA). The specified HEX bytes (there must be an even number of characters) are written from left to right.
>i2c r N SA NB
This command performs an I2C read on the selected bus (N = 0-7) targeting the device specified by the 7- bit Slave Address (SA). It will read and display the specified number of bytes (NB = 01 - FF).
>smb w N SA CC HHHHHHHH…
This command performs an SMBus/PMBus write on the selected bus (N = 0-7) targeting the device specified by the 7-bit Slave Address (SA). The specified command code (CC) is written first followed by the HEX bytes (there must to an even number of characters) are written from left to right.
>smb r N SA CC NB
This command performs an SMBus/PMBus write on the selected bus (N = 0-7) targeting the device specified by the 7-bit Slave Address (SA). The specified command code (CC) is written first followed by a 'restart' that reads the specified number of bytes (NB = 01 - FF).
>set gpio # a | d | z
This command is used to set GP Output state (a = assert, d = de-assert, z = hi-z).
>set/clr [signal]
When the ChMC is in test mode, the set and clr commands will assert or de-assert the specified ChMC inputs (read from an internal register) as listed in Table 12.
Signal |
Description |
Register |
sysrst |
VPX SYSRESET input |
test |
nvmro |
VPX NVMRO input |
test |
pavail |
Payload power available input |
test |
por_en_ipmbb |
Enable IPMB_B receives at POR |
test |
gap |
Global address parity - odd |
test |
ga nn |
Global address (nn = 0-31) |
test |
The set/clr commands can also be used to set the state of various outputs listed in Table 13.
Signal |
Description |
Register |
led1 |
Green LED output |
Out1 |
led2 |
Red LED output |
Out1 |
gpio nn s |
ChMC output [0-95] s: a=assert, d=de-assert, z=tri-state |
GPE/GPO |
auto |
Default Activation Locked Policy Bit |
NVM |
dci |
De-Activation Command Ignored Policy Bit |
NVM |
wp |
Write Protect clr only |
NVM |
uart |
||
db |
Debounce |
>read/write
The read/write commands allow you to directly read and write memory contents within various partitions of the ChMCs non-volatile memory (NVM). NVMRO must be de-asserted to use the write command. For detailed information about the configuration memory spaces within the ChMC please contact the factory.
>get SMS
This command reads all messages from the SMS queue and displays them as HEX strings on the console before deleting them.
>ipmb_send [bus] [IPMI message - in HEX]
This command is used to send an IPMI message on the specified IPMB interface. The message is entered as a HEX string. You do not need to include the final checksum byte as the ChMC will calculate that for you. The target interface is specified as c=chassis (IPMB-0), p=SCL/SDA[2], or 'l'=SCL/SDA[3].
When sending messages from the command-line, you will want 'debug ipmb' on and specify the rqSA:00b as the IPMB address of this ChMC so that the response comes back to this ChMC and is displayed on the console. You may also choose to use rqSA:10b as the requestor address so that the response will be routed into the SMS Queue for later retrieval.
Ex: 'get device ID' request to device at 82h from 80h: ipmb_send c 821866800401<enter>
NAI Cares
Edit this on GitLab
North Atlantic Industries (NAI) is a leading independent supplier of Embedded I/O Boards, Single Board Computers, Rugged Power Supplies, Embedded Systems and Motion Simulation and Measurement Instruments for the Military, Aerospace and Industrial Industries. We accelerate our clients’ time-to-mission with a unique approach based on a Configurable Open Systems Architecture™ (COSA®) that delivers the best of both worlds: custom solutions from standard COTS components.
We have built a reputation by listening to our customers, understanding their needs, and designing, testing and delivering board and system-level products for their most demanding air, land and sea requirements. If you have any applications or questions regarding the use of our products, please contact us for an expedient solution.
Please visit us at: www.naii.com or select one of the following for immediate assistance: