This document describes detailed IPMI commands for original equipment manufacturers (OEMs) who are designing systems based on reference designs for Ampere Computing® ARM 64-bit multi-core processors.
Below table shows supported IPMI OEM commands
Command name | NetFn | Cmd |
---|---|---|
Set BMC MAC address | 0x3c | 0x01 |
Get Fan Speed Control Override Status | 0x3c | 0x02 |
Set Fan Speed Control Override | 0x3c | 0x03 |
Set FAN Speed | 0x3c | 0x04 |
Set SoC Power Limit | 0x3c | 0x11 |
Get SoC Power Limit | 0x3c | 0x12 |
Trigger Host Firmware Crash Dump | 0x3c | 0x15 |
Get SCP Register Value | 0x3c | 0x17 |
Get SCP Register Value | 0x3c | 0x18 |
Set DRAM Max Throttle Enable | 0x3c | 0x1e |
Get DRAM Max Throttle Enable | 0x3c | 0x1f |
Set Scan Dump Mode | 0x3c | 0x25 |
Get Scan Dump Mode | 0x3c | 0x26 |
Set Host Firmware Revision | 0x3c | 0xf0 |
Set Firmware in-band update status | 0x3c | 0xf6 |
Time Change Notification | 0x3c | 0xf9 |
The command sets the BMC MAC address for the Reduced Gigabit Media-Independent Interface (RGMII) and writes to the Field Replaceable Unit (FRU). This OEM command supports these cases:
- Rewrite new BMC MAC address if the FRU already has the right MAC address format in Board Extra 1.
- Create Board Extra and write the new BMC MAC address if the FRU does not have Board Extra information (except when Board Information Area does not have enough space for it).
- Rewrite the new BMC MAC address if the FRU contains an invalid MAC address format in Board Extra 1 (except when Board Information Area does not have enough space for it).
Request
Byte(s) | Data |
---|---|
1-6 | MAC Address byte 1 - 6 |
Response
Byte(s) | Data |
---|---|
1 | Completion Code 0x00: Success |
2 | Written byte count |
Example: write new MAC Address 70:E2:84:8F:E3:56
$ ipmitool raw 0x3c 0x01 0x70 0xE2 0x84 0x8F 0xE3 0x56
Note: The Ampere-formatted FRU defines a Custom Board Info Field of 17 bytes “XX:XX:XX:XX:XX:XX” for MAC address in the Board Information Area. This FRU content should be flashed to the FRU EEPROM before running this command; otherwise, it may fail.
The command gets the thermal control operational status.
Request: None
Response
Byte(s) | Data |
---|---|
1 | Completion Code 0x00: Success CC_UNSPECIFIED_ERR = Cannot get thermal control status |
2 | Thermal Control operational status 0x00 = Enabled 0x01 = Disabled |
The command sets the thermal control operational status. When thermal control is disabled, all fans under thermal control run at the current duty cycle. Thermal control is initialized with a predefined duty cycle for all fans that may vary between platforms. Individual chassis fan speeds can be changed using the Set Fan Speed command. This setting is lost after a BMC reset and the default thermal control status (enabled) is restored.
Request
Byte(s) | Data |
---|---|
1 | Thermal control operational status to be set 0x00 = Enable 0x01 = Disable |
Response
Byte(s) | Data |
---|---|
1 | Completion Code 0x00: Success |
2 | Thermal control operational status 0x00 = Enabled 0x01 = Disabled |
The command sets the Pulse Width Modulation (PWM) duty cycle of a cooling fan. Thermal control must be disabled (using the Set Fan Speed Control Override command) before executing this command.
Request
Byte(s) | Data |
---|---|
1 | FAN number 0: FAN0 1: FAN1 ... |
2 | PWM duty cycle to be set (1-100) |
Response
Byte(s) | Data |
---|---|
1 | Completion Code 0x00: Success |
2 | Fan speed change result 0x00 = Success 0x01 = Error: Invalid fan number 0x02 = Cannot set fan speed because thermal control is not disabled 0xFF = Set fan speed error |
Note: Mapping between fan number and fans on the system depends upon the system design
The command sets the SoC power limit.
Note: The supported power limit values can vary depending upon the specific platform.
Request
Byte(s) | Data |
---|---|
1 | Configured SoC power limit (upper) |
2 | Configured SoC power limit (lower) |
Response
Byte(s) | Data |
---|---|
1 | Completion Code 0x00: Success 0xC9 = Input value is out of range (less than the minimum TDP power or greater than the maximum TDP power) 0xD5 = The BMC could not send the data to the host. 0xD6 = Not supported in this platform. 0xFF = An error occurred. |
The command gets the SoC power limit.
Request: None
Response
Byte(s) | Data |
---|---|
1 | Completion Code 0x00: Success 0xD5 = The BMC could not send the data to the host. 0xD6 = Not supported in this platform. 0xFF = An error occurred. |
2 | Current SoC power limit (upper) |
3 | Current SoC power limit (lower) |
The command sends a request to the Mpro to trigger the “firmware crash dump” feature, which captures the core and system states along with relevant error syndrome information.
The “firmware crash dump” feature uses the ACPI Boot Error Record Table (BERT) to store crash information in persistent storage before a reboot, making it available in the BERT to UEFI and the OS after the reboot.
Request: None
Response
Byte(s) | Data |
---|---|
1 | Completion Code 0x00: Success 0xD5 = The BMC could not send the data to the host. 0xD6 = Not supported in this platform. 0xFF = An error occurred. |
Read value from a specified SCP register offset which returns 2 bytes. Note that with register offset that have 48 bytes data, the command will return only 2 bytes (the first time returns 2 first bytes, the second time returns 2 next bytes, ...).
Note: this command is available on Altra-based platform only
Request
Byte(s) | Data |
---|---|
1 | CPU Index: 0 - CPU at Socket 0, 1 - CPU at Socket 1 |
2 | SCP offset to read |
Response
Byte(s) | Data |
---|---|
1 | Completion Code: 0x00 - Success, 0x01 - Failure |
2 | Data byte 0 |
3 | Data byte 1 |
Example: Read the SCP register offset 0x53
$ ipmitool raw 0x3c 0x17 0x00 0x53
ef 01
Write 2 byte values to the SCP register at a specified offset.
Note: this command is available on Altra-based platform only
Request
Byte(s) | Data |
---|---|
1 | CPU Index: 0 - CPU at Socket 0, 1 - CPU at Socket 1 |
2 | SCP offset to write |
2 | Data byte 0 |
3 | Data byte 1 |
Response
Byte(s) | Data |
---|---|
1 | Completion Code: 0x00 - Success, 0x01 - Failure |
Example: Write 0x01EF to SCP register offset 0x53
$ ipmitool raw 0x3c 0x18 0x00 0x53 0xEF 0x01
The command sets the state of the DRAM Max Throttle Enable sensor.
Request
Byte(s) | Data |
---|---|
1 | DRAM Max Throttle Enable sensor state to be set 0x00 = Disable 0x01 = Enable |
Response
Byte(s) | Data |
---|---|
1 | Completion Code 0x00: Success 0xD5 = The BMC could not send the data to the host. 0xD6 = Not supported in this platform. 0xFF = An error occurred. |
The command gets the state of the DRAM Max Throttle Enable sensor.
Request: None
Response
Byte(s) | Data |
---|---|
1 | Completion Code 0x00: Success 0xD5 = The BMC could not send the data to the host. 0xD6 = Not supported in this platform. 0xFF = An error occurred. |
2 | Current DRAM Max Throttle Enable sensor state 0x00 = Disable 0x01 = Enable |
The command is used for enabling or disabling Scan Dump mode. If Scan Dump mode is enabled, the BMC stops all the communication with the host. If Scan Dump mode is disabled, the BMC restores the communication with the host.
Request
Byte(s) | Data |
---|---|
1 | Enable or disable Scan Dump mode 0x00 = Disable (Default) 0x01 = Enable |
Response
Byte(s) | Data |
---|---|
1 | Completion Code 0x00: Success 0xD6 = Not supported in this platform. 0xFF = An error occurred. |
The command gets the state of the Scan Dump mode.
Request: None
Response
Byte(s) | Data |
---|---|
1 | Completion Code 0x00: Success 0xD6 = Not supported in this platform. 0xFF = An error occurred. |
2 | Current Scan Dump mode state 0x00 = Disable (Default) 0x01 = Enable |
The command sets the Host Firmware Revision.
Request
Byte(s) | Data |
---|---|
1 | Firmware Major Version 0 = internal builds 1-127 = Firmware Generation code |
2 | Firmware Minor Version 0 = internal builds 0-99 = map to SRP Major version (if Firmware Major Version in Byte 1 is not 0) |
[ 3 .. 6] | Firmware Auxiliary Version (SRP Minor version + SRP Patch version) Example: 0x00003002 (Minor: 00003, Patch: 002) |
Response
Byte(s) | Data |
---|---|
1 | Completion Code 0x00: Success |
The command is used to send firmware In-band update status to BMC.
Request
Byte(s) | Data |
---|---|
1 | Update Status 0x00 = Update started 0x01 = Update completed with success 0x02 = Update completed with failure |
2 | Update Type 0x00 = Update entire Host Firmware 0x01 = Update RO regions of Host Firmware (preserve RW regions) 0x02 = Update RO regions of Host Firmware (clear RW regions) 0x03 = MC Update |
Response
Byte(s) | Data |
---|---|
1 | Completion Code 0x00: Success 0xD6 = Handle command failure |
This command is used by the host to notify the BMC for RTC Time Change event. After receiving this notification, BMC will sync-up BMC system time with RTC time.
Note: The BMC ignores this time change request if the BMC NTP client is enabled.
Request: None
Response
Byte(s) | Data |
---|---|
1 | Completion Code 0x00: Success |