OpenBIC
OpenSource Bridge-IC
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
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
39#define POWER_CONTROL_LEN 0x01
40
42 POST_CODE = 0x00,
45 HTTP_BOOT = 0X03,
46 APML_ALERT = 0x04,
47 EVENT_LOG = 0x05,
48 CRASH_DUMP = 0x06,
49};
50
52 SLED_CYCLE = 0x00,
60};
61
92};
93
109
111
113 uint8_t iana[IANA_LEN];
114 uint8_t first_data;
115} __attribute__((packed));
116
119 uint8_t iana[IANA_LEN];
120 uint8_t first_data;
121} __attribute__((packed));
122
124 uint8_t iana[IANA_LEN];
125 uint8_t netfn_lun;
126 uint8_t cmd;
127 uint8_t first_data;
128} __attribute__((packed));
129
132 uint8_t iana[IANA_LEN];
133 uint8_t netfn_lun;
134 uint8_t cmd;
136 uint8_t first_data;
137} __attribute__((packed));
138
140 uint8_t cmd_code;
141 uint32_t data_length;
142 uint8_t messages[];
143} __attribute__((packed));
144
147} __attribute__((packed));
148
151 uint16_t offset;
152} __attribute__((packed));
153
155 uint16_t size;
156 uint32_t crc32;
157} __attribute__((packed));
158
160 uint8_t cmd_code;
161 uint8_t read_option;
163} __attribute__((packed));
164
166 uint8_t cmd_code;
167 uint8_t read_option;
170} __attribute__((packed));
171
174 uint8_t cmd_code;
175 uint8_t read_option;
178 uint8_t read_info[];
179} __attribute__((packed));
180
183 uint8_t cmd_code;
184 uint8_t read_option;
187 uint8_t read_info[];
188} __attribute__((packed));
189
191 uint8_t event_type;
192 uint8_t assert_type;
196} __attribute__((packed));
197
198uint8_t check_iana(const uint8_t *iana);
199uint8_t set_iana(uint8_t *buf, uint8_t buf_len);
201
202uint8_t pldm_oem_handler_query(uint8_t code, void **ret_fn);
203
204#ifdef __cplusplus
205}
206#endif
207
208#endif /* _PLDM_OEM_H */
READ_FILE_OPTION
Definition: pldm_oem.h:110
@ READ_FILE_ATTR
Definition: pldm_oem.h:110
@ READ_FILE_DATA
Definition: pldm_oem.h:110
cmd_type
Definition: pldm_oem.h:41
@ HTTP_BOOT
Definition: pldm_oem.h:45
@ BIOS_VERSION
Definition: pldm_oem.h:43
@ POWER_CONTROL
Definition: pldm_oem.h:44
@ CRASH_DUMP
Definition: pldm_oem.h:48
@ APML_ALERT
Definition: pldm_oem.h:46
@ EVENT_LOG
Definition: pldm_oem.h:47
@ POST_CODE
Definition: pldm_oem.h:42
uint8_t check_iana(const uint8_t *iana)
Definition: pldm_oem.c:36
uint8_t pldm_oem_handler_query(uint8_t code, void **ret_fn)
Definition: pldm_oem.c:216
#define IANA_LEN
Definition: pldm_oem.h:27
vr_event_source
Definition: pldm_oem.h:94
@ PVDDCR_CPU1
Definition: pldm_oem.h:97
@ P0V8_ASIC1
Definition: pldm_oem.h:103
@ PVDDQ_CD_ASIC2
Definition: pldm_oem.h:106
@ P0V8_ASIC2
Definition: pldm_oem.h:107
@ P0V85_ASIC2
Definition: pldm_oem.h:105
@ PVDDCR_SOC
Definition: pldm_oem.h:96
@ PVDDQ_CD_ASIC1
Definition: pldm_oem.h:102
@ P0V85_ASIC1
Definition: pldm_oem.h:101
@ PVDDIO
Definition: pldm_oem.h:98
@ PVDDQ_AB_ASIC2
Definition: pldm_oem.h:104
@ PVDD11_S3
Definition: pldm_oem.h:99
@ PVDDCR_CPU0
Definition: pldm_oem.h:95
@ PVDDQ_AB_ASIC1
Definition: pldm_oem.h:100
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:62
@ CHASSIS_POWER_CYCLE_BY_SLED_BTN
Definition: pldm_oem.h:80
@ BMC_COMES_OUT_COLD_RESET
Definition: pldm_oem.h:72
@ BIOS_FRB2_WDT_EXPIRE
Definition: pldm_oem.h:73
@ CHASSIS_POWER_ON_BY_NIC_INSERT
Definition: pldm_oem.h:78
@ VR_FAULT
Definition: pldm_oem.h:83
@ FRB3_TIMER_EXPIRE
Definition: pldm_oem.h:68
@ CPU_POWER_FAIL
Definition: pldm_oem.h:75
@ PLTRST_ASSERT
Definition: pldm_oem.h:88
@ CXL2_HB
Definition: pldm_oem.h:91
@ DIMM_PMIC_ERROR
Definition: pldm_oem.h:70
@ FAN_ERROR
Definition: pldm_oem.h:86
@ PMALERT_ASSERT
Definition: pldm_oem.h:66
@ ADDC_DUMP
Definition: pldm_oem.h:71
@ CXL1_HB
Definition: pldm_oem.h:90
@ P12V_STBY_UV
Definition: pldm_oem.h:65
@ APML_ALERT_ASSERT
Definition: pldm_oem.h:89
@ CPU_THERMAL_TRIP
Definition: pldm_oem.h:63
@ BIC_POWER_FAIL
Definition: pldm_oem.h:74
@ HSC_OCP
Definition: pldm_oem.h:64
@ FAST_PROCHOT_ASSERT
Definition: pldm_oem.h:67
@ SYS_THROTTLE
Definition: pldm_oem.h:82
@ BMC_REBOOT_REQUESTED
Definition: pldm_oem.h:77
@ POST_COMPLETED
Definition: pldm_oem.h:85
@ HDT_PRSNT_ASSERT
Definition: pldm_oem.h:87
@ SYS_MANAGEMENT_ERROR
Definition: pldm_oem.h:84
@ BMC_VBOOT_FAIL
Definition: pldm_oem.h:76
@ POWER_ON_SEQUENCE_FAIL
Definition: pldm_oem.h:69
@ BLADE_POWER_CYCLE_BY_BLADE_BTN
Definition: pldm_oem.h:79
@ HSC_FAULT
Definition: pldm_oem.h:81
uint8_t set_iana(uint8_t *buf, uint8_t buf_len)
Definition: pldm_oem.c:48
POWER_CONTROL_OPTION
Definition: pldm_oem.h:51
@ NIC3_POWER_CYCLE
Definition: pldm_oem.h:58
@ SLED_CYCLE
Definition: pldm_oem.h:52
@ SLOT_DC_CYCLE
Definition: pldm_oem.h:54
@ NIC1_POWER_CYCLE
Definition: pldm_oem.h:56
@ MAX_POWER_OPTION
Definition: pldm_oem.h:59
@ NIC2_POWER_CYCLE
Definition: pldm_oem.h:57
@ NIC0_POWER_CYCLE
Definition: pldm_oem.h:55
@ SLOT_12V_CYCLE
Definition: pldm_oem.h:53
struct _cmd_echo_req __attribute__((packed))
Definition: cci.h:57
Definition: pldm_oem.h:112
uint8_t iana[IANA_LEN]
Definition: pldm_oem.h:113
uint8_t first_data
Definition: pldm_oem.h:114
Definition: pldm_oem.h:117
uint8_t completion_code
Definition: pldm_oem.h:118
uint8_t iana[IANA_LEN]
Definition: pldm_oem.h:119
uint8_t first_data
Definition: pldm_oem.h:120
Definition: pldm_oem.h:123
uint8_t first_data
Definition: pldm_oem.h:127
uint8_t iana[IANA_LEN]
Definition: pldm_oem.h:124
uint8_t cmd
Definition: pldm_oem.h:126
uint8_t netfn_lun
Definition: pldm_oem.h:125
Definition: pldm_oem.h:130
uint8_t first_data
Definition: pldm_oem.h:136
uint8_t ipmi_comp_code
Definition: pldm_oem.h:135
uint8_t netfn_lun
Definition: pldm_oem.h:133
uint8_t iana[IANA_LEN]
Definition: pldm_oem.h:132
uint8_t cmd
Definition: pldm_oem.h:134
uint8_t completion_code
Definition: pldm_oem.h:131
Definition: pldm_oem.h:190
uint8_t assert_type
Definition: pldm_oem.h:192
uint8_t event_type
Definition: pldm_oem.h:191
uint8_t event_data_3
Definition: pldm_oem.h:195
uint8_t event_data_1
Definition: pldm_oem.h:193
uint8_t event_data_2
Definition: pldm_oem.h:194
Definition: pldm_oem.h:154
uint16_t size
Definition: pldm_oem.h:155
uint32_t crc32
Definition: pldm_oem.h:156
Definition: pldm_oem.h:149
uint16_t offset
Definition: pldm_oem.h:151
uint8_t transfer_flag
Definition: pldm_oem.h:150
Definition: pldm_oem.h:159
uint8_t read_option
Definition: pldm_oem.h:161
uint8_t read_info_length
Definition: pldm_oem.h:162
uint8_t cmd_code
Definition: pldm_oem.h:160
Definition: pldm_oem.h:172
uint8_t read_info[]
Definition: pldm_oem.h:178
uint8_t cmd_code
Definition: pldm_oem.h:174
struct pldm_oem_read_file_attr_info attr
Definition: pldm_oem.h:177
uint8_t read_info_length
Definition: pldm_oem.h:176
uint8_t read_option
Definition: pldm_oem.h:175
uint8_t completion_code
Definition: pldm_oem.h:173
Definition: pldm_oem.h:165
struct pldm_oem_read_file_data_info data
Definition: pldm_oem.h:169
uint8_t read_option
Definition: pldm_oem.h:167
uint8_t cmd_code
Definition: pldm_oem.h:166
uint8_t read_info_length
Definition: pldm_oem.h:168
Definition: pldm_oem.h:181
uint8_t completion_code
Definition: pldm_oem.h:182
struct pldm_oem_read_file_data_info data
Definition: pldm_oem.h:186
uint8_t read_option
Definition: pldm_oem.h:184
uint8_t read_info[]
Definition: pldm_oem.h:187
uint8_t cmd_code
Definition: pldm_oem.h:183
uint8_t read_info_length
Definition: pldm_oem.h:185
Definition: pldm_oem.h:139
uint8_t cmd_code
Definition: pldm_oem.h:140
uint32_t data_length
Definition: pldm_oem.h:141
uint8_t messages[]
Definition: pldm_oem.h:142
Definition: pldm_oem.h:145
uint8_t completion_code
Definition: pldm_oem.h:146