OpenBIC
OpenSource Bridge-IC
libipmi.h
Go to the documentation of this file.
1/*
2 * Copyright (c) Meta Platforms, Inc. and affiliates.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef _LIBIPMI_H_
18#define _LIBIPMI_H_
19
20/* sensor type, see IPMI spec 42.2, table 42-3 */
21#define IPMI_SENSOR_TYPE_TEMPERATURE 0x01
22#define IPMI_SENSOR_TYPE_VOLTAGE 0x02
23#define IPMI_SENSOR_TYPE_CURRENT 0x03
24#define IPMI_SENSOR_TYPE_FAN 0x04
25#define IPMI_SENSOR_TYPE_PHY_SECURITY 0x05
26#define IPMI_SENSOR_TYPE_SECURITY_VIO 0x06
27#define IPMI_SENSOR_TYPE_PROCESSOR 0x07
28#define IPMI_SENSOR_TYPE_POWER_SUPPLY 0x08
29#define IPMI_SENSOR_TYPE_POWER_UNIT 0x09
30#define IPMI_SENSOR_TYPE_SYS_EVENT 0x12
31#define IPMI_SENSOR_TYPE_MEMORY 0x0C
32#define IPMI_SENSOR_TYPE_SYS_FW 0x0F
33#define IPMI_SENSOR_TYPE_EVENT_LOG 0x10
34#define IPMI_SENSOR_TYPE_CRITICAL_INT 0x13
35#define IPMI_SENSOR_TYPE_BUTTON 0x14
36#define IPMI_SENSOR_TYPE_BOOT_ERR 0x1E
37#define IPMI_SENSOR_TYPE_WATCHDOG2 0x23
38#define IPMI_SENSOR_TYPE_MANAGEMENT 0x28 //Jerry130723
39#define IPMI_SENSOR_TYPE_VERSION_CHANGE 0x2B //Jerry130913
40#define IPMI_OEM_SENSOR_TYPE_OEM 0xC0
41#define IPMI_OEM_SENSOR_TYPE_OEM_C3 0xC3
42#define IPMI_OEM_SENSOR_TYPE_CPU_DIMM_VR_HOT 0xC6
43#define IPMI_OEM_SENSOR_TYPE_CPU_DIMM_HOT 0xC7
44#define IPMI_OEM_SENSOR_TYPE_PSB_ERROR 0xC8
45#define IPMI_OEM_SENSOR_TYPE_SYS_STA 0xC9
46#define IPMI_OEM_SENSOR_TYPE_SYS_BOOT_STA 0xCA
47#define IPMI_OEM_SENSOR_TYPE_VR 0xCB
48#define IPMI_OEM_SENSOR_TYPE_HDT 0xCC
49#define IPMI_OEM_SENSOR_TYPE_CPU_THERM_STATUS 0xCD
50
51/* event/reading type, see IPMI spec 42.1, table 42-1 */
52#define IPMI_EVENT_TYPE_THRESHOLD 0x01
53#define IPMI_EVENT_TYPE_USAGE 0x02
54#define IPMI_EVENT_TYPE_DEAS_ASSE 0x03
55#define IPMI_EVENT_TYPE_LIMIT_EXCEED 0x05
56#define IPMI_EVENT_TYPE_PERFORMANCE 0x06
57#define IPMI_EVENT_TYPE_SEVERITY 0x07
58#define IPMI_EVENT_TYPE_PRESENT 0x08
59#define IPMI_EVENT_TYPE_EN_DIS 0x09
60#define IPMI_EVENT_TYPE_SENSOR_SPECIFIC 0x6F
61#define IPMI_OEM_EVENT_TYPE_NOTIFY 0x77
62#define IPMI_OEM_EVENT_TYPE_DEASSERT 0xEF
63
64#define IPMI_EVENT_DIR_ASSERT 0x00
65#define IPMI_EVENT_DIR_DEASSERT 0x80
66
67/* generic offset for IPMI_EVENT_TYPE_DEAS_ASSE */
68#define IPMI_EVENT_OFFSET_DEASSERT 0x00
69#define IPMI_EVENT_OFFSET_ASSERT 0x01
70
71/* sensor-specific offset for IPMI_SENSOR_TYPE_PROCESSOR */
72#define IPMI_EVENT_OFFSET_PROCESSOR_IERR 0x00
73#define IPMI_EVENT_OFFSET_PROCESSOR_THERMAL_TRIP 0x01
74#define IPMI_EVENT_OFFSET_PROCESSOR_FRB1 0x02
75#define IPMI_EVENT_OFFSET_PROCESSOR_FRB2 0x03
76#define IPMI_EVENT_OFFSET_PROCESSOR_FRB3 0x04
77#define IPMI_EVENT_OFFSET_PROCESSOR_PRESENCE 0x07
78#define IPMI_EVENT_OFFSET_PROCESSOR_MCERR 0x0B
79#define IPMI_OEM_EVENT_OFFSET_MEM_RMCA 0x0D
80
81/* sensor-specific offset for IPMI_SENSOR_TYPE_MEMORY */
82#define IPMI_EVENT_MEMORY_CORRECT_ECC 0x00
83#define IPMI_EVENT_MEMORY_UNCORRECT_ECC 0x01
84#define IPMI_EVENT_MEMORY_PARITY 0x04
85
86/* sensor-specific offset for IPMI_SENSOR_TYPE_SYS_EVENT */
87#define IPMI_EVENT_OEM_SYSTEM_BOOT_EVENT 0x01
88
89/* sensor-specific offset for IPMI_SENSOR_TYPE_CRITICAL_INT */
90#define IPMI_EVENT_CRITICAL_INT_FP_NMI 0x00
91#define IPMI_EVENT_CRITICAL_INT_SW_NMI 0x03
92#define IPMI_EVENT_CRITICAL_INT_PERR 0x04
93#define IPMI_EVENT_CRITICAL_INT_SERR 0x05
94#define IPMI_EVENT_CRITICAL_INT_NFERR 0x08
95#define IPMI_EVENT_CRITICAL_INT_FATAL_NMI 0x09
96#define IPMI_EVENT_CRITICAL_INT_FERR 0x0A
97
98/* sensor-specific offset for IPMI_SENSOR_TYPE_EVENT_LOG */
99#define IPMI_EVENT_OFFSET_SEL_FULL 0x04
100#define IPMI_EVENT_OFFSET_SEL_ALMOST_FULL 0x05
101
102/* sensor-specific offset for IPMI_SENSOR_TYPE_POWER_SUPPLY */
103//#define IPMI_EVENT_POWER_SUPPLY_FAILURE 0x01
104//#define IPMI_EVENT_POWER_SUPPLY_PRE_FAILURE 0x02
105
106/* sensor-specific offset for IPMI_SENSOR_TYPE_POWER_UNIT */
107#define IPMI_EVENT_POWER_UNIT_POWER_OFF 0x00
108#define IPMI_EVENT_POWER_UNIT_POWER_CYCLE 0x01
109#define IPMI_EVENT_POWER_UNIT_AC_LOST 0x04
110
111/* sensor-specific offset for IPMI_SENSOR_TYPE_BUTTON */
112#define IPMI_EVENT_BTN_POWER 0x00
113#define IPMI_EVENT_BTN_SELLP 0x01
114#define IPMI_EVENT_BTN_RESET 0x02
115
116/* sensor-specific offset for IPMI_SENSOR_TYPE_MANAGEMENT */
117#define IPMI_EVENT_OFFSET_MANAGEMENT_OFF_LINE 0x02
118#define IPMI_EVENT_OFFSET_MANAGEMENT_UNAVAILABLE 0x03 //Jerry130723
119
120/* sensor-specific offset for IPMI_SENSOR_TYPE_VERSION_CHANGE */
121#define IPMI_EVENT_OFFSET_SOFTWARE_FIRMWARE_CHANGE 0x07 //Jerry130913
122
123/* sensor-specific offset for IPMI_SENSOR_TYPE_CPU_DIMM_HOT */
124#define IPMI_OEM_EVENT_OFFSET_CPU_HOT 0x00
125#define IPMI_OEM_EVENT_OFFSET_DIMM_HOT 0x01
126
127/* sensor-specific offset for IPMI_SENSOR_TYPE_CPU_DIMM_VR_HOT */
128#define IPMI_OEM_EVENT_OFFSET_CPU_VR_HOT 0x00
129#define IPMI_OEM_EVENT_OFFSET_IO_VR_HOT 0x01
130#define IPMI_OEM_EVENT_OFFSET_DIMM_ABC_VR_HOT 0x02
131#define IPMI_OEM_EVENT_OFFSET_DIMM_DEF_VR_HOT 0x03
132
133/* sensor-specific offset for IPMI_SENSOR_TYPE_SYS_STA */
134#define IPMI_OEM_EVENT_OFFSET_SYS_THERMAL_TRIP 0x00
135#define IPMI_OEM_EVENT_OFFSET_SYS_FIVR_FAULT 0x01
136#define IPMI_OEM_EVENT_OFFSET_SYS_THROTTLE 0x02
137#define IPMI_OEM_EVENT_OFFSET_SYS_PCHHOT 0x03
138#define IPMI_OEM_EVENT_OFFSET_SYS_UV 0x04
139//#define IPMI_OEM_EVENT_OFFSET_SYS_FASTTHROT 0x05
140#define IPMI_OEM_EVENT_OFFSET_SYS_PMBUSALERT 0x05
141#define IPMI_OEM_EVENT_OFFSET_SYS_HSCTIMER 0x06
142#define IPMI_OEM_EVENT_OFFSET_SYS_FIRMWAREASSERT 0x07
143#define IPMI_OEM_EVENT_OFFSET_SYS_OCPFAULT 0x08
144#define IPMI_OEM_EVENT_OFFSET_SYS_SEVEREOCPFAULT 0x09
145#define IPMI_OEM_EVENT_OFFSET_SYS_VRWATCHDOG 0x0A
146#define IPMI_OEM_EVENT_OFFSET_SYS_VPPEVT 0x0B
147#define IPMI_OEM_EVENT_OFFSET_SYS_DEVPWRGOODFAULT 0x0C
148#define IPMI_OEM_EVENT_OFFSET_SYS_VCCIOFAULT 0x0D
149#define IPMI_OEM_EVENT_OFFSET_SYS_SMI90s 0x0E
150#define IPMI_OEM_EVENT_OFFSET_SYS_VCCIOOVFAULT 0x0F
151#define IPMI_OEM_EVENT_OFFSET_SYS_FMTHROTTLE 0x10
152#define IPMI_OEM_EVENT_OFFSET_SYS_MEMORY_THERMALTRIP 0x11
153#define IPMI_OEM_EVENT_OFFSET_SYS_OCALERT 0x12
154#define IPMI_OEM_EVENT_OFFSET_SYS_X8BOARDPWRFAILEVT 0x16
155#define IPMI_OEM_EVENT_OFFSET_SYS_X16BOARDPWRFAILEVT 0x17
156#define IPMI_OEM_EVENT_OFFSET_AMP_SYS_AUTH_FAIL 0x18
157#define IPMI_OEM_EVENT_OFFSET_AMP_SPI_AUTH_FAIL 0x19
158#define IPMI_OEM_EVENT_OFFSET_AMD_ALERT_L 0x20
159
160/* sensor-specific offset for IPMI_SENSOR_TYPE_SYS_BOOT_STA */
161#define IPMI_OEM_EVENT_OFFSET_SLP_S4 0x00
162#define IPMI_OEM_EVENT_OFFSET_SLP_S3 0x01
163#define IPMI_OEM_EVENT_OFFSET_PCH_PWROK 0x02
164#define IPMI_OEM_EVENT_OFFSET_SYS_PWROK 0x03
165#define IPMI_OEM_EVENT_OFFSET_PLTRST 0x04
166#define IPMI_OEM_EVENT_OFFSET_POST_CLT 0x05
167
168/* sensor-specific offset for SENSOR_NUM_POWER_ERR */
169#define IPMI_OEM_EVENT_OFFSET_SYS_PWROK_FAIL 0x01
170#define IPMI_OEM_EVENT_OFFSET_PCH_PWROK_FAIL 0x02
171#define IPMI_OEM_EVENT_OFFSET_EXP_PWRON_FAIL 0x03
172#define IPMI_OEM_EVENT_OFFSET_EXP_PWROFF_FAIL 0x04
173
174/* sensor-specific offset for CABLE_DETECTION */
175#define IPMI_OEM_EVENT_OFFSET_SLOT1_SYSTEM_PRESENT 0x01
176#define IPMI_OEM_EVENT_OFFSET_SLOT3_SYSTEM_PRESENT 0x03
177#define IPMI_OEM_EVENT_OFFSET_SLOT1_SYSTEM_ABSENT 0x11
178#define IPMI_OEM_EVENT_OFFSET_SLOT3_SYSTEM_ABSENT 0x13
179#define IPMI_OEM_EVENT_OFFSET_SLOT1_CABLE_ABSENT 0x21
180#define IPMI_OEM_EVENT_OFFSET_SLOT3_CABLE_ABSENT 0x23
181#define IPMI_OEM_EVENT_OFFSET_SLOT1_INSERT_SLOT3 0x31
182#define IPMI_OEM_EVENT_OFFSET_SLOT3_INSERT_SLOT1 0x33
183
184/* sensor-specific offset for BUTTON_DETECTION */
185#define IPMI_OEM_EVENT_OFFSET_PRESS_SLED_BUTTON 0x01
186#define IPMI_OEM_EVENT_OFFSET_PRESS_SLOT1_BUTTON 0x02
187#define IPMI_OEM_EVENT_OFFSET_PRESS_SLOT3_BUTTON 0x03
188
189/* sensor-specific offset for VPP_POWER_EVENT */
190#define IPMI_OEM_EVENT_OFFSET_VPP_EVENT 0x0B
191#define IPMI_OEM_EVENT_OFFSET_1OU 0x01
192#define IPMI_OEM_EVENT_OFFSET_2OU 0x02
193
194/* sensor-specific offset for CPUX_THERM_STATUS*/
195#define IPMI_OEM_EVENT_OFFSET_CPU_CRIT_TEMP 0x00
196#define IPMI_OEM_EVENT_OFFSET_PROCHOT 0x01
197#define IPMI_OEM_EVENT_OFFSET_TCC_ACT 0x02
198
207
217
222};
223
237
243
244#endif
ipmi_power_restore_policy_e
Definition: libipmi.h:238
@ IPMI_POWER_RESTORE_ON
Definition: libipmi.h:241
@ IPMI_POWER_RESTORE_RETAIN
Definition: libipmi.h:240
@ IPMI_POWER_RESTORE_OFF
Definition: libipmi.h:239
ipmi_chassis_control_e
Definition: libipmi.h:199
@ IPMI_CHASSIS_CTRL_HARD_RESET
Definition: libipmi.h:203
@ IPMI_CHASSIS_CTRL_SOFT_SHUTDOWN
Definition: libipmi.h:205
@ IPMI_CHASSIS_CTRL_POWER_CYCLE
Definition: libipmi.h:202
@ IPMI_CHASSIS_CTRL_DIAGNOSTIC_IRQ
Definition: libipmi.h:204
@ IPMI_CHASSIS_CTRL_POWER_DOWN
Definition: libipmi.h:200
@ IPMI_CHASSIS_CTRL_POWER_UP
Definition: libipmi.h:201
ipmi_chassis_identify_state_e
Definition: libipmi.h:218
@ IPMI_CHASSIS_IDENTIFY_ON
Definition: libipmi.h:221
@ IPMI_CHASSIS_IDENTIFY_TEMPO
Definition: libipmi.h:220
@ IPMI_CHASSIS_IDENTIFY_OFF
Definition: libipmi.h:219
ipmi_system_restart_cause_e
Definition: libipmi.h:224
@ IPMI_SYS_RESTART_SOFT_RESET
Definition: libipmi.h:234
@ IPMI_SYS_RESTART_OEM
Definition: libipmi.h:230
@ IPMI_SYS_RESTART_CMD
Definition: libipmi.h:226
@ IPMI_SYS_RESTART_RESET_BUTTON
Definition: libipmi.h:227
@ IPMI_SYS_RESTART_UNKNOWN
Definition: libipmi.h:225
@ IPMI_SYS_RESTART_WDT
Definition: libipmi.h:229
@ IPMI_SYS_RESTART_RTC
Definition: libipmi.h:235
@ IPMI_SYS_RESTART_POLICY
Definition: libipmi.h:231
@ IPMI_SYS_RESTART_POWER_BUTTON
Definition: libipmi.h:228
@ IPMI_SYS_RESTART_RESET_PEF
Definition: libipmi.h:232
@ IPMI_SYS_RESTART_CYCLE_PEF
Definition: libipmi.h:233
ipmi_chassis_boot_device_e
Definition: libipmi.h:208
@ IPMI_CHASSIS_BOOT_DEV_NO
Definition: libipmi.h:209
@ IPMI_CHASSIS_BOOT_DEV_HARD
Definition: libipmi.h:211
@ IPMI_CHASSIS_BOOT_DEV_HARD_SAFE
Definition: libipmi.h:212
@ IPMI_CHASSIS_BOOT_DEV_PXE
Definition: libipmi.h:210
@ IPMI_CHASSIS_BOOT_DEV_SETUP
Definition: libipmi.h:215
@ IPMI_CHASSIS_BOOT_DEV_DIAG
Definition: libipmi.h:213
@ IPMI_CHASSIS_BOOT_DEV_CD
Definition: libipmi.h:214