@@ -183,6 +183,28 @@ struct mctp_ctrl_resp_resolve_endpoint_id {
183183 // ... uint8_t physical_address[N]
184184} __attribute__((__packed__ ));
185185
186+ typedef enum {
187+ mctp_ctrl_cmd_allocate_eids_alloc_eids = 0 ,
188+ mctp_ctrl_cmd_allocate_eids_force_alloc = 1 ,
189+ mctp_ctrl_cmd_allocate_eids_get_alloc_info = 2 ,
190+ mctp_ctrl_cmd_allocate_eids_reserved = 3
191+ } mctp_ctrl_cmd_allocate_eids_op ;
192+
193+ struct mctp_ctrl_cmd_allocate_eids {
194+ struct mctp_ctrl_msg_hdr ctrl_hdr ;
195+ uint8_t alloc_eid_op ;
196+ uint8_t pool_size ;
197+ uint8_t start_eid ;
198+ } __attribute__((__packed__ ));
199+
200+ struct mctp_ctrl_resp_allocate_eids {
201+ struct mctp_ctrl_msg_hdr ctrl_hdr ;
202+ uint8_t completion_code ;
203+ uint8_t status ;
204+ uint8_t eid_pool_size ;
205+ uint8_t eid_set ;
206+ } __attribute__((__packed__ ));
207+
186208#define MCTP_CTRL_HDR_MSG_TYPE 0
187209#define MCTP_CTRL_HDR_FLAG_REQUEST (1 << 7)
188210#define MCTP_CTRL_HDR_FLAG_DGRAM (1 << 6)
@@ -257,6 +279,28 @@ struct mctp_ctrl_resp_resolve_endpoint_id {
257279#define MCTP_SET_EID_ACCEPTED 0x0
258280#define MCTP_SET_EID_REJECTED 0x1
259281
282+ /* MCTP Get Endpoint ID request and response fields
283+ * See DSP0236 v1.3.0 Table 15.
284+ */
285+ #define MCTP_GET_EID_EP_TYPE_SHIFT 4
286+ #define MCTP_GET_EID_EP_TYPE_MASK 0x03
287+ #define GET_MCTP_GET_EID_EP_TYPE (field ) \
288+ (((field) >> MCTP_GET_EID_EP_TYPE_SHIFT) & MCTP_GET_EID_EP_TYPE_MASK)
289+ #define MCTP_GET_EID_EP_TYPE_EP 0
290+ #define MCTP_GET_EID_EP_TYPE_BRIDGE 1
291+
292+ #define MCTP_GET_EID_EID_TYPE_SHIFT 0
293+ #define MCTP_GET_EID_EID_TYPE_MASK 0x03
294+ #define GET_MCTP_GET_EID_EID_TYPE (field ) \
295+ (((field) >> MCTP_GET_EID_EID_TYPE_SHIFT) & MCTP_GET_EID_EID_TYPE_MASK)
296+ #define MCTP_GET_EID_EID_TYPE_DYNAMIC 0
297+ /* Static EID is supported, may or may not match current */
298+ #define MCTP_GET_EID_EID_TYPE_STATIC 1
299+ /* Current eid is the same as static */
300+ #define MCTP_GET_EID_EID_TYPE_STATIC_SAME 2
301+ /* Current eid is different from static */
302+ #define MCTP_GET_EID_EID_TYPE_STATIC_DIFFERENT 3
303+
260304#define MCTP_EID_ALLOCATION_STATUS_SHIFT 0x0
261305#define MCTP_EID_ALLOCATION_STATUS_MASK 0x3
262306#define SET_MCTP_EID_ALLOCATION_STATUS (status ) \
0 commit comments