OpenBIC
OpenSource Bridge-IC
pldm_oem.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 _PLDM_OEM_H
18#define _PLDM_OEM_H
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24#include "pldm.h"
25#include <stdint.h>
26
27#define IANA_LEN 0x03
28/* define for pldm oem event */
29#define OEM_EVENT_LEN 0x09
30#define EVENT_ASSERTED 0x01
31#define EVENT_DEASSERTED 0x00
32
33/* commands of pldm type 0x3F : PLDM_TYPE_OEM */
34#define PLDM_OEM_CMD_ECHO 0x00
35#define PLDM_OEM_IPMI_BRIDGE 0x01
36#define PLDM_OEM_WRITE_FILE_IO 0x02
37#define PLDM_OEM_READ_FILE_IO 0x03
38#define PLDM_OEM_SENSOR_POLLING_CMD 0x04
39#define PLDM_OEM_WF_READ_SPD_CHUNK 0x05
40
41#define POWER_CONTROL_LEN 0x01
42
44 POST_CODE = 0x00,
47 HTTP_BOOT = 0X03,
48 APML_ALERT = 0x04,
49 EVENT_LOG = 0x05,
50 CRASH_DUMP = 0x06,
51 BOOT_ORDER = 0x07,
52};
53
55 SLED_CYCLE = 0x00,
63};
64
107};
108
137};
138
140 // VR Power Fault
164
165 // Other Power Fault
181
189
191
193 uint8_t iana[IANA_LEN];
194 uint8_t first_data;
195} __attribute__((packed));
196
199 uint8_t iana[IANA_LEN];
200 uint8_t first_data;
201} __attribute__((packed));
202
204 uint8_t iana[IANA_LEN];
205 uint8_t netfn_lun;
206 uint8_t cmd;
207 uint8_t first_data;
208} __attribute__((packed));
209
212 uint8_t iana[IANA_LEN];
213 uint8_t netfn_lun;
214 uint8_t cmd;
216 uint8_t first_data;
217} __attribute__((packed));
218
220 uint8_t cmd_code;
221 uint32_t data_length;
222 uint8_t messages[];
223} __attribute__((packed));
224
227} __attribute__((packed));
228
231 uint16_t offset;
232} __attribute__((packed));
233
235 uint16_t size;
236 uint32_t crc32;
237} __attribute__((packed));
238
240 uint8_t cmd_code;
241 uint8_t read_option;
243} __attribute__((packed));
244
246 uint8_t cmd_code;
247 uint8_t read_option;
250} __attribute__((packed));
251
254 uint8_t cmd_code;
255 uint8_t read_option;
258 uint8_t read_info[];
259} __attribute__((packed));
260
263 uint8_t cmd_code;
264 uint8_t read_option;
267 uint8_t read_info[];
268} __attribute__((packed));
269
271 uint8_t event_type;
272 uint8_t assert_type;
276 uint32_t timestamp;
277} __attribute__((packed));
278
280 uint8_t iana[IANA_LEN];
281 uint8_t set_value;
282} __attribute__((packed));
283
286 uint8_t iana[IANA_LEN];
287 uint8_t set_value;
288} __attribute__((packed));
289
290uint8_t check_iana(const uint8_t *iana);
291uint8_t set_iana(uint8_t *buf, uint8_t buf_len);
293
294uint8_t pldm_oem_handler_query(uint8_t code, void **ret_fn);
295
296#ifdef __cplusplus
297}
298#endif
299
300#endif /* _PLDM_OEM_H */
READ_FILE_OPTION
Definition: pldm_oem.h:190
@ READ_FILE_ATTR
Definition: pldm_oem.h:190
@ READ_FILE_DATA
Definition: pldm_oem.h:190
cmd_type
Definition: pldm_oem.h:43
@ HTTP_BOOT
Definition: pldm_oem.h:47
@ BIOS_VERSION
Definition: pldm_oem.h:45
@ POWER_CONTROL
Definition: pldm_oem.h:46
@ BOOT_ORDER
Definition: pldm_oem.h:51
@ CRASH_DUMP
Definition: pldm_oem.h:50
@ APML_ALERT
Definition: pldm_oem.h:48
@ EVENT_LOG
Definition: pldm_oem.h:49
@ POST_CODE
Definition: pldm_oem.h:44
uint8_t check_iana(const uint8_t *iana)
Definition: pldm_oem.c:62
mtia_event_source
Definition: pldm_oem.h:139
@ MTIA_PLL_VDDA15_MAX_CORE_S
Definition: pldm_oem.h:180
@ MTIA_P3V3
Definition: pldm_oem.h:141
@ MTIA_ATH_GPIO_4
Definition: pldm_oem.h:187
@ MTIA_P0V75_MAX_PHY_S
Definition: pldm_oem.h:146
@ MTIA_P0V75_TRVDD_ZONEA
Definition: pldm_oem.h:147
@ MTIA_P1V1_VDDC_HBM0_HBM2_HBM4
Definition: pldm_oem.h:151
@ MTIA_PLL_VDDA15_HBM0_HBM2_HBM4
Definition: pldm_oem.h:174
@ MTIA_P12V_UBC1
Definition: pldm_oem.h:161
@ MTIA_P0V8_VDDA_PCIE
Definition: pldm_oem.h:159
@ MTIA_P3V3_OSC
Definition: pldm_oem.h:176
@ MTIA_LDO_IN_1V8
Definition: pldm_oem.h:178
@ MTIA_POWER_ON_SEQUENCE_FAIL
Definition: pldm_oem.h:182
@ MTIA_P0V75_PVDD_CH_S
Definition: pldm_oem.h:145
@ MTIA_P1V2_VDDHTX_PCIE
Definition: pldm_oem.h:160
@ MTIA_VR_MAX
Definition: pldm_oem.h:163
@ MTIA_P0V9_TRVDD_ZONEA
Definition: pldm_oem.h:153
@ MTIA_P0V9_TRVDD_ZONEB
Definition: pldm_oem.h:155
@ MTIA_PVDD0P9_N
Definition: pldm_oem.h:173
@ MTIA_FM_ASIC_0_THERMTRIP_N
Definition: pldm_oem.h:183
@ MTIA_P5V
Definition: pldm_oem.h:177
@ MTIA_P0V75_VDDC_CLKOBS
Definition: pldm_oem.h:168
@ MTIA_PVDD1P5_N
Definition: pldm_oem.h:171
@ MTIA_P1V8_VPP_HBM1_HBM3_HBM5
Definition: pldm_oem.h:154
@ MTIA_FM_ATH_PLD_HBM3_CATTRIP_ALARM
Definition: pldm_oem.h:184
@ MTIA_PLL_VDDA15_HBM1_HBM3_HBM5
Definition: pldm_oem.h:175
@ MTIA_P0V75_PVDD_CH_N
Definition: pldm_oem.h:143
@ MTIA_VR_FAULT_CAUSE_POWER_DOWN
Definition: pldm_oem.h:185
@ MTIA_P0V75_TRVDD_ZONEB
Definition: pldm_oem.h:149
@ MTIA_P0V75_VDDPHY_HBM1_HBM3_HBM5
Definition: pldm_oem.h:158
@ MTIA_LDO_IN_1V2
Definition: pldm_oem.h:179
@ MTIA_P0V4_VDDQL_HBM0_HBM2_HBM4
Definition: pldm_oem.h:150
@ MTIA_ATH_GPIO_3
Definition: pldm_oem.h:186
@ MTIA_P0V4_VDDQL_HBM1_HBM3_HBM5
Definition: pldm_oem.h:156
@ MTIA_P0V75_MAX_PHY_N
Definition: pldm_oem.h:144
@ MTIA_P1V1_VDDC_HBM1_HBM3_HBM5
Definition: pldm_oem.h:157
@ MTIA_PVDD1P5_S
Definition: pldm_oem.h:170
@ MTIA_P0V85_PVDD
Definition: pldm_oem.h:142
@ MTIA_PVDD0P9_S
Definition: pldm_oem.h:172
@ MTIA_PLL_VDDA15_PCIE_MAX_CORE
Definition: pldm_oem.h:166
@ MTIA_P1V8_VPP_HBM0_HBM2_HBM4
Definition: pldm_oem.h:148
@ MTIA_P0V75_VDDPHY_HBM0_HBM2_HBM4
Definition: pldm_oem.h:152
@ MTIA_P0V75_AVDD_HSCL
Definition: pldm_oem.h:167
@ MTIA_PLL_VDDA15_MAX_CORE_N
Definition: pldm_oem.h:169
@ MTIA_P12V_UBC2
Definition: pldm_oem.h:162
uint8_t pldm_oem_handler_query(uint8_t code, void **ret_fn)
Definition: pldm_oem.c:259
#define IANA_LEN
Definition: pldm_oem.h:27
vr_event_source
Definition: pldm_oem.h:109
@ P3V3_E1S_1
Definition: pldm_oem.h:126
@ PVDDCR_CPU1
Definition: pldm_oem.h:112
@ PVPP_AB_ASIC1
Definition: pldm_oem.h:133
@ P0V8_ASIC1
Definition: pldm_oem.h:118
@ PVTT_AB_ASIC2
Definition: pldm_oem.h:130
@ PVDDQ_CD_ASIC2
Definition: pldm_oem.h:121
@ P12V_E1S_0
Definition: pldm_oem.h:127
@ P0V8_ASIC2
Definition: pldm_oem.h:122
@ PVPP_CD_ASIC2
Definition: pldm_oem.h:136
@ PVPP_CD_ASIC1
Definition: pldm_oem.h:135
@ PVPP_AB_ASIC2
Definition: pldm_oem.h:134
@ PVTT_CD_ASIC1
Definition: pldm_oem.h:131
@ P0V85_ASIC2
Definition: pldm_oem.h:120
@ P0V9_STBY_1
Definition: pldm_oem.h:124
@ PVDDCR_SOC
Definition: pldm_oem.h:111
@ PVTT_CD_ASIC2
Definition: pldm_oem.h:132
@ PVDDQ_CD_ASIC1
Definition: pldm_oem.h:117
@ PVTT_AB_ASIC1
Definition: pldm_oem.h:129
@ P0V85_ASIC1
Definition: pldm_oem.h:116
@ PVDDIO
Definition: pldm_oem.h:113
@ P3V3_E1S_0
Definition: pldm_oem.h:125
@ P12V_E1S_1
Definition: pldm_oem.h:128
@ PVDDQ_AB_ASIC2
Definition: pldm_oem.h:119
@ PVDD11_S3
Definition: pldm_oem.h:114
@ P1V5_RETIMER_1
Definition: pldm_oem.h:123
@ PVDDCR_CPU0
Definition: pldm_oem.h:110
@ PVDDQ_AB_ASIC1
Definition: pldm_oem.h:115
uint8_t send_event_log_to_bmc(struct pldm_addsel_data msg)
uint8_t iana[IANA_LEN]
Definition: pldm_oem.h:0
oem_event_type
Definition: pldm_oem.h:65
@ OS_LOAD_WDT_PWR_DOWN
Definition: pldm_oem.h:103
@ CHASSIS_POWER_CYCLE_BY_SLED_BTN
Definition: pldm_oem.h:83
@ BMC_COMES_OUT_COLD_RESET
Definition: pldm_oem.h:75
@ OS_LOAD_WDT_HARD_RST
Definition: pldm_oem.h:102
@ OS_LOAD_WDT_EXPIRED
Definition: pldm_oem.h:101
@ FRB2_WDT_HARD_RST
Definition: pldm_oem.h:98
@ BIOS_FRB2_WDT_EXPIRE
Definition: pldm_oem.h:76
@ CHASSIS_POWER_ON_BY_NIC_INSERT
Definition: pldm_oem.h:81
@ VR_FAULT
Definition: pldm_oem.h:86
@ POST_STARTED
Definition: pldm_oem.h:95
@ FRB3_TIMER_EXPIRE
Definition: pldm_oem.h:71
@ FRB2_WDT_PWR_DOWN
Definition: pldm_oem.h:99
@ POST_TIMEOUTED
Definition: pldm_oem.h:106
@ CPU_POWER_FAIL
Definition: pldm_oem.h:78
@ OS_LOAD_WDT_PWR_CYCLE
Definition: pldm_oem.h:104
@ PLTRST_ASSERT
Definition: pldm_oem.h:91
@ CXL2_HB
Definition: pldm_oem.h:94
@ PROCHOT_TRIGGERED_BY_SENSOR_UCR
Definition: pldm_oem.h:97
@ DIMM_PMIC_ERROR
Definition: pldm_oem.h:73
@ FAN_ERROR
Definition: pldm_oem.h:89
@ PMALERT_ASSERT
Definition: pldm_oem.h:69
@ ADDC_DUMP
Definition: pldm_oem.h:74
@ CXL1_HB
Definition: pldm_oem.h:93
@ FRB2_WDT_PWR_CYCLE
Definition: pldm_oem.h:100
@ P12V_STBY_UV
Definition: pldm_oem.h:68
@ APML_ALERT_ASSERT
Definition: pldm_oem.h:92
@ CPU_THERMAL_TRIP
Definition: pldm_oem.h:66
@ BIC_POWER_FAIL
Definition: pldm_oem.h:77
@ HSC_OCP
Definition: pldm_oem.h:67
@ FAST_PROCHOT_ASSERT
Definition: pldm_oem.h:70
@ SYS_THROTTLE
Definition: pldm_oem.h:85
@ BMC_REBOOT_REQUESTED
Definition: pldm_oem.h:80
@ MTIA_FAULT
Definition: pldm_oem.h:105
@ POST_COMPLETED
Definition: pldm_oem.h:88
@ HDT_PRSNT_ASSERT
Definition: pldm_oem.h:90
@ SYS_MANAGEMENT_ERROR
Definition: pldm_oem.h:87
@ BMC_VBOOT_FAIL
Definition: pldm_oem.h:79
@ POST_ENDED
Definition: pldm_oem.h:96
@ POWER_ON_SEQUENCE_FAIL
Definition: pldm_oem.h:72
@ BLADE_POWER_CYCLE_BY_BLADE_BTN
Definition: pldm_oem.h:82
@ HSC_FAULT
Definition: pldm_oem.h:84
uint8_t set_iana(uint8_t *buf, uint8_t buf_len)
Definition: pldm_oem.c:74
POWER_CONTROL_OPTION
Definition: pldm_oem.h:54
@ NIC3_POWER_CYCLE
Definition: pldm_oem.h:61
@ SLED_CYCLE
Definition: pldm_oem.h:55
@ SLOT_DC_CYCLE
Definition: pldm_oem.h:57
@ NIC1_POWER_CYCLE
Definition: pldm_oem.h:59
@ MAX_POWER_OPTION
Definition: pldm_oem.h:62
@ NIC2_POWER_CYCLE
Definition: pldm_oem.h:60
@ NIC0_POWER_CYCLE
Definition: pldm_oem.h:58
@ SLOT_12V_CYCLE
Definition: pldm_oem.h:56
struct _cmd_echo_req __attribute__((packed))
Definition: cci.h:57
Definition: pldm_oem.h:192
uint8_t iana[IANA_LEN]
Definition: pldm_oem.h:193
uint8_t first_data
Definition: pldm_oem.h:194
Definition: pldm_oem.h:197
uint8_t completion_code
Definition: pldm_oem.h:198
uint8_t iana[IANA_LEN]
Definition: pldm_oem.h:199
uint8_t first_data
Definition: pldm_oem.h:200
Definition: pldm_oem.h:203
uint8_t first_data
Definition: pldm_oem.h:207
uint8_t iana[IANA_LEN]
Definition: pldm_oem.h:204
uint8_t cmd
Definition: pldm_oem.h:206
uint8_t netfn_lun
Definition: pldm_oem.h:205
Definition: pldm_oem.h:210
uint8_t first_data
Definition: pldm_oem.h:216
uint8_t ipmi_comp_code
Definition: pldm_oem.h:215
uint8_t netfn_lun
Definition: pldm_oem.h:213
uint8_t iana[IANA_LEN]
Definition: pldm_oem.h:212
uint8_t cmd
Definition: pldm_oem.h:214
uint8_t completion_code
Definition: pldm_oem.h:211
Definition: pldm_oem.h:279
uint8_t set_value
Definition: pldm_oem.h:281
uint8_t iana[IANA_LEN]
Definition: pldm_oem.h:280
Definition: pldm_oem.h:284
uint8_t iana[IANA_LEN]
Definition: pldm_oem.h:286
uint8_t completion_code
Definition: pldm_oem.h:285
uint8_t set_value
Definition: pldm_oem.h:287
Definition: pldm_oem.h:270
uint8_t assert_type
Definition: pldm_oem.h:272
uint8_t event_type
Definition: pldm_oem.h:271
uint8_t event_data_3
Definition: pldm_oem.h:275
uint32_t timestamp
Definition: pldm_oem.h:276
uint8_t event_data_1
Definition: pldm_oem.h:273
uint8_t event_data_2
Definition: pldm_oem.h:274
Definition: pldm_oem.h:234
uint16_t size
Definition: pldm_oem.h:235
uint32_t crc32
Definition: pldm_oem.h:236
Definition: pldm_oem.h:229
uint16_t offset
Definition: pldm_oem.h:231
uint8_t transfer_flag
Definition: pldm_oem.h:230
Definition: pldm_oem.h:239
uint8_t read_option
Definition: pldm_oem.h:241
uint8_t read_info_length
Definition: pldm_oem.h:242
uint8_t cmd_code
Definition: pldm_oem.h:240
Definition: pldm_oem.h:252
uint8_t read_info[]
Definition: pldm_oem.h:258
uint8_t cmd_code
Definition: pldm_oem.h:254
struct pldm_oem_read_file_attr_info attr
Definition: pldm_oem.h:257
uint8_t read_info_length
Definition: pldm_oem.h:256
uint8_t read_option
Definition: pldm_oem.h:255
uint8_t completion_code
Definition: pldm_oem.h:253
Definition: pldm_oem.h:245
struct pldm_oem_read_file_data_info data
Definition: pldm_oem.h:249
uint8_t read_option
Definition: pldm_oem.h:247
uint8_t cmd_code
Definition: pldm_oem.h:246
uint8_t read_info_length
Definition: pldm_oem.h:248
Definition: pldm_oem.h:261
uint8_t completion_code
Definition: pldm_oem.h:262
struct pldm_oem_read_file_data_info data
Definition: pldm_oem.h:266
uint8_t read_option
Definition: pldm_oem.h:264
uint8_t read_info[]
Definition: pldm_oem.h:267
uint8_t cmd_code
Definition: pldm_oem.h:263
uint8_t read_info_length
Definition: pldm_oem.h:265
Definition: pldm_oem.h:219
uint8_t cmd_code
Definition: pldm_oem.h:220
uint32_t data_length
Definition: pldm_oem.h:221
uint8_t messages[]
Definition: pldm_oem.h:222
Definition: pldm_oem.h:225
uint8_t completion_code
Definition: pldm_oem.h:226