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