0001
0002
0003
0004
0005
0006 #ifndef _EFA_ADMIN_H_
0007 #define _EFA_ADMIN_H_
0008
0009 enum efa_admin_aq_completion_status {
0010 EFA_ADMIN_SUCCESS = 0,
0011 EFA_ADMIN_RESOURCE_ALLOCATION_FAILURE = 1,
0012 EFA_ADMIN_BAD_OPCODE = 2,
0013 EFA_ADMIN_UNSUPPORTED_OPCODE = 3,
0014 EFA_ADMIN_MALFORMED_REQUEST = 4,
0015
0016 EFA_ADMIN_ILLEGAL_PARAMETER = 5,
0017 EFA_ADMIN_UNKNOWN_ERROR = 6,
0018 EFA_ADMIN_RESOURCE_BUSY = 7,
0019 };
0020
0021 struct efa_admin_aq_common_desc {
0022
0023
0024
0025
0026 u16 command_id;
0027
0028
0029 u8 opcode;
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039 u8 flags;
0040 };
0041
0042
0043
0044
0045
0046
0047 struct efa_admin_ctrl_buff_info {
0048 u32 length;
0049
0050 struct efa_common_mem_addr address;
0051 };
0052
0053 struct efa_admin_aq_entry {
0054 struct efa_admin_aq_common_desc aq_common_descriptor;
0055
0056 union {
0057 u32 inline_data_w1[3];
0058
0059 struct efa_admin_ctrl_buff_info control_buffer;
0060 } u;
0061
0062 u32 inline_data_w4[12];
0063 };
0064
0065 struct efa_admin_acq_common_desc {
0066
0067
0068
0069
0070
0071 u16 command;
0072
0073 u8 status;
0074
0075
0076
0077
0078
0079 u8 flags;
0080
0081 u16 extended_status;
0082
0083
0084
0085
0086
0087 u16 sq_head_indx;
0088 };
0089
0090 struct efa_admin_acq_entry {
0091 struct efa_admin_acq_common_desc acq_common_descriptor;
0092
0093 u32 response_specific_data[14];
0094 };
0095
0096 struct efa_admin_aenq_common_desc {
0097 u16 group;
0098
0099 u16 syndrom;
0100
0101
0102
0103
0104
0105 u8 flags;
0106
0107 u8 reserved1[3];
0108
0109 u32 timestamp_low;
0110
0111 u32 timestamp_high;
0112 };
0113
0114 struct efa_admin_aenq_entry {
0115 struct efa_admin_aenq_common_desc aenq_common_desc;
0116
0117
0118 u32 inline_data_w4[12];
0119 };
0120
0121 enum efa_admin_eqe_event_type {
0122 EFA_ADMIN_EQE_EVENT_TYPE_COMPLETION = 0,
0123 };
0124
0125
0126 struct efa_admin_comp_event {
0127
0128 u16 cqn;
0129
0130
0131 u16 reserved;
0132
0133
0134 u32 reserved2;
0135 };
0136
0137
0138 struct efa_admin_eqe {
0139
0140
0141
0142
0143
0144 u32 common;
0145
0146
0147 u32 reserved;
0148
0149 union {
0150
0151 u32 event_data[2];
0152
0153
0154 struct efa_admin_comp_event comp_event;
0155 } u;
0156 };
0157
0158
0159 #define EFA_ADMIN_AQ_COMMON_DESC_COMMAND_ID_MASK GENMASK(11, 0)
0160 #define EFA_ADMIN_AQ_COMMON_DESC_PHASE_MASK BIT(0)
0161 #define EFA_ADMIN_AQ_COMMON_DESC_CTRL_DATA_MASK BIT(1)
0162 #define EFA_ADMIN_AQ_COMMON_DESC_CTRL_DATA_INDIRECT_MASK BIT(2)
0163
0164
0165 #define EFA_ADMIN_ACQ_COMMON_DESC_COMMAND_ID_MASK GENMASK(11, 0)
0166 #define EFA_ADMIN_ACQ_COMMON_DESC_PHASE_MASK BIT(0)
0167
0168
0169 #define EFA_ADMIN_AENQ_COMMON_DESC_PHASE_MASK BIT(0)
0170
0171
0172 #define EFA_ADMIN_EQE_PHASE_MASK BIT(0)
0173 #define EFA_ADMIN_EQE_EVENT_TYPE_MASK GENMASK(8, 1)
0174
0175 #endif