1 /* Broadcom NetXtreme-C/E network driver. 2 * 3 * Copyright (c) 2014-2016 Broadcom Corporation 4 * Copyright (c) 2014-2018 Broadcom Limited 5 * Copyright (c) 2018-2025 Broadcom Inc. 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation. 10 * 11 * DO NOT MODIFY!!! This file is automatically generated. 12 */ 13 14 #ifndef _BNXT_HSI_H_ 15 #define _BNXT_HSI_H_ 16 17 /* hwrm_cmd_hdr (size:128b/16B) */ 18 struct hwrm_cmd_hdr { 19 __le16 req_type; 20 __le16 cmpl_ring; 21 __le16 seq_id; 22 __le16 target_id; 23 __le64 resp_addr; 24 }; 25 26 /* hwrm_resp_hdr (size:64b/8B) */ 27 struct hwrm_resp_hdr { 28 __le16 error_code; 29 __le16 req_type; 30 __le16 seq_id; 31 __le16 resp_len; 32 }; 33 34 #define CMD_DISCR_TLV_ENCAP 0x8000UL 35 #define CMD_DISCR_LAST CMD_DISCR_TLV_ENCAP 36 37 38 #define TLV_TYPE_HWRM_REQUEST 0x1UL 39 #define TLV_TYPE_HWRM_RESPONSE 0x2UL 40 #define TLV_TYPE_ROCE_SP_COMMAND 0x3UL 41 #define TLV_TYPE_QUERY_ROCE_CC_GEN1 0x4UL 42 #define TLV_TYPE_MODIFY_ROCE_CC_GEN1 0x5UL 43 #define TLV_TYPE_QUERY_ROCE_CC_GEN2 0x6UL 44 #define TLV_TYPE_MODIFY_ROCE_CC_GEN2 0x7UL 45 #define TLV_TYPE_QUERY_ROCE_CC_GEN1_EXT 0x8UL 46 #define TLV_TYPE_MODIFY_ROCE_CC_GEN1_EXT 0x9UL 47 #define TLV_TYPE_QUERY_ROCE_CC_GEN2_EXT 0xaUL 48 #define TLV_TYPE_MODIFY_ROCE_CC_GEN2_EXT 0xbUL 49 #define TLV_TYPE_ENGINE_CKV_ALIAS_ECC_PUBLIC_KEY 0x8001UL 50 #define TLV_TYPE_ENGINE_CKV_IV 0x8003UL 51 #define TLV_TYPE_ENGINE_CKV_AUTH_TAG 0x8004UL 52 #define TLV_TYPE_ENGINE_CKV_CIPHERTEXT 0x8005UL 53 #define TLV_TYPE_ENGINE_CKV_HOST_ALGORITHMS 0x8006UL 54 #define TLV_TYPE_ENGINE_CKV_HOST_ECC_PUBLIC_KEY 0x8007UL 55 #define TLV_TYPE_ENGINE_CKV_ECDSA_SIGNATURE 0x8008UL 56 #define TLV_TYPE_ENGINE_CKV_FW_ECC_PUBLIC_KEY 0x8009UL 57 #define TLV_TYPE_ENGINE_CKV_FW_ALGORITHMS 0x800aUL 58 #define TLV_TYPE_LAST TLV_TYPE_ENGINE_CKV_FW_ALGORITHMS 59 60 61 /* tlv (size:64b/8B) */ 62 struct tlv { 63 __le16 cmd_discr; 64 u8 reserved_8b; 65 u8 flags; 66 #define TLV_FLAGS_MORE 0x1UL 67 #define TLV_FLAGS_MORE_LAST 0x0UL 68 #define TLV_FLAGS_MORE_NOT_LAST 0x1UL 69 #define TLV_FLAGS_REQUIRED 0x2UL 70 #define TLV_FLAGS_REQUIRED_NO (0x0UL << 1) 71 #define TLV_FLAGS_REQUIRED_YES (0x1UL << 1) 72 #define TLV_FLAGS_REQUIRED_LAST TLV_FLAGS_REQUIRED_YES 73 __le16 tlv_type; 74 __le16 length; 75 }; 76 77 /* input (size:128b/16B) */ 78 struct input { 79 __le16 req_type; 80 __le16 cmpl_ring; 81 __le16 seq_id; 82 __le16 target_id; 83 __le64 resp_addr; 84 }; 85 86 /* output (size:64b/8B) */ 87 struct output { 88 __le16 error_code; 89 __le16 req_type; 90 __le16 seq_id; 91 __le16 resp_len; 92 }; 93 94 /* hwrm_short_input (size:128b/16B) */ 95 struct hwrm_short_input { 96 __le16 req_type; 97 __le16 signature; 98 #define SHORT_REQ_SIGNATURE_SHORT_CMD 0x4321UL 99 #define SHORT_REQ_SIGNATURE_LAST SHORT_REQ_SIGNATURE_SHORT_CMD 100 __le16 target_id; 101 #define SHORT_REQ_TARGET_ID_DEFAULT 0x0UL 102 #define SHORT_REQ_TARGET_ID_TOOLS 0xfffdUL 103 #define SHORT_REQ_TARGET_ID_LAST SHORT_REQ_TARGET_ID_TOOLS 104 __le16 size; 105 __le64 req_addr; 106 }; 107 108 /* cmd_nums (size:64b/8B) */ 109 struct cmd_nums { 110 __le16 req_type; 111 #define HWRM_VER_GET 0x0UL 112 #define HWRM_FUNC_ECHO_RESPONSE 0xbUL 113 #define HWRM_ERROR_RECOVERY_QCFG 0xcUL 114 #define HWRM_FUNC_DRV_IF_CHANGE 0xdUL 115 #define HWRM_FUNC_BUF_UNRGTR 0xeUL 116 #define HWRM_FUNC_VF_CFG 0xfUL 117 #define HWRM_RESERVED1 0x10UL 118 #define HWRM_FUNC_RESET 0x11UL 119 #define HWRM_FUNC_GETFID 0x12UL 120 #define HWRM_FUNC_VF_ALLOC 0x13UL 121 #define HWRM_FUNC_VF_FREE 0x14UL 122 #define HWRM_FUNC_QCAPS 0x15UL 123 #define HWRM_FUNC_QCFG 0x16UL 124 #define HWRM_FUNC_CFG 0x17UL 125 #define HWRM_FUNC_QSTATS 0x18UL 126 #define HWRM_FUNC_CLR_STATS 0x19UL 127 #define HWRM_FUNC_DRV_UNRGTR 0x1aUL 128 #define HWRM_FUNC_VF_RESC_FREE 0x1bUL 129 #define HWRM_FUNC_VF_VNIC_IDS_QUERY 0x1cUL 130 #define HWRM_FUNC_DRV_RGTR 0x1dUL 131 #define HWRM_FUNC_DRV_QVER 0x1eUL 132 #define HWRM_FUNC_BUF_RGTR 0x1fUL 133 #define HWRM_PORT_PHY_CFG 0x20UL 134 #define HWRM_PORT_MAC_CFG 0x21UL 135 #define HWRM_PORT_TS_QUERY 0x22UL 136 #define HWRM_PORT_QSTATS 0x23UL 137 #define HWRM_PORT_LPBK_QSTATS 0x24UL 138 #define HWRM_PORT_CLR_STATS 0x25UL 139 #define HWRM_PORT_LPBK_CLR_STATS 0x26UL 140 #define HWRM_PORT_PHY_QCFG 0x27UL 141 #define HWRM_PORT_MAC_QCFG 0x28UL 142 #define HWRM_PORT_MAC_PTP_QCFG 0x29UL 143 #define HWRM_PORT_PHY_QCAPS 0x2aUL 144 #define HWRM_PORT_PHY_I2C_WRITE 0x2bUL 145 #define HWRM_PORT_PHY_I2C_READ 0x2cUL 146 #define HWRM_PORT_LED_CFG 0x2dUL 147 #define HWRM_PORT_LED_QCFG 0x2eUL 148 #define HWRM_PORT_LED_QCAPS 0x2fUL 149 #define HWRM_QUEUE_QPORTCFG 0x30UL 150 #define HWRM_QUEUE_QCFG 0x31UL 151 #define HWRM_QUEUE_CFG 0x32UL 152 #define HWRM_FUNC_VLAN_CFG 0x33UL 153 #define HWRM_FUNC_VLAN_QCFG 0x34UL 154 #define HWRM_QUEUE_PFCENABLE_QCFG 0x35UL 155 #define HWRM_QUEUE_PFCENABLE_CFG 0x36UL 156 #define HWRM_QUEUE_PRI2COS_QCFG 0x37UL 157 #define HWRM_QUEUE_PRI2COS_CFG 0x38UL 158 #define HWRM_QUEUE_COS2BW_QCFG 0x39UL 159 #define HWRM_QUEUE_COS2BW_CFG 0x3aUL 160 #define HWRM_QUEUE_DSCP_QCAPS 0x3bUL 161 #define HWRM_QUEUE_DSCP2PRI_QCFG 0x3cUL 162 #define HWRM_QUEUE_DSCP2PRI_CFG 0x3dUL 163 #define HWRM_VNIC_ALLOC 0x40UL 164 #define HWRM_VNIC_FREE 0x41UL 165 #define HWRM_VNIC_CFG 0x42UL 166 #define HWRM_VNIC_QCFG 0x43UL 167 #define HWRM_VNIC_TPA_CFG 0x44UL 168 #define HWRM_VNIC_TPA_QCFG 0x45UL 169 #define HWRM_VNIC_RSS_CFG 0x46UL 170 #define HWRM_VNIC_RSS_QCFG 0x47UL 171 #define HWRM_VNIC_PLCMODES_CFG 0x48UL 172 #define HWRM_VNIC_PLCMODES_QCFG 0x49UL 173 #define HWRM_VNIC_QCAPS 0x4aUL 174 #define HWRM_VNIC_UPDATE 0x4bUL 175 #define HWRM_RING_ALLOC 0x50UL 176 #define HWRM_RING_FREE 0x51UL 177 #define HWRM_RING_CMPL_RING_QAGGINT_PARAMS 0x52UL 178 #define HWRM_RING_CMPL_RING_CFG_AGGINT_PARAMS 0x53UL 179 #define HWRM_RING_AGGINT_QCAPS 0x54UL 180 #define HWRM_RING_SCHQ_ALLOC 0x55UL 181 #define HWRM_RING_SCHQ_CFG 0x56UL 182 #define HWRM_RING_SCHQ_FREE 0x57UL 183 #define HWRM_RING_RESET 0x5eUL 184 #define HWRM_RING_GRP_ALLOC 0x60UL 185 #define HWRM_RING_GRP_FREE 0x61UL 186 #define HWRM_RING_CFG 0x62UL 187 #define HWRM_RING_QCFG 0x63UL 188 #define HWRM_RESERVED5 0x64UL 189 #define HWRM_RESERVED6 0x65UL 190 #define HWRM_VNIC_RSS_COS_LB_CTX_ALLOC 0x70UL 191 #define HWRM_VNIC_RSS_COS_LB_CTX_FREE 0x71UL 192 #define HWRM_QUEUE_MPLS_QCAPS 0x80UL 193 #define HWRM_QUEUE_MPLSTC2PRI_QCFG 0x81UL 194 #define HWRM_QUEUE_MPLSTC2PRI_CFG 0x82UL 195 #define HWRM_QUEUE_VLANPRI_QCAPS 0x83UL 196 #define HWRM_QUEUE_VLANPRI2PRI_QCFG 0x84UL 197 #define HWRM_QUEUE_VLANPRI2PRI_CFG 0x85UL 198 #define HWRM_QUEUE_GLOBAL_CFG 0x86UL 199 #define HWRM_QUEUE_GLOBAL_QCFG 0x87UL 200 #define HWRM_QUEUE_ADPTV_QOS_RX_FEATURE_QCFG 0x88UL 201 #define HWRM_QUEUE_ADPTV_QOS_RX_FEATURE_CFG 0x89UL 202 #define HWRM_QUEUE_ADPTV_QOS_TX_FEATURE_QCFG 0x8aUL 203 #define HWRM_QUEUE_ADPTV_QOS_TX_FEATURE_CFG 0x8bUL 204 #define HWRM_QUEUE_QCAPS 0x8cUL 205 #define HWRM_QUEUE_ADPTV_QOS_RX_TUNING_QCFG 0x8dUL 206 #define HWRM_QUEUE_ADPTV_QOS_RX_TUNING_CFG 0x8eUL 207 #define HWRM_QUEUE_ADPTV_QOS_TX_TUNING_QCFG 0x8fUL 208 #define HWRM_CFA_L2_FILTER_ALLOC 0x90UL 209 #define HWRM_CFA_L2_FILTER_FREE 0x91UL 210 #define HWRM_CFA_L2_FILTER_CFG 0x92UL 211 #define HWRM_CFA_L2_SET_RX_MASK 0x93UL 212 #define HWRM_CFA_VLAN_ANTISPOOF_CFG 0x94UL 213 #define HWRM_CFA_TUNNEL_FILTER_ALLOC 0x95UL 214 #define HWRM_CFA_TUNNEL_FILTER_FREE 0x96UL 215 #define HWRM_CFA_ENCAP_RECORD_ALLOC 0x97UL 216 #define HWRM_CFA_ENCAP_RECORD_FREE 0x98UL 217 #define HWRM_CFA_NTUPLE_FILTER_ALLOC 0x99UL 218 #define HWRM_CFA_NTUPLE_FILTER_FREE 0x9aUL 219 #define HWRM_CFA_NTUPLE_FILTER_CFG 0x9bUL 220 #define HWRM_CFA_EM_FLOW_ALLOC 0x9cUL 221 #define HWRM_CFA_EM_FLOW_FREE 0x9dUL 222 #define HWRM_CFA_EM_FLOW_CFG 0x9eUL 223 #define HWRM_TUNNEL_DST_PORT_QUERY 0xa0UL 224 #define HWRM_TUNNEL_DST_PORT_ALLOC 0xa1UL 225 #define HWRM_TUNNEL_DST_PORT_FREE 0xa2UL 226 #define HWRM_QUEUE_ADPTV_QOS_TX_TUNING_CFG 0xa3UL 227 #define HWRM_STAT_CTX_ENG_QUERY 0xafUL 228 #define HWRM_STAT_CTX_ALLOC 0xb0UL 229 #define HWRM_STAT_CTX_FREE 0xb1UL 230 #define HWRM_STAT_CTX_QUERY 0xb2UL 231 #define HWRM_STAT_CTX_CLR_STATS 0xb3UL 232 #define HWRM_PORT_QSTATS_EXT 0xb4UL 233 #define HWRM_PORT_PHY_MDIO_WRITE 0xb5UL 234 #define HWRM_PORT_PHY_MDIO_READ 0xb6UL 235 #define HWRM_PORT_PHY_MDIO_BUS_ACQUIRE 0xb7UL 236 #define HWRM_PORT_PHY_MDIO_BUS_RELEASE 0xb8UL 237 #define HWRM_PORT_QSTATS_EXT_PFC_WD 0xb9UL 238 #define HWRM_RESERVED7 0xbaUL 239 #define HWRM_PORT_TX_FIR_CFG 0xbbUL 240 #define HWRM_PORT_TX_FIR_QCFG 0xbcUL 241 #define HWRM_PORT_ECN_QSTATS 0xbdUL 242 #define HWRM_FW_LIVEPATCH_QUERY 0xbeUL 243 #define HWRM_FW_LIVEPATCH 0xbfUL 244 #define HWRM_FW_RESET 0xc0UL 245 #define HWRM_FW_QSTATUS 0xc1UL 246 #define HWRM_FW_HEALTH_CHECK 0xc2UL 247 #define HWRM_FW_SYNC 0xc3UL 248 #define HWRM_FW_STATE_QCAPS 0xc4UL 249 #define HWRM_FW_STATE_QUIESCE 0xc5UL 250 #define HWRM_FW_STATE_BACKUP 0xc6UL 251 #define HWRM_FW_STATE_RESTORE 0xc7UL 252 #define HWRM_FW_SET_TIME 0xc8UL 253 #define HWRM_FW_GET_TIME 0xc9UL 254 #define HWRM_FW_SET_STRUCTURED_DATA 0xcaUL 255 #define HWRM_FW_GET_STRUCTURED_DATA 0xcbUL 256 #define HWRM_FW_IPC_MAILBOX 0xccUL 257 #define HWRM_FW_ECN_CFG 0xcdUL 258 #define HWRM_FW_ECN_QCFG 0xceUL 259 #define HWRM_FW_SECURE_CFG 0xcfUL 260 #define HWRM_EXEC_FWD_RESP 0xd0UL 261 #define HWRM_REJECT_FWD_RESP 0xd1UL 262 #define HWRM_FWD_RESP 0xd2UL 263 #define HWRM_FWD_ASYNC_EVENT_CMPL 0xd3UL 264 #define HWRM_OEM_CMD 0xd4UL 265 #define HWRM_PORT_PRBS_TEST 0xd5UL 266 #define HWRM_PORT_SFP_SIDEBAND_CFG 0xd6UL 267 #define HWRM_PORT_SFP_SIDEBAND_QCFG 0xd7UL 268 #define HWRM_FW_STATE_UNQUIESCE 0xd8UL 269 #define HWRM_PORT_DSC_DUMP 0xd9UL 270 #define HWRM_PORT_EP_TX_QCFG 0xdaUL 271 #define HWRM_PORT_EP_TX_CFG 0xdbUL 272 #define HWRM_PORT_CFG 0xdcUL 273 #define HWRM_PORT_QCFG 0xddUL 274 #define HWRM_PORT_MAC_QCAPS 0xdfUL 275 #define HWRM_TEMP_MONITOR_QUERY 0xe0UL 276 #define HWRM_REG_POWER_QUERY 0xe1UL 277 #define HWRM_CORE_FREQUENCY_QUERY 0xe2UL 278 #define HWRM_REG_POWER_HISTOGRAM 0xe3UL 279 #define HWRM_WOL_FILTER_ALLOC 0xf0UL 280 #define HWRM_WOL_FILTER_FREE 0xf1UL 281 #define HWRM_WOL_FILTER_QCFG 0xf2UL 282 #define HWRM_WOL_REASON_QCFG 0xf3UL 283 #define HWRM_CFA_METER_QCAPS 0xf4UL 284 #define HWRM_CFA_METER_PROFILE_ALLOC 0xf5UL 285 #define HWRM_CFA_METER_PROFILE_FREE 0xf6UL 286 #define HWRM_CFA_METER_PROFILE_CFG 0xf7UL 287 #define HWRM_CFA_METER_INSTANCE_ALLOC 0xf8UL 288 #define HWRM_CFA_METER_INSTANCE_FREE 0xf9UL 289 #define HWRM_CFA_METER_INSTANCE_CFG 0xfaUL 290 #define HWRM_CFA_VFR_ALLOC 0xfdUL 291 #define HWRM_CFA_VFR_FREE 0xfeUL 292 #define HWRM_CFA_VF_PAIR_ALLOC 0x100UL 293 #define HWRM_CFA_VF_PAIR_FREE 0x101UL 294 #define HWRM_CFA_VF_PAIR_INFO 0x102UL 295 #define HWRM_CFA_FLOW_ALLOC 0x103UL 296 #define HWRM_CFA_FLOW_FREE 0x104UL 297 #define HWRM_CFA_FLOW_FLUSH 0x105UL 298 #define HWRM_CFA_FLOW_STATS 0x106UL 299 #define HWRM_CFA_FLOW_INFO 0x107UL 300 #define HWRM_CFA_DECAP_FILTER_ALLOC 0x108UL 301 #define HWRM_CFA_DECAP_FILTER_FREE 0x109UL 302 #define HWRM_CFA_VLAN_ANTISPOOF_QCFG 0x10aUL 303 #define HWRM_CFA_REDIRECT_TUNNEL_TYPE_ALLOC 0x10bUL 304 #define HWRM_CFA_REDIRECT_TUNNEL_TYPE_FREE 0x10cUL 305 #define HWRM_CFA_PAIR_ALLOC 0x10dUL 306 #define HWRM_CFA_PAIR_FREE 0x10eUL 307 #define HWRM_CFA_PAIR_INFO 0x10fUL 308 #define HWRM_FW_IPC_MSG 0x110UL 309 #define HWRM_CFA_REDIRECT_TUNNEL_TYPE_INFO 0x111UL 310 #define HWRM_CFA_REDIRECT_QUERY_TUNNEL_TYPE 0x112UL 311 #define HWRM_CFA_FLOW_AGING_TIMER_RESET 0x113UL 312 #define HWRM_CFA_FLOW_AGING_CFG 0x114UL 313 #define HWRM_CFA_FLOW_AGING_QCFG 0x115UL 314 #define HWRM_CFA_FLOW_AGING_QCAPS 0x116UL 315 #define HWRM_CFA_CTX_MEM_RGTR 0x117UL 316 #define HWRM_CFA_CTX_MEM_UNRGTR 0x118UL 317 #define HWRM_CFA_CTX_MEM_QCTX 0x119UL 318 #define HWRM_CFA_CTX_MEM_QCAPS 0x11aUL 319 #define HWRM_CFA_COUNTER_QCAPS 0x11bUL 320 #define HWRM_CFA_COUNTER_CFG 0x11cUL 321 #define HWRM_CFA_COUNTER_QCFG 0x11dUL 322 #define HWRM_CFA_COUNTER_QSTATS 0x11eUL 323 #define HWRM_CFA_TCP_FLAG_PROCESS_QCFG 0x11fUL 324 #define HWRM_CFA_EEM_QCAPS 0x120UL 325 #define HWRM_CFA_EEM_CFG 0x121UL 326 #define HWRM_CFA_EEM_QCFG 0x122UL 327 #define HWRM_CFA_EEM_OP 0x123UL 328 #define HWRM_CFA_ADV_FLOW_MGNT_QCAPS 0x124UL 329 #define HWRM_CFA_TFLIB 0x125UL 330 #define HWRM_CFA_LAG_GROUP_MEMBER_RGTR 0x126UL 331 #define HWRM_CFA_LAG_GROUP_MEMBER_UNRGTR 0x127UL 332 #define HWRM_CFA_TLS_FILTER_ALLOC 0x128UL 333 #define HWRM_CFA_TLS_FILTER_FREE 0x129UL 334 #define HWRM_CFA_RELEASE_AFM_FUNC 0x12aUL 335 #define HWRM_ENGINE_CKV_STATUS 0x12eUL 336 #define HWRM_ENGINE_CKV_CKEK_ADD 0x12fUL 337 #define HWRM_ENGINE_CKV_CKEK_DELETE 0x130UL 338 #define HWRM_ENGINE_CKV_KEY_ADD 0x131UL 339 #define HWRM_ENGINE_CKV_KEY_DELETE 0x132UL 340 #define HWRM_ENGINE_CKV_FLUSH 0x133UL 341 #define HWRM_ENGINE_CKV_RNG_GET 0x134UL 342 #define HWRM_ENGINE_CKV_KEY_GEN 0x135UL 343 #define HWRM_ENGINE_CKV_KEY_LABEL_CFG 0x136UL 344 #define HWRM_ENGINE_CKV_KEY_LABEL_QCFG 0x137UL 345 #define HWRM_ENGINE_QG_CONFIG_QUERY 0x13cUL 346 #define HWRM_ENGINE_QG_QUERY 0x13dUL 347 #define HWRM_ENGINE_QG_METER_PROFILE_CONFIG_QUERY 0x13eUL 348 #define HWRM_ENGINE_QG_METER_PROFILE_QUERY 0x13fUL 349 #define HWRM_ENGINE_QG_METER_PROFILE_ALLOC 0x140UL 350 #define HWRM_ENGINE_QG_METER_PROFILE_FREE 0x141UL 351 #define HWRM_ENGINE_QG_METER_QUERY 0x142UL 352 #define HWRM_ENGINE_QG_METER_BIND 0x143UL 353 #define HWRM_ENGINE_QG_METER_UNBIND 0x144UL 354 #define HWRM_ENGINE_QG_FUNC_BIND 0x145UL 355 #define HWRM_ENGINE_SG_CONFIG_QUERY 0x146UL 356 #define HWRM_ENGINE_SG_QUERY 0x147UL 357 #define HWRM_ENGINE_SG_METER_QUERY 0x148UL 358 #define HWRM_ENGINE_SG_METER_CONFIG 0x149UL 359 #define HWRM_ENGINE_SG_QG_BIND 0x14aUL 360 #define HWRM_ENGINE_QG_SG_UNBIND 0x14bUL 361 #define HWRM_ENGINE_CONFIG_QUERY 0x154UL 362 #define HWRM_ENGINE_STATS_CONFIG 0x155UL 363 #define HWRM_ENGINE_STATS_CLEAR 0x156UL 364 #define HWRM_ENGINE_STATS_QUERY 0x157UL 365 #define HWRM_ENGINE_STATS_QUERY_CONTINUOUS_ERROR 0x158UL 366 #define HWRM_ENGINE_RQ_ALLOC 0x15eUL 367 #define HWRM_ENGINE_RQ_FREE 0x15fUL 368 #define HWRM_ENGINE_CQ_ALLOC 0x160UL 369 #define HWRM_ENGINE_CQ_FREE 0x161UL 370 #define HWRM_ENGINE_NQ_ALLOC 0x162UL 371 #define HWRM_ENGINE_NQ_FREE 0x163UL 372 #define HWRM_ENGINE_ON_DIE_RQE_CREDITS 0x164UL 373 #define HWRM_ENGINE_FUNC_QCFG 0x165UL 374 #define HWRM_FUNC_RESOURCE_QCAPS 0x190UL 375 #define HWRM_FUNC_VF_RESOURCE_CFG 0x191UL 376 #define HWRM_FUNC_BACKING_STORE_QCAPS 0x192UL 377 #define HWRM_FUNC_BACKING_STORE_CFG 0x193UL 378 #define HWRM_FUNC_BACKING_STORE_QCFG 0x194UL 379 #define HWRM_FUNC_VF_BW_CFG 0x195UL 380 #define HWRM_FUNC_VF_BW_QCFG 0x196UL 381 #define HWRM_FUNC_HOST_PF_IDS_QUERY 0x197UL 382 #define HWRM_FUNC_QSTATS_EXT 0x198UL 383 #define HWRM_STAT_EXT_CTX_QUERY 0x199UL 384 #define HWRM_FUNC_SPD_CFG 0x19aUL 385 #define HWRM_FUNC_SPD_QCFG 0x19bUL 386 #define HWRM_FUNC_PTP_PIN_QCFG 0x19cUL 387 #define HWRM_FUNC_PTP_PIN_CFG 0x19dUL 388 #define HWRM_FUNC_PTP_CFG 0x19eUL 389 #define HWRM_FUNC_PTP_TS_QUERY 0x19fUL 390 #define HWRM_FUNC_PTP_EXT_CFG 0x1a0UL 391 #define HWRM_FUNC_PTP_EXT_QCFG 0x1a1UL 392 #define HWRM_FUNC_KEY_CTX_ALLOC 0x1a2UL 393 #define HWRM_FUNC_BACKING_STORE_CFG_V2 0x1a3UL 394 #define HWRM_FUNC_BACKING_STORE_QCFG_V2 0x1a4UL 395 #define HWRM_FUNC_DBR_PACING_CFG 0x1a5UL 396 #define HWRM_FUNC_DBR_PACING_QCFG 0x1a6UL 397 #define HWRM_FUNC_DBR_PACING_BROADCAST_EVENT 0x1a7UL 398 #define HWRM_FUNC_BACKING_STORE_QCAPS_V2 0x1a8UL 399 #define HWRM_FUNC_DBR_PACING_NQLIST_QUERY 0x1a9UL 400 #define HWRM_FUNC_DBR_RECOVERY_COMPLETED 0x1aaUL 401 #define HWRM_FUNC_SYNCE_CFG 0x1abUL 402 #define HWRM_FUNC_SYNCE_QCFG 0x1acUL 403 #define HWRM_FUNC_KEY_CTX_FREE 0x1adUL 404 #define HWRM_FUNC_LAG_MODE_CFG 0x1aeUL 405 #define HWRM_FUNC_LAG_MODE_QCFG 0x1afUL 406 #define HWRM_FUNC_LAG_CREATE 0x1b0UL 407 #define HWRM_FUNC_LAG_UPDATE 0x1b1UL 408 #define HWRM_FUNC_LAG_FREE 0x1b2UL 409 #define HWRM_FUNC_LAG_QCFG 0x1b3UL 410 #define HWRM_FUNC_TIMEDTX_PACING_RATE_ADD 0x1c2UL 411 #define HWRM_FUNC_TIMEDTX_PACING_RATE_DELETE 0x1c3UL 412 #define HWRM_FUNC_TIMEDTX_PACING_RATE_QUERY 0x1c4UL 413 #define HWRM_SELFTEST_QLIST 0x200UL 414 #define HWRM_SELFTEST_EXEC 0x201UL 415 #define HWRM_SELFTEST_IRQ 0x202UL 416 #define HWRM_SELFTEST_RETRIEVE_SERDES_DATA 0x203UL 417 #define HWRM_PCIE_QSTATS 0x204UL 418 #define HWRM_MFG_FRU_WRITE_CONTROL 0x205UL 419 #define HWRM_MFG_TIMERS_QUERY 0x206UL 420 #define HWRM_MFG_OTP_CFG 0x207UL 421 #define HWRM_MFG_OTP_QCFG 0x208UL 422 #define HWRM_MFG_HDMA_TEST 0x209UL 423 #define HWRM_MFG_FRU_EEPROM_WRITE 0x20aUL 424 #define HWRM_MFG_FRU_EEPROM_READ 0x20bUL 425 #define HWRM_MFG_SOC_IMAGE 0x20cUL 426 #define HWRM_MFG_SOC_QSTATUS 0x20dUL 427 #define HWRM_MFG_PARAM_CRITICAL_DATA_FINALIZE 0x20eUL 428 #define HWRM_MFG_PARAM_CRITICAL_DATA_READ 0x20fUL 429 #define HWRM_MFG_PARAM_CRITICAL_DATA_HEALTH 0x210UL 430 #define HWRM_MFG_PRVSN_EXPORT_CSR 0x211UL 431 #define HWRM_MFG_PRVSN_IMPORT_CERT 0x212UL 432 #define HWRM_MFG_PRVSN_GET_STATE 0x213UL 433 #define HWRM_MFG_GET_NVM_MEASUREMENT 0x214UL 434 #define HWRM_MFG_PSOC_QSTATUS 0x215UL 435 #define HWRM_MFG_SELFTEST_QLIST 0x216UL 436 #define HWRM_MFG_SELFTEST_EXEC 0x217UL 437 #define HWRM_STAT_GENERIC_QSTATS 0x218UL 438 #define HWRM_MFG_PRVSN_EXPORT_CERT 0x219UL 439 #define HWRM_STAT_DB_ERROR_QSTATS 0x21aUL 440 #define HWRM_MFG_TESTS 0x21bUL 441 #define HWRM_MFG_WRITE_CERT_NVM 0x21cUL 442 #define HWRM_PORT_POE_CFG 0x230UL 443 #define HWRM_PORT_POE_QCFG 0x231UL 444 #define HWRM_UDCC_QCAPS 0x258UL 445 #define HWRM_UDCC_CFG 0x259UL 446 #define HWRM_UDCC_QCFG 0x25aUL 447 #define HWRM_UDCC_SESSION_CFG 0x25bUL 448 #define HWRM_UDCC_SESSION_QCFG 0x25cUL 449 #define HWRM_UDCC_SESSION_QUERY 0x25dUL 450 #define HWRM_UDCC_COMP_CFG 0x25eUL 451 #define HWRM_UDCC_COMP_QCFG 0x25fUL 452 #define HWRM_UDCC_COMP_QUERY 0x260UL 453 #define HWRM_QUEUE_PFCWD_TIMEOUT_QCAPS 0x261UL 454 #define HWRM_QUEUE_PFCWD_TIMEOUT_CFG 0x262UL 455 #define HWRM_QUEUE_PFCWD_TIMEOUT_QCFG 0x263UL 456 #define HWRM_TF 0x2bcUL 457 #define HWRM_TF_VERSION_GET 0x2bdUL 458 #define HWRM_TF_SESSION_OPEN 0x2c6UL 459 #define HWRM_TF_SESSION_REGISTER 0x2c8UL 460 #define HWRM_TF_SESSION_UNREGISTER 0x2c9UL 461 #define HWRM_TF_SESSION_CLOSE 0x2caUL 462 #define HWRM_TF_SESSION_QCFG 0x2cbUL 463 #define HWRM_TF_SESSION_RESC_QCAPS 0x2ccUL 464 #define HWRM_TF_SESSION_RESC_ALLOC 0x2cdUL 465 #define HWRM_TF_SESSION_RESC_FREE 0x2ceUL 466 #define HWRM_TF_SESSION_RESC_FLUSH 0x2cfUL 467 #define HWRM_TF_SESSION_RESC_INFO 0x2d0UL 468 #define HWRM_TF_SESSION_HOTUP_STATE_SET 0x2d1UL 469 #define HWRM_TF_SESSION_HOTUP_STATE_GET 0x2d2UL 470 #define HWRM_TF_TBL_TYPE_GET 0x2daUL 471 #define HWRM_TF_TBL_TYPE_SET 0x2dbUL 472 #define HWRM_TF_TBL_TYPE_BULK_GET 0x2dcUL 473 #define HWRM_TF_EM_INSERT 0x2eaUL 474 #define HWRM_TF_EM_DELETE 0x2ebUL 475 #define HWRM_TF_EM_HASH_INSERT 0x2ecUL 476 #define HWRM_TF_EM_MOVE 0x2edUL 477 #define HWRM_TF_TCAM_SET 0x2f8UL 478 #define HWRM_TF_TCAM_GET 0x2f9UL 479 #define HWRM_TF_TCAM_MOVE 0x2faUL 480 #define HWRM_TF_TCAM_FREE 0x2fbUL 481 #define HWRM_TF_GLOBAL_CFG_SET 0x2fcUL 482 #define HWRM_TF_GLOBAL_CFG_GET 0x2fdUL 483 #define HWRM_TF_IF_TBL_SET 0x2feUL 484 #define HWRM_TF_IF_TBL_GET 0x2ffUL 485 #define HWRM_TF_RESC_USAGE_SET 0x300UL 486 #define HWRM_TF_RESC_USAGE_QUERY 0x301UL 487 #define HWRM_TF_TBL_TYPE_ALLOC 0x302UL 488 #define HWRM_TF_TBL_TYPE_FREE 0x303UL 489 #define HWRM_TFC_TBL_SCOPE_QCAPS 0x380UL 490 #define HWRM_TFC_TBL_SCOPE_ID_ALLOC 0x381UL 491 #define HWRM_TFC_TBL_SCOPE_CONFIG 0x382UL 492 #define HWRM_TFC_TBL_SCOPE_DECONFIG 0x383UL 493 #define HWRM_TFC_TBL_SCOPE_FID_ADD 0x384UL 494 #define HWRM_TFC_TBL_SCOPE_FID_REM 0x385UL 495 #define HWRM_TFC_TBL_SCOPE_POOL_ALLOC 0x386UL 496 #define HWRM_TFC_TBL_SCOPE_POOL_FREE 0x387UL 497 #define HWRM_TFC_SESSION_ID_ALLOC 0x388UL 498 #define HWRM_TFC_SESSION_FID_ADD 0x389UL 499 #define HWRM_TFC_SESSION_FID_REM 0x38aUL 500 #define HWRM_TFC_IDENT_ALLOC 0x38bUL 501 #define HWRM_TFC_IDENT_FREE 0x38cUL 502 #define HWRM_TFC_IDX_TBL_ALLOC 0x38dUL 503 #define HWRM_TFC_IDX_TBL_ALLOC_SET 0x38eUL 504 #define HWRM_TFC_IDX_TBL_SET 0x38fUL 505 #define HWRM_TFC_IDX_TBL_GET 0x390UL 506 #define HWRM_TFC_IDX_TBL_FREE 0x391UL 507 #define HWRM_TFC_GLOBAL_ID_ALLOC 0x392UL 508 #define HWRM_TFC_TCAM_SET 0x393UL 509 #define HWRM_TFC_TCAM_GET 0x394UL 510 #define HWRM_TFC_TCAM_ALLOC 0x395UL 511 #define HWRM_TFC_TCAM_ALLOC_SET 0x396UL 512 #define HWRM_TFC_TCAM_FREE 0x397UL 513 #define HWRM_TFC_IF_TBL_SET 0x398UL 514 #define HWRM_TFC_IF_TBL_GET 0x399UL 515 #define HWRM_TFC_TBL_SCOPE_CONFIG_GET 0x39aUL 516 #define HWRM_TFC_RESC_USAGE_QUERY 0x39bUL 517 #define HWRM_TFC_GLOBAL_ID_FREE 0x39cUL 518 #define HWRM_TFC_TCAM_PRI_UPDATE 0x39dUL 519 #define HWRM_TFC_HOT_UPGRADE_PROCESS 0x3a0UL 520 #define HWRM_SV 0x400UL 521 #define HWRM_DBG_SERDES_TEST 0xff0eUL 522 #define HWRM_DBG_LOG_BUFFER_FLUSH 0xff0fUL 523 #define HWRM_DBG_READ_DIRECT 0xff10UL 524 #define HWRM_DBG_READ_INDIRECT 0xff11UL 525 #define HWRM_DBG_WRITE_DIRECT 0xff12UL 526 #define HWRM_DBG_WRITE_INDIRECT 0xff13UL 527 #define HWRM_DBG_DUMP 0xff14UL 528 #define HWRM_DBG_ERASE_NVM 0xff15UL 529 #define HWRM_DBG_CFG 0xff16UL 530 #define HWRM_DBG_COREDUMP_LIST 0xff17UL 531 #define HWRM_DBG_COREDUMP_INITIATE 0xff18UL 532 #define HWRM_DBG_COREDUMP_RETRIEVE 0xff19UL 533 #define HWRM_DBG_FW_CLI 0xff1aUL 534 #define HWRM_DBG_I2C_CMD 0xff1bUL 535 #define HWRM_DBG_RING_INFO_GET 0xff1cUL 536 #define HWRM_DBG_CRASHDUMP_HEADER 0xff1dUL 537 #define HWRM_DBG_CRASHDUMP_ERASE 0xff1eUL 538 #define HWRM_DBG_DRV_TRACE 0xff1fUL 539 #define HWRM_DBG_QCAPS 0xff20UL 540 #define HWRM_DBG_QCFG 0xff21UL 541 #define HWRM_DBG_CRASHDUMP_MEDIUM_CFG 0xff22UL 542 #define HWRM_DBG_USEQ_ALLOC 0xff23UL 543 #define HWRM_DBG_USEQ_FREE 0xff24UL 544 #define HWRM_DBG_USEQ_FLUSH 0xff25UL 545 #define HWRM_DBG_USEQ_QCAPS 0xff26UL 546 #define HWRM_DBG_USEQ_CW_CFG 0xff27UL 547 #define HWRM_DBG_USEQ_SCHED_CFG 0xff28UL 548 #define HWRM_DBG_USEQ_RUN 0xff29UL 549 #define HWRM_DBG_USEQ_DELIVERY_REQ 0xff2aUL 550 #define HWRM_DBG_USEQ_RESP_HDR 0xff2bUL 551 #define HWRM_DBG_COREDUMP_CAPTURE 0xff2cUL 552 #define HWRM_DBG_PTRACE 0xff2dUL 553 #define HWRM_DBG_SIM_CABLE_STATE 0xff2eUL 554 #define HWRM_NVM_GET_VPD_FIELD_INFO 0xffeaUL 555 #define HWRM_NVM_SET_VPD_FIELD_INFO 0xffebUL 556 #define HWRM_NVM_DEFRAG 0xffecUL 557 #define HWRM_NVM_REQ_ARBITRATION 0xffedUL 558 #define HWRM_NVM_FACTORY_DEFAULTS 0xffeeUL 559 #define HWRM_NVM_VALIDATE_OPTION 0xffefUL 560 #define HWRM_NVM_FLUSH 0xfff0UL 561 #define HWRM_NVM_GET_VARIABLE 0xfff1UL 562 #define HWRM_NVM_SET_VARIABLE 0xfff2UL 563 #define HWRM_NVM_INSTALL_UPDATE 0xfff3UL 564 #define HWRM_NVM_MODIFY 0xfff4UL 565 #define HWRM_NVM_VERIFY_UPDATE 0xfff5UL 566 #define HWRM_NVM_GET_DEV_INFO 0xfff6UL 567 #define HWRM_NVM_ERASE_DIR_ENTRY 0xfff7UL 568 #define HWRM_NVM_MOD_DIR_ENTRY 0xfff8UL 569 #define HWRM_NVM_FIND_DIR_ENTRY 0xfff9UL 570 #define HWRM_NVM_GET_DIR_ENTRIES 0xfffaUL 571 #define HWRM_NVM_GET_DIR_INFO 0xfffbUL 572 #define HWRM_NVM_RAW_DUMP 0xfffcUL 573 #define HWRM_NVM_READ 0xfffdUL 574 #define HWRM_NVM_WRITE 0xfffeUL 575 #define HWRM_NVM_RAW_WRITE_BLK 0xffffUL 576 #define HWRM_LAST HWRM_NVM_RAW_WRITE_BLK 577 __le16 unused_0[3]; 578 }; 579 580 /* ret_codes (size:64b/8B) */ 581 struct ret_codes { 582 __le16 error_code; 583 #define HWRM_ERR_CODE_SUCCESS 0x0UL 584 #define HWRM_ERR_CODE_FAIL 0x1UL 585 #define HWRM_ERR_CODE_INVALID_PARAMS 0x2UL 586 #define HWRM_ERR_CODE_RESOURCE_ACCESS_DENIED 0x3UL 587 #define HWRM_ERR_CODE_RESOURCE_ALLOC_ERROR 0x4UL 588 #define HWRM_ERR_CODE_INVALID_FLAGS 0x5UL 589 #define HWRM_ERR_CODE_INVALID_ENABLES 0x6UL 590 #define HWRM_ERR_CODE_UNSUPPORTED_TLV 0x7UL 591 #define HWRM_ERR_CODE_NO_BUFFER 0x8UL 592 #define HWRM_ERR_CODE_UNSUPPORTED_OPTION_ERR 0x9UL 593 #define HWRM_ERR_CODE_HOT_RESET_PROGRESS 0xaUL 594 #define HWRM_ERR_CODE_HOT_RESET_FAIL 0xbUL 595 #define HWRM_ERR_CODE_NO_FLOW_COUNTER_DURING_ALLOC 0xcUL 596 #define HWRM_ERR_CODE_KEY_HASH_COLLISION 0xdUL 597 #define HWRM_ERR_CODE_KEY_ALREADY_EXISTS 0xeUL 598 #define HWRM_ERR_CODE_HWRM_ERROR 0xfUL 599 #define HWRM_ERR_CODE_BUSY 0x10UL 600 #define HWRM_ERR_CODE_RESOURCE_LOCKED 0x11UL 601 #define HWRM_ERR_CODE_PF_UNAVAILABLE 0x12UL 602 #define HWRM_ERR_CODE_ENTITY_NOT_PRESENT 0x13UL 603 #define HWRM_ERR_CODE_SECURE_SOC_ERROR 0x14UL 604 #define HWRM_ERR_CODE_TLV_ENCAPSULATED_RESPONSE 0x8000UL 605 #define HWRM_ERR_CODE_UNKNOWN_ERR 0xfffeUL 606 #define HWRM_ERR_CODE_CMD_NOT_SUPPORTED 0xffffUL 607 #define HWRM_ERR_CODE_LAST HWRM_ERR_CODE_CMD_NOT_SUPPORTED 608 __le16 unused_0[3]; 609 }; 610 611 /* hwrm_err_output (size:128b/16B) */ 612 struct hwrm_err_output { 613 __le16 error_code; 614 __le16 req_type; 615 __le16 seq_id; 616 __le16 resp_len; 617 __le32 opaque_0; 618 __le16 opaque_1; 619 u8 cmd_err; 620 u8 valid; 621 }; 622 #define HWRM_NA_SIGNATURE ((__le32)(-1)) 623 #define HWRM_MAX_REQ_LEN 128 624 #define HWRM_MAX_RESP_LEN 704 625 #define HW_HASH_INDEX_SIZE 0x80 626 #define HW_HASH_KEY_SIZE 40 627 #define HWRM_RESP_VALID_KEY 1 628 #define HWRM_TARGET_ID_BONO 0xFFF8 629 #define HWRM_TARGET_ID_KONG 0xFFF9 630 #define HWRM_TARGET_ID_APE 0xFFFA 631 #define HWRM_TARGET_ID_TOOLS 0xFFFD 632 #define HWRM_VERSION_MAJOR 1 633 #define HWRM_VERSION_MINOR 10 634 #define HWRM_VERSION_UPDATE 3 635 #define HWRM_VERSION_RSVD 97 636 #define HWRM_VERSION_STR "1.10.3.97" 637 638 /* hwrm_ver_get_input (size:192b/24B) */ 639 struct hwrm_ver_get_input { 640 __le16 req_type; 641 __le16 cmpl_ring; 642 __le16 seq_id; 643 __le16 target_id; 644 __le64 resp_addr; 645 u8 hwrm_intf_maj; 646 u8 hwrm_intf_min; 647 u8 hwrm_intf_upd; 648 u8 unused_0[5]; 649 }; 650 651 /* hwrm_ver_get_output (size:1408b/176B) */ 652 struct hwrm_ver_get_output { 653 __le16 error_code; 654 __le16 req_type; 655 __le16 seq_id; 656 __le16 resp_len; 657 u8 hwrm_intf_maj_8b; 658 u8 hwrm_intf_min_8b; 659 u8 hwrm_intf_upd_8b; 660 u8 hwrm_intf_rsvd_8b; 661 u8 hwrm_fw_maj_8b; 662 u8 hwrm_fw_min_8b; 663 u8 hwrm_fw_bld_8b; 664 u8 hwrm_fw_rsvd_8b; 665 u8 mgmt_fw_maj_8b; 666 u8 mgmt_fw_min_8b; 667 u8 mgmt_fw_bld_8b; 668 u8 mgmt_fw_rsvd_8b; 669 u8 netctrl_fw_maj_8b; 670 u8 netctrl_fw_min_8b; 671 u8 netctrl_fw_bld_8b; 672 u8 netctrl_fw_rsvd_8b; 673 __le32 dev_caps_cfg; 674 #define VER_GET_RESP_DEV_CAPS_CFG_SECURE_FW_UPD_SUPPORTED 0x1UL 675 #define VER_GET_RESP_DEV_CAPS_CFG_FW_DCBX_AGENT_SUPPORTED 0x2UL 676 #define VER_GET_RESP_DEV_CAPS_CFG_SHORT_CMD_SUPPORTED 0x4UL 677 #define VER_GET_RESP_DEV_CAPS_CFG_SHORT_CMD_REQUIRED 0x8UL 678 #define VER_GET_RESP_DEV_CAPS_CFG_KONG_MB_CHNL_SUPPORTED 0x10UL 679 #define VER_GET_RESP_DEV_CAPS_CFG_FLOW_HANDLE_64BIT_SUPPORTED 0x20UL 680 #define VER_GET_RESP_DEV_CAPS_CFG_L2_FILTER_TYPES_ROCE_OR_L2_SUPPORTED 0x40UL 681 #define VER_GET_RESP_DEV_CAPS_CFG_VIRTIO_VSWITCH_OFFLOAD_SUPPORTED 0x80UL 682 #define VER_GET_RESP_DEV_CAPS_CFG_TRUSTED_VF_SUPPORTED 0x100UL 683 #define VER_GET_RESP_DEV_CAPS_CFG_FLOW_AGING_SUPPORTED 0x200UL 684 #define VER_GET_RESP_DEV_CAPS_CFG_ADV_FLOW_COUNTERS_SUPPORTED 0x400UL 685 #define VER_GET_RESP_DEV_CAPS_CFG_CFA_EEM_SUPPORTED 0x800UL 686 #define VER_GET_RESP_DEV_CAPS_CFG_CFA_ADV_FLOW_MGNT_SUPPORTED 0x1000UL 687 #define VER_GET_RESP_DEV_CAPS_CFG_CFA_TFLIB_SUPPORTED 0x2000UL 688 #define VER_GET_RESP_DEV_CAPS_CFG_CFA_TRUFLOW_SUPPORTED 0x4000UL 689 #define VER_GET_RESP_DEV_CAPS_CFG_SECURE_BOOT_CAPABLE 0x8000UL 690 #define VER_GET_RESP_DEV_CAPS_CFG_SECURE_SOC_CAPABLE 0x10000UL 691 u8 roce_fw_maj_8b; 692 u8 roce_fw_min_8b; 693 u8 roce_fw_bld_8b; 694 u8 roce_fw_rsvd_8b; 695 char hwrm_fw_name[16]; 696 char mgmt_fw_name[16]; 697 char netctrl_fw_name[16]; 698 char active_pkg_name[16]; 699 char roce_fw_name[16]; 700 __le16 chip_num; 701 u8 chip_rev; 702 u8 chip_metal; 703 u8 chip_bond_id; 704 u8 chip_platform_type; 705 #define VER_GET_RESP_CHIP_PLATFORM_TYPE_ASIC 0x0UL 706 #define VER_GET_RESP_CHIP_PLATFORM_TYPE_FPGA 0x1UL 707 #define VER_GET_RESP_CHIP_PLATFORM_TYPE_PALLADIUM 0x2UL 708 #define VER_GET_RESP_CHIP_PLATFORM_TYPE_LAST VER_GET_RESP_CHIP_PLATFORM_TYPE_PALLADIUM 709 __le16 max_req_win_len; 710 __le16 max_resp_len; 711 __le16 def_req_timeout; 712 u8 flags; 713 #define VER_GET_RESP_FLAGS_DEV_NOT_RDY 0x1UL 714 #define VER_GET_RESP_FLAGS_EXT_VER_AVAIL 0x2UL 715 #define VER_GET_RESP_FLAGS_DEV_NOT_RDY_BACKING_STORE 0x4UL 716 u8 unused_0[2]; 717 u8 always_1; 718 __le16 hwrm_intf_major; 719 __le16 hwrm_intf_minor; 720 __le16 hwrm_intf_build; 721 __le16 hwrm_intf_patch; 722 __le16 hwrm_fw_major; 723 __le16 hwrm_fw_minor; 724 __le16 hwrm_fw_build; 725 __le16 hwrm_fw_patch; 726 __le16 mgmt_fw_major; 727 __le16 mgmt_fw_minor; 728 __le16 mgmt_fw_build; 729 __le16 mgmt_fw_patch; 730 __le16 netctrl_fw_major; 731 __le16 netctrl_fw_minor; 732 __le16 netctrl_fw_build; 733 __le16 netctrl_fw_patch; 734 __le16 roce_fw_major; 735 __le16 roce_fw_minor; 736 __le16 roce_fw_build; 737 __le16 roce_fw_patch; 738 __le16 max_ext_req_len; 739 __le16 max_req_timeout; 740 u8 unused_1[3]; 741 u8 valid; 742 }; 743 744 /* eject_cmpl (size:128b/16B) */ 745 struct eject_cmpl { 746 __le16 type; 747 #define EJECT_CMPL_TYPE_MASK 0x3fUL 748 #define EJECT_CMPL_TYPE_SFT 0 749 #define EJECT_CMPL_TYPE_STAT_EJECT 0x1aUL 750 #define EJECT_CMPL_TYPE_LAST EJECT_CMPL_TYPE_STAT_EJECT 751 #define EJECT_CMPL_FLAGS_MASK 0xffc0UL 752 #define EJECT_CMPL_FLAGS_SFT 6 753 #define EJECT_CMPL_FLAGS_ERROR 0x40UL 754 __le16 len; 755 __le32 opaque; 756 __le16 v; 757 #define EJECT_CMPL_V 0x1UL 758 #define EJECT_CMPL_ERRORS_MASK 0xfffeUL 759 #define EJECT_CMPL_ERRORS_SFT 1 760 #define EJECT_CMPL_ERRORS_BUFFER_ERROR_MASK 0xeUL 761 #define EJECT_CMPL_ERRORS_BUFFER_ERROR_SFT 1 762 #define EJECT_CMPL_ERRORS_BUFFER_ERROR_NO_BUFFER (0x0UL << 1) 763 #define EJECT_CMPL_ERRORS_BUFFER_ERROR_DID_NOT_FIT (0x1UL << 1) 764 #define EJECT_CMPL_ERRORS_BUFFER_ERROR_BAD_FORMAT (0x3UL << 1) 765 #define EJECT_CMPL_ERRORS_BUFFER_ERROR_FLUSH (0x5UL << 1) 766 #define EJECT_CMPL_ERRORS_BUFFER_ERROR_LAST EJECT_CMPL_ERRORS_BUFFER_ERROR_FLUSH 767 __le16 reserved16; 768 __le32 unused_2; 769 }; 770 771 /* hwrm_cmpl (size:128b/16B) */ 772 struct hwrm_cmpl { 773 __le16 type; 774 #define CMPL_TYPE_MASK 0x3fUL 775 #define CMPL_TYPE_SFT 0 776 #define CMPL_TYPE_HWRM_DONE 0x20UL 777 #define CMPL_TYPE_LAST CMPL_TYPE_HWRM_DONE 778 __le16 sequence_id; 779 __le32 unused_1; 780 __le32 v; 781 #define CMPL_V 0x1UL 782 __le32 unused_3; 783 }; 784 785 /* hwrm_fwd_req_cmpl (size:128b/16B) */ 786 struct hwrm_fwd_req_cmpl { 787 __le16 req_len_type; 788 #define FWD_REQ_CMPL_TYPE_MASK 0x3fUL 789 #define FWD_REQ_CMPL_TYPE_SFT 0 790 #define FWD_REQ_CMPL_TYPE_HWRM_FWD_REQ 0x22UL 791 #define FWD_REQ_CMPL_TYPE_LAST FWD_REQ_CMPL_TYPE_HWRM_FWD_REQ 792 #define FWD_REQ_CMPL_REQ_LEN_MASK 0xffc0UL 793 #define FWD_REQ_CMPL_REQ_LEN_SFT 6 794 __le16 source_id; 795 __le32 unused0; 796 __le32 req_buf_addr_v[2]; 797 #define FWD_REQ_CMPL_V 0x1UL 798 #define FWD_REQ_CMPL_REQ_BUF_ADDR_MASK 0xfffffffeUL 799 #define FWD_REQ_CMPL_REQ_BUF_ADDR_SFT 1 800 }; 801 802 /* hwrm_fwd_resp_cmpl (size:128b/16B) */ 803 struct hwrm_fwd_resp_cmpl { 804 __le16 type; 805 #define FWD_RESP_CMPL_TYPE_MASK 0x3fUL 806 #define FWD_RESP_CMPL_TYPE_SFT 0 807 #define FWD_RESP_CMPL_TYPE_HWRM_FWD_RESP 0x24UL 808 #define FWD_RESP_CMPL_TYPE_LAST FWD_RESP_CMPL_TYPE_HWRM_FWD_RESP 809 __le16 source_id; 810 __le16 resp_len; 811 __le16 unused_1; 812 __le32 resp_buf_addr_v[2]; 813 #define FWD_RESP_CMPL_V 0x1UL 814 #define FWD_RESP_CMPL_RESP_BUF_ADDR_MASK 0xfffffffeUL 815 #define FWD_RESP_CMPL_RESP_BUF_ADDR_SFT 1 816 }; 817 818 /* hwrm_async_event_cmpl (size:128b/16B) */ 819 struct hwrm_async_event_cmpl { 820 __le16 type; 821 #define ASYNC_EVENT_CMPL_TYPE_MASK 0x3fUL 822 #define ASYNC_EVENT_CMPL_TYPE_SFT 0 823 #define ASYNC_EVENT_CMPL_TYPE_HWRM_ASYNC_EVENT 0x2eUL 824 #define ASYNC_EVENT_CMPL_TYPE_LAST ASYNC_EVENT_CMPL_TYPE_HWRM_ASYNC_EVENT 825 __le16 event_id; 826 #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_STATUS_CHANGE 0x0UL 827 #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_MTU_CHANGE 0x1UL 828 #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CHANGE 0x2UL 829 #define ASYNC_EVENT_CMPL_EVENT_ID_DCB_CONFIG_CHANGE 0x3UL 830 #define ASYNC_EVENT_CMPL_EVENT_ID_PORT_CONN_NOT_ALLOWED 0x4UL 831 #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CFG_NOT_ALLOWED 0x5UL 832 #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CFG_CHANGE 0x6UL 833 #define ASYNC_EVENT_CMPL_EVENT_ID_PORT_PHY_CFG_CHANGE 0x7UL 834 #define ASYNC_EVENT_CMPL_EVENT_ID_RESET_NOTIFY 0x8UL 835 #define ASYNC_EVENT_CMPL_EVENT_ID_ERROR_RECOVERY 0x9UL 836 #define ASYNC_EVENT_CMPL_EVENT_ID_RING_MONITOR_MSG 0xaUL 837 #define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_DRVR_UNLOAD 0x10UL 838 #define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_DRVR_LOAD 0x11UL 839 #define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_FLR_PROC_CMPLT 0x12UL 840 #define ASYNC_EVENT_CMPL_EVENT_ID_PF_DRVR_UNLOAD 0x20UL 841 #define ASYNC_EVENT_CMPL_EVENT_ID_PF_DRVR_LOAD 0x21UL 842 #define ASYNC_EVENT_CMPL_EVENT_ID_VF_FLR 0x30UL 843 #define ASYNC_EVENT_CMPL_EVENT_ID_VF_MAC_ADDR_CHANGE 0x31UL 844 #define ASYNC_EVENT_CMPL_EVENT_ID_PF_VF_COMM_STATUS_CHANGE 0x32UL 845 #define ASYNC_EVENT_CMPL_EVENT_ID_VF_CFG_CHANGE 0x33UL 846 #define ASYNC_EVENT_CMPL_EVENT_ID_LLFC_PFC_CHANGE 0x34UL 847 #define ASYNC_EVENT_CMPL_EVENT_ID_DEFAULT_VNIC_CHANGE 0x35UL 848 #define ASYNC_EVENT_CMPL_EVENT_ID_HW_FLOW_AGED 0x36UL 849 #define ASYNC_EVENT_CMPL_EVENT_ID_DEBUG_NOTIFICATION 0x37UL 850 #define ASYNC_EVENT_CMPL_EVENT_ID_EEM_CACHE_FLUSH_REQ 0x38UL 851 #define ASYNC_EVENT_CMPL_EVENT_ID_EEM_CACHE_FLUSH_DONE 0x39UL 852 #define ASYNC_EVENT_CMPL_EVENT_ID_TCP_FLAG_ACTION_CHANGE 0x3aUL 853 #define ASYNC_EVENT_CMPL_EVENT_ID_EEM_FLOW_ACTIVE 0x3bUL 854 #define ASYNC_EVENT_CMPL_EVENT_ID_EEM_CFG_CHANGE 0x3cUL 855 #define ASYNC_EVENT_CMPL_EVENT_ID_TFLIB_DEFAULT_VNIC_CHANGE 0x3dUL 856 #define ASYNC_EVENT_CMPL_EVENT_ID_TFLIB_LINK_STATUS_CHANGE 0x3eUL 857 #define ASYNC_EVENT_CMPL_EVENT_ID_QUIESCE_DONE 0x3fUL 858 #define ASYNC_EVENT_CMPL_EVENT_ID_DEFERRED_RESPONSE 0x40UL 859 #define ASYNC_EVENT_CMPL_EVENT_ID_PFC_WATCHDOG_CFG_CHANGE 0x41UL 860 #define ASYNC_EVENT_CMPL_EVENT_ID_ECHO_REQUEST 0x42UL 861 #define ASYNC_EVENT_CMPL_EVENT_ID_PHC_UPDATE 0x43UL 862 #define ASYNC_EVENT_CMPL_EVENT_ID_PPS_TIMESTAMP 0x44UL 863 #define ASYNC_EVENT_CMPL_EVENT_ID_ERROR_REPORT 0x45UL 864 #define ASYNC_EVENT_CMPL_EVENT_ID_DOORBELL_PACING_THRESHOLD 0x46UL 865 #define ASYNC_EVENT_CMPL_EVENT_ID_RSS_CHANGE 0x47UL 866 #define ASYNC_EVENT_CMPL_EVENT_ID_DOORBELL_PACING_NQ_UPDATE 0x48UL 867 #define ASYNC_EVENT_CMPL_EVENT_ID_HW_DOORBELL_RECOVERY_READ_ERROR 0x49UL 868 #define ASYNC_EVENT_CMPL_EVENT_ID_CTX_ERROR 0x4aUL 869 #define ASYNC_EVENT_CMPL_EVENT_ID_UDCC_SESSION_CHANGE 0x4bUL 870 #define ASYNC_EVENT_CMPL_EVENT_ID_DBG_BUF_PRODUCER 0x4cUL 871 #define ASYNC_EVENT_CMPL_EVENT_ID_PEER_MMAP_CHANGE 0x4dUL 872 #define ASYNC_EVENT_CMPL_EVENT_ID_REPRESENTOR_PAIR_CHANGE 0x4eUL 873 #define ASYNC_EVENT_CMPL_EVENT_ID_VF_STAT_CHANGE 0x4fUL 874 #define ASYNC_EVENT_CMPL_EVENT_ID_HOST_COREDUMP 0x50UL 875 #define ASYNC_EVENT_CMPL_EVENT_ID_MAX_RGTR_EVENT_ID 0x51UL 876 #define ASYNC_EVENT_CMPL_EVENT_ID_FW_TRACE_MSG 0xfeUL 877 #define ASYNC_EVENT_CMPL_EVENT_ID_HWRM_ERROR 0xffUL 878 #define ASYNC_EVENT_CMPL_EVENT_ID_LAST ASYNC_EVENT_CMPL_EVENT_ID_HWRM_ERROR 879 __le32 event_data2; 880 u8 opaque_v; 881 #define ASYNC_EVENT_CMPL_V 0x1UL 882 #define ASYNC_EVENT_CMPL_OPAQUE_MASK 0xfeUL 883 #define ASYNC_EVENT_CMPL_OPAQUE_SFT 1 884 u8 timestamp_lo; 885 __le16 timestamp_hi; 886 __le32 event_data1; 887 }; 888 889 /* hwrm_async_event_cmpl_link_status_change (size:128b/16B) */ 890 struct hwrm_async_event_cmpl_link_status_change { 891 __le16 type; 892 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_MASK 0x3fUL 893 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_SFT 0 894 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_HWRM_ASYNC_EVENT 0x2eUL 895 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_LAST ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_HWRM_ASYNC_EVENT 896 __le16 event_id; 897 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_ID_LINK_STATUS_CHANGE 0x0UL 898 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_ID_LAST ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_ID_LINK_STATUS_CHANGE 899 __le32 event_data2; 900 u8 opaque_v; 901 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_V 0x1UL 902 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_OPAQUE_MASK 0xfeUL 903 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_OPAQUE_SFT 1 904 u8 timestamp_lo; 905 __le16 timestamp_hi; 906 __le32 event_data1; 907 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE 0x1UL 908 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_DOWN 0x0UL 909 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_UP 0x1UL 910 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_LAST ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_UP 911 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_MASK 0xeUL 912 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_SFT 1 913 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_ID_MASK 0xffff0UL 914 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_ID_SFT 4 915 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PF_ID_MASK 0xff00000UL 916 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PF_ID_SFT 20 917 }; 918 919 /* hwrm_async_event_cmpl_port_conn_not_allowed (size:128b/16B) */ 920 struct hwrm_async_event_cmpl_port_conn_not_allowed { 921 __le16 type; 922 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_MASK 0x3fUL 923 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_SFT 0 924 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_HWRM_ASYNC_EVENT 0x2eUL 925 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_LAST ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_HWRM_ASYNC_EVENT 926 __le16 event_id; 927 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_ID_PORT_CONN_NOT_ALLOWED 0x4UL 928 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_ID_LAST ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_ID_PORT_CONN_NOT_ALLOWED 929 __le32 event_data2; 930 u8 opaque_v; 931 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_V 0x1UL 932 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_OPAQUE_MASK 0xfeUL 933 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_OPAQUE_SFT 1 934 u8 timestamp_lo; 935 __le16 timestamp_hi; 936 __le32 event_data1; 937 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_PORT_ID_MASK 0xffffUL 938 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_PORT_ID_SFT 0 939 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_MASK 0xff0000UL 940 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_SFT 16 941 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_NONE (0x0UL << 16) 942 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_DISABLETX (0x1UL << 16) 943 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_WARNINGMSG (0x2UL << 16) 944 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_PWRDOWN (0x3UL << 16) 945 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_LAST ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_PWRDOWN 946 }; 947 948 /* hwrm_async_event_cmpl_link_speed_cfg_change (size:128b/16B) */ 949 struct hwrm_async_event_cmpl_link_speed_cfg_change { 950 __le16 type; 951 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_MASK 0x3fUL 952 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_SFT 0 953 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT 0x2eUL 954 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_LAST ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT 955 __le16 event_id; 956 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_ID_LINK_SPEED_CFG_CHANGE 0x6UL 957 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_ID_LAST ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_ID_LINK_SPEED_CFG_CHANGE 958 __le32 event_data2; 959 u8 opaque_v; 960 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_V 0x1UL 961 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_OPAQUE_MASK 0xfeUL 962 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_OPAQUE_SFT 1 963 u8 timestamp_lo; 964 __le16 timestamp_hi; 965 __le32 event_data1; 966 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_PORT_ID_MASK 0xffffUL 967 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_PORT_ID_SFT 0 968 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_SUPPORTED_LINK_SPEEDS_CHANGE 0x10000UL 969 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_ILLEGAL_LINK_SPEED_CFG 0x20000UL 970 }; 971 972 /* hwrm_async_event_cmpl_reset_notify (size:128b/16B) */ 973 struct hwrm_async_event_cmpl_reset_notify { 974 __le16 type; 975 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_MASK 0x3fUL 976 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_SFT 0 977 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_HWRM_ASYNC_EVENT 0x2eUL 978 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_LAST ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_HWRM_ASYNC_EVENT 979 __le16 event_id; 980 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_ID_RESET_NOTIFY 0x8UL 981 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_ID_LAST ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_ID_RESET_NOTIFY 982 __le32 event_data2; 983 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA2_FW_STATUS_CODE_MASK 0xffffUL 984 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA2_FW_STATUS_CODE_SFT 0 985 u8 opaque_v; 986 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_V 0x1UL 987 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_OPAQUE_MASK 0xfeUL 988 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_OPAQUE_SFT 1 989 u8 timestamp_lo; 990 __le16 timestamp_hi; 991 __le32 event_data1; 992 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_MASK 0xffUL 993 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_SFT 0 994 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_DRIVER_STOP_TX_QUEUE 0x1UL 995 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_DRIVER_IFDOWN 0x2UL 996 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_LAST ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_DRIVER_IFDOWN 997 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_MASK 0xff00UL 998 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_SFT 8 999 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_MANAGEMENT_RESET_REQUEST (0x1UL << 8) 1000 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FW_EXCEPTION_FATAL (0x2UL << 8) 1001 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FW_EXCEPTION_NON_FATAL (0x3UL << 8) 1002 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FAST_RESET (0x4UL << 8) 1003 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FW_ACTIVATION (0x5UL << 8) 1004 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_LAST ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FW_ACTIVATION 1005 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DELAY_IN_100MS_TICKS_MASK 0xffff0000UL 1006 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DELAY_IN_100MS_TICKS_SFT 16 1007 }; 1008 1009 /* hwrm_async_event_cmpl_error_recovery (size:128b/16B) */ 1010 struct hwrm_async_event_cmpl_error_recovery { 1011 __le16 type; 1012 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_MASK 0x3fUL 1013 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_SFT 0 1014 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_HWRM_ASYNC_EVENT 0x2eUL 1015 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_HWRM_ASYNC_EVENT 1016 __le16 event_id; 1017 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_ID_ERROR_RECOVERY 0x9UL 1018 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_ID_LAST ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_ID_ERROR_RECOVERY 1019 __le32 event_data2; 1020 u8 opaque_v; 1021 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_V 0x1UL 1022 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_OPAQUE_MASK 0xfeUL 1023 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_OPAQUE_SFT 1 1024 u8 timestamp_lo; 1025 __le16 timestamp_hi; 1026 __le32 event_data1; 1027 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_MASK 0xffUL 1028 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_SFT 0 1029 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_MASTER_FUNC 0x1UL 1030 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_RECOVERY_ENABLED 0x2UL 1031 }; 1032 1033 /* hwrm_async_event_cmpl_ring_monitor_msg (size:128b/16B) */ 1034 struct hwrm_async_event_cmpl_ring_monitor_msg { 1035 __le16 type; 1036 #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_TYPE_MASK 0x3fUL 1037 #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_TYPE_SFT 0 1038 #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_TYPE_HWRM_ASYNC_EVENT 0x2eUL 1039 #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_TYPE_LAST ASYNC_EVENT_CMPL_RING_MONITOR_MSG_TYPE_HWRM_ASYNC_EVENT 1040 __le16 event_id; 1041 #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_ID_RING_MONITOR_MSG 0xaUL 1042 #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_ID_LAST ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_ID_RING_MONITOR_MSG 1043 __le32 event_data2; 1044 #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_MASK 0xffUL 1045 #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_SFT 0 1046 #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_TX 0x0UL 1047 #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_RX 0x1UL 1048 #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_CMPL 0x2UL 1049 #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_LAST ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_CMPL 1050 u8 opaque_v; 1051 #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_V 0x1UL 1052 #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_OPAQUE_MASK 0xfeUL 1053 #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_OPAQUE_SFT 1 1054 u8 timestamp_lo; 1055 __le16 timestamp_hi; 1056 __le32 event_data1; 1057 }; 1058 1059 /* hwrm_async_event_cmpl_vf_cfg_change (size:128b/16B) */ 1060 struct hwrm_async_event_cmpl_vf_cfg_change { 1061 __le16 type; 1062 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_MASK 0x3fUL 1063 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_SFT 0 1064 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT 0x2eUL 1065 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_LAST ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT 1066 __le16 event_id; 1067 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_ID_VF_CFG_CHANGE 0x33UL 1068 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_ID_LAST ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_ID_VF_CFG_CHANGE 1069 __le32 event_data2; 1070 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA2_VF_ID_MASK 0xffffUL 1071 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA2_VF_ID_SFT 0 1072 u8 opaque_v; 1073 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_V 0x1UL 1074 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_OPAQUE_MASK 0xfeUL 1075 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_OPAQUE_SFT 1 1076 u8 timestamp_lo; 1077 __le16 timestamp_hi; 1078 __le32 event_data1; 1079 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_MTU_CHANGE 0x1UL 1080 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_MRU_CHANGE 0x2UL 1081 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_DFLT_MAC_ADDR_CHANGE 0x4UL 1082 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_DFLT_VLAN_CHANGE 0x8UL 1083 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_TRUSTED_VF_CFG_CHANGE 0x10UL 1084 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_TF_OWNERSHIP_RELEASE 0x20UL 1085 }; 1086 1087 /* hwrm_async_event_cmpl_default_vnic_change (size:128b/16B) */ 1088 struct hwrm_async_event_cmpl_default_vnic_change { 1089 __le16 type; 1090 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_TYPE_MASK 0x3fUL 1091 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_TYPE_SFT 0 1092 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_TYPE_HWRM_ASYNC_EVENT 0x2eUL 1093 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_TYPE_LAST ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_TYPE_HWRM_ASYNC_EVENT 1094 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_UNUSED1_MASK 0xffc0UL 1095 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_UNUSED1_SFT 6 1096 __le16 event_id; 1097 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_ID_ALLOC_FREE_NOTIFICATION 0x35UL 1098 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_ID_LAST ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_ID_ALLOC_FREE_NOTIFICATION 1099 __le32 event_data2; 1100 u8 opaque_v; 1101 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_V 0x1UL 1102 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_OPAQUE_MASK 0xfeUL 1103 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_OPAQUE_SFT 1 1104 u8 timestamp_lo; 1105 __le16 timestamp_hi; 1106 __le32 event_data1; 1107 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_DEF_VNIC_STATE_MASK 0x3UL 1108 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_DEF_VNIC_STATE_SFT 0 1109 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_DEF_VNIC_STATE_DEF_VNIC_ALLOC 0x1UL 1110 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_DEF_VNIC_STATE_DEF_VNIC_FREE 0x2UL 1111 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_DEF_VNIC_STATE_LAST ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_DEF_VNIC_STATE_DEF_VNIC_FREE 1112 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_PF_ID_MASK 0x3fcUL 1113 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_PF_ID_SFT 2 1114 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_VF_ID_MASK 0x3fffc00UL 1115 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_VF_ID_SFT 10 1116 }; 1117 1118 /* hwrm_async_event_cmpl_hw_flow_aged (size:128b/16B) */ 1119 struct hwrm_async_event_cmpl_hw_flow_aged { 1120 __le16 type; 1121 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_MASK 0x3fUL 1122 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_SFT 0 1123 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_HWRM_ASYNC_EVENT 0x2eUL 1124 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_LAST ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_HWRM_ASYNC_EVENT 1125 __le16 event_id; 1126 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_ID_HW_FLOW_AGED 0x36UL 1127 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_ID_LAST ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_ID_HW_FLOW_AGED 1128 __le32 event_data2; 1129 u8 opaque_v; 1130 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_V 0x1UL 1131 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_OPAQUE_MASK 0xfeUL 1132 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_OPAQUE_SFT 1 1133 u8 timestamp_lo; 1134 __le16 timestamp_hi; 1135 __le32 event_data1; 1136 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_ID_MASK 0x7fffffffUL 1137 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_ID_SFT 0 1138 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION 0x80000000UL 1139 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_RX (0x0UL << 31) 1140 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_TX (0x1UL << 31) 1141 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_LAST ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_TX 1142 }; 1143 1144 /* hwrm_async_event_cmpl_eem_cache_flush_req (size:128b/16B) */ 1145 struct hwrm_async_event_cmpl_eem_cache_flush_req { 1146 __le16 type; 1147 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_MASK 0x3fUL 1148 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_SFT 0 1149 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_HWRM_ASYNC_EVENT 0x2eUL 1150 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_LAST ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_HWRM_ASYNC_EVENT 1151 __le16 event_id; 1152 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_EVENT_ID_EEM_CACHE_FLUSH_REQ 0x38UL 1153 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_EVENT_ID_LAST ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_EVENT_ID_EEM_CACHE_FLUSH_REQ 1154 __le32 event_data2; 1155 u8 opaque_v; 1156 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_V 0x1UL 1157 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_OPAQUE_MASK 0xfeUL 1158 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_OPAQUE_SFT 1 1159 u8 timestamp_lo; 1160 __le16 timestamp_hi; 1161 __le32 event_data1; 1162 }; 1163 1164 /* hwrm_async_event_cmpl_eem_cache_flush_done (size:128b/16B) */ 1165 struct hwrm_async_event_cmpl_eem_cache_flush_done { 1166 __le16 type; 1167 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_MASK 0x3fUL 1168 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_SFT 0 1169 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_HWRM_ASYNC_EVENT 0x2eUL 1170 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_LAST ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_HWRM_ASYNC_EVENT 1171 __le16 event_id; 1172 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_ID_EEM_CACHE_FLUSH_DONE 0x39UL 1173 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_ID_LAST ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_ID_EEM_CACHE_FLUSH_DONE 1174 __le32 event_data2; 1175 u8 opaque_v; 1176 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_V 0x1UL 1177 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_OPAQUE_MASK 0xfeUL 1178 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_OPAQUE_SFT 1 1179 u8 timestamp_lo; 1180 __le16 timestamp_hi; 1181 __le32 event_data1; 1182 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_DATA1_FID_MASK 0xffffUL 1183 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_DATA1_FID_SFT 0 1184 }; 1185 1186 /* hwrm_async_event_cmpl_deferred_response (size:128b/16B) */ 1187 struct hwrm_async_event_cmpl_deferred_response { 1188 __le16 type; 1189 #define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_TYPE_MASK 0x3fUL 1190 #define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_TYPE_SFT 0 1191 #define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_TYPE_HWRM_ASYNC_EVENT 0x2eUL 1192 #define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_TYPE_LAST ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_TYPE_HWRM_ASYNC_EVENT 1193 __le16 event_id; 1194 #define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_EVENT_ID_DEFERRED_RESPONSE 0x40UL 1195 #define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_EVENT_ID_LAST ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_EVENT_ID_DEFERRED_RESPONSE 1196 __le32 event_data2; 1197 #define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_EVENT_DATA2_SEQ_ID_MASK 0xffffUL 1198 #define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_EVENT_DATA2_SEQ_ID_SFT 0 1199 u8 opaque_v; 1200 #define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_V 0x1UL 1201 #define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_OPAQUE_MASK 0xfeUL 1202 #define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_OPAQUE_SFT 1 1203 u8 timestamp_lo; 1204 __le16 timestamp_hi; 1205 __le32 event_data1; 1206 }; 1207 1208 /* hwrm_async_event_cmpl_echo_request (size:128b/16B) */ 1209 struct hwrm_async_event_cmpl_echo_request { 1210 __le16 type; 1211 #define ASYNC_EVENT_CMPL_ECHO_REQUEST_TYPE_MASK 0x3fUL 1212 #define ASYNC_EVENT_CMPL_ECHO_REQUEST_TYPE_SFT 0 1213 #define ASYNC_EVENT_CMPL_ECHO_REQUEST_TYPE_HWRM_ASYNC_EVENT 0x2eUL 1214 #define ASYNC_EVENT_CMPL_ECHO_REQUEST_TYPE_LAST ASYNC_EVENT_CMPL_ECHO_REQUEST_TYPE_HWRM_ASYNC_EVENT 1215 __le16 event_id; 1216 #define ASYNC_EVENT_CMPL_ECHO_REQUEST_EVENT_ID_ECHO_REQUEST 0x42UL 1217 #define ASYNC_EVENT_CMPL_ECHO_REQUEST_EVENT_ID_LAST ASYNC_EVENT_CMPL_ECHO_REQUEST_EVENT_ID_ECHO_REQUEST 1218 __le32 event_data2; 1219 u8 opaque_v; 1220 #define ASYNC_EVENT_CMPL_ECHO_REQUEST_V 0x1UL 1221 #define ASYNC_EVENT_CMPL_ECHO_REQUEST_OPAQUE_MASK 0xfeUL 1222 #define ASYNC_EVENT_CMPL_ECHO_REQUEST_OPAQUE_SFT 1 1223 u8 timestamp_lo; 1224 __le16 timestamp_hi; 1225 __le32 event_data1; 1226 }; 1227 1228 /* hwrm_async_event_cmpl_phc_update (size:128b/16B) */ 1229 struct hwrm_async_event_cmpl_phc_update { 1230 __le16 type; 1231 #define ASYNC_EVENT_CMPL_PHC_UPDATE_TYPE_MASK 0x3fUL 1232 #define ASYNC_EVENT_CMPL_PHC_UPDATE_TYPE_SFT 0 1233 #define ASYNC_EVENT_CMPL_PHC_UPDATE_TYPE_HWRM_ASYNC_EVENT 0x2eUL 1234 #define ASYNC_EVENT_CMPL_PHC_UPDATE_TYPE_LAST ASYNC_EVENT_CMPL_PHC_UPDATE_TYPE_HWRM_ASYNC_EVENT 1235 __le16 event_id; 1236 #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_ID_PHC_UPDATE 0x43UL 1237 #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_ID_LAST ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_ID_PHC_UPDATE 1238 __le32 event_data2; 1239 #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA2_PHC_MASTER_FID_MASK 0xffffUL 1240 #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA2_PHC_MASTER_FID_SFT 0 1241 #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA2_PHC_SEC_FID_MASK 0xffff0000UL 1242 #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA2_PHC_SEC_FID_SFT 16 1243 u8 opaque_v; 1244 #define ASYNC_EVENT_CMPL_PHC_UPDATE_V 0x1UL 1245 #define ASYNC_EVENT_CMPL_PHC_UPDATE_OPAQUE_MASK 0xfeUL 1246 #define ASYNC_EVENT_CMPL_PHC_UPDATE_OPAQUE_SFT 1 1247 u8 timestamp_lo; 1248 __le16 timestamp_hi; 1249 __le32 event_data1; 1250 #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_MASK 0xfUL 1251 #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_SFT 0 1252 #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_PHC_MASTER 0x1UL 1253 #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_PHC_SECONDARY 0x2UL 1254 #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_PHC_FAILOVER 0x3UL 1255 #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_PHC_RTC_UPDATE 0x4UL 1256 #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_LAST ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_PHC_RTC_UPDATE 1257 #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_PHC_TIME_MSB_MASK 0xffff0UL 1258 #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_PHC_TIME_MSB_SFT 4 1259 }; 1260 1261 /* hwrm_async_event_cmpl_pps_timestamp (size:128b/16B) */ 1262 struct hwrm_async_event_cmpl_pps_timestamp { 1263 __le16 type; 1264 #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_TYPE_MASK 0x3fUL 1265 #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_TYPE_SFT 0 1266 #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_TYPE_HWRM_ASYNC_EVENT 0x2eUL 1267 #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_TYPE_LAST ASYNC_EVENT_CMPL_PPS_TIMESTAMP_TYPE_HWRM_ASYNC_EVENT 1268 __le16 event_id; 1269 #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_ID_PPS_TIMESTAMP 0x44UL 1270 #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_ID_LAST ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_ID_PPS_TIMESTAMP 1271 __le32 event_data2; 1272 #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_EVENT_TYPE 0x1UL 1273 #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_EVENT_TYPE_INTERNAL 0x0UL 1274 #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_EVENT_TYPE_EXTERNAL 0x1UL 1275 #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_EVENT_TYPE_LAST ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_EVENT_TYPE_EXTERNAL 1276 #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_PIN_NUMBER_MASK 0xeUL 1277 #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_PIN_NUMBER_SFT 1 1278 #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_PPS_TIMESTAMP_UPPER_MASK 0xffff0UL 1279 #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_PPS_TIMESTAMP_UPPER_SFT 4 1280 u8 opaque_v; 1281 #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_V 0x1UL 1282 #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_OPAQUE_MASK 0xfeUL 1283 #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_OPAQUE_SFT 1 1284 u8 timestamp_lo; 1285 __le16 timestamp_hi; 1286 __le32 event_data1; 1287 #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA1_PPS_TIMESTAMP_LOWER_MASK 0xffffffffUL 1288 #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA1_PPS_TIMESTAMP_LOWER_SFT 0 1289 }; 1290 1291 /* hwrm_async_event_cmpl_error_report (size:128b/16B) */ 1292 struct hwrm_async_event_cmpl_error_report { 1293 __le16 type; 1294 #define ASYNC_EVENT_CMPL_ERROR_REPORT_TYPE_MASK 0x3fUL 1295 #define ASYNC_EVENT_CMPL_ERROR_REPORT_TYPE_SFT 0 1296 #define ASYNC_EVENT_CMPL_ERROR_REPORT_TYPE_HWRM_ASYNC_EVENT 0x2eUL 1297 #define ASYNC_EVENT_CMPL_ERROR_REPORT_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_TYPE_HWRM_ASYNC_EVENT 1298 __le16 event_id; 1299 #define ASYNC_EVENT_CMPL_ERROR_REPORT_EVENT_ID_ERROR_REPORT 0x45UL 1300 #define ASYNC_EVENT_CMPL_ERROR_REPORT_EVENT_ID_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_EVENT_ID_ERROR_REPORT 1301 __le32 event_data2; 1302 u8 opaque_v; 1303 #define ASYNC_EVENT_CMPL_ERROR_REPORT_V 0x1UL 1304 #define ASYNC_EVENT_CMPL_ERROR_REPORT_OPAQUE_MASK 0xfeUL 1305 #define ASYNC_EVENT_CMPL_ERROR_REPORT_OPAQUE_SFT 1 1306 u8 timestamp_lo; 1307 __le16 timestamp_hi; 1308 __le32 event_data1; 1309 #define ASYNC_EVENT_CMPL_ERROR_REPORT_EVENT_DATA1_ERROR_TYPE_MASK 0xffUL 1310 #define ASYNC_EVENT_CMPL_ERROR_REPORT_EVENT_DATA1_ERROR_TYPE_SFT 0 1311 }; 1312 1313 /* hwrm_async_event_cmpl_dbg_buf_producer (size:128b/16B) */ 1314 struct hwrm_async_event_cmpl_dbg_buf_producer { 1315 __le16 type; 1316 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_TYPE_MASK 0x3fUL 1317 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_TYPE_SFT 0 1318 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_TYPE_HWRM_ASYNC_EVENT 0x2eUL 1319 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_TYPE_LAST ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_TYPE_HWRM_ASYNC_EVENT 1320 __le16 event_id; 1321 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_EVENT_ID_DBG_BUF_PRODUCER 0x4cUL 1322 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_EVENT_ID_LAST ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_EVENT_ID_DBG_BUF_PRODUCER 1323 __le32 event_data2; 1324 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_EVENT_DATA2_CURR_OFF_MASK 0xffffffffUL 1325 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_EVENT_DATA2_CURR_OFF_SFT 0 1326 u8 opaque_v; 1327 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_V 0x1UL 1328 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_OPAQUE_MASK 0xfeUL 1329 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_OPAQUE_SFT 1 1330 u8 timestamp_lo; 1331 __le16 timestamp_hi; 1332 __le32 event_data1; 1333 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_EVENT_DATA1_TYPE_MASK 0xffffUL 1334 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_EVENT_DATA1_TYPE_SFT 0 1335 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_EVENT_DATA1_TYPE_SRT_TRACE 0x0UL 1336 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_EVENT_DATA1_TYPE_SRT2_TRACE 0x1UL 1337 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_EVENT_DATA1_TYPE_CRT_TRACE 0x2UL 1338 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_EVENT_DATA1_TYPE_CRT2_TRACE 0x3UL 1339 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_EVENT_DATA1_TYPE_RIGP0_TRACE 0x4UL 1340 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_EVENT_DATA1_TYPE_L2_HWRM_TRACE 0x5UL 1341 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_EVENT_DATA1_TYPE_ROCE_HWRM_TRACE 0x6UL 1342 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_EVENT_DATA1_TYPE_CA0_TRACE 0x7UL 1343 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_EVENT_DATA1_TYPE_CA1_TRACE 0x8UL 1344 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_EVENT_DATA1_TYPE_CA2_TRACE 0x9UL 1345 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_EVENT_DATA1_TYPE_RIGP1_TRACE 0xaUL 1346 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_EVENT_DATA1_TYPE_AFM_KONG_HWRM_TRACE 0xbUL 1347 #define ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_EVENT_DATA1_TYPE_LAST ASYNC_EVENT_CMPL_DBG_BUF_PRODUCER_EVENT_DATA1_TYPE_AFM_KONG_HWRM_TRACE 1348 }; 1349 1350 /* hwrm_async_event_cmpl_hwrm_error (size:128b/16B) */ 1351 struct hwrm_async_event_cmpl_hwrm_error { 1352 __le16 type; 1353 #define ASYNC_EVENT_CMPL_HWRM_ERROR_TYPE_MASK 0x3fUL 1354 #define ASYNC_EVENT_CMPL_HWRM_ERROR_TYPE_SFT 0 1355 #define ASYNC_EVENT_CMPL_HWRM_ERROR_TYPE_HWRM_ASYNC_EVENT 0x2eUL 1356 #define ASYNC_EVENT_CMPL_HWRM_ERROR_TYPE_LAST ASYNC_EVENT_CMPL_HWRM_ERROR_TYPE_HWRM_ASYNC_EVENT 1357 __le16 event_id; 1358 #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_ID_HWRM_ERROR 0xffUL 1359 #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_ID_LAST ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_ID_HWRM_ERROR 1360 __le32 event_data2; 1361 #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_MASK 0xffUL 1362 #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_SFT 0 1363 #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_WARNING 0x0UL 1364 #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_NONFATAL 0x1UL 1365 #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_FATAL 0x2UL 1366 #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_LAST ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_FATAL 1367 u8 opaque_v; 1368 #define ASYNC_EVENT_CMPL_HWRM_ERROR_V 0x1UL 1369 #define ASYNC_EVENT_CMPL_HWRM_ERROR_OPAQUE_MASK 0xfeUL 1370 #define ASYNC_EVENT_CMPL_HWRM_ERROR_OPAQUE_SFT 1 1371 u8 timestamp_lo; 1372 __le16 timestamp_hi; 1373 __le32 event_data1; 1374 #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA1_TIMESTAMP 0x1UL 1375 }; 1376 1377 /* hwrm_async_event_cmpl_error_report_base (size:128b/16B) */ 1378 struct hwrm_async_event_cmpl_error_report_base { 1379 __le16 type; 1380 #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_TYPE_MASK 0x3fUL 1381 #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_TYPE_SFT 0 1382 #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_TYPE_HWRM_ASYNC_EVENT 0x2eUL 1383 #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_TYPE_HWRM_ASYNC_EVENT 1384 __le16 event_id; 1385 #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_ID_ERROR_REPORT 0x45UL 1386 #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_ID_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_ID_ERROR_REPORT 1387 __le32 event_data2; 1388 u8 opaque_v; 1389 #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_V 0x1UL 1390 #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_OPAQUE_MASK 0xfeUL 1391 #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_OPAQUE_SFT 1 1392 u8 timestamp_lo; 1393 __le16 timestamp_hi; 1394 __le32 event_data1; 1395 #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_MASK 0xffUL 1396 #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_SFT 0 1397 #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_RESERVED 0x0UL 1398 #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_PAUSE_STORM 0x1UL 1399 #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_INVALID_SIGNAL 0x2UL 1400 #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_NVM 0x3UL 1401 #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_DOORBELL_DROP_THRESHOLD 0x4UL 1402 #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_THERMAL_THRESHOLD 0x5UL 1403 #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_DUAL_DATA_RATE_NOT_SUPPORTED 0x6UL 1404 #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_DUAL_DATA_RATE_NOT_SUPPORTED 1405 }; 1406 1407 /* hwrm_async_event_cmpl_error_report_pause_storm (size:128b/16B) */ 1408 struct hwrm_async_event_cmpl_error_report_pause_storm { 1409 __le16 type; 1410 #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_TYPE_MASK 0x3fUL 1411 #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_TYPE_SFT 0 1412 #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_TYPE_HWRM_ASYNC_EVENT 0x2eUL 1413 #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_TYPE_HWRM_ASYNC_EVENT 1414 __le16 event_id; 1415 #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_ID_ERROR_REPORT 0x45UL 1416 #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_ID_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_ID_ERROR_REPORT 1417 __le32 event_data2; 1418 u8 opaque_v; 1419 #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_V 0x1UL 1420 #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_OPAQUE_MASK 0xfeUL 1421 #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_OPAQUE_SFT 1 1422 u8 timestamp_lo; 1423 __le16 timestamp_hi; 1424 __le32 event_data1; 1425 #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_DATA1_ERROR_TYPE_MASK 0xffUL 1426 #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_DATA1_ERROR_TYPE_SFT 0 1427 #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_DATA1_ERROR_TYPE_PAUSE_STORM 0x1UL 1428 #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_DATA1_ERROR_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_DATA1_ERROR_TYPE_PAUSE_STORM 1429 }; 1430 1431 /* hwrm_async_event_cmpl_error_report_invalid_signal (size:128b/16B) */ 1432 struct hwrm_async_event_cmpl_error_report_invalid_signal { 1433 __le16 type; 1434 #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_TYPE_MASK 0x3fUL 1435 #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_TYPE_SFT 0 1436 #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_TYPE_HWRM_ASYNC_EVENT 0x2eUL 1437 #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_TYPE_HWRM_ASYNC_EVENT 1438 __le16 event_id; 1439 #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_ID_ERROR_REPORT 0x45UL 1440 #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_ID_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_ID_ERROR_REPORT 1441 __le32 event_data2; 1442 #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_DATA2_PIN_ID_MASK 0xffUL 1443 #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_DATA2_PIN_ID_SFT 0 1444 u8 opaque_v; 1445 #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_V 0x1UL 1446 #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_OPAQUE_MASK 0xfeUL 1447 #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_OPAQUE_SFT 1 1448 u8 timestamp_lo; 1449 __le16 timestamp_hi; 1450 __le32 event_data1; 1451 #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_DATA1_ERROR_TYPE_MASK 0xffUL 1452 #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_DATA1_ERROR_TYPE_SFT 0 1453 #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_DATA1_ERROR_TYPE_INVALID_SIGNAL 0x2UL 1454 #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_DATA1_ERROR_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_DATA1_ERROR_TYPE_INVALID_SIGNAL 1455 }; 1456 1457 /* hwrm_async_event_cmpl_error_report_nvm (size:128b/16B) */ 1458 struct hwrm_async_event_cmpl_error_report_nvm { 1459 __le16 type; 1460 #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_TYPE_MASK 0x3fUL 1461 #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_TYPE_SFT 0 1462 #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_TYPE_HWRM_ASYNC_EVENT 0x2eUL 1463 #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_TYPE_HWRM_ASYNC_EVENT 1464 __le16 event_id; 1465 #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_ID_ERROR_REPORT 0x45UL 1466 #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_ID_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_ID_ERROR_REPORT 1467 __le32 event_data2; 1468 #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA2_ERR_ADDR_MASK 0xffffffffUL 1469 #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA2_ERR_ADDR_SFT 0 1470 u8 opaque_v; 1471 #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_V 0x1UL 1472 #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_OPAQUE_MASK 0xfeUL 1473 #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_OPAQUE_SFT 1 1474 u8 timestamp_lo; 1475 __le16 timestamp_hi; 1476 __le32 event_data1; 1477 #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_ERROR_TYPE_MASK 0xffUL 1478 #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_ERROR_TYPE_SFT 0 1479 #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_ERROR_TYPE_NVM_ERROR 0x3UL 1480 #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_ERROR_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_ERROR_TYPE_NVM_ERROR 1481 #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_NVM_ERR_TYPE_MASK 0xff00UL 1482 #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_NVM_ERR_TYPE_SFT 8 1483 #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_NVM_ERR_TYPE_WRITE (0x1UL << 8) 1484 #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_NVM_ERR_TYPE_ERASE (0x2UL << 8) 1485 #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_NVM_ERR_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_NVM_ERR_TYPE_ERASE 1486 }; 1487 1488 /* hwrm_async_event_cmpl_error_report_doorbell_drop_threshold (size:128b/16B) */ 1489 struct hwrm_async_event_cmpl_error_report_doorbell_drop_threshold { 1490 __le16 type; 1491 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_TYPE_MASK 0x3fUL 1492 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_TYPE_SFT 0 1493 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_TYPE_HWRM_ASYNC_EVENT 0x2eUL 1494 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_TYPE_HWRM_ASYNC_EVENT 1495 __le16 event_id; 1496 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_ID_ERROR_REPORT 0x45UL 1497 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_ID_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_ID_ERROR_REPORT 1498 __le32 event_data2; 1499 u8 opaque_v; 1500 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_V 0x1UL 1501 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_OPAQUE_MASK 0xfeUL 1502 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_OPAQUE_SFT 1 1503 u8 timestamp_lo; 1504 __le16 timestamp_hi; 1505 __le32 event_data1; 1506 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_DATA1_ERROR_TYPE_MASK 0xffUL 1507 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_DATA1_ERROR_TYPE_SFT 0 1508 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_DATA1_ERROR_TYPE_DOORBELL_DROP_THRESHOLD 0x4UL 1509 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_DATA1_ERROR_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_DATA1_ERROR_TYPE_DOORBELL_DROP_THRESHOLD 1510 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_DATA1_EPOCH_MASK 0xffffff00UL 1511 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_DATA1_EPOCH_SFT 8 1512 }; 1513 1514 /* hwrm_async_event_cmpl_error_report_thermal (size:128b/16B) */ 1515 struct hwrm_async_event_cmpl_error_report_thermal { 1516 __le16 type; 1517 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_TYPE_MASK 0x3fUL 1518 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_TYPE_SFT 0 1519 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_TYPE_HWRM_ASYNC_EVENT 0x2eUL 1520 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_TYPE_HWRM_ASYNC_EVENT 1521 __le16 event_id; 1522 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_ID_ERROR_REPORT 0x45UL 1523 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_ID_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_ID_ERROR_REPORT 1524 __le32 event_data2; 1525 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA2_CURRENT_TEMP_MASK 0xffUL 1526 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA2_CURRENT_TEMP_SFT 0 1527 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA2_THRESHOLD_TEMP_MASK 0xff00UL 1528 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA2_THRESHOLD_TEMP_SFT 8 1529 u8 opaque_v; 1530 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_V 0x1UL 1531 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_OPAQUE_MASK 0xfeUL 1532 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_OPAQUE_SFT 1 1533 u8 timestamp_lo; 1534 __le16 timestamp_hi; 1535 __le32 event_data1; 1536 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_ERROR_TYPE_MASK 0xffUL 1537 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_ERROR_TYPE_SFT 0 1538 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_ERROR_TYPE_THERMAL_EVENT 0x5UL 1539 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_ERROR_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_ERROR_TYPE_THERMAL_EVENT 1540 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_THRESHOLD_TYPE_MASK 0x700UL 1541 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_THRESHOLD_TYPE_SFT 8 1542 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_THRESHOLD_TYPE_WARN (0x0UL << 8) 1543 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_THRESHOLD_TYPE_CRITICAL (0x1UL << 8) 1544 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_THRESHOLD_TYPE_FATAL (0x2UL << 8) 1545 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_THRESHOLD_TYPE_SHUTDOWN (0x3UL << 8) 1546 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_THRESHOLD_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_THRESHOLD_TYPE_SHUTDOWN 1547 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_TRANSITION_DIR 0x800UL 1548 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_TRANSITION_DIR_DECREASING (0x0UL << 11) 1549 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_TRANSITION_DIR_INCREASING (0x1UL << 11) 1550 #define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_TRANSITION_DIR_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_TRANSITION_DIR_INCREASING 1551 }; 1552 1553 /* hwrm_async_event_cmpl_error_report_dual_data_rate_not_supported (size:128b/16B) */ 1554 struct hwrm_async_event_cmpl_error_report_dual_data_rate_not_supported { 1555 __le16 type; 1556 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DUAL_DATA_RATE_NOT_SUPPORTED_TYPE_MASK 0x3fUL 1557 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DUAL_DATA_RATE_NOT_SUPPORTED_TYPE_SFT 0 1558 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DUAL_DATA_RATE_NOT_SUPPORTED_TYPE_HWRM_ASYNC_EVENT 0x2eUL 1559 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DUAL_DATA_RATE_NOT_SUPPORTED_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_DUAL_DATA_RATE_NOT_SUPPORTED_TYPE_HWRM_ASYNC_EVENT 1560 __le16 event_id; 1561 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DUAL_DATA_RATE_NOT_SUPPORTED_EVENT_ID_ERROR_REPORT 0x45UL 1562 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DUAL_DATA_RATE_NOT_SUPPORTED_EVENT_ID_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_DUAL_DATA_RATE_NOT_SUPPORTED_EVENT_ID_ERROR_REPORT 1563 __le32 event_data2; 1564 u8 opaque_v; 1565 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DUAL_DATA_RATE_NOT_SUPPORTED_V 0x1UL 1566 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DUAL_DATA_RATE_NOT_SUPPORTED_OPAQUE_MASK 0xfeUL 1567 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DUAL_DATA_RATE_NOT_SUPPORTED_OPAQUE_SFT 1 1568 u8 timestamp_lo; 1569 __le16 timestamp_hi; 1570 __le32 event_data1; 1571 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DUAL_DATA_RATE_NOT_SUPPORTED_EVENT_DATA1_ERROR_TYPE_MASK 0xffUL 1572 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DUAL_DATA_RATE_NOT_SUPPORTED_EVENT_DATA1_ERROR_TYPE_SFT 0 1573 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DUAL_DATA_RATE_NOT_SUPPORTED_EVENT_DATA1_ERROR_TYPE_DUAL_DATA_RATE_NOT_SUPPORTED 0x6UL 1574 #define ASYNC_EVENT_CMPL_ERROR_REPORT_DUAL_DATA_RATE_NOT_SUPPORTED_EVENT_DATA1_ERROR_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_DUAL_DATA_RATE_NOT_SUPPORTED_EVENT_DATA1_ERROR_TYPE_DUAL_DATA_RATE_NOT_SUPPORTED 1575 }; 1576 1577 /* hwrm_func_reset_input (size:192b/24B) */ 1578 struct hwrm_func_reset_input { 1579 __le16 req_type; 1580 __le16 cmpl_ring; 1581 __le16 seq_id; 1582 __le16 target_id; 1583 __le64 resp_addr; 1584 __le32 enables; 1585 #define FUNC_RESET_REQ_ENABLES_VF_ID_VALID 0x1UL 1586 __le16 vf_id; 1587 u8 func_reset_level; 1588 #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETALL 0x0UL 1589 #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETME 0x1UL 1590 #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETCHILDREN 0x2UL 1591 #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETVF 0x3UL 1592 #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_LAST FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETVF 1593 u8 unused_0; 1594 }; 1595 1596 /* hwrm_func_reset_output (size:128b/16B) */ 1597 struct hwrm_func_reset_output { 1598 __le16 error_code; 1599 __le16 req_type; 1600 __le16 seq_id; 1601 __le16 resp_len; 1602 u8 unused_0[7]; 1603 u8 valid; 1604 }; 1605 1606 /* hwrm_func_getfid_input (size:192b/24B) */ 1607 struct hwrm_func_getfid_input { 1608 __le16 req_type; 1609 __le16 cmpl_ring; 1610 __le16 seq_id; 1611 __le16 target_id; 1612 __le64 resp_addr; 1613 __le32 enables; 1614 #define FUNC_GETFID_REQ_ENABLES_PCI_ID 0x1UL 1615 __le16 pci_id; 1616 u8 unused_0[2]; 1617 }; 1618 1619 /* hwrm_func_getfid_output (size:128b/16B) */ 1620 struct hwrm_func_getfid_output { 1621 __le16 error_code; 1622 __le16 req_type; 1623 __le16 seq_id; 1624 __le16 resp_len; 1625 __le16 fid; 1626 u8 unused_0[5]; 1627 u8 valid; 1628 }; 1629 1630 /* hwrm_func_vf_alloc_input (size:192b/24B) */ 1631 struct hwrm_func_vf_alloc_input { 1632 __le16 req_type; 1633 __le16 cmpl_ring; 1634 __le16 seq_id; 1635 __le16 target_id; 1636 __le64 resp_addr; 1637 __le32 enables; 1638 #define FUNC_VF_ALLOC_REQ_ENABLES_FIRST_VF_ID 0x1UL 1639 __le16 first_vf_id; 1640 __le16 num_vfs; 1641 }; 1642 1643 /* hwrm_func_vf_alloc_output (size:128b/16B) */ 1644 struct hwrm_func_vf_alloc_output { 1645 __le16 error_code; 1646 __le16 req_type; 1647 __le16 seq_id; 1648 __le16 resp_len; 1649 __le16 first_vf_id; 1650 u8 unused_0[5]; 1651 u8 valid; 1652 }; 1653 1654 /* hwrm_func_vf_free_input (size:192b/24B) */ 1655 struct hwrm_func_vf_free_input { 1656 __le16 req_type; 1657 __le16 cmpl_ring; 1658 __le16 seq_id; 1659 __le16 target_id; 1660 __le64 resp_addr; 1661 __le32 enables; 1662 #define FUNC_VF_FREE_REQ_ENABLES_FIRST_VF_ID 0x1UL 1663 __le16 first_vf_id; 1664 __le16 num_vfs; 1665 }; 1666 1667 /* hwrm_func_vf_free_output (size:128b/16B) */ 1668 struct hwrm_func_vf_free_output { 1669 __le16 error_code; 1670 __le16 req_type; 1671 __le16 seq_id; 1672 __le16 resp_len; 1673 u8 unused_0[7]; 1674 u8 valid; 1675 }; 1676 1677 /* hwrm_func_vf_cfg_input (size:576b/72B) */ 1678 struct hwrm_func_vf_cfg_input { 1679 __le16 req_type; 1680 __le16 cmpl_ring; 1681 __le16 seq_id; 1682 __le16 target_id; 1683 __le64 resp_addr; 1684 __le32 enables; 1685 #define FUNC_VF_CFG_REQ_ENABLES_MTU 0x1UL 1686 #define FUNC_VF_CFG_REQ_ENABLES_GUEST_VLAN 0x2UL 1687 #define FUNC_VF_CFG_REQ_ENABLES_ASYNC_EVENT_CR 0x4UL 1688 #define FUNC_VF_CFG_REQ_ENABLES_DFLT_MAC_ADDR 0x8UL 1689 #define FUNC_VF_CFG_REQ_ENABLES_NUM_RSSCOS_CTXS 0x10UL 1690 #define FUNC_VF_CFG_REQ_ENABLES_NUM_CMPL_RINGS 0x20UL 1691 #define FUNC_VF_CFG_REQ_ENABLES_NUM_TX_RINGS 0x40UL 1692 #define FUNC_VF_CFG_REQ_ENABLES_NUM_RX_RINGS 0x80UL 1693 #define FUNC_VF_CFG_REQ_ENABLES_NUM_L2_CTXS 0x100UL 1694 #define FUNC_VF_CFG_REQ_ENABLES_NUM_VNICS 0x200UL 1695 #define FUNC_VF_CFG_REQ_ENABLES_NUM_STAT_CTXS 0x400UL 1696 #define FUNC_VF_CFG_REQ_ENABLES_NUM_HW_RING_GRPS 0x800UL 1697 #define FUNC_VF_CFG_REQ_ENABLES_NUM_KTLS_TX_KEY_CTXS 0x1000UL 1698 #define FUNC_VF_CFG_REQ_ENABLES_NUM_KTLS_RX_KEY_CTXS 0x2000UL 1699 #define FUNC_VF_CFG_REQ_ENABLES_NUM_QUIC_TX_KEY_CTXS 0x4000UL 1700 #define FUNC_VF_CFG_REQ_ENABLES_NUM_QUIC_RX_KEY_CTXS 0x8000UL 1701 __le16 mtu; 1702 __le16 guest_vlan; 1703 __le16 async_event_cr; 1704 u8 dflt_mac_addr[6]; 1705 __le32 flags; 1706 #define FUNC_VF_CFG_REQ_FLAGS_TX_ASSETS_TEST 0x1UL 1707 #define FUNC_VF_CFG_REQ_FLAGS_RX_ASSETS_TEST 0x2UL 1708 #define FUNC_VF_CFG_REQ_FLAGS_CMPL_ASSETS_TEST 0x4UL 1709 #define FUNC_VF_CFG_REQ_FLAGS_RSSCOS_CTX_ASSETS_TEST 0x8UL 1710 #define FUNC_VF_CFG_REQ_FLAGS_RING_GRP_ASSETS_TEST 0x10UL 1711 #define FUNC_VF_CFG_REQ_FLAGS_STAT_CTX_ASSETS_TEST 0x20UL 1712 #define FUNC_VF_CFG_REQ_FLAGS_VNIC_ASSETS_TEST 0x40UL 1713 #define FUNC_VF_CFG_REQ_FLAGS_L2_CTX_ASSETS_TEST 0x80UL 1714 #define FUNC_VF_CFG_REQ_FLAGS_PPP_PUSH_MODE_ENABLE 0x100UL 1715 #define FUNC_VF_CFG_REQ_FLAGS_PPP_PUSH_MODE_DISABLE 0x200UL 1716 __le16 num_rsscos_ctxs; 1717 __le16 num_cmpl_rings; 1718 __le16 num_tx_rings; 1719 __le16 num_rx_rings; 1720 __le16 num_l2_ctxs; 1721 __le16 num_vnics; 1722 __le16 num_stat_ctxs; 1723 __le16 num_hw_ring_grps; 1724 __le32 num_ktls_tx_key_ctxs; 1725 __le32 num_ktls_rx_key_ctxs; 1726 __le16 num_msix; 1727 u8 unused[2]; 1728 __le32 num_quic_tx_key_ctxs; 1729 __le32 num_quic_rx_key_ctxs; 1730 }; 1731 1732 /* hwrm_func_vf_cfg_output (size:128b/16B) */ 1733 struct hwrm_func_vf_cfg_output { 1734 __le16 error_code; 1735 __le16 req_type; 1736 __le16 seq_id; 1737 __le16 resp_len; 1738 u8 unused_0[7]; 1739 u8 valid; 1740 }; 1741 1742 /* hwrm_func_qcaps_input (size:192b/24B) */ 1743 struct hwrm_func_qcaps_input { 1744 __le16 req_type; 1745 __le16 cmpl_ring; 1746 __le16 seq_id; 1747 __le16 target_id; 1748 __le64 resp_addr; 1749 __le16 fid; 1750 u8 unused_0[6]; 1751 }; 1752 1753 /* hwrm_func_qcaps_output (size:1152b/144B) */ 1754 struct hwrm_func_qcaps_output { 1755 __le16 error_code; 1756 __le16 req_type; 1757 __le16 seq_id; 1758 __le16 resp_len; 1759 __le16 fid; 1760 __le16 port_id; 1761 __le32 flags; 1762 #define FUNC_QCAPS_RESP_FLAGS_PUSH_MODE_SUPPORTED 0x1UL 1763 #define FUNC_QCAPS_RESP_FLAGS_GLOBAL_MSIX_AUTOMASKING 0x2UL 1764 #define FUNC_QCAPS_RESP_FLAGS_PTP_SUPPORTED 0x4UL 1765 #define FUNC_QCAPS_RESP_FLAGS_ROCE_V1_SUPPORTED 0x8UL 1766 #define FUNC_QCAPS_RESP_FLAGS_ROCE_V2_SUPPORTED 0x10UL 1767 #define FUNC_QCAPS_RESP_FLAGS_WOL_MAGICPKT_SUPPORTED 0x20UL 1768 #define FUNC_QCAPS_RESP_FLAGS_WOL_BMP_SUPPORTED 0x40UL 1769 #define FUNC_QCAPS_RESP_FLAGS_TX_RING_RL_SUPPORTED 0x80UL 1770 #define FUNC_QCAPS_RESP_FLAGS_TX_BW_CFG_SUPPORTED 0x100UL 1771 #define FUNC_QCAPS_RESP_FLAGS_VF_TX_RING_RL_SUPPORTED 0x200UL 1772 #define FUNC_QCAPS_RESP_FLAGS_VF_BW_CFG_SUPPORTED 0x400UL 1773 #define FUNC_QCAPS_RESP_FLAGS_STD_TX_RING_MODE_SUPPORTED 0x800UL 1774 #define FUNC_QCAPS_RESP_FLAGS_GENEVE_TUN_FLAGS_SUPPORTED 0x1000UL 1775 #define FUNC_QCAPS_RESP_FLAGS_NVGRE_TUN_FLAGS_SUPPORTED 0x2000UL 1776 #define FUNC_QCAPS_RESP_FLAGS_GRE_TUN_FLAGS_SUPPORTED 0x4000UL 1777 #define FUNC_QCAPS_RESP_FLAGS_MPLS_TUN_FLAGS_SUPPORTED 0x8000UL 1778 #define FUNC_QCAPS_RESP_FLAGS_PCIE_STATS_SUPPORTED 0x10000UL 1779 #define FUNC_QCAPS_RESP_FLAGS_ADOPTED_PF_SUPPORTED 0x20000UL 1780 #define FUNC_QCAPS_RESP_FLAGS_ADMIN_PF_SUPPORTED 0x40000UL 1781 #define FUNC_QCAPS_RESP_FLAGS_LINK_ADMIN_STATUS_SUPPORTED 0x80000UL 1782 #define FUNC_QCAPS_RESP_FLAGS_WCB_PUSH_MODE 0x100000UL 1783 #define FUNC_QCAPS_RESP_FLAGS_DYNAMIC_TX_RING_ALLOC 0x200000UL 1784 #define FUNC_QCAPS_RESP_FLAGS_HOT_RESET_CAPABLE 0x400000UL 1785 #define FUNC_QCAPS_RESP_FLAGS_ERROR_RECOVERY_CAPABLE 0x800000UL 1786 #define FUNC_QCAPS_RESP_FLAGS_EXT_STATS_SUPPORTED 0x1000000UL 1787 #define FUNC_QCAPS_RESP_FLAGS_ERR_RECOVER_RELOAD 0x2000000UL 1788 #define FUNC_QCAPS_RESP_FLAGS_NOTIFY_VF_DEF_VNIC_CHNG_SUPPORTED 0x4000000UL 1789 #define FUNC_QCAPS_RESP_FLAGS_VLAN_ACCELERATION_TX_DISABLED 0x8000000UL 1790 #define FUNC_QCAPS_RESP_FLAGS_COREDUMP_CMD_SUPPORTED 0x10000000UL 1791 #define FUNC_QCAPS_RESP_FLAGS_CRASHDUMP_CMD_SUPPORTED 0x20000000UL 1792 #define FUNC_QCAPS_RESP_FLAGS_PFC_WD_STATS_SUPPORTED 0x40000000UL 1793 #define FUNC_QCAPS_RESP_FLAGS_DBG_QCAPS_CMD_SUPPORTED 0x80000000UL 1794 u8 mac_address[6]; 1795 __le16 max_rsscos_ctx; 1796 __le16 max_cmpl_rings; 1797 __le16 max_tx_rings; 1798 __le16 max_rx_rings; 1799 __le16 max_l2_ctxs; 1800 __le16 max_vnics; 1801 __le16 first_vf_id; 1802 __le16 max_vfs; 1803 __le16 max_stat_ctx; 1804 __le32 max_encap_records; 1805 __le32 max_decap_records; 1806 __le32 max_tx_em_flows; 1807 __le32 max_tx_wm_flows; 1808 __le32 max_rx_em_flows; 1809 __le32 max_rx_wm_flows; 1810 __le32 max_mcast_filters; 1811 __le32 max_flow_id; 1812 __le32 max_hw_ring_grps; 1813 __le16 max_sp_tx_rings; 1814 __le16 max_msix_vfs; 1815 __le32 flags_ext; 1816 #define FUNC_QCAPS_RESP_FLAGS_EXT_ECN_MARK_SUPPORTED 0x1UL 1817 #define FUNC_QCAPS_RESP_FLAGS_EXT_ECN_STATS_SUPPORTED 0x2UL 1818 #define FUNC_QCAPS_RESP_FLAGS_EXT_EXT_HW_STATS_SUPPORTED 0x4UL 1819 #define FUNC_QCAPS_RESP_FLAGS_EXT_HOT_RESET_IF_SUPPORT 0x8UL 1820 #define FUNC_QCAPS_RESP_FLAGS_EXT_PROXY_MODE_SUPPORT 0x10UL 1821 #define FUNC_QCAPS_RESP_FLAGS_EXT_TX_PROXY_SRC_INTF_OVERRIDE_SUPPORT 0x20UL 1822 #define FUNC_QCAPS_RESP_FLAGS_EXT_SCHQ_SUPPORTED 0x40UL 1823 #define FUNC_QCAPS_RESP_FLAGS_EXT_PPP_PUSH_MODE_SUPPORTED 0x80UL 1824 #define FUNC_QCAPS_RESP_FLAGS_EXT_EVB_MODE_CFG_NOT_SUPPORTED 0x100UL 1825 #define FUNC_QCAPS_RESP_FLAGS_EXT_SOC_SPD_SUPPORTED 0x200UL 1826 #define FUNC_QCAPS_RESP_FLAGS_EXT_FW_LIVEPATCH_SUPPORTED 0x400UL 1827 #define FUNC_QCAPS_RESP_FLAGS_EXT_FAST_RESET_CAPABLE 0x800UL 1828 #define FUNC_QCAPS_RESP_FLAGS_EXT_TX_METADATA_CFG_CAPABLE 0x1000UL 1829 #define FUNC_QCAPS_RESP_FLAGS_EXT_NVM_OPTION_ACTION_SUPPORTED 0x2000UL 1830 #define FUNC_QCAPS_RESP_FLAGS_EXT_BD_METADATA_SUPPORTED 0x4000UL 1831 #define FUNC_QCAPS_RESP_FLAGS_EXT_ECHO_REQUEST_SUPPORTED 0x8000UL 1832 #define FUNC_QCAPS_RESP_FLAGS_EXT_NPAR_1_2_SUPPORTED 0x10000UL 1833 #define FUNC_QCAPS_RESP_FLAGS_EXT_PTP_PTM_SUPPORTED 0x20000UL 1834 #define FUNC_QCAPS_RESP_FLAGS_EXT_PTP_PPS_SUPPORTED 0x40000UL 1835 #define FUNC_QCAPS_RESP_FLAGS_EXT_VF_CFG_ASYNC_FOR_PF_SUPPORTED 0x80000UL 1836 #define FUNC_QCAPS_RESP_FLAGS_EXT_PARTITION_BW_SUPPORTED 0x100000UL 1837 #define FUNC_QCAPS_RESP_FLAGS_EXT_DFLT_VLAN_TPID_PCP_SUPPORTED 0x200000UL 1838 #define FUNC_QCAPS_RESP_FLAGS_EXT_KTLS_SUPPORTED 0x400000UL 1839 #define FUNC_QCAPS_RESP_FLAGS_EXT_EP_RATE_CONTROL 0x800000UL 1840 #define FUNC_QCAPS_RESP_FLAGS_EXT_MIN_BW_SUPPORTED 0x1000000UL 1841 #define FUNC_QCAPS_RESP_FLAGS_EXT_TX_COAL_CMPL_CAP 0x2000000UL 1842 #define FUNC_QCAPS_RESP_FLAGS_EXT_BS_V2_SUPPORTED 0x4000000UL 1843 #define FUNC_QCAPS_RESP_FLAGS_EXT_BS_V2_REQUIRED 0x8000000UL 1844 #define FUNC_QCAPS_RESP_FLAGS_EXT_PTP_64BIT_RTC_SUPPORTED 0x10000000UL 1845 #define FUNC_QCAPS_RESP_FLAGS_EXT_DBR_PACING_SUPPORTED 0x20000000UL 1846 #define FUNC_QCAPS_RESP_FLAGS_EXT_HW_DBR_DROP_RECOV_SUPPORTED 0x40000000UL 1847 #define FUNC_QCAPS_RESP_FLAGS_EXT_DISABLE_CQ_OVERFLOW_DETECTION_SUPPORTED 0x80000000UL 1848 u8 max_schqs; 1849 u8 mpc_chnls_cap; 1850 #define FUNC_QCAPS_RESP_MPC_CHNLS_CAP_TCE 0x1UL 1851 #define FUNC_QCAPS_RESP_MPC_CHNLS_CAP_RCE 0x2UL 1852 #define FUNC_QCAPS_RESP_MPC_CHNLS_CAP_TE_CFA 0x4UL 1853 #define FUNC_QCAPS_RESP_MPC_CHNLS_CAP_RE_CFA 0x8UL 1854 #define FUNC_QCAPS_RESP_MPC_CHNLS_CAP_PRIMATE 0x10UL 1855 __le16 max_key_ctxs_alloc; 1856 __le32 flags_ext2; 1857 #define FUNC_QCAPS_RESP_FLAGS_EXT2_RX_ALL_PKTS_TIMESTAMPS_SUPPORTED 0x1UL 1858 #define FUNC_QCAPS_RESP_FLAGS_EXT2_QUIC_SUPPORTED 0x2UL 1859 #define FUNC_QCAPS_RESP_FLAGS_EXT2_KDNET_SUPPORTED 0x4UL 1860 #define FUNC_QCAPS_RESP_FLAGS_EXT2_DBR_PACING_EXT_SUPPORTED 0x8UL 1861 #define FUNC_QCAPS_RESP_FLAGS_EXT2_SW_DBR_DROP_RECOVERY_SUPPORTED 0x10UL 1862 #define FUNC_QCAPS_RESP_FLAGS_EXT2_GENERIC_STATS_SUPPORTED 0x20UL 1863 #define FUNC_QCAPS_RESP_FLAGS_EXT2_UDP_GSO_SUPPORTED 0x40UL 1864 #define FUNC_QCAPS_RESP_FLAGS_EXT2_SYNCE_SUPPORTED 0x80UL 1865 #define FUNC_QCAPS_RESP_FLAGS_EXT2_DBR_PACING_V0_SUPPORTED 0x100UL 1866 #define FUNC_QCAPS_RESP_FLAGS_EXT2_TX_PKT_TS_CMPL_SUPPORTED 0x200UL 1867 #define FUNC_QCAPS_RESP_FLAGS_EXT2_HW_LAG_SUPPORTED 0x400UL 1868 #define FUNC_QCAPS_RESP_FLAGS_EXT2_ON_CHIP_CTX_SUPPORTED 0x800UL 1869 #define FUNC_QCAPS_RESP_FLAGS_EXT2_STEERING_TAG_SUPPORTED 0x1000UL 1870 #define FUNC_QCAPS_RESP_FLAGS_EXT2_ENHANCED_VF_SCALE_SUPPORTED 0x2000UL 1871 #define FUNC_QCAPS_RESP_FLAGS_EXT2_KEY_XID_PARTITION_SUPPORTED 0x4000UL 1872 #define FUNC_QCAPS_RESP_FLAGS_EXT2_CONCURRENT_KTLS_QUIC_SUPPORTED 0x8000UL 1873 #define FUNC_QCAPS_RESP_FLAGS_EXT2_SCHQ_CROSS_TC_CAP_SUPPORTED 0x10000UL 1874 #define FUNC_QCAPS_RESP_FLAGS_EXT2_SCHQ_PER_TC_CAP_SUPPORTED 0x20000UL 1875 #define FUNC_QCAPS_RESP_FLAGS_EXT2_SCHQ_PER_TC_RESERVATION_SUPPORTED 0x40000UL 1876 #define FUNC_QCAPS_RESP_FLAGS_EXT2_DB_ERROR_STATS_SUPPORTED 0x80000UL 1877 #define FUNC_QCAPS_RESP_FLAGS_EXT2_ROCE_VF_RESOURCE_MGMT_SUPPORTED 0x100000UL 1878 #define FUNC_QCAPS_RESP_FLAGS_EXT2_UDCC_SUPPORTED 0x200000UL 1879 #define FUNC_QCAPS_RESP_FLAGS_EXT2_TIMED_TX_SO_TXTIME_SUPPORTED 0x400000UL 1880 #define FUNC_QCAPS_RESP_FLAGS_EXT2_SW_MAX_RESOURCE_LIMITS_SUPPORTED 0x800000UL 1881 #define FUNC_QCAPS_RESP_FLAGS_EXT2_TF_INGRESS_NIC_FLOW_SUPPORTED 0x1000000UL 1882 #define FUNC_QCAPS_RESP_FLAGS_EXT2_LPBK_STATS_SUPPORTED 0x2000000UL 1883 #define FUNC_QCAPS_RESP_FLAGS_EXT2_TF_EGRESS_NIC_FLOW_SUPPORTED 0x4000000UL 1884 #define FUNC_QCAPS_RESP_FLAGS_EXT2_MULTI_LOSSLESS_QUEUES_SUPPORTED 0x8000000UL 1885 #define FUNC_QCAPS_RESP_FLAGS_EXT2_PEER_MMAP_SUPPORTED 0x10000000UL 1886 #define FUNC_QCAPS_RESP_FLAGS_EXT2_TIMED_TX_PACING_SUPPORTED 0x20000000UL 1887 #define FUNC_QCAPS_RESP_FLAGS_EXT2_VF_STAT_EJECTION_SUPPORTED 0x40000000UL 1888 #define FUNC_QCAPS_RESP_FLAGS_EXT2_HOST_COREDUMP_SUPPORTED 0x80000000UL 1889 __le16 tunnel_disable_flag; 1890 #define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_VXLAN 0x1UL 1891 #define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_NGE 0x2UL 1892 #define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_NVGRE 0x4UL 1893 #define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_L2GRE 0x8UL 1894 #define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_GRE 0x10UL 1895 #define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_IPINIP 0x20UL 1896 #define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_MPLS 0x40UL 1897 #define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_PPPOE 0x80UL 1898 __le16 xid_partition_cap; 1899 #define FUNC_QCAPS_RESP_XID_PARTITION_CAP_TX_CK 0x1UL 1900 #define FUNC_QCAPS_RESP_XID_PARTITION_CAP_RX_CK 0x2UL 1901 u8 device_serial_number[8]; 1902 __le16 ctxs_per_partition; 1903 __le16 max_tso_segs; 1904 __le32 roce_vf_max_av; 1905 __le32 roce_vf_max_cq; 1906 __le32 roce_vf_max_mrw; 1907 __le32 roce_vf_max_qp; 1908 __le32 roce_vf_max_srq; 1909 __le32 roce_vf_max_gid; 1910 __le32 flags_ext3; 1911 #define FUNC_QCAPS_RESP_FLAGS_EXT3_RM_RSV_WHILE_ALLOC_CAP 0x1UL 1912 #define FUNC_QCAPS_RESP_FLAGS_EXT3_REQUIRE_L2_FILTER 0x2UL 1913 #define FUNC_QCAPS_RESP_FLAGS_EXT3_MAX_ROCE_VFS_SUPPORTED 0x4UL 1914 #define FUNC_QCAPS_RESP_FLAGS_EXT3_RX_RATE_PROFILE_SEL_SUPPORTED 0x8UL 1915 #define FUNC_QCAPS_RESP_FLAGS_EXT3_BIDI_OPT_SUPPORTED 0x10UL 1916 #define FUNC_QCAPS_RESP_FLAGS_EXT3_MIRROR_ON_ROCE_SUPPORTED 0x20UL 1917 __le16 max_roce_vfs; 1918 __le16 max_crypto_rx_flow_filters; 1919 u8 unused_3[3]; 1920 u8 valid; 1921 }; 1922 1923 /* hwrm_func_qcfg_input (size:192b/24B) */ 1924 struct hwrm_func_qcfg_input { 1925 __le16 req_type; 1926 __le16 cmpl_ring; 1927 __le16 seq_id; 1928 __le16 target_id; 1929 __le64 resp_addr; 1930 __le16 fid; 1931 u8 unused_0[6]; 1932 }; 1933 1934 /* hwrm_func_qcfg_output (size:1344b/168B) */ 1935 struct hwrm_func_qcfg_output { 1936 __le16 error_code; 1937 __le16 req_type; 1938 __le16 seq_id; 1939 __le16 resp_len; 1940 __le16 fid; 1941 __le16 port_id; 1942 __le16 vlan; 1943 __le16 flags; 1944 #define FUNC_QCFG_RESP_FLAGS_OOB_WOL_MAGICPKT_ENABLED 0x1UL 1945 #define FUNC_QCFG_RESP_FLAGS_OOB_WOL_BMP_ENABLED 0x2UL 1946 #define FUNC_QCFG_RESP_FLAGS_FW_DCBX_AGENT_ENABLED 0x4UL 1947 #define FUNC_QCFG_RESP_FLAGS_STD_TX_RING_MODE_ENABLED 0x8UL 1948 #define FUNC_QCFG_RESP_FLAGS_FW_LLDP_AGENT_ENABLED 0x10UL 1949 #define FUNC_QCFG_RESP_FLAGS_MULTI_HOST 0x20UL 1950 #define FUNC_QCFG_RESP_FLAGS_TRUSTED_VF 0x40UL 1951 #define FUNC_QCFG_RESP_FLAGS_SECURE_MODE_ENABLED 0x80UL 1952 #define FUNC_QCFG_RESP_FLAGS_PREBOOT_LEGACY_L2_RINGS 0x100UL 1953 #define FUNC_QCFG_RESP_FLAGS_HOT_RESET_ALLOWED 0x200UL 1954 #define FUNC_QCFG_RESP_FLAGS_PPP_PUSH_MODE_ENABLED 0x400UL 1955 #define FUNC_QCFG_RESP_FLAGS_RING_MONITOR_ENABLED 0x800UL 1956 #define FUNC_QCFG_RESP_FLAGS_FAST_RESET_ALLOWED 0x1000UL 1957 #define FUNC_QCFG_RESP_FLAGS_MULTI_ROOT 0x2000UL 1958 #define FUNC_QCFG_RESP_FLAGS_ENABLE_RDMA_SRIOV 0x4000UL 1959 #define FUNC_QCFG_RESP_FLAGS_ROCE_VNIC_ID_VALID 0x8000UL 1960 u8 mac_address[6]; 1961 __le16 pci_id; 1962 __le16 alloc_rsscos_ctx; 1963 __le16 alloc_cmpl_rings; 1964 __le16 alloc_tx_rings; 1965 __le16 alloc_rx_rings; 1966 __le16 alloc_l2_ctx; 1967 __le16 alloc_vnics; 1968 __le16 admin_mtu; 1969 __le16 mru; 1970 __le16 stat_ctx_id; 1971 u8 port_partition_type; 1972 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_SPF 0x0UL 1973 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_MPFS 0x1UL 1974 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_0 0x2UL 1975 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_5 0x3UL 1976 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR2_0 0x4UL 1977 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_2 0x5UL 1978 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_UNKNOWN 0xffUL 1979 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_LAST FUNC_QCFG_RESP_PORT_PARTITION_TYPE_UNKNOWN 1980 u8 port_pf_cnt; 1981 #define FUNC_QCFG_RESP_PORT_PF_CNT_UNAVAIL 0x0UL 1982 #define FUNC_QCFG_RESP_PORT_PF_CNT_LAST FUNC_QCFG_RESP_PORT_PF_CNT_UNAVAIL 1983 __le16 dflt_vnic_id; 1984 __le16 max_mtu_configured; 1985 __le32 min_bw; 1986 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_MASK 0xfffffffUL 1987 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_SFT 0 1988 #define FUNC_QCFG_RESP_MIN_BW_SCALE 0x10000000UL 1989 #define FUNC_QCFG_RESP_MIN_BW_SCALE_BITS (0x0UL << 28) 1990 #define FUNC_QCFG_RESP_MIN_BW_SCALE_BYTES (0x1UL << 28) 1991 #define FUNC_QCFG_RESP_MIN_BW_SCALE_LAST FUNC_QCFG_RESP_MIN_BW_SCALE_BYTES 1992 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 1993 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_SFT 29 1994 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 1995 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 1996 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 1997 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 1998 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 1999 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 2000 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_LAST FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_INVALID 2001 __le32 max_bw; 2002 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_MASK 0xfffffffUL 2003 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_SFT 0 2004 #define FUNC_QCFG_RESP_MAX_BW_SCALE 0x10000000UL 2005 #define FUNC_QCFG_RESP_MAX_BW_SCALE_BITS (0x0UL << 28) 2006 #define FUNC_QCFG_RESP_MAX_BW_SCALE_BYTES (0x1UL << 28) 2007 #define FUNC_QCFG_RESP_MAX_BW_SCALE_LAST FUNC_QCFG_RESP_MAX_BW_SCALE_BYTES 2008 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 2009 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_SFT 29 2010 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 2011 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 2012 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 2013 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 2014 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 2015 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 2016 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_LAST FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_INVALID 2017 u8 evb_mode; 2018 #define FUNC_QCFG_RESP_EVB_MODE_NO_EVB 0x0UL 2019 #define FUNC_QCFG_RESP_EVB_MODE_VEB 0x1UL 2020 #define FUNC_QCFG_RESP_EVB_MODE_VEPA 0x2UL 2021 #define FUNC_QCFG_RESP_EVB_MODE_LAST FUNC_QCFG_RESP_EVB_MODE_VEPA 2022 u8 options; 2023 #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_MASK 0x3UL 2024 #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SFT 0 2025 #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SIZE_64 0x0UL 2026 #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SIZE_128 0x1UL 2027 #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_LAST FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SIZE_128 2028 #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_MASK 0xcUL 2029 #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_SFT 2 2030 #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_FORCED_DOWN (0x0UL << 2) 2031 #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_FORCED_UP (0x1UL << 2) 2032 #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_AUTO (0x2UL << 2) 2033 #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_LAST FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_AUTO 2034 #define FUNC_QCFG_RESP_OPTIONS_RSVD_MASK 0xf0UL 2035 #define FUNC_QCFG_RESP_OPTIONS_RSVD_SFT 4 2036 __le16 alloc_vfs; 2037 __le32 alloc_mcast_filters; 2038 __le32 alloc_hw_ring_grps; 2039 __le16 alloc_sp_tx_rings; 2040 __le16 alloc_stat_ctx; 2041 __le16 alloc_msix; 2042 __le16 registered_vfs; 2043 __le16 l2_doorbell_bar_size_kb; 2044 u8 active_endpoints; 2045 u8 always_1; 2046 __le32 reset_addr_poll; 2047 __le16 legacy_l2_db_size_kb; 2048 __le16 svif_info; 2049 #define FUNC_QCFG_RESP_SVIF_INFO_SVIF_MASK 0x7fffUL 2050 #define FUNC_QCFG_RESP_SVIF_INFO_SVIF_SFT 0 2051 #define FUNC_QCFG_RESP_SVIF_INFO_SVIF_VALID 0x8000UL 2052 u8 mpc_chnls; 2053 #define FUNC_QCFG_RESP_MPC_CHNLS_TCE_ENABLED 0x1UL 2054 #define FUNC_QCFG_RESP_MPC_CHNLS_RCE_ENABLED 0x2UL 2055 #define FUNC_QCFG_RESP_MPC_CHNLS_TE_CFA_ENABLED 0x4UL 2056 #define FUNC_QCFG_RESP_MPC_CHNLS_RE_CFA_ENABLED 0x8UL 2057 #define FUNC_QCFG_RESP_MPC_CHNLS_PRIMATE_ENABLED 0x10UL 2058 u8 db_page_size; 2059 #define FUNC_QCFG_RESP_DB_PAGE_SIZE_4KB 0x0UL 2060 #define FUNC_QCFG_RESP_DB_PAGE_SIZE_8KB 0x1UL 2061 #define FUNC_QCFG_RESP_DB_PAGE_SIZE_16KB 0x2UL 2062 #define FUNC_QCFG_RESP_DB_PAGE_SIZE_32KB 0x3UL 2063 #define FUNC_QCFG_RESP_DB_PAGE_SIZE_64KB 0x4UL 2064 #define FUNC_QCFG_RESP_DB_PAGE_SIZE_128KB 0x5UL 2065 #define FUNC_QCFG_RESP_DB_PAGE_SIZE_256KB 0x6UL 2066 #define FUNC_QCFG_RESP_DB_PAGE_SIZE_512KB 0x7UL 2067 #define FUNC_QCFG_RESP_DB_PAGE_SIZE_1MB 0x8UL 2068 #define FUNC_QCFG_RESP_DB_PAGE_SIZE_2MB 0x9UL 2069 #define FUNC_QCFG_RESP_DB_PAGE_SIZE_4MB 0xaUL 2070 #define FUNC_QCFG_RESP_DB_PAGE_SIZE_LAST FUNC_QCFG_RESP_DB_PAGE_SIZE_4MB 2071 __le16 roce_vnic_id; 2072 __le32 partition_min_bw; 2073 #define FUNC_QCFG_RESP_PARTITION_MIN_BW_BW_VALUE_MASK 0xfffffffUL 2074 #define FUNC_QCFG_RESP_PARTITION_MIN_BW_BW_VALUE_SFT 0 2075 #define FUNC_QCFG_RESP_PARTITION_MIN_BW_SCALE 0x10000000UL 2076 #define FUNC_QCFG_RESP_PARTITION_MIN_BW_SCALE_BITS (0x0UL << 28) 2077 #define FUNC_QCFG_RESP_PARTITION_MIN_BW_SCALE_BYTES (0x1UL << 28) 2078 #define FUNC_QCFG_RESP_PARTITION_MIN_BW_SCALE_LAST FUNC_QCFG_RESP_PARTITION_MIN_BW_SCALE_BYTES 2079 #define FUNC_QCFG_RESP_PARTITION_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 2080 #define FUNC_QCFG_RESP_PARTITION_MIN_BW_BW_VALUE_UNIT_SFT 29 2081 #define FUNC_QCFG_RESP_PARTITION_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 2082 #define FUNC_QCFG_RESP_PARTITION_MIN_BW_BW_VALUE_UNIT_LAST FUNC_QCFG_RESP_PARTITION_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 2083 __le32 partition_max_bw; 2084 #define FUNC_QCFG_RESP_PARTITION_MAX_BW_BW_VALUE_MASK 0xfffffffUL 2085 #define FUNC_QCFG_RESP_PARTITION_MAX_BW_BW_VALUE_SFT 0 2086 #define FUNC_QCFG_RESP_PARTITION_MAX_BW_SCALE 0x10000000UL 2087 #define FUNC_QCFG_RESP_PARTITION_MAX_BW_SCALE_BITS (0x0UL << 28) 2088 #define FUNC_QCFG_RESP_PARTITION_MAX_BW_SCALE_BYTES (0x1UL << 28) 2089 #define FUNC_QCFG_RESP_PARTITION_MAX_BW_SCALE_LAST FUNC_QCFG_RESP_PARTITION_MAX_BW_SCALE_BYTES 2090 #define FUNC_QCFG_RESP_PARTITION_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 2091 #define FUNC_QCFG_RESP_PARTITION_MAX_BW_BW_VALUE_UNIT_SFT 29 2092 #define FUNC_QCFG_RESP_PARTITION_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 2093 #define FUNC_QCFG_RESP_PARTITION_MAX_BW_BW_VALUE_UNIT_LAST FUNC_QCFG_RESP_PARTITION_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 2094 __le16 host_mtu; 2095 __le16 flags2; 2096 #define FUNC_QCFG_RESP_FLAGS2_SRIOV_DSCP_INSERT_ENABLED 0x1UL 2097 __le16 stag_vid; 2098 u8 port_kdnet_mode; 2099 #define FUNC_QCFG_RESP_PORT_KDNET_MODE_DISABLED 0x0UL 2100 #define FUNC_QCFG_RESP_PORT_KDNET_MODE_ENABLED 0x1UL 2101 #define FUNC_QCFG_RESP_PORT_KDNET_MODE_LAST FUNC_QCFG_RESP_PORT_KDNET_MODE_ENABLED 2102 u8 kdnet_pcie_function; 2103 __le16 port_kdnet_fid; 2104 u8 unused_5; 2105 u8 roce_bidi_opt_mode; 2106 #define FUNC_QCFG_RESP_ROCE_BIDI_OPT_MODE_DISABLED 0x1UL 2107 #define FUNC_QCFG_RESP_ROCE_BIDI_OPT_MODE_DEDICATED 0x2UL 2108 #define FUNC_QCFG_RESP_ROCE_BIDI_OPT_MODE_SHARED 0x4UL 2109 __le32 num_ktls_tx_key_ctxs; 2110 __le32 num_ktls_rx_key_ctxs; 2111 u8 lag_id; 2112 u8 parif; 2113 u8 fw_lag_id; 2114 u8 unused_6; 2115 __le32 num_quic_tx_key_ctxs; 2116 __le32 num_quic_rx_key_ctxs; 2117 __le32 roce_max_av_per_vf; 2118 __le32 roce_max_cq_per_vf; 2119 __le32 roce_max_mrw_per_vf; 2120 __le32 roce_max_qp_per_vf; 2121 __le32 roce_max_srq_per_vf; 2122 __le32 roce_max_gid_per_vf; 2123 __le16 xid_partition_cfg; 2124 #define FUNC_QCFG_RESP_XID_PARTITION_CFG_TX_CK 0x1UL 2125 #define FUNC_QCFG_RESP_XID_PARTITION_CFG_RX_CK 0x2UL 2126 __le16 mirror_vnic_id; 2127 u8 unused_7[7]; 2128 u8 valid; 2129 }; 2130 2131 /* hwrm_func_cfg_input (size:1280b/160B) */ 2132 struct hwrm_func_cfg_input { 2133 __le16 req_type; 2134 __le16 cmpl_ring; 2135 __le16 seq_id; 2136 __le16 target_id; 2137 __le64 resp_addr; 2138 __le16 fid; 2139 __le16 num_msix; 2140 __le32 flags; 2141 #define FUNC_CFG_REQ_FLAGS_SRC_MAC_ADDR_CHECK_DISABLE 0x1UL 2142 #define FUNC_CFG_REQ_FLAGS_SRC_MAC_ADDR_CHECK_ENABLE 0x2UL 2143 #define FUNC_CFG_REQ_FLAGS_RSVD_MASK 0x1fcUL 2144 #define FUNC_CFG_REQ_FLAGS_RSVD_SFT 2 2145 #define FUNC_CFG_REQ_FLAGS_STD_TX_RING_MODE_ENABLE 0x200UL 2146 #define FUNC_CFG_REQ_FLAGS_STD_TX_RING_MODE_DISABLE 0x400UL 2147 #define FUNC_CFG_REQ_FLAGS_VIRT_MAC_PERSIST 0x800UL 2148 #define FUNC_CFG_REQ_FLAGS_NO_AUTOCLEAR_STATISTIC 0x1000UL 2149 #define FUNC_CFG_REQ_FLAGS_TX_ASSETS_TEST 0x2000UL 2150 #define FUNC_CFG_REQ_FLAGS_RX_ASSETS_TEST 0x4000UL 2151 #define FUNC_CFG_REQ_FLAGS_CMPL_ASSETS_TEST 0x8000UL 2152 #define FUNC_CFG_REQ_FLAGS_RSSCOS_CTX_ASSETS_TEST 0x10000UL 2153 #define FUNC_CFG_REQ_FLAGS_RING_GRP_ASSETS_TEST 0x20000UL 2154 #define FUNC_CFG_REQ_FLAGS_STAT_CTX_ASSETS_TEST 0x40000UL 2155 #define FUNC_CFG_REQ_FLAGS_VNIC_ASSETS_TEST 0x80000UL 2156 #define FUNC_CFG_REQ_FLAGS_L2_CTX_ASSETS_TEST 0x100000UL 2157 #define FUNC_CFG_REQ_FLAGS_TRUSTED_VF_ENABLE 0x200000UL 2158 #define FUNC_CFG_REQ_FLAGS_DYNAMIC_TX_RING_ALLOC 0x400000UL 2159 #define FUNC_CFG_REQ_FLAGS_NQ_ASSETS_TEST 0x800000UL 2160 #define FUNC_CFG_REQ_FLAGS_TRUSTED_VF_DISABLE 0x1000000UL 2161 #define FUNC_CFG_REQ_FLAGS_PREBOOT_LEGACY_L2_RINGS 0x2000000UL 2162 #define FUNC_CFG_REQ_FLAGS_HOT_RESET_IF_EN_DIS 0x4000000UL 2163 #define FUNC_CFG_REQ_FLAGS_PPP_PUSH_MODE_ENABLE 0x8000000UL 2164 #define FUNC_CFG_REQ_FLAGS_PPP_PUSH_MODE_DISABLE 0x10000000UL 2165 #define FUNC_CFG_REQ_FLAGS_BD_METADATA_ENABLE 0x20000000UL 2166 #define FUNC_CFG_REQ_FLAGS_BD_METADATA_DISABLE 0x40000000UL 2167 __le32 enables; 2168 #define FUNC_CFG_REQ_ENABLES_ADMIN_MTU 0x1UL 2169 #define FUNC_CFG_REQ_ENABLES_MRU 0x2UL 2170 #define FUNC_CFG_REQ_ENABLES_NUM_RSSCOS_CTXS 0x4UL 2171 #define FUNC_CFG_REQ_ENABLES_NUM_CMPL_RINGS 0x8UL 2172 #define FUNC_CFG_REQ_ENABLES_NUM_TX_RINGS 0x10UL 2173 #define FUNC_CFG_REQ_ENABLES_NUM_RX_RINGS 0x20UL 2174 #define FUNC_CFG_REQ_ENABLES_NUM_L2_CTXS 0x40UL 2175 #define FUNC_CFG_REQ_ENABLES_NUM_VNICS 0x80UL 2176 #define FUNC_CFG_REQ_ENABLES_NUM_STAT_CTXS 0x100UL 2177 #define FUNC_CFG_REQ_ENABLES_DFLT_MAC_ADDR 0x200UL 2178 #define FUNC_CFG_REQ_ENABLES_DFLT_VLAN 0x400UL 2179 #define FUNC_CFG_REQ_ENABLES_DFLT_IP_ADDR 0x800UL 2180 #define FUNC_CFG_REQ_ENABLES_MIN_BW 0x1000UL 2181 #define FUNC_CFG_REQ_ENABLES_MAX_BW 0x2000UL 2182 #define FUNC_CFG_REQ_ENABLES_ASYNC_EVENT_CR 0x4000UL 2183 #define FUNC_CFG_REQ_ENABLES_VLAN_ANTISPOOF_MODE 0x8000UL 2184 #define FUNC_CFG_REQ_ENABLES_ALLOWED_VLAN_PRIS 0x10000UL 2185 #define FUNC_CFG_REQ_ENABLES_EVB_MODE 0x20000UL 2186 #define FUNC_CFG_REQ_ENABLES_NUM_MCAST_FILTERS 0x40000UL 2187 #define FUNC_CFG_REQ_ENABLES_NUM_HW_RING_GRPS 0x80000UL 2188 #define FUNC_CFG_REQ_ENABLES_CACHE_LINESIZE 0x100000UL 2189 #define FUNC_CFG_REQ_ENABLES_NUM_MSIX 0x200000UL 2190 #define FUNC_CFG_REQ_ENABLES_ADMIN_LINK_STATE 0x400000UL 2191 #define FUNC_CFG_REQ_ENABLES_HOT_RESET_IF_SUPPORT 0x800000UL 2192 #define FUNC_CFG_REQ_ENABLES_SCHQ_ID 0x1000000UL 2193 #define FUNC_CFG_REQ_ENABLES_MPC_CHNLS 0x2000000UL 2194 #define FUNC_CFG_REQ_ENABLES_PARTITION_MIN_BW 0x4000000UL 2195 #define FUNC_CFG_REQ_ENABLES_PARTITION_MAX_BW 0x8000000UL 2196 #define FUNC_CFG_REQ_ENABLES_TPID 0x10000000UL 2197 #define FUNC_CFG_REQ_ENABLES_HOST_MTU 0x20000000UL 2198 #define FUNC_CFG_REQ_ENABLES_KTLS_TX_KEY_CTXS 0x40000000UL 2199 #define FUNC_CFG_REQ_ENABLES_KTLS_RX_KEY_CTXS 0x80000000UL 2200 __le16 admin_mtu; 2201 __le16 mru; 2202 __le16 num_rsscos_ctxs; 2203 __le16 num_cmpl_rings; 2204 __le16 num_tx_rings; 2205 __le16 num_rx_rings; 2206 __le16 num_l2_ctxs; 2207 __le16 num_vnics; 2208 __le16 num_stat_ctxs; 2209 __le16 num_hw_ring_grps; 2210 u8 dflt_mac_addr[6]; 2211 __le16 dflt_vlan; 2212 __be32 dflt_ip_addr[4]; 2213 __le32 min_bw; 2214 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_MASK 0xfffffffUL 2215 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_SFT 0 2216 #define FUNC_CFG_REQ_MIN_BW_SCALE 0x10000000UL 2217 #define FUNC_CFG_REQ_MIN_BW_SCALE_BITS (0x0UL << 28) 2218 #define FUNC_CFG_REQ_MIN_BW_SCALE_BYTES (0x1UL << 28) 2219 #define FUNC_CFG_REQ_MIN_BW_SCALE_LAST FUNC_CFG_REQ_MIN_BW_SCALE_BYTES 2220 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 2221 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_SFT 29 2222 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 2223 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 2224 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 2225 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 2226 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 2227 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 2228 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_LAST FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_INVALID 2229 __le32 max_bw; 2230 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_MASK 0xfffffffUL 2231 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_SFT 0 2232 #define FUNC_CFG_REQ_MAX_BW_SCALE 0x10000000UL 2233 #define FUNC_CFG_REQ_MAX_BW_SCALE_BITS (0x0UL << 28) 2234 #define FUNC_CFG_REQ_MAX_BW_SCALE_BYTES (0x1UL << 28) 2235 #define FUNC_CFG_REQ_MAX_BW_SCALE_LAST FUNC_CFG_REQ_MAX_BW_SCALE_BYTES 2236 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 2237 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_SFT 29 2238 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 2239 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 2240 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 2241 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 2242 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 2243 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 2244 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_LAST FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_INVALID 2245 __le16 async_event_cr; 2246 u8 vlan_antispoof_mode; 2247 #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_NOCHECK 0x0UL 2248 #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_VALIDATE_VLAN 0x1UL 2249 #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_INSERT_IF_VLANDNE 0x2UL 2250 #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_INSERT_OR_OVERRIDE_VLAN 0x3UL 2251 #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_LAST FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_INSERT_OR_OVERRIDE_VLAN 2252 u8 allowed_vlan_pris; 2253 u8 evb_mode; 2254 #define FUNC_CFG_REQ_EVB_MODE_NO_EVB 0x0UL 2255 #define FUNC_CFG_REQ_EVB_MODE_VEB 0x1UL 2256 #define FUNC_CFG_REQ_EVB_MODE_VEPA 0x2UL 2257 #define FUNC_CFG_REQ_EVB_MODE_LAST FUNC_CFG_REQ_EVB_MODE_VEPA 2258 u8 options; 2259 #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_MASK 0x3UL 2260 #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SFT 0 2261 #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SIZE_64 0x0UL 2262 #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SIZE_128 0x1UL 2263 #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_LAST FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SIZE_128 2264 #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_MASK 0xcUL 2265 #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_SFT 2 2266 #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_FORCED_DOWN (0x0UL << 2) 2267 #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_FORCED_UP (0x1UL << 2) 2268 #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_AUTO (0x2UL << 2) 2269 #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_LAST FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_AUTO 2270 #define FUNC_CFG_REQ_OPTIONS_RSVD_MASK 0xf0UL 2271 #define FUNC_CFG_REQ_OPTIONS_RSVD_SFT 4 2272 __le16 num_mcast_filters; 2273 __le16 schq_id; 2274 __le16 mpc_chnls; 2275 #define FUNC_CFG_REQ_MPC_CHNLS_TCE_ENABLE 0x1UL 2276 #define FUNC_CFG_REQ_MPC_CHNLS_TCE_DISABLE 0x2UL 2277 #define FUNC_CFG_REQ_MPC_CHNLS_RCE_ENABLE 0x4UL 2278 #define FUNC_CFG_REQ_MPC_CHNLS_RCE_DISABLE 0x8UL 2279 #define FUNC_CFG_REQ_MPC_CHNLS_TE_CFA_ENABLE 0x10UL 2280 #define FUNC_CFG_REQ_MPC_CHNLS_TE_CFA_DISABLE 0x20UL 2281 #define FUNC_CFG_REQ_MPC_CHNLS_RE_CFA_ENABLE 0x40UL 2282 #define FUNC_CFG_REQ_MPC_CHNLS_RE_CFA_DISABLE 0x80UL 2283 #define FUNC_CFG_REQ_MPC_CHNLS_PRIMATE_ENABLE 0x100UL 2284 #define FUNC_CFG_REQ_MPC_CHNLS_PRIMATE_DISABLE 0x200UL 2285 __le32 partition_min_bw; 2286 #define FUNC_CFG_REQ_PARTITION_MIN_BW_BW_VALUE_MASK 0xfffffffUL 2287 #define FUNC_CFG_REQ_PARTITION_MIN_BW_BW_VALUE_SFT 0 2288 #define FUNC_CFG_REQ_PARTITION_MIN_BW_SCALE 0x10000000UL 2289 #define FUNC_CFG_REQ_PARTITION_MIN_BW_SCALE_BITS (0x0UL << 28) 2290 #define FUNC_CFG_REQ_PARTITION_MIN_BW_SCALE_BYTES (0x1UL << 28) 2291 #define FUNC_CFG_REQ_PARTITION_MIN_BW_SCALE_LAST FUNC_CFG_REQ_PARTITION_MIN_BW_SCALE_BYTES 2292 #define FUNC_CFG_REQ_PARTITION_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 2293 #define FUNC_CFG_REQ_PARTITION_MIN_BW_BW_VALUE_UNIT_SFT 29 2294 #define FUNC_CFG_REQ_PARTITION_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 2295 #define FUNC_CFG_REQ_PARTITION_MIN_BW_BW_VALUE_UNIT_LAST FUNC_CFG_REQ_PARTITION_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 2296 __le32 partition_max_bw; 2297 #define FUNC_CFG_REQ_PARTITION_MAX_BW_BW_VALUE_MASK 0xfffffffUL 2298 #define FUNC_CFG_REQ_PARTITION_MAX_BW_BW_VALUE_SFT 0 2299 #define FUNC_CFG_REQ_PARTITION_MAX_BW_SCALE 0x10000000UL 2300 #define FUNC_CFG_REQ_PARTITION_MAX_BW_SCALE_BITS (0x0UL << 28) 2301 #define FUNC_CFG_REQ_PARTITION_MAX_BW_SCALE_BYTES (0x1UL << 28) 2302 #define FUNC_CFG_REQ_PARTITION_MAX_BW_SCALE_LAST FUNC_CFG_REQ_PARTITION_MAX_BW_SCALE_BYTES 2303 #define FUNC_CFG_REQ_PARTITION_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 2304 #define FUNC_CFG_REQ_PARTITION_MAX_BW_BW_VALUE_UNIT_SFT 29 2305 #define FUNC_CFG_REQ_PARTITION_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 2306 #define FUNC_CFG_REQ_PARTITION_MAX_BW_BW_VALUE_UNIT_LAST FUNC_CFG_REQ_PARTITION_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 2307 __be16 tpid; 2308 __le16 host_mtu; 2309 __le32 flags2; 2310 #define FUNC_CFG_REQ_FLAGS2_KTLS_KEY_CTX_ASSETS_TEST 0x1UL 2311 #define FUNC_CFG_REQ_FLAGS2_QUIC_KEY_CTX_ASSETS_TEST 0x2UL 2312 __le32 enables2; 2313 #define FUNC_CFG_REQ_ENABLES2_KDNET 0x1UL 2314 #define FUNC_CFG_REQ_ENABLES2_DB_PAGE_SIZE 0x2UL 2315 #define FUNC_CFG_REQ_ENABLES2_QUIC_TX_KEY_CTXS 0x4UL 2316 #define FUNC_CFG_REQ_ENABLES2_QUIC_RX_KEY_CTXS 0x8UL 2317 #define FUNC_CFG_REQ_ENABLES2_ROCE_MAX_AV_PER_VF 0x10UL 2318 #define FUNC_CFG_REQ_ENABLES2_ROCE_MAX_CQ_PER_VF 0x20UL 2319 #define FUNC_CFG_REQ_ENABLES2_ROCE_MAX_MRW_PER_VF 0x40UL 2320 #define FUNC_CFG_REQ_ENABLES2_ROCE_MAX_QP_PER_VF 0x80UL 2321 #define FUNC_CFG_REQ_ENABLES2_ROCE_MAX_SRQ_PER_VF 0x100UL 2322 #define FUNC_CFG_REQ_ENABLES2_ROCE_MAX_GID_PER_VF 0x200UL 2323 #define FUNC_CFG_REQ_ENABLES2_XID_PARTITION_CFG 0x400UL 2324 #define FUNC_CFG_REQ_ENABLES2_PHYSICAL_SLOT_NUMBER 0x800UL 2325 u8 port_kdnet_mode; 2326 #define FUNC_CFG_REQ_PORT_KDNET_MODE_DISABLED 0x0UL 2327 #define FUNC_CFG_REQ_PORT_KDNET_MODE_ENABLED 0x1UL 2328 #define FUNC_CFG_REQ_PORT_KDNET_MODE_LAST FUNC_CFG_REQ_PORT_KDNET_MODE_ENABLED 2329 u8 db_page_size; 2330 #define FUNC_CFG_REQ_DB_PAGE_SIZE_4KB 0x0UL 2331 #define FUNC_CFG_REQ_DB_PAGE_SIZE_8KB 0x1UL 2332 #define FUNC_CFG_REQ_DB_PAGE_SIZE_16KB 0x2UL 2333 #define FUNC_CFG_REQ_DB_PAGE_SIZE_32KB 0x3UL 2334 #define FUNC_CFG_REQ_DB_PAGE_SIZE_64KB 0x4UL 2335 #define FUNC_CFG_REQ_DB_PAGE_SIZE_128KB 0x5UL 2336 #define FUNC_CFG_REQ_DB_PAGE_SIZE_256KB 0x6UL 2337 #define FUNC_CFG_REQ_DB_PAGE_SIZE_512KB 0x7UL 2338 #define FUNC_CFG_REQ_DB_PAGE_SIZE_1MB 0x8UL 2339 #define FUNC_CFG_REQ_DB_PAGE_SIZE_2MB 0x9UL 2340 #define FUNC_CFG_REQ_DB_PAGE_SIZE_4MB 0xaUL 2341 #define FUNC_CFG_REQ_DB_PAGE_SIZE_LAST FUNC_CFG_REQ_DB_PAGE_SIZE_4MB 2342 __le16 physical_slot_number; 2343 __le32 num_ktls_tx_key_ctxs; 2344 __le32 num_ktls_rx_key_ctxs; 2345 __le32 num_quic_tx_key_ctxs; 2346 __le32 num_quic_rx_key_ctxs; 2347 __le32 roce_max_av_per_vf; 2348 __le32 roce_max_cq_per_vf; 2349 __le32 roce_max_mrw_per_vf; 2350 __le32 roce_max_qp_per_vf; 2351 __le32 roce_max_srq_per_vf; 2352 __le32 roce_max_gid_per_vf; 2353 __le16 xid_partition_cfg; 2354 #define FUNC_CFG_REQ_XID_PARTITION_CFG_TX_CK 0x1UL 2355 #define FUNC_CFG_REQ_XID_PARTITION_CFG_RX_CK 0x2UL 2356 __le16 unused_2; 2357 }; 2358 2359 /* hwrm_func_cfg_output (size:128b/16B) */ 2360 struct hwrm_func_cfg_output { 2361 __le16 error_code; 2362 __le16 req_type; 2363 __le16 seq_id; 2364 __le16 resp_len; 2365 u8 unused_0[7]; 2366 u8 valid; 2367 }; 2368 2369 /* hwrm_func_cfg_cmd_err (size:64b/8B) */ 2370 struct hwrm_func_cfg_cmd_err { 2371 u8 code; 2372 #define FUNC_CFG_CMD_ERR_CODE_UNKNOWN 0x0UL 2373 #define FUNC_CFG_CMD_ERR_CODE_PARTITION_MIN_BW_RANGE 0x1UL 2374 #define FUNC_CFG_CMD_ERR_CODE_PARTITION_MIN_MORE_THAN_MAX 0x2UL 2375 #define FUNC_CFG_CMD_ERR_CODE_PARTITION_MIN_BW_UNSUPPORTED 0x3UL 2376 #define FUNC_CFG_CMD_ERR_CODE_PARTITION_BW_PERCENT 0x4UL 2377 #define FUNC_CFG_CMD_ERR_CODE_LAST FUNC_CFG_CMD_ERR_CODE_PARTITION_BW_PERCENT 2378 u8 unused_0[7]; 2379 }; 2380 2381 /* hwrm_func_qstats_input (size:192b/24B) */ 2382 struct hwrm_func_qstats_input { 2383 __le16 req_type; 2384 __le16 cmpl_ring; 2385 __le16 seq_id; 2386 __le16 target_id; 2387 __le64 resp_addr; 2388 __le16 fid; 2389 u8 flags; 2390 #define FUNC_QSTATS_REQ_FLAGS_ROCE_ONLY 0x1UL 2391 #define FUNC_QSTATS_REQ_FLAGS_COUNTER_MASK 0x2UL 2392 #define FUNC_QSTATS_REQ_FLAGS_L2_ONLY 0x4UL 2393 u8 unused_0[5]; 2394 }; 2395 2396 /* hwrm_func_qstats_output (size:1408b/176B) */ 2397 struct hwrm_func_qstats_output { 2398 __le16 error_code; 2399 __le16 req_type; 2400 __le16 seq_id; 2401 __le16 resp_len; 2402 __le64 tx_ucast_pkts; 2403 __le64 tx_mcast_pkts; 2404 __le64 tx_bcast_pkts; 2405 __le64 tx_discard_pkts; 2406 __le64 tx_drop_pkts; 2407 __le64 tx_ucast_bytes; 2408 __le64 tx_mcast_bytes; 2409 __le64 tx_bcast_bytes; 2410 __le64 rx_ucast_pkts; 2411 __le64 rx_mcast_pkts; 2412 __le64 rx_bcast_pkts; 2413 __le64 rx_discard_pkts; 2414 __le64 rx_drop_pkts; 2415 __le64 rx_ucast_bytes; 2416 __le64 rx_mcast_bytes; 2417 __le64 rx_bcast_bytes; 2418 __le64 rx_agg_pkts; 2419 __le64 rx_agg_bytes; 2420 __le64 rx_agg_events; 2421 __le64 rx_agg_aborts; 2422 u8 clear_seq; 2423 u8 unused_0[6]; 2424 u8 valid; 2425 }; 2426 2427 /* hwrm_func_qstats_ext_input (size:256b/32B) */ 2428 struct hwrm_func_qstats_ext_input { 2429 __le16 req_type; 2430 __le16 cmpl_ring; 2431 __le16 seq_id; 2432 __le16 target_id; 2433 __le64 resp_addr; 2434 __le16 fid; 2435 u8 flags; 2436 #define FUNC_QSTATS_EXT_REQ_FLAGS_ROCE_ONLY 0x1UL 2437 #define FUNC_QSTATS_EXT_REQ_FLAGS_COUNTER_MASK 0x2UL 2438 u8 unused_0[1]; 2439 __le32 enables; 2440 #define FUNC_QSTATS_EXT_REQ_ENABLES_SCHQ_ID 0x1UL 2441 __le16 schq_id; 2442 __le16 traffic_class; 2443 u8 unused_1[4]; 2444 }; 2445 2446 /* hwrm_func_qstats_ext_output (size:1536b/192B) */ 2447 struct hwrm_func_qstats_ext_output { 2448 __le16 error_code; 2449 __le16 req_type; 2450 __le16 seq_id; 2451 __le16 resp_len; 2452 __le64 rx_ucast_pkts; 2453 __le64 rx_mcast_pkts; 2454 __le64 rx_bcast_pkts; 2455 __le64 rx_discard_pkts; 2456 __le64 rx_error_pkts; 2457 __le64 rx_ucast_bytes; 2458 __le64 rx_mcast_bytes; 2459 __le64 rx_bcast_bytes; 2460 __le64 tx_ucast_pkts; 2461 __le64 tx_mcast_pkts; 2462 __le64 tx_bcast_pkts; 2463 __le64 tx_error_pkts; 2464 __le64 tx_discard_pkts; 2465 __le64 tx_ucast_bytes; 2466 __le64 tx_mcast_bytes; 2467 __le64 tx_bcast_bytes; 2468 __le64 rx_tpa_eligible_pkt; 2469 __le64 rx_tpa_eligible_bytes; 2470 __le64 rx_tpa_pkt; 2471 __le64 rx_tpa_bytes; 2472 __le64 rx_tpa_errors; 2473 __le64 rx_tpa_events; 2474 u8 unused_0[7]; 2475 u8 valid; 2476 }; 2477 2478 /* hwrm_func_clr_stats_input (size:192b/24B) */ 2479 struct hwrm_func_clr_stats_input { 2480 __le16 req_type; 2481 __le16 cmpl_ring; 2482 __le16 seq_id; 2483 __le16 target_id; 2484 __le64 resp_addr; 2485 __le16 fid; 2486 u8 unused_0[6]; 2487 }; 2488 2489 /* hwrm_func_clr_stats_output (size:128b/16B) */ 2490 struct hwrm_func_clr_stats_output { 2491 __le16 error_code; 2492 __le16 req_type; 2493 __le16 seq_id; 2494 __le16 resp_len; 2495 u8 unused_0[7]; 2496 u8 valid; 2497 }; 2498 2499 /* hwrm_func_vf_resc_free_input (size:192b/24B) */ 2500 struct hwrm_func_vf_resc_free_input { 2501 __le16 req_type; 2502 __le16 cmpl_ring; 2503 __le16 seq_id; 2504 __le16 target_id; 2505 __le64 resp_addr; 2506 __le16 vf_id; 2507 u8 unused_0[6]; 2508 }; 2509 2510 /* hwrm_func_vf_resc_free_output (size:128b/16B) */ 2511 struct hwrm_func_vf_resc_free_output { 2512 __le16 error_code; 2513 __le16 req_type; 2514 __le16 seq_id; 2515 __le16 resp_len; 2516 u8 unused_0[7]; 2517 u8 valid; 2518 }; 2519 2520 /* hwrm_func_drv_rgtr_input (size:896b/112B) */ 2521 struct hwrm_func_drv_rgtr_input { 2522 __le16 req_type; 2523 __le16 cmpl_ring; 2524 __le16 seq_id; 2525 __le16 target_id; 2526 __le64 resp_addr; 2527 __le32 flags; 2528 #define FUNC_DRV_RGTR_REQ_FLAGS_FWD_ALL_MODE 0x1UL 2529 #define FUNC_DRV_RGTR_REQ_FLAGS_FWD_NONE_MODE 0x2UL 2530 #define FUNC_DRV_RGTR_REQ_FLAGS_16BIT_VER_MODE 0x4UL 2531 #define FUNC_DRV_RGTR_REQ_FLAGS_FLOW_HANDLE_64BIT_MODE 0x8UL 2532 #define FUNC_DRV_RGTR_REQ_FLAGS_HOT_RESET_SUPPORT 0x10UL 2533 #define FUNC_DRV_RGTR_REQ_FLAGS_ERROR_RECOVERY_SUPPORT 0x20UL 2534 #define FUNC_DRV_RGTR_REQ_FLAGS_MASTER_SUPPORT 0x40UL 2535 #define FUNC_DRV_RGTR_REQ_FLAGS_FAST_RESET_SUPPORT 0x80UL 2536 #define FUNC_DRV_RGTR_REQ_FLAGS_RSS_STRICT_HASH_TYPE_SUPPORT 0x100UL 2537 #define FUNC_DRV_RGTR_REQ_FLAGS_NPAR_1_2_SUPPORT 0x200UL 2538 #define FUNC_DRV_RGTR_REQ_FLAGS_ASYM_QUEUE_CFG_SUPPORT 0x400UL 2539 #define FUNC_DRV_RGTR_REQ_FLAGS_TF_INGRESS_NIC_FLOW_MODE 0x800UL 2540 #define FUNC_DRV_RGTR_REQ_FLAGS_TF_EGRESS_NIC_FLOW_MODE 0x1000UL 2541 __le32 enables; 2542 #define FUNC_DRV_RGTR_REQ_ENABLES_OS_TYPE 0x1UL 2543 #define FUNC_DRV_RGTR_REQ_ENABLES_VER 0x2UL 2544 #define FUNC_DRV_RGTR_REQ_ENABLES_TIMESTAMP 0x4UL 2545 #define FUNC_DRV_RGTR_REQ_ENABLES_VF_REQ_FWD 0x8UL 2546 #define FUNC_DRV_RGTR_REQ_ENABLES_ASYNC_EVENT_FWD 0x10UL 2547 __le16 os_type; 2548 #define FUNC_DRV_RGTR_REQ_OS_TYPE_UNKNOWN 0x0UL 2549 #define FUNC_DRV_RGTR_REQ_OS_TYPE_OTHER 0x1UL 2550 #define FUNC_DRV_RGTR_REQ_OS_TYPE_MSDOS 0xeUL 2551 #define FUNC_DRV_RGTR_REQ_OS_TYPE_WINDOWS 0x12UL 2552 #define FUNC_DRV_RGTR_REQ_OS_TYPE_SOLARIS 0x1dUL 2553 #define FUNC_DRV_RGTR_REQ_OS_TYPE_LINUX 0x24UL 2554 #define FUNC_DRV_RGTR_REQ_OS_TYPE_FREEBSD 0x2aUL 2555 #define FUNC_DRV_RGTR_REQ_OS_TYPE_ESXI 0x68UL 2556 #define FUNC_DRV_RGTR_REQ_OS_TYPE_WIN864 0x73UL 2557 #define FUNC_DRV_RGTR_REQ_OS_TYPE_WIN2012R2 0x74UL 2558 #define FUNC_DRV_RGTR_REQ_OS_TYPE_UEFI 0x8000UL 2559 #define FUNC_DRV_RGTR_REQ_OS_TYPE_LAST FUNC_DRV_RGTR_REQ_OS_TYPE_UEFI 2560 u8 ver_maj_8b; 2561 u8 ver_min_8b; 2562 u8 ver_upd_8b; 2563 u8 unused_0[3]; 2564 __le32 timestamp; 2565 u8 unused_1[4]; 2566 __le32 vf_req_fwd[8]; 2567 __le32 async_event_fwd[8]; 2568 __le16 ver_maj; 2569 __le16 ver_min; 2570 __le16 ver_upd; 2571 __le16 ver_patch; 2572 }; 2573 2574 /* hwrm_func_drv_rgtr_output (size:128b/16B) */ 2575 struct hwrm_func_drv_rgtr_output { 2576 __le16 error_code; 2577 __le16 req_type; 2578 __le16 seq_id; 2579 __le16 resp_len; 2580 __le32 flags; 2581 #define FUNC_DRV_RGTR_RESP_FLAGS_IF_CHANGE_SUPPORTED 0x1UL 2582 u8 unused_0[3]; 2583 u8 valid; 2584 }; 2585 2586 /* hwrm_func_drv_unrgtr_input (size:192b/24B) */ 2587 struct hwrm_func_drv_unrgtr_input { 2588 __le16 req_type; 2589 __le16 cmpl_ring; 2590 __le16 seq_id; 2591 __le16 target_id; 2592 __le64 resp_addr; 2593 __le32 flags; 2594 #define FUNC_DRV_UNRGTR_REQ_FLAGS_PREPARE_FOR_SHUTDOWN 0x1UL 2595 u8 unused_0[4]; 2596 }; 2597 2598 /* hwrm_func_drv_unrgtr_output (size:128b/16B) */ 2599 struct hwrm_func_drv_unrgtr_output { 2600 __le16 error_code; 2601 __le16 req_type; 2602 __le16 seq_id; 2603 __le16 resp_len; 2604 u8 unused_0[7]; 2605 u8 valid; 2606 }; 2607 2608 /* hwrm_func_buf_rgtr_input (size:1024b/128B) */ 2609 struct hwrm_func_buf_rgtr_input { 2610 __le16 req_type; 2611 __le16 cmpl_ring; 2612 __le16 seq_id; 2613 __le16 target_id; 2614 __le64 resp_addr; 2615 __le32 enables; 2616 #define FUNC_BUF_RGTR_REQ_ENABLES_VF_ID 0x1UL 2617 #define FUNC_BUF_RGTR_REQ_ENABLES_ERR_BUF_ADDR 0x2UL 2618 __le16 vf_id; 2619 __le16 req_buf_num_pages; 2620 __le16 req_buf_page_size; 2621 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_16B 0x4UL 2622 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_4K 0xcUL 2623 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_8K 0xdUL 2624 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_64K 0x10UL 2625 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_2M 0x15UL 2626 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_4M 0x16UL 2627 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_1G 0x1eUL 2628 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_LAST FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_1G 2629 __le16 req_buf_len; 2630 __le16 resp_buf_len; 2631 u8 unused_0[2]; 2632 __le64 req_buf_page_addr0; 2633 __le64 req_buf_page_addr1; 2634 __le64 req_buf_page_addr2; 2635 __le64 req_buf_page_addr3; 2636 __le64 req_buf_page_addr4; 2637 __le64 req_buf_page_addr5; 2638 __le64 req_buf_page_addr6; 2639 __le64 req_buf_page_addr7; 2640 __le64 req_buf_page_addr8; 2641 __le64 req_buf_page_addr9; 2642 __le64 error_buf_addr; 2643 __le64 resp_buf_addr; 2644 }; 2645 2646 /* hwrm_func_buf_rgtr_output (size:128b/16B) */ 2647 struct hwrm_func_buf_rgtr_output { 2648 __le16 error_code; 2649 __le16 req_type; 2650 __le16 seq_id; 2651 __le16 resp_len; 2652 u8 unused_0[7]; 2653 u8 valid; 2654 }; 2655 2656 /* hwrm_func_drv_qver_input (size:192b/24B) */ 2657 struct hwrm_func_drv_qver_input { 2658 __le16 req_type; 2659 __le16 cmpl_ring; 2660 __le16 seq_id; 2661 __le16 target_id; 2662 __le64 resp_addr; 2663 __le32 reserved; 2664 __le16 fid; 2665 u8 driver_type; 2666 #define FUNC_DRV_QVER_REQ_DRIVER_TYPE_L2 0x0UL 2667 #define FUNC_DRV_QVER_REQ_DRIVER_TYPE_ROCE 0x1UL 2668 #define FUNC_DRV_QVER_REQ_DRIVER_TYPE_LAST FUNC_DRV_QVER_REQ_DRIVER_TYPE_ROCE 2669 u8 unused_0; 2670 }; 2671 2672 /* hwrm_func_drv_qver_output (size:256b/32B) */ 2673 struct hwrm_func_drv_qver_output { 2674 __le16 error_code; 2675 __le16 req_type; 2676 __le16 seq_id; 2677 __le16 resp_len; 2678 __le16 os_type; 2679 #define FUNC_DRV_QVER_RESP_OS_TYPE_UNKNOWN 0x0UL 2680 #define FUNC_DRV_QVER_RESP_OS_TYPE_OTHER 0x1UL 2681 #define FUNC_DRV_QVER_RESP_OS_TYPE_MSDOS 0xeUL 2682 #define FUNC_DRV_QVER_RESP_OS_TYPE_WINDOWS 0x12UL 2683 #define FUNC_DRV_QVER_RESP_OS_TYPE_SOLARIS 0x1dUL 2684 #define FUNC_DRV_QVER_RESP_OS_TYPE_LINUX 0x24UL 2685 #define FUNC_DRV_QVER_RESP_OS_TYPE_FREEBSD 0x2aUL 2686 #define FUNC_DRV_QVER_RESP_OS_TYPE_ESXI 0x68UL 2687 #define FUNC_DRV_QVER_RESP_OS_TYPE_WIN864 0x73UL 2688 #define FUNC_DRV_QVER_RESP_OS_TYPE_WIN2012R2 0x74UL 2689 #define FUNC_DRV_QVER_RESP_OS_TYPE_UEFI 0x8000UL 2690 #define FUNC_DRV_QVER_RESP_OS_TYPE_LAST FUNC_DRV_QVER_RESP_OS_TYPE_UEFI 2691 u8 ver_maj_8b; 2692 u8 ver_min_8b; 2693 u8 ver_upd_8b; 2694 u8 unused_0[3]; 2695 __le16 ver_maj; 2696 __le16 ver_min; 2697 __le16 ver_upd; 2698 __le16 ver_patch; 2699 u8 unused_1[7]; 2700 u8 valid; 2701 }; 2702 2703 /* hwrm_func_resource_qcaps_input (size:192b/24B) */ 2704 struct hwrm_func_resource_qcaps_input { 2705 __le16 req_type; 2706 __le16 cmpl_ring; 2707 __le16 seq_id; 2708 __le16 target_id; 2709 __le64 resp_addr; 2710 __le16 fid; 2711 u8 unused_0[6]; 2712 }; 2713 2714 /* hwrm_func_resource_qcaps_output (size:704b/88B) */ 2715 struct hwrm_func_resource_qcaps_output { 2716 __le16 error_code; 2717 __le16 req_type; 2718 __le16 seq_id; 2719 __le16 resp_len; 2720 __le16 max_vfs; 2721 __le16 max_msix; 2722 __le16 vf_reservation_strategy; 2723 #define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MAXIMAL 0x0UL 2724 #define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MINIMAL 0x1UL 2725 #define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MINIMAL_STATIC 0x2UL 2726 #define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_LAST FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MINIMAL_STATIC 2727 __le16 min_rsscos_ctx; 2728 __le16 max_rsscos_ctx; 2729 __le16 min_cmpl_rings; 2730 __le16 max_cmpl_rings; 2731 __le16 min_tx_rings; 2732 __le16 max_tx_rings; 2733 __le16 min_rx_rings; 2734 __le16 max_rx_rings; 2735 __le16 min_l2_ctxs; 2736 __le16 max_l2_ctxs; 2737 __le16 min_vnics; 2738 __le16 max_vnics; 2739 __le16 min_stat_ctx; 2740 __le16 max_stat_ctx; 2741 __le16 min_hw_ring_grps; 2742 __le16 max_hw_ring_grps; 2743 __le16 max_tx_scheduler_inputs; 2744 __le16 flags; 2745 #define FUNC_RESOURCE_QCAPS_RESP_FLAGS_MIN_GUARANTEED 0x1UL 2746 __le16 min_msix; 2747 __le32 min_ktls_tx_key_ctxs; 2748 __le32 max_ktls_tx_key_ctxs; 2749 __le32 min_ktls_rx_key_ctxs; 2750 __le32 max_ktls_rx_key_ctxs; 2751 __le32 min_quic_tx_key_ctxs; 2752 __le32 max_quic_tx_key_ctxs; 2753 __le32 min_quic_rx_key_ctxs; 2754 __le32 max_quic_rx_key_ctxs; 2755 u8 unused_0[3]; 2756 u8 valid; 2757 }; 2758 2759 /* hwrm_func_vf_resource_cfg_input (size:704b/88B) */ 2760 struct hwrm_func_vf_resource_cfg_input { 2761 __le16 req_type; 2762 __le16 cmpl_ring; 2763 __le16 seq_id; 2764 __le16 target_id; 2765 __le64 resp_addr; 2766 __le16 vf_id; 2767 __le16 max_msix; 2768 __le16 min_rsscos_ctx; 2769 __le16 max_rsscos_ctx; 2770 __le16 min_cmpl_rings; 2771 __le16 max_cmpl_rings; 2772 __le16 min_tx_rings; 2773 __le16 max_tx_rings; 2774 __le16 min_rx_rings; 2775 __le16 max_rx_rings; 2776 __le16 min_l2_ctxs; 2777 __le16 max_l2_ctxs; 2778 __le16 min_vnics; 2779 __le16 max_vnics; 2780 __le16 min_stat_ctx; 2781 __le16 max_stat_ctx; 2782 __le16 min_hw_ring_grps; 2783 __le16 max_hw_ring_grps; 2784 __le16 flags; 2785 #define FUNC_VF_RESOURCE_CFG_REQ_FLAGS_MIN_GUARANTEED 0x1UL 2786 __le16 min_msix; 2787 __le32 min_ktls_tx_key_ctxs; 2788 __le32 max_ktls_tx_key_ctxs; 2789 __le32 min_ktls_rx_key_ctxs; 2790 __le32 max_ktls_rx_key_ctxs; 2791 __le32 min_quic_tx_key_ctxs; 2792 __le32 max_quic_tx_key_ctxs; 2793 __le32 min_quic_rx_key_ctxs; 2794 __le32 max_quic_rx_key_ctxs; 2795 }; 2796 2797 /* hwrm_func_vf_resource_cfg_output (size:384b/48B) */ 2798 struct hwrm_func_vf_resource_cfg_output { 2799 __le16 error_code; 2800 __le16 req_type; 2801 __le16 seq_id; 2802 __le16 resp_len; 2803 __le16 reserved_rsscos_ctx; 2804 __le16 reserved_cmpl_rings; 2805 __le16 reserved_tx_rings; 2806 __le16 reserved_rx_rings; 2807 __le16 reserved_l2_ctxs; 2808 __le16 reserved_vnics; 2809 __le16 reserved_stat_ctx; 2810 __le16 reserved_hw_ring_grps; 2811 __le32 reserved_ktls_tx_key_ctxs; 2812 __le32 reserved_ktls_rx_key_ctxs; 2813 __le32 reserved_quic_tx_key_ctxs; 2814 __le32 reserved_quic_rx_key_ctxs; 2815 u8 unused_0[7]; 2816 u8 valid; 2817 }; 2818 2819 /* hwrm_func_backing_store_qcaps_input (size:128b/16B) */ 2820 struct hwrm_func_backing_store_qcaps_input { 2821 __le16 req_type; 2822 __le16 cmpl_ring; 2823 __le16 seq_id; 2824 __le16 target_id; 2825 __le64 resp_addr; 2826 }; 2827 2828 /* hwrm_func_backing_store_qcaps_output (size:832b/104B) */ 2829 struct hwrm_func_backing_store_qcaps_output { 2830 __le16 error_code; 2831 __le16 req_type; 2832 __le16 seq_id; 2833 __le16 resp_len; 2834 __le32 qp_max_entries; 2835 __le16 qp_min_qp1_entries; 2836 __le16 qp_max_l2_entries; 2837 __le16 qp_entry_size; 2838 __le16 srq_max_l2_entries; 2839 __le32 srq_max_entries; 2840 __le16 srq_entry_size; 2841 __le16 cq_max_l2_entries; 2842 __le32 cq_max_entries; 2843 __le16 cq_entry_size; 2844 __le16 vnic_max_vnic_entries; 2845 __le16 vnic_max_ring_table_entries; 2846 __le16 vnic_entry_size; 2847 __le32 stat_max_entries; 2848 __le16 stat_entry_size; 2849 __le16 tqm_entry_size; 2850 __le32 tqm_min_entries_per_ring; 2851 __le32 tqm_max_entries_per_ring; 2852 __le32 mrav_max_entries; 2853 __le16 mrav_entry_size; 2854 __le16 tim_entry_size; 2855 __le32 tim_max_entries; 2856 __le16 mrav_num_entries_units; 2857 u8 tqm_entries_multiple; 2858 u8 ctx_kind_initializer; 2859 __le16 ctx_init_mask; 2860 #define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_QP 0x1UL 2861 #define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_SRQ 0x2UL 2862 #define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_CQ 0x4UL 2863 #define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_VNIC 0x8UL 2864 #define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_STAT 0x10UL 2865 #define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_MRAV 0x20UL 2866 #define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_TKC 0x40UL 2867 #define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_RKC 0x80UL 2868 u8 qp_init_offset; 2869 u8 srq_init_offset; 2870 u8 cq_init_offset; 2871 u8 vnic_init_offset; 2872 u8 tqm_fp_rings_count; 2873 u8 stat_init_offset; 2874 u8 mrav_init_offset; 2875 u8 tqm_fp_rings_count_ext; 2876 u8 tkc_init_offset; 2877 u8 rkc_init_offset; 2878 __le16 tkc_entry_size; 2879 __le16 rkc_entry_size; 2880 __le32 tkc_max_entries; 2881 __le32 rkc_max_entries; 2882 __le16 fast_qpmd_qp_num_entries; 2883 u8 rsvd1[5]; 2884 u8 valid; 2885 }; 2886 2887 /* tqm_fp_ring_cfg (size:128b/16B) */ 2888 struct tqm_fp_ring_cfg { 2889 u8 tqm_ring_pg_size_tqm_ring_lvl; 2890 #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_LVL_MASK 0xfUL 2891 #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_LVL_SFT 0 2892 #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_LVL_LVL_0 0x0UL 2893 #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_LVL_LVL_1 0x1UL 2894 #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_LVL_LVL_2 0x2UL 2895 #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_LVL_LAST TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_LVL_LVL_2 2896 #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_MASK 0xf0UL 2897 #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_SFT 4 2898 #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_PG_4K (0x0UL << 4) 2899 #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_PG_8K (0x1UL << 4) 2900 #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_PG_64K (0x2UL << 4) 2901 #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_PG_2M (0x3UL << 4) 2902 #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_PG_8M (0x4UL << 4) 2903 #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_PG_1G (0x5UL << 4) 2904 #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_LAST TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_PG_1G 2905 u8 unused[3]; 2906 __le32 tqm_ring_num_entries; 2907 __le64 tqm_ring_page_dir; 2908 }; 2909 2910 /* hwrm_func_backing_store_cfg_input (size:2688b/336B) */ 2911 struct hwrm_func_backing_store_cfg_input { 2912 __le16 req_type; 2913 __le16 cmpl_ring; 2914 __le16 seq_id; 2915 __le16 target_id; 2916 __le64 resp_addr; 2917 __le32 flags; 2918 #define FUNC_BACKING_STORE_CFG_REQ_FLAGS_PREBOOT_MODE 0x1UL 2919 #define FUNC_BACKING_STORE_CFG_REQ_FLAGS_MRAV_RESERVATION_SPLIT 0x2UL 2920 __le32 enables; 2921 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_QP 0x1UL 2922 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_SRQ 0x2UL 2923 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_CQ 0x4UL 2924 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_VNIC 0x8UL 2925 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_STAT 0x10UL 2926 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_SP 0x20UL 2927 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING0 0x40UL 2928 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING1 0x80UL 2929 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING2 0x100UL 2930 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING3 0x200UL 2931 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING4 0x400UL 2932 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING5 0x800UL 2933 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING6 0x1000UL 2934 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING7 0x2000UL 2935 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_MRAV 0x4000UL 2936 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TIM 0x8000UL 2937 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING8 0x10000UL 2938 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING9 0x20000UL 2939 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING10 0x40000UL 2940 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TKC 0x80000UL 2941 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_RKC 0x100000UL 2942 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_QP_FAST_QPMD 0x200000UL 2943 u8 qpc_pg_size_qpc_lvl; 2944 #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_MASK 0xfUL 2945 #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_SFT 0 2946 #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_0 0x0UL 2947 #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_1 0x1UL 2948 #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_2 0x2UL 2949 #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_2 2950 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_MASK 0xf0UL 2951 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_SFT 4 2952 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_4K (0x0UL << 4) 2953 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_8K (0x1UL << 4) 2954 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_64K (0x2UL << 4) 2955 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_2M (0x3UL << 4) 2956 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_8M (0x4UL << 4) 2957 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_1G (0x5UL << 4) 2958 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_1G 2959 u8 srq_pg_size_srq_lvl; 2960 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_MASK 0xfUL 2961 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_SFT 0 2962 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_0 0x0UL 2963 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_1 0x1UL 2964 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_2 0x2UL 2965 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_2 2966 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_MASK 0xf0UL 2967 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_SFT 4 2968 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_4K (0x0UL << 4) 2969 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_8K (0x1UL << 4) 2970 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_64K (0x2UL << 4) 2971 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_2M (0x3UL << 4) 2972 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_8M (0x4UL << 4) 2973 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_1G (0x5UL << 4) 2974 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_1G 2975 u8 cq_pg_size_cq_lvl; 2976 #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_MASK 0xfUL 2977 #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_SFT 0 2978 #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_0 0x0UL 2979 #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_1 0x1UL 2980 #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_2 0x2UL 2981 #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_2 2982 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_MASK 0xf0UL 2983 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_SFT 4 2984 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_4K (0x0UL << 4) 2985 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_8K (0x1UL << 4) 2986 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_64K (0x2UL << 4) 2987 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_2M (0x3UL << 4) 2988 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_8M (0x4UL << 4) 2989 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_1G (0x5UL << 4) 2990 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_1G 2991 u8 vnic_pg_size_vnic_lvl; 2992 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_MASK 0xfUL 2993 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_SFT 0 2994 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_0 0x0UL 2995 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_1 0x1UL 2996 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_2 0x2UL 2997 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_2 2998 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_MASK 0xf0UL 2999 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_SFT 4 3000 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_4K (0x0UL << 4) 3001 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_8K (0x1UL << 4) 3002 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_64K (0x2UL << 4) 3003 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_2M (0x3UL << 4) 3004 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_8M (0x4UL << 4) 3005 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_1G (0x5UL << 4) 3006 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_1G 3007 u8 stat_pg_size_stat_lvl; 3008 #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_MASK 0xfUL 3009 #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_SFT 0 3010 #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_0 0x0UL 3011 #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_1 0x1UL 3012 #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_2 0x2UL 3013 #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_2 3014 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_MASK 0xf0UL 3015 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_SFT 4 3016 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_4K (0x0UL << 4) 3017 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_8K (0x1UL << 4) 3018 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_64K (0x2UL << 4) 3019 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_2M (0x3UL << 4) 3020 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_8M (0x4UL << 4) 3021 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_1G (0x5UL << 4) 3022 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_1G 3023 u8 tqm_sp_pg_size_tqm_sp_lvl; 3024 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_MASK 0xfUL 3025 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_SFT 0 3026 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_0 0x0UL 3027 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_1 0x1UL 3028 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_2 0x2UL 3029 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_2 3030 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_MASK 0xf0UL 3031 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_SFT 4 3032 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_4K (0x0UL << 4) 3033 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_8K (0x1UL << 4) 3034 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_64K (0x2UL << 4) 3035 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_2M (0x3UL << 4) 3036 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_8M (0x4UL << 4) 3037 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_1G (0x5UL << 4) 3038 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_1G 3039 u8 tqm_ring0_pg_size_tqm_ring0_lvl; 3040 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_MASK 0xfUL 3041 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_SFT 0 3042 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_0 0x0UL 3043 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_1 0x1UL 3044 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_2 0x2UL 3045 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_2 3046 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_MASK 0xf0UL 3047 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_SFT 4 3048 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_4K (0x0UL << 4) 3049 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_8K (0x1UL << 4) 3050 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_64K (0x2UL << 4) 3051 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_2M (0x3UL << 4) 3052 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_8M (0x4UL << 4) 3053 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_1G (0x5UL << 4) 3054 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_1G 3055 u8 tqm_ring1_pg_size_tqm_ring1_lvl; 3056 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_MASK 0xfUL 3057 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_SFT 0 3058 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_0 0x0UL 3059 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_1 0x1UL 3060 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_2 0x2UL 3061 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_2 3062 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_MASK 0xf0UL 3063 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_SFT 4 3064 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_4K (0x0UL << 4) 3065 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_8K (0x1UL << 4) 3066 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_64K (0x2UL << 4) 3067 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_2M (0x3UL << 4) 3068 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_8M (0x4UL << 4) 3069 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_1G (0x5UL << 4) 3070 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_1G 3071 u8 tqm_ring2_pg_size_tqm_ring2_lvl; 3072 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_MASK 0xfUL 3073 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_SFT 0 3074 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_0 0x0UL 3075 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_1 0x1UL 3076 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_2 0x2UL 3077 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_2 3078 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_MASK 0xf0UL 3079 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_SFT 4 3080 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_4K (0x0UL << 4) 3081 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_8K (0x1UL << 4) 3082 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_64K (0x2UL << 4) 3083 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_2M (0x3UL << 4) 3084 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_8M (0x4UL << 4) 3085 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_1G (0x5UL << 4) 3086 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_1G 3087 u8 tqm_ring3_pg_size_tqm_ring3_lvl; 3088 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_MASK 0xfUL 3089 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_SFT 0 3090 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_0 0x0UL 3091 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_1 0x1UL 3092 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_2 0x2UL 3093 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_2 3094 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_MASK 0xf0UL 3095 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_SFT 4 3096 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_4K (0x0UL << 4) 3097 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_8K (0x1UL << 4) 3098 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_64K (0x2UL << 4) 3099 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_2M (0x3UL << 4) 3100 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_8M (0x4UL << 4) 3101 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_1G (0x5UL << 4) 3102 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_1G 3103 u8 tqm_ring4_pg_size_tqm_ring4_lvl; 3104 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_MASK 0xfUL 3105 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_SFT 0 3106 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_0 0x0UL 3107 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_1 0x1UL 3108 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_2 0x2UL 3109 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_2 3110 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_MASK 0xf0UL 3111 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_SFT 4 3112 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_4K (0x0UL << 4) 3113 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_8K (0x1UL << 4) 3114 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_64K (0x2UL << 4) 3115 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_2M (0x3UL << 4) 3116 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_8M (0x4UL << 4) 3117 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_1G (0x5UL << 4) 3118 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_1G 3119 u8 tqm_ring5_pg_size_tqm_ring5_lvl; 3120 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_MASK 0xfUL 3121 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_SFT 0 3122 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_0 0x0UL 3123 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_1 0x1UL 3124 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_2 0x2UL 3125 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_2 3126 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_MASK 0xf0UL 3127 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_SFT 4 3128 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_4K (0x0UL << 4) 3129 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_8K (0x1UL << 4) 3130 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_64K (0x2UL << 4) 3131 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_2M (0x3UL << 4) 3132 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_8M (0x4UL << 4) 3133 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_1G (0x5UL << 4) 3134 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_1G 3135 u8 tqm_ring6_pg_size_tqm_ring6_lvl; 3136 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_MASK 0xfUL 3137 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_SFT 0 3138 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_0 0x0UL 3139 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_1 0x1UL 3140 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_2 0x2UL 3141 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_2 3142 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_MASK 0xf0UL 3143 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_SFT 4 3144 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_4K (0x0UL << 4) 3145 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_8K (0x1UL << 4) 3146 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_64K (0x2UL << 4) 3147 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_2M (0x3UL << 4) 3148 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_8M (0x4UL << 4) 3149 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_1G (0x5UL << 4) 3150 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_1G 3151 u8 tqm_ring7_pg_size_tqm_ring7_lvl; 3152 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_MASK 0xfUL 3153 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_SFT 0 3154 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_0 0x0UL 3155 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_1 0x1UL 3156 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_2 0x2UL 3157 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_2 3158 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_MASK 0xf0UL 3159 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_SFT 4 3160 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_4K (0x0UL << 4) 3161 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_8K (0x1UL << 4) 3162 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_64K (0x2UL << 4) 3163 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_2M (0x3UL << 4) 3164 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_8M (0x4UL << 4) 3165 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_1G (0x5UL << 4) 3166 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_1G 3167 u8 mrav_pg_size_mrav_lvl; 3168 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_MASK 0xfUL 3169 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_SFT 0 3170 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_0 0x0UL 3171 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_1 0x1UL 3172 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_2 0x2UL 3173 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_2 3174 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_MASK 0xf0UL 3175 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_SFT 4 3176 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_4K (0x0UL << 4) 3177 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_8K (0x1UL << 4) 3178 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_64K (0x2UL << 4) 3179 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_2M (0x3UL << 4) 3180 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_8M (0x4UL << 4) 3181 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_1G (0x5UL << 4) 3182 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_1G 3183 u8 tim_pg_size_tim_lvl; 3184 #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_MASK 0xfUL 3185 #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_SFT 0 3186 #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_0 0x0UL 3187 #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_1 0x1UL 3188 #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_2 0x2UL 3189 #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_2 3190 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_MASK 0xf0UL 3191 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_SFT 4 3192 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_4K (0x0UL << 4) 3193 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_8K (0x1UL << 4) 3194 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_64K (0x2UL << 4) 3195 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_2M (0x3UL << 4) 3196 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_8M (0x4UL << 4) 3197 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_1G (0x5UL << 4) 3198 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_1G 3199 __le64 qpc_page_dir; 3200 __le64 srq_page_dir; 3201 __le64 cq_page_dir; 3202 __le64 vnic_page_dir; 3203 __le64 stat_page_dir; 3204 __le64 tqm_sp_page_dir; 3205 __le64 tqm_ring0_page_dir; 3206 __le64 tqm_ring1_page_dir; 3207 __le64 tqm_ring2_page_dir; 3208 __le64 tqm_ring3_page_dir; 3209 __le64 tqm_ring4_page_dir; 3210 __le64 tqm_ring5_page_dir; 3211 __le64 tqm_ring6_page_dir; 3212 __le64 tqm_ring7_page_dir; 3213 __le64 mrav_page_dir; 3214 __le64 tim_page_dir; 3215 __le32 qp_num_entries; 3216 __le32 srq_num_entries; 3217 __le32 cq_num_entries; 3218 __le32 stat_num_entries; 3219 __le32 tqm_sp_num_entries; 3220 __le32 tqm_ring0_num_entries; 3221 __le32 tqm_ring1_num_entries; 3222 __le32 tqm_ring2_num_entries; 3223 __le32 tqm_ring3_num_entries; 3224 __le32 tqm_ring4_num_entries; 3225 __le32 tqm_ring5_num_entries; 3226 __le32 tqm_ring6_num_entries; 3227 __le32 tqm_ring7_num_entries; 3228 __le32 mrav_num_entries; 3229 __le32 tim_num_entries; 3230 __le16 qp_num_qp1_entries; 3231 __le16 qp_num_l2_entries; 3232 __le16 qp_entry_size; 3233 __le16 srq_num_l2_entries; 3234 __le16 srq_entry_size; 3235 __le16 cq_num_l2_entries; 3236 __le16 cq_entry_size; 3237 __le16 vnic_num_vnic_entries; 3238 __le16 vnic_num_ring_table_entries; 3239 __le16 vnic_entry_size; 3240 __le16 stat_entry_size; 3241 __le16 tqm_entry_size; 3242 __le16 mrav_entry_size; 3243 __le16 tim_entry_size; 3244 u8 tqm_ring8_pg_size_tqm_ring_lvl; 3245 #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_LVL_MASK 0xfUL 3246 #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_LVL_SFT 0 3247 #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_LVL_LVL_0 0x0UL 3248 #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_LVL_LVL_1 0x1UL 3249 #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_LVL_LVL_2 0x2UL 3250 #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_LVL_LVL_2 3251 #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_MASK 0xf0UL 3252 #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_SFT 4 3253 #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_PG_4K (0x0UL << 4) 3254 #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_PG_8K (0x1UL << 4) 3255 #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_PG_64K (0x2UL << 4) 3256 #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_PG_2M (0x3UL << 4) 3257 #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_PG_8M (0x4UL << 4) 3258 #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_PG_1G (0x5UL << 4) 3259 #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_PG_1G 3260 u8 ring8_unused[3]; 3261 __le32 tqm_ring8_num_entries; 3262 __le64 tqm_ring8_page_dir; 3263 u8 tqm_ring9_pg_size_tqm_ring_lvl; 3264 #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_LVL_MASK 0xfUL 3265 #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_LVL_SFT 0 3266 #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_LVL_LVL_0 0x0UL 3267 #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_LVL_LVL_1 0x1UL 3268 #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_LVL_LVL_2 0x2UL 3269 #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_LVL_LVL_2 3270 #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_MASK 0xf0UL 3271 #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_SFT 4 3272 #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_PG_4K (0x0UL << 4) 3273 #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_PG_8K (0x1UL << 4) 3274 #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_PG_64K (0x2UL << 4) 3275 #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_PG_2M (0x3UL << 4) 3276 #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_PG_8M (0x4UL << 4) 3277 #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_PG_1G (0x5UL << 4) 3278 #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_PG_1G 3279 u8 ring9_unused[3]; 3280 __le32 tqm_ring9_num_entries; 3281 __le64 tqm_ring9_page_dir; 3282 u8 tqm_ring10_pg_size_tqm_ring_lvl; 3283 #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_LVL_MASK 0xfUL 3284 #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_LVL_SFT 0 3285 #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_LVL_LVL_0 0x0UL 3286 #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_LVL_LVL_1 0x1UL 3287 #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_LVL_LVL_2 0x2UL 3288 #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_LVL_LVL_2 3289 #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_MASK 0xf0UL 3290 #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_SFT 4 3291 #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_PG_4K (0x0UL << 4) 3292 #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_PG_8K (0x1UL << 4) 3293 #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_PG_64K (0x2UL << 4) 3294 #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_PG_2M (0x3UL << 4) 3295 #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_PG_8M (0x4UL << 4) 3296 #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_PG_1G (0x5UL << 4) 3297 #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_PG_1G 3298 u8 ring10_unused[3]; 3299 __le32 tqm_ring10_num_entries; 3300 __le64 tqm_ring10_page_dir; 3301 __le32 tkc_num_entries; 3302 __le32 rkc_num_entries; 3303 __le64 tkc_page_dir; 3304 __le64 rkc_page_dir; 3305 __le16 tkc_entry_size; 3306 __le16 rkc_entry_size; 3307 u8 tkc_pg_size_tkc_lvl; 3308 #define FUNC_BACKING_STORE_CFG_REQ_TKC_LVL_MASK 0xfUL 3309 #define FUNC_BACKING_STORE_CFG_REQ_TKC_LVL_SFT 0 3310 #define FUNC_BACKING_STORE_CFG_REQ_TKC_LVL_LVL_0 0x0UL 3311 #define FUNC_BACKING_STORE_CFG_REQ_TKC_LVL_LVL_1 0x1UL 3312 #define FUNC_BACKING_STORE_CFG_REQ_TKC_LVL_LVL_2 0x2UL 3313 #define FUNC_BACKING_STORE_CFG_REQ_TKC_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TKC_LVL_LVL_2 3314 #define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_MASK 0xf0UL 3315 #define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_SFT 4 3316 #define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_PG_4K (0x0UL << 4) 3317 #define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_PG_8K (0x1UL << 4) 3318 #define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_PG_64K (0x2UL << 4) 3319 #define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_PG_2M (0x3UL << 4) 3320 #define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_PG_8M (0x4UL << 4) 3321 #define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_PG_1G (0x5UL << 4) 3322 #define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_PG_1G 3323 u8 rkc_pg_size_rkc_lvl; 3324 #define FUNC_BACKING_STORE_CFG_REQ_RKC_LVL_MASK 0xfUL 3325 #define FUNC_BACKING_STORE_CFG_REQ_RKC_LVL_SFT 0 3326 #define FUNC_BACKING_STORE_CFG_REQ_RKC_LVL_LVL_0 0x0UL 3327 #define FUNC_BACKING_STORE_CFG_REQ_RKC_LVL_LVL_1 0x1UL 3328 #define FUNC_BACKING_STORE_CFG_REQ_RKC_LVL_LVL_2 0x2UL 3329 #define FUNC_BACKING_STORE_CFG_REQ_RKC_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_RKC_LVL_LVL_2 3330 #define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_MASK 0xf0UL 3331 #define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_SFT 4 3332 #define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_PG_4K (0x0UL << 4) 3333 #define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_PG_8K (0x1UL << 4) 3334 #define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_PG_64K (0x2UL << 4) 3335 #define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_PG_2M (0x3UL << 4) 3336 #define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_PG_8M (0x4UL << 4) 3337 #define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_PG_1G (0x5UL << 4) 3338 #define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_PG_1G 3339 __le16 qp_num_fast_qpmd_entries; 3340 }; 3341 3342 /* hwrm_func_backing_store_cfg_output (size:128b/16B) */ 3343 struct hwrm_func_backing_store_cfg_output { 3344 __le16 error_code; 3345 __le16 req_type; 3346 __le16 seq_id; 3347 __le16 resp_len; 3348 u8 unused_0[7]; 3349 u8 valid; 3350 }; 3351 3352 /* hwrm_error_recovery_qcfg_input (size:192b/24B) */ 3353 struct hwrm_error_recovery_qcfg_input { 3354 __le16 req_type; 3355 __le16 cmpl_ring; 3356 __le16 seq_id; 3357 __le16 target_id; 3358 __le64 resp_addr; 3359 u8 unused_0[8]; 3360 }; 3361 3362 /* hwrm_error_recovery_qcfg_output (size:1664b/208B) */ 3363 struct hwrm_error_recovery_qcfg_output { 3364 __le16 error_code; 3365 __le16 req_type; 3366 __le16 seq_id; 3367 __le16 resp_len; 3368 __le32 flags; 3369 #define ERROR_RECOVERY_QCFG_RESP_FLAGS_HOST 0x1UL 3370 #define ERROR_RECOVERY_QCFG_RESP_FLAGS_CO_CPU 0x2UL 3371 __le32 driver_polling_freq; 3372 __le32 master_func_wait_period; 3373 __le32 normal_func_wait_period; 3374 __le32 master_func_wait_period_after_reset; 3375 __le32 max_bailout_time_after_reset; 3376 __le32 fw_health_status_reg; 3377 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_MASK 0x3UL 3378 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_SFT 0 3379 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_PCIE_CFG 0x0UL 3380 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_GRC 0x1UL 3381 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_BAR0 0x2UL 3382 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_BAR1 0x3UL 3383 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_LAST ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_BAR1 3384 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_MASK 0xfffffffcUL 3385 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SFT 2 3386 __le32 fw_heartbeat_reg; 3387 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_MASK 0x3UL 3388 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_SFT 0 3389 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_PCIE_CFG 0x0UL 3390 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_GRC 0x1UL 3391 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_BAR0 0x2UL 3392 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_BAR1 0x3UL 3393 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_LAST ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_BAR1 3394 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_MASK 0xfffffffcUL 3395 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SFT 2 3396 __le32 fw_reset_cnt_reg; 3397 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_MASK 0x3UL 3398 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_SFT 0 3399 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_PCIE_CFG 0x0UL 3400 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_GRC 0x1UL 3401 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_BAR0 0x2UL 3402 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_BAR1 0x3UL 3403 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_LAST ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_BAR1 3404 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_MASK 0xfffffffcUL 3405 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SFT 2 3406 __le32 reset_inprogress_reg; 3407 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_MASK 0x3UL 3408 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_SFT 0 3409 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_PCIE_CFG 0x0UL 3410 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_GRC 0x1UL 3411 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_BAR0 0x2UL 3412 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_BAR1 0x3UL 3413 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_LAST ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_BAR1 3414 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_MASK 0xfffffffcUL 3415 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SFT 2 3416 __le32 reset_inprogress_reg_mask; 3417 u8 unused_0[3]; 3418 u8 reg_array_cnt; 3419 __le32 reset_reg[16]; 3420 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_MASK 0x3UL 3421 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_SFT 0 3422 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_PCIE_CFG 0x0UL 3423 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_GRC 0x1UL 3424 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_BAR0 0x2UL 3425 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_BAR1 0x3UL 3426 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_LAST ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_BAR1 3427 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_MASK 0xfffffffcUL 3428 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SFT 2 3429 __le32 reset_reg_val[16]; 3430 u8 delay_after_reset[16]; 3431 __le32 err_recovery_cnt_reg; 3432 #define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_MASK 0x3UL 3433 #define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_SFT 0 3434 #define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_PCIE_CFG 0x0UL 3435 #define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_GRC 0x1UL 3436 #define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_BAR0 0x2UL 3437 #define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_BAR1 0x3UL 3438 #define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_LAST ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_BAR1 3439 #define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_MASK 0xfffffffcUL 3440 #define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SFT 2 3441 u8 unused_1[3]; 3442 u8 valid; 3443 }; 3444 3445 /* hwrm_func_echo_response_input (size:192b/24B) */ 3446 struct hwrm_func_echo_response_input { 3447 __le16 req_type; 3448 __le16 cmpl_ring; 3449 __le16 seq_id; 3450 __le16 target_id; 3451 __le64 resp_addr; 3452 __le32 event_data1; 3453 __le32 event_data2; 3454 }; 3455 3456 /* hwrm_func_echo_response_output (size:128b/16B) */ 3457 struct hwrm_func_echo_response_output { 3458 __le16 error_code; 3459 __le16 req_type; 3460 __le16 seq_id; 3461 __le16 resp_len; 3462 u8 unused_0[7]; 3463 u8 valid; 3464 }; 3465 3466 /* hwrm_func_ptp_pin_qcfg_input (size:192b/24B) */ 3467 struct hwrm_func_ptp_pin_qcfg_input { 3468 __le16 req_type; 3469 __le16 cmpl_ring; 3470 __le16 seq_id; 3471 __le16 target_id; 3472 __le64 resp_addr; 3473 u8 unused_0[8]; 3474 }; 3475 3476 /* hwrm_func_ptp_pin_qcfg_output (size:128b/16B) */ 3477 struct hwrm_func_ptp_pin_qcfg_output { 3478 __le16 error_code; 3479 __le16 req_type; 3480 __le16 seq_id; 3481 __le16 resp_len; 3482 u8 num_pins; 3483 u8 state; 3484 #define FUNC_PTP_PIN_QCFG_RESP_STATE_PIN0_ENABLED 0x1UL 3485 #define FUNC_PTP_PIN_QCFG_RESP_STATE_PIN1_ENABLED 0x2UL 3486 #define FUNC_PTP_PIN_QCFG_RESP_STATE_PIN2_ENABLED 0x4UL 3487 #define FUNC_PTP_PIN_QCFG_RESP_STATE_PIN3_ENABLED 0x8UL 3488 u8 pin0_usage; 3489 #define FUNC_PTP_PIN_QCFG_RESP_PIN0_USAGE_NONE 0x0UL 3490 #define FUNC_PTP_PIN_QCFG_RESP_PIN0_USAGE_PPS_IN 0x1UL 3491 #define FUNC_PTP_PIN_QCFG_RESP_PIN0_USAGE_PPS_OUT 0x2UL 3492 #define FUNC_PTP_PIN_QCFG_RESP_PIN0_USAGE_SYNC_IN 0x3UL 3493 #define FUNC_PTP_PIN_QCFG_RESP_PIN0_USAGE_SYNC_OUT 0x4UL 3494 #define FUNC_PTP_PIN_QCFG_RESP_PIN0_USAGE_LAST FUNC_PTP_PIN_QCFG_RESP_PIN0_USAGE_SYNC_OUT 3495 u8 pin1_usage; 3496 #define FUNC_PTP_PIN_QCFG_RESP_PIN1_USAGE_NONE 0x0UL 3497 #define FUNC_PTP_PIN_QCFG_RESP_PIN1_USAGE_PPS_IN 0x1UL 3498 #define FUNC_PTP_PIN_QCFG_RESP_PIN1_USAGE_PPS_OUT 0x2UL 3499 #define FUNC_PTP_PIN_QCFG_RESP_PIN1_USAGE_SYNC_IN 0x3UL 3500 #define FUNC_PTP_PIN_QCFG_RESP_PIN1_USAGE_SYNC_OUT 0x4UL 3501 #define FUNC_PTP_PIN_QCFG_RESP_PIN1_USAGE_LAST FUNC_PTP_PIN_QCFG_RESP_PIN1_USAGE_SYNC_OUT 3502 u8 pin2_usage; 3503 #define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_NONE 0x0UL 3504 #define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_PPS_IN 0x1UL 3505 #define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_PPS_OUT 0x2UL 3506 #define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_SYNC_IN 0x3UL 3507 #define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_SYNC_OUT 0x4UL 3508 #define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_SYNCE_PRIMARY_CLOCK_OUT 0x5UL 3509 #define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_SYNCE_SECONDARY_CLOCK_OUT 0x6UL 3510 #define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_LAST FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_SYNCE_SECONDARY_CLOCK_OUT 3511 u8 pin3_usage; 3512 #define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_NONE 0x0UL 3513 #define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_PPS_IN 0x1UL 3514 #define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_PPS_OUT 0x2UL 3515 #define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_SYNC_IN 0x3UL 3516 #define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_SYNC_OUT 0x4UL 3517 #define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_SYNCE_PRIMARY_CLOCK_OUT 0x5UL 3518 #define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_SYNCE_SECONDARY_CLOCK_OUT 0x6UL 3519 #define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_LAST FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_SYNCE_SECONDARY_CLOCK_OUT 3520 u8 unused_0; 3521 u8 valid; 3522 }; 3523 3524 /* hwrm_func_ptp_pin_cfg_input (size:256b/32B) */ 3525 struct hwrm_func_ptp_pin_cfg_input { 3526 __le16 req_type; 3527 __le16 cmpl_ring; 3528 __le16 seq_id; 3529 __le16 target_id; 3530 __le64 resp_addr; 3531 __le32 enables; 3532 #define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN0_STATE 0x1UL 3533 #define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN0_USAGE 0x2UL 3534 #define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN1_STATE 0x4UL 3535 #define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN1_USAGE 0x8UL 3536 #define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN2_STATE 0x10UL 3537 #define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN2_USAGE 0x20UL 3538 #define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN3_STATE 0x40UL 3539 #define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN3_USAGE 0x80UL 3540 u8 pin0_state; 3541 #define FUNC_PTP_PIN_CFG_REQ_PIN0_STATE_DISABLED 0x0UL 3542 #define FUNC_PTP_PIN_CFG_REQ_PIN0_STATE_ENABLED 0x1UL 3543 #define FUNC_PTP_PIN_CFG_REQ_PIN0_STATE_LAST FUNC_PTP_PIN_CFG_REQ_PIN0_STATE_ENABLED 3544 u8 pin0_usage; 3545 #define FUNC_PTP_PIN_CFG_REQ_PIN0_USAGE_NONE 0x0UL 3546 #define FUNC_PTP_PIN_CFG_REQ_PIN0_USAGE_PPS_IN 0x1UL 3547 #define FUNC_PTP_PIN_CFG_REQ_PIN0_USAGE_PPS_OUT 0x2UL 3548 #define FUNC_PTP_PIN_CFG_REQ_PIN0_USAGE_SYNC_IN 0x3UL 3549 #define FUNC_PTP_PIN_CFG_REQ_PIN0_USAGE_SYNC_OUT 0x4UL 3550 #define FUNC_PTP_PIN_CFG_REQ_PIN0_USAGE_LAST FUNC_PTP_PIN_CFG_REQ_PIN0_USAGE_SYNC_OUT 3551 u8 pin1_state; 3552 #define FUNC_PTP_PIN_CFG_REQ_PIN1_STATE_DISABLED 0x0UL 3553 #define FUNC_PTP_PIN_CFG_REQ_PIN1_STATE_ENABLED 0x1UL 3554 #define FUNC_PTP_PIN_CFG_REQ_PIN1_STATE_LAST FUNC_PTP_PIN_CFG_REQ_PIN1_STATE_ENABLED 3555 u8 pin1_usage; 3556 #define FUNC_PTP_PIN_CFG_REQ_PIN1_USAGE_NONE 0x0UL 3557 #define FUNC_PTP_PIN_CFG_REQ_PIN1_USAGE_PPS_IN 0x1UL 3558 #define FUNC_PTP_PIN_CFG_REQ_PIN1_USAGE_PPS_OUT 0x2UL 3559 #define FUNC_PTP_PIN_CFG_REQ_PIN1_USAGE_SYNC_IN 0x3UL 3560 #define FUNC_PTP_PIN_CFG_REQ_PIN1_USAGE_SYNC_OUT 0x4UL 3561 #define FUNC_PTP_PIN_CFG_REQ_PIN1_USAGE_LAST FUNC_PTP_PIN_CFG_REQ_PIN1_USAGE_SYNC_OUT 3562 u8 pin2_state; 3563 #define FUNC_PTP_PIN_CFG_REQ_PIN2_STATE_DISABLED 0x0UL 3564 #define FUNC_PTP_PIN_CFG_REQ_PIN2_STATE_ENABLED 0x1UL 3565 #define FUNC_PTP_PIN_CFG_REQ_PIN2_STATE_LAST FUNC_PTP_PIN_CFG_REQ_PIN2_STATE_ENABLED 3566 u8 pin2_usage; 3567 #define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_NONE 0x0UL 3568 #define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_PPS_IN 0x1UL 3569 #define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_PPS_OUT 0x2UL 3570 #define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_SYNC_IN 0x3UL 3571 #define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_SYNC_OUT 0x4UL 3572 #define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_SYNCE_PRIMARY_CLOCK_OUT 0x5UL 3573 #define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_SYNCE_SECONDARY_CLOCK_OUT 0x6UL 3574 #define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_LAST FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_SYNCE_SECONDARY_CLOCK_OUT 3575 u8 pin3_state; 3576 #define FUNC_PTP_PIN_CFG_REQ_PIN3_STATE_DISABLED 0x0UL 3577 #define FUNC_PTP_PIN_CFG_REQ_PIN3_STATE_ENABLED 0x1UL 3578 #define FUNC_PTP_PIN_CFG_REQ_PIN3_STATE_LAST FUNC_PTP_PIN_CFG_REQ_PIN3_STATE_ENABLED 3579 u8 pin3_usage; 3580 #define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_NONE 0x0UL 3581 #define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_PPS_IN 0x1UL 3582 #define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_PPS_OUT 0x2UL 3583 #define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_SYNC_IN 0x3UL 3584 #define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_SYNC_OUT 0x4UL 3585 #define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_SYNCE_PRIMARY_CLOCK_OUT 0x5UL 3586 #define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_SYNCE_SECONDARY_CLOCK_OUT 0x6UL 3587 #define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_LAST FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_SYNCE_SECONDARY_CLOCK_OUT 3588 u8 unused_0[4]; 3589 }; 3590 3591 /* hwrm_func_ptp_pin_cfg_output (size:128b/16B) */ 3592 struct hwrm_func_ptp_pin_cfg_output { 3593 __le16 error_code; 3594 __le16 req_type; 3595 __le16 seq_id; 3596 __le16 resp_len; 3597 u8 unused_0[7]; 3598 u8 valid; 3599 }; 3600 3601 /* hwrm_func_ptp_cfg_input (size:384b/48B) */ 3602 struct hwrm_func_ptp_cfg_input { 3603 __le16 req_type; 3604 __le16 cmpl_ring; 3605 __le16 seq_id; 3606 __le16 target_id; 3607 __le64 resp_addr; 3608 __le16 enables; 3609 #define FUNC_PTP_CFG_REQ_ENABLES_PTP_PPS_EVENT 0x1UL 3610 #define FUNC_PTP_CFG_REQ_ENABLES_PTP_FREQ_ADJ_DLL_SOURCE 0x2UL 3611 #define FUNC_PTP_CFG_REQ_ENABLES_PTP_FREQ_ADJ_DLL_PHASE 0x4UL 3612 #define FUNC_PTP_CFG_REQ_ENABLES_PTP_FREQ_ADJ_EXT_PERIOD 0x8UL 3613 #define FUNC_PTP_CFG_REQ_ENABLES_PTP_FREQ_ADJ_EXT_UP 0x10UL 3614 #define FUNC_PTP_CFG_REQ_ENABLES_PTP_FREQ_ADJ_EXT_PHASE 0x20UL 3615 #define FUNC_PTP_CFG_REQ_ENABLES_PTP_SET_TIME 0x40UL 3616 u8 ptp_pps_event; 3617 #define FUNC_PTP_CFG_REQ_PTP_PPS_EVENT_INTERNAL 0x1UL 3618 #define FUNC_PTP_CFG_REQ_PTP_PPS_EVENT_EXTERNAL 0x2UL 3619 u8 ptp_freq_adj_dll_source; 3620 #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_NONE 0x0UL 3621 #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_TSIO_0 0x1UL 3622 #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_TSIO_1 0x2UL 3623 #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_TSIO_2 0x3UL 3624 #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_TSIO_3 0x4UL 3625 #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_PORT_0 0x5UL 3626 #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_PORT_1 0x6UL 3627 #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_PORT_2 0x7UL 3628 #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_PORT_3 0x8UL 3629 #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_INVALID 0xffUL 3630 #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_LAST FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_INVALID 3631 u8 ptp_freq_adj_dll_phase; 3632 #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_PHASE_NONE 0x0UL 3633 #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_PHASE_4K 0x1UL 3634 #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_PHASE_8K 0x2UL 3635 #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_PHASE_10M 0x3UL 3636 #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_PHASE_25M 0x4UL 3637 #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_PHASE_LAST FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_PHASE_25M 3638 u8 unused_0[3]; 3639 __le32 ptp_freq_adj_ext_period; 3640 __le32 ptp_freq_adj_ext_up; 3641 __le32 ptp_freq_adj_ext_phase_lower; 3642 __le32 ptp_freq_adj_ext_phase_upper; 3643 __le64 ptp_set_time; 3644 }; 3645 3646 /* hwrm_func_ptp_cfg_output (size:128b/16B) */ 3647 struct hwrm_func_ptp_cfg_output { 3648 __le16 error_code; 3649 __le16 req_type; 3650 __le16 seq_id; 3651 __le16 resp_len; 3652 u8 unused_0[7]; 3653 u8 valid; 3654 }; 3655 3656 /* hwrm_func_ptp_ts_query_input (size:192b/24B) */ 3657 struct hwrm_func_ptp_ts_query_input { 3658 __le16 req_type; 3659 __le16 cmpl_ring; 3660 __le16 seq_id; 3661 __le16 target_id; 3662 __le64 resp_addr; 3663 __le32 flags; 3664 #define FUNC_PTP_TS_QUERY_REQ_FLAGS_PPS_TIME 0x1UL 3665 #define FUNC_PTP_TS_QUERY_REQ_FLAGS_PTM_TIME 0x2UL 3666 u8 unused_0[4]; 3667 }; 3668 3669 /* hwrm_func_ptp_ts_query_output (size:320b/40B) */ 3670 struct hwrm_func_ptp_ts_query_output { 3671 __le16 error_code; 3672 __le16 req_type; 3673 __le16 seq_id; 3674 __le16 resp_len; 3675 __le64 pps_event_ts; 3676 __le64 ptm_local_ts; 3677 __le64 ptm_system_ts; 3678 __le32 ptm_link_delay; 3679 u8 unused_0[3]; 3680 u8 valid; 3681 }; 3682 3683 /* hwrm_func_ptp_ext_cfg_input (size:256b/32B) */ 3684 struct hwrm_func_ptp_ext_cfg_input { 3685 __le16 req_type; 3686 __le16 cmpl_ring; 3687 __le16 seq_id; 3688 __le16 target_id; 3689 __le64 resp_addr; 3690 __le16 enables; 3691 #define FUNC_PTP_EXT_CFG_REQ_ENABLES_PHC_MASTER_FID 0x1UL 3692 #define FUNC_PTP_EXT_CFG_REQ_ENABLES_PHC_SEC_FID 0x2UL 3693 #define FUNC_PTP_EXT_CFG_REQ_ENABLES_PHC_SEC_MODE 0x4UL 3694 #define FUNC_PTP_EXT_CFG_REQ_ENABLES_FAILOVER_TIMER 0x8UL 3695 __le16 phc_master_fid; 3696 __le16 phc_sec_fid; 3697 u8 phc_sec_mode; 3698 #define FUNC_PTP_EXT_CFG_REQ_PHC_SEC_MODE_SWITCH 0x0UL 3699 #define FUNC_PTP_EXT_CFG_REQ_PHC_SEC_MODE_ALL 0x1UL 3700 #define FUNC_PTP_EXT_CFG_REQ_PHC_SEC_MODE_PF_ONLY 0x2UL 3701 #define FUNC_PTP_EXT_CFG_REQ_PHC_SEC_MODE_LAST FUNC_PTP_EXT_CFG_REQ_PHC_SEC_MODE_PF_ONLY 3702 u8 unused_0; 3703 __le32 failover_timer; 3704 u8 unused_1[4]; 3705 }; 3706 3707 /* hwrm_func_ptp_ext_cfg_output (size:128b/16B) */ 3708 struct hwrm_func_ptp_ext_cfg_output { 3709 __le16 error_code; 3710 __le16 req_type; 3711 __le16 seq_id; 3712 __le16 resp_len; 3713 u8 unused_0[7]; 3714 u8 valid; 3715 }; 3716 3717 /* hwrm_func_ptp_ext_qcfg_input (size:192b/24B) */ 3718 struct hwrm_func_ptp_ext_qcfg_input { 3719 __le16 req_type; 3720 __le16 cmpl_ring; 3721 __le16 seq_id; 3722 __le16 target_id; 3723 __le64 resp_addr; 3724 u8 unused_0[8]; 3725 }; 3726 3727 /* hwrm_func_ptp_ext_qcfg_output (size:256b/32B) */ 3728 struct hwrm_func_ptp_ext_qcfg_output { 3729 __le16 error_code; 3730 __le16 req_type; 3731 __le16 seq_id; 3732 __le16 resp_len; 3733 __le16 phc_master_fid; 3734 __le16 phc_sec_fid; 3735 __le16 phc_active_fid0; 3736 __le16 phc_active_fid1; 3737 __le32 last_failover_event; 3738 __le16 from_fid; 3739 __le16 to_fid; 3740 u8 unused_0[7]; 3741 u8 valid; 3742 }; 3743 3744 /* hwrm_func_backing_store_cfg_v2_input (size:512b/64B) */ 3745 struct hwrm_func_backing_store_cfg_v2_input { 3746 __le16 req_type; 3747 __le16 cmpl_ring; 3748 __le16 seq_id; 3749 __le16 target_id; 3750 __le64 resp_addr; 3751 __le16 type; 3752 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_QP 0x0UL 3753 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_SRQ 0x1UL 3754 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_CQ 0x2UL 3755 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_VNIC 0x3UL 3756 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_STAT 0x4UL 3757 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_SP_TQM_RING 0x5UL 3758 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_FP_TQM_RING 0x6UL 3759 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_MRAV 0xeUL 3760 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_TIM 0xfUL 3761 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_TX_CK 0x13UL 3762 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_RX_CK 0x14UL 3763 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_MP_TQM_RING 0x15UL 3764 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_SQ_DB_SHADOW 0x16UL 3765 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_RQ_DB_SHADOW 0x17UL 3766 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_SRQ_DB_SHADOW 0x18UL 3767 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_CQ_DB_SHADOW 0x19UL 3768 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_TBL_SCOPE 0x1cUL 3769 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_XID_PARTITION 0x1dUL 3770 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_SRT_TRACE 0x1eUL 3771 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_SRT2_TRACE 0x1fUL 3772 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_CRT_TRACE 0x20UL 3773 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_CRT2_TRACE 0x21UL 3774 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_RIGP0_TRACE 0x22UL 3775 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_L2_HWRM_TRACE 0x23UL 3776 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_ROCE_HWRM_TRACE 0x24UL 3777 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_TTX_PACING_TQM_RING 0x25UL 3778 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_CA0_TRACE 0x26UL 3779 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_CA1_TRACE 0x27UL 3780 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_CA2_TRACE 0x28UL 3781 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_RIGP1_TRACE 0x29UL 3782 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_AFM_KONG_HWRM_TRACE 0x2aUL 3783 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_INVALID 0xffffUL 3784 #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_LAST FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_INVALID 3785 __le16 instance; 3786 __le32 flags; 3787 #define FUNC_BACKING_STORE_CFG_V2_REQ_FLAGS_PREBOOT_MODE 0x1UL 3788 #define FUNC_BACKING_STORE_CFG_V2_REQ_FLAGS_BS_CFG_ALL_DONE 0x2UL 3789 #define FUNC_BACKING_STORE_CFG_V2_REQ_FLAGS_BS_EXTEND 0x4UL 3790 __le64 page_dir; 3791 __le32 num_entries; 3792 __le16 entry_size; 3793 u8 page_size_pbl_level; 3794 #define FUNC_BACKING_STORE_CFG_V2_REQ_PBL_LEVEL_MASK 0xfUL 3795 #define FUNC_BACKING_STORE_CFG_V2_REQ_PBL_LEVEL_SFT 0 3796 #define FUNC_BACKING_STORE_CFG_V2_REQ_PBL_LEVEL_LVL_0 0x0UL 3797 #define FUNC_BACKING_STORE_CFG_V2_REQ_PBL_LEVEL_LVL_1 0x1UL 3798 #define FUNC_BACKING_STORE_CFG_V2_REQ_PBL_LEVEL_LVL_2 0x2UL 3799 #define FUNC_BACKING_STORE_CFG_V2_REQ_PBL_LEVEL_LAST FUNC_BACKING_STORE_CFG_V2_REQ_PBL_LEVEL_LVL_2 3800 #define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_MASK 0xf0UL 3801 #define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_SFT 4 3802 #define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_PG_4K (0x0UL << 4) 3803 #define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_PG_8K (0x1UL << 4) 3804 #define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_PG_64K (0x2UL << 4) 3805 #define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_PG_2M (0x3UL << 4) 3806 #define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_PG_8M (0x4UL << 4) 3807 #define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_PG_1G (0x5UL << 4) 3808 #define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_LAST FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_PG_1G 3809 u8 subtype_valid_cnt; 3810 __le32 split_entry_0; 3811 __le32 split_entry_1; 3812 __le32 split_entry_2; 3813 __le32 split_entry_3; 3814 __le32 enables; 3815 #define FUNC_BACKING_STORE_CFG_V2_REQ_ENABLES_NEXT_BS_OFFSET 0x1UL 3816 __le32 next_bs_offset; 3817 }; 3818 3819 /* hwrm_func_backing_store_cfg_v2_output (size:128b/16B) */ 3820 struct hwrm_func_backing_store_cfg_v2_output { 3821 __le16 error_code; 3822 __le16 req_type; 3823 __le16 seq_id; 3824 __le16 resp_len; 3825 u8 rsvd0[7]; 3826 u8 valid; 3827 }; 3828 3829 /* hwrm_func_backing_store_qcfg_v2_input (size:192b/24B) */ 3830 struct hwrm_func_backing_store_qcfg_v2_input { 3831 __le16 req_type; 3832 __le16 cmpl_ring; 3833 __le16 seq_id; 3834 __le16 target_id; 3835 __le64 resp_addr; 3836 __le16 type; 3837 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_QP 0x0UL 3838 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_SRQ 0x1UL 3839 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_CQ 0x2UL 3840 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_VNIC 0x3UL 3841 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_STAT 0x4UL 3842 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_SP_TQM_RING 0x5UL 3843 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_FP_TQM_RING 0x6UL 3844 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_MRAV 0xeUL 3845 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_TIM 0xfUL 3846 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_TX_CK 0x13UL 3847 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_RX_CK 0x14UL 3848 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_MP_TQM_RING 0x15UL 3849 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_SQ_DB_SHADOW 0x16UL 3850 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_RQ_DB_SHADOW 0x17UL 3851 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_SRQ_DB_SHADOW 0x18UL 3852 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_CQ_DB_SHADOW 0x19UL 3853 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_TBL_SCOPE 0x1cUL 3854 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_XID_PARTITION_TABLE 0x1dUL 3855 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_SRT_TRACE 0x1eUL 3856 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_SRT2_TRACE 0x1fUL 3857 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_CRT_TRACE 0x20UL 3858 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_CRT2_TRACE 0x21UL 3859 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_RIGP0_TRACE 0x22UL 3860 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_L2_HWRM_TRACE 0x23UL 3861 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_ROCE_HWRM_TRACE 0x24UL 3862 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_TTX_PACING_TQM_RING 0x25UL 3863 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_CA0_TRACE 0x26UL 3864 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_CA1_TRACE 0x27UL 3865 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_CA2_TRACE 0x28UL 3866 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_RIGP1_TRACE 0x29UL 3867 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_AFM_KONG_HWRM_TRACE 0x2aUL 3868 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_INVALID 0xffffUL 3869 #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_LAST FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_INVALID 3870 __le16 instance; 3871 u8 rsvd[4]; 3872 }; 3873 3874 /* hwrm_func_backing_store_qcfg_v2_output (size:448b/56B) */ 3875 struct hwrm_func_backing_store_qcfg_v2_output { 3876 __le16 error_code; 3877 __le16 req_type; 3878 __le16 seq_id; 3879 __le16 resp_len; 3880 __le16 type; 3881 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_QP 0x0UL 3882 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_SRQ 0x1UL 3883 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_CQ 0x2UL 3884 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_VNIC 0x3UL 3885 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_STAT 0x4UL 3886 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_SP_TQM_RING 0x5UL 3887 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_FP_TQM_RING 0x6UL 3888 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_MRAV 0xeUL 3889 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_TIM 0xfUL 3890 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_TX_CK 0x13UL 3891 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_RX_CK 0x14UL 3892 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_MP_TQM_RING 0x15UL 3893 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_TBL_SCOPE 0x1cUL 3894 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_XID_PARTITION 0x1dUL 3895 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_SRT_TRACE 0x1eUL 3896 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_SRT2_TRACE 0x1fUL 3897 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_CRT_TRACE 0x20UL 3898 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_CRT2_TRACE 0x21UL 3899 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_RIGP0_TRACE 0x22UL 3900 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_L2_HWRM_TRACE 0x23UL 3901 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_ROCE_HWRM_TRACE 0x24UL 3902 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_TTX_PACING_TQM_RING 0x25UL 3903 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_CA0_TRACE 0x26UL 3904 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_CA1_TRACE 0x27UL 3905 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_CA2_TRACE 0x28UL 3906 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_RIGP1_TRACE 0x29UL 3907 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_INVALID 0xffffUL 3908 #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_LAST FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_INVALID 3909 __le16 instance; 3910 __le32 flags; 3911 __le64 page_dir; 3912 __le32 num_entries; 3913 u8 page_size_pbl_level; 3914 #define FUNC_BACKING_STORE_QCFG_V2_RESP_PBL_LEVEL_MASK 0xfUL 3915 #define FUNC_BACKING_STORE_QCFG_V2_RESP_PBL_LEVEL_SFT 0 3916 #define FUNC_BACKING_STORE_QCFG_V2_RESP_PBL_LEVEL_LVL_0 0x0UL 3917 #define FUNC_BACKING_STORE_QCFG_V2_RESP_PBL_LEVEL_LVL_1 0x1UL 3918 #define FUNC_BACKING_STORE_QCFG_V2_RESP_PBL_LEVEL_LVL_2 0x2UL 3919 #define FUNC_BACKING_STORE_QCFG_V2_RESP_PBL_LEVEL_LAST FUNC_BACKING_STORE_QCFG_V2_RESP_PBL_LEVEL_LVL_2 3920 #define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_MASK 0xf0UL 3921 #define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_SFT 4 3922 #define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_PG_4K (0x0UL << 4) 3923 #define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_PG_8K (0x1UL << 4) 3924 #define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_PG_64K (0x2UL << 4) 3925 #define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_PG_2M (0x3UL << 4) 3926 #define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_PG_8M (0x4UL << 4) 3927 #define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_PG_1G (0x5UL << 4) 3928 #define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_LAST FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_PG_1G 3929 u8 subtype_valid_cnt; 3930 u8 rsvd[2]; 3931 __le32 split_entry_0; 3932 __le32 split_entry_1; 3933 __le32 split_entry_2; 3934 __le32 split_entry_3; 3935 u8 rsvd2[7]; 3936 u8 valid; 3937 }; 3938 3939 /* qpc_split_entries (size:128b/16B) */ 3940 struct qpc_split_entries { 3941 __le32 qp_num_l2_entries; 3942 __le32 qp_num_qp1_entries; 3943 __le32 qp_num_fast_qpmd_entries; 3944 __le32 rsvd; 3945 }; 3946 3947 /* srq_split_entries (size:128b/16B) */ 3948 struct srq_split_entries { 3949 __le32 srq_num_l2_entries; 3950 __le32 rsvd; 3951 __le32 rsvd2[2]; 3952 }; 3953 3954 /* cq_split_entries (size:128b/16B) */ 3955 struct cq_split_entries { 3956 __le32 cq_num_l2_entries; 3957 __le32 rsvd; 3958 __le32 rsvd2[2]; 3959 }; 3960 3961 /* vnic_split_entries (size:128b/16B) */ 3962 struct vnic_split_entries { 3963 __le32 vnic_num_vnic_entries; 3964 __le32 rsvd; 3965 __le32 rsvd2[2]; 3966 }; 3967 3968 /* mrav_split_entries (size:128b/16B) */ 3969 struct mrav_split_entries { 3970 __le32 mrav_num_av_entries; 3971 __le32 rsvd; 3972 __le32 rsvd2[2]; 3973 }; 3974 3975 /* ts_split_entries (size:128b/16B) */ 3976 struct ts_split_entries { 3977 __le32 region_num_entries; 3978 u8 tsid; 3979 u8 lkup_static_bkt_cnt_exp[2]; 3980 u8 locked; 3981 __le32 rsvd2[2]; 3982 }; 3983 3984 /* ck_split_entries (size:128b/16B) */ 3985 struct ck_split_entries { 3986 __le32 num_quic_entries; 3987 __le32 rsvd; 3988 __le32 rsvd2[2]; 3989 }; 3990 3991 /* hwrm_func_backing_store_qcaps_v2_input (size:192b/24B) */ 3992 struct hwrm_func_backing_store_qcaps_v2_input { 3993 __le16 req_type; 3994 __le16 cmpl_ring; 3995 __le16 seq_id; 3996 __le16 target_id; 3997 __le64 resp_addr; 3998 __le16 type; 3999 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_QP 0x0UL 4000 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_SRQ 0x1UL 4001 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_CQ 0x2UL 4002 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_VNIC 0x3UL 4003 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_STAT 0x4UL 4004 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_SP_TQM_RING 0x5UL 4005 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_FP_TQM_RING 0x6UL 4006 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_MRAV 0xeUL 4007 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_TIM 0xfUL 4008 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_TX_CK 0x13UL 4009 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_RX_CK 0x14UL 4010 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_MP_TQM_RING 0x15UL 4011 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_SQ_DB_SHADOW 0x16UL 4012 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_RQ_DB_SHADOW 0x17UL 4013 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_SRQ_DB_SHADOW 0x18UL 4014 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_CQ_DB_SHADOW 0x19UL 4015 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_TBL_SCOPE 0x1cUL 4016 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_XID_PARTITION 0x1dUL 4017 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_SRT_TRACE 0x1eUL 4018 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_SRT2_TRACE 0x1fUL 4019 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_CRT_TRACE 0x20UL 4020 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_CRT2_TRACE 0x21UL 4021 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_RIGP0_TRACE 0x22UL 4022 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_L2_HWRM_TRACE 0x23UL 4023 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_ROCE_HWRM_TRACE 0x24UL 4024 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_TTX_PACING_TQM_RING 0x25UL 4025 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_CA0_TRACE 0x26UL 4026 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_CA1_TRACE 0x27UL 4027 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_CA2_TRACE 0x28UL 4028 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_RIGP1_TRACE 0x29UL 4029 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_AFM_KONG_HWRM_TRACE 0x2aUL 4030 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_INVALID 0xffffUL 4031 #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_LAST FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_INVALID 4032 u8 rsvd[6]; 4033 }; 4034 4035 /* hwrm_func_backing_store_qcaps_v2_output (size:448b/56B) */ 4036 struct hwrm_func_backing_store_qcaps_v2_output { 4037 __le16 error_code; 4038 __le16 req_type; 4039 __le16 seq_id; 4040 __le16 resp_len; 4041 __le16 type; 4042 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_QP 0x0UL 4043 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_SRQ 0x1UL 4044 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_CQ 0x2UL 4045 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_VNIC 0x3UL 4046 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_STAT 0x4UL 4047 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_SP_TQM_RING 0x5UL 4048 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_FP_TQM_RING 0x6UL 4049 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_MRAV 0xeUL 4050 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_TIM 0xfUL 4051 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_TX_CK 0x13UL 4052 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_RX_CK 0x14UL 4053 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_MP_TQM_RING 0x15UL 4054 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_SQ_DB_SHADOW 0x16UL 4055 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_RQ_DB_SHADOW 0x17UL 4056 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_SRQ_DB_SHADOW 0x18UL 4057 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_CQ_DB_SHADOW 0x19UL 4058 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_TBL_SCOPE 0x1cUL 4059 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_XID_PARTITION 0x1dUL 4060 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_SRT_TRACE 0x1eUL 4061 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_SRT2_TRACE 0x1fUL 4062 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_CRT_TRACE 0x20UL 4063 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_CRT2_TRACE 0x21UL 4064 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_RIGP0_TRACE 0x22UL 4065 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_L2_HWRM_TRACE 0x23UL 4066 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_ROCE_HWRM_TRACE 0x24UL 4067 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_TTX_PACING_TQM_RING 0x25UL 4068 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_CA0_TRACE 0x26UL 4069 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_CA1_TRACE 0x27UL 4070 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_CA2_TRACE 0x28UL 4071 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_RIGP1_TRACE 0x29UL 4072 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_AFM_KONG_HWRM_TRACE 0x2aUL 4073 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_INVALID 0xffffUL 4074 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_LAST FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_INVALID 4075 __le16 entry_size; 4076 __le32 flags; 4077 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_FLAGS_ENABLE_CTX_KIND_INIT 0x1UL 4078 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_FLAGS_TYPE_VALID 0x2UL 4079 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_FLAGS_DRIVER_MANAGED_MEMORY 0x4UL 4080 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_FLAGS_ROCE_QP_PSEUDO_STATIC_ALLOC 0x8UL 4081 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_FLAGS_FW_DBG_TRACE 0x10UL 4082 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_FLAGS_FW_BIN_DBG_TRACE 0x20UL 4083 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_FLAGS_NEXT_BS_OFFSET 0x40UL 4084 __le32 instance_bit_map; 4085 u8 ctx_init_value; 4086 u8 ctx_init_offset; 4087 u8 entry_multiple; 4088 u8 rsvd; 4089 __le32 max_num_entries; 4090 __le32 min_num_entries; 4091 __le16 next_valid_type; 4092 u8 subtype_valid_cnt; 4093 u8 exact_cnt_bit_map; 4094 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_EXACT_CNT_BIT_MAP_SPLIT_ENTRY_0_EXACT 0x1UL 4095 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_EXACT_CNT_BIT_MAP_SPLIT_ENTRY_1_EXACT 0x2UL 4096 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_EXACT_CNT_BIT_MAP_SPLIT_ENTRY_2_EXACT 0x4UL 4097 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_EXACT_CNT_BIT_MAP_SPLIT_ENTRY_3_EXACT 0x8UL 4098 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_EXACT_CNT_BIT_MAP_UNUSED_MASK 0xf0UL 4099 #define FUNC_BACKING_STORE_QCAPS_V2_RESP_EXACT_CNT_BIT_MAP_UNUSED_SFT 4 4100 __le32 split_entry_0; 4101 __le32 split_entry_1; 4102 __le32 split_entry_2; 4103 __le32 split_entry_3; 4104 __le16 max_instance_count; 4105 u8 rsvd3; 4106 u8 valid; 4107 }; 4108 4109 /* hwrm_func_dbr_pacing_qcfg_input (size:128b/16B) */ 4110 struct hwrm_func_dbr_pacing_qcfg_input { 4111 __le16 req_type; 4112 __le16 cmpl_ring; 4113 __le16 seq_id; 4114 __le16 target_id; 4115 __le64 resp_addr; 4116 }; 4117 4118 /* hwrm_func_dbr_pacing_qcfg_output (size:512b/64B) */ 4119 struct hwrm_func_dbr_pacing_qcfg_output { 4120 __le16 error_code; 4121 __le16 req_type; 4122 __le16 seq_id; 4123 __le16 resp_len; 4124 u8 flags; 4125 #define FUNC_DBR_PACING_QCFG_RESP_FLAGS_DBR_NQ_EVENT_ENABLED 0x1UL 4126 u8 unused_0[7]; 4127 __le32 dbr_stat_db_fifo_reg; 4128 #define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_MASK 0x3UL 4129 #define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_SFT 0 4130 #define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_PCIE_CFG 0x0UL 4131 #define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_GRC 0x1UL 4132 #define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_BAR0 0x2UL 4133 #define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_BAR1 0x3UL 4134 #define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_LAST FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_BAR1 4135 #define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_MASK 0xfffffffcUL 4136 #define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SFT 2 4137 __le32 dbr_stat_db_fifo_reg_watermark_mask; 4138 u8 dbr_stat_db_fifo_reg_watermark_shift; 4139 u8 unused_1[3]; 4140 __le32 dbr_stat_db_fifo_reg_fifo_room_mask; 4141 u8 dbr_stat_db_fifo_reg_fifo_room_shift; 4142 u8 unused_2[3]; 4143 __le32 dbr_throttling_aeq_arm_reg; 4144 #define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_MASK 0x3UL 4145 #define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_SFT 0 4146 #define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_PCIE_CFG 0x0UL 4147 #define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_GRC 0x1UL 4148 #define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_BAR0 0x2UL 4149 #define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_BAR1 0x3UL 4150 #define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_LAST FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_BAR1 4151 #define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_MASK 0xfffffffcUL 4152 #define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SFT 2 4153 u8 dbr_throttling_aeq_arm_reg_val; 4154 u8 unused_3[3]; 4155 __le32 dbr_stat_db_max_fifo_depth; 4156 __le32 primary_nq_id; 4157 __le32 pacing_threshold; 4158 u8 unused_4[7]; 4159 u8 valid; 4160 }; 4161 4162 /* hwrm_func_drv_if_change_input (size:192b/24B) */ 4163 struct hwrm_func_drv_if_change_input { 4164 __le16 req_type; 4165 __le16 cmpl_ring; 4166 __le16 seq_id; 4167 __le16 target_id; 4168 __le64 resp_addr; 4169 __le32 flags; 4170 #define FUNC_DRV_IF_CHANGE_REQ_FLAGS_UP 0x1UL 4171 __le32 unused; 4172 }; 4173 4174 /* hwrm_func_drv_if_change_output (size:128b/16B) */ 4175 struct hwrm_func_drv_if_change_output { 4176 __le16 error_code; 4177 __le16 req_type; 4178 __le16 seq_id; 4179 __le16 resp_len; 4180 __le32 flags; 4181 #define FUNC_DRV_IF_CHANGE_RESP_FLAGS_RESC_CHANGE 0x1UL 4182 #define FUNC_DRV_IF_CHANGE_RESP_FLAGS_HOT_FW_RESET_DONE 0x2UL 4183 #define FUNC_DRV_IF_CHANGE_RESP_FLAGS_CAPS_CHANGE 0x4UL 4184 u8 unused_0[3]; 4185 u8 valid; 4186 }; 4187 4188 /* hwrm_port_phy_cfg_input (size:512b/64B) */ 4189 struct hwrm_port_phy_cfg_input { 4190 __le16 req_type; 4191 __le16 cmpl_ring; 4192 __le16 seq_id; 4193 __le16 target_id; 4194 __le64 resp_addr; 4195 __le32 flags; 4196 #define PORT_PHY_CFG_REQ_FLAGS_RESET_PHY 0x1UL 4197 #define PORT_PHY_CFG_REQ_FLAGS_DEPRECATED 0x2UL 4198 #define PORT_PHY_CFG_REQ_FLAGS_FORCE 0x4UL 4199 #define PORT_PHY_CFG_REQ_FLAGS_RESTART_AUTONEG 0x8UL 4200 #define PORT_PHY_CFG_REQ_FLAGS_EEE_ENABLE 0x10UL 4201 #define PORT_PHY_CFG_REQ_FLAGS_EEE_DISABLE 0x20UL 4202 #define PORT_PHY_CFG_REQ_FLAGS_EEE_TX_LPI_ENABLE 0x40UL 4203 #define PORT_PHY_CFG_REQ_FLAGS_EEE_TX_LPI_DISABLE 0x80UL 4204 #define PORT_PHY_CFG_REQ_FLAGS_FEC_AUTONEG_ENABLE 0x100UL 4205 #define PORT_PHY_CFG_REQ_FLAGS_FEC_AUTONEG_DISABLE 0x200UL 4206 #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE74_ENABLE 0x400UL 4207 #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE74_DISABLE 0x800UL 4208 #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE91_ENABLE 0x1000UL 4209 #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE91_DISABLE 0x2000UL 4210 #define PORT_PHY_CFG_REQ_FLAGS_FORCE_LINK_DWN 0x4000UL 4211 #define PORT_PHY_CFG_REQ_FLAGS_FEC_RS544_1XN_ENABLE 0x8000UL 4212 #define PORT_PHY_CFG_REQ_FLAGS_FEC_RS544_1XN_DISABLE 0x10000UL 4213 #define PORT_PHY_CFG_REQ_FLAGS_FEC_RS544_IEEE_ENABLE 0x20000UL 4214 #define PORT_PHY_CFG_REQ_FLAGS_FEC_RS544_IEEE_DISABLE 0x40000UL 4215 #define PORT_PHY_CFG_REQ_FLAGS_FEC_RS272_1XN_ENABLE 0x80000UL 4216 #define PORT_PHY_CFG_REQ_FLAGS_FEC_RS272_1XN_DISABLE 0x100000UL 4217 #define PORT_PHY_CFG_REQ_FLAGS_FEC_RS272_IEEE_ENABLE 0x200000UL 4218 #define PORT_PHY_CFG_REQ_FLAGS_FEC_RS272_IEEE_DISABLE 0x400000UL 4219 __le32 enables; 4220 #define PORT_PHY_CFG_REQ_ENABLES_AUTO_MODE 0x1UL 4221 #define PORT_PHY_CFG_REQ_ENABLES_AUTO_DUPLEX 0x2UL 4222 #define PORT_PHY_CFG_REQ_ENABLES_AUTO_PAUSE 0x4UL 4223 #define PORT_PHY_CFG_REQ_ENABLES_AUTO_LINK_SPEED 0x8UL 4224 #define PORT_PHY_CFG_REQ_ENABLES_AUTO_LINK_SPEED_MASK 0x10UL 4225 #define PORT_PHY_CFG_REQ_ENABLES_WIRESPEED 0x20UL 4226 #define PORT_PHY_CFG_REQ_ENABLES_LPBK 0x40UL 4227 #define PORT_PHY_CFG_REQ_ENABLES_PREEMPHASIS 0x80UL 4228 #define PORT_PHY_CFG_REQ_ENABLES_FORCE_PAUSE 0x100UL 4229 #define PORT_PHY_CFG_REQ_ENABLES_EEE_LINK_SPEED_MASK 0x200UL 4230 #define PORT_PHY_CFG_REQ_ENABLES_TX_LPI_TIMER 0x400UL 4231 #define PORT_PHY_CFG_REQ_ENABLES_FORCE_PAM4_LINK_SPEED 0x800UL 4232 #define PORT_PHY_CFG_REQ_ENABLES_AUTO_PAM4_LINK_SPEED_MASK 0x1000UL 4233 #define PORT_PHY_CFG_REQ_ENABLES_FORCE_LINK_SPEEDS2 0x2000UL 4234 #define PORT_PHY_CFG_REQ_ENABLES_AUTO_LINK_SPEEDS2_MASK 0x4000UL 4235 __le16 port_id; 4236 __le16 force_link_speed; 4237 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_100MB 0x1UL 4238 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_1GB 0xaUL 4239 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_2GB 0x14UL 4240 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_2_5GB 0x19UL 4241 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10GB 0x64UL 4242 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_20GB 0xc8UL 4243 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_25GB 0xfaUL 4244 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_40GB 0x190UL 4245 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_50GB 0x1f4UL 4246 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_100GB 0x3e8UL 4247 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10MB 0xffffUL 4248 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_LAST PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10MB 4249 u8 auto_mode; 4250 #define PORT_PHY_CFG_REQ_AUTO_MODE_NONE 0x0UL 4251 #define PORT_PHY_CFG_REQ_AUTO_MODE_ALL_SPEEDS 0x1UL 4252 #define PORT_PHY_CFG_REQ_AUTO_MODE_ONE_SPEED 0x2UL 4253 #define PORT_PHY_CFG_REQ_AUTO_MODE_ONE_OR_BELOW 0x3UL 4254 #define PORT_PHY_CFG_REQ_AUTO_MODE_SPEED_MASK 0x4UL 4255 #define PORT_PHY_CFG_REQ_AUTO_MODE_LAST PORT_PHY_CFG_REQ_AUTO_MODE_SPEED_MASK 4256 u8 auto_duplex; 4257 #define PORT_PHY_CFG_REQ_AUTO_DUPLEX_HALF 0x0UL 4258 #define PORT_PHY_CFG_REQ_AUTO_DUPLEX_FULL 0x1UL 4259 #define PORT_PHY_CFG_REQ_AUTO_DUPLEX_BOTH 0x2UL 4260 #define PORT_PHY_CFG_REQ_AUTO_DUPLEX_LAST PORT_PHY_CFG_REQ_AUTO_DUPLEX_BOTH 4261 u8 auto_pause; 4262 #define PORT_PHY_CFG_REQ_AUTO_PAUSE_TX 0x1UL 4263 #define PORT_PHY_CFG_REQ_AUTO_PAUSE_RX 0x2UL 4264 #define PORT_PHY_CFG_REQ_AUTO_PAUSE_AUTONEG_PAUSE 0x4UL 4265 u8 mgmt_flag; 4266 #define PORT_PHY_CFG_REQ_MGMT_FLAG_LINK_RELEASE 0x1UL 4267 #define PORT_PHY_CFG_REQ_MGMT_FLAG_MGMT_VALID 0x80UL 4268 __le16 auto_link_speed; 4269 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_100MB 0x1UL 4270 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_1GB 0xaUL 4271 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_2GB 0x14UL 4272 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_2_5GB 0x19UL 4273 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_10GB 0x64UL 4274 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_20GB 0xc8UL 4275 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_25GB 0xfaUL 4276 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_40GB 0x190UL 4277 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_50GB 0x1f4UL 4278 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_100GB 0x3e8UL 4279 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_10MB 0xffffUL 4280 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_LAST PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_10MB 4281 __le16 auto_link_speed_mask; 4282 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100MBHD 0x1UL 4283 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100MB 0x2UL 4284 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_1GBHD 0x4UL 4285 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_1GB 0x8UL 4286 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_2GB 0x10UL 4287 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_2_5GB 0x20UL 4288 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10GB 0x40UL 4289 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_20GB 0x80UL 4290 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_25GB 0x100UL 4291 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_40GB 0x200UL 4292 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_50GB 0x400UL 4293 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100GB 0x800UL 4294 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10MBHD 0x1000UL 4295 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10MB 0x2000UL 4296 u8 wirespeed; 4297 #define PORT_PHY_CFG_REQ_WIRESPEED_OFF 0x0UL 4298 #define PORT_PHY_CFG_REQ_WIRESPEED_ON 0x1UL 4299 #define PORT_PHY_CFG_REQ_WIRESPEED_LAST PORT_PHY_CFG_REQ_WIRESPEED_ON 4300 u8 lpbk; 4301 #define PORT_PHY_CFG_REQ_LPBK_NONE 0x0UL 4302 #define PORT_PHY_CFG_REQ_LPBK_LOCAL 0x1UL 4303 #define PORT_PHY_CFG_REQ_LPBK_REMOTE 0x2UL 4304 #define PORT_PHY_CFG_REQ_LPBK_EXTERNAL 0x3UL 4305 #define PORT_PHY_CFG_REQ_LPBK_LAST PORT_PHY_CFG_REQ_LPBK_EXTERNAL 4306 u8 force_pause; 4307 #define PORT_PHY_CFG_REQ_FORCE_PAUSE_TX 0x1UL 4308 #define PORT_PHY_CFG_REQ_FORCE_PAUSE_RX 0x2UL 4309 u8 unused_1; 4310 __le32 preemphasis; 4311 __le16 eee_link_speed_mask; 4312 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD1 0x1UL 4313 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_100MB 0x2UL 4314 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD2 0x4UL 4315 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_1GB 0x8UL 4316 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD3 0x10UL 4317 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD4 0x20UL 4318 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_10GB 0x40UL 4319 __le16 force_pam4_link_speed; 4320 #define PORT_PHY_CFG_REQ_FORCE_PAM4_LINK_SPEED_50GB 0x1f4UL 4321 #define PORT_PHY_CFG_REQ_FORCE_PAM4_LINK_SPEED_100GB 0x3e8UL 4322 #define PORT_PHY_CFG_REQ_FORCE_PAM4_LINK_SPEED_200GB 0x7d0UL 4323 #define PORT_PHY_CFG_REQ_FORCE_PAM4_LINK_SPEED_LAST PORT_PHY_CFG_REQ_FORCE_PAM4_LINK_SPEED_200GB 4324 __le32 tx_lpi_timer; 4325 #define PORT_PHY_CFG_REQ_TX_LPI_TIMER_MASK 0xffffffUL 4326 #define PORT_PHY_CFG_REQ_TX_LPI_TIMER_SFT 0 4327 __le16 auto_link_pam4_speed_mask; 4328 #define PORT_PHY_CFG_REQ_AUTO_LINK_PAM4_SPEED_MASK_50G 0x1UL 4329 #define PORT_PHY_CFG_REQ_AUTO_LINK_PAM4_SPEED_MASK_100G 0x2UL 4330 #define PORT_PHY_CFG_REQ_AUTO_LINK_PAM4_SPEED_MASK_200G 0x4UL 4331 __le16 force_link_speeds2; 4332 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_1GB 0xaUL 4333 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_10GB 0x64UL 4334 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_25GB 0xfaUL 4335 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_40GB 0x190UL 4336 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_50GB 0x1f4UL 4337 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_100GB 0x3e8UL 4338 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_50GB_PAM4_56 0x1f5UL 4339 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_100GB_PAM4_56 0x3e9UL 4340 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_200GB_PAM4_56 0x7d1UL 4341 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_400GB_PAM4_56 0xfa1UL 4342 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_100GB_PAM4_112 0x3eaUL 4343 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_200GB_PAM4_112 0x7d2UL 4344 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_400GB_PAM4_112 0xfa2UL 4345 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_800GB_PAM4_112 0x1f42UL 4346 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_LAST PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_800GB_PAM4_112 4347 __le16 auto_link_speeds2_mask; 4348 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_1GB 0x1UL 4349 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_10GB 0x2UL 4350 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_25GB 0x4UL 4351 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_40GB 0x8UL 4352 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_50GB 0x10UL 4353 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_100GB 0x20UL 4354 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_50GB_PAM4_56 0x40UL 4355 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_100GB_PAM4_56 0x80UL 4356 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_200GB_PAM4_56 0x100UL 4357 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_400GB_PAM4_56 0x200UL 4358 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_100GB_PAM4_112 0x400UL 4359 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_200GB_PAM4_112 0x800UL 4360 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_400GB_PAM4_112 0x1000UL 4361 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_800GB_PAM4_112 0x2000UL 4362 u8 unused_2[6]; 4363 }; 4364 4365 /* hwrm_port_phy_cfg_output (size:128b/16B) */ 4366 struct hwrm_port_phy_cfg_output { 4367 __le16 error_code; 4368 __le16 req_type; 4369 __le16 seq_id; 4370 __le16 resp_len; 4371 u8 unused_0[7]; 4372 u8 valid; 4373 }; 4374 4375 /* hwrm_port_phy_cfg_cmd_err (size:64b/8B) */ 4376 struct hwrm_port_phy_cfg_cmd_err { 4377 u8 code; 4378 #define PORT_PHY_CFG_CMD_ERR_CODE_UNKNOWN 0x0UL 4379 #define PORT_PHY_CFG_CMD_ERR_CODE_ILLEGAL_SPEED 0x1UL 4380 #define PORT_PHY_CFG_CMD_ERR_CODE_RETRY 0x2UL 4381 #define PORT_PHY_CFG_CMD_ERR_CODE_LAST PORT_PHY_CFG_CMD_ERR_CODE_RETRY 4382 u8 unused_0[7]; 4383 }; 4384 4385 /* hwrm_port_phy_qcfg_input (size:192b/24B) */ 4386 struct hwrm_port_phy_qcfg_input { 4387 __le16 req_type; 4388 __le16 cmpl_ring; 4389 __le16 seq_id; 4390 __le16 target_id; 4391 __le64 resp_addr; 4392 __le16 port_id; 4393 u8 unused_0[6]; 4394 }; 4395 4396 /* hwrm_port_phy_qcfg_output (size:832b/104B) */ 4397 struct hwrm_port_phy_qcfg_output { 4398 __le16 error_code; 4399 __le16 req_type; 4400 __le16 seq_id; 4401 __le16 resp_len; 4402 u8 link; 4403 #define PORT_PHY_QCFG_RESP_LINK_NO_LINK 0x0UL 4404 #define PORT_PHY_QCFG_RESP_LINK_SIGNAL 0x1UL 4405 #define PORT_PHY_QCFG_RESP_LINK_LINK 0x2UL 4406 #define PORT_PHY_QCFG_RESP_LINK_LAST PORT_PHY_QCFG_RESP_LINK_LINK 4407 u8 active_fec_signal_mode; 4408 #define PORT_PHY_QCFG_RESP_SIGNAL_MODE_MASK 0xfUL 4409 #define PORT_PHY_QCFG_RESP_SIGNAL_MODE_SFT 0 4410 #define PORT_PHY_QCFG_RESP_SIGNAL_MODE_NRZ 0x0UL 4411 #define PORT_PHY_QCFG_RESP_SIGNAL_MODE_PAM4 0x1UL 4412 #define PORT_PHY_QCFG_RESP_SIGNAL_MODE_PAM4_112 0x2UL 4413 #define PORT_PHY_QCFG_RESP_SIGNAL_MODE_LAST PORT_PHY_QCFG_RESP_SIGNAL_MODE_PAM4_112 4414 #define PORT_PHY_QCFG_RESP_ACTIVE_FEC_MASK 0xf0UL 4415 #define PORT_PHY_QCFG_RESP_ACTIVE_FEC_SFT 4 4416 #define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_NONE_ACTIVE (0x0UL << 4) 4417 #define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_CLAUSE74_ACTIVE (0x1UL << 4) 4418 #define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_CLAUSE91_ACTIVE (0x2UL << 4) 4419 #define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS544_1XN_ACTIVE (0x3UL << 4) 4420 #define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS544_IEEE_ACTIVE (0x4UL << 4) 4421 #define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS272_1XN_ACTIVE (0x5UL << 4) 4422 #define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS272_IEEE_ACTIVE (0x6UL << 4) 4423 #define PORT_PHY_QCFG_RESP_ACTIVE_FEC_LAST PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS272_IEEE_ACTIVE 4424 __le16 link_speed; 4425 #define PORT_PHY_QCFG_RESP_LINK_SPEED_100MB 0x1UL 4426 #define PORT_PHY_QCFG_RESP_LINK_SPEED_1GB 0xaUL 4427 #define PORT_PHY_QCFG_RESP_LINK_SPEED_2GB 0x14UL 4428 #define PORT_PHY_QCFG_RESP_LINK_SPEED_2_5GB 0x19UL 4429 #define PORT_PHY_QCFG_RESP_LINK_SPEED_10GB 0x64UL 4430 #define PORT_PHY_QCFG_RESP_LINK_SPEED_20GB 0xc8UL 4431 #define PORT_PHY_QCFG_RESP_LINK_SPEED_25GB 0xfaUL 4432 #define PORT_PHY_QCFG_RESP_LINK_SPEED_40GB 0x190UL 4433 #define PORT_PHY_QCFG_RESP_LINK_SPEED_50GB 0x1f4UL 4434 #define PORT_PHY_QCFG_RESP_LINK_SPEED_100GB 0x3e8UL 4435 #define PORT_PHY_QCFG_RESP_LINK_SPEED_200GB 0x7d0UL 4436 #define PORT_PHY_QCFG_RESP_LINK_SPEED_400GB 0xfa0UL 4437 #define PORT_PHY_QCFG_RESP_LINK_SPEED_800GB 0x1f40UL 4438 #define PORT_PHY_QCFG_RESP_LINK_SPEED_10MB 0xffffUL 4439 #define PORT_PHY_QCFG_RESP_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_LINK_SPEED_10MB 4440 u8 duplex_cfg; 4441 #define PORT_PHY_QCFG_RESP_DUPLEX_CFG_HALF 0x0UL 4442 #define PORT_PHY_QCFG_RESP_DUPLEX_CFG_FULL 0x1UL 4443 #define PORT_PHY_QCFG_RESP_DUPLEX_CFG_LAST PORT_PHY_QCFG_RESP_DUPLEX_CFG_FULL 4444 u8 pause; 4445 #define PORT_PHY_QCFG_RESP_PAUSE_TX 0x1UL 4446 #define PORT_PHY_QCFG_RESP_PAUSE_RX 0x2UL 4447 __le16 support_speeds; 4448 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100MBHD 0x1UL 4449 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100MB 0x2UL 4450 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_1GBHD 0x4UL 4451 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_1GB 0x8UL 4452 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_2GB 0x10UL 4453 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_2_5GB 0x20UL 4454 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10GB 0x40UL 4455 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_20GB 0x80UL 4456 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_25GB 0x100UL 4457 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_40GB 0x200UL 4458 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_50GB 0x400UL 4459 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100GB 0x800UL 4460 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10MBHD 0x1000UL 4461 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10MB 0x2000UL 4462 __le16 force_link_speed; 4463 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_100MB 0x1UL 4464 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_1GB 0xaUL 4465 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_2GB 0x14UL 4466 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_2_5GB 0x19UL 4467 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_10GB 0x64UL 4468 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_20GB 0xc8UL 4469 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_25GB 0xfaUL 4470 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_40GB 0x190UL 4471 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_50GB 0x1f4UL 4472 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_100GB 0x3e8UL 4473 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_10MB 0xffffUL 4474 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_10MB 4475 u8 auto_mode; 4476 #define PORT_PHY_QCFG_RESP_AUTO_MODE_NONE 0x0UL 4477 #define PORT_PHY_QCFG_RESP_AUTO_MODE_ALL_SPEEDS 0x1UL 4478 #define PORT_PHY_QCFG_RESP_AUTO_MODE_ONE_SPEED 0x2UL 4479 #define PORT_PHY_QCFG_RESP_AUTO_MODE_ONE_OR_BELOW 0x3UL 4480 #define PORT_PHY_QCFG_RESP_AUTO_MODE_SPEED_MASK 0x4UL 4481 #define PORT_PHY_QCFG_RESP_AUTO_MODE_LAST PORT_PHY_QCFG_RESP_AUTO_MODE_SPEED_MASK 4482 u8 auto_pause; 4483 #define PORT_PHY_QCFG_RESP_AUTO_PAUSE_TX 0x1UL 4484 #define PORT_PHY_QCFG_RESP_AUTO_PAUSE_RX 0x2UL 4485 #define PORT_PHY_QCFG_RESP_AUTO_PAUSE_AUTONEG_PAUSE 0x4UL 4486 __le16 auto_link_speed; 4487 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_100MB 0x1UL 4488 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_1GB 0xaUL 4489 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_2GB 0x14UL 4490 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_2_5GB 0x19UL 4491 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_10GB 0x64UL 4492 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_20GB 0xc8UL 4493 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_25GB 0xfaUL 4494 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_40GB 0x190UL 4495 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_50GB 0x1f4UL 4496 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_100GB 0x3e8UL 4497 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_10MB 0xffffUL 4498 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_10MB 4499 __le16 auto_link_speed_mask; 4500 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100MBHD 0x1UL 4501 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100MB 0x2UL 4502 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_1GBHD 0x4UL 4503 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_1GB 0x8UL 4504 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_2GB 0x10UL 4505 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_2_5GB 0x20UL 4506 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10GB 0x40UL 4507 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_20GB 0x80UL 4508 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_25GB 0x100UL 4509 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_40GB 0x200UL 4510 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_50GB 0x400UL 4511 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100GB 0x800UL 4512 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10MBHD 0x1000UL 4513 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10MB 0x2000UL 4514 u8 wirespeed; 4515 #define PORT_PHY_QCFG_RESP_WIRESPEED_OFF 0x0UL 4516 #define PORT_PHY_QCFG_RESP_WIRESPEED_ON 0x1UL 4517 #define PORT_PHY_QCFG_RESP_WIRESPEED_LAST PORT_PHY_QCFG_RESP_WIRESPEED_ON 4518 u8 lpbk; 4519 #define PORT_PHY_QCFG_RESP_LPBK_NONE 0x0UL 4520 #define PORT_PHY_QCFG_RESP_LPBK_LOCAL 0x1UL 4521 #define PORT_PHY_QCFG_RESP_LPBK_REMOTE 0x2UL 4522 #define PORT_PHY_QCFG_RESP_LPBK_EXTERNAL 0x3UL 4523 #define PORT_PHY_QCFG_RESP_LPBK_LAST PORT_PHY_QCFG_RESP_LPBK_EXTERNAL 4524 u8 force_pause; 4525 #define PORT_PHY_QCFG_RESP_FORCE_PAUSE_TX 0x1UL 4526 #define PORT_PHY_QCFG_RESP_FORCE_PAUSE_RX 0x2UL 4527 u8 module_status; 4528 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_NONE 0x0UL 4529 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_DISABLETX 0x1UL 4530 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_WARNINGMSG 0x2UL 4531 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_PWRDOWN 0x3UL 4532 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_NOTINSERTED 0x4UL 4533 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_CURRENTFAULT 0x5UL 4534 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_OVERHEATED 0x6UL 4535 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_NOTAPPLICABLE 0xffUL 4536 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_LAST PORT_PHY_QCFG_RESP_MODULE_STATUS_NOTAPPLICABLE 4537 __le32 preemphasis; 4538 u8 phy_maj; 4539 u8 phy_min; 4540 u8 phy_bld; 4541 u8 phy_type; 4542 #define PORT_PHY_QCFG_RESP_PHY_TYPE_UNKNOWN 0x0UL 4543 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASECR 0x1UL 4544 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR4 0x2UL 4545 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASELR 0x3UL 4546 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASESR 0x4UL 4547 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR2 0x5UL 4548 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKX 0x6UL 4549 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR 0x7UL 4550 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASET 0x8UL 4551 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASETE 0x9UL 4552 #define PORT_PHY_QCFG_RESP_PHY_TYPE_SGMIIEXTPHY 0xaUL 4553 #define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASECR_CA_L 0xbUL 4554 #define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASECR_CA_S 0xcUL 4555 #define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASECR_CA_N 0xdUL 4556 #define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASESR 0xeUL 4557 #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASECR4 0xfUL 4558 #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASESR4 0x10UL 4559 #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASELR4 0x11UL 4560 #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASEER4 0x12UL 4561 #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASESR10 0x13UL 4562 #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASECR4 0x14UL 4563 #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASESR4 0x15UL 4564 #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASELR4 0x16UL 4565 #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASEER4 0x17UL 4566 #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_ACTIVE_CABLE 0x18UL 4567 #define PORT_PHY_QCFG_RESP_PHY_TYPE_1G_BASET 0x19UL 4568 #define PORT_PHY_QCFG_RESP_PHY_TYPE_1G_BASESX 0x1aUL 4569 #define PORT_PHY_QCFG_RESP_PHY_TYPE_1G_BASECX 0x1bUL 4570 #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASECR4 0x1cUL 4571 #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASESR4 0x1dUL 4572 #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASELR4 0x1eUL 4573 #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASEER4 0x1fUL 4574 #define PORT_PHY_QCFG_RESP_PHY_TYPE_50G_BASECR 0x20UL 4575 #define PORT_PHY_QCFG_RESP_PHY_TYPE_50G_BASESR 0x21UL 4576 #define PORT_PHY_QCFG_RESP_PHY_TYPE_50G_BASELR 0x22UL 4577 #define PORT_PHY_QCFG_RESP_PHY_TYPE_50G_BASEER 0x23UL 4578 #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASECR2 0x24UL 4579 #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASESR2 0x25UL 4580 #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASELR2 0x26UL 4581 #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASEER2 0x27UL 4582 #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASECR 0x28UL 4583 #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASESR 0x29UL 4584 #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASELR 0x2aUL 4585 #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASEER 0x2bUL 4586 #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASECR2 0x2cUL 4587 #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASESR2 0x2dUL 4588 #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASELR2 0x2eUL 4589 #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASEER2 0x2fUL 4590 #define PORT_PHY_QCFG_RESP_PHY_TYPE_400G_BASECR8 0x30UL 4591 #define PORT_PHY_QCFG_RESP_PHY_TYPE_400G_BASESR8 0x31UL 4592 #define PORT_PHY_QCFG_RESP_PHY_TYPE_400G_BASELR8 0x32UL 4593 #define PORT_PHY_QCFG_RESP_PHY_TYPE_400G_BASEER8 0x33UL 4594 #define PORT_PHY_QCFG_RESP_PHY_TYPE_400G_BASECR4 0x34UL 4595 #define PORT_PHY_QCFG_RESP_PHY_TYPE_400G_BASESR4 0x35UL 4596 #define PORT_PHY_QCFG_RESP_PHY_TYPE_400G_BASELR4 0x36UL 4597 #define PORT_PHY_QCFG_RESP_PHY_TYPE_400G_BASEER4 0x37UL 4598 #define PORT_PHY_QCFG_RESP_PHY_TYPE_800G_BASECR8 0x38UL 4599 #define PORT_PHY_QCFG_RESP_PHY_TYPE_800G_BASESR8 0x39UL 4600 #define PORT_PHY_QCFG_RESP_PHY_TYPE_800G_BASELR8 0x3aUL 4601 #define PORT_PHY_QCFG_RESP_PHY_TYPE_800G_BASEER8 0x3bUL 4602 #define PORT_PHY_QCFG_RESP_PHY_TYPE_800G_BASEFR8 0x3cUL 4603 #define PORT_PHY_QCFG_RESP_PHY_TYPE_800G_BASEDR8 0x3dUL 4604 #define PORT_PHY_QCFG_RESP_PHY_TYPE_LAST PORT_PHY_QCFG_RESP_PHY_TYPE_800G_BASEDR8 4605 u8 media_type; 4606 #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_UNKNOWN 0x0UL 4607 #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_TP 0x1UL 4608 #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_DAC 0x2UL 4609 #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_FIBRE 0x3UL 4610 #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_BACKPLANE 0x4UL 4611 #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_LAST PORT_PHY_QCFG_RESP_MEDIA_TYPE_BACKPLANE 4612 u8 xcvr_pkg_type; 4613 #define PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_XCVR_INTERNAL 0x1UL 4614 #define PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_XCVR_EXTERNAL 0x2UL 4615 #define PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_LAST PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_XCVR_EXTERNAL 4616 u8 eee_config_phy_addr; 4617 #define PORT_PHY_QCFG_RESP_PHY_ADDR_MASK 0x1fUL 4618 #define PORT_PHY_QCFG_RESP_PHY_ADDR_SFT 0 4619 #define PORT_PHY_QCFG_RESP_EEE_CONFIG_MASK 0xe0UL 4620 #define PORT_PHY_QCFG_RESP_EEE_CONFIG_SFT 5 4621 #define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_ENABLED 0x20UL 4622 #define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_ACTIVE 0x40UL 4623 #define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_TX_LPI 0x80UL 4624 u8 parallel_detect; 4625 #define PORT_PHY_QCFG_RESP_PARALLEL_DETECT 0x1UL 4626 __le16 link_partner_adv_speeds; 4627 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100MBHD 0x1UL 4628 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100MB 0x2UL 4629 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_1GBHD 0x4UL 4630 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_1GB 0x8UL 4631 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_2GB 0x10UL 4632 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_2_5GB 0x20UL 4633 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10GB 0x40UL 4634 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_20GB 0x80UL 4635 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_25GB 0x100UL 4636 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_40GB 0x200UL 4637 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_50GB 0x400UL 4638 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100GB 0x800UL 4639 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10MBHD 0x1000UL 4640 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10MB 0x2000UL 4641 u8 link_partner_adv_auto_mode; 4642 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_NONE 0x0UL 4643 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ALL_SPEEDS 0x1UL 4644 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ONE_SPEED 0x2UL 4645 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ONE_OR_BELOW 0x3UL 4646 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_SPEED_MASK 0x4UL 4647 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_LAST PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_SPEED_MASK 4648 u8 link_partner_adv_pause; 4649 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_PAUSE_TX 0x1UL 4650 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_PAUSE_RX 0x2UL 4651 __le16 adv_eee_link_speed_mask; 4652 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD1 0x1UL 4653 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_100MB 0x2UL 4654 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD2 0x4UL 4655 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_1GB 0x8UL 4656 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD3 0x10UL 4657 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD4 0x20UL 4658 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_10GB 0x40UL 4659 __le16 link_partner_adv_eee_link_speed_mask; 4660 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD1 0x1UL 4661 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_100MB 0x2UL 4662 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD2 0x4UL 4663 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_1GB 0x8UL 4664 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD3 0x10UL 4665 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD4 0x20UL 4666 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_10GB 0x40UL 4667 __le32 xcvr_identifier_type_tx_lpi_timer; 4668 #define PORT_PHY_QCFG_RESP_TX_LPI_TIMER_MASK 0xffffffUL 4669 #define PORT_PHY_QCFG_RESP_TX_LPI_TIMER_SFT 0 4670 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_MASK 0xff000000UL 4671 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_SFT 24 4672 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_UNKNOWN (0x0UL << 24) 4673 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_SFP (0x3UL << 24) 4674 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP (0xcUL << 24) 4675 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFPPLUS (0xdUL << 24) 4676 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP28 (0x11UL << 24) 4677 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFPDD (0x18UL << 24) 4678 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP112 (0x1eUL << 24) 4679 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_SFPDD (0x1fUL << 24) 4680 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_CSFP (0x20UL << 24) 4681 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_LAST PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_CSFP 4682 __le16 fec_cfg; 4683 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_NONE_SUPPORTED 0x1UL 4684 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_AUTONEG_SUPPORTED 0x2UL 4685 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_AUTONEG_ENABLED 0x4UL 4686 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE74_SUPPORTED 0x8UL 4687 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE74_ENABLED 0x10UL 4688 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE91_SUPPORTED 0x20UL 4689 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE91_ENABLED 0x40UL 4690 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS544_1XN_SUPPORTED 0x80UL 4691 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS544_1XN_ENABLED 0x100UL 4692 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS544_IEEE_SUPPORTED 0x200UL 4693 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS544_IEEE_ENABLED 0x400UL 4694 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS272_1XN_SUPPORTED 0x800UL 4695 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS272_1XN_ENABLED 0x1000UL 4696 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS272_IEEE_SUPPORTED 0x2000UL 4697 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS272_IEEE_ENABLED 0x4000UL 4698 u8 duplex_state; 4699 #define PORT_PHY_QCFG_RESP_DUPLEX_STATE_HALF 0x0UL 4700 #define PORT_PHY_QCFG_RESP_DUPLEX_STATE_FULL 0x1UL 4701 #define PORT_PHY_QCFG_RESP_DUPLEX_STATE_LAST PORT_PHY_QCFG_RESP_DUPLEX_STATE_FULL 4702 u8 option_flags; 4703 #define PORT_PHY_QCFG_RESP_OPTION_FLAGS_MEDIA_AUTO_DETECT 0x1UL 4704 #define PORT_PHY_QCFG_RESP_OPTION_FLAGS_SIGNAL_MODE_KNOWN 0x2UL 4705 #define PORT_PHY_QCFG_RESP_OPTION_FLAGS_SPEEDS2_SUPPORTED 0x4UL 4706 char phy_vendor_name[16]; 4707 char phy_vendor_partnumber[16]; 4708 __le16 support_pam4_speeds; 4709 #define PORT_PHY_QCFG_RESP_SUPPORT_PAM4_SPEEDS_50G 0x1UL 4710 #define PORT_PHY_QCFG_RESP_SUPPORT_PAM4_SPEEDS_100G 0x2UL 4711 #define PORT_PHY_QCFG_RESP_SUPPORT_PAM4_SPEEDS_200G 0x4UL 4712 __le16 force_pam4_link_speed; 4713 #define PORT_PHY_QCFG_RESP_FORCE_PAM4_LINK_SPEED_50GB 0x1f4UL 4714 #define PORT_PHY_QCFG_RESP_FORCE_PAM4_LINK_SPEED_100GB 0x3e8UL 4715 #define PORT_PHY_QCFG_RESP_FORCE_PAM4_LINK_SPEED_200GB 0x7d0UL 4716 #define PORT_PHY_QCFG_RESP_FORCE_PAM4_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_FORCE_PAM4_LINK_SPEED_200GB 4717 __le16 auto_pam4_link_speed_mask; 4718 #define PORT_PHY_QCFG_RESP_AUTO_PAM4_LINK_SPEED_MASK_50G 0x1UL 4719 #define PORT_PHY_QCFG_RESP_AUTO_PAM4_LINK_SPEED_MASK_100G 0x2UL 4720 #define PORT_PHY_QCFG_RESP_AUTO_PAM4_LINK_SPEED_MASK_200G 0x4UL 4721 u8 link_partner_pam4_adv_speeds; 4722 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_PAM4_ADV_SPEEDS_50GB 0x1UL 4723 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_PAM4_ADV_SPEEDS_100GB 0x2UL 4724 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_PAM4_ADV_SPEEDS_200GB 0x4UL 4725 u8 link_down_reason; 4726 #define PORT_PHY_QCFG_RESP_LINK_DOWN_REASON_RF 0x1UL 4727 #define PORT_PHY_QCFG_RESP_LINK_DOWN_REASON_OTP_SPEED_VIOLATION 0x2UL 4728 __le16 support_speeds2; 4729 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_1GB 0x1UL 4730 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_10GB 0x2UL 4731 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_25GB 0x4UL 4732 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_40GB 0x8UL 4733 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_50GB 0x10UL 4734 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_100GB 0x20UL 4735 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_50GB_PAM4_56 0x40UL 4736 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_100GB_PAM4_56 0x80UL 4737 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_200GB_PAM4_56 0x100UL 4738 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_400GB_PAM4_56 0x200UL 4739 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_100GB_PAM4_112 0x400UL 4740 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_200GB_PAM4_112 0x800UL 4741 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_400GB_PAM4_112 0x1000UL 4742 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_800GB_PAM4_112 0x2000UL 4743 __le16 force_link_speeds2; 4744 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_1GB 0xaUL 4745 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_10GB 0x64UL 4746 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_25GB 0xfaUL 4747 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_40GB 0x190UL 4748 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_50GB 0x1f4UL 4749 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_100GB 0x3e8UL 4750 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_50GB_PAM4_56 0x1f5UL 4751 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_100GB_PAM4_56 0x3e9UL 4752 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_200GB_PAM4_56 0x7d1UL 4753 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_400GB_PAM4_56 0xfa1UL 4754 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_100GB_PAM4_112 0x3eaUL 4755 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_200GB_PAM4_112 0x7d2UL 4756 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_400GB_PAM4_112 0xfa2UL 4757 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_800GB_PAM4_112 0x1f42UL 4758 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_LAST PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_800GB_PAM4_112 4759 __le16 auto_link_speeds2; 4760 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_1GB 0x1UL 4761 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_10GB 0x2UL 4762 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_25GB 0x4UL 4763 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_40GB 0x8UL 4764 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_50GB 0x10UL 4765 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_100GB 0x20UL 4766 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_50GB_PAM4_56 0x40UL 4767 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_100GB_PAM4_56 0x80UL 4768 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_200GB_PAM4_56 0x100UL 4769 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_400GB_PAM4_56 0x200UL 4770 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_100GB_PAM4_112 0x400UL 4771 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_200GB_PAM4_112 0x800UL 4772 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_400GB_PAM4_112 0x1000UL 4773 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_800GB_PAM4_112 0x2000UL 4774 u8 active_lanes; 4775 u8 valid; 4776 }; 4777 4778 /* hwrm_port_mac_cfg_input (size:448b/56B) */ 4779 struct hwrm_port_mac_cfg_input { 4780 __le16 req_type; 4781 __le16 cmpl_ring; 4782 __le16 seq_id; 4783 __le16 target_id; 4784 __le64 resp_addr; 4785 __le32 flags; 4786 #define PORT_MAC_CFG_REQ_FLAGS_MATCH_LINK 0x1UL 4787 #define PORT_MAC_CFG_REQ_FLAGS_VLAN_PRI2COS_ENABLE 0x2UL 4788 #define PORT_MAC_CFG_REQ_FLAGS_TUNNEL_PRI2COS_ENABLE 0x4UL 4789 #define PORT_MAC_CFG_REQ_FLAGS_IP_DSCP2COS_ENABLE 0x8UL 4790 #define PORT_MAC_CFG_REQ_FLAGS_PTP_RX_TS_CAPTURE_ENABLE 0x10UL 4791 #define PORT_MAC_CFG_REQ_FLAGS_PTP_RX_TS_CAPTURE_DISABLE 0x20UL 4792 #define PORT_MAC_CFG_REQ_FLAGS_PTP_TX_TS_CAPTURE_ENABLE 0x40UL 4793 #define PORT_MAC_CFG_REQ_FLAGS_PTP_TX_TS_CAPTURE_DISABLE 0x80UL 4794 #define PORT_MAC_CFG_REQ_FLAGS_OOB_WOL_ENABLE 0x100UL 4795 #define PORT_MAC_CFG_REQ_FLAGS_OOB_WOL_DISABLE 0x200UL 4796 #define PORT_MAC_CFG_REQ_FLAGS_VLAN_PRI2COS_DISABLE 0x400UL 4797 #define PORT_MAC_CFG_REQ_FLAGS_TUNNEL_PRI2COS_DISABLE 0x800UL 4798 #define PORT_MAC_CFG_REQ_FLAGS_IP_DSCP2COS_DISABLE 0x1000UL 4799 #define PORT_MAC_CFG_REQ_FLAGS_PTP_ONE_STEP_TX_TS 0x2000UL 4800 #define PORT_MAC_CFG_REQ_FLAGS_ALL_RX_TS_CAPTURE_ENABLE 0x4000UL 4801 #define PORT_MAC_CFG_REQ_FLAGS_ALL_RX_TS_CAPTURE_DISABLE 0x8000UL 4802 __le32 enables; 4803 #define PORT_MAC_CFG_REQ_ENABLES_IPG 0x1UL 4804 #define PORT_MAC_CFG_REQ_ENABLES_LPBK 0x2UL 4805 #define PORT_MAC_CFG_REQ_ENABLES_VLAN_PRI2COS_MAP_PRI 0x4UL 4806 #define PORT_MAC_CFG_REQ_ENABLES_TUNNEL_PRI2COS_MAP_PRI 0x10UL 4807 #define PORT_MAC_CFG_REQ_ENABLES_DSCP2COS_MAP_PRI 0x20UL 4808 #define PORT_MAC_CFG_REQ_ENABLES_RX_TS_CAPTURE_PTP_MSG_TYPE 0x40UL 4809 #define PORT_MAC_CFG_REQ_ENABLES_TX_TS_CAPTURE_PTP_MSG_TYPE 0x80UL 4810 #define PORT_MAC_CFG_REQ_ENABLES_COS_FIELD_CFG 0x100UL 4811 #define PORT_MAC_CFG_REQ_ENABLES_PTP_FREQ_ADJ_PPB 0x200UL 4812 #define PORT_MAC_CFG_REQ_ENABLES_PTP_ADJ_PHASE 0x400UL 4813 #define PORT_MAC_CFG_REQ_ENABLES_PTP_LOAD_CONTROL 0x800UL 4814 __le16 port_id; 4815 u8 ipg; 4816 u8 lpbk; 4817 #define PORT_MAC_CFG_REQ_LPBK_NONE 0x0UL 4818 #define PORT_MAC_CFG_REQ_LPBK_LOCAL 0x1UL 4819 #define PORT_MAC_CFG_REQ_LPBK_REMOTE 0x2UL 4820 #define PORT_MAC_CFG_REQ_LPBK_LAST PORT_MAC_CFG_REQ_LPBK_REMOTE 4821 u8 vlan_pri2cos_map_pri; 4822 u8 reserved1; 4823 u8 tunnel_pri2cos_map_pri; 4824 u8 dscp2pri_map_pri; 4825 __le16 rx_ts_capture_ptp_msg_type; 4826 __le16 tx_ts_capture_ptp_msg_type; 4827 u8 cos_field_cfg; 4828 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_RSVD1 0x1UL 4829 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_MASK 0x6UL 4830 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_SFT 1 4831 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_INNERMOST (0x0UL << 1) 4832 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_OUTER (0x1UL << 1) 4833 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_OUTERMOST (0x2UL << 1) 4834 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_UNSPECIFIED (0x3UL << 1) 4835 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_LAST PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_UNSPECIFIED 4836 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_MASK 0x18UL 4837 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_SFT 3 4838 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_INNERMOST (0x0UL << 3) 4839 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_OUTER (0x1UL << 3) 4840 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_OUTERMOST (0x2UL << 3) 4841 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_UNSPECIFIED (0x3UL << 3) 4842 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_LAST PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_UNSPECIFIED 4843 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_DEFAULT_COS_MASK 0xe0UL 4844 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_DEFAULT_COS_SFT 5 4845 u8 unused_0[3]; 4846 __le32 ptp_freq_adj_ppb; 4847 u8 unused_1[3]; 4848 u8 ptp_load_control; 4849 #define PORT_MAC_CFG_REQ_PTP_LOAD_CONTROL_NONE 0x0UL 4850 #define PORT_MAC_CFG_REQ_PTP_LOAD_CONTROL_IMMEDIATE 0x1UL 4851 #define PORT_MAC_CFG_REQ_PTP_LOAD_CONTROL_PPS_EVENT 0x2UL 4852 #define PORT_MAC_CFG_REQ_PTP_LOAD_CONTROL_LAST PORT_MAC_CFG_REQ_PTP_LOAD_CONTROL_PPS_EVENT 4853 __le64 ptp_adj_phase; 4854 }; 4855 4856 /* hwrm_port_mac_cfg_output (size:128b/16B) */ 4857 struct hwrm_port_mac_cfg_output { 4858 __le16 error_code; 4859 __le16 req_type; 4860 __le16 seq_id; 4861 __le16 resp_len; 4862 __le16 mru; 4863 __le16 mtu; 4864 u8 ipg; 4865 u8 lpbk; 4866 #define PORT_MAC_CFG_RESP_LPBK_NONE 0x0UL 4867 #define PORT_MAC_CFG_RESP_LPBK_LOCAL 0x1UL 4868 #define PORT_MAC_CFG_RESP_LPBK_REMOTE 0x2UL 4869 #define PORT_MAC_CFG_RESP_LPBK_LAST PORT_MAC_CFG_RESP_LPBK_REMOTE 4870 u8 unused_0; 4871 u8 valid; 4872 }; 4873 4874 /* hwrm_port_mac_ptp_qcfg_input (size:192b/24B) */ 4875 struct hwrm_port_mac_ptp_qcfg_input { 4876 __le16 req_type; 4877 __le16 cmpl_ring; 4878 __le16 seq_id; 4879 __le16 target_id; 4880 __le64 resp_addr; 4881 __le16 port_id; 4882 u8 unused_0[6]; 4883 }; 4884 4885 /* hwrm_port_mac_ptp_qcfg_output (size:704b/88B) */ 4886 struct hwrm_port_mac_ptp_qcfg_output { 4887 __le16 error_code; 4888 __le16 req_type; 4889 __le16 seq_id; 4890 __le16 resp_len; 4891 u8 flags; 4892 #define PORT_MAC_PTP_QCFG_RESP_FLAGS_DIRECT_ACCESS 0x1UL 4893 #define PORT_MAC_PTP_QCFG_RESP_FLAGS_ONE_STEP_TX_TS 0x4UL 4894 #define PORT_MAC_PTP_QCFG_RESP_FLAGS_HWRM_ACCESS 0x8UL 4895 #define PORT_MAC_PTP_QCFG_RESP_FLAGS_PARTIAL_DIRECT_ACCESS_REF_CLOCK 0x10UL 4896 #define PORT_MAC_PTP_QCFG_RESP_FLAGS_RTC_CONFIGURED 0x20UL 4897 #define PORT_MAC_PTP_QCFG_RESP_FLAGS_64B_PHC_TIME 0x40UL 4898 u8 unused_0[3]; 4899 __le32 rx_ts_reg_off_lower; 4900 __le32 rx_ts_reg_off_upper; 4901 __le32 rx_ts_reg_off_seq_id; 4902 __le32 rx_ts_reg_off_src_id_0; 4903 __le32 rx_ts_reg_off_src_id_1; 4904 __le32 rx_ts_reg_off_src_id_2; 4905 __le32 rx_ts_reg_off_domain_id; 4906 __le32 rx_ts_reg_off_fifo; 4907 __le32 rx_ts_reg_off_fifo_adv; 4908 __le32 rx_ts_reg_off_granularity; 4909 __le32 tx_ts_reg_off_lower; 4910 __le32 tx_ts_reg_off_upper; 4911 __le32 tx_ts_reg_off_seq_id; 4912 __le32 tx_ts_reg_off_fifo; 4913 __le32 tx_ts_reg_off_granularity; 4914 __le32 ts_ref_clock_reg_lower; 4915 __le32 ts_ref_clock_reg_upper; 4916 u8 unused_1[7]; 4917 u8 valid; 4918 }; 4919 4920 /* tx_port_stats (size:3264b/408B) */ 4921 struct tx_port_stats { 4922 __le64 tx_64b_frames; 4923 __le64 tx_65b_127b_frames; 4924 __le64 tx_128b_255b_frames; 4925 __le64 tx_256b_511b_frames; 4926 __le64 tx_512b_1023b_frames; 4927 __le64 tx_1024b_1518b_frames; 4928 __le64 tx_good_vlan_frames; 4929 __le64 tx_1519b_2047b_frames; 4930 __le64 tx_2048b_4095b_frames; 4931 __le64 tx_4096b_9216b_frames; 4932 __le64 tx_9217b_16383b_frames; 4933 __le64 tx_good_frames; 4934 __le64 tx_total_frames; 4935 __le64 tx_ucast_frames; 4936 __le64 tx_mcast_frames; 4937 __le64 tx_bcast_frames; 4938 __le64 tx_pause_frames; 4939 __le64 tx_pfc_frames; 4940 __le64 tx_jabber_frames; 4941 __le64 tx_fcs_err_frames; 4942 __le64 tx_control_frames; 4943 __le64 tx_oversz_frames; 4944 __le64 tx_single_dfrl_frames; 4945 __le64 tx_multi_dfrl_frames; 4946 __le64 tx_single_coll_frames; 4947 __le64 tx_multi_coll_frames; 4948 __le64 tx_late_coll_frames; 4949 __le64 tx_excessive_coll_frames; 4950 __le64 tx_frag_frames; 4951 __le64 tx_err; 4952 __le64 tx_tagged_frames; 4953 __le64 tx_dbl_tagged_frames; 4954 __le64 tx_runt_frames; 4955 __le64 tx_fifo_underruns; 4956 __le64 tx_pfc_ena_frames_pri0; 4957 __le64 tx_pfc_ena_frames_pri1; 4958 __le64 tx_pfc_ena_frames_pri2; 4959 __le64 tx_pfc_ena_frames_pri3; 4960 __le64 tx_pfc_ena_frames_pri4; 4961 __le64 tx_pfc_ena_frames_pri5; 4962 __le64 tx_pfc_ena_frames_pri6; 4963 __le64 tx_pfc_ena_frames_pri7; 4964 __le64 tx_eee_lpi_events; 4965 __le64 tx_eee_lpi_duration; 4966 __le64 tx_llfc_logical_msgs; 4967 __le64 tx_hcfc_msgs; 4968 __le64 tx_total_collisions; 4969 __le64 tx_bytes; 4970 __le64 tx_xthol_frames; 4971 __le64 tx_stat_discard; 4972 __le64 tx_stat_error; 4973 }; 4974 4975 /* rx_port_stats (size:4224b/528B) */ 4976 struct rx_port_stats { 4977 __le64 rx_64b_frames; 4978 __le64 rx_65b_127b_frames; 4979 __le64 rx_128b_255b_frames; 4980 __le64 rx_256b_511b_frames; 4981 __le64 rx_512b_1023b_frames; 4982 __le64 rx_1024b_1518b_frames; 4983 __le64 rx_good_vlan_frames; 4984 __le64 rx_1519b_2047b_frames; 4985 __le64 rx_2048b_4095b_frames; 4986 __le64 rx_4096b_9216b_frames; 4987 __le64 rx_9217b_16383b_frames; 4988 __le64 rx_total_frames; 4989 __le64 rx_ucast_frames; 4990 __le64 rx_mcast_frames; 4991 __le64 rx_bcast_frames; 4992 __le64 rx_fcs_err_frames; 4993 __le64 rx_ctrl_frames; 4994 __le64 rx_pause_frames; 4995 __le64 rx_pfc_frames; 4996 __le64 rx_unsupported_opcode_frames; 4997 __le64 rx_unsupported_da_pausepfc_frames; 4998 __le64 rx_wrong_sa_frames; 4999 __le64 rx_align_err_frames; 5000 __le64 rx_oor_len_frames; 5001 __le64 rx_code_err_frames; 5002 __le64 rx_false_carrier_frames; 5003 __le64 rx_ovrsz_frames; 5004 __le64 rx_jbr_frames; 5005 __le64 rx_mtu_err_frames; 5006 __le64 rx_match_crc_frames; 5007 __le64 rx_promiscuous_frames; 5008 __le64 rx_tagged_frames; 5009 __le64 rx_double_tagged_frames; 5010 __le64 rx_trunc_frames; 5011 __le64 rx_good_frames; 5012 __le64 rx_pfc_xon2xoff_frames_pri0; 5013 __le64 rx_pfc_xon2xoff_frames_pri1; 5014 __le64 rx_pfc_xon2xoff_frames_pri2; 5015 __le64 rx_pfc_xon2xoff_frames_pri3; 5016 __le64 rx_pfc_xon2xoff_frames_pri4; 5017 __le64 rx_pfc_xon2xoff_frames_pri5; 5018 __le64 rx_pfc_xon2xoff_frames_pri6; 5019 __le64 rx_pfc_xon2xoff_frames_pri7; 5020 __le64 rx_pfc_ena_frames_pri0; 5021 __le64 rx_pfc_ena_frames_pri1; 5022 __le64 rx_pfc_ena_frames_pri2; 5023 __le64 rx_pfc_ena_frames_pri3; 5024 __le64 rx_pfc_ena_frames_pri4; 5025 __le64 rx_pfc_ena_frames_pri5; 5026 __le64 rx_pfc_ena_frames_pri6; 5027 __le64 rx_pfc_ena_frames_pri7; 5028 __le64 rx_sch_crc_err_frames; 5029 __le64 rx_undrsz_frames; 5030 __le64 rx_frag_frames; 5031 __le64 rx_eee_lpi_events; 5032 __le64 rx_eee_lpi_duration; 5033 __le64 rx_llfc_physical_msgs; 5034 __le64 rx_llfc_logical_msgs; 5035 __le64 rx_llfc_msgs_with_crc_err; 5036 __le64 rx_hcfc_msgs; 5037 __le64 rx_hcfc_msgs_with_crc_err; 5038 __le64 rx_bytes; 5039 __le64 rx_runt_bytes; 5040 __le64 rx_runt_frames; 5041 __le64 rx_stat_discard; 5042 __le64 rx_stat_err; 5043 }; 5044 5045 /* hwrm_port_qstats_input (size:320b/40B) */ 5046 struct hwrm_port_qstats_input { 5047 __le16 req_type; 5048 __le16 cmpl_ring; 5049 __le16 seq_id; 5050 __le16 target_id; 5051 __le64 resp_addr; 5052 __le16 port_id; 5053 u8 flags; 5054 #define PORT_QSTATS_REQ_FLAGS_COUNTER_MASK 0x1UL 5055 u8 unused_0[5]; 5056 __le64 tx_stat_host_addr; 5057 __le64 rx_stat_host_addr; 5058 }; 5059 5060 /* hwrm_port_qstats_output (size:128b/16B) */ 5061 struct hwrm_port_qstats_output { 5062 __le16 error_code; 5063 __le16 req_type; 5064 __le16 seq_id; 5065 __le16 resp_len; 5066 __le16 tx_stat_size; 5067 __le16 rx_stat_size; 5068 u8 flags; 5069 #define PORT_QSTATS_RESP_FLAGS_CLEARED 0x1UL 5070 u8 unused_0[2]; 5071 u8 valid; 5072 }; 5073 5074 /* tx_port_stats_ext (size:2048b/256B) */ 5075 struct tx_port_stats_ext { 5076 __le64 tx_bytes_cos0; 5077 __le64 tx_bytes_cos1; 5078 __le64 tx_bytes_cos2; 5079 __le64 tx_bytes_cos3; 5080 __le64 tx_bytes_cos4; 5081 __le64 tx_bytes_cos5; 5082 __le64 tx_bytes_cos6; 5083 __le64 tx_bytes_cos7; 5084 __le64 tx_packets_cos0; 5085 __le64 tx_packets_cos1; 5086 __le64 tx_packets_cos2; 5087 __le64 tx_packets_cos3; 5088 __le64 tx_packets_cos4; 5089 __le64 tx_packets_cos5; 5090 __le64 tx_packets_cos6; 5091 __le64 tx_packets_cos7; 5092 __le64 pfc_pri0_tx_duration_us; 5093 __le64 pfc_pri0_tx_transitions; 5094 __le64 pfc_pri1_tx_duration_us; 5095 __le64 pfc_pri1_tx_transitions; 5096 __le64 pfc_pri2_tx_duration_us; 5097 __le64 pfc_pri2_tx_transitions; 5098 __le64 pfc_pri3_tx_duration_us; 5099 __le64 pfc_pri3_tx_transitions; 5100 __le64 pfc_pri4_tx_duration_us; 5101 __le64 pfc_pri4_tx_transitions; 5102 __le64 pfc_pri5_tx_duration_us; 5103 __le64 pfc_pri5_tx_transitions; 5104 __le64 pfc_pri6_tx_duration_us; 5105 __le64 pfc_pri6_tx_transitions; 5106 __le64 pfc_pri7_tx_duration_us; 5107 __le64 pfc_pri7_tx_transitions; 5108 }; 5109 5110 /* rx_port_stats_ext (size:3904b/488B) */ 5111 struct rx_port_stats_ext { 5112 __le64 link_down_events; 5113 __le64 continuous_pause_events; 5114 __le64 resume_pause_events; 5115 __le64 continuous_roce_pause_events; 5116 __le64 resume_roce_pause_events; 5117 __le64 rx_bytes_cos0; 5118 __le64 rx_bytes_cos1; 5119 __le64 rx_bytes_cos2; 5120 __le64 rx_bytes_cos3; 5121 __le64 rx_bytes_cos4; 5122 __le64 rx_bytes_cos5; 5123 __le64 rx_bytes_cos6; 5124 __le64 rx_bytes_cos7; 5125 __le64 rx_packets_cos0; 5126 __le64 rx_packets_cos1; 5127 __le64 rx_packets_cos2; 5128 __le64 rx_packets_cos3; 5129 __le64 rx_packets_cos4; 5130 __le64 rx_packets_cos5; 5131 __le64 rx_packets_cos6; 5132 __le64 rx_packets_cos7; 5133 __le64 pfc_pri0_rx_duration_us; 5134 __le64 pfc_pri0_rx_transitions; 5135 __le64 pfc_pri1_rx_duration_us; 5136 __le64 pfc_pri1_rx_transitions; 5137 __le64 pfc_pri2_rx_duration_us; 5138 __le64 pfc_pri2_rx_transitions; 5139 __le64 pfc_pri3_rx_duration_us; 5140 __le64 pfc_pri3_rx_transitions; 5141 __le64 pfc_pri4_rx_duration_us; 5142 __le64 pfc_pri4_rx_transitions; 5143 __le64 pfc_pri5_rx_duration_us; 5144 __le64 pfc_pri5_rx_transitions; 5145 __le64 pfc_pri6_rx_duration_us; 5146 __le64 pfc_pri6_rx_transitions; 5147 __le64 pfc_pri7_rx_duration_us; 5148 __le64 pfc_pri7_rx_transitions; 5149 __le64 rx_bits; 5150 __le64 rx_buffer_passed_threshold; 5151 __le64 rx_pcs_symbol_err; 5152 __le64 rx_corrected_bits; 5153 __le64 rx_discard_bytes_cos0; 5154 __le64 rx_discard_bytes_cos1; 5155 __le64 rx_discard_bytes_cos2; 5156 __le64 rx_discard_bytes_cos3; 5157 __le64 rx_discard_bytes_cos4; 5158 __le64 rx_discard_bytes_cos5; 5159 __le64 rx_discard_bytes_cos6; 5160 __le64 rx_discard_bytes_cos7; 5161 __le64 rx_discard_packets_cos0; 5162 __le64 rx_discard_packets_cos1; 5163 __le64 rx_discard_packets_cos2; 5164 __le64 rx_discard_packets_cos3; 5165 __le64 rx_discard_packets_cos4; 5166 __le64 rx_discard_packets_cos5; 5167 __le64 rx_discard_packets_cos6; 5168 __le64 rx_discard_packets_cos7; 5169 __le64 rx_fec_corrected_blocks; 5170 __le64 rx_fec_uncorrectable_blocks; 5171 __le64 rx_filter_miss; 5172 __le64 rx_fec_symbol_err; 5173 }; 5174 5175 /* hwrm_port_qstats_ext_input (size:320b/40B) */ 5176 struct hwrm_port_qstats_ext_input { 5177 __le16 req_type; 5178 __le16 cmpl_ring; 5179 __le16 seq_id; 5180 __le16 target_id; 5181 __le64 resp_addr; 5182 __le16 port_id; 5183 __le16 tx_stat_size; 5184 __le16 rx_stat_size; 5185 u8 flags; 5186 #define PORT_QSTATS_EXT_REQ_FLAGS_COUNTER_MASK 0x1UL 5187 u8 unused_0; 5188 __le64 tx_stat_host_addr; 5189 __le64 rx_stat_host_addr; 5190 }; 5191 5192 /* hwrm_port_qstats_ext_output (size:128b/16B) */ 5193 struct hwrm_port_qstats_ext_output { 5194 __le16 error_code; 5195 __le16 req_type; 5196 __le16 seq_id; 5197 __le16 resp_len; 5198 __le16 tx_stat_size; 5199 __le16 rx_stat_size; 5200 __le16 total_active_cos_queues; 5201 u8 flags; 5202 #define PORT_QSTATS_EXT_RESP_FLAGS_CLEAR_ROCE_COUNTERS_SUPPORTED 0x1UL 5203 #define PORT_QSTATS_EXT_RESP_FLAGS_CLEARED 0x2UL 5204 u8 valid; 5205 }; 5206 5207 /* hwrm_port_lpbk_qstats_input (size:256b/32B) */ 5208 struct hwrm_port_lpbk_qstats_input { 5209 __le16 req_type; 5210 __le16 cmpl_ring; 5211 __le16 seq_id; 5212 __le16 target_id; 5213 __le64 resp_addr; 5214 __le16 lpbk_stat_size; 5215 u8 flags; 5216 #define PORT_LPBK_QSTATS_REQ_FLAGS_COUNTER_MASK 0x1UL 5217 u8 unused_0[5]; 5218 __le64 lpbk_stat_host_addr; 5219 }; 5220 5221 /* hwrm_port_lpbk_qstats_output (size:128b/16B) */ 5222 struct hwrm_port_lpbk_qstats_output { 5223 __le16 error_code; 5224 __le16 req_type; 5225 __le16 seq_id; 5226 __le16 resp_len; 5227 __le16 lpbk_stat_size; 5228 u8 unused_0[5]; 5229 u8 valid; 5230 }; 5231 5232 /* port_lpbk_stats (size:640b/80B) */ 5233 struct port_lpbk_stats { 5234 __le64 lpbk_ucast_frames; 5235 __le64 lpbk_mcast_frames; 5236 __le64 lpbk_bcast_frames; 5237 __le64 lpbk_ucast_bytes; 5238 __le64 lpbk_mcast_bytes; 5239 __le64 lpbk_bcast_bytes; 5240 __le64 lpbk_tx_discards; 5241 __le64 lpbk_tx_errors; 5242 __le64 lpbk_rx_discards; 5243 __le64 lpbk_rx_errors; 5244 }; 5245 5246 /* hwrm_port_ecn_qstats_input (size:256b/32B) */ 5247 struct hwrm_port_ecn_qstats_input { 5248 __le16 req_type; 5249 __le16 cmpl_ring; 5250 __le16 seq_id; 5251 __le16 target_id; 5252 __le64 resp_addr; 5253 __le16 port_id; 5254 __le16 ecn_stat_buf_size; 5255 u8 flags; 5256 #define PORT_ECN_QSTATS_REQ_FLAGS_COUNTER_MASK 0x1UL 5257 u8 unused_0[3]; 5258 __le64 ecn_stat_host_addr; 5259 }; 5260 5261 /* hwrm_port_ecn_qstats_output (size:128b/16B) */ 5262 struct hwrm_port_ecn_qstats_output { 5263 __le16 error_code; 5264 __le16 req_type; 5265 __le16 seq_id; 5266 __le16 resp_len; 5267 __le16 ecn_stat_buf_size; 5268 u8 mark_en; 5269 u8 unused_0[4]; 5270 u8 valid; 5271 }; 5272 5273 /* port_stats_ecn (size:512b/64B) */ 5274 struct port_stats_ecn { 5275 __le64 mark_cnt_cos0; 5276 __le64 mark_cnt_cos1; 5277 __le64 mark_cnt_cos2; 5278 __le64 mark_cnt_cos3; 5279 __le64 mark_cnt_cos4; 5280 __le64 mark_cnt_cos5; 5281 __le64 mark_cnt_cos6; 5282 __le64 mark_cnt_cos7; 5283 }; 5284 5285 /* hwrm_port_clr_stats_input (size:192b/24B) */ 5286 struct hwrm_port_clr_stats_input { 5287 __le16 req_type; 5288 __le16 cmpl_ring; 5289 __le16 seq_id; 5290 __le16 target_id; 5291 __le64 resp_addr; 5292 __le16 port_id; 5293 u8 flags; 5294 #define PORT_CLR_STATS_REQ_FLAGS_ROCE_COUNTERS 0x1UL 5295 u8 unused_0[5]; 5296 }; 5297 5298 /* hwrm_port_clr_stats_output (size:128b/16B) */ 5299 struct hwrm_port_clr_stats_output { 5300 __le16 error_code; 5301 __le16 req_type; 5302 __le16 seq_id; 5303 __le16 resp_len; 5304 u8 unused_0[7]; 5305 u8 valid; 5306 }; 5307 5308 /* hwrm_port_lpbk_clr_stats_input (size:192b/24B) */ 5309 struct hwrm_port_lpbk_clr_stats_input { 5310 __le16 req_type; 5311 __le16 cmpl_ring; 5312 __le16 seq_id; 5313 __le16 target_id; 5314 __le64 resp_addr; 5315 __le16 port_id; 5316 u8 unused_0[6]; 5317 }; 5318 5319 /* hwrm_port_lpbk_clr_stats_output (size:128b/16B) */ 5320 struct hwrm_port_lpbk_clr_stats_output { 5321 __le16 error_code; 5322 __le16 req_type; 5323 __le16 seq_id; 5324 __le16 resp_len; 5325 u8 unused_0[7]; 5326 u8 valid; 5327 }; 5328 5329 /* hwrm_port_ts_query_input (size:320b/40B) */ 5330 struct hwrm_port_ts_query_input { 5331 __le16 req_type; 5332 __le16 cmpl_ring; 5333 __le16 seq_id; 5334 __le16 target_id; 5335 __le64 resp_addr; 5336 __le32 flags; 5337 #define PORT_TS_QUERY_REQ_FLAGS_PATH 0x1UL 5338 #define PORT_TS_QUERY_REQ_FLAGS_PATH_TX 0x0UL 5339 #define PORT_TS_QUERY_REQ_FLAGS_PATH_RX 0x1UL 5340 #define PORT_TS_QUERY_REQ_FLAGS_PATH_LAST PORT_TS_QUERY_REQ_FLAGS_PATH_RX 5341 #define PORT_TS_QUERY_REQ_FLAGS_CURRENT_TIME 0x2UL 5342 __le16 port_id; 5343 u8 unused_0[2]; 5344 __le16 enables; 5345 #define PORT_TS_QUERY_REQ_ENABLES_TS_REQ_TIMEOUT 0x1UL 5346 #define PORT_TS_QUERY_REQ_ENABLES_PTP_SEQ_ID 0x2UL 5347 #define PORT_TS_QUERY_REQ_ENABLES_PTP_HDR_OFFSET 0x4UL 5348 __le16 ts_req_timeout; 5349 __le32 ptp_seq_id; 5350 __le16 ptp_hdr_offset; 5351 u8 unused_1[6]; 5352 }; 5353 5354 /* hwrm_port_ts_query_output (size:192b/24B) */ 5355 struct hwrm_port_ts_query_output { 5356 __le16 error_code; 5357 __le16 req_type; 5358 __le16 seq_id; 5359 __le16 resp_len; 5360 __le64 ptp_msg_ts; 5361 __le16 ptp_msg_seqid; 5362 u8 unused_0[5]; 5363 u8 valid; 5364 }; 5365 5366 /* hwrm_port_phy_qcaps_input (size:192b/24B) */ 5367 struct hwrm_port_phy_qcaps_input { 5368 __le16 req_type; 5369 __le16 cmpl_ring; 5370 __le16 seq_id; 5371 __le16 target_id; 5372 __le64 resp_addr; 5373 __le16 port_id; 5374 u8 unused_0[6]; 5375 }; 5376 5377 /* hwrm_port_phy_qcaps_output (size:320b/40B) */ 5378 struct hwrm_port_phy_qcaps_output { 5379 __le16 error_code; 5380 __le16 req_type; 5381 __le16 seq_id; 5382 __le16 resp_len; 5383 u8 flags; 5384 #define PORT_PHY_QCAPS_RESP_FLAGS_EEE_SUPPORTED 0x1UL 5385 #define PORT_PHY_QCAPS_RESP_FLAGS_EXTERNAL_LPBK_SUPPORTED 0x2UL 5386 #define PORT_PHY_QCAPS_RESP_FLAGS_AUTONEG_LPBK_SUPPORTED 0x4UL 5387 #define PORT_PHY_QCAPS_RESP_FLAGS_SHARED_PHY_CFG_SUPPORTED 0x8UL 5388 #define PORT_PHY_QCAPS_RESP_FLAGS_CUMULATIVE_COUNTERS_ON_RESET 0x10UL 5389 #define PORT_PHY_QCAPS_RESP_FLAGS_LOCAL_LPBK_NOT_SUPPORTED 0x20UL 5390 #define PORT_PHY_QCAPS_RESP_FLAGS_FW_MANAGED_LINK_DOWN 0x40UL 5391 #define PORT_PHY_QCAPS_RESP_FLAGS_NO_FCS 0x80UL 5392 u8 port_cnt; 5393 #define PORT_PHY_QCAPS_RESP_PORT_CNT_UNKNOWN 0x0UL 5394 #define PORT_PHY_QCAPS_RESP_PORT_CNT_1 0x1UL 5395 #define PORT_PHY_QCAPS_RESP_PORT_CNT_2 0x2UL 5396 #define PORT_PHY_QCAPS_RESP_PORT_CNT_3 0x3UL 5397 #define PORT_PHY_QCAPS_RESP_PORT_CNT_4 0x4UL 5398 #define PORT_PHY_QCAPS_RESP_PORT_CNT_12 0xcUL 5399 #define PORT_PHY_QCAPS_RESP_PORT_CNT_LAST PORT_PHY_QCAPS_RESP_PORT_CNT_12 5400 __le16 supported_speeds_force_mode; 5401 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100MBHD 0x1UL 5402 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100MB 0x2UL 5403 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_1GBHD 0x4UL 5404 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_1GB 0x8UL 5405 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_2GB 0x10UL 5406 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_2_5GB 0x20UL 5407 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10GB 0x40UL 5408 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_20GB 0x80UL 5409 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_25GB 0x100UL 5410 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_40GB 0x200UL 5411 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_50GB 0x400UL 5412 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100GB 0x800UL 5413 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10MBHD 0x1000UL 5414 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10MB 0x2000UL 5415 __le16 supported_speeds_auto_mode; 5416 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100MBHD 0x1UL 5417 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100MB 0x2UL 5418 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_1GBHD 0x4UL 5419 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_1GB 0x8UL 5420 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_2GB 0x10UL 5421 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_2_5GB 0x20UL 5422 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10GB 0x40UL 5423 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_20GB 0x80UL 5424 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_25GB 0x100UL 5425 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_40GB 0x200UL 5426 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_50GB 0x400UL 5427 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100GB 0x800UL 5428 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10MBHD 0x1000UL 5429 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10MB 0x2000UL 5430 __le16 supported_speeds_eee_mode; 5431 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD1 0x1UL 5432 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_100MB 0x2UL 5433 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD2 0x4UL 5434 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_1GB 0x8UL 5435 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD3 0x10UL 5436 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD4 0x20UL 5437 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_10GB 0x40UL 5438 __le32 tx_lpi_timer_low; 5439 #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_LOW_MASK 0xffffffUL 5440 #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_LOW_SFT 0 5441 #define PORT_PHY_QCAPS_RESP_RSVD2_MASK 0xff000000UL 5442 #define PORT_PHY_QCAPS_RESP_RSVD2_SFT 24 5443 __le32 valid_tx_lpi_timer_high; 5444 #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_HIGH_MASK 0xffffffUL 5445 #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_HIGH_SFT 0 5446 #define PORT_PHY_QCAPS_RESP_RSVD_MASK 0xff000000UL 5447 #define PORT_PHY_QCAPS_RESP_RSVD_SFT 24 5448 __le16 supported_pam4_speeds_auto_mode; 5449 #define PORT_PHY_QCAPS_RESP_SUPPORTED_PAM4_SPEEDS_AUTO_MODE_50G 0x1UL 5450 #define PORT_PHY_QCAPS_RESP_SUPPORTED_PAM4_SPEEDS_AUTO_MODE_100G 0x2UL 5451 #define PORT_PHY_QCAPS_RESP_SUPPORTED_PAM4_SPEEDS_AUTO_MODE_200G 0x4UL 5452 __le16 supported_pam4_speeds_force_mode; 5453 #define PORT_PHY_QCAPS_RESP_SUPPORTED_PAM4_SPEEDS_FORCE_MODE_50G 0x1UL 5454 #define PORT_PHY_QCAPS_RESP_SUPPORTED_PAM4_SPEEDS_FORCE_MODE_100G 0x2UL 5455 #define PORT_PHY_QCAPS_RESP_SUPPORTED_PAM4_SPEEDS_FORCE_MODE_200G 0x4UL 5456 __le16 flags2; 5457 #define PORT_PHY_QCAPS_RESP_FLAGS2_PAUSE_UNSUPPORTED 0x1UL 5458 #define PORT_PHY_QCAPS_RESP_FLAGS2_PFC_UNSUPPORTED 0x2UL 5459 #define PORT_PHY_QCAPS_RESP_FLAGS2_BANK_ADDR_SUPPORTED 0x4UL 5460 #define PORT_PHY_QCAPS_RESP_FLAGS2_SPEEDS2_SUPPORTED 0x8UL 5461 #define PORT_PHY_QCAPS_RESP_FLAGS2_REMOTE_LPBK_UNSUPPORTED 0x10UL 5462 u8 internal_port_cnt; 5463 u8 unused_0; 5464 __le16 supported_speeds2_force_mode; 5465 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_1GB 0x1UL 5466 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_10GB 0x2UL 5467 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_25GB 0x4UL 5468 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_40GB 0x8UL 5469 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_50GB 0x10UL 5470 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_100GB 0x20UL 5471 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_50GB_PAM4_56 0x40UL 5472 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_100GB_PAM4_56 0x80UL 5473 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_200GB_PAM4_56 0x100UL 5474 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_400GB_PAM4_56 0x200UL 5475 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_100GB_PAM4_112 0x400UL 5476 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_200GB_PAM4_112 0x800UL 5477 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_400GB_PAM4_112 0x1000UL 5478 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_800GB_PAM4_112 0x2000UL 5479 __le16 supported_speeds2_auto_mode; 5480 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_1GB 0x1UL 5481 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_10GB 0x2UL 5482 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_25GB 0x4UL 5483 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_40GB 0x8UL 5484 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_50GB 0x10UL 5485 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_100GB 0x20UL 5486 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_50GB_PAM4_56 0x40UL 5487 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_100GB_PAM4_56 0x80UL 5488 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_200GB_PAM4_56 0x100UL 5489 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_400GB_PAM4_56 0x200UL 5490 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_100GB_PAM4_112 0x400UL 5491 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_200GB_PAM4_112 0x800UL 5492 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_400GB_PAM4_112 0x1000UL 5493 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_800GB_PAM4_112 0x2000UL 5494 u8 unused_1[3]; 5495 u8 valid; 5496 }; 5497 5498 /* hwrm_port_phy_i2c_write_input (size:832b/104B) */ 5499 struct hwrm_port_phy_i2c_write_input { 5500 __le16 req_type; 5501 __le16 cmpl_ring; 5502 __le16 seq_id; 5503 __le16 target_id; 5504 __le64 resp_addr; 5505 __le32 flags; 5506 __le32 enables; 5507 #define PORT_PHY_I2C_WRITE_REQ_ENABLES_PAGE_OFFSET 0x1UL 5508 #define PORT_PHY_I2C_WRITE_REQ_ENABLES_BANK_NUMBER 0x2UL 5509 __le16 port_id; 5510 u8 i2c_slave_addr; 5511 u8 bank_number; 5512 __le16 page_number; 5513 __le16 page_offset; 5514 u8 data_length; 5515 u8 unused_1[7]; 5516 __le32 data[16]; 5517 }; 5518 5519 /* hwrm_port_phy_i2c_write_output (size:128b/16B) */ 5520 struct hwrm_port_phy_i2c_write_output { 5521 __le16 error_code; 5522 __le16 req_type; 5523 __le16 seq_id; 5524 __le16 resp_len; 5525 u8 unused_0[7]; 5526 u8 valid; 5527 }; 5528 5529 /* hwrm_port_phy_i2c_read_input (size:320b/40B) */ 5530 struct hwrm_port_phy_i2c_read_input { 5531 __le16 req_type; 5532 __le16 cmpl_ring; 5533 __le16 seq_id; 5534 __le16 target_id; 5535 __le64 resp_addr; 5536 __le32 flags; 5537 __le32 enables; 5538 #define PORT_PHY_I2C_READ_REQ_ENABLES_PAGE_OFFSET 0x1UL 5539 #define PORT_PHY_I2C_READ_REQ_ENABLES_BANK_NUMBER 0x2UL 5540 __le16 port_id; 5541 u8 i2c_slave_addr; 5542 u8 bank_number; 5543 __le16 page_number; 5544 __le16 page_offset; 5545 u8 data_length; 5546 u8 unused_1[7]; 5547 }; 5548 5549 /* hwrm_port_phy_i2c_read_output (size:640b/80B) */ 5550 struct hwrm_port_phy_i2c_read_output { 5551 __le16 error_code; 5552 __le16 req_type; 5553 __le16 seq_id; 5554 __le16 resp_len; 5555 __le32 data[16]; 5556 u8 unused_0[7]; 5557 u8 valid; 5558 }; 5559 5560 /* hwrm_port_phy_mdio_write_input (size:320b/40B) */ 5561 struct hwrm_port_phy_mdio_write_input { 5562 __le16 req_type; 5563 __le16 cmpl_ring; 5564 __le16 seq_id; 5565 __le16 target_id; 5566 __le64 resp_addr; 5567 __le32 unused_0[2]; 5568 __le16 port_id; 5569 u8 phy_addr; 5570 u8 dev_addr; 5571 __le16 reg_addr; 5572 __le16 reg_data; 5573 u8 cl45_mdio; 5574 u8 unused_1[7]; 5575 }; 5576 5577 /* hwrm_port_phy_mdio_write_output (size:128b/16B) */ 5578 struct hwrm_port_phy_mdio_write_output { 5579 __le16 error_code; 5580 __le16 req_type; 5581 __le16 seq_id; 5582 __le16 resp_len; 5583 u8 unused_0[7]; 5584 u8 valid; 5585 }; 5586 5587 /* hwrm_port_phy_mdio_read_input (size:256b/32B) */ 5588 struct hwrm_port_phy_mdio_read_input { 5589 __le16 req_type; 5590 __le16 cmpl_ring; 5591 __le16 seq_id; 5592 __le16 target_id; 5593 __le64 resp_addr; 5594 __le32 unused_0[2]; 5595 __le16 port_id; 5596 u8 phy_addr; 5597 u8 dev_addr; 5598 __le16 reg_addr; 5599 u8 cl45_mdio; 5600 u8 unused_1; 5601 }; 5602 5603 /* hwrm_port_phy_mdio_read_output (size:128b/16B) */ 5604 struct hwrm_port_phy_mdio_read_output { 5605 __le16 error_code; 5606 __le16 req_type; 5607 __le16 seq_id; 5608 __le16 resp_len; 5609 __le16 reg_data; 5610 u8 unused_0[5]; 5611 u8 valid; 5612 }; 5613 5614 /* hwrm_port_led_cfg_input (size:512b/64B) */ 5615 struct hwrm_port_led_cfg_input { 5616 __le16 req_type; 5617 __le16 cmpl_ring; 5618 __le16 seq_id; 5619 __le16 target_id; 5620 __le64 resp_addr; 5621 __le32 enables; 5622 #define PORT_LED_CFG_REQ_ENABLES_LED0_ID 0x1UL 5623 #define PORT_LED_CFG_REQ_ENABLES_LED0_STATE 0x2UL 5624 #define PORT_LED_CFG_REQ_ENABLES_LED0_COLOR 0x4UL 5625 #define PORT_LED_CFG_REQ_ENABLES_LED0_BLINK_ON 0x8UL 5626 #define PORT_LED_CFG_REQ_ENABLES_LED0_BLINK_OFF 0x10UL 5627 #define PORT_LED_CFG_REQ_ENABLES_LED0_GROUP_ID 0x20UL 5628 #define PORT_LED_CFG_REQ_ENABLES_LED1_ID 0x40UL 5629 #define PORT_LED_CFG_REQ_ENABLES_LED1_STATE 0x80UL 5630 #define PORT_LED_CFG_REQ_ENABLES_LED1_COLOR 0x100UL 5631 #define PORT_LED_CFG_REQ_ENABLES_LED1_BLINK_ON 0x200UL 5632 #define PORT_LED_CFG_REQ_ENABLES_LED1_BLINK_OFF 0x400UL 5633 #define PORT_LED_CFG_REQ_ENABLES_LED1_GROUP_ID 0x800UL 5634 #define PORT_LED_CFG_REQ_ENABLES_LED2_ID 0x1000UL 5635 #define PORT_LED_CFG_REQ_ENABLES_LED2_STATE 0x2000UL 5636 #define PORT_LED_CFG_REQ_ENABLES_LED2_COLOR 0x4000UL 5637 #define PORT_LED_CFG_REQ_ENABLES_LED2_BLINK_ON 0x8000UL 5638 #define PORT_LED_CFG_REQ_ENABLES_LED2_BLINK_OFF 0x10000UL 5639 #define PORT_LED_CFG_REQ_ENABLES_LED2_GROUP_ID 0x20000UL 5640 #define PORT_LED_CFG_REQ_ENABLES_LED3_ID 0x40000UL 5641 #define PORT_LED_CFG_REQ_ENABLES_LED3_STATE 0x80000UL 5642 #define PORT_LED_CFG_REQ_ENABLES_LED3_COLOR 0x100000UL 5643 #define PORT_LED_CFG_REQ_ENABLES_LED3_BLINK_ON 0x200000UL 5644 #define PORT_LED_CFG_REQ_ENABLES_LED3_BLINK_OFF 0x400000UL 5645 #define PORT_LED_CFG_REQ_ENABLES_LED3_GROUP_ID 0x800000UL 5646 __le16 port_id; 5647 u8 num_leds; 5648 u8 rsvd; 5649 u8 led0_id; 5650 u8 led0_state; 5651 #define PORT_LED_CFG_REQ_LED0_STATE_DEFAULT 0x0UL 5652 #define PORT_LED_CFG_REQ_LED0_STATE_OFF 0x1UL 5653 #define PORT_LED_CFG_REQ_LED0_STATE_ON 0x2UL 5654 #define PORT_LED_CFG_REQ_LED0_STATE_BLINK 0x3UL 5655 #define PORT_LED_CFG_REQ_LED0_STATE_BLINKALT 0x4UL 5656 #define PORT_LED_CFG_REQ_LED0_STATE_LAST PORT_LED_CFG_REQ_LED0_STATE_BLINKALT 5657 u8 led0_color; 5658 #define PORT_LED_CFG_REQ_LED0_COLOR_DEFAULT 0x0UL 5659 #define PORT_LED_CFG_REQ_LED0_COLOR_AMBER 0x1UL 5660 #define PORT_LED_CFG_REQ_LED0_COLOR_GREEN 0x2UL 5661 #define PORT_LED_CFG_REQ_LED0_COLOR_GREENAMBER 0x3UL 5662 #define PORT_LED_CFG_REQ_LED0_COLOR_LAST PORT_LED_CFG_REQ_LED0_COLOR_GREENAMBER 5663 u8 unused_0; 5664 __le16 led0_blink_on; 5665 __le16 led0_blink_off; 5666 u8 led0_group_id; 5667 u8 rsvd0; 5668 u8 led1_id; 5669 u8 led1_state; 5670 #define PORT_LED_CFG_REQ_LED1_STATE_DEFAULT 0x0UL 5671 #define PORT_LED_CFG_REQ_LED1_STATE_OFF 0x1UL 5672 #define PORT_LED_CFG_REQ_LED1_STATE_ON 0x2UL 5673 #define PORT_LED_CFG_REQ_LED1_STATE_BLINK 0x3UL 5674 #define PORT_LED_CFG_REQ_LED1_STATE_BLINKALT 0x4UL 5675 #define PORT_LED_CFG_REQ_LED1_STATE_LAST PORT_LED_CFG_REQ_LED1_STATE_BLINKALT 5676 u8 led1_color; 5677 #define PORT_LED_CFG_REQ_LED1_COLOR_DEFAULT 0x0UL 5678 #define PORT_LED_CFG_REQ_LED1_COLOR_AMBER 0x1UL 5679 #define PORT_LED_CFG_REQ_LED1_COLOR_GREEN 0x2UL 5680 #define PORT_LED_CFG_REQ_LED1_COLOR_GREENAMBER 0x3UL 5681 #define PORT_LED_CFG_REQ_LED1_COLOR_LAST PORT_LED_CFG_REQ_LED1_COLOR_GREENAMBER 5682 u8 unused_1; 5683 __le16 led1_blink_on; 5684 __le16 led1_blink_off; 5685 u8 led1_group_id; 5686 u8 rsvd1; 5687 u8 led2_id; 5688 u8 led2_state; 5689 #define PORT_LED_CFG_REQ_LED2_STATE_DEFAULT 0x0UL 5690 #define PORT_LED_CFG_REQ_LED2_STATE_OFF 0x1UL 5691 #define PORT_LED_CFG_REQ_LED2_STATE_ON 0x2UL 5692 #define PORT_LED_CFG_REQ_LED2_STATE_BLINK 0x3UL 5693 #define PORT_LED_CFG_REQ_LED2_STATE_BLINKALT 0x4UL 5694 #define PORT_LED_CFG_REQ_LED2_STATE_LAST PORT_LED_CFG_REQ_LED2_STATE_BLINKALT 5695 u8 led2_color; 5696 #define PORT_LED_CFG_REQ_LED2_COLOR_DEFAULT 0x0UL 5697 #define PORT_LED_CFG_REQ_LED2_COLOR_AMBER 0x1UL 5698 #define PORT_LED_CFG_REQ_LED2_COLOR_GREEN 0x2UL 5699 #define PORT_LED_CFG_REQ_LED2_COLOR_GREENAMBER 0x3UL 5700 #define PORT_LED_CFG_REQ_LED2_COLOR_LAST PORT_LED_CFG_REQ_LED2_COLOR_GREENAMBER 5701 u8 unused_2; 5702 __le16 led2_blink_on; 5703 __le16 led2_blink_off; 5704 u8 led2_group_id; 5705 u8 rsvd2; 5706 u8 led3_id; 5707 u8 led3_state; 5708 #define PORT_LED_CFG_REQ_LED3_STATE_DEFAULT 0x0UL 5709 #define PORT_LED_CFG_REQ_LED3_STATE_OFF 0x1UL 5710 #define PORT_LED_CFG_REQ_LED3_STATE_ON 0x2UL 5711 #define PORT_LED_CFG_REQ_LED3_STATE_BLINK 0x3UL 5712 #define PORT_LED_CFG_REQ_LED3_STATE_BLINKALT 0x4UL 5713 #define PORT_LED_CFG_REQ_LED3_STATE_LAST PORT_LED_CFG_REQ_LED3_STATE_BLINKALT 5714 u8 led3_color; 5715 #define PORT_LED_CFG_REQ_LED3_COLOR_DEFAULT 0x0UL 5716 #define PORT_LED_CFG_REQ_LED3_COLOR_AMBER 0x1UL 5717 #define PORT_LED_CFG_REQ_LED3_COLOR_GREEN 0x2UL 5718 #define PORT_LED_CFG_REQ_LED3_COLOR_GREENAMBER 0x3UL 5719 #define PORT_LED_CFG_REQ_LED3_COLOR_LAST PORT_LED_CFG_REQ_LED3_COLOR_GREENAMBER 5720 u8 unused_3; 5721 __le16 led3_blink_on; 5722 __le16 led3_blink_off; 5723 u8 led3_group_id; 5724 u8 rsvd3; 5725 }; 5726 5727 /* hwrm_port_led_cfg_output (size:128b/16B) */ 5728 struct hwrm_port_led_cfg_output { 5729 __le16 error_code; 5730 __le16 req_type; 5731 __le16 seq_id; 5732 __le16 resp_len; 5733 u8 unused_0[7]; 5734 u8 valid; 5735 }; 5736 5737 /* hwrm_port_led_qcfg_input (size:192b/24B) */ 5738 struct hwrm_port_led_qcfg_input { 5739 __le16 req_type; 5740 __le16 cmpl_ring; 5741 __le16 seq_id; 5742 __le16 target_id; 5743 __le64 resp_addr; 5744 __le16 port_id; 5745 u8 unused_0[6]; 5746 }; 5747 5748 /* hwrm_port_led_qcfg_output (size:448b/56B) */ 5749 struct hwrm_port_led_qcfg_output { 5750 __le16 error_code; 5751 __le16 req_type; 5752 __le16 seq_id; 5753 __le16 resp_len; 5754 u8 num_leds; 5755 u8 led0_id; 5756 u8 led0_type; 5757 #define PORT_LED_QCFG_RESP_LED0_TYPE_SPEED 0x0UL 5758 #define PORT_LED_QCFG_RESP_LED0_TYPE_ACTIVITY 0x1UL 5759 #define PORT_LED_QCFG_RESP_LED0_TYPE_INVALID 0xffUL 5760 #define PORT_LED_QCFG_RESP_LED0_TYPE_LAST PORT_LED_QCFG_RESP_LED0_TYPE_INVALID 5761 u8 led0_state; 5762 #define PORT_LED_QCFG_RESP_LED0_STATE_DEFAULT 0x0UL 5763 #define PORT_LED_QCFG_RESP_LED0_STATE_OFF 0x1UL 5764 #define PORT_LED_QCFG_RESP_LED0_STATE_ON 0x2UL 5765 #define PORT_LED_QCFG_RESP_LED0_STATE_BLINK 0x3UL 5766 #define PORT_LED_QCFG_RESP_LED0_STATE_BLINKALT 0x4UL 5767 #define PORT_LED_QCFG_RESP_LED0_STATE_LAST PORT_LED_QCFG_RESP_LED0_STATE_BLINKALT 5768 u8 led0_color; 5769 #define PORT_LED_QCFG_RESP_LED0_COLOR_DEFAULT 0x0UL 5770 #define PORT_LED_QCFG_RESP_LED0_COLOR_AMBER 0x1UL 5771 #define PORT_LED_QCFG_RESP_LED0_COLOR_GREEN 0x2UL 5772 #define PORT_LED_QCFG_RESP_LED0_COLOR_GREENAMBER 0x3UL 5773 #define PORT_LED_QCFG_RESP_LED0_COLOR_LAST PORT_LED_QCFG_RESP_LED0_COLOR_GREENAMBER 5774 u8 unused_0; 5775 __le16 led0_blink_on; 5776 __le16 led0_blink_off; 5777 u8 led0_group_id; 5778 u8 led1_id; 5779 u8 led1_type; 5780 #define PORT_LED_QCFG_RESP_LED1_TYPE_SPEED 0x0UL 5781 #define PORT_LED_QCFG_RESP_LED1_TYPE_ACTIVITY 0x1UL 5782 #define PORT_LED_QCFG_RESP_LED1_TYPE_INVALID 0xffUL 5783 #define PORT_LED_QCFG_RESP_LED1_TYPE_LAST PORT_LED_QCFG_RESP_LED1_TYPE_INVALID 5784 u8 led1_state; 5785 #define PORT_LED_QCFG_RESP_LED1_STATE_DEFAULT 0x0UL 5786 #define PORT_LED_QCFG_RESP_LED1_STATE_OFF 0x1UL 5787 #define PORT_LED_QCFG_RESP_LED1_STATE_ON 0x2UL 5788 #define PORT_LED_QCFG_RESP_LED1_STATE_BLINK 0x3UL 5789 #define PORT_LED_QCFG_RESP_LED1_STATE_BLINKALT 0x4UL 5790 #define PORT_LED_QCFG_RESP_LED1_STATE_LAST PORT_LED_QCFG_RESP_LED1_STATE_BLINKALT 5791 u8 led1_color; 5792 #define PORT_LED_QCFG_RESP_LED1_COLOR_DEFAULT 0x0UL 5793 #define PORT_LED_QCFG_RESP_LED1_COLOR_AMBER 0x1UL 5794 #define PORT_LED_QCFG_RESP_LED1_COLOR_GREEN 0x2UL 5795 #define PORT_LED_QCFG_RESP_LED1_COLOR_GREENAMBER 0x3UL 5796 #define PORT_LED_QCFG_RESP_LED1_COLOR_LAST PORT_LED_QCFG_RESP_LED1_COLOR_GREENAMBER 5797 u8 unused_1; 5798 __le16 led1_blink_on; 5799 __le16 led1_blink_off; 5800 u8 led1_group_id; 5801 u8 led2_id; 5802 u8 led2_type; 5803 #define PORT_LED_QCFG_RESP_LED2_TYPE_SPEED 0x0UL 5804 #define PORT_LED_QCFG_RESP_LED2_TYPE_ACTIVITY 0x1UL 5805 #define PORT_LED_QCFG_RESP_LED2_TYPE_INVALID 0xffUL 5806 #define PORT_LED_QCFG_RESP_LED2_TYPE_LAST PORT_LED_QCFG_RESP_LED2_TYPE_INVALID 5807 u8 led2_state; 5808 #define PORT_LED_QCFG_RESP_LED2_STATE_DEFAULT 0x0UL 5809 #define PORT_LED_QCFG_RESP_LED2_STATE_OFF 0x1UL 5810 #define PORT_LED_QCFG_RESP_LED2_STATE_ON 0x2UL 5811 #define PORT_LED_QCFG_RESP_LED2_STATE_BLINK 0x3UL 5812 #define PORT_LED_QCFG_RESP_LED2_STATE_BLINKALT 0x4UL 5813 #define PORT_LED_QCFG_RESP_LED2_STATE_LAST PORT_LED_QCFG_RESP_LED2_STATE_BLINKALT 5814 u8 led2_color; 5815 #define PORT_LED_QCFG_RESP_LED2_COLOR_DEFAULT 0x0UL 5816 #define PORT_LED_QCFG_RESP_LED2_COLOR_AMBER 0x1UL 5817 #define PORT_LED_QCFG_RESP_LED2_COLOR_GREEN 0x2UL 5818 #define PORT_LED_QCFG_RESP_LED2_COLOR_GREENAMBER 0x3UL 5819 #define PORT_LED_QCFG_RESP_LED2_COLOR_LAST PORT_LED_QCFG_RESP_LED2_COLOR_GREENAMBER 5820 u8 unused_2; 5821 __le16 led2_blink_on; 5822 __le16 led2_blink_off; 5823 u8 led2_group_id; 5824 u8 led3_id; 5825 u8 led3_type; 5826 #define PORT_LED_QCFG_RESP_LED3_TYPE_SPEED 0x0UL 5827 #define PORT_LED_QCFG_RESP_LED3_TYPE_ACTIVITY 0x1UL 5828 #define PORT_LED_QCFG_RESP_LED3_TYPE_INVALID 0xffUL 5829 #define PORT_LED_QCFG_RESP_LED3_TYPE_LAST PORT_LED_QCFG_RESP_LED3_TYPE_INVALID 5830 u8 led3_state; 5831 #define PORT_LED_QCFG_RESP_LED3_STATE_DEFAULT 0x0UL 5832 #define PORT_LED_QCFG_RESP_LED3_STATE_OFF 0x1UL 5833 #define PORT_LED_QCFG_RESP_LED3_STATE_ON 0x2UL 5834 #define PORT_LED_QCFG_RESP_LED3_STATE_BLINK 0x3UL 5835 #define PORT_LED_QCFG_RESP_LED3_STATE_BLINKALT 0x4UL 5836 #define PORT_LED_QCFG_RESP_LED3_STATE_LAST PORT_LED_QCFG_RESP_LED3_STATE_BLINKALT 5837 u8 led3_color; 5838 #define PORT_LED_QCFG_RESP_LED3_COLOR_DEFAULT 0x0UL 5839 #define PORT_LED_QCFG_RESP_LED3_COLOR_AMBER 0x1UL 5840 #define PORT_LED_QCFG_RESP_LED3_COLOR_GREEN 0x2UL 5841 #define PORT_LED_QCFG_RESP_LED3_COLOR_GREENAMBER 0x3UL 5842 #define PORT_LED_QCFG_RESP_LED3_COLOR_LAST PORT_LED_QCFG_RESP_LED3_COLOR_GREENAMBER 5843 u8 unused_3; 5844 __le16 led3_blink_on; 5845 __le16 led3_blink_off; 5846 u8 led3_group_id; 5847 u8 unused_4[6]; 5848 u8 valid; 5849 }; 5850 5851 /* hwrm_port_led_qcaps_input (size:192b/24B) */ 5852 struct hwrm_port_led_qcaps_input { 5853 __le16 req_type; 5854 __le16 cmpl_ring; 5855 __le16 seq_id; 5856 __le16 target_id; 5857 __le64 resp_addr; 5858 __le16 port_id; 5859 u8 unused_0[6]; 5860 }; 5861 5862 /* hwrm_port_led_qcaps_output (size:384b/48B) */ 5863 struct hwrm_port_led_qcaps_output { 5864 __le16 error_code; 5865 __le16 req_type; 5866 __le16 seq_id; 5867 __le16 resp_len; 5868 u8 num_leds; 5869 u8 unused[3]; 5870 u8 led0_id; 5871 u8 led0_type; 5872 #define PORT_LED_QCAPS_RESP_LED0_TYPE_SPEED 0x0UL 5873 #define PORT_LED_QCAPS_RESP_LED0_TYPE_ACTIVITY 0x1UL 5874 #define PORT_LED_QCAPS_RESP_LED0_TYPE_INVALID 0xffUL 5875 #define PORT_LED_QCAPS_RESP_LED0_TYPE_LAST PORT_LED_QCAPS_RESP_LED0_TYPE_INVALID 5876 u8 led0_group_id; 5877 u8 unused_0; 5878 __le16 led0_state_caps; 5879 #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_ENABLED 0x1UL 5880 #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_OFF_SUPPORTED 0x2UL 5881 #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_ON_SUPPORTED 0x4UL 5882 #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_BLINK_SUPPORTED 0x8UL 5883 #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_BLINK_ALT_SUPPORTED 0x10UL 5884 __le16 led0_color_caps; 5885 #define PORT_LED_QCAPS_RESP_LED0_COLOR_CAPS_RSVD 0x1UL 5886 #define PORT_LED_QCAPS_RESP_LED0_COLOR_CAPS_AMBER_SUPPORTED 0x2UL 5887 #define PORT_LED_QCAPS_RESP_LED0_COLOR_CAPS_GREEN_SUPPORTED 0x4UL 5888 u8 led1_id; 5889 u8 led1_type; 5890 #define PORT_LED_QCAPS_RESP_LED1_TYPE_SPEED 0x0UL 5891 #define PORT_LED_QCAPS_RESP_LED1_TYPE_ACTIVITY 0x1UL 5892 #define PORT_LED_QCAPS_RESP_LED1_TYPE_INVALID 0xffUL 5893 #define PORT_LED_QCAPS_RESP_LED1_TYPE_LAST PORT_LED_QCAPS_RESP_LED1_TYPE_INVALID 5894 u8 led1_group_id; 5895 u8 unused_1; 5896 __le16 led1_state_caps; 5897 #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_ENABLED 0x1UL 5898 #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_OFF_SUPPORTED 0x2UL 5899 #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_ON_SUPPORTED 0x4UL 5900 #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_BLINK_SUPPORTED 0x8UL 5901 #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_BLINK_ALT_SUPPORTED 0x10UL 5902 __le16 led1_color_caps; 5903 #define PORT_LED_QCAPS_RESP_LED1_COLOR_CAPS_RSVD 0x1UL 5904 #define PORT_LED_QCAPS_RESP_LED1_COLOR_CAPS_AMBER_SUPPORTED 0x2UL 5905 #define PORT_LED_QCAPS_RESP_LED1_COLOR_CAPS_GREEN_SUPPORTED 0x4UL 5906 u8 led2_id; 5907 u8 led2_type; 5908 #define PORT_LED_QCAPS_RESP_LED2_TYPE_SPEED 0x0UL 5909 #define PORT_LED_QCAPS_RESP_LED2_TYPE_ACTIVITY 0x1UL 5910 #define PORT_LED_QCAPS_RESP_LED2_TYPE_INVALID 0xffUL 5911 #define PORT_LED_QCAPS_RESP_LED2_TYPE_LAST PORT_LED_QCAPS_RESP_LED2_TYPE_INVALID 5912 u8 led2_group_id; 5913 u8 unused_2; 5914 __le16 led2_state_caps; 5915 #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_ENABLED 0x1UL 5916 #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_OFF_SUPPORTED 0x2UL 5917 #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_ON_SUPPORTED 0x4UL 5918 #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_BLINK_SUPPORTED 0x8UL 5919 #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_BLINK_ALT_SUPPORTED 0x10UL 5920 __le16 led2_color_caps; 5921 #define PORT_LED_QCAPS_RESP_LED2_COLOR_CAPS_RSVD 0x1UL 5922 #define PORT_LED_QCAPS_RESP_LED2_COLOR_CAPS_AMBER_SUPPORTED 0x2UL 5923 #define PORT_LED_QCAPS_RESP_LED2_COLOR_CAPS_GREEN_SUPPORTED 0x4UL 5924 u8 led3_id; 5925 u8 led3_type; 5926 #define PORT_LED_QCAPS_RESP_LED3_TYPE_SPEED 0x0UL 5927 #define PORT_LED_QCAPS_RESP_LED3_TYPE_ACTIVITY 0x1UL 5928 #define PORT_LED_QCAPS_RESP_LED3_TYPE_INVALID 0xffUL 5929 #define PORT_LED_QCAPS_RESP_LED3_TYPE_LAST PORT_LED_QCAPS_RESP_LED3_TYPE_INVALID 5930 u8 led3_group_id; 5931 u8 unused_3; 5932 __le16 led3_state_caps; 5933 #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_ENABLED 0x1UL 5934 #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_OFF_SUPPORTED 0x2UL 5935 #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_ON_SUPPORTED 0x4UL 5936 #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_BLINK_SUPPORTED 0x8UL 5937 #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_BLINK_ALT_SUPPORTED 0x10UL 5938 __le16 led3_color_caps; 5939 #define PORT_LED_QCAPS_RESP_LED3_COLOR_CAPS_RSVD 0x1UL 5940 #define PORT_LED_QCAPS_RESP_LED3_COLOR_CAPS_AMBER_SUPPORTED 0x2UL 5941 #define PORT_LED_QCAPS_RESP_LED3_COLOR_CAPS_GREEN_SUPPORTED 0x4UL 5942 u8 unused_4[3]; 5943 u8 valid; 5944 }; 5945 5946 /* hwrm_port_mac_qcaps_input (size:192b/24B) */ 5947 struct hwrm_port_mac_qcaps_input { 5948 __le16 req_type; 5949 __le16 cmpl_ring; 5950 __le16 seq_id; 5951 __le16 target_id; 5952 __le64 resp_addr; 5953 __le16 port_id; 5954 u8 unused_0[6]; 5955 }; 5956 5957 /* hwrm_port_mac_qcaps_output (size:128b/16B) */ 5958 struct hwrm_port_mac_qcaps_output { 5959 __le16 error_code; 5960 __le16 req_type; 5961 __le16 seq_id; 5962 __le16 resp_len; 5963 u8 flags; 5964 #define PORT_MAC_QCAPS_RESP_FLAGS_LOCAL_LPBK_NOT_SUPPORTED 0x1UL 5965 #define PORT_MAC_QCAPS_RESP_FLAGS_REMOTE_LPBK_SUPPORTED 0x2UL 5966 u8 unused_0[6]; 5967 u8 valid; 5968 }; 5969 5970 /* hwrm_queue_qportcfg_input (size:192b/24B) */ 5971 struct hwrm_queue_qportcfg_input { 5972 __le16 req_type; 5973 __le16 cmpl_ring; 5974 __le16 seq_id; 5975 __le16 target_id; 5976 __le64 resp_addr; 5977 __le32 flags; 5978 #define QUEUE_QPORTCFG_REQ_FLAGS_PATH 0x1UL 5979 #define QUEUE_QPORTCFG_REQ_FLAGS_PATH_TX 0x0UL 5980 #define QUEUE_QPORTCFG_REQ_FLAGS_PATH_RX 0x1UL 5981 #define QUEUE_QPORTCFG_REQ_FLAGS_PATH_LAST QUEUE_QPORTCFG_REQ_FLAGS_PATH_RX 5982 __le16 port_id; 5983 u8 drv_qmap_cap; 5984 #define QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_DISABLED 0x0UL 5985 #define QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_ENABLED 0x1UL 5986 #define QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_LAST QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_ENABLED 5987 u8 unused_0; 5988 }; 5989 5990 /* hwrm_queue_qportcfg_output (size:1344b/168B) */ 5991 struct hwrm_queue_qportcfg_output { 5992 __le16 error_code; 5993 __le16 req_type; 5994 __le16 seq_id; 5995 __le16 resp_len; 5996 u8 max_configurable_queues; 5997 u8 max_configurable_lossless_queues; 5998 u8 queue_cfg_allowed; 5999 u8 queue_cfg_info; 6000 #define QUEUE_QPORTCFG_RESP_QUEUE_CFG_INFO_ASYM_CFG 0x1UL 6001 #define QUEUE_QPORTCFG_RESP_QUEUE_CFG_INFO_USE_PROFILE_TYPE 0x2UL 6002 u8 queue_pfcenable_cfg_allowed; 6003 u8 queue_pri2cos_cfg_allowed; 6004 u8 queue_cos2bw_cfg_allowed; 6005 u8 queue_id0; 6006 u8 queue_id0_service_profile; 6007 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSY 0x0UL 6008 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS 0x1UL 6009 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 6010 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 6011 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 6012 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_UNKNOWN 0xffUL 6013 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_UNKNOWN 6014 u8 queue_id1; 6015 u8 queue_id1_service_profile; 6016 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSY 0x0UL 6017 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSLESS 0x1UL 6018 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 6019 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 6020 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 6021 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_UNKNOWN 0xffUL 6022 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_UNKNOWN 6023 u8 queue_id2; 6024 u8 queue_id2_service_profile; 6025 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSY 0x0UL 6026 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSLESS 0x1UL 6027 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 6028 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 6029 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 6030 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_UNKNOWN 0xffUL 6031 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_UNKNOWN 6032 u8 queue_id3; 6033 u8 queue_id3_service_profile; 6034 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSY 0x0UL 6035 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSLESS 0x1UL 6036 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 6037 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 6038 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 6039 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_UNKNOWN 0xffUL 6040 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_UNKNOWN 6041 u8 queue_id4; 6042 u8 queue_id4_service_profile; 6043 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSY 0x0UL 6044 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSLESS 0x1UL 6045 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 6046 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 6047 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 6048 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_UNKNOWN 0xffUL 6049 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_UNKNOWN 6050 u8 queue_id5; 6051 u8 queue_id5_service_profile; 6052 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSY 0x0UL 6053 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSLESS 0x1UL 6054 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 6055 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 6056 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 6057 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_UNKNOWN 0xffUL 6058 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_UNKNOWN 6059 u8 queue_id6; 6060 u8 queue_id6_service_profile; 6061 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSY 0x0UL 6062 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSLESS 0x1UL 6063 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 6064 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 6065 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 6066 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_UNKNOWN 0xffUL 6067 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_UNKNOWN 6068 u8 queue_id7; 6069 u8 queue_id7_service_profile; 6070 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSY 0x0UL 6071 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSLESS 0x1UL 6072 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 6073 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 6074 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 6075 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_UNKNOWN 0xffUL 6076 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_UNKNOWN 6077 u8 queue_id0_service_profile_type; 6078 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_TYPE_ROCE 0x1UL 6079 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_TYPE_NIC 0x2UL 6080 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_TYPE_CNP 0x4UL 6081 char qid0_name[16]; 6082 char qid1_name[16]; 6083 char qid2_name[16]; 6084 char qid3_name[16]; 6085 char qid4_name[16]; 6086 char qid5_name[16]; 6087 char qid6_name[16]; 6088 char qid7_name[16]; 6089 u8 queue_id1_service_profile_type; 6090 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_TYPE_ROCE 0x1UL 6091 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_TYPE_NIC 0x2UL 6092 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_TYPE_CNP 0x4UL 6093 u8 queue_id2_service_profile_type; 6094 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_TYPE_ROCE 0x1UL 6095 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_TYPE_NIC 0x2UL 6096 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_TYPE_CNP 0x4UL 6097 u8 queue_id3_service_profile_type; 6098 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_TYPE_ROCE 0x1UL 6099 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_TYPE_NIC 0x2UL 6100 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_TYPE_CNP 0x4UL 6101 u8 queue_id4_service_profile_type; 6102 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_TYPE_ROCE 0x1UL 6103 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_TYPE_NIC 0x2UL 6104 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_TYPE_CNP 0x4UL 6105 u8 queue_id5_service_profile_type; 6106 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_TYPE_ROCE 0x1UL 6107 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_TYPE_NIC 0x2UL 6108 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_TYPE_CNP 0x4UL 6109 u8 queue_id6_service_profile_type; 6110 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_TYPE_ROCE 0x1UL 6111 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_TYPE_NIC 0x2UL 6112 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_TYPE_CNP 0x4UL 6113 u8 queue_id7_service_profile_type; 6114 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_TYPE_ROCE 0x1UL 6115 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_TYPE_NIC 0x2UL 6116 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_TYPE_CNP 0x4UL 6117 u8 valid; 6118 }; 6119 6120 /* hwrm_queue_qcfg_input (size:192b/24B) */ 6121 struct hwrm_queue_qcfg_input { 6122 __le16 req_type; 6123 __le16 cmpl_ring; 6124 __le16 seq_id; 6125 __le16 target_id; 6126 __le64 resp_addr; 6127 __le32 flags; 6128 #define QUEUE_QCFG_REQ_FLAGS_PATH 0x1UL 6129 #define QUEUE_QCFG_REQ_FLAGS_PATH_TX 0x0UL 6130 #define QUEUE_QCFG_REQ_FLAGS_PATH_RX 0x1UL 6131 #define QUEUE_QCFG_REQ_FLAGS_PATH_LAST QUEUE_QCFG_REQ_FLAGS_PATH_RX 6132 __le32 queue_id; 6133 }; 6134 6135 /* hwrm_queue_qcfg_output (size:128b/16B) */ 6136 struct hwrm_queue_qcfg_output { 6137 __le16 error_code; 6138 __le16 req_type; 6139 __le16 seq_id; 6140 __le16 resp_len; 6141 __le32 queue_len; 6142 u8 service_profile; 6143 #define QUEUE_QCFG_RESP_SERVICE_PROFILE_LOSSY 0x0UL 6144 #define QUEUE_QCFG_RESP_SERVICE_PROFILE_LOSSLESS 0x1UL 6145 #define QUEUE_QCFG_RESP_SERVICE_PROFILE_UNKNOWN 0xffUL 6146 #define QUEUE_QCFG_RESP_SERVICE_PROFILE_LAST QUEUE_QCFG_RESP_SERVICE_PROFILE_UNKNOWN 6147 u8 queue_cfg_info; 6148 #define QUEUE_QCFG_RESP_QUEUE_CFG_INFO_ASYM_CFG 0x1UL 6149 u8 unused_0; 6150 u8 valid; 6151 }; 6152 6153 /* hwrm_queue_cfg_input (size:320b/40B) */ 6154 struct hwrm_queue_cfg_input { 6155 __le16 req_type; 6156 __le16 cmpl_ring; 6157 __le16 seq_id; 6158 __le16 target_id; 6159 __le64 resp_addr; 6160 __le32 flags; 6161 #define QUEUE_CFG_REQ_FLAGS_PATH_MASK 0x3UL 6162 #define QUEUE_CFG_REQ_FLAGS_PATH_SFT 0 6163 #define QUEUE_CFG_REQ_FLAGS_PATH_TX 0x0UL 6164 #define QUEUE_CFG_REQ_FLAGS_PATH_RX 0x1UL 6165 #define QUEUE_CFG_REQ_FLAGS_PATH_BIDIR 0x2UL 6166 #define QUEUE_CFG_REQ_FLAGS_PATH_LAST QUEUE_CFG_REQ_FLAGS_PATH_BIDIR 6167 __le32 enables; 6168 #define QUEUE_CFG_REQ_ENABLES_DFLT_LEN 0x1UL 6169 #define QUEUE_CFG_REQ_ENABLES_SERVICE_PROFILE 0x2UL 6170 __le32 queue_id; 6171 __le32 dflt_len; 6172 u8 service_profile; 6173 #define QUEUE_CFG_REQ_SERVICE_PROFILE_LOSSY 0x0UL 6174 #define QUEUE_CFG_REQ_SERVICE_PROFILE_LOSSLESS 0x1UL 6175 #define QUEUE_CFG_REQ_SERVICE_PROFILE_UNKNOWN 0xffUL 6176 #define QUEUE_CFG_REQ_SERVICE_PROFILE_LAST QUEUE_CFG_REQ_SERVICE_PROFILE_UNKNOWN 6177 u8 unused_0[7]; 6178 }; 6179 6180 /* hwrm_queue_cfg_output (size:128b/16B) */ 6181 struct hwrm_queue_cfg_output { 6182 __le16 error_code; 6183 __le16 req_type; 6184 __le16 seq_id; 6185 __le16 resp_len; 6186 u8 unused_0[7]; 6187 u8 valid; 6188 }; 6189 6190 /* hwrm_queue_pfcenable_qcfg_input (size:192b/24B) */ 6191 struct hwrm_queue_pfcenable_qcfg_input { 6192 __le16 req_type; 6193 __le16 cmpl_ring; 6194 __le16 seq_id; 6195 __le16 target_id; 6196 __le64 resp_addr; 6197 __le16 port_id; 6198 u8 unused_0[6]; 6199 }; 6200 6201 /* hwrm_queue_pfcenable_qcfg_output (size:128b/16B) */ 6202 struct hwrm_queue_pfcenable_qcfg_output { 6203 __le16 error_code; 6204 __le16 req_type; 6205 __le16 seq_id; 6206 __le16 resp_len; 6207 __le32 flags; 6208 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI0_PFC_ENABLED 0x1UL 6209 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI1_PFC_ENABLED 0x2UL 6210 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI2_PFC_ENABLED 0x4UL 6211 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI3_PFC_ENABLED 0x8UL 6212 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI4_PFC_ENABLED 0x10UL 6213 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI5_PFC_ENABLED 0x20UL 6214 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI6_PFC_ENABLED 0x40UL 6215 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI7_PFC_ENABLED 0x80UL 6216 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI0_PFC_WATCHDOG_ENABLED 0x100UL 6217 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI1_PFC_WATCHDOG_ENABLED 0x200UL 6218 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI2_PFC_WATCHDOG_ENABLED 0x400UL 6219 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI3_PFC_WATCHDOG_ENABLED 0x800UL 6220 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI4_PFC_WATCHDOG_ENABLED 0x1000UL 6221 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI5_PFC_WATCHDOG_ENABLED 0x2000UL 6222 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI6_PFC_WATCHDOG_ENABLED 0x4000UL 6223 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI7_PFC_WATCHDOG_ENABLED 0x8000UL 6224 u8 unused_0[3]; 6225 u8 valid; 6226 }; 6227 6228 /* hwrm_queue_pfcenable_cfg_input (size:192b/24B) */ 6229 struct hwrm_queue_pfcenable_cfg_input { 6230 __le16 req_type; 6231 __le16 cmpl_ring; 6232 __le16 seq_id; 6233 __le16 target_id; 6234 __le64 resp_addr; 6235 __le32 flags; 6236 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI0_PFC_ENABLED 0x1UL 6237 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI1_PFC_ENABLED 0x2UL 6238 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI2_PFC_ENABLED 0x4UL 6239 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI3_PFC_ENABLED 0x8UL 6240 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI4_PFC_ENABLED 0x10UL 6241 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI5_PFC_ENABLED 0x20UL 6242 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI6_PFC_ENABLED 0x40UL 6243 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI7_PFC_ENABLED 0x80UL 6244 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI0_PFC_WATCHDOG_ENABLED 0x100UL 6245 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI1_PFC_WATCHDOG_ENABLED 0x200UL 6246 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI2_PFC_WATCHDOG_ENABLED 0x400UL 6247 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI3_PFC_WATCHDOG_ENABLED 0x800UL 6248 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI4_PFC_WATCHDOG_ENABLED 0x1000UL 6249 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI5_PFC_WATCHDOG_ENABLED 0x2000UL 6250 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI6_PFC_WATCHDOG_ENABLED 0x4000UL 6251 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI7_PFC_WATCHDOG_ENABLED 0x8000UL 6252 __le16 port_id; 6253 u8 unused_0[2]; 6254 }; 6255 6256 /* hwrm_queue_pfcenable_cfg_output (size:128b/16B) */ 6257 struct hwrm_queue_pfcenable_cfg_output { 6258 __le16 error_code; 6259 __le16 req_type; 6260 __le16 seq_id; 6261 __le16 resp_len; 6262 u8 unused_0[7]; 6263 u8 valid; 6264 }; 6265 6266 /* hwrm_queue_pri2cos_qcfg_input (size:192b/24B) */ 6267 struct hwrm_queue_pri2cos_qcfg_input { 6268 __le16 req_type; 6269 __le16 cmpl_ring; 6270 __le16 seq_id; 6271 __le16 target_id; 6272 __le64 resp_addr; 6273 __le32 flags; 6274 #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH 0x1UL 6275 #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_TX 0x0UL 6276 #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_RX 0x1UL 6277 #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_LAST QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_RX 6278 #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_IVLAN 0x2UL 6279 u8 port_id; 6280 u8 unused_0[3]; 6281 }; 6282 6283 /* hwrm_queue_pri2cos_qcfg_output (size:192b/24B) */ 6284 struct hwrm_queue_pri2cos_qcfg_output { 6285 __le16 error_code; 6286 __le16 req_type; 6287 __le16 seq_id; 6288 __le16 resp_len; 6289 u8 pri0_cos_queue_id; 6290 u8 pri1_cos_queue_id; 6291 u8 pri2_cos_queue_id; 6292 u8 pri3_cos_queue_id; 6293 u8 pri4_cos_queue_id; 6294 u8 pri5_cos_queue_id; 6295 u8 pri6_cos_queue_id; 6296 u8 pri7_cos_queue_id; 6297 u8 queue_cfg_info; 6298 #define QUEUE_PRI2COS_QCFG_RESP_QUEUE_CFG_INFO_ASYM_CFG 0x1UL 6299 u8 unused_0[6]; 6300 u8 valid; 6301 }; 6302 6303 /* hwrm_queue_pri2cos_cfg_input (size:320b/40B) */ 6304 struct hwrm_queue_pri2cos_cfg_input { 6305 __le16 req_type; 6306 __le16 cmpl_ring; 6307 __le16 seq_id; 6308 __le16 target_id; 6309 __le64 resp_addr; 6310 __le32 flags; 6311 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_MASK 0x3UL 6312 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_SFT 0 6313 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_TX 0x0UL 6314 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_RX 0x1UL 6315 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_BIDIR 0x2UL 6316 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_LAST QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_BIDIR 6317 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_IVLAN 0x4UL 6318 __le32 enables; 6319 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI0_COS_QUEUE_ID 0x1UL 6320 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI1_COS_QUEUE_ID 0x2UL 6321 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI2_COS_QUEUE_ID 0x4UL 6322 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI3_COS_QUEUE_ID 0x8UL 6323 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI4_COS_QUEUE_ID 0x10UL 6324 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI5_COS_QUEUE_ID 0x20UL 6325 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI6_COS_QUEUE_ID 0x40UL 6326 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI7_COS_QUEUE_ID 0x80UL 6327 u8 port_id; 6328 u8 pri0_cos_queue_id; 6329 u8 pri1_cos_queue_id; 6330 u8 pri2_cos_queue_id; 6331 u8 pri3_cos_queue_id; 6332 u8 pri4_cos_queue_id; 6333 u8 pri5_cos_queue_id; 6334 u8 pri6_cos_queue_id; 6335 u8 pri7_cos_queue_id; 6336 u8 unused_0[7]; 6337 }; 6338 6339 /* hwrm_queue_pri2cos_cfg_output (size:128b/16B) */ 6340 struct hwrm_queue_pri2cos_cfg_output { 6341 __le16 error_code; 6342 __le16 req_type; 6343 __le16 seq_id; 6344 __le16 resp_len; 6345 u8 unused_0[7]; 6346 u8 valid; 6347 }; 6348 6349 /* hwrm_queue_cos2bw_qcfg_input (size:192b/24B) */ 6350 struct hwrm_queue_cos2bw_qcfg_input { 6351 __le16 req_type; 6352 __le16 cmpl_ring; 6353 __le16 seq_id; 6354 __le16 target_id; 6355 __le64 resp_addr; 6356 __le16 port_id; 6357 u8 unused_0[6]; 6358 }; 6359 6360 /* hwrm_queue_cos2bw_qcfg_output (size:896b/112B) */ 6361 struct hwrm_queue_cos2bw_qcfg_output { 6362 __le16 error_code; 6363 __le16 req_type; 6364 __le16 seq_id; 6365 __le16 resp_len; 6366 u8 queue_id0; 6367 u8 unused_0; 6368 __le16 unused_1; 6369 __le32 queue_id0_min_bw; 6370 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_MASK 0xfffffffUL 6371 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_SFT 0 6372 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE 0x10000000UL 6373 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_BITS (0x0UL << 28) 6374 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_BYTES (0x1UL << 28) 6375 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_BYTES 6376 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 6377 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_SFT 29 6378 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 6379 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 6380 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 6381 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 6382 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 6383 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 6384 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_INVALID 6385 __le32 queue_id0_max_bw; 6386 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_MASK 0xfffffffUL 6387 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_SFT 0 6388 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE 0x10000000UL 6389 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_BITS (0x0UL << 28) 6390 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_BYTES (0x1UL << 28) 6391 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_BYTES 6392 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 6393 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_SFT 29 6394 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 6395 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 6396 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 6397 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 6398 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 6399 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 6400 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_INVALID 6401 u8 queue_id0_tsa_assign; 6402 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_SP 0x0UL 6403 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_ETS 0x1UL 6404 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_RESERVED_FIRST 0x2UL 6405 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_RESERVED_LAST 0xffUL 6406 u8 queue_id0_pri_lvl; 6407 u8 queue_id0_bw_weight; 6408 struct { 6409 u8 queue_id; 6410 __le32 queue_id_min_bw; 6411 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_MASK 0xfffffffUL 6412 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_SFT 0 6413 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_SCALE 0x10000000UL 6414 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_SCALE_BITS (0x0UL << 28) 6415 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_SCALE_BYTES (0x1UL << 28) 6416 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_SCALE_BYTES 6417 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 6418 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_SFT 29 6419 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 6420 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 6421 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 6422 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 6423 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 6424 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 6425 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_INVALID 6426 __le32 queue_id_max_bw; 6427 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_MASK 0xfffffffUL 6428 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_SFT 0 6429 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_SCALE 0x10000000UL 6430 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_SCALE_BITS (0x0UL << 28) 6431 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_SCALE_BYTES (0x1UL << 28) 6432 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_SCALE_BYTES 6433 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 6434 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_SFT 29 6435 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 6436 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 6437 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 6438 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 6439 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 6440 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 6441 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_INVALID 6442 u8 queue_id_tsa_assign; 6443 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_TSA_ASSIGN_SP 0x0UL 6444 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_TSA_ASSIGN_ETS 0x1UL 6445 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_TSA_ASSIGN_RESERVED_FIRST 0x2UL 6446 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_TSA_ASSIGN_RESERVED_LAST 0xffUL 6447 u8 queue_id_pri_lvl; 6448 u8 queue_id_bw_weight; 6449 } __packed cfg[7]; 6450 u8 unused_2[4]; 6451 u8 valid; 6452 }; 6453 6454 /* hwrm_queue_cos2bw_cfg_input (size:1024b/128B) */ 6455 struct hwrm_queue_cos2bw_cfg_input { 6456 __le16 req_type; 6457 __le16 cmpl_ring; 6458 __le16 seq_id; 6459 __le16 target_id; 6460 __le64 resp_addr; 6461 __le32 flags; 6462 __le32 enables; 6463 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID0_VALID 0x1UL 6464 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID1_VALID 0x2UL 6465 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID2_VALID 0x4UL 6466 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID3_VALID 0x8UL 6467 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID4_VALID 0x10UL 6468 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID5_VALID 0x20UL 6469 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID6_VALID 0x40UL 6470 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID7_VALID 0x80UL 6471 __le16 port_id; 6472 u8 queue_id0; 6473 u8 unused_0; 6474 __le32 queue_id0_min_bw; 6475 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_MASK 0xfffffffUL 6476 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_SFT 0 6477 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE 0x10000000UL 6478 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_BITS (0x0UL << 28) 6479 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_BYTES (0x1UL << 28) 6480 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_BYTES 6481 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 6482 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_SFT 29 6483 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 6484 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 6485 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 6486 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 6487 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 6488 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 6489 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_INVALID 6490 __le32 queue_id0_max_bw; 6491 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_MASK 0xfffffffUL 6492 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_SFT 0 6493 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE 0x10000000UL 6494 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_BITS (0x0UL << 28) 6495 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_BYTES (0x1UL << 28) 6496 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_BYTES 6497 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 6498 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_SFT 29 6499 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 6500 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 6501 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 6502 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 6503 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 6504 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 6505 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_INVALID 6506 u8 queue_id0_tsa_assign; 6507 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_SP 0x0UL 6508 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_ETS 0x1UL 6509 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_RESERVED_FIRST 0x2UL 6510 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_RESERVED_LAST 0xffUL 6511 u8 queue_id0_pri_lvl; 6512 u8 queue_id0_bw_weight; 6513 struct { 6514 u8 queue_id; 6515 __le32 queue_id_min_bw; 6516 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_MASK 0xfffffffUL 6517 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_SFT 0 6518 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_SCALE 0x10000000UL 6519 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_SCALE_BITS (0x0UL << 28) 6520 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_SCALE_BYTES (0x1UL << 28) 6521 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_SCALE_BYTES 6522 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 6523 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_SFT 29 6524 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 6525 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 6526 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 6527 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 6528 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 6529 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 6530 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_INVALID 6531 __le32 queue_id_max_bw; 6532 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_MASK 0xfffffffUL 6533 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_SFT 0 6534 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_SCALE 0x10000000UL 6535 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_SCALE_BITS (0x0UL << 28) 6536 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_SCALE_BYTES (0x1UL << 28) 6537 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_SCALE_BYTES 6538 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 6539 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_SFT 29 6540 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 6541 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 6542 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 6543 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 6544 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 6545 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 6546 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_INVALID 6547 u8 queue_id_tsa_assign; 6548 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_TSA_ASSIGN_SP 0x0UL 6549 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_TSA_ASSIGN_ETS 0x1UL 6550 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_TSA_ASSIGN_RESERVED_FIRST 0x2UL 6551 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_TSA_ASSIGN_RESERVED_LAST 0xffUL 6552 u8 queue_id_pri_lvl; 6553 u8 queue_id_bw_weight; 6554 } __packed cfg[7]; 6555 u8 unused_1[5]; 6556 }; 6557 6558 /* hwrm_queue_cos2bw_cfg_output (size:128b/16B) */ 6559 struct hwrm_queue_cos2bw_cfg_output { 6560 __le16 error_code; 6561 __le16 req_type; 6562 __le16 seq_id; 6563 __le16 resp_len; 6564 u8 unused_0[7]; 6565 u8 valid; 6566 }; 6567 6568 /* hwrm_queue_dscp_qcaps_input (size:192b/24B) */ 6569 struct hwrm_queue_dscp_qcaps_input { 6570 __le16 req_type; 6571 __le16 cmpl_ring; 6572 __le16 seq_id; 6573 __le16 target_id; 6574 __le64 resp_addr; 6575 u8 port_id; 6576 u8 unused_0[7]; 6577 }; 6578 6579 /* hwrm_queue_dscp_qcaps_output (size:128b/16B) */ 6580 struct hwrm_queue_dscp_qcaps_output { 6581 __le16 error_code; 6582 __le16 req_type; 6583 __le16 seq_id; 6584 __le16 resp_len; 6585 u8 num_dscp_bits; 6586 u8 unused_0; 6587 __le16 max_entries; 6588 u8 unused_1[3]; 6589 u8 valid; 6590 }; 6591 6592 /* hwrm_queue_dscp2pri_qcfg_input (size:256b/32B) */ 6593 struct hwrm_queue_dscp2pri_qcfg_input { 6594 __le16 req_type; 6595 __le16 cmpl_ring; 6596 __le16 seq_id; 6597 __le16 target_id; 6598 __le64 resp_addr; 6599 __le64 dest_data_addr; 6600 u8 port_id; 6601 u8 unused_0; 6602 __le16 dest_data_buffer_size; 6603 u8 unused_1[4]; 6604 }; 6605 6606 /* hwrm_queue_dscp2pri_qcfg_output (size:128b/16B) */ 6607 struct hwrm_queue_dscp2pri_qcfg_output { 6608 __le16 error_code; 6609 __le16 req_type; 6610 __le16 seq_id; 6611 __le16 resp_len; 6612 __le16 entry_cnt; 6613 u8 default_pri; 6614 u8 unused_0[4]; 6615 u8 valid; 6616 }; 6617 6618 /* hwrm_queue_dscp2pri_cfg_input (size:320b/40B) */ 6619 struct hwrm_queue_dscp2pri_cfg_input { 6620 __le16 req_type; 6621 __le16 cmpl_ring; 6622 __le16 seq_id; 6623 __le16 target_id; 6624 __le64 resp_addr; 6625 __le64 src_data_addr; 6626 __le32 flags; 6627 #define QUEUE_DSCP2PRI_CFG_REQ_FLAGS_USE_HW_DEFAULT_PRI 0x1UL 6628 __le32 enables; 6629 #define QUEUE_DSCP2PRI_CFG_REQ_ENABLES_DEFAULT_PRI 0x1UL 6630 u8 port_id; 6631 u8 default_pri; 6632 __le16 entry_cnt; 6633 u8 unused_0[4]; 6634 }; 6635 6636 /* hwrm_queue_dscp2pri_cfg_output (size:128b/16B) */ 6637 struct hwrm_queue_dscp2pri_cfg_output { 6638 __le16 error_code; 6639 __le16 req_type; 6640 __le16 seq_id; 6641 __le16 resp_len; 6642 u8 unused_0[7]; 6643 u8 valid; 6644 }; 6645 6646 /* hwrm_vnic_alloc_input (size:192b/24B) */ 6647 struct hwrm_vnic_alloc_input { 6648 __le16 req_type; 6649 __le16 cmpl_ring; 6650 __le16 seq_id; 6651 __le16 target_id; 6652 __le64 resp_addr; 6653 __le32 flags; 6654 #define VNIC_ALLOC_REQ_FLAGS_DEFAULT 0x1UL 6655 #define VNIC_ALLOC_REQ_FLAGS_VIRTIO_NET_FID_VALID 0x2UL 6656 #define VNIC_ALLOC_REQ_FLAGS_VNIC_ID_VALID 0x4UL 6657 __le16 virtio_net_fid; 6658 __le16 vnic_id; 6659 }; 6660 6661 /* hwrm_vnic_alloc_output (size:128b/16B) */ 6662 struct hwrm_vnic_alloc_output { 6663 __le16 error_code; 6664 __le16 req_type; 6665 __le16 seq_id; 6666 __le16 resp_len; 6667 __le32 vnic_id; 6668 u8 unused_0[3]; 6669 u8 valid; 6670 }; 6671 6672 /* hwrm_vnic_update_input (size:256b/32B) */ 6673 struct hwrm_vnic_update_input { 6674 __le16 req_type; 6675 __le16 cmpl_ring; 6676 __le16 seq_id; 6677 __le16 target_id; 6678 __le64 resp_addr; 6679 __le32 vnic_id; 6680 __le32 enables; 6681 #define VNIC_UPDATE_REQ_ENABLES_VNIC_STATE_VALID 0x1UL 6682 #define VNIC_UPDATE_REQ_ENABLES_MRU_VALID 0x2UL 6683 #define VNIC_UPDATE_REQ_ENABLES_METADATA_FORMAT_TYPE_VALID 0x4UL 6684 u8 vnic_state; 6685 #define VNIC_UPDATE_REQ_VNIC_STATE_NORMAL 0x0UL 6686 #define VNIC_UPDATE_REQ_VNIC_STATE_DROP 0x1UL 6687 #define VNIC_UPDATE_REQ_VNIC_STATE_LAST VNIC_UPDATE_REQ_VNIC_STATE_DROP 6688 u8 metadata_format_type; 6689 #define VNIC_UPDATE_REQ_METADATA_FORMAT_TYPE_0 0x0UL 6690 #define VNIC_UPDATE_REQ_METADATA_FORMAT_TYPE_1 0x1UL 6691 #define VNIC_UPDATE_REQ_METADATA_FORMAT_TYPE_2 0x2UL 6692 #define VNIC_UPDATE_REQ_METADATA_FORMAT_TYPE_3 0x3UL 6693 #define VNIC_UPDATE_REQ_METADATA_FORMAT_TYPE_4 0x4UL 6694 #define VNIC_UPDATE_REQ_METADATA_FORMAT_TYPE_LAST VNIC_UPDATE_REQ_METADATA_FORMAT_TYPE_4 6695 __le16 mru; 6696 u8 unused_1[4]; 6697 }; 6698 6699 /* hwrm_vnic_update_output (size:128b/16B) */ 6700 struct hwrm_vnic_update_output { 6701 __le16 error_code; 6702 __le16 req_type; 6703 __le16 seq_id; 6704 __le16 resp_len; 6705 u8 unused_0[7]; 6706 u8 valid; 6707 }; 6708 6709 /* hwrm_vnic_free_input (size:192b/24B) */ 6710 struct hwrm_vnic_free_input { 6711 __le16 req_type; 6712 __le16 cmpl_ring; 6713 __le16 seq_id; 6714 __le16 target_id; 6715 __le64 resp_addr; 6716 __le32 vnic_id; 6717 u8 unused_0[4]; 6718 }; 6719 6720 /* hwrm_vnic_free_output (size:128b/16B) */ 6721 struct hwrm_vnic_free_output { 6722 __le16 error_code; 6723 __le16 req_type; 6724 __le16 seq_id; 6725 __le16 resp_len; 6726 u8 unused_0[7]; 6727 u8 valid; 6728 }; 6729 6730 /* hwrm_vnic_cfg_input (size:384b/48B) */ 6731 struct hwrm_vnic_cfg_input { 6732 __le16 req_type; 6733 __le16 cmpl_ring; 6734 __le16 seq_id; 6735 __le16 target_id; 6736 __le64 resp_addr; 6737 __le32 flags; 6738 #define VNIC_CFG_REQ_FLAGS_DEFAULT 0x1UL 6739 #define VNIC_CFG_REQ_FLAGS_VLAN_STRIP_MODE 0x2UL 6740 #define VNIC_CFG_REQ_FLAGS_BD_STALL_MODE 0x4UL 6741 #define VNIC_CFG_REQ_FLAGS_ROCE_DUAL_VNIC_MODE 0x8UL 6742 #define VNIC_CFG_REQ_FLAGS_ROCE_ONLY_VNIC_MODE 0x10UL 6743 #define VNIC_CFG_REQ_FLAGS_RSS_DFLT_CR_MODE 0x20UL 6744 #define VNIC_CFG_REQ_FLAGS_ROCE_MIRRORING_CAPABLE_VNIC_MODE 0x40UL 6745 #define VNIC_CFG_REQ_FLAGS_PORTCOS_MAPPING_MODE 0x80UL 6746 __le32 enables; 6747 #define VNIC_CFG_REQ_ENABLES_DFLT_RING_GRP 0x1UL 6748 #define VNIC_CFG_REQ_ENABLES_RSS_RULE 0x2UL 6749 #define VNIC_CFG_REQ_ENABLES_COS_RULE 0x4UL 6750 #define VNIC_CFG_REQ_ENABLES_LB_RULE 0x8UL 6751 #define VNIC_CFG_REQ_ENABLES_MRU 0x10UL 6752 #define VNIC_CFG_REQ_ENABLES_DEFAULT_RX_RING_ID 0x20UL 6753 #define VNIC_CFG_REQ_ENABLES_DEFAULT_CMPL_RING_ID 0x40UL 6754 #define VNIC_CFG_REQ_ENABLES_QUEUE_ID 0x80UL 6755 #define VNIC_CFG_REQ_ENABLES_RX_CSUM_V2_MODE 0x100UL 6756 #define VNIC_CFG_REQ_ENABLES_L2_CQE_MODE 0x200UL 6757 #define VNIC_CFG_REQ_ENABLES_RAW_QP_ID 0x400UL 6758 __le16 vnic_id; 6759 __le16 dflt_ring_grp; 6760 __le16 rss_rule; 6761 __le16 cos_rule; 6762 __le16 lb_rule; 6763 __le16 mru; 6764 __le16 default_rx_ring_id; 6765 __le16 default_cmpl_ring_id; 6766 __le16 queue_id; 6767 u8 rx_csum_v2_mode; 6768 #define VNIC_CFG_REQ_RX_CSUM_V2_MODE_DEFAULT 0x0UL 6769 #define VNIC_CFG_REQ_RX_CSUM_V2_MODE_ALL_OK 0x1UL 6770 #define VNIC_CFG_REQ_RX_CSUM_V2_MODE_MAX 0x2UL 6771 #define VNIC_CFG_REQ_RX_CSUM_V2_MODE_LAST VNIC_CFG_REQ_RX_CSUM_V2_MODE_MAX 6772 u8 l2_cqe_mode; 6773 #define VNIC_CFG_REQ_L2_CQE_MODE_DEFAULT 0x0UL 6774 #define VNIC_CFG_REQ_L2_CQE_MODE_COMPRESSED 0x1UL 6775 #define VNIC_CFG_REQ_L2_CQE_MODE_MIXED 0x2UL 6776 #define VNIC_CFG_REQ_L2_CQE_MODE_LAST VNIC_CFG_REQ_L2_CQE_MODE_MIXED 6777 __le32 raw_qp_id; 6778 }; 6779 6780 /* hwrm_vnic_cfg_output (size:128b/16B) */ 6781 struct hwrm_vnic_cfg_output { 6782 __le16 error_code; 6783 __le16 req_type; 6784 __le16 seq_id; 6785 __le16 resp_len; 6786 u8 unused_0[7]; 6787 u8 valid; 6788 }; 6789 6790 /* hwrm_vnic_qcaps_input (size:192b/24B) */ 6791 struct hwrm_vnic_qcaps_input { 6792 __le16 req_type; 6793 __le16 cmpl_ring; 6794 __le16 seq_id; 6795 __le16 target_id; 6796 __le64 resp_addr; 6797 __le32 enables; 6798 u8 unused_0[4]; 6799 }; 6800 6801 /* hwrm_vnic_qcaps_output (size:192b/24B) */ 6802 struct hwrm_vnic_qcaps_output { 6803 __le16 error_code; 6804 __le16 req_type; 6805 __le16 seq_id; 6806 __le16 resp_len; 6807 __le16 mru; 6808 u8 unused_0[2]; 6809 __le32 flags; 6810 #define VNIC_QCAPS_RESP_FLAGS_UNUSED 0x1UL 6811 #define VNIC_QCAPS_RESP_FLAGS_VLAN_STRIP_CAP 0x2UL 6812 #define VNIC_QCAPS_RESP_FLAGS_BD_STALL_CAP 0x4UL 6813 #define VNIC_QCAPS_RESP_FLAGS_ROCE_DUAL_VNIC_CAP 0x8UL 6814 #define VNIC_QCAPS_RESP_FLAGS_ROCE_ONLY_VNIC_CAP 0x10UL 6815 #define VNIC_QCAPS_RESP_FLAGS_RSS_DFLT_CR_CAP 0x20UL 6816 #define VNIC_QCAPS_RESP_FLAGS_ROCE_MIRRORING_CAPABLE_VNIC_CAP 0x40UL 6817 #define VNIC_QCAPS_RESP_FLAGS_OUTERMOST_RSS_CAP 0x80UL 6818 #define VNIC_QCAPS_RESP_FLAGS_COS_ASSIGNMENT_CAP 0x100UL 6819 #define VNIC_QCAPS_RESP_FLAGS_RX_CMPL_V2_CAP 0x200UL 6820 #define VNIC_QCAPS_RESP_FLAGS_VNIC_STATE_CAP 0x400UL 6821 #define VNIC_QCAPS_RESP_FLAGS_VIRTIO_NET_VNIC_ALLOC_CAP 0x800UL 6822 #define VNIC_QCAPS_RESP_FLAGS_METADATA_FORMAT_CAP 0x1000UL 6823 #define VNIC_QCAPS_RESP_FLAGS_RSS_STRICT_HASH_TYPE_CAP 0x2000UL 6824 #define VNIC_QCAPS_RESP_FLAGS_RSS_HASH_TYPE_DELTA_CAP 0x4000UL 6825 #define VNIC_QCAPS_RESP_FLAGS_RING_SELECT_MODE_TOEPLITZ_CAP 0x8000UL 6826 #define VNIC_QCAPS_RESP_FLAGS_RING_SELECT_MODE_XOR_CAP 0x10000UL 6827 #define VNIC_QCAPS_RESP_FLAGS_RING_SELECT_MODE_TOEPLITZ_CHKSM_CAP 0x20000UL 6828 #define VNIC_QCAPS_RESP_FLAGS_RSS_IPV6_FLOW_LABEL_CAP 0x40000UL 6829 #define VNIC_QCAPS_RESP_FLAGS_RX_CMPL_V3_CAP 0x80000UL 6830 #define VNIC_QCAPS_RESP_FLAGS_L2_CQE_MODE_CAP 0x100000UL 6831 #define VNIC_QCAPS_RESP_FLAGS_RSS_IPSEC_AH_SPI_IPV4_CAP 0x200000UL 6832 #define VNIC_QCAPS_RESP_FLAGS_RSS_IPSEC_ESP_SPI_IPV4_CAP 0x400000UL 6833 #define VNIC_QCAPS_RESP_FLAGS_RSS_IPSEC_AH_SPI_IPV6_CAP 0x800000UL 6834 #define VNIC_QCAPS_RESP_FLAGS_RSS_IPSEC_ESP_SPI_IPV6_CAP 0x1000000UL 6835 #define VNIC_QCAPS_RESP_FLAGS_OUTERMOST_RSS_TRUSTED_VF_CAP 0x2000000UL 6836 #define VNIC_QCAPS_RESP_FLAGS_PORTCOS_MAPPING_MODE 0x4000000UL 6837 #define VNIC_QCAPS_RESP_FLAGS_RSS_PROF_TCAM_MODE_ENABLED 0x8000000UL 6838 #define VNIC_QCAPS_RESP_FLAGS_VNIC_RSS_HASH_MODE_CAP 0x10000000UL 6839 #define VNIC_QCAPS_RESP_FLAGS_HW_TUNNEL_TPA_CAP 0x20000000UL 6840 #define VNIC_QCAPS_RESP_FLAGS_RE_FLUSH_CAP 0x40000000UL 6841 __le16 max_aggs_supported; 6842 u8 unused_1[5]; 6843 u8 valid; 6844 }; 6845 6846 /* hwrm_vnic_tpa_cfg_input (size:384b/48B) */ 6847 struct hwrm_vnic_tpa_cfg_input { 6848 __le16 req_type; 6849 __le16 cmpl_ring; 6850 __le16 seq_id; 6851 __le16 target_id; 6852 __le64 resp_addr; 6853 __le32 flags; 6854 #define VNIC_TPA_CFG_REQ_FLAGS_TPA 0x1UL 6855 #define VNIC_TPA_CFG_REQ_FLAGS_ENCAP_TPA 0x2UL 6856 #define VNIC_TPA_CFG_REQ_FLAGS_RSC_WND_UPDATE 0x4UL 6857 #define VNIC_TPA_CFG_REQ_FLAGS_GRO 0x8UL 6858 #define VNIC_TPA_CFG_REQ_FLAGS_AGG_WITH_ECN 0x10UL 6859 #define VNIC_TPA_CFG_REQ_FLAGS_AGG_WITH_SAME_GRE_SEQ 0x20UL 6860 #define VNIC_TPA_CFG_REQ_FLAGS_GRO_IPID_CHECK 0x40UL 6861 #define VNIC_TPA_CFG_REQ_FLAGS_GRO_TTL_CHECK 0x80UL 6862 #define VNIC_TPA_CFG_REQ_FLAGS_AGG_PACK_AS_GRO 0x100UL 6863 __le32 enables; 6864 #define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGG_SEGS 0x1UL 6865 #define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGGS 0x2UL 6866 #define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGG_TIMER 0x4UL 6867 #define VNIC_TPA_CFG_REQ_ENABLES_MIN_AGG_LEN 0x8UL 6868 #define VNIC_TPA_CFG_REQ_ENABLES_TNL_TPA_EN 0x10UL 6869 __le16 vnic_id; 6870 __le16 max_agg_segs; 6871 #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_1 0x0UL 6872 #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_2 0x1UL 6873 #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_4 0x2UL 6874 #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_8 0x3UL 6875 #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_MAX 0x1fUL 6876 #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_LAST VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_MAX 6877 __le16 max_aggs; 6878 #define VNIC_TPA_CFG_REQ_MAX_AGGS_1 0x0UL 6879 #define VNIC_TPA_CFG_REQ_MAX_AGGS_2 0x1UL 6880 #define VNIC_TPA_CFG_REQ_MAX_AGGS_4 0x2UL 6881 #define VNIC_TPA_CFG_REQ_MAX_AGGS_8 0x3UL 6882 #define VNIC_TPA_CFG_REQ_MAX_AGGS_16 0x4UL 6883 #define VNIC_TPA_CFG_REQ_MAX_AGGS_MAX 0x7UL 6884 #define VNIC_TPA_CFG_REQ_MAX_AGGS_LAST VNIC_TPA_CFG_REQ_MAX_AGGS_MAX 6885 u8 unused_0[2]; 6886 __le32 max_agg_timer; 6887 __le32 min_agg_len; 6888 __le32 tnl_tpa_en_bitmap; 6889 #define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_VXLAN 0x1UL 6890 #define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_GENEVE 0x2UL 6891 #define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_NVGRE 0x4UL 6892 #define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_GRE 0x8UL 6893 #define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_IPV4 0x10UL 6894 #define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_IPV6 0x20UL 6895 #define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_VXLAN_GPE 0x40UL 6896 #define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_VXLAN_CUST1 0x80UL 6897 #define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_GRE_CUST1 0x100UL 6898 #define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_UPAR1 0x200UL 6899 #define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_UPAR2 0x400UL 6900 #define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_UPAR3 0x800UL 6901 #define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_UPAR4 0x1000UL 6902 #define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_UPAR5 0x2000UL 6903 #define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_UPAR6 0x4000UL 6904 #define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_UPAR7 0x8000UL 6905 #define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_UPAR8 0x10000UL 6906 u8 unused_1[4]; 6907 }; 6908 6909 /* hwrm_vnic_tpa_cfg_output (size:128b/16B) */ 6910 struct hwrm_vnic_tpa_cfg_output { 6911 __le16 error_code; 6912 __le16 req_type; 6913 __le16 seq_id; 6914 __le16 resp_len; 6915 u8 unused_0[7]; 6916 u8 valid; 6917 }; 6918 6919 /* hwrm_vnic_tpa_qcfg_input (size:192b/24B) */ 6920 struct hwrm_vnic_tpa_qcfg_input { 6921 __le16 req_type; 6922 __le16 cmpl_ring; 6923 __le16 seq_id; 6924 __le16 target_id; 6925 __le64 resp_addr; 6926 __le16 vnic_id; 6927 u8 unused_0[6]; 6928 }; 6929 6930 /* hwrm_vnic_tpa_qcfg_output (size:256b/32B) */ 6931 struct hwrm_vnic_tpa_qcfg_output { 6932 __le16 error_code; 6933 __le16 req_type; 6934 __le16 seq_id; 6935 __le16 resp_len; 6936 __le32 flags; 6937 #define VNIC_TPA_QCFG_RESP_FLAGS_TPA 0x1UL 6938 #define VNIC_TPA_QCFG_RESP_FLAGS_ENCAP_TPA 0x2UL 6939 #define VNIC_TPA_QCFG_RESP_FLAGS_RSC_WND_UPDATE 0x4UL 6940 #define VNIC_TPA_QCFG_RESP_FLAGS_GRO 0x8UL 6941 #define VNIC_TPA_QCFG_RESP_FLAGS_AGG_WITH_ECN 0x10UL 6942 #define VNIC_TPA_QCFG_RESP_FLAGS_AGG_WITH_SAME_GRE_SEQ 0x20UL 6943 #define VNIC_TPA_QCFG_RESP_FLAGS_GRO_IPID_CHECK 0x40UL 6944 #define VNIC_TPA_QCFG_RESP_FLAGS_GRO_TTL_CHECK 0x80UL 6945 __le16 max_agg_segs; 6946 #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_1 0x0UL 6947 #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_2 0x1UL 6948 #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_4 0x2UL 6949 #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_8 0x3UL 6950 #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_MAX 0x1fUL 6951 #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_LAST VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_MAX 6952 __le16 max_aggs; 6953 #define VNIC_TPA_QCFG_RESP_MAX_AGGS_1 0x0UL 6954 #define VNIC_TPA_QCFG_RESP_MAX_AGGS_2 0x1UL 6955 #define VNIC_TPA_QCFG_RESP_MAX_AGGS_4 0x2UL 6956 #define VNIC_TPA_QCFG_RESP_MAX_AGGS_8 0x3UL 6957 #define VNIC_TPA_QCFG_RESP_MAX_AGGS_16 0x4UL 6958 #define VNIC_TPA_QCFG_RESP_MAX_AGGS_MAX 0x7UL 6959 #define VNIC_TPA_QCFG_RESP_MAX_AGGS_LAST VNIC_TPA_QCFG_RESP_MAX_AGGS_MAX 6960 __le32 max_agg_timer; 6961 __le32 min_agg_len; 6962 __le32 tnl_tpa_en_bitmap; 6963 #define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_VXLAN 0x1UL 6964 #define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_GENEVE 0x2UL 6965 #define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_NVGRE 0x4UL 6966 #define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_GRE 0x8UL 6967 #define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_IPV4 0x10UL 6968 #define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_IPV6 0x20UL 6969 #define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_VXLAN_GPE 0x40UL 6970 #define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_VXLAN_CUST1 0x80UL 6971 #define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_GRE_CUST1 0x100UL 6972 #define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_UPAR1 0x200UL 6973 #define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_UPAR2 0x400UL 6974 #define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_UPAR3 0x800UL 6975 #define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_UPAR4 0x1000UL 6976 #define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_UPAR5 0x2000UL 6977 #define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_UPAR6 0x4000UL 6978 #define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_UPAR7 0x8000UL 6979 #define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_UPAR8 0x10000UL 6980 u8 unused_0[3]; 6981 u8 valid; 6982 }; 6983 6984 /* hwrm_vnic_rss_cfg_input (size:384b/48B) */ 6985 struct hwrm_vnic_rss_cfg_input { 6986 __le16 req_type; 6987 __le16 cmpl_ring; 6988 __le16 seq_id; 6989 __le16 target_id; 6990 __le64 resp_addr; 6991 __le32 hash_type; 6992 #define VNIC_RSS_CFG_REQ_HASH_TYPE_IPV4 0x1UL 6993 #define VNIC_RSS_CFG_REQ_HASH_TYPE_TCP_IPV4 0x2UL 6994 #define VNIC_RSS_CFG_REQ_HASH_TYPE_UDP_IPV4 0x4UL 6995 #define VNIC_RSS_CFG_REQ_HASH_TYPE_IPV6 0x8UL 6996 #define VNIC_RSS_CFG_REQ_HASH_TYPE_TCP_IPV6 0x10UL 6997 #define VNIC_RSS_CFG_REQ_HASH_TYPE_UDP_IPV6 0x20UL 6998 #define VNIC_RSS_CFG_REQ_HASH_TYPE_IPV6_FLOW_LABEL 0x40UL 6999 #define VNIC_RSS_CFG_REQ_HASH_TYPE_AH_SPI_IPV4 0x80UL 7000 #define VNIC_RSS_CFG_REQ_HASH_TYPE_ESP_SPI_IPV4 0x100UL 7001 #define VNIC_RSS_CFG_REQ_HASH_TYPE_AH_SPI_IPV6 0x200UL 7002 #define VNIC_RSS_CFG_REQ_HASH_TYPE_ESP_SPI_IPV6 0x400UL 7003 __le16 vnic_id; 7004 u8 ring_table_pair_index; 7005 u8 hash_mode_flags; 7006 #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_DEFAULT 0x1UL 7007 #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_INNERMOST_4 0x2UL 7008 #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_INNERMOST_2 0x4UL 7009 #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_OUTERMOST_4 0x8UL 7010 #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_OUTERMOST_2 0x10UL 7011 __le64 ring_grp_tbl_addr; 7012 __le64 hash_key_tbl_addr; 7013 __le16 rss_ctx_idx; 7014 u8 flags; 7015 #define VNIC_RSS_CFG_REQ_FLAGS_HASH_TYPE_INCLUDE 0x1UL 7016 #define VNIC_RSS_CFG_REQ_FLAGS_HASH_TYPE_EXCLUDE 0x2UL 7017 #define VNIC_RSS_CFG_REQ_FLAGS_IPSEC_HASH_TYPE_CFG_SUPPORT 0x4UL 7018 u8 ring_select_mode; 7019 #define VNIC_RSS_CFG_REQ_RING_SELECT_MODE_TOEPLITZ 0x0UL 7020 #define VNIC_RSS_CFG_REQ_RING_SELECT_MODE_XOR 0x1UL 7021 #define VNIC_RSS_CFG_REQ_RING_SELECT_MODE_TOEPLITZ_CHECKSUM 0x2UL 7022 #define VNIC_RSS_CFG_REQ_RING_SELECT_MODE_LAST VNIC_RSS_CFG_REQ_RING_SELECT_MODE_TOEPLITZ_CHECKSUM 7023 u8 unused_1[4]; 7024 }; 7025 7026 /* hwrm_vnic_rss_cfg_output (size:128b/16B) */ 7027 struct hwrm_vnic_rss_cfg_output { 7028 __le16 error_code; 7029 __le16 req_type; 7030 __le16 seq_id; 7031 __le16 resp_len; 7032 u8 unused_0[7]; 7033 u8 valid; 7034 }; 7035 7036 /* hwrm_vnic_rss_cfg_cmd_err (size:64b/8B) */ 7037 struct hwrm_vnic_rss_cfg_cmd_err { 7038 u8 code; 7039 #define VNIC_RSS_CFG_CMD_ERR_CODE_UNKNOWN 0x0UL 7040 #define VNIC_RSS_CFG_CMD_ERR_CODE_INTERFACE_NOT_READY 0x1UL 7041 #define VNIC_RSS_CFG_CMD_ERR_CODE_LAST VNIC_RSS_CFG_CMD_ERR_CODE_INTERFACE_NOT_READY 7042 u8 unused_0[7]; 7043 }; 7044 7045 /* hwrm_vnic_rss_qcfg_input (size:192b/24B) */ 7046 struct hwrm_vnic_rss_qcfg_input { 7047 __le16 req_type; 7048 __le16 cmpl_ring; 7049 __le16 seq_id; 7050 __le16 target_id; 7051 __le64 resp_addr; 7052 __le16 rss_ctx_idx; 7053 __le16 vnic_id; 7054 u8 unused_0[4]; 7055 }; 7056 7057 /* hwrm_vnic_rss_qcfg_output (size:512b/64B) */ 7058 struct hwrm_vnic_rss_qcfg_output { 7059 __le16 error_code; 7060 __le16 req_type; 7061 __le16 seq_id; 7062 __le16 resp_len; 7063 __le32 hash_type; 7064 #define VNIC_RSS_QCFG_RESP_HASH_TYPE_IPV4 0x1UL 7065 #define VNIC_RSS_QCFG_RESP_HASH_TYPE_TCP_IPV4 0x2UL 7066 #define VNIC_RSS_QCFG_RESP_HASH_TYPE_UDP_IPV4 0x4UL 7067 #define VNIC_RSS_QCFG_RESP_HASH_TYPE_IPV6 0x8UL 7068 #define VNIC_RSS_QCFG_RESP_HASH_TYPE_TCP_IPV6 0x10UL 7069 #define VNIC_RSS_QCFG_RESP_HASH_TYPE_UDP_IPV6 0x20UL 7070 #define VNIC_RSS_QCFG_RESP_HASH_TYPE_IPV6_FLOW_LABEL 0x40UL 7071 #define VNIC_RSS_QCFG_RESP_HASH_TYPE_AH_SPI_IPV4 0x80UL 7072 #define VNIC_RSS_QCFG_RESP_HASH_TYPE_ESP_SPI_IPV4 0x100UL 7073 #define VNIC_RSS_QCFG_RESP_HASH_TYPE_AH_SPI_IPV6 0x200UL 7074 #define VNIC_RSS_QCFG_RESP_HASH_TYPE_ESP_SPI_IPV6 0x400UL 7075 u8 unused_0[4]; 7076 __le32 hash_key[10]; 7077 u8 hash_mode_flags; 7078 #define VNIC_RSS_QCFG_RESP_HASH_MODE_FLAGS_DEFAULT 0x1UL 7079 #define VNIC_RSS_QCFG_RESP_HASH_MODE_FLAGS_INNERMOST_4 0x2UL 7080 #define VNIC_RSS_QCFG_RESP_HASH_MODE_FLAGS_INNERMOST_2 0x4UL 7081 #define VNIC_RSS_QCFG_RESP_HASH_MODE_FLAGS_OUTERMOST_4 0x8UL 7082 #define VNIC_RSS_QCFG_RESP_HASH_MODE_FLAGS_OUTERMOST_2 0x10UL 7083 u8 ring_select_mode; 7084 #define VNIC_RSS_QCFG_RESP_RING_SELECT_MODE_TOEPLITZ 0x0UL 7085 #define VNIC_RSS_QCFG_RESP_RING_SELECT_MODE_XOR 0x1UL 7086 #define VNIC_RSS_QCFG_RESP_RING_SELECT_MODE_TOEPLITZ_CHECKSUM 0x2UL 7087 #define VNIC_RSS_QCFG_RESP_RING_SELECT_MODE_LAST VNIC_RSS_QCFG_RESP_RING_SELECT_MODE_TOEPLITZ_CHECKSUM 7088 u8 unused_1[5]; 7089 u8 valid; 7090 }; 7091 7092 /* hwrm_vnic_plcmodes_cfg_input (size:320b/40B) */ 7093 struct hwrm_vnic_plcmodes_cfg_input { 7094 __le16 req_type; 7095 __le16 cmpl_ring; 7096 __le16 seq_id; 7097 __le16 target_id; 7098 __le64 resp_addr; 7099 __le32 flags; 7100 #define VNIC_PLCMODES_CFG_REQ_FLAGS_REGULAR_PLACEMENT 0x1UL 7101 #define VNIC_PLCMODES_CFG_REQ_FLAGS_JUMBO_PLACEMENT 0x2UL 7102 #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_IPV4 0x4UL 7103 #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_IPV6 0x8UL 7104 #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_FCOE 0x10UL 7105 #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_ROCE 0x20UL 7106 #define VNIC_PLCMODES_CFG_REQ_FLAGS_VIRTIO_PLACEMENT 0x40UL 7107 __le32 enables; 7108 #define VNIC_PLCMODES_CFG_REQ_ENABLES_JUMBO_THRESH_VALID 0x1UL 7109 #define VNIC_PLCMODES_CFG_REQ_ENABLES_HDS_OFFSET_VALID 0x2UL 7110 #define VNIC_PLCMODES_CFG_REQ_ENABLES_HDS_THRESHOLD_VALID 0x4UL 7111 #define VNIC_PLCMODES_CFG_REQ_ENABLES_MAX_BDS_VALID 0x8UL 7112 __le32 vnic_id; 7113 __le16 jumbo_thresh; 7114 __le16 hds_offset; 7115 __le16 hds_threshold; 7116 __le16 max_bds; 7117 u8 unused_0[4]; 7118 }; 7119 7120 /* hwrm_vnic_plcmodes_cfg_output (size:128b/16B) */ 7121 struct hwrm_vnic_plcmodes_cfg_output { 7122 __le16 error_code; 7123 __le16 req_type; 7124 __le16 seq_id; 7125 __le16 resp_len; 7126 u8 unused_0[7]; 7127 u8 valid; 7128 }; 7129 7130 /* hwrm_vnic_plcmodes_cfg_cmd_err (size:64b/8B) */ 7131 struct hwrm_vnic_plcmodes_cfg_cmd_err { 7132 u8 code; 7133 #define VNIC_PLCMODES_CFG_CMD_ERR_CODE_UNKNOWN 0x0UL 7134 #define VNIC_PLCMODES_CFG_CMD_ERR_CODE_INVALID_HDS_THRESHOLD 0x1UL 7135 #define VNIC_PLCMODES_CFG_CMD_ERR_CODE_LAST VNIC_PLCMODES_CFG_CMD_ERR_CODE_INVALID_HDS_THRESHOLD 7136 u8 unused_0[7]; 7137 }; 7138 7139 /* hwrm_vnic_rss_cos_lb_ctx_alloc_input (size:128b/16B) */ 7140 struct hwrm_vnic_rss_cos_lb_ctx_alloc_input { 7141 __le16 req_type; 7142 __le16 cmpl_ring; 7143 __le16 seq_id; 7144 __le16 target_id; 7145 __le64 resp_addr; 7146 }; 7147 7148 /* hwrm_vnic_rss_cos_lb_ctx_alloc_output (size:128b/16B) */ 7149 struct hwrm_vnic_rss_cos_lb_ctx_alloc_output { 7150 __le16 error_code; 7151 __le16 req_type; 7152 __le16 seq_id; 7153 __le16 resp_len; 7154 __le16 rss_cos_lb_ctx_id; 7155 u8 unused_0[5]; 7156 u8 valid; 7157 }; 7158 7159 /* hwrm_vnic_rss_cos_lb_ctx_free_input (size:192b/24B) */ 7160 struct hwrm_vnic_rss_cos_lb_ctx_free_input { 7161 __le16 req_type; 7162 __le16 cmpl_ring; 7163 __le16 seq_id; 7164 __le16 target_id; 7165 __le64 resp_addr; 7166 __le16 rss_cos_lb_ctx_id; 7167 u8 unused_0[6]; 7168 }; 7169 7170 /* hwrm_vnic_rss_cos_lb_ctx_free_output (size:128b/16B) */ 7171 struct hwrm_vnic_rss_cos_lb_ctx_free_output { 7172 __le16 error_code; 7173 __le16 req_type; 7174 __le16 seq_id; 7175 __le16 resp_len; 7176 u8 unused_0[7]; 7177 u8 valid; 7178 }; 7179 7180 /* hwrm_ring_alloc_input (size:704b/88B) */ 7181 struct hwrm_ring_alloc_input { 7182 __le16 req_type; 7183 __le16 cmpl_ring; 7184 __le16 seq_id; 7185 __le16 target_id; 7186 __le64 resp_addr; 7187 __le32 enables; 7188 #define RING_ALLOC_REQ_ENABLES_RING_ARB_CFG 0x2UL 7189 #define RING_ALLOC_REQ_ENABLES_STAT_CTX_ID_VALID 0x8UL 7190 #define RING_ALLOC_REQ_ENABLES_MAX_BW_VALID 0x20UL 7191 #define RING_ALLOC_REQ_ENABLES_RX_RING_ID_VALID 0x40UL 7192 #define RING_ALLOC_REQ_ENABLES_NQ_RING_ID_VALID 0x80UL 7193 #define RING_ALLOC_REQ_ENABLES_RX_BUF_SIZE_VALID 0x100UL 7194 #define RING_ALLOC_REQ_ENABLES_SCHQ_ID 0x200UL 7195 #define RING_ALLOC_REQ_ENABLES_MPC_CHNLS_TYPE 0x400UL 7196 #define RING_ALLOC_REQ_ENABLES_STEERING_TAG_VALID 0x800UL 7197 #define RING_ALLOC_REQ_ENABLES_RX_RATE_PROFILE_VALID 0x1000UL 7198 u8 ring_type; 7199 #define RING_ALLOC_REQ_RING_TYPE_L2_CMPL 0x0UL 7200 #define RING_ALLOC_REQ_RING_TYPE_TX 0x1UL 7201 #define RING_ALLOC_REQ_RING_TYPE_RX 0x2UL 7202 #define RING_ALLOC_REQ_RING_TYPE_ROCE_CMPL 0x3UL 7203 #define RING_ALLOC_REQ_RING_TYPE_RX_AGG 0x4UL 7204 #define RING_ALLOC_REQ_RING_TYPE_NQ 0x5UL 7205 #define RING_ALLOC_REQ_RING_TYPE_LAST RING_ALLOC_REQ_RING_TYPE_NQ 7206 u8 cmpl_coal_cnt; 7207 #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_OFF 0x0UL 7208 #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_4 0x1UL 7209 #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_8 0x2UL 7210 #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_12 0x3UL 7211 #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_16 0x4UL 7212 #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_24 0x5UL 7213 #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_32 0x6UL 7214 #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_48 0x7UL 7215 #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_64 0x8UL 7216 #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_96 0x9UL 7217 #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_128 0xaUL 7218 #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_192 0xbUL 7219 #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_256 0xcUL 7220 #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_320 0xdUL 7221 #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_384 0xeUL 7222 #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_MAX 0xfUL 7223 #define RING_ALLOC_REQ_CMPL_COAL_CNT_LAST RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_MAX 7224 __le16 flags; 7225 #define RING_ALLOC_REQ_FLAGS_RX_SOP_PAD 0x1UL 7226 #define RING_ALLOC_REQ_FLAGS_DISABLE_CQ_OVERFLOW_DETECTION 0x2UL 7227 #define RING_ALLOC_REQ_FLAGS_NQ_DBR_PACING 0x4UL 7228 #define RING_ALLOC_REQ_FLAGS_TX_PKT_TS_CMPL_ENABLE 0x8UL 7229 __le64 page_tbl_addr; 7230 __le32 fbo; 7231 u8 page_size; 7232 u8 page_tbl_depth; 7233 __le16 schq_id; 7234 __le32 length; 7235 __le16 logical_id; 7236 __le16 cmpl_ring_id; 7237 __le16 queue_id; 7238 __le16 rx_buf_size; 7239 __le16 rx_ring_id; 7240 __le16 nq_ring_id; 7241 __le16 ring_arb_cfg; 7242 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_MASK 0xfUL 7243 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_SFT 0 7244 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_SP 0x1UL 7245 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_WFQ 0x2UL 7246 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_LAST RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_WFQ 7247 #define RING_ALLOC_REQ_RING_ARB_CFG_RSVD_MASK 0xf0UL 7248 #define RING_ALLOC_REQ_RING_ARB_CFG_RSVD_SFT 4 7249 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_PARAM_MASK 0xff00UL 7250 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_PARAM_SFT 8 7251 __le16 steering_tag; 7252 __le32 reserved3; 7253 __le32 stat_ctx_id; 7254 __le32 reserved4; 7255 __le32 max_bw; 7256 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_MASK 0xfffffffUL 7257 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_SFT 0 7258 #define RING_ALLOC_REQ_MAX_BW_SCALE 0x10000000UL 7259 #define RING_ALLOC_REQ_MAX_BW_SCALE_BITS (0x0UL << 28) 7260 #define RING_ALLOC_REQ_MAX_BW_SCALE_BYTES (0x1UL << 28) 7261 #define RING_ALLOC_REQ_MAX_BW_SCALE_LAST RING_ALLOC_REQ_MAX_BW_SCALE_BYTES 7262 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 7263 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_SFT 29 7264 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 7265 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 7266 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 7267 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 7268 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 7269 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 7270 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_LAST RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_INVALID 7271 u8 int_mode; 7272 #define RING_ALLOC_REQ_INT_MODE_LEGACY 0x0UL 7273 #define RING_ALLOC_REQ_INT_MODE_RSVD 0x1UL 7274 #define RING_ALLOC_REQ_INT_MODE_MSIX 0x2UL 7275 #define RING_ALLOC_REQ_INT_MODE_POLL 0x3UL 7276 #define RING_ALLOC_REQ_INT_MODE_LAST RING_ALLOC_REQ_INT_MODE_POLL 7277 u8 mpc_chnls_type; 7278 #define RING_ALLOC_REQ_MPC_CHNLS_TYPE_TCE 0x0UL 7279 #define RING_ALLOC_REQ_MPC_CHNLS_TYPE_RCE 0x1UL 7280 #define RING_ALLOC_REQ_MPC_CHNLS_TYPE_TE_CFA 0x2UL 7281 #define RING_ALLOC_REQ_MPC_CHNLS_TYPE_RE_CFA 0x3UL 7282 #define RING_ALLOC_REQ_MPC_CHNLS_TYPE_PRIMATE 0x4UL 7283 #define RING_ALLOC_REQ_MPC_CHNLS_TYPE_LAST RING_ALLOC_REQ_MPC_CHNLS_TYPE_PRIMATE 7284 u8 rx_rate_profile_sel; 7285 #define RING_ALLOC_REQ_RX_RATE_PROFILE_SEL_DEFAULT 0x0UL 7286 #define RING_ALLOC_REQ_RX_RATE_PROFILE_SEL_POLL_MODE 0x1UL 7287 #define RING_ALLOC_REQ_RX_RATE_PROFILE_SEL_LAST RING_ALLOC_REQ_RX_RATE_PROFILE_SEL_POLL_MODE 7288 u8 unused_4; 7289 __le64 cq_handle; 7290 }; 7291 7292 /* hwrm_ring_alloc_output (size:128b/16B) */ 7293 struct hwrm_ring_alloc_output { 7294 __le16 error_code; 7295 __le16 req_type; 7296 __le16 seq_id; 7297 __le16 resp_len; 7298 __le16 ring_id; 7299 __le16 logical_ring_id; 7300 u8 push_buffer_index; 7301 #define RING_ALLOC_RESP_PUSH_BUFFER_INDEX_PING_BUFFER 0x0UL 7302 #define RING_ALLOC_RESP_PUSH_BUFFER_INDEX_PONG_BUFFER 0x1UL 7303 #define RING_ALLOC_RESP_PUSH_BUFFER_INDEX_LAST RING_ALLOC_RESP_PUSH_BUFFER_INDEX_PONG_BUFFER 7304 u8 unused_0[2]; 7305 u8 valid; 7306 }; 7307 7308 /* hwrm_ring_free_input (size:256b/32B) */ 7309 struct hwrm_ring_free_input { 7310 __le16 req_type; 7311 __le16 cmpl_ring; 7312 __le16 seq_id; 7313 __le16 target_id; 7314 __le64 resp_addr; 7315 u8 ring_type; 7316 #define RING_FREE_REQ_RING_TYPE_L2_CMPL 0x0UL 7317 #define RING_FREE_REQ_RING_TYPE_TX 0x1UL 7318 #define RING_FREE_REQ_RING_TYPE_RX 0x2UL 7319 #define RING_FREE_REQ_RING_TYPE_ROCE_CMPL 0x3UL 7320 #define RING_FREE_REQ_RING_TYPE_RX_AGG 0x4UL 7321 #define RING_FREE_REQ_RING_TYPE_NQ 0x5UL 7322 #define RING_FREE_REQ_RING_TYPE_LAST RING_FREE_REQ_RING_TYPE_NQ 7323 u8 flags; 7324 #define RING_FREE_REQ_FLAGS_VIRTIO_RING_VALID 0x1UL 7325 #define RING_FREE_REQ_FLAGS_LAST RING_FREE_REQ_FLAGS_VIRTIO_RING_VALID 7326 __le16 ring_id; 7327 __le32 prod_idx; 7328 __le32 opaque; 7329 __le32 unused_1; 7330 }; 7331 7332 /* hwrm_ring_free_output (size:128b/16B) */ 7333 struct hwrm_ring_free_output { 7334 __le16 error_code; 7335 __le16 req_type; 7336 __le16 seq_id; 7337 __le16 resp_len; 7338 u8 unused_0[7]; 7339 u8 valid; 7340 }; 7341 7342 /* hwrm_ring_reset_input (size:192b/24B) */ 7343 struct hwrm_ring_reset_input { 7344 __le16 req_type; 7345 __le16 cmpl_ring; 7346 __le16 seq_id; 7347 __le16 target_id; 7348 __le64 resp_addr; 7349 u8 ring_type; 7350 #define RING_RESET_REQ_RING_TYPE_L2_CMPL 0x0UL 7351 #define RING_RESET_REQ_RING_TYPE_TX 0x1UL 7352 #define RING_RESET_REQ_RING_TYPE_RX 0x2UL 7353 #define RING_RESET_REQ_RING_TYPE_ROCE_CMPL 0x3UL 7354 #define RING_RESET_REQ_RING_TYPE_RX_RING_GRP 0x6UL 7355 #define RING_RESET_REQ_RING_TYPE_LAST RING_RESET_REQ_RING_TYPE_RX_RING_GRP 7356 u8 unused_0; 7357 __le16 ring_id; 7358 u8 unused_1[4]; 7359 }; 7360 7361 /* hwrm_ring_reset_output (size:128b/16B) */ 7362 struct hwrm_ring_reset_output { 7363 __le16 error_code; 7364 __le16 req_type; 7365 __le16 seq_id; 7366 __le16 resp_len; 7367 u8 push_buffer_index; 7368 #define RING_RESET_RESP_PUSH_BUFFER_INDEX_PING_BUFFER 0x0UL 7369 #define RING_RESET_RESP_PUSH_BUFFER_INDEX_PONG_BUFFER 0x1UL 7370 #define RING_RESET_RESP_PUSH_BUFFER_INDEX_LAST RING_RESET_RESP_PUSH_BUFFER_INDEX_PONG_BUFFER 7371 u8 unused_0[3]; 7372 u8 consumer_idx[3]; 7373 u8 valid; 7374 }; 7375 7376 /* hwrm_ring_aggint_qcaps_input (size:128b/16B) */ 7377 struct hwrm_ring_aggint_qcaps_input { 7378 __le16 req_type; 7379 __le16 cmpl_ring; 7380 __le16 seq_id; 7381 __le16 target_id; 7382 __le64 resp_addr; 7383 }; 7384 7385 /* hwrm_ring_aggint_qcaps_output (size:384b/48B) */ 7386 struct hwrm_ring_aggint_qcaps_output { 7387 __le16 error_code; 7388 __le16 req_type; 7389 __le16 seq_id; 7390 __le16 resp_len; 7391 __le32 cmpl_params; 7392 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_INT_LAT_TMR_MIN 0x1UL 7393 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_INT_LAT_TMR_MAX 0x2UL 7394 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_TIMER_RESET 0x4UL 7395 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_RING_IDLE 0x8UL 7396 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_NUM_CMPL_DMA_AGGR 0x10UL 7397 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_NUM_CMPL_DMA_AGGR_DURING_INT 0x20UL 7398 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_CMPL_AGGR_DMA_TMR 0x40UL 7399 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_CMPL_AGGR_DMA_TMR_DURING_INT 0x80UL 7400 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_NUM_CMPL_AGGR_INT 0x100UL 7401 __le32 nq_params; 7402 #define RING_AGGINT_QCAPS_RESP_NQ_PARAMS_INT_LAT_TMR_MIN 0x1UL 7403 __le16 num_cmpl_dma_aggr_min; 7404 __le16 num_cmpl_dma_aggr_max; 7405 __le16 num_cmpl_dma_aggr_during_int_min; 7406 __le16 num_cmpl_dma_aggr_during_int_max; 7407 __le16 cmpl_aggr_dma_tmr_min; 7408 __le16 cmpl_aggr_dma_tmr_max; 7409 __le16 cmpl_aggr_dma_tmr_during_int_min; 7410 __le16 cmpl_aggr_dma_tmr_during_int_max; 7411 __le16 int_lat_tmr_min_min; 7412 __le16 int_lat_tmr_min_max; 7413 __le16 int_lat_tmr_max_min; 7414 __le16 int_lat_tmr_max_max; 7415 __le16 num_cmpl_aggr_int_min; 7416 __le16 num_cmpl_aggr_int_max; 7417 __le16 timer_units; 7418 u8 unused_0[1]; 7419 u8 valid; 7420 }; 7421 7422 /* hwrm_ring_cmpl_ring_qaggint_params_input (size:192b/24B) */ 7423 struct hwrm_ring_cmpl_ring_qaggint_params_input { 7424 __le16 req_type; 7425 __le16 cmpl_ring; 7426 __le16 seq_id; 7427 __le16 target_id; 7428 __le64 resp_addr; 7429 __le16 ring_id; 7430 __le16 flags; 7431 #define RING_CMPL_RING_QAGGINT_PARAMS_REQ_FLAGS_UNUSED_0_MASK 0x3UL 7432 #define RING_CMPL_RING_QAGGINT_PARAMS_REQ_FLAGS_UNUSED_0_SFT 0 7433 #define RING_CMPL_RING_QAGGINT_PARAMS_REQ_FLAGS_IS_NQ 0x4UL 7434 u8 unused_0[4]; 7435 }; 7436 7437 /* hwrm_ring_cmpl_ring_qaggint_params_output (size:256b/32B) */ 7438 struct hwrm_ring_cmpl_ring_qaggint_params_output { 7439 __le16 error_code; 7440 __le16 req_type; 7441 __le16 seq_id; 7442 __le16 resp_len; 7443 __le16 flags; 7444 #define RING_CMPL_RING_QAGGINT_PARAMS_RESP_FLAGS_TIMER_RESET 0x1UL 7445 #define RING_CMPL_RING_QAGGINT_PARAMS_RESP_FLAGS_RING_IDLE 0x2UL 7446 __le16 num_cmpl_dma_aggr; 7447 __le16 num_cmpl_dma_aggr_during_int; 7448 __le16 cmpl_aggr_dma_tmr; 7449 __le16 cmpl_aggr_dma_tmr_during_int; 7450 __le16 int_lat_tmr_min; 7451 __le16 int_lat_tmr_max; 7452 __le16 num_cmpl_aggr_int; 7453 u8 unused_0[7]; 7454 u8 valid; 7455 }; 7456 7457 /* hwrm_ring_cmpl_ring_cfg_aggint_params_input (size:320b/40B) */ 7458 struct hwrm_ring_cmpl_ring_cfg_aggint_params_input { 7459 __le16 req_type; 7460 __le16 cmpl_ring; 7461 __le16 seq_id; 7462 __le16 target_id; 7463 __le64 resp_addr; 7464 __le16 ring_id; 7465 __le16 flags; 7466 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_FLAGS_TIMER_RESET 0x1UL 7467 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_FLAGS_RING_IDLE 0x2UL 7468 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_FLAGS_IS_NQ 0x4UL 7469 __le16 num_cmpl_dma_aggr; 7470 __le16 num_cmpl_dma_aggr_during_int; 7471 __le16 cmpl_aggr_dma_tmr; 7472 __le16 cmpl_aggr_dma_tmr_during_int; 7473 __le16 int_lat_tmr_min; 7474 __le16 int_lat_tmr_max; 7475 __le16 num_cmpl_aggr_int; 7476 __le16 enables; 7477 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_NUM_CMPL_DMA_AGGR 0x1UL 7478 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_NUM_CMPL_DMA_AGGR_DURING_INT 0x2UL 7479 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_CMPL_AGGR_DMA_TMR 0x4UL 7480 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_INT_LAT_TMR_MIN 0x8UL 7481 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_INT_LAT_TMR_MAX 0x10UL 7482 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_NUM_CMPL_AGGR_INT 0x20UL 7483 u8 unused_0[4]; 7484 }; 7485 7486 /* hwrm_ring_cmpl_ring_cfg_aggint_params_output (size:128b/16B) */ 7487 struct hwrm_ring_cmpl_ring_cfg_aggint_params_output { 7488 __le16 error_code; 7489 __le16 req_type; 7490 __le16 seq_id; 7491 __le16 resp_len; 7492 u8 unused_0[7]; 7493 u8 valid; 7494 }; 7495 7496 /* hwrm_ring_grp_alloc_input (size:192b/24B) */ 7497 struct hwrm_ring_grp_alloc_input { 7498 __le16 req_type; 7499 __le16 cmpl_ring; 7500 __le16 seq_id; 7501 __le16 target_id; 7502 __le64 resp_addr; 7503 __le16 cr; 7504 __le16 rr; 7505 __le16 ar; 7506 __le16 sc; 7507 }; 7508 7509 /* hwrm_ring_grp_alloc_output (size:128b/16B) */ 7510 struct hwrm_ring_grp_alloc_output { 7511 __le16 error_code; 7512 __le16 req_type; 7513 __le16 seq_id; 7514 __le16 resp_len; 7515 __le32 ring_group_id; 7516 u8 unused_0[3]; 7517 u8 valid; 7518 }; 7519 7520 /* hwrm_ring_grp_free_input (size:192b/24B) */ 7521 struct hwrm_ring_grp_free_input { 7522 __le16 req_type; 7523 __le16 cmpl_ring; 7524 __le16 seq_id; 7525 __le16 target_id; 7526 __le64 resp_addr; 7527 __le32 ring_group_id; 7528 u8 unused_0[4]; 7529 }; 7530 7531 /* hwrm_ring_grp_free_output (size:128b/16B) */ 7532 struct hwrm_ring_grp_free_output { 7533 __le16 error_code; 7534 __le16 req_type; 7535 __le16 seq_id; 7536 __le16 resp_len; 7537 u8 unused_0[7]; 7538 u8 valid; 7539 }; 7540 7541 #define DEFAULT_FLOW_ID 0xFFFFFFFFUL 7542 #define ROCEV1_FLOW_ID 0xFFFFFFFEUL 7543 #define ROCEV2_FLOW_ID 0xFFFFFFFDUL 7544 #define ROCEV2_CNP_FLOW_ID 0xFFFFFFFCUL 7545 7546 /* hwrm_cfa_l2_filter_alloc_input (size:768b/96B) */ 7547 struct hwrm_cfa_l2_filter_alloc_input { 7548 __le16 req_type; 7549 __le16 cmpl_ring; 7550 __le16 seq_id; 7551 __le16 target_id; 7552 __le64 resp_addr; 7553 __le32 flags; 7554 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH 0x1UL 7555 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_TX 0x0UL 7556 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_RX 0x1UL 7557 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_LAST CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_RX 7558 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_LOOPBACK 0x2UL 7559 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_DROP 0x4UL 7560 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_OUTERMOST 0x8UL 7561 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_MASK 0x30UL 7562 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_SFT 4 7563 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_NO_ROCE_L2 (0x0UL << 4) 7564 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_L2 (0x1UL << 4) 7565 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_ROCE (0x2UL << 4) 7566 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_LAST CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_ROCE 7567 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_XDP_DISABLE 0x40UL 7568 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_SOURCE_VALID 0x80UL 7569 __le32 enables; 7570 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_ADDR 0x1UL 7571 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_ADDR_MASK 0x2UL 7572 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_OVLAN 0x4UL 7573 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_OVLAN_MASK 0x8UL 7574 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN 0x10UL 7575 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN_MASK 0x20UL 7576 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_ADDR 0x40UL 7577 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_ADDR_MASK 0x80UL 7578 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_OVLAN 0x100UL 7579 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_OVLAN_MASK 0x200UL 7580 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_IVLAN 0x400UL 7581 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_IVLAN_MASK 0x800UL 7582 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_SRC_TYPE 0x1000UL 7583 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_SRC_ID 0x2000UL 7584 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE 0x4000UL 7585 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_DST_ID 0x8000UL 7586 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID 0x10000UL 7587 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_NUM_VLANS 0x20000UL 7588 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_NUM_VLANS 0x40000UL 7589 u8 l2_addr[6]; 7590 u8 num_vlans; 7591 u8 t_num_vlans; 7592 u8 l2_addr_mask[6]; 7593 __le16 l2_ovlan; 7594 __le16 l2_ovlan_mask; 7595 __le16 l2_ivlan; 7596 __le16 l2_ivlan_mask; 7597 u8 unused_1[2]; 7598 u8 t_l2_addr[6]; 7599 u8 unused_2[2]; 7600 u8 t_l2_addr_mask[6]; 7601 __le16 t_l2_ovlan; 7602 __le16 t_l2_ovlan_mask; 7603 __le16 t_l2_ivlan; 7604 __le16 t_l2_ivlan_mask; 7605 u8 src_type; 7606 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_NPORT 0x0UL 7607 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_PF 0x1UL 7608 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_VF 0x2UL 7609 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_VNIC 0x3UL 7610 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_KONG 0x4UL 7611 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_APE 0x5UL 7612 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_BONO 0x6UL 7613 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_TANG 0x7UL 7614 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_LAST CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_TANG 7615 u8 unused_3; 7616 __le32 src_id; 7617 u8 tunnel_type; 7618 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL 7619 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL 7620 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE 0x2UL 7621 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE 0x3UL 7622 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP 0x4UL 7623 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL 7624 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS 0x6UL 7625 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT 0x7UL 7626 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE 0x8UL 7627 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 7628 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 7629 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 7630 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 7631 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE 0x10UL 7632 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL 7633 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 7634 u8 unused_4; 7635 __le16 dst_id; 7636 __le16 mirror_vnic_id; 7637 u8 pri_hint; 7638 #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_NO_PREFER 0x0UL 7639 #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_ABOVE_FILTER 0x1UL 7640 #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_BELOW_FILTER 0x2UL 7641 #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_MAX 0x3UL 7642 #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_MIN 0x4UL 7643 #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_LAST CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_MIN 7644 u8 unused_5; 7645 __le32 unused_6; 7646 __le64 l2_filter_id_hint; 7647 }; 7648 7649 /* hwrm_cfa_l2_filter_alloc_output (size:192b/24B) */ 7650 struct hwrm_cfa_l2_filter_alloc_output { 7651 __le16 error_code; 7652 __le16 req_type; 7653 __le16 seq_id; 7654 __le16 resp_len; 7655 __le64 l2_filter_id; 7656 __le32 flow_id; 7657 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL 7658 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_VALUE_SFT 0 7659 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE 0x40000000UL 7660 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_INT (0x0UL << 30) 7661 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT (0x1UL << 30) 7662 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_LAST CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT 7663 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR 0x80000000UL 7664 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_RX (0x0UL << 31) 7665 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX (0x1UL << 31) 7666 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_LAST CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX 7667 u8 unused_0[3]; 7668 u8 valid; 7669 }; 7670 7671 /* hwrm_cfa_l2_filter_free_input (size:192b/24B) */ 7672 struct hwrm_cfa_l2_filter_free_input { 7673 __le16 req_type; 7674 __le16 cmpl_ring; 7675 __le16 seq_id; 7676 __le16 target_id; 7677 __le64 resp_addr; 7678 __le64 l2_filter_id; 7679 }; 7680 7681 /* hwrm_cfa_l2_filter_free_output (size:128b/16B) */ 7682 struct hwrm_cfa_l2_filter_free_output { 7683 __le16 error_code; 7684 __le16 req_type; 7685 __le16 seq_id; 7686 __le16 resp_len; 7687 u8 unused_0[7]; 7688 u8 valid; 7689 }; 7690 7691 /* hwrm_cfa_l2_filter_cfg_input (size:384b/48B) */ 7692 struct hwrm_cfa_l2_filter_cfg_input { 7693 __le16 req_type; 7694 __le16 cmpl_ring; 7695 __le16 seq_id; 7696 __le16 target_id; 7697 __le64 resp_addr; 7698 __le32 flags; 7699 #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH 0x1UL 7700 #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_TX 0x0UL 7701 #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_RX 0x1UL 7702 #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_LAST CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_RX 7703 #define CFA_L2_FILTER_CFG_REQ_FLAGS_DROP 0x2UL 7704 #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_MASK 0xcUL 7705 #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_SFT 2 7706 #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_NO_ROCE_L2 (0x0UL << 2) 7707 #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_L2 (0x1UL << 2) 7708 #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_ROCE (0x2UL << 2) 7709 #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_LAST CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_ROCE 7710 #define CFA_L2_FILTER_CFG_REQ_FLAGS_REMAP_OP_MASK 0x30UL 7711 #define CFA_L2_FILTER_CFG_REQ_FLAGS_REMAP_OP_SFT 4 7712 #define CFA_L2_FILTER_CFG_REQ_FLAGS_REMAP_OP_NO_UPDATE (0x0UL << 4) 7713 #define CFA_L2_FILTER_CFG_REQ_FLAGS_REMAP_OP_BYPASS_LKUP (0x1UL << 4) 7714 #define CFA_L2_FILTER_CFG_REQ_FLAGS_REMAP_OP_ENABLE_LKUP (0x2UL << 4) 7715 #define CFA_L2_FILTER_CFG_REQ_FLAGS_REMAP_OP_RESTORE_FW_OP (0x3UL << 4) 7716 #define CFA_L2_FILTER_CFG_REQ_FLAGS_REMAP_OP_LAST CFA_L2_FILTER_CFG_REQ_FLAGS_REMAP_OP_RESTORE_FW_OP 7717 __le32 enables; 7718 #define CFA_L2_FILTER_CFG_REQ_ENABLES_DST_ID 0x1UL 7719 #define CFA_L2_FILTER_CFG_REQ_ENABLES_NEW_MIRROR_VNIC_ID 0x2UL 7720 #define CFA_L2_FILTER_CFG_REQ_ENABLES_PROF_FUNC 0x4UL 7721 #define CFA_L2_FILTER_CFG_REQ_ENABLES_L2_CONTEXT_ID 0x8UL 7722 __le64 l2_filter_id; 7723 __le32 dst_id; 7724 __le32 new_mirror_vnic_id; 7725 __le32 prof_func; 7726 __le32 l2_context_id; 7727 }; 7728 7729 /* hwrm_cfa_l2_filter_cfg_output (size:128b/16B) */ 7730 struct hwrm_cfa_l2_filter_cfg_output { 7731 __le16 error_code; 7732 __le16 req_type; 7733 __le16 seq_id; 7734 __le16 resp_len; 7735 u8 unused_0[7]; 7736 u8 valid; 7737 }; 7738 7739 /* hwrm_cfa_l2_set_rx_mask_input (size:448b/56B) */ 7740 struct hwrm_cfa_l2_set_rx_mask_input { 7741 __le16 req_type; 7742 __le16 cmpl_ring; 7743 __le16 seq_id; 7744 __le16 target_id; 7745 __le64 resp_addr; 7746 __le32 vnic_id; 7747 __le32 mask; 7748 #define CFA_L2_SET_RX_MASK_REQ_MASK_MCAST 0x2UL 7749 #define CFA_L2_SET_RX_MASK_REQ_MASK_ALL_MCAST 0x4UL 7750 #define CFA_L2_SET_RX_MASK_REQ_MASK_BCAST 0x8UL 7751 #define CFA_L2_SET_RX_MASK_REQ_MASK_PROMISCUOUS 0x10UL 7752 #define CFA_L2_SET_RX_MASK_REQ_MASK_OUTERMOST 0x20UL 7753 #define CFA_L2_SET_RX_MASK_REQ_MASK_VLANONLY 0x40UL 7754 #define CFA_L2_SET_RX_MASK_REQ_MASK_VLAN_NONVLAN 0x80UL 7755 #define CFA_L2_SET_RX_MASK_REQ_MASK_ANYVLAN_NONVLAN 0x100UL 7756 __le64 mc_tbl_addr; 7757 __le32 num_mc_entries; 7758 u8 unused_0[4]; 7759 __le64 vlan_tag_tbl_addr; 7760 __le32 num_vlan_tags; 7761 u8 unused_1[4]; 7762 }; 7763 7764 /* hwrm_cfa_l2_set_rx_mask_output (size:128b/16B) */ 7765 struct hwrm_cfa_l2_set_rx_mask_output { 7766 __le16 error_code; 7767 __le16 req_type; 7768 __le16 seq_id; 7769 __le16 resp_len; 7770 u8 unused_0[7]; 7771 u8 valid; 7772 }; 7773 7774 /* hwrm_cfa_l2_set_rx_mask_cmd_err (size:64b/8B) */ 7775 struct hwrm_cfa_l2_set_rx_mask_cmd_err { 7776 u8 code; 7777 #define CFA_L2_SET_RX_MASK_CMD_ERR_CODE_UNKNOWN 0x0UL 7778 #define CFA_L2_SET_RX_MASK_CMD_ERR_CODE_NTUPLE_FILTER_CONFLICT_ERR 0x1UL 7779 #define CFA_L2_SET_RX_MASK_CMD_ERR_CODE_LAST CFA_L2_SET_RX_MASK_CMD_ERR_CODE_NTUPLE_FILTER_CONFLICT_ERR 7780 u8 unused_0[7]; 7781 }; 7782 7783 /* hwrm_cfa_tunnel_filter_alloc_input (size:704b/88B) */ 7784 struct hwrm_cfa_tunnel_filter_alloc_input { 7785 __le16 req_type; 7786 __le16 cmpl_ring; 7787 __le16 seq_id; 7788 __le16 target_id; 7789 __le64 resp_addr; 7790 __le32 flags; 7791 #define CFA_TUNNEL_FILTER_ALLOC_REQ_FLAGS_LOOPBACK 0x1UL 7792 __le32 enables; 7793 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_FILTER_ID 0x1UL 7794 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_ADDR 0x2UL 7795 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN 0x4UL 7796 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L3_ADDR 0x8UL 7797 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L3_ADDR_TYPE 0x10UL 7798 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_T_L3_ADDR_TYPE 0x20UL 7799 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_T_L3_ADDR 0x40UL 7800 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE 0x80UL 7801 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_VNI 0x100UL 7802 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_DST_VNIC_ID 0x200UL 7803 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID 0x400UL 7804 __le64 l2_filter_id; 7805 u8 l2_addr[6]; 7806 __le16 l2_ivlan; 7807 __le32 l3_addr[4]; 7808 __le32 t_l3_addr[4]; 7809 u8 l3_addr_type; 7810 u8 t_l3_addr_type; 7811 u8 tunnel_type; 7812 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL 7813 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL 7814 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE 0x2UL 7815 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE 0x3UL 7816 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP 0x4UL 7817 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL 7818 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS 0x6UL 7819 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT 0x7UL 7820 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE 0x8UL 7821 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 7822 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 7823 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 7824 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 7825 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE 0x10UL 7826 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL 7827 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 7828 u8 tunnel_flags; 7829 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_FLAGS_TUN_FLAGS_OAM_CHECKSUM_EXPLHDR 0x1UL 7830 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_FLAGS_TUN_FLAGS_CRITICAL_OPT_S1 0x2UL 7831 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_FLAGS_TUN_FLAGS_EXTHDR_SEQNUM_S0 0x4UL 7832 __le32 vni; 7833 __le32 dst_vnic_id; 7834 __le32 mirror_vnic_id; 7835 }; 7836 7837 /* hwrm_cfa_tunnel_filter_alloc_output (size:192b/24B) */ 7838 struct hwrm_cfa_tunnel_filter_alloc_output { 7839 __le16 error_code; 7840 __le16 req_type; 7841 __le16 seq_id; 7842 __le16 resp_len; 7843 __le64 tunnel_filter_id; 7844 __le32 flow_id; 7845 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL 7846 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_VALUE_SFT 0 7847 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE 0x40000000UL 7848 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_INT (0x0UL << 30) 7849 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT (0x1UL << 30) 7850 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_LAST CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT 7851 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR 0x80000000UL 7852 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_RX (0x0UL << 31) 7853 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX (0x1UL << 31) 7854 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_LAST CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX 7855 u8 unused_0[3]; 7856 u8 valid; 7857 }; 7858 7859 /* hwrm_cfa_tunnel_filter_free_input (size:192b/24B) */ 7860 struct hwrm_cfa_tunnel_filter_free_input { 7861 __le16 req_type; 7862 __le16 cmpl_ring; 7863 __le16 seq_id; 7864 __le16 target_id; 7865 __le64 resp_addr; 7866 __le64 tunnel_filter_id; 7867 }; 7868 7869 /* hwrm_cfa_tunnel_filter_free_output (size:128b/16B) */ 7870 struct hwrm_cfa_tunnel_filter_free_output { 7871 __le16 error_code; 7872 __le16 req_type; 7873 __le16 seq_id; 7874 __le16 resp_len; 7875 u8 unused_0[7]; 7876 u8 valid; 7877 }; 7878 7879 /* hwrm_vxlan_ipv4_hdr (size:128b/16B) */ 7880 struct hwrm_vxlan_ipv4_hdr { 7881 u8 ver_hlen; 7882 #define VXLAN_IPV4_HDR_VER_HLEN_HEADER_LENGTH_MASK 0xfUL 7883 #define VXLAN_IPV4_HDR_VER_HLEN_HEADER_LENGTH_SFT 0 7884 #define VXLAN_IPV4_HDR_VER_HLEN_VERSION_MASK 0xf0UL 7885 #define VXLAN_IPV4_HDR_VER_HLEN_VERSION_SFT 4 7886 u8 tos; 7887 __be16 ip_id; 7888 __be16 flags_frag_offset; 7889 u8 ttl; 7890 u8 protocol; 7891 __be32 src_ip_addr; 7892 __be32 dest_ip_addr; 7893 }; 7894 7895 /* hwrm_vxlan_ipv6_hdr (size:320b/40B) */ 7896 struct hwrm_vxlan_ipv6_hdr { 7897 __be32 ver_tc_flow_label; 7898 #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_VER_SFT 0x1cUL 7899 #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_VER_MASK 0xf0000000UL 7900 #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_TC_SFT 0x14UL 7901 #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_TC_MASK 0xff00000UL 7902 #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_FLOW_LABEL_SFT 0x0UL 7903 #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_FLOW_LABEL_MASK 0xfffffUL 7904 #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_LAST VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_FLOW_LABEL_MASK 7905 __be16 payload_len; 7906 u8 next_hdr; 7907 u8 ttl; 7908 __be32 src_ip_addr[4]; 7909 __be32 dest_ip_addr[4]; 7910 }; 7911 7912 /* hwrm_cfa_encap_data_vxlan (size:640b/80B) */ 7913 struct hwrm_cfa_encap_data_vxlan { 7914 u8 src_mac_addr[6]; 7915 __le16 unused_0; 7916 u8 dst_mac_addr[6]; 7917 u8 num_vlan_tags; 7918 u8 unused_1; 7919 __be16 ovlan_tpid; 7920 __be16 ovlan_tci; 7921 __be16 ivlan_tpid; 7922 __be16 ivlan_tci; 7923 __le32 l3[10]; 7924 #define CFA_ENCAP_DATA_VXLAN_L3_VER_MASK 0xfUL 7925 #define CFA_ENCAP_DATA_VXLAN_L3_VER_IPV4 0x4UL 7926 #define CFA_ENCAP_DATA_VXLAN_L3_VER_IPV6 0x6UL 7927 #define CFA_ENCAP_DATA_VXLAN_L3_LAST CFA_ENCAP_DATA_VXLAN_L3_VER_IPV6 7928 __be16 src_port; 7929 __be16 dst_port; 7930 __be32 vni; 7931 u8 hdr_rsvd0[3]; 7932 u8 hdr_rsvd1; 7933 u8 hdr_flags; 7934 u8 unused[3]; 7935 }; 7936 7937 /* hwrm_cfa_encap_record_alloc_input (size:832b/104B) */ 7938 struct hwrm_cfa_encap_record_alloc_input { 7939 __le16 req_type; 7940 __le16 cmpl_ring; 7941 __le16 seq_id; 7942 __le16 target_id; 7943 __le64 resp_addr; 7944 __le32 flags; 7945 #define CFA_ENCAP_RECORD_ALLOC_REQ_FLAGS_LOOPBACK 0x1UL 7946 #define CFA_ENCAP_RECORD_ALLOC_REQ_FLAGS_EXTERNAL 0x2UL 7947 u8 encap_type; 7948 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN 0x1UL 7949 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_NVGRE 0x2UL 7950 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_L2GRE 0x3UL 7951 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_IPIP 0x4UL 7952 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_GENEVE 0x5UL 7953 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_MPLS 0x6UL 7954 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VLAN 0x7UL 7955 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_IPGRE 0x8UL 7956 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN_V4 0x9UL 7957 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_IPGRE_V1 0xaUL 7958 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_L2_ETYPE 0xbUL 7959 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN_GPE_V6 0xcUL 7960 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN_GPE 0x10UL 7961 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_LAST CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN_GPE 7962 u8 unused_0[3]; 7963 __le32 encap_data[20]; 7964 }; 7965 7966 /* hwrm_cfa_encap_record_alloc_output (size:128b/16B) */ 7967 struct hwrm_cfa_encap_record_alloc_output { 7968 __le16 error_code; 7969 __le16 req_type; 7970 __le16 seq_id; 7971 __le16 resp_len; 7972 __le32 encap_record_id; 7973 u8 unused_0[3]; 7974 u8 valid; 7975 }; 7976 7977 /* hwrm_cfa_encap_record_free_input (size:192b/24B) */ 7978 struct hwrm_cfa_encap_record_free_input { 7979 __le16 req_type; 7980 __le16 cmpl_ring; 7981 __le16 seq_id; 7982 __le16 target_id; 7983 __le64 resp_addr; 7984 __le32 encap_record_id; 7985 u8 unused_0[4]; 7986 }; 7987 7988 /* hwrm_cfa_encap_record_free_output (size:128b/16B) */ 7989 struct hwrm_cfa_encap_record_free_output { 7990 __le16 error_code; 7991 __le16 req_type; 7992 __le16 seq_id; 7993 __le16 resp_len; 7994 u8 unused_0[7]; 7995 u8 valid; 7996 }; 7997 7998 /* hwrm_cfa_ntuple_filter_alloc_input (size:1024b/128B) */ 7999 struct hwrm_cfa_ntuple_filter_alloc_input { 8000 __le16 req_type; 8001 __le16 cmpl_ring; 8002 __le16 seq_id; 8003 __le16 target_id; 8004 __le64 resp_addr; 8005 __le32 flags; 8006 #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_LOOPBACK 0x1UL 8007 #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_DROP 0x2UL 8008 #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_METER 0x4UL 8009 #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_DEST_FID 0x8UL 8010 #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_ARP_REPLY 0x10UL 8011 #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_DEST_RFS_RING_IDX 0x20UL 8012 #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_NO_L2_CONTEXT 0x40UL 8013 __le32 enables; 8014 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_L2_FILTER_ID 0x1UL 8015 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_ETHERTYPE 0x2UL 8016 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE 0x4UL 8017 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_MACADDR 0x8UL 8018 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_IPADDR_TYPE 0x10UL 8019 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_IPADDR 0x20UL 8020 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_IPADDR_MASK 0x40UL 8021 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_IPADDR 0x80UL 8022 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_IPADDR_MASK 0x100UL 8023 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_IP_PROTOCOL 0x200UL 8024 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_PORT 0x400UL 8025 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_PORT_MASK 0x800UL 8026 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_PORT 0x1000UL 8027 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_PORT_MASK 0x2000UL 8028 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_PRI_HINT 0x4000UL 8029 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_NTUPLE_FILTER_ID 0x8000UL 8030 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_ID 0x10000UL 8031 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID 0x20000UL 8032 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_MACADDR 0x40000UL 8033 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_RFS_RING_TBL_IDX 0x80000UL 8034 __le64 l2_filter_id; 8035 u8 src_macaddr[6]; 8036 __be16 ethertype; 8037 u8 ip_addr_type; 8038 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_UNKNOWN 0x0UL 8039 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV4 0x4UL 8040 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6 0x6UL 8041 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_LAST CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6 8042 u8 ip_protocol; 8043 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_UNKNOWN 0x0UL 8044 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_TCP 0x6UL 8045 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP 0x11UL 8046 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_ICMP 0x1UL 8047 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_ICMPV6 0x3aUL 8048 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_RSVD 0xffUL 8049 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_LAST CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_RSVD 8050 __le16 dst_id; 8051 __le16 rfs_ring_tbl_idx; 8052 u8 tunnel_type; 8053 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL 8054 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL 8055 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE 0x2UL 8056 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE 0x3UL 8057 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP 0x4UL 8058 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL 8059 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS 0x6UL 8060 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT 0x7UL 8061 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE 0x8UL 8062 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 8063 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 8064 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 8065 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 8066 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE 0x10UL 8067 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL 8068 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 8069 u8 pri_hint; 8070 #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_NO_PREFER 0x0UL 8071 #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_ABOVE 0x1UL 8072 #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_BELOW 0x2UL 8073 #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_HIGHEST 0x3UL 8074 #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_LOWEST 0x4UL 8075 #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_LAST CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_LOWEST 8076 __be32 src_ipaddr[4]; 8077 __be32 src_ipaddr_mask[4]; 8078 __be32 dst_ipaddr[4]; 8079 __be32 dst_ipaddr_mask[4]; 8080 __be16 src_port; 8081 __be16 src_port_mask; 8082 __be16 dst_port; 8083 __be16 dst_port_mask; 8084 __le64 ntuple_filter_id_hint; 8085 }; 8086 8087 /* hwrm_cfa_ntuple_filter_alloc_output (size:192b/24B) */ 8088 struct hwrm_cfa_ntuple_filter_alloc_output { 8089 __le16 error_code; 8090 __le16 req_type; 8091 __le16 seq_id; 8092 __le16 resp_len; 8093 __le64 ntuple_filter_id; 8094 __le32 flow_id; 8095 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL 8096 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_VALUE_SFT 0 8097 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE 0x40000000UL 8098 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_INT (0x0UL << 30) 8099 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT (0x1UL << 30) 8100 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_LAST CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT 8101 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR 0x80000000UL 8102 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_RX (0x0UL << 31) 8103 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX (0x1UL << 31) 8104 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_LAST CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX 8105 u8 unused_0[3]; 8106 u8 valid; 8107 }; 8108 8109 /* hwrm_cfa_ntuple_filter_alloc_cmd_err (size:64b/8B) */ 8110 struct hwrm_cfa_ntuple_filter_alloc_cmd_err { 8111 u8 code; 8112 #define CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_UNKNOWN 0x0UL 8113 #define CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_RX_MASK_VLAN_CONFLICT_ERR 0x1UL 8114 #define CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_LAST CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_RX_MASK_VLAN_CONFLICT_ERR 8115 u8 unused_0[7]; 8116 }; 8117 8118 /* hwrm_cfa_ntuple_filter_free_input (size:192b/24B) */ 8119 struct hwrm_cfa_ntuple_filter_free_input { 8120 __le16 req_type; 8121 __le16 cmpl_ring; 8122 __le16 seq_id; 8123 __le16 target_id; 8124 __le64 resp_addr; 8125 __le64 ntuple_filter_id; 8126 }; 8127 8128 /* hwrm_cfa_ntuple_filter_free_output (size:128b/16B) */ 8129 struct hwrm_cfa_ntuple_filter_free_output { 8130 __le16 error_code; 8131 __le16 req_type; 8132 __le16 seq_id; 8133 __le16 resp_len; 8134 u8 unused_0[7]; 8135 u8 valid; 8136 }; 8137 8138 /* hwrm_cfa_ntuple_filter_cfg_input (size:384b/48B) */ 8139 struct hwrm_cfa_ntuple_filter_cfg_input { 8140 __le16 req_type; 8141 __le16 cmpl_ring; 8142 __le16 seq_id; 8143 __le16 target_id; 8144 __le64 resp_addr; 8145 __le32 enables; 8146 #define CFA_NTUPLE_FILTER_CFG_REQ_ENABLES_NEW_DST_ID 0x1UL 8147 #define CFA_NTUPLE_FILTER_CFG_REQ_ENABLES_NEW_MIRROR_VNIC_ID 0x2UL 8148 #define CFA_NTUPLE_FILTER_CFG_REQ_ENABLES_NEW_METER_INSTANCE_ID 0x4UL 8149 __le32 flags; 8150 #define CFA_NTUPLE_FILTER_CFG_REQ_FLAGS_DEST_FID 0x1UL 8151 #define CFA_NTUPLE_FILTER_CFG_REQ_FLAGS_DEST_RFS_RING_IDX 0x2UL 8152 #define CFA_NTUPLE_FILTER_CFG_REQ_FLAGS_NO_L2_CONTEXT 0x4UL 8153 __le64 ntuple_filter_id; 8154 __le32 new_dst_id; 8155 __le32 new_mirror_vnic_id; 8156 __le16 new_meter_instance_id; 8157 #define CFA_NTUPLE_FILTER_CFG_REQ_NEW_METER_INSTANCE_ID_INVALID 0xffffUL 8158 #define CFA_NTUPLE_FILTER_CFG_REQ_NEW_METER_INSTANCE_ID_LAST CFA_NTUPLE_FILTER_CFG_REQ_NEW_METER_INSTANCE_ID_INVALID 8159 u8 unused_1[6]; 8160 }; 8161 8162 /* hwrm_cfa_ntuple_filter_cfg_output (size:128b/16B) */ 8163 struct hwrm_cfa_ntuple_filter_cfg_output { 8164 __le16 error_code; 8165 __le16 req_type; 8166 __le16 seq_id; 8167 __le16 resp_len; 8168 u8 unused_0[7]; 8169 u8 valid; 8170 }; 8171 8172 /* hwrm_cfa_decap_filter_alloc_input (size:832b/104B) */ 8173 struct hwrm_cfa_decap_filter_alloc_input { 8174 __le16 req_type; 8175 __le16 cmpl_ring; 8176 __le16 seq_id; 8177 __le16 target_id; 8178 __le64 resp_addr; 8179 __le32 flags; 8180 #define CFA_DECAP_FILTER_ALLOC_REQ_FLAGS_OVS_TUNNEL 0x1UL 8181 __le32 enables; 8182 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE 0x1UL 8183 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_TUNNEL_ID 0x2UL 8184 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_SRC_MACADDR 0x4UL 8185 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_MACADDR 0x8UL 8186 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_OVLAN_VID 0x10UL 8187 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_IVLAN_VID 0x20UL 8188 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_T_OVLAN_VID 0x40UL 8189 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_T_IVLAN_VID 0x80UL 8190 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_ETHERTYPE 0x100UL 8191 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_SRC_IPADDR 0x200UL 8192 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_IPADDR 0x400UL 8193 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_IPADDR_TYPE 0x800UL 8194 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_IP_PROTOCOL 0x1000UL 8195 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_SRC_PORT 0x2000UL 8196 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_PORT 0x4000UL 8197 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_ID 0x8000UL 8198 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID 0x10000UL 8199 __be32 tunnel_id; 8200 u8 tunnel_type; 8201 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL 8202 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL 8203 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE 0x2UL 8204 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE 0x3UL 8205 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP 0x4UL 8206 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL 8207 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS 0x6UL 8208 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT 0x7UL 8209 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE 0x8UL 8210 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 8211 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 8212 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 8213 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 8214 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE 0x10UL 8215 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL 8216 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 8217 u8 unused_0; 8218 __le16 unused_1; 8219 u8 src_macaddr[6]; 8220 u8 unused_2[2]; 8221 u8 dst_macaddr[6]; 8222 __be16 ovlan_vid; 8223 __be16 ivlan_vid; 8224 __be16 t_ovlan_vid; 8225 __be16 t_ivlan_vid; 8226 __be16 ethertype; 8227 u8 ip_addr_type; 8228 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_UNKNOWN 0x0UL 8229 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV4 0x4UL 8230 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6 0x6UL 8231 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_LAST CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6 8232 u8 ip_protocol; 8233 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_UNKNOWN 0x0UL 8234 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_TCP 0x6UL 8235 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP 0x11UL 8236 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_LAST CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP 8237 __le16 unused_3; 8238 __le32 unused_4; 8239 __be32 src_ipaddr[4]; 8240 __be32 dst_ipaddr[4]; 8241 __be16 src_port; 8242 __be16 dst_port; 8243 __le16 dst_id; 8244 __le16 l2_ctxt_ref_id; 8245 }; 8246 8247 /* hwrm_cfa_decap_filter_alloc_output (size:128b/16B) */ 8248 struct hwrm_cfa_decap_filter_alloc_output { 8249 __le16 error_code; 8250 __le16 req_type; 8251 __le16 seq_id; 8252 __le16 resp_len; 8253 __le32 decap_filter_id; 8254 u8 unused_0[3]; 8255 u8 valid; 8256 }; 8257 8258 /* hwrm_cfa_decap_filter_free_input (size:192b/24B) */ 8259 struct hwrm_cfa_decap_filter_free_input { 8260 __le16 req_type; 8261 __le16 cmpl_ring; 8262 __le16 seq_id; 8263 __le16 target_id; 8264 __le64 resp_addr; 8265 __le32 decap_filter_id; 8266 u8 unused_0[4]; 8267 }; 8268 8269 /* hwrm_cfa_decap_filter_free_output (size:128b/16B) */ 8270 struct hwrm_cfa_decap_filter_free_output { 8271 __le16 error_code; 8272 __le16 req_type; 8273 __le16 seq_id; 8274 __le16 resp_len; 8275 u8 unused_0[7]; 8276 u8 valid; 8277 }; 8278 8279 /* hwrm_cfa_flow_alloc_input (size:1024b/128B) */ 8280 struct hwrm_cfa_flow_alloc_input { 8281 __le16 req_type; 8282 __le16 cmpl_ring; 8283 __le16 seq_id; 8284 __le16 target_id; 8285 __le64 resp_addr; 8286 __le16 flags; 8287 #define CFA_FLOW_ALLOC_REQ_FLAGS_TUNNEL 0x1UL 8288 #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_MASK 0x6UL 8289 #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_SFT 1 8290 #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_NONE (0x0UL << 1) 8291 #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_ONE (0x1UL << 1) 8292 #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_TWO (0x2UL << 1) 8293 #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_LAST CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_TWO 8294 #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_MASK 0x38UL 8295 #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_SFT 3 8296 #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_L2 (0x0UL << 3) 8297 #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_IPV4 (0x1UL << 3) 8298 #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_IPV6 (0x2UL << 3) 8299 #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_LAST CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_IPV6 8300 #define CFA_FLOW_ALLOC_REQ_FLAGS_PATH_TX 0x40UL 8301 #define CFA_FLOW_ALLOC_REQ_FLAGS_PATH_RX 0x80UL 8302 #define CFA_FLOW_ALLOC_REQ_FLAGS_MATCH_VXLAN_IP_VNI 0x100UL 8303 #define CFA_FLOW_ALLOC_REQ_FLAGS_VHOST_ID_USE_VLAN 0x200UL 8304 __le16 src_fid; 8305 __le32 tunnel_handle; 8306 __le16 action_flags; 8307 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_FWD 0x1UL 8308 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_RECYCLE 0x2UL 8309 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_DROP 0x4UL 8310 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_METER 0x8UL 8311 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_TUNNEL 0x10UL 8312 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NAT_SRC 0x20UL 8313 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NAT_DEST 0x40UL 8314 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NAT_IPV4_ADDRESS 0x80UL 8315 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_L2_HEADER_REWRITE 0x100UL 8316 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_TTL_DECREMENT 0x200UL 8317 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_TUNNEL_IP 0x400UL 8318 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_FLOW_AGING_ENABLED 0x800UL 8319 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_PRI_HINT 0x1000UL 8320 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NO_FLOW_COUNTER_ALLOC 0x2000UL 8321 __le16 dst_fid; 8322 __be16 l2_rewrite_vlan_tpid; 8323 __be16 l2_rewrite_vlan_tci; 8324 __le16 act_meter_id; 8325 __le16 ref_flow_handle; 8326 __be16 ethertype; 8327 __be16 outer_vlan_tci; 8328 __be16 dmac[3]; 8329 __be16 inner_vlan_tci; 8330 __be16 smac[3]; 8331 u8 ip_dst_mask_len; 8332 u8 ip_src_mask_len; 8333 __be32 ip_dst[4]; 8334 __be32 ip_src[4]; 8335 __be16 l4_src_port; 8336 __be16 l4_src_port_mask; 8337 __be16 l4_dst_port; 8338 __be16 l4_dst_port_mask; 8339 __be32 nat_ip_address[4]; 8340 __be16 l2_rewrite_dmac[3]; 8341 __be16 nat_port; 8342 __be16 l2_rewrite_smac[3]; 8343 u8 ip_proto; 8344 u8 tunnel_type; 8345 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL 8346 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL 8347 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_NVGRE 0x2UL 8348 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_L2GRE 0x3UL 8349 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_IPIP 0x4UL 8350 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL 8351 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_MPLS 0x6UL 8352 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_STT 0x7UL 8353 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_IPGRE 0x8UL 8354 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 8355 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 8356 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 8357 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 8358 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE 0x10UL 8359 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL 8360 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_LAST CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 8361 }; 8362 8363 /* hwrm_cfa_flow_alloc_output (size:256b/32B) */ 8364 struct hwrm_cfa_flow_alloc_output { 8365 __le16 error_code; 8366 __le16 req_type; 8367 __le16 seq_id; 8368 __le16 resp_len; 8369 __le16 flow_handle; 8370 u8 unused_0[2]; 8371 __le32 flow_id; 8372 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL 8373 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_VALUE_SFT 0 8374 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE 0x40000000UL 8375 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_INT (0x0UL << 30) 8376 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_EXT (0x1UL << 30) 8377 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_LAST CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_EXT 8378 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR 0x80000000UL 8379 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_RX (0x0UL << 31) 8380 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_TX (0x1UL << 31) 8381 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_LAST CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_TX 8382 __le64 ext_flow_handle; 8383 __le32 flow_counter_id; 8384 u8 unused_1[3]; 8385 u8 valid; 8386 }; 8387 8388 /* hwrm_cfa_flow_alloc_cmd_err (size:64b/8B) */ 8389 struct hwrm_cfa_flow_alloc_cmd_err { 8390 u8 code; 8391 #define CFA_FLOW_ALLOC_CMD_ERR_CODE_UNKNOWN 0x0UL 8392 #define CFA_FLOW_ALLOC_CMD_ERR_CODE_L2_CONTEXT_TCAM 0x1UL 8393 #define CFA_FLOW_ALLOC_CMD_ERR_CODE_ACTION_RECORD 0x2UL 8394 #define CFA_FLOW_ALLOC_CMD_ERR_CODE_FLOW_COUNTER 0x3UL 8395 #define CFA_FLOW_ALLOC_CMD_ERR_CODE_WILD_CARD_TCAM 0x4UL 8396 #define CFA_FLOW_ALLOC_CMD_ERR_CODE_HASH_COLLISION 0x5UL 8397 #define CFA_FLOW_ALLOC_CMD_ERR_CODE_KEY_EXISTS 0x6UL 8398 #define CFA_FLOW_ALLOC_CMD_ERR_CODE_FLOW_CTXT_DB 0x7UL 8399 #define CFA_FLOW_ALLOC_CMD_ERR_CODE_LAST CFA_FLOW_ALLOC_CMD_ERR_CODE_FLOW_CTXT_DB 8400 u8 unused_0[7]; 8401 }; 8402 8403 /* hwrm_cfa_flow_free_input (size:256b/32B) */ 8404 struct hwrm_cfa_flow_free_input { 8405 __le16 req_type; 8406 __le16 cmpl_ring; 8407 __le16 seq_id; 8408 __le16 target_id; 8409 __le64 resp_addr; 8410 __le16 flow_handle; 8411 __le16 unused_0; 8412 __le32 flow_counter_id; 8413 __le64 ext_flow_handle; 8414 }; 8415 8416 /* hwrm_cfa_flow_free_output (size:256b/32B) */ 8417 struct hwrm_cfa_flow_free_output { 8418 __le16 error_code; 8419 __le16 req_type; 8420 __le16 seq_id; 8421 __le16 resp_len; 8422 __le64 packet; 8423 __le64 byte; 8424 u8 unused_0[7]; 8425 u8 valid; 8426 }; 8427 8428 /* hwrm_cfa_flow_info_input (size:256b/32B) */ 8429 struct hwrm_cfa_flow_info_input { 8430 __le16 req_type; 8431 __le16 cmpl_ring; 8432 __le16 seq_id; 8433 __le16 target_id; 8434 __le64 resp_addr; 8435 __le16 flow_handle; 8436 #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_MAX_MASK 0xfffUL 8437 #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_CNP_CNT 0x1000UL 8438 #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_ROCEV1_CNT 0x2000UL 8439 #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_NIC_TX 0x3000UL 8440 #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_ROCEV2_CNT 0x4000UL 8441 #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_DIR_RX 0x8000UL 8442 #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_CNP_CNT_RX 0x9000UL 8443 #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_ROCEV1_CNT_RX 0xa000UL 8444 #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_NIC_RX 0xb000UL 8445 #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_ROCEV2_CNT_RX 0xc000UL 8446 #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_LAST CFA_FLOW_INFO_REQ_FLOW_HANDLE_ROCEV2_CNT_RX 8447 u8 unused_0[6]; 8448 __le64 ext_flow_handle; 8449 }; 8450 8451 /* hwrm_cfa_flow_info_output (size:5632b/704B) */ 8452 struct hwrm_cfa_flow_info_output { 8453 __le16 error_code; 8454 __le16 req_type; 8455 __le16 seq_id; 8456 __le16 resp_len; 8457 u8 flags; 8458 #define CFA_FLOW_INFO_RESP_FLAGS_PATH_TX 0x1UL 8459 #define CFA_FLOW_INFO_RESP_FLAGS_PATH_RX 0x2UL 8460 u8 profile; 8461 __le16 src_fid; 8462 __le16 dst_fid; 8463 __le16 l2_ctxt_id; 8464 __le64 em_info; 8465 __le64 tcam_info; 8466 __le64 vfp_tcam_info; 8467 __le16 ar_id; 8468 __le16 flow_handle; 8469 __le32 tunnel_handle; 8470 __le16 flow_timer; 8471 u8 unused_0[6]; 8472 __le32 flow_key_data[130]; 8473 __le32 flow_action_info[30]; 8474 u8 unused_1[7]; 8475 u8 valid; 8476 }; 8477 8478 /* hwrm_cfa_flow_stats_input (size:640b/80B) */ 8479 struct hwrm_cfa_flow_stats_input { 8480 __le16 req_type; 8481 __le16 cmpl_ring; 8482 __le16 seq_id; 8483 __le16 target_id; 8484 __le64 resp_addr; 8485 __le16 num_flows; 8486 __le16 flow_handle_0; 8487 __le16 flow_handle_1; 8488 __le16 flow_handle_2; 8489 __le16 flow_handle_3; 8490 __le16 flow_handle_4; 8491 __le16 flow_handle_5; 8492 __le16 flow_handle_6; 8493 __le16 flow_handle_7; 8494 __le16 flow_handle_8; 8495 __le16 flow_handle_9; 8496 u8 unused_0[2]; 8497 __le32 flow_id_0; 8498 __le32 flow_id_1; 8499 __le32 flow_id_2; 8500 __le32 flow_id_3; 8501 __le32 flow_id_4; 8502 __le32 flow_id_5; 8503 __le32 flow_id_6; 8504 __le32 flow_id_7; 8505 __le32 flow_id_8; 8506 __le32 flow_id_9; 8507 }; 8508 8509 /* hwrm_cfa_flow_stats_output (size:1408b/176B) */ 8510 struct hwrm_cfa_flow_stats_output { 8511 __le16 error_code; 8512 __le16 req_type; 8513 __le16 seq_id; 8514 __le16 resp_len; 8515 __le64 packet_0; 8516 __le64 packet_1; 8517 __le64 packet_2; 8518 __le64 packet_3; 8519 __le64 packet_4; 8520 __le64 packet_5; 8521 __le64 packet_6; 8522 __le64 packet_7; 8523 __le64 packet_8; 8524 __le64 packet_9; 8525 __le64 byte_0; 8526 __le64 byte_1; 8527 __le64 byte_2; 8528 __le64 byte_3; 8529 __le64 byte_4; 8530 __le64 byte_5; 8531 __le64 byte_6; 8532 __le64 byte_7; 8533 __le64 byte_8; 8534 __le64 byte_9; 8535 __le16 flow_hits; 8536 u8 unused_0[5]; 8537 u8 valid; 8538 }; 8539 8540 /* hwrm_cfa_vfr_alloc_input (size:448b/56B) */ 8541 struct hwrm_cfa_vfr_alloc_input { 8542 __le16 req_type; 8543 __le16 cmpl_ring; 8544 __le16 seq_id; 8545 __le16 target_id; 8546 __le64 resp_addr; 8547 __le16 vf_id; 8548 __le16 reserved; 8549 u8 unused_0[4]; 8550 char vfr_name[32]; 8551 }; 8552 8553 /* hwrm_cfa_vfr_alloc_output (size:128b/16B) */ 8554 struct hwrm_cfa_vfr_alloc_output { 8555 __le16 error_code; 8556 __le16 req_type; 8557 __le16 seq_id; 8558 __le16 resp_len; 8559 __le16 rx_cfa_code; 8560 __le16 tx_cfa_action; 8561 u8 unused_0[3]; 8562 u8 valid; 8563 }; 8564 8565 /* hwrm_cfa_vfr_free_input (size:448b/56B) */ 8566 struct hwrm_cfa_vfr_free_input { 8567 __le16 req_type; 8568 __le16 cmpl_ring; 8569 __le16 seq_id; 8570 __le16 target_id; 8571 __le64 resp_addr; 8572 char vfr_name[32]; 8573 __le16 vf_id; 8574 __le16 reserved; 8575 u8 unused_0[4]; 8576 }; 8577 8578 /* hwrm_cfa_vfr_free_output (size:128b/16B) */ 8579 struct hwrm_cfa_vfr_free_output { 8580 __le16 error_code; 8581 __le16 req_type; 8582 __le16 seq_id; 8583 __le16 resp_len; 8584 u8 unused_0[7]; 8585 u8 valid; 8586 }; 8587 8588 /* hwrm_cfa_eem_qcaps_input (size:192b/24B) */ 8589 struct hwrm_cfa_eem_qcaps_input { 8590 __le16 req_type; 8591 __le16 cmpl_ring; 8592 __le16 seq_id; 8593 __le16 target_id; 8594 __le64 resp_addr; 8595 __le32 flags; 8596 #define CFA_EEM_QCAPS_REQ_FLAGS_PATH_TX 0x1UL 8597 #define CFA_EEM_QCAPS_REQ_FLAGS_PATH_RX 0x2UL 8598 #define CFA_EEM_QCAPS_REQ_FLAGS_PREFERRED_OFFLOAD 0x4UL 8599 __le32 unused_0; 8600 }; 8601 8602 /* hwrm_cfa_eem_qcaps_output (size:320b/40B) */ 8603 struct hwrm_cfa_eem_qcaps_output { 8604 __le16 error_code; 8605 __le16 req_type; 8606 __le16 seq_id; 8607 __le16 resp_len; 8608 __le32 flags; 8609 #define CFA_EEM_QCAPS_RESP_FLAGS_PATH_TX 0x1UL 8610 #define CFA_EEM_QCAPS_RESP_FLAGS_PATH_RX 0x2UL 8611 #define CFA_EEM_QCAPS_RESP_FLAGS_CENTRALIZED_MEMORY_MODEL_SUPPORTED 0x4UL 8612 #define CFA_EEM_QCAPS_RESP_FLAGS_DETACHED_CENTRALIZED_MEMORY_MODEL_SUPPORTED 0x8UL 8613 __le32 unused_0; 8614 __le32 supported; 8615 #define CFA_EEM_QCAPS_RESP_SUPPORTED_KEY0_TABLE 0x1UL 8616 #define CFA_EEM_QCAPS_RESP_SUPPORTED_KEY1_TABLE 0x2UL 8617 #define CFA_EEM_QCAPS_RESP_SUPPORTED_EXTERNAL_RECORD_TABLE 0x4UL 8618 #define CFA_EEM_QCAPS_RESP_SUPPORTED_EXTERNAL_FLOW_COUNTERS_TABLE 0x8UL 8619 #define CFA_EEM_QCAPS_RESP_SUPPORTED_FID_TABLE 0x10UL 8620 __le32 max_entries_supported; 8621 __le16 key_entry_size; 8622 __le16 record_entry_size; 8623 __le16 efc_entry_size; 8624 __le16 fid_entry_size; 8625 u8 unused_1[7]; 8626 u8 valid; 8627 }; 8628 8629 /* hwrm_cfa_eem_cfg_input (size:384b/48B) */ 8630 struct hwrm_cfa_eem_cfg_input { 8631 __le16 req_type; 8632 __le16 cmpl_ring; 8633 __le16 seq_id; 8634 __le16 target_id; 8635 __le64 resp_addr; 8636 __le32 flags; 8637 #define CFA_EEM_CFG_REQ_FLAGS_PATH_TX 0x1UL 8638 #define CFA_EEM_CFG_REQ_FLAGS_PATH_RX 0x2UL 8639 #define CFA_EEM_CFG_REQ_FLAGS_PREFERRED_OFFLOAD 0x4UL 8640 #define CFA_EEM_CFG_REQ_FLAGS_SECONDARY_PF 0x8UL 8641 __le16 group_id; 8642 __le16 unused_0; 8643 __le32 num_entries; 8644 __le32 unused_1; 8645 __le16 key0_ctx_id; 8646 __le16 key1_ctx_id; 8647 __le16 record_ctx_id; 8648 __le16 efc_ctx_id; 8649 __le16 fid_ctx_id; 8650 __le16 unused_2; 8651 __le32 unused_3; 8652 }; 8653 8654 /* hwrm_cfa_eem_cfg_output (size:128b/16B) */ 8655 struct hwrm_cfa_eem_cfg_output { 8656 __le16 error_code; 8657 __le16 req_type; 8658 __le16 seq_id; 8659 __le16 resp_len; 8660 u8 unused_0[7]; 8661 u8 valid; 8662 }; 8663 8664 /* hwrm_cfa_eem_qcfg_input (size:192b/24B) */ 8665 struct hwrm_cfa_eem_qcfg_input { 8666 __le16 req_type; 8667 __le16 cmpl_ring; 8668 __le16 seq_id; 8669 __le16 target_id; 8670 __le64 resp_addr; 8671 __le32 flags; 8672 #define CFA_EEM_QCFG_REQ_FLAGS_PATH_TX 0x1UL 8673 #define CFA_EEM_QCFG_REQ_FLAGS_PATH_RX 0x2UL 8674 __le32 unused_0; 8675 }; 8676 8677 /* hwrm_cfa_eem_qcfg_output (size:256b/32B) */ 8678 struct hwrm_cfa_eem_qcfg_output { 8679 __le16 error_code; 8680 __le16 req_type; 8681 __le16 seq_id; 8682 __le16 resp_len; 8683 __le32 flags; 8684 #define CFA_EEM_QCFG_RESP_FLAGS_PATH_TX 0x1UL 8685 #define CFA_EEM_QCFG_RESP_FLAGS_PATH_RX 0x2UL 8686 #define CFA_EEM_QCFG_RESP_FLAGS_PREFERRED_OFFLOAD 0x4UL 8687 __le32 num_entries; 8688 __le16 key0_ctx_id; 8689 __le16 key1_ctx_id; 8690 __le16 record_ctx_id; 8691 __le16 efc_ctx_id; 8692 __le16 fid_ctx_id; 8693 u8 unused_2[5]; 8694 u8 valid; 8695 }; 8696 8697 /* hwrm_cfa_eem_op_input (size:192b/24B) */ 8698 struct hwrm_cfa_eem_op_input { 8699 __le16 req_type; 8700 __le16 cmpl_ring; 8701 __le16 seq_id; 8702 __le16 target_id; 8703 __le64 resp_addr; 8704 __le32 flags; 8705 #define CFA_EEM_OP_REQ_FLAGS_PATH_TX 0x1UL 8706 #define CFA_EEM_OP_REQ_FLAGS_PATH_RX 0x2UL 8707 __le16 unused_0; 8708 __le16 op; 8709 #define CFA_EEM_OP_REQ_OP_RESERVED 0x0UL 8710 #define CFA_EEM_OP_REQ_OP_EEM_DISABLE 0x1UL 8711 #define CFA_EEM_OP_REQ_OP_EEM_ENABLE 0x2UL 8712 #define CFA_EEM_OP_REQ_OP_EEM_CLEANUP 0x3UL 8713 #define CFA_EEM_OP_REQ_OP_LAST CFA_EEM_OP_REQ_OP_EEM_CLEANUP 8714 }; 8715 8716 /* hwrm_cfa_eem_op_output (size:128b/16B) */ 8717 struct hwrm_cfa_eem_op_output { 8718 __le16 error_code; 8719 __le16 req_type; 8720 __le16 seq_id; 8721 __le16 resp_len; 8722 u8 unused_0[7]; 8723 u8 valid; 8724 }; 8725 8726 /* hwrm_cfa_adv_flow_mgnt_qcaps_input (size:256b/32B) */ 8727 struct hwrm_cfa_adv_flow_mgnt_qcaps_input { 8728 __le16 req_type; 8729 __le16 cmpl_ring; 8730 __le16 seq_id; 8731 __le16 target_id; 8732 __le64 resp_addr; 8733 __le32 unused_0[4]; 8734 }; 8735 8736 /* hwrm_cfa_adv_flow_mgnt_qcaps_output (size:128b/16B) */ 8737 struct hwrm_cfa_adv_flow_mgnt_qcaps_output { 8738 __le16 error_code; 8739 __le16 req_type; 8740 __le16 seq_id; 8741 __le16 resp_len; 8742 __le32 flags; 8743 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_HND_16BIT_SUPPORTED 0x1UL 8744 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_HND_64BIT_SUPPORTED 0x2UL 8745 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_BATCH_DELETE_SUPPORTED 0x4UL 8746 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_RESET_ALL_SUPPORTED 0x8UL 8747 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_NTUPLE_FLOW_DEST_FUNC_SUPPORTED 0x10UL 8748 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_TX_EEM_FLOW_SUPPORTED 0x20UL 8749 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_RX_EEM_FLOW_SUPPORTED 0x40UL 8750 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_COUNTER_ALLOC_SUPPORTED 0x80UL 8751 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_RFS_RING_TBL_IDX_SUPPORTED 0x100UL 8752 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_UNTAGGED_VLAN_SUPPORTED 0x200UL 8753 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_XDP_SUPPORTED 0x400UL 8754 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_L2_HEADER_SOURCE_FIELDS_SUPPORTED 0x800UL 8755 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_NTUPLE_FLOW_RX_ARP_SUPPORTED 0x1000UL 8756 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_RFS_RING_TBL_IDX_V2_SUPPORTED 0x2000UL 8757 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_NTUPLE_FLOW_RX_ETHERTYPE_IP_SUPPORTED 0x4000UL 8758 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_TRUFLOW_CAPABLE 0x8000UL 8759 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_L2_FILTER_TRAFFIC_TYPE_L2_ROCE_SUPPORTED 0x10000UL 8760 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_LAG_SUPPORTED 0x20000UL 8761 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_NTUPLE_FLOW_NO_L2CTX_SUPPORTED 0x40000UL 8762 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_NIC_FLOW_STATS_SUPPORTED 0x80000UL 8763 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_NTUPLE_FLOW_RX_EXT_IP_PROTO_SUPPORTED 0x100000UL 8764 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_RFS_RING_TBL_IDX_V3_SUPPORTED 0x200000UL 8765 u8 unused_0[3]; 8766 u8 valid; 8767 }; 8768 8769 /* hwrm_tunnel_dst_port_query_input (size:192b/24B) */ 8770 struct hwrm_tunnel_dst_port_query_input { 8771 __le16 req_type; 8772 __le16 cmpl_ring; 8773 __le16 seq_id; 8774 __le16 target_id; 8775 __le64 resp_addr; 8776 u8 tunnel_type; 8777 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN 0x1UL 8778 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_GENEVE 0x5UL 8779 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 8780 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 8781 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 8782 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 8783 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_CUSTOM_GRE 0xdUL 8784 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_ECPRI 0xeUL 8785 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_SRV6 0xfUL 8786 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN_GPE 0x10UL 8787 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_GRE 0x11UL 8788 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_ULP_DYN_UPAR 0x12UL 8789 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES01 0x13UL 8790 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES02 0x14UL 8791 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES03 0x15UL 8792 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES04 0x16UL 8793 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES05 0x17UL 8794 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES06 0x18UL 8795 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES07 0x19UL 8796 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_LAST TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES07 8797 u8 tunnel_next_proto; 8798 u8 unused_0[6]; 8799 }; 8800 8801 /* hwrm_tunnel_dst_port_query_output (size:128b/16B) */ 8802 struct hwrm_tunnel_dst_port_query_output { 8803 __le16 error_code; 8804 __le16 req_type; 8805 __le16 seq_id; 8806 __le16 resp_len; 8807 __le16 tunnel_dst_port_id; 8808 __be16 tunnel_dst_port_val; 8809 u8 upar_in_use; 8810 #define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR0 0x1UL 8811 #define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR1 0x2UL 8812 #define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR2 0x4UL 8813 #define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR3 0x8UL 8814 #define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR4 0x10UL 8815 #define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR5 0x20UL 8816 #define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR6 0x40UL 8817 #define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR7 0x80UL 8818 u8 status; 8819 #define TUNNEL_DST_PORT_QUERY_RESP_STATUS_CHIP_LEVEL 0x1UL 8820 #define TUNNEL_DST_PORT_QUERY_RESP_STATUS_FUNC_LEVEL 0x2UL 8821 u8 unused_0; 8822 u8 valid; 8823 }; 8824 8825 /* hwrm_tunnel_dst_port_alloc_input (size:192b/24B) */ 8826 struct hwrm_tunnel_dst_port_alloc_input { 8827 __le16 req_type; 8828 __le16 cmpl_ring; 8829 __le16 seq_id; 8830 __le16 target_id; 8831 __le64 resp_addr; 8832 u8 tunnel_type; 8833 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL 8834 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL 8835 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 8836 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 8837 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 8838 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 8839 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_CUSTOM_GRE 0xdUL 8840 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_ECPRI 0xeUL 8841 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_SRV6 0xfUL 8842 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE 0x10UL 8843 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_GRE 0x11UL 8844 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_ULP_DYN_UPAR 0x12UL 8845 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES01 0x13UL 8846 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES02 0x14UL 8847 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES03 0x15UL 8848 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES04 0x16UL 8849 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES05 0x17UL 8850 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES06 0x18UL 8851 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES07 0x19UL 8852 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_LAST TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES07 8853 u8 tunnel_next_proto; 8854 __be16 tunnel_dst_port_val; 8855 u8 unused_0[4]; 8856 }; 8857 8858 /* hwrm_tunnel_dst_port_alloc_output (size:128b/16B) */ 8859 struct hwrm_tunnel_dst_port_alloc_output { 8860 __le16 error_code; 8861 __le16 req_type; 8862 __le16 seq_id; 8863 __le16 resp_len; 8864 __le16 tunnel_dst_port_id; 8865 u8 error_info; 8866 #define TUNNEL_DST_PORT_ALLOC_RESP_ERROR_INFO_SUCCESS 0x0UL 8867 #define TUNNEL_DST_PORT_ALLOC_RESP_ERROR_INFO_ERR_ALLOCATED 0x1UL 8868 #define TUNNEL_DST_PORT_ALLOC_RESP_ERROR_INFO_ERR_NO_RESOURCE 0x2UL 8869 #define TUNNEL_DST_PORT_ALLOC_RESP_ERROR_INFO_ERR_ENABLED 0x3UL 8870 #define TUNNEL_DST_PORT_ALLOC_RESP_ERROR_INFO_LAST TUNNEL_DST_PORT_ALLOC_RESP_ERROR_INFO_ERR_ENABLED 8871 u8 upar_in_use; 8872 #define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR0 0x1UL 8873 #define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR1 0x2UL 8874 #define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR2 0x4UL 8875 #define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR3 0x8UL 8876 #define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR4 0x10UL 8877 #define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR5 0x20UL 8878 #define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR6 0x40UL 8879 #define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR7 0x80UL 8880 u8 unused_0[3]; 8881 u8 valid; 8882 }; 8883 8884 /* hwrm_tunnel_dst_port_free_input (size:192b/24B) */ 8885 struct hwrm_tunnel_dst_port_free_input { 8886 __le16 req_type; 8887 __le16 cmpl_ring; 8888 __le16 seq_id; 8889 __le16 target_id; 8890 __le64 resp_addr; 8891 u8 tunnel_type; 8892 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN 0x1UL 8893 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_GENEVE 0x5UL 8894 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 8895 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 8896 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 8897 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 8898 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_CUSTOM_GRE 0xdUL 8899 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_ECPRI 0xeUL 8900 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_SRV6 0xfUL 8901 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN_GPE 0x10UL 8902 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_GRE 0x11UL 8903 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_ULP_DYN_UPAR 0x12UL 8904 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES01 0x13UL 8905 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES02 0x14UL 8906 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES03 0x15UL 8907 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES04 0x16UL 8908 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES05 0x17UL 8909 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES06 0x18UL 8910 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES07 0x19UL 8911 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_LAST TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_ULP_DYN_UPAR_RES07 8912 u8 tunnel_next_proto; 8913 __le16 tunnel_dst_port_id; 8914 u8 unused_0[4]; 8915 }; 8916 8917 /* hwrm_tunnel_dst_port_free_output (size:128b/16B) */ 8918 struct hwrm_tunnel_dst_port_free_output { 8919 __le16 error_code; 8920 __le16 req_type; 8921 __le16 seq_id; 8922 __le16 resp_len; 8923 u8 error_info; 8924 #define TUNNEL_DST_PORT_FREE_RESP_ERROR_INFO_SUCCESS 0x0UL 8925 #define TUNNEL_DST_PORT_FREE_RESP_ERROR_INFO_ERR_NOT_OWNER 0x1UL 8926 #define TUNNEL_DST_PORT_FREE_RESP_ERROR_INFO_ERR_NOT_ALLOCATED 0x2UL 8927 #define TUNNEL_DST_PORT_FREE_RESP_ERROR_INFO_LAST TUNNEL_DST_PORT_FREE_RESP_ERROR_INFO_ERR_NOT_ALLOCATED 8928 u8 unused_1[6]; 8929 u8 valid; 8930 }; 8931 8932 /* ctx_hw_stats (size:1280b/160B) */ 8933 struct ctx_hw_stats { 8934 __le64 rx_ucast_pkts; 8935 __le64 rx_mcast_pkts; 8936 __le64 rx_bcast_pkts; 8937 __le64 rx_discard_pkts; 8938 __le64 rx_error_pkts; 8939 __le64 rx_ucast_bytes; 8940 __le64 rx_mcast_bytes; 8941 __le64 rx_bcast_bytes; 8942 __le64 tx_ucast_pkts; 8943 __le64 tx_mcast_pkts; 8944 __le64 tx_bcast_pkts; 8945 __le64 tx_error_pkts; 8946 __le64 tx_discard_pkts; 8947 __le64 tx_ucast_bytes; 8948 __le64 tx_mcast_bytes; 8949 __le64 tx_bcast_bytes; 8950 __le64 tpa_pkts; 8951 __le64 tpa_bytes; 8952 __le64 tpa_events; 8953 __le64 tpa_aborts; 8954 }; 8955 8956 /* ctx_hw_stats_ext (size:1408b/176B) */ 8957 struct ctx_hw_stats_ext { 8958 __le64 rx_ucast_pkts; 8959 __le64 rx_mcast_pkts; 8960 __le64 rx_bcast_pkts; 8961 __le64 rx_discard_pkts; 8962 __le64 rx_error_pkts; 8963 __le64 rx_ucast_bytes; 8964 __le64 rx_mcast_bytes; 8965 __le64 rx_bcast_bytes; 8966 __le64 tx_ucast_pkts; 8967 __le64 tx_mcast_pkts; 8968 __le64 tx_bcast_pkts; 8969 __le64 tx_error_pkts; 8970 __le64 tx_discard_pkts; 8971 __le64 tx_ucast_bytes; 8972 __le64 tx_mcast_bytes; 8973 __le64 tx_bcast_bytes; 8974 __le64 rx_tpa_eligible_pkt; 8975 __le64 rx_tpa_eligible_bytes; 8976 __le64 rx_tpa_pkt; 8977 __le64 rx_tpa_bytes; 8978 __le64 rx_tpa_errors; 8979 __le64 rx_tpa_events; 8980 }; 8981 8982 /* hwrm_stat_ctx_alloc_input (size:384b/48B) */ 8983 struct hwrm_stat_ctx_alloc_input { 8984 __le16 req_type; 8985 __le16 cmpl_ring; 8986 __le16 seq_id; 8987 __le16 target_id; 8988 __le64 resp_addr; 8989 __le64 stats_dma_addr; 8990 __le32 update_period_ms; 8991 u8 stat_ctx_flags; 8992 #define STAT_CTX_ALLOC_REQ_STAT_CTX_FLAGS_ROCE 0x1UL 8993 #define STAT_CTX_ALLOC_REQ_STAT_CTX_FLAGS_DUP_HOST_BUF 0x2UL 8994 u8 unused_0; 8995 __le16 stats_dma_length; 8996 __le16 flags; 8997 #define STAT_CTX_ALLOC_REQ_FLAGS_STEERING_TAG_VALID 0x1UL 8998 __le16 steering_tag; 8999 __le32 stat_ctx_id; 9000 __le16 alloc_seq_id; 9001 u8 unused_1[6]; 9002 }; 9003 9004 /* hwrm_stat_ctx_alloc_output (size:128b/16B) */ 9005 struct hwrm_stat_ctx_alloc_output { 9006 __le16 error_code; 9007 __le16 req_type; 9008 __le16 seq_id; 9009 __le16 resp_len; 9010 __le32 stat_ctx_id; 9011 u8 unused_0[3]; 9012 u8 valid; 9013 }; 9014 9015 /* hwrm_stat_ctx_free_input (size:192b/24B) */ 9016 struct hwrm_stat_ctx_free_input { 9017 __le16 req_type; 9018 __le16 cmpl_ring; 9019 __le16 seq_id; 9020 __le16 target_id; 9021 __le64 resp_addr; 9022 __le32 stat_ctx_id; 9023 u8 unused_0[4]; 9024 }; 9025 9026 /* hwrm_stat_ctx_free_output (size:128b/16B) */ 9027 struct hwrm_stat_ctx_free_output { 9028 __le16 error_code; 9029 __le16 req_type; 9030 __le16 seq_id; 9031 __le16 resp_len; 9032 __le32 stat_ctx_id; 9033 u8 unused_0[3]; 9034 u8 valid; 9035 }; 9036 9037 /* hwrm_stat_ctx_query_input (size:192b/24B) */ 9038 struct hwrm_stat_ctx_query_input { 9039 __le16 req_type; 9040 __le16 cmpl_ring; 9041 __le16 seq_id; 9042 __le16 target_id; 9043 __le64 resp_addr; 9044 __le32 stat_ctx_id; 9045 u8 flags; 9046 #define STAT_CTX_QUERY_REQ_FLAGS_COUNTER_MASK 0x1UL 9047 u8 unused_0[3]; 9048 }; 9049 9050 /* hwrm_stat_ctx_query_output (size:1408b/176B) */ 9051 struct hwrm_stat_ctx_query_output { 9052 __le16 error_code; 9053 __le16 req_type; 9054 __le16 seq_id; 9055 __le16 resp_len; 9056 __le64 tx_ucast_pkts; 9057 __le64 tx_mcast_pkts; 9058 __le64 tx_bcast_pkts; 9059 __le64 tx_discard_pkts; 9060 __le64 tx_error_pkts; 9061 __le64 tx_ucast_bytes; 9062 __le64 tx_mcast_bytes; 9063 __le64 tx_bcast_bytes; 9064 __le64 rx_ucast_pkts; 9065 __le64 rx_mcast_pkts; 9066 __le64 rx_bcast_pkts; 9067 __le64 rx_discard_pkts; 9068 __le64 rx_error_pkts; 9069 __le64 rx_ucast_bytes; 9070 __le64 rx_mcast_bytes; 9071 __le64 rx_bcast_bytes; 9072 __le64 rx_agg_pkts; 9073 __le64 rx_agg_bytes; 9074 __le64 rx_agg_events; 9075 __le64 rx_agg_aborts; 9076 u8 unused_0[7]; 9077 u8 valid; 9078 }; 9079 9080 /* hwrm_stat_ext_ctx_query_input (size:192b/24B) */ 9081 struct hwrm_stat_ext_ctx_query_input { 9082 __le16 req_type; 9083 __le16 cmpl_ring; 9084 __le16 seq_id; 9085 __le16 target_id; 9086 __le64 resp_addr; 9087 __le32 stat_ctx_id; 9088 u8 flags; 9089 #define STAT_EXT_CTX_QUERY_REQ_FLAGS_COUNTER_MASK 0x1UL 9090 u8 unused_0[3]; 9091 }; 9092 9093 /* hwrm_stat_ext_ctx_query_output (size:1536b/192B) */ 9094 struct hwrm_stat_ext_ctx_query_output { 9095 __le16 error_code; 9096 __le16 req_type; 9097 __le16 seq_id; 9098 __le16 resp_len; 9099 __le64 rx_ucast_pkts; 9100 __le64 rx_mcast_pkts; 9101 __le64 rx_bcast_pkts; 9102 __le64 rx_discard_pkts; 9103 __le64 rx_error_pkts; 9104 __le64 rx_ucast_bytes; 9105 __le64 rx_mcast_bytes; 9106 __le64 rx_bcast_bytes; 9107 __le64 tx_ucast_pkts; 9108 __le64 tx_mcast_pkts; 9109 __le64 tx_bcast_pkts; 9110 __le64 tx_error_pkts; 9111 __le64 tx_discard_pkts; 9112 __le64 tx_ucast_bytes; 9113 __le64 tx_mcast_bytes; 9114 __le64 tx_bcast_bytes; 9115 __le64 rx_tpa_eligible_pkt; 9116 __le64 rx_tpa_eligible_bytes; 9117 __le64 rx_tpa_pkt; 9118 __le64 rx_tpa_bytes; 9119 __le64 rx_tpa_errors; 9120 __le64 rx_tpa_events; 9121 u8 unused_0[7]; 9122 u8 valid; 9123 }; 9124 9125 /* hwrm_stat_ctx_clr_stats_input (size:192b/24B) */ 9126 struct hwrm_stat_ctx_clr_stats_input { 9127 __le16 req_type; 9128 __le16 cmpl_ring; 9129 __le16 seq_id; 9130 __le16 target_id; 9131 __le64 resp_addr; 9132 __le32 stat_ctx_id; 9133 u8 unused_0[4]; 9134 }; 9135 9136 /* hwrm_stat_ctx_clr_stats_output (size:128b/16B) */ 9137 struct hwrm_stat_ctx_clr_stats_output { 9138 __le16 error_code; 9139 __le16 req_type; 9140 __le16 seq_id; 9141 __le16 resp_len; 9142 u8 unused_0[7]; 9143 u8 valid; 9144 }; 9145 9146 /* hwrm_pcie_qstats_input (size:256b/32B) */ 9147 struct hwrm_pcie_qstats_input { 9148 __le16 req_type; 9149 __le16 cmpl_ring; 9150 __le16 seq_id; 9151 __le16 target_id; 9152 __le64 resp_addr; 9153 __le16 pcie_stat_size; 9154 u8 unused_0[6]; 9155 __le64 pcie_stat_host_addr; 9156 }; 9157 9158 /* hwrm_pcie_qstats_output (size:128b/16B) */ 9159 struct hwrm_pcie_qstats_output { 9160 __le16 error_code; 9161 __le16 req_type; 9162 __le16 seq_id; 9163 __le16 resp_len; 9164 __le16 pcie_stat_size; 9165 u8 unused_0[5]; 9166 u8 valid; 9167 }; 9168 9169 /* pcie_ctx_hw_stats (size:768b/96B) */ 9170 struct pcie_ctx_hw_stats { 9171 __le64 pcie_pl_signal_integrity; 9172 __le64 pcie_dl_signal_integrity; 9173 __le64 pcie_tl_signal_integrity; 9174 __le64 pcie_link_integrity; 9175 __le64 pcie_tx_traffic_rate; 9176 __le64 pcie_rx_traffic_rate; 9177 __le64 pcie_tx_dllp_statistics; 9178 __le64 pcie_rx_dllp_statistics; 9179 __le64 pcie_equalization_time; 9180 __le32 pcie_ltssm_histogram[4]; 9181 __le64 pcie_recovery_histogram; 9182 }; 9183 9184 /* pcie_ctx_hw_stats_v2 (size:4096b/512B) */ 9185 struct pcie_ctx_hw_stats_v2 { 9186 __le64 pcie_pl_signal_integrity; 9187 __le64 pcie_dl_signal_integrity; 9188 __le64 pcie_tl_signal_integrity; 9189 __le64 pcie_link_integrity; 9190 __le64 pcie_tx_traffic_rate; 9191 __le64 pcie_rx_traffic_rate; 9192 __le64 pcie_tx_dllp_statistics; 9193 __le64 pcie_rx_dllp_statistics; 9194 __le64 pcie_equalization_time; 9195 __le32 pcie_ltssm_histogram[4]; 9196 __le64 pcie_recovery_histogram; 9197 __le32 pcie_tl_credit_nph_histogram[8]; 9198 __le32 pcie_tl_credit_ph_histogram[8]; 9199 __le32 pcie_tl_credit_pd_histogram[8]; 9200 __le32 pcie_cmpl_latest_times[4]; 9201 __le32 pcie_cmpl_longest_time; 9202 __le32 pcie_cmpl_shortest_time; 9203 __le32 unused_0[2]; 9204 __le32 pcie_cmpl_latest_headers[4][4]; 9205 __le32 pcie_cmpl_longest_headers[4][4]; 9206 __le32 pcie_cmpl_shortest_headers[4][4]; 9207 __le32 pcie_wr_latency_histogram[12]; 9208 __le32 pcie_wr_latency_all_normal_count; 9209 __le32 unused_1; 9210 __le64 pcie_posted_packet_count; 9211 __le64 pcie_non_posted_packet_count; 9212 __le64 pcie_other_packet_count; 9213 __le64 pcie_blocked_packet_count; 9214 __le64 pcie_cmpl_packet_count; 9215 }; 9216 9217 /* hwrm_stat_generic_qstats_input (size:256b/32B) */ 9218 struct hwrm_stat_generic_qstats_input { 9219 __le16 req_type; 9220 __le16 cmpl_ring; 9221 __le16 seq_id; 9222 __le16 target_id; 9223 __le64 resp_addr; 9224 __le16 generic_stat_size; 9225 u8 flags; 9226 #define STAT_GENERIC_QSTATS_REQ_FLAGS_COUNTER_MASK 0x1UL 9227 u8 unused_0[5]; 9228 __le64 generic_stat_host_addr; 9229 }; 9230 9231 /* hwrm_stat_generic_qstats_output (size:128b/16B) */ 9232 struct hwrm_stat_generic_qstats_output { 9233 __le16 error_code; 9234 __le16 req_type; 9235 __le16 seq_id; 9236 __le16 resp_len; 9237 __le16 generic_stat_size; 9238 u8 unused_0[5]; 9239 u8 valid; 9240 }; 9241 9242 /* generic_sw_hw_stats (size:1472b/184B) */ 9243 struct generic_sw_hw_stats { 9244 __le64 pcie_statistics_tx_tlp; 9245 __le64 pcie_statistics_rx_tlp; 9246 __le64 pcie_credit_fc_hdr_posted; 9247 __le64 pcie_credit_fc_hdr_nonposted; 9248 __le64 pcie_credit_fc_hdr_cmpl; 9249 __le64 pcie_credit_fc_data_posted; 9250 __le64 pcie_credit_fc_data_nonposted; 9251 __le64 pcie_credit_fc_data_cmpl; 9252 __le64 pcie_credit_fc_tgt_nonposted; 9253 __le64 pcie_credit_fc_tgt_data_posted; 9254 __le64 pcie_credit_fc_tgt_hdr_posted; 9255 __le64 pcie_credit_fc_cmpl_hdr_posted; 9256 __le64 pcie_credit_fc_cmpl_data_posted; 9257 __le64 pcie_cmpl_longest; 9258 __le64 pcie_cmpl_shortest; 9259 __le64 cache_miss_count_cfcq; 9260 __le64 cache_miss_count_cfcs; 9261 __le64 cache_miss_count_cfcc; 9262 __le64 cache_miss_count_cfcm; 9263 __le64 hw_db_recov_dbs_dropped; 9264 __le64 hw_db_recov_drops_serviced; 9265 __le64 hw_db_recov_dbs_recovered; 9266 __le64 hw_db_recov_oo_drop_count; 9267 }; 9268 9269 /* hwrm_fw_reset_input (size:192b/24B) */ 9270 struct hwrm_fw_reset_input { 9271 __le16 req_type; 9272 __le16 cmpl_ring; 9273 __le16 seq_id; 9274 __le16 target_id; 9275 __le64 resp_addr; 9276 u8 embedded_proc_type; 9277 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_BOOT 0x0UL 9278 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_MGMT 0x1UL 9279 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_NETCTRL 0x2UL 9280 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_ROCE 0x3UL 9281 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_HOST 0x4UL 9282 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_AP 0x5UL 9283 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_CHIP 0x6UL 9284 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_HOST_RESOURCE_REINIT 0x7UL 9285 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_IMPACTLESS_ACTIVATION 0x8UL 9286 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_LAST FW_RESET_REQ_EMBEDDED_PROC_TYPE_IMPACTLESS_ACTIVATION 9287 u8 selfrst_status; 9288 #define FW_RESET_REQ_SELFRST_STATUS_SELFRSTNONE 0x0UL 9289 #define FW_RESET_REQ_SELFRST_STATUS_SELFRSTASAP 0x1UL 9290 #define FW_RESET_REQ_SELFRST_STATUS_SELFRSTPCIERST 0x2UL 9291 #define FW_RESET_REQ_SELFRST_STATUS_SELFRSTIMMEDIATE 0x3UL 9292 #define FW_RESET_REQ_SELFRST_STATUS_LAST FW_RESET_REQ_SELFRST_STATUS_SELFRSTIMMEDIATE 9293 u8 host_idx; 9294 u8 flags; 9295 #define FW_RESET_REQ_FLAGS_RESET_GRACEFUL 0x1UL 9296 #define FW_RESET_REQ_FLAGS_FW_ACTIVATION 0x2UL 9297 u8 unused_0[4]; 9298 }; 9299 9300 /* hwrm_fw_reset_output (size:128b/16B) */ 9301 struct hwrm_fw_reset_output { 9302 __le16 error_code; 9303 __le16 req_type; 9304 __le16 seq_id; 9305 __le16 resp_len; 9306 u8 selfrst_status; 9307 #define FW_RESET_RESP_SELFRST_STATUS_SELFRSTNONE 0x0UL 9308 #define FW_RESET_RESP_SELFRST_STATUS_SELFRSTASAP 0x1UL 9309 #define FW_RESET_RESP_SELFRST_STATUS_SELFRSTPCIERST 0x2UL 9310 #define FW_RESET_RESP_SELFRST_STATUS_SELFRSTIMMEDIATE 0x3UL 9311 #define FW_RESET_RESP_SELFRST_STATUS_LAST FW_RESET_RESP_SELFRST_STATUS_SELFRSTIMMEDIATE 9312 u8 unused_0[6]; 9313 u8 valid; 9314 }; 9315 9316 /* hwrm_fw_qstatus_input (size:192b/24B) */ 9317 struct hwrm_fw_qstatus_input { 9318 __le16 req_type; 9319 __le16 cmpl_ring; 9320 __le16 seq_id; 9321 __le16 target_id; 9322 __le64 resp_addr; 9323 u8 embedded_proc_type; 9324 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_BOOT 0x0UL 9325 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_MGMT 0x1UL 9326 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_NETCTRL 0x2UL 9327 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_ROCE 0x3UL 9328 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_HOST 0x4UL 9329 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_AP 0x5UL 9330 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_CHIP 0x6UL 9331 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_LAST FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_CHIP 9332 u8 unused_0[7]; 9333 }; 9334 9335 /* hwrm_fw_qstatus_output (size:128b/16B) */ 9336 struct hwrm_fw_qstatus_output { 9337 __le16 error_code; 9338 __le16 req_type; 9339 __le16 seq_id; 9340 __le16 resp_len; 9341 u8 selfrst_status; 9342 #define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTNONE 0x0UL 9343 #define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTASAP 0x1UL 9344 #define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTPCIERST 0x2UL 9345 #define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTPOWER 0x3UL 9346 #define FW_QSTATUS_RESP_SELFRST_STATUS_LAST FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTPOWER 9347 u8 nvm_option_action_status; 9348 #define FW_QSTATUS_RESP_NVM_OPTION_ACTION_STATUS_NVMOPT_ACTION_NONE 0x0UL 9349 #define FW_QSTATUS_RESP_NVM_OPTION_ACTION_STATUS_NVMOPT_ACTION_HOTRESET 0x1UL 9350 #define FW_QSTATUS_RESP_NVM_OPTION_ACTION_STATUS_NVMOPT_ACTION_WARMBOOT 0x2UL 9351 #define FW_QSTATUS_RESP_NVM_OPTION_ACTION_STATUS_NVMOPT_ACTION_COLDBOOT 0x3UL 9352 #define FW_QSTATUS_RESP_NVM_OPTION_ACTION_STATUS_LAST FW_QSTATUS_RESP_NVM_OPTION_ACTION_STATUS_NVMOPT_ACTION_COLDBOOT 9353 u8 unused_0[5]; 9354 u8 valid; 9355 }; 9356 9357 /* hwrm_fw_set_time_input (size:256b/32B) */ 9358 struct hwrm_fw_set_time_input { 9359 __le16 req_type; 9360 __le16 cmpl_ring; 9361 __le16 seq_id; 9362 __le16 target_id; 9363 __le64 resp_addr; 9364 __le16 year; 9365 #define FW_SET_TIME_REQ_YEAR_UNKNOWN 0x0UL 9366 #define FW_SET_TIME_REQ_YEAR_LAST FW_SET_TIME_REQ_YEAR_UNKNOWN 9367 u8 month; 9368 u8 day; 9369 u8 hour; 9370 u8 minute; 9371 u8 second; 9372 u8 unused_0; 9373 __le16 millisecond; 9374 __le16 zone; 9375 #define FW_SET_TIME_REQ_ZONE_UTC 0 9376 #define FW_SET_TIME_REQ_ZONE_UNKNOWN 65535 9377 #define FW_SET_TIME_REQ_ZONE_LAST FW_SET_TIME_REQ_ZONE_UNKNOWN 9378 u8 unused_1[4]; 9379 }; 9380 9381 /* hwrm_fw_set_time_output (size:128b/16B) */ 9382 struct hwrm_fw_set_time_output { 9383 __le16 error_code; 9384 __le16 req_type; 9385 __le16 seq_id; 9386 __le16 resp_len; 9387 u8 unused_0[7]; 9388 u8 valid; 9389 }; 9390 9391 /* hwrm_struct_hdr (size:128b/16B) */ 9392 struct hwrm_struct_hdr { 9393 __le16 struct_id; 9394 #define STRUCT_HDR_STRUCT_ID_LLDP_CFG 0x41bUL 9395 #define STRUCT_HDR_STRUCT_ID_DCBX_ETS 0x41dUL 9396 #define STRUCT_HDR_STRUCT_ID_DCBX_PFC 0x41fUL 9397 #define STRUCT_HDR_STRUCT_ID_DCBX_APP 0x421UL 9398 #define STRUCT_HDR_STRUCT_ID_DCBX_FEATURE_STATE 0x422UL 9399 #define STRUCT_HDR_STRUCT_ID_LLDP_GENERIC 0x424UL 9400 #define STRUCT_HDR_STRUCT_ID_LLDP_DEVICE 0x426UL 9401 #define STRUCT_HDR_STRUCT_ID_POWER_BKUP 0x427UL 9402 #define STRUCT_HDR_STRUCT_ID_PEER_MMAP 0x429UL 9403 #define STRUCT_HDR_STRUCT_ID_AFM_OPAQUE 0x1UL 9404 #define STRUCT_HDR_STRUCT_ID_PORT_DESCRIPTION 0xaUL 9405 #define STRUCT_HDR_STRUCT_ID_RSS_V2 0x64UL 9406 #define STRUCT_HDR_STRUCT_ID_MSIX_PER_VF 0xc8UL 9407 #define STRUCT_HDR_STRUCT_ID_UDCC_RTT_BUCKET_COUNT 0x12cUL 9408 #define STRUCT_HDR_STRUCT_ID_UDCC_RTT_BUCKET_BOUND 0x12dUL 9409 #define STRUCT_HDR_STRUCT_ID_LAST STRUCT_HDR_STRUCT_ID_UDCC_RTT_BUCKET_BOUND 9410 __le16 len; 9411 u8 version; 9412 #define STRUCT_HDR_VERSION_0 0x0UL 9413 #define STRUCT_HDR_VERSION_1 0x1UL 9414 #define STRUCT_HDR_VERSION_LAST STRUCT_HDR_VERSION_1 9415 u8 count; 9416 __le16 subtype; 9417 __le16 next_offset; 9418 #define STRUCT_HDR_NEXT_OFFSET_LAST 0x0UL 9419 u8 unused_0[6]; 9420 }; 9421 9422 /* hwrm_struct_data_dcbx_app (size:64b/8B) */ 9423 struct hwrm_struct_data_dcbx_app { 9424 __be16 protocol_id; 9425 u8 protocol_selector; 9426 #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_ETHER_TYPE 0x1UL 9427 #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_TCP_PORT 0x2UL 9428 #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_UDP_PORT 0x3UL 9429 #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_TCP_UDP_PORT 0x4UL 9430 #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_LAST STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_TCP_UDP_PORT 9431 u8 priority; 9432 u8 valid; 9433 u8 unused_0[3]; 9434 }; 9435 9436 /* hwrm_fw_set_structured_data_input (size:256b/32B) */ 9437 struct hwrm_fw_set_structured_data_input { 9438 __le16 req_type; 9439 __le16 cmpl_ring; 9440 __le16 seq_id; 9441 __le16 target_id; 9442 __le64 resp_addr; 9443 __le64 src_data_addr; 9444 __le16 data_len; 9445 u8 hdr_cnt; 9446 u8 unused_0[5]; 9447 }; 9448 9449 /* hwrm_fw_set_structured_data_output (size:128b/16B) */ 9450 struct hwrm_fw_set_structured_data_output { 9451 __le16 error_code; 9452 __le16 req_type; 9453 __le16 seq_id; 9454 __le16 resp_len; 9455 u8 unused_0[7]; 9456 u8 valid; 9457 }; 9458 9459 /* hwrm_fw_set_structured_data_cmd_err (size:64b/8B) */ 9460 struct hwrm_fw_set_structured_data_cmd_err { 9461 u8 code; 9462 #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_UNKNOWN 0x0UL 9463 #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_HDR_CNT 0x1UL 9464 #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_FMT 0x2UL 9465 #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID 0x3UL 9466 #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_LAST FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID 9467 u8 unused_0[7]; 9468 }; 9469 9470 /* hwrm_fw_get_structured_data_input (size:256b/32B) */ 9471 struct hwrm_fw_get_structured_data_input { 9472 __le16 req_type; 9473 __le16 cmpl_ring; 9474 __le16 seq_id; 9475 __le16 target_id; 9476 __le64 resp_addr; 9477 __le64 dest_data_addr; 9478 __le16 data_len; 9479 __le16 structure_id; 9480 __le16 subtype; 9481 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_UNUSED 0x0UL 9482 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_ALL 0xffffUL 9483 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_ADMIN 0x100UL 9484 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_PEER 0x101UL 9485 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_OPERATIONAL 0x102UL 9486 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_ADMIN 0x200UL 9487 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_PEER 0x201UL 9488 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_OPERATIONAL 0x202UL 9489 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_HOST_OPERATIONAL 0x300UL 9490 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_LAST FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_HOST_OPERATIONAL 9491 u8 count; 9492 u8 unused_0; 9493 }; 9494 9495 /* hwrm_fw_get_structured_data_output (size:128b/16B) */ 9496 struct hwrm_fw_get_structured_data_output { 9497 __le16 error_code; 9498 __le16 req_type; 9499 __le16 seq_id; 9500 __le16 resp_len; 9501 u8 hdr_cnt; 9502 u8 unused_0[6]; 9503 u8 valid; 9504 }; 9505 9506 /* hwrm_fw_get_structured_data_cmd_err (size:64b/8B) */ 9507 struct hwrm_fw_get_structured_data_cmd_err { 9508 u8 code; 9509 #define FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_UNKNOWN 0x0UL 9510 #define FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID 0x3UL 9511 #define FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_LAST FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID 9512 u8 unused_0[7]; 9513 }; 9514 9515 /* hwrm_fw_livepatch_query_input (size:192b/24B) */ 9516 struct hwrm_fw_livepatch_query_input { 9517 __le16 req_type; 9518 __le16 cmpl_ring; 9519 __le16 seq_id; 9520 __le16 target_id; 9521 __le64 resp_addr; 9522 u8 fw_target; 9523 #define FW_LIVEPATCH_QUERY_REQ_FW_TARGET_COMMON_FW 0x1UL 9524 #define FW_LIVEPATCH_QUERY_REQ_FW_TARGET_SECURE_FW 0x2UL 9525 #define FW_LIVEPATCH_QUERY_REQ_FW_TARGET_LAST FW_LIVEPATCH_QUERY_REQ_FW_TARGET_SECURE_FW 9526 u8 unused_0[7]; 9527 }; 9528 9529 /* hwrm_fw_livepatch_query_output (size:640b/80B) */ 9530 struct hwrm_fw_livepatch_query_output { 9531 __le16 error_code; 9532 __le16 req_type; 9533 __le16 seq_id; 9534 __le16 resp_len; 9535 char install_ver[32]; 9536 char active_ver[32]; 9537 __le16 status_flags; 9538 #define FW_LIVEPATCH_QUERY_RESP_STATUS_FLAGS_INSTALL 0x1UL 9539 #define FW_LIVEPATCH_QUERY_RESP_STATUS_FLAGS_ACTIVE 0x2UL 9540 u8 unused_0[5]; 9541 u8 valid; 9542 }; 9543 9544 /* hwrm_fw_livepatch_input (size:256b/32B) */ 9545 struct hwrm_fw_livepatch_input { 9546 __le16 req_type; 9547 __le16 cmpl_ring; 9548 __le16 seq_id; 9549 __le16 target_id; 9550 __le64 resp_addr; 9551 u8 opcode; 9552 #define FW_LIVEPATCH_REQ_OPCODE_ACTIVATE 0x1UL 9553 #define FW_LIVEPATCH_REQ_OPCODE_DEACTIVATE 0x2UL 9554 #define FW_LIVEPATCH_REQ_OPCODE_LAST FW_LIVEPATCH_REQ_OPCODE_DEACTIVATE 9555 u8 fw_target; 9556 #define FW_LIVEPATCH_REQ_FW_TARGET_COMMON_FW 0x1UL 9557 #define FW_LIVEPATCH_REQ_FW_TARGET_SECURE_FW 0x2UL 9558 #define FW_LIVEPATCH_REQ_FW_TARGET_LAST FW_LIVEPATCH_REQ_FW_TARGET_SECURE_FW 9559 u8 loadtype; 9560 #define FW_LIVEPATCH_REQ_LOADTYPE_NVM_INSTALL 0x1UL 9561 #define FW_LIVEPATCH_REQ_LOADTYPE_MEMORY_DIRECT 0x2UL 9562 #define FW_LIVEPATCH_REQ_LOADTYPE_LAST FW_LIVEPATCH_REQ_LOADTYPE_MEMORY_DIRECT 9563 u8 flags; 9564 __le32 patch_len; 9565 __le64 host_addr; 9566 }; 9567 9568 /* hwrm_fw_livepatch_output (size:128b/16B) */ 9569 struct hwrm_fw_livepatch_output { 9570 __le16 error_code; 9571 __le16 req_type; 9572 __le16 seq_id; 9573 __le16 resp_len; 9574 u8 unused_0[7]; 9575 u8 valid; 9576 }; 9577 9578 /* hwrm_fw_livepatch_cmd_err (size:64b/8B) */ 9579 struct hwrm_fw_livepatch_cmd_err { 9580 u8 code; 9581 #define FW_LIVEPATCH_CMD_ERR_CODE_UNKNOWN 0x0UL 9582 #define FW_LIVEPATCH_CMD_ERR_CODE_INVALID_OPCODE 0x1UL 9583 #define FW_LIVEPATCH_CMD_ERR_CODE_INVALID_TARGET 0x2UL 9584 #define FW_LIVEPATCH_CMD_ERR_CODE_NOT_SUPPORTED 0x3UL 9585 #define FW_LIVEPATCH_CMD_ERR_CODE_NOT_INSTALLED 0x4UL 9586 #define FW_LIVEPATCH_CMD_ERR_CODE_NOT_PATCHED 0x5UL 9587 #define FW_LIVEPATCH_CMD_ERR_CODE_AUTH_FAIL 0x6UL 9588 #define FW_LIVEPATCH_CMD_ERR_CODE_INVALID_HEADER 0x7UL 9589 #define FW_LIVEPATCH_CMD_ERR_CODE_INVALID_SIZE 0x8UL 9590 #define FW_LIVEPATCH_CMD_ERR_CODE_ALREADY_PATCHED 0x9UL 9591 #define FW_LIVEPATCH_CMD_ERR_CODE_LAST FW_LIVEPATCH_CMD_ERR_CODE_ALREADY_PATCHED 9592 u8 unused_0[7]; 9593 }; 9594 9595 /* hwrm_exec_fwd_resp_input (size:1024b/128B) */ 9596 struct hwrm_exec_fwd_resp_input { 9597 __le16 req_type; 9598 __le16 cmpl_ring; 9599 __le16 seq_id; 9600 __le16 target_id; 9601 __le64 resp_addr; 9602 __le32 encap_request[26]; 9603 __le16 encap_resp_target_id; 9604 u8 unused_0[6]; 9605 }; 9606 9607 /* hwrm_exec_fwd_resp_output (size:128b/16B) */ 9608 struct hwrm_exec_fwd_resp_output { 9609 __le16 error_code; 9610 __le16 req_type; 9611 __le16 seq_id; 9612 __le16 resp_len; 9613 u8 unused_0[7]; 9614 u8 valid; 9615 }; 9616 9617 /* hwrm_reject_fwd_resp_input (size:1024b/128B) */ 9618 struct hwrm_reject_fwd_resp_input { 9619 __le16 req_type; 9620 __le16 cmpl_ring; 9621 __le16 seq_id; 9622 __le16 target_id; 9623 __le64 resp_addr; 9624 __le32 encap_request[26]; 9625 __le16 encap_resp_target_id; 9626 u8 unused_0[6]; 9627 }; 9628 9629 /* hwrm_reject_fwd_resp_output (size:128b/16B) */ 9630 struct hwrm_reject_fwd_resp_output { 9631 __le16 error_code; 9632 __le16 req_type; 9633 __le16 seq_id; 9634 __le16 resp_len; 9635 u8 unused_0[7]; 9636 u8 valid; 9637 }; 9638 9639 /* hwrm_fwd_resp_input (size:1024b/128B) */ 9640 struct hwrm_fwd_resp_input { 9641 __le16 req_type; 9642 __le16 cmpl_ring; 9643 __le16 seq_id; 9644 __le16 target_id; 9645 __le64 resp_addr; 9646 __le16 encap_resp_target_id; 9647 __le16 encap_resp_cmpl_ring; 9648 __le16 encap_resp_len; 9649 u8 unused_0; 9650 u8 unused_1; 9651 __le64 encap_resp_addr; 9652 __le32 encap_resp[24]; 9653 }; 9654 9655 /* hwrm_fwd_resp_output (size:128b/16B) */ 9656 struct hwrm_fwd_resp_output { 9657 __le16 error_code; 9658 __le16 req_type; 9659 __le16 seq_id; 9660 __le16 resp_len; 9661 u8 unused_0[7]; 9662 u8 valid; 9663 }; 9664 9665 /* hwrm_fwd_async_event_cmpl_input (size:320b/40B) */ 9666 struct hwrm_fwd_async_event_cmpl_input { 9667 __le16 req_type; 9668 __le16 cmpl_ring; 9669 __le16 seq_id; 9670 __le16 target_id; 9671 __le64 resp_addr; 9672 __le16 encap_async_event_target_id; 9673 u8 unused_0[6]; 9674 __le32 encap_async_event_cmpl[4]; 9675 }; 9676 9677 /* hwrm_fwd_async_event_cmpl_output (size:128b/16B) */ 9678 struct hwrm_fwd_async_event_cmpl_output { 9679 __le16 error_code; 9680 __le16 req_type; 9681 __le16 seq_id; 9682 __le16 resp_len; 9683 u8 unused_0[7]; 9684 u8 valid; 9685 }; 9686 9687 /* hwrm_temp_monitor_query_input (size:128b/16B) */ 9688 struct hwrm_temp_monitor_query_input { 9689 __le16 req_type; 9690 __le16 cmpl_ring; 9691 __le16 seq_id; 9692 __le16 target_id; 9693 __le64 resp_addr; 9694 }; 9695 9696 /* hwrm_temp_monitor_query_output (size:192b/24B) */ 9697 struct hwrm_temp_monitor_query_output { 9698 __le16 error_code; 9699 __le16 req_type; 9700 __le16 seq_id; 9701 __le16 resp_len; 9702 u8 temp; 9703 u8 phy_temp; 9704 u8 om_temp; 9705 u8 flags; 9706 #define TEMP_MONITOR_QUERY_RESP_FLAGS_TEMP_NOT_AVAILABLE 0x1UL 9707 #define TEMP_MONITOR_QUERY_RESP_FLAGS_PHY_TEMP_NOT_AVAILABLE 0x2UL 9708 #define TEMP_MONITOR_QUERY_RESP_FLAGS_OM_NOT_PRESENT 0x4UL 9709 #define TEMP_MONITOR_QUERY_RESP_FLAGS_OM_TEMP_NOT_AVAILABLE 0x8UL 9710 #define TEMP_MONITOR_QUERY_RESP_FLAGS_EXT_TEMP_FIELDS_AVAILABLE 0x10UL 9711 #define TEMP_MONITOR_QUERY_RESP_FLAGS_THRESHOLD_VALUES_AVAILABLE 0x20UL 9712 u8 temp2; 9713 u8 phy_temp2; 9714 u8 om_temp2; 9715 u8 warn_threshold; 9716 u8 critical_threshold; 9717 u8 fatal_threshold; 9718 u8 shutdown_threshold; 9719 u8 unused_0[4]; 9720 u8 valid; 9721 }; 9722 9723 /* hwrm_wol_filter_alloc_input (size:512b/64B) */ 9724 struct hwrm_wol_filter_alloc_input { 9725 __le16 req_type; 9726 __le16 cmpl_ring; 9727 __le16 seq_id; 9728 __le16 target_id; 9729 __le64 resp_addr; 9730 __le32 flags; 9731 __le32 enables; 9732 #define WOL_FILTER_ALLOC_REQ_ENABLES_MAC_ADDRESS 0x1UL 9733 #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_OFFSET 0x2UL 9734 #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_BUF_SIZE 0x4UL 9735 #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_BUF_ADDR 0x8UL 9736 #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_MASK_ADDR 0x10UL 9737 #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_MASK_SIZE 0x20UL 9738 __le16 port_id; 9739 u8 wol_type; 9740 #define WOL_FILTER_ALLOC_REQ_WOL_TYPE_MAGICPKT 0x0UL 9741 #define WOL_FILTER_ALLOC_REQ_WOL_TYPE_BMP 0x1UL 9742 #define WOL_FILTER_ALLOC_REQ_WOL_TYPE_INVALID 0xffUL 9743 #define WOL_FILTER_ALLOC_REQ_WOL_TYPE_LAST WOL_FILTER_ALLOC_REQ_WOL_TYPE_INVALID 9744 u8 unused_0[5]; 9745 u8 mac_address[6]; 9746 __le16 pattern_offset; 9747 __le16 pattern_buf_size; 9748 __le16 pattern_mask_size; 9749 u8 unused_1[4]; 9750 __le64 pattern_buf_addr; 9751 __le64 pattern_mask_addr; 9752 }; 9753 9754 /* hwrm_wol_filter_alloc_output (size:128b/16B) */ 9755 struct hwrm_wol_filter_alloc_output { 9756 __le16 error_code; 9757 __le16 req_type; 9758 __le16 seq_id; 9759 __le16 resp_len; 9760 u8 wol_filter_id; 9761 u8 unused_0[6]; 9762 u8 valid; 9763 }; 9764 9765 /* hwrm_wol_filter_free_input (size:256b/32B) */ 9766 struct hwrm_wol_filter_free_input { 9767 __le16 req_type; 9768 __le16 cmpl_ring; 9769 __le16 seq_id; 9770 __le16 target_id; 9771 __le64 resp_addr; 9772 __le32 flags; 9773 #define WOL_FILTER_FREE_REQ_FLAGS_FREE_ALL_WOL_FILTERS 0x1UL 9774 __le32 enables; 9775 #define WOL_FILTER_FREE_REQ_ENABLES_WOL_FILTER_ID 0x1UL 9776 __le16 port_id; 9777 u8 wol_filter_id; 9778 u8 unused_0[5]; 9779 }; 9780 9781 /* hwrm_wol_filter_free_output (size:128b/16B) */ 9782 struct hwrm_wol_filter_free_output { 9783 __le16 error_code; 9784 __le16 req_type; 9785 __le16 seq_id; 9786 __le16 resp_len; 9787 u8 unused_0[7]; 9788 u8 valid; 9789 }; 9790 9791 /* hwrm_wol_filter_qcfg_input (size:448b/56B) */ 9792 struct hwrm_wol_filter_qcfg_input { 9793 __le16 req_type; 9794 __le16 cmpl_ring; 9795 __le16 seq_id; 9796 __le16 target_id; 9797 __le64 resp_addr; 9798 __le16 port_id; 9799 __le16 handle; 9800 u8 unused_0[4]; 9801 __le64 pattern_buf_addr; 9802 __le16 pattern_buf_size; 9803 u8 unused_1[6]; 9804 __le64 pattern_mask_addr; 9805 __le16 pattern_mask_size; 9806 u8 unused_2[6]; 9807 }; 9808 9809 /* hwrm_wol_filter_qcfg_output (size:256b/32B) */ 9810 struct hwrm_wol_filter_qcfg_output { 9811 __le16 error_code; 9812 __le16 req_type; 9813 __le16 seq_id; 9814 __le16 resp_len; 9815 __le16 next_handle; 9816 u8 wol_filter_id; 9817 u8 wol_type; 9818 #define WOL_FILTER_QCFG_RESP_WOL_TYPE_MAGICPKT 0x0UL 9819 #define WOL_FILTER_QCFG_RESP_WOL_TYPE_BMP 0x1UL 9820 #define WOL_FILTER_QCFG_RESP_WOL_TYPE_INVALID 0xffUL 9821 #define WOL_FILTER_QCFG_RESP_WOL_TYPE_LAST WOL_FILTER_QCFG_RESP_WOL_TYPE_INVALID 9822 __le32 unused_0; 9823 u8 mac_address[6]; 9824 __le16 pattern_offset; 9825 __le16 pattern_size; 9826 __le16 pattern_mask_size; 9827 u8 unused_1[3]; 9828 u8 valid; 9829 }; 9830 9831 /* hwrm_wol_reason_qcfg_input (size:320b/40B) */ 9832 struct hwrm_wol_reason_qcfg_input { 9833 __le16 req_type; 9834 __le16 cmpl_ring; 9835 __le16 seq_id; 9836 __le16 target_id; 9837 __le64 resp_addr; 9838 __le16 port_id; 9839 u8 unused_0[6]; 9840 __le64 wol_pkt_buf_addr; 9841 __le16 wol_pkt_buf_size; 9842 u8 unused_1[6]; 9843 }; 9844 9845 /* hwrm_wol_reason_qcfg_output (size:128b/16B) */ 9846 struct hwrm_wol_reason_qcfg_output { 9847 __le16 error_code; 9848 __le16 req_type; 9849 __le16 seq_id; 9850 __le16 resp_len; 9851 u8 wol_filter_id; 9852 u8 wol_reason; 9853 #define WOL_REASON_QCFG_RESP_WOL_REASON_MAGICPKT 0x0UL 9854 #define WOL_REASON_QCFG_RESP_WOL_REASON_BMP 0x1UL 9855 #define WOL_REASON_QCFG_RESP_WOL_REASON_INVALID 0xffUL 9856 #define WOL_REASON_QCFG_RESP_WOL_REASON_LAST WOL_REASON_QCFG_RESP_WOL_REASON_INVALID 9857 u8 wol_pkt_len; 9858 u8 unused_0[4]; 9859 u8 valid; 9860 }; 9861 9862 /* hwrm_dbg_read_direct_input (size:256b/32B) */ 9863 struct hwrm_dbg_read_direct_input { 9864 __le16 req_type; 9865 __le16 cmpl_ring; 9866 __le16 seq_id; 9867 __le16 target_id; 9868 __le64 resp_addr; 9869 __le64 host_dest_addr; 9870 __le32 read_addr; 9871 __le32 read_len32; 9872 }; 9873 9874 /* hwrm_dbg_read_direct_output (size:128b/16B) */ 9875 struct hwrm_dbg_read_direct_output { 9876 __le16 error_code; 9877 __le16 req_type; 9878 __le16 seq_id; 9879 __le16 resp_len; 9880 __le32 crc32; 9881 u8 unused_0[3]; 9882 u8 valid; 9883 }; 9884 9885 /* hwrm_dbg_qcaps_input (size:192b/24B) */ 9886 struct hwrm_dbg_qcaps_input { 9887 __le16 req_type; 9888 __le16 cmpl_ring; 9889 __le16 seq_id; 9890 __le16 target_id; 9891 __le64 resp_addr; 9892 __le16 fid; 9893 u8 unused_0[6]; 9894 }; 9895 9896 /* hwrm_dbg_qcaps_output (size:192b/24B) */ 9897 struct hwrm_dbg_qcaps_output { 9898 __le16 error_code; 9899 __le16 req_type; 9900 __le16 seq_id; 9901 __le16 resp_len; 9902 __le16 fid; 9903 u8 unused_0[2]; 9904 __le32 coredump_component_disable_caps; 9905 #define DBG_QCAPS_RESP_COREDUMP_COMPONENT_DISABLE_CAPS_NVRAM 0x1UL 9906 __le32 flags; 9907 #define DBG_QCAPS_RESP_FLAGS_CRASHDUMP_NVM 0x1UL 9908 #define DBG_QCAPS_RESP_FLAGS_CRASHDUMP_HOST_DDR 0x2UL 9909 #define DBG_QCAPS_RESP_FLAGS_CRASHDUMP_SOC_DDR 0x4UL 9910 #define DBG_QCAPS_RESP_FLAGS_USEQ 0x8UL 9911 #define DBG_QCAPS_RESP_FLAGS_COREDUMP_HOST_DDR 0x10UL 9912 #define DBG_QCAPS_RESP_FLAGS_COREDUMP_HOST_CAPTURE 0x20UL 9913 #define DBG_QCAPS_RESP_FLAGS_PTRACE 0x40UL 9914 #define DBG_QCAPS_RESP_FLAGS_REG_ACCESS_RESTRICTED 0x80UL 9915 u8 unused_1[3]; 9916 u8 valid; 9917 }; 9918 9919 /* hwrm_dbg_qcfg_input (size:192b/24B) */ 9920 struct hwrm_dbg_qcfg_input { 9921 __le16 req_type; 9922 __le16 cmpl_ring; 9923 __le16 seq_id; 9924 __le16 target_id; 9925 __le64 resp_addr; 9926 __le16 fid; 9927 __le16 flags; 9928 #define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_MASK 0x3UL 9929 #define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_SFT 0 9930 #define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_DEST_NVM 0x0UL 9931 #define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_DEST_HOST_DDR 0x1UL 9932 #define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_DEST_SOC_DDR 0x2UL 9933 #define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_LAST DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_DEST_SOC_DDR 9934 __le32 coredump_component_disable_flags; 9935 #define DBG_QCFG_REQ_COREDUMP_COMPONENT_DISABLE_FLAGS_NVRAM 0x1UL 9936 }; 9937 9938 /* hwrm_dbg_qcfg_output (size:256b/32B) */ 9939 struct hwrm_dbg_qcfg_output { 9940 __le16 error_code; 9941 __le16 req_type; 9942 __le16 seq_id; 9943 __le16 resp_len; 9944 __le16 fid; 9945 u8 unused_0[2]; 9946 __le32 coredump_size; 9947 __le32 flags; 9948 #define DBG_QCFG_RESP_FLAGS_UART_LOG 0x1UL 9949 #define DBG_QCFG_RESP_FLAGS_UART_LOG_SECONDARY 0x2UL 9950 #define DBG_QCFG_RESP_FLAGS_FW_TRACE 0x4UL 9951 #define DBG_QCFG_RESP_FLAGS_FW_TRACE_SECONDARY 0x8UL 9952 #define DBG_QCFG_RESP_FLAGS_DEBUG_NOTIFY 0x10UL 9953 #define DBG_QCFG_RESP_FLAGS_JTAG_DEBUG 0x20UL 9954 __le16 async_cmpl_ring; 9955 u8 unused_2[2]; 9956 __le32 crashdump_size; 9957 u8 unused_3[3]; 9958 u8 valid; 9959 }; 9960 9961 /* hwrm_dbg_crashdump_medium_cfg_input (size:320b/40B) */ 9962 struct hwrm_dbg_crashdump_medium_cfg_input { 9963 __le16 req_type; 9964 __le16 cmpl_ring; 9965 __le16 seq_id; 9966 __le16 target_id; 9967 __le64 resp_addr; 9968 __le16 output_dest_flags; 9969 #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_TYPE_DDR 0x1UL 9970 __le16 pg_size_lvl; 9971 #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_LVL_MASK 0x3UL 9972 #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_LVL_SFT 0 9973 #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_LVL_LVL_0 0x0UL 9974 #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_LVL_LVL_1 0x1UL 9975 #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_LVL_LVL_2 0x2UL 9976 #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_LVL_LAST DBG_CRASHDUMP_MEDIUM_CFG_REQ_LVL_LVL_2 9977 #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_MASK 0x1cUL 9978 #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_SFT 2 9979 #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_PG_4K (0x0UL << 2) 9980 #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_PG_8K (0x1UL << 2) 9981 #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_PG_64K (0x2UL << 2) 9982 #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_PG_2M (0x3UL << 2) 9983 #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_PG_8M (0x4UL << 2) 9984 #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_PG_1G (0x5UL << 2) 9985 #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_LAST DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_PG_1G 9986 #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_UNUSED11_MASK 0xffe0UL 9987 #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_UNUSED11_SFT 5 9988 __le32 size; 9989 __le32 coredump_component_disable_flags; 9990 #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_NVRAM 0x1UL 9991 __le32 unused_0; 9992 __le64 pbl; 9993 }; 9994 9995 /* hwrm_dbg_crashdump_medium_cfg_output (size:128b/16B) */ 9996 struct hwrm_dbg_crashdump_medium_cfg_output { 9997 __le16 error_code; 9998 __le16 req_type; 9999 __le16 seq_id; 10000 __le16 resp_len; 10001 u8 unused_1[7]; 10002 u8 valid; 10003 }; 10004 10005 /* coredump_segment_record (size:128b/16B) */ 10006 struct coredump_segment_record { 10007 __le16 component_id; 10008 __le16 segment_id; 10009 __le16 max_instances; 10010 u8 version_hi; 10011 u8 version_low; 10012 u8 seg_flags; 10013 u8 compress_flags; 10014 #define SFLAG_COMPRESSED_ZLIB 0x1UL 10015 u8 unused_0[2]; 10016 __le32 segment_len; 10017 }; 10018 10019 /* hwrm_dbg_coredump_list_input (size:256b/32B) */ 10020 struct hwrm_dbg_coredump_list_input { 10021 __le16 req_type; 10022 __le16 cmpl_ring; 10023 __le16 seq_id; 10024 __le16 target_id; 10025 __le64 resp_addr; 10026 __le64 host_dest_addr; 10027 __le32 host_buf_len; 10028 __le16 seq_no; 10029 u8 flags; 10030 #define DBG_COREDUMP_LIST_REQ_FLAGS_CRASHDUMP 0x1UL 10031 u8 unused_0[1]; 10032 }; 10033 10034 /* hwrm_dbg_coredump_list_output (size:128b/16B) */ 10035 struct hwrm_dbg_coredump_list_output { 10036 __le16 error_code; 10037 __le16 req_type; 10038 __le16 seq_id; 10039 __le16 resp_len; 10040 u8 flags; 10041 #define DBG_COREDUMP_LIST_RESP_FLAGS_MORE 0x1UL 10042 u8 unused_0; 10043 __le16 total_segments; 10044 __le16 data_len; 10045 u8 unused_1; 10046 u8 valid; 10047 }; 10048 10049 /* hwrm_dbg_coredump_initiate_input (size:256b/32B) */ 10050 struct hwrm_dbg_coredump_initiate_input { 10051 __le16 req_type; 10052 __le16 cmpl_ring; 10053 __le16 seq_id; 10054 __le16 target_id; 10055 __le64 resp_addr; 10056 __le16 component_id; 10057 __le16 segment_id; 10058 __le16 instance; 10059 __le16 unused_0; 10060 u8 seg_flags; 10061 #define DBG_COREDUMP_INITIATE_REQ_SEG_FLAGS_LIVE_DATA 0x1UL 10062 #define DBG_COREDUMP_INITIATE_REQ_SEG_FLAGS_CRASH_DATA 0x2UL 10063 #define DBG_COREDUMP_INITIATE_REQ_SEG_FLAGS_COLLECT_CTX_L1_CACHE 0x4UL 10064 u8 unused_1[7]; 10065 }; 10066 10067 /* hwrm_dbg_coredump_initiate_output (size:128b/16B) */ 10068 struct hwrm_dbg_coredump_initiate_output { 10069 __le16 error_code; 10070 __le16 req_type; 10071 __le16 seq_id; 10072 __le16 resp_len; 10073 u8 unused_0[7]; 10074 u8 valid; 10075 }; 10076 10077 /* coredump_data_hdr (size:128b/16B) */ 10078 struct coredump_data_hdr { 10079 __le32 address; 10080 __le32 flags_length; 10081 #define COREDUMP_DATA_HDR_FLAGS_LENGTH_ACTUAL_LEN_MASK 0xffffffUL 10082 #define COREDUMP_DATA_HDR_FLAGS_LENGTH_ACTUAL_LEN_SFT 0 10083 #define COREDUMP_DATA_HDR_FLAGS_LENGTH_INDIRECT_ACCESS 0x1000000UL 10084 __le32 instance; 10085 __le32 next_offset; 10086 }; 10087 10088 /* hwrm_dbg_coredump_retrieve_input (size:448b/56B) */ 10089 struct hwrm_dbg_coredump_retrieve_input { 10090 __le16 req_type; 10091 __le16 cmpl_ring; 10092 __le16 seq_id; 10093 __le16 target_id; 10094 __le64 resp_addr; 10095 __le64 host_dest_addr; 10096 __le32 host_buf_len; 10097 __le32 unused_0; 10098 __le16 component_id; 10099 __le16 segment_id; 10100 __le16 instance; 10101 __le16 unused_1; 10102 u8 seg_flags; 10103 u8 unused_2; 10104 __le16 unused_3; 10105 __le32 unused_4; 10106 __le32 seq_no; 10107 __le32 unused_5; 10108 }; 10109 10110 /* hwrm_dbg_coredump_retrieve_output (size:128b/16B) */ 10111 struct hwrm_dbg_coredump_retrieve_output { 10112 __le16 error_code; 10113 __le16 req_type; 10114 __le16 seq_id; 10115 __le16 resp_len; 10116 u8 flags; 10117 #define DBG_COREDUMP_RETRIEVE_RESP_FLAGS_MORE 0x1UL 10118 u8 unused_0; 10119 __le16 data_len; 10120 u8 unused_1[3]; 10121 u8 valid; 10122 }; 10123 10124 /* hwrm_dbg_ring_info_get_input (size:192b/24B) */ 10125 struct hwrm_dbg_ring_info_get_input { 10126 __le16 req_type; 10127 __le16 cmpl_ring; 10128 __le16 seq_id; 10129 __le16 target_id; 10130 __le64 resp_addr; 10131 u8 ring_type; 10132 #define DBG_RING_INFO_GET_REQ_RING_TYPE_L2_CMPL 0x0UL 10133 #define DBG_RING_INFO_GET_REQ_RING_TYPE_TX 0x1UL 10134 #define DBG_RING_INFO_GET_REQ_RING_TYPE_RX 0x2UL 10135 #define DBG_RING_INFO_GET_REQ_RING_TYPE_NQ 0x3UL 10136 #define DBG_RING_INFO_GET_REQ_RING_TYPE_LAST DBG_RING_INFO_GET_REQ_RING_TYPE_NQ 10137 u8 unused_0[3]; 10138 __le32 fw_ring_id; 10139 }; 10140 10141 /* hwrm_dbg_ring_info_get_output (size:192b/24B) */ 10142 struct hwrm_dbg_ring_info_get_output { 10143 __le16 error_code; 10144 __le16 req_type; 10145 __le16 seq_id; 10146 __le16 resp_len; 10147 __le32 producer_index; 10148 __le32 consumer_index; 10149 __le32 cag_vector_ctrl; 10150 __le16 st_tag; 10151 u8 unused_0; 10152 u8 valid; 10153 }; 10154 10155 /* hwrm_dbg_log_buffer_flush_input (size:192b/24B) */ 10156 struct hwrm_dbg_log_buffer_flush_input { 10157 __le16 req_type; 10158 __le16 cmpl_ring; 10159 __le16 seq_id; 10160 __le16 target_id; 10161 __le64 resp_addr; 10162 __le16 type; 10163 #define DBG_LOG_BUFFER_FLUSH_REQ_TYPE_SRT_TRACE 0x0UL 10164 #define DBG_LOG_BUFFER_FLUSH_REQ_TYPE_SRT2_TRACE 0x1UL 10165 #define DBG_LOG_BUFFER_FLUSH_REQ_TYPE_CRT_TRACE 0x2UL 10166 #define DBG_LOG_BUFFER_FLUSH_REQ_TYPE_CRT2_TRACE 0x3UL 10167 #define DBG_LOG_BUFFER_FLUSH_REQ_TYPE_RIGP0_TRACE 0x4UL 10168 #define DBG_LOG_BUFFER_FLUSH_REQ_TYPE_L2_HWRM_TRACE 0x5UL 10169 #define DBG_LOG_BUFFER_FLUSH_REQ_TYPE_ROCE_HWRM_TRACE 0x6UL 10170 #define DBG_LOG_BUFFER_FLUSH_REQ_TYPE_CA0_TRACE 0x7UL 10171 #define DBG_LOG_BUFFER_FLUSH_REQ_TYPE_CA1_TRACE 0x8UL 10172 #define DBG_LOG_BUFFER_FLUSH_REQ_TYPE_CA2_TRACE 0x9UL 10173 #define DBG_LOG_BUFFER_FLUSH_REQ_TYPE_RIGP1_TRACE 0xaUL 10174 #define DBG_LOG_BUFFER_FLUSH_REQ_TYPE_AFM_KONG_HWRM_TRACE 0xbUL 10175 #define DBG_LOG_BUFFER_FLUSH_REQ_TYPE_LAST DBG_LOG_BUFFER_FLUSH_REQ_TYPE_AFM_KONG_HWRM_TRACE 10176 u8 unused_1[2]; 10177 __le32 flags; 10178 #define DBG_LOG_BUFFER_FLUSH_REQ_FLAGS_FLUSH_ALL_BUFFERS 0x1UL 10179 }; 10180 10181 /* hwrm_dbg_log_buffer_flush_output (size:128b/16B) */ 10182 struct hwrm_dbg_log_buffer_flush_output { 10183 __le16 error_code; 10184 __le16 req_type; 10185 __le16 seq_id; 10186 __le16 resp_len; 10187 __le32 current_buffer_offset; 10188 u8 unused_1[3]; 10189 u8 valid; 10190 }; 10191 10192 /* hwrm_nvm_read_input (size:320b/40B) */ 10193 struct hwrm_nvm_read_input { 10194 __le16 req_type; 10195 __le16 cmpl_ring; 10196 __le16 seq_id; 10197 __le16 target_id; 10198 __le64 resp_addr; 10199 __le64 host_dest_addr; 10200 __le16 dir_idx; 10201 u8 unused_0[2]; 10202 __le32 offset; 10203 __le32 len; 10204 u8 unused_1[4]; 10205 }; 10206 10207 /* hwrm_nvm_read_output (size:128b/16B) */ 10208 struct hwrm_nvm_read_output { 10209 __le16 error_code; 10210 __le16 req_type; 10211 __le16 seq_id; 10212 __le16 resp_len; 10213 u8 unused_0[7]; 10214 u8 valid; 10215 }; 10216 10217 /* hwrm_nvm_get_dir_entries_input (size:192b/24B) */ 10218 struct hwrm_nvm_get_dir_entries_input { 10219 __le16 req_type; 10220 __le16 cmpl_ring; 10221 __le16 seq_id; 10222 __le16 target_id; 10223 __le64 resp_addr; 10224 __le64 host_dest_addr; 10225 }; 10226 10227 /* hwrm_nvm_get_dir_entries_output (size:128b/16B) */ 10228 struct hwrm_nvm_get_dir_entries_output { 10229 __le16 error_code; 10230 __le16 req_type; 10231 __le16 seq_id; 10232 __le16 resp_len; 10233 u8 unused_0[7]; 10234 u8 valid; 10235 }; 10236 10237 /* hwrm_nvm_get_dir_info_input (size:128b/16B) */ 10238 struct hwrm_nvm_get_dir_info_input { 10239 __le16 req_type; 10240 __le16 cmpl_ring; 10241 __le16 seq_id; 10242 __le16 target_id; 10243 __le64 resp_addr; 10244 }; 10245 10246 /* hwrm_nvm_get_dir_info_output (size:192b/24B) */ 10247 struct hwrm_nvm_get_dir_info_output { 10248 __le16 error_code; 10249 __le16 req_type; 10250 __le16 seq_id; 10251 __le16 resp_len; 10252 __le32 entries; 10253 __le32 entry_length; 10254 u8 unused_0[7]; 10255 u8 valid; 10256 }; 10257 10258 /* hwrm_nvm_write_input (size:448b/56B) */ 10259 struct hwrm_nvm_write_input { 10260 __le16 req_type; 10261 __le16 cmpl_ring; 10262 __le16 seq_id; 10263 __le16 target_id; 10264 __le64 resp_addr; 10265 __le64 host_src_addr; 10266 __le16 dir_type; 10267 __le16 dir_ordinal; 10268 __le16 dir_ext; 10269 __le16 dir_attr; 10270 __le32 dir_data_length; 10271 __le16 option; 10272 __le16 flags; 10273 #define NVM_WRITE_REQ_FLAGS_KEEP_ORIG_ACTIVE_IMG 0x1UL 10274 #define NVM_WRITE_REQ_FLAGS_BATCH_MODE 0x2UL 10275 #define NVM_WRITE_REQ_FLAGS_BATCH_LAST 0x4UL 10276 #define NVM_WRITE_REQ_FLAGS_SKIP_CRID_CHECK 0x8UL 10277 __le32 dir_item_length; 10278 __le32 offset; 10279 __le32 len; 10280 __le32 unused_0; 10281 }; 10282 10283 /* hwrm_nvm_write_output (size:128b/16B) */ 10284 struct hwrm_nvm_write_output { 10285 __le16 error_code; 10286 __le16 req_type; 10287 __le16 seq_id; 10288 __le16 resp_len; 10289 __le32 dir_item_length; 10290 __le16 dir_idx; 10291 u8 unused_0; 10292 u8 valid; 10293 }; 10294 10295 /* hwrm_nvm_write_cmd_err (size:64b/8B) */ 10296 struct hwrm_nvm_write_cmd_err { 10297 u8 code; 10298 #define NVM_WRITE_CMD_ERR_CODE_UNKNOWN 0x0UL 10299 #define NVM_WRITE_CMD_ERR_CODE_FRAG_ERR 0x1UL 10300 #define NVM_WRITE_CMD_ERR_CODE_NO_SPACE 0x2UL 10301 #define NVM_WRITE_CMD_ERR_CODE_LAST NVM_WRITE_CMD_ERR_CODE_NO_SPACE 10302 u8 unused_0[7]; 10303 }; 10304 10305 /* hwrm_nvm_modify_input (size:320b/40B) */ 10306 struct hwrm_nvm_modify_input { 10307 __le16 req_type; 10308 __le16 cmpl_ring; 10309 __le16 seq_id; 10310 __le16 target_id; 10311 __le64 resp_addr; 10312 __le64 host_src_addr; 10313 __le16 dir_idx; 10314 __le16 flags; 10315 #define NVM_MODIFY_REQ_FLAGS_BATCH_MODE 0x1UL 10316 #define NVM_MODIFY_REQ_FLAGS_BATCH_LAST 0x2UL 10317 __le32 offset; 10318 __le32 len; 10319 u8 unused_1[4]; 10320 }; 10321 10322 /* hwrm_nvm_modify_output (size:128b/16B) */ 10323 struct hwrm_nvm_modify_output { 10324 __le16 error_code; 10325 __le16 req_type; 10326 __le16 seq_id; 10327 __le16 resp_len; 10328 u8 unused_0[7]; 10329 u8 valid; 10330 }; 10331 10332 /* hwrm_nvm_find_dir_entry_input (size:256b/32B) */ 10333 struct hwrm_nvm_find_dir_entry_input { 10334 __le16 req_type; 10335 __le16 cmpl_ring; 10336 __le16 seq_id; 10337 __le16 target_id; 10338 __le64 resp_addr; 10339 __le32 enables; 10340 #define NVM_FIND_DIR_ENTRY_REQ_ENABLES_DIR_IDX_VALID 0x1UL 10341 __le16 dir_idx; 10342 __le16 dir_type; 10343 __le16 dir_ordinal; 10344 __le16 dir_ext; 10345 u8 opt_ordinal; 10346 #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_MASK 0x3UL 10347 #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_SFT 0 10348 #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_EQ 0x0UL 10349 #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_GE 0x1UL 10350 #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_GT 0x2UL 10351 #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_LAST NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_GT 10352 u8 unused_0[3]; 10353 }; 10354 10355 /* hwrm_nvm_find_dir_entry_output (size:256b/32B) */ 10356 struct hwrm_nvm_find_dir_entry_output { 10357 __le16 error_code; 10358 __le16 req_type; 10359 __le16 seq_id; 10360 __le16 resp_len; 10361 __le32 dir_item_length; 10362 __le32 dir_data_length; 10363 __le32 fw_ver; 10364 __le16 dir_ordinal; 10365 __le16 dir_idx; 10366 u8 unused_0[7]; 10367 u8 valid; 10368 }; 10369 10370 /* hwrm_nvm_erase_dir_entry_input (size:192b/24B) */ 10371 struct hwrm_nvm_erase_dir_entry_input { 10372 __le16 req_type; 10373 __le16 cmpl_ring; 10374 __le16 seq_id; 10375 __le16 target_id; 10376 __le64 resp_addr; 10377 __le16 dir_idx; 10378 u8 unused_0[6]; 10379 }; 10380 10381 /* hwrm_nvm_erase_dir_entry_output (size:128b/16B) */ 10382 struct hwrm_nvm_erase_dir_entry_output { 10383 __le16 error_code; 10384 __le16 req_type; 10385 __le16 seq_id; 10386 __le16 resp_len; 10387 u8 unused_0[7]; 10388 u8 valid; 10389 }; 10390 10391 /* hwrm_nvm_get_dev_info_input (size:192b/24B) */ 10392 struct hwrm_nvm_get_dev_info_input { 10393 __le16 req_type; 10394 __le16 cmpl_ring; 10395 __le16 seq_id; 10396 __le16 target_id; 10397 __le64 resp_addr; 10398 u8 flags; 10399 #define NVM_GET_DEV_INFO_REQ_FLAGS_SECURITY_SOC_NVM 0x1UL 10400 u8 unused_0[7]; 10401 }; 10402 10403 /* hwrm_nvm_get_dev_info_output (size:768b/96B) */ 10404 struct hwrm_nvm_get_dev_info_output { 10405 __le16 error_code; 10406 __le16 req_type; 10407 __le16 seq_id; 10408 __le16 resp_len; 10409 __le16 manufacturer_id; 10410 __le16 device_id; 10411 __le32 sector_size; 10412 __le32 nvram_size; 10413 __le32 reserved_size; 10414 __le32 available_size; 10415 u8 nvm_cfg_ver_maj; 10416 u8 nvm_cfg_ver_min; 10417 u8 nvm_cfg_ver_upd; 10418 u8 flags; 10419 #define NVM_GET_DEV_INFO_RESP_FLAGS_FW_VER_VALID 0x1UL 10420 char pkg_name[16]; 10421 __le16 hwrm_fw_major; 10422 __le16 hwrm_fw_minor; 10423 __le16 hwrm_fw_build; 10424 __le16 hwrm_fw_patch; 10425 __le16 mgmt_fw_major; 10426 __le16 mgmt_fw_minor; 10427 __le16 mgmt_fw_build; 10428 __le16 mgmt_fw_patch; 10429 __le16 roce_fw_major; 10430 __le16 roce_fw_minor; 10431 __le16 roce_fw_build; 10432 __le16 roce_fw_patch; 10433 __le16 netctrl_fw_major; 10434 __le16 netctrl_fw_minor; 10435 __le16 netctrl_fw_build; 10436 __le16 netctrl_fw_patch; 10437 __le16 srt2_fw_major; 10438 __le16 srt2_fw_minor; 10439 __le16 srt2_fw_build; 10440 __le16 srt2_fw_patch; 10441 u8 unused_0[7]; 10442 u8 valid; 10443 }; 10444 10445 /* hwrm_nvm_mod_dir_entry_input (size:256b/32B) */ 10446 struct hwrm_nvm_mod_dir_entry_input { 10447 __le16 req_type; 10448 __le16 cmpl_ring; 10449 __le16 seq_id; 10450 __le16 target_id; 10451 __le64 resp_addr; 10452 __le32 enables; 10453 #define NVM_MOD_DIR_ENTRY_REQ_ENABLES_CHECKSUM 0x1UL 10454 __le16 dir_idx; 10455 __le16 dir_ordinal; 10456 __le16 dir_ext; 10457 __le16 dir_attr; 10458 __le32 checksum; 10459 }; 10460 10461 /* hwrm_nvm_mod_dir_entry_output (size:128b/16B) */ 10462 struct hwrm_nvm_mod_dir_entry_output { 10463 __le16 error_code; 10464 __le16 req_type; 10465 __le16 seq_id; 10466 __le16 resp_len; 10467 u8 unused_0[7]; 10468 u8 valid; 10469 }; 10470 10471 /* hwrm_nvm_verify_update_input (size:192b/24B) */ 10472 struct hwrm_nvm_verify_update_input { 10473 __le16 req_type; 10474 __le16 cmpl_ring; 10475 __le16 seq_id; 10476 __le16 target_id; 10477 __le64 resp_addr; 10478 __le16 dir_type; 10479 __le16 dir_ordinal; 10480 __le16 dir_ext; 10481 u8 unused_0[2]; 10482 }; 10483 10484 /* hwrm_nvm_verify_update_output (size:128b/16B) */ 10485 struct hwrm_nvm_verify_update_output { 10486 __le16 error_code; 10487 __le16 req_type; 10488 __le16 seq_id; 10489 __le16 resp_len; 10490 u8 unused_0[7]; 10491 u8 valid; 10492 }; 10493 10494 /* hwrm_nvm_install_update_input (size:192b/24B) */ 10495 struct hwrm_nvm_install_update_input { 10496 __le16 req_type; 10497 __le16 cmpl_ring; 10498 __le16 seq_id; 10499 __le16 target_id; 10500 __le64 resp_addr; 10501 __le32 install_type; 10502 #define NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_NORMAL 0x0UL 10503 #define NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_ALL 0xffffffffUL 10504 #define NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_LAST NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_ALL 10505 __le16 flags; 10506 #define NVM_INSTALL_UPDATE_REQ_FLAGS_ERASE_UNUSED_SPACE 0x1UL 10507 #define NVM_INSTALL_UPDATE_REQ_FLAGS_REMOVE_UNUSED_PKG 0x2UL 10508 #define NVM_INSTALL_UPDATE_REQ_FLAGS_ALLOWED_TO_DEFRAG 0x4UL 10509 #define NVM_INSTALL_UPDATE_REQ_FLAGS_VERIFY_ONLY 0x8UL 10510 u8 unused_0[2]; 10511 }; 10512 10513 /* hwrm_nvm_install_update_output (size:192b/24B) */ 10514 struct hwrm_nvm_install_update_output { 10515 __le16 error_code; 10516 __le16 req_type; 10517 __le16 seq_id; 10518 __le16 resp_len; 10519 __le64 installed_items; 10520 u8 result; 10521 #define NVM_INSTALL_UPDATE_RESP_RESULT_SUCCESS 0x0UL 10522 #define NVM_INSTALL_UPDATE_RESP_RESULT_FAILURE 0xffUL 10523 #define NVM_INSTALL_UPDATE_RESP_RESULT_MALLOC_FAILURE 0xfdUL 10524 #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_INDEX_PARAMETER 0xfbUL 10525 #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_TYPE_PARAMETER 0xf3UL 10526 #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_PREREQUISITE 0xf2UL 10527 #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_FILE_HEADER 0xecUL 10528 #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_SIGNATURE 0xebUL 10529 #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_PROP_STREAM 0xeaUL 10530 #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_PROP_LENGTH 0xe9UL 10531 #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_MANIFEST 0xe8UL 10532 #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_TRAILER 0xe7UL 10533 #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_CHECKSUM 0xe6UL 10534 #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_ITEM_CHECKSUM 0xe5UL 10535 #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_DATA_LENGTH 0xe4UL 10536 #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_DIRECTIVE 0xe1UL 10537 #define NVM_INSTALL_UPDATE_RESP_RESULT_UNSUPPORTED_CHIP_REV 0xceUL 10538 #define NVM_INSTALL_UPDATE_RESP_RESULT_UNSUPPORTED_DEVICE_ID 0xcdUL 10539 #define NVM_INSTALL_UPDATE_RESP_RESULT_UNSUPPORTED_SUBSYS_VENDOR 0xccUL 10540 #define NVM_INSTALL_UPDATE_RESP_RESULT_UNSUPPORTED_SUBSYS_ID 0xcbUL 10541 #define NVM_INSTALL_UPDATE_RESP_RESULT_UNSUPPORTED_PLATFORM 0xc5UL 10542 #define NVM_INSTALL_UPDATE_RESP_RESULT_DUPLICATE_ITEM 0xc4UL 10543 #define NVM_INSTALL_UPDATE_RESP_RESULT_ZERO_LENGTH_ITEM 0xc3UL 10544 #define NVM_INSTALL_UPDATE_RESP_RESULT_INSTALL_CHECKSUM_ERROR 0xb9UL 10545 #define NVM_INSTALL_UPDATE_RESP_RESULT_INSTALL_DATA_ERROR 0xb8UL 10546 #define NVM_INSTALL_UPDATE_RESP_RESULT_INSTALL_AUTHENTICATION_ERROR 0xb7UL 10547 #define NVM_INSTALL_UPDATE_RESP_RESULT_ITEM_NOT_FOUND 0xb0UL 10548 #define NVM_INSTALL_UPDATE_RESP_RESULT_ITEM_LOCKED 0xa7UL 10549 #define NVM_INSTALL_UPDATE_RESP_RESULT_LAST NVM_INSTALL_UPDATE_RESP_RESULT_ITEM_LOCKED 10550 u8 problem_item; 10551 #define NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_NONE 0x0UL 10552 #define NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_PACKAGE 0xffUL 10553 #define NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_LAST NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_PACKAGE 10554 u8 reset_required; 10555 #define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_NONE 0x0UL 10556 #define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_PCI 0x1UL 10557 #define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_POWER 0x2UL 10558 #define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_LAST NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_POWER 10559 u8 unused_0[4]; 10560 u8 valid; 10561 }; 10562 10563 /* hwrm_nvm_install_update_cmd_err (size:64b/8B) */ 10564 struct hwrm_nvm_install_update_cmd_err { 10565 u8 code; 10566 #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_UNKNOWN 0x0UL 10567 #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_FRAG_ERR 0x1UL 10568 #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_NO_SPACE 0x2UL 10569 #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_ANTI_ROLLBACK 0x3UL 10570 #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_NO_VOLTREG_SUPPORT 0x4UL 10571 #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_LAST NVM_INSTALL_UPDATE_CMD_ERR_CODE_NO_VOLTREG_SUPPORT 10572 u8 unused_0[7]; 10573 }; 10574 10575 /* hwrm_nvm_get_variable_input (size:320b/40B) */ 10576 struct hwrm_nvm_get_variable_input { 10577 __le16 req_type; 10578 __le16 cmpl_ring; 10579 __le16 seq_id; 10580 __le16 target_id; 10581 __le64 resp_addr; 10582 __le64 dest_data_addr; 10583 __le16 data_len; 10584 __le16 option_num; 10585 #define NVM_GET_VARIABLE_REQ_OPTION_NUM_RSVD_0 0x0UL 10586 #define NVM_GET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF 0xffffUL 10587 #define NVM_GET_VARIABLE_REQ_OPTION_NUM_LAST NVM_GET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF 10588 __le16 dimensions; 10589 __le16 index_0; 10590 __le16 index_1; 10591 __le16 index_2; 10592 __le16 index_3; 10593 u8 flags; 10594 #define NVM_GET_VARIABLE_REQ_FLAGS_FACTORY_DFLT 0x1UL 10595 u8 unused_0; 10596 }; 10597 10598 /* hwrm_nvm_get_variable_output (size:128b/16B) */ 10599 struct hwrm_nvm_get_variable_output { 10600 __le16 error_code; 10601 __le16 req_type; 10602 __le16 seq_id; 10603 __le16 resp_len; 10604 __le16 data_len; 10605 __le16 option_num; 10606 #define NVM_GET_VARIABLE_RESP_OPTION_NUM_RSVD_0 0x0UL 10607 #define NVM_GET_VARIABLE_RESP_OPTION_NUM_RSVD_FFFF 0xffffUL 10608 #define NVM_GET_VARIABLE_RESP_OPTION_NUM_LAST NVM_GET_VARIABLE_RESP_OPTION_NUM_RSVD_FFFF 10609 u8 unused_0[3]; 10610 u8 valid; 10611 }; 10612 10613 /* hwrm_nvm_get_variable_cmd_err (size:64b/8B) */ 10614 struct hwrm_nvm_get_variable_cmd_err { 10615 u8 code; 10616 #define NVM_GET_VARIABLE_CMD_ERR_CODE_UNKNOWN 0x0UL 10617 #define NVM_GET_VARIABLE_CMD_ERR_CODE_VAR_NOT_EXIST 0x1UL 10618 #define NVM_GET_VARIABLE_CMD_ERR_CODE_CORRUPT_VAR 0x2UL 10619 #define NVM_GET_VARIABLE_CMD_ERR_CODE_LEN_TOO_SHORT 0x3UL 10620 #define NVM_GET_VARIABLE_CMD_ERR_CODE_LAST NVM_GET_VARIABLE_CMD_ERR_CODE_LEN_TOO_SHORT 10621 u8 unused_0[7]; 10622 }; 10623 10624 /* hwrm_nvm_set_variable_input (size:320b/40B) */ 10625 struct hwrm_nvm_set_variable_input { 10626 __le16 req_type; 10627 __le16 cmpl_ring; 10628 __le16 seq_id; 10629 __le16 target_id; 10630 __le64 resp_addr; 10631 __le64 src_data_addr; 10632 __le16 data_len; 10633 __le16 option_num; 10634 #define NVM_SET_VARIABLE_REQ_OPTION_NUM_RSVD_0 0x0UL 10635 #define NVM_SET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF 0xffffUL 10636 #define NVM_SET_VARIABLE_REQ_OPTION_NUM_LAST NVM_SET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF 10637 __le16 dimensions; 10638 __le16 index_0; 10639 __le16 index_1; 10640 __le16 index_2; 10641 __le16 index_3; 10642 u8 flags; 10643 #define NVM_SET_VARIABLE_REQ_FLAGS_FORCE_FLUSH 0x1UL 10644 #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_MASK 0xeUL 10645 #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_SFT 1 10646 #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_NONE (0x0UL << 1) 10647 #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_HMAC_SHA1 (0x1UL << 1) 10648 #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_AES256 (0x2UL << 1) 10649 #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_HMAC_SHA1_AUTH (0x3UL << 1) 10650 #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_LAST NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_HMAC_SHA1_AUTH 10651 #define NVM_SET_VARIABLE_REQ_FLAGS_FLAGS_UNUSED_0_MASK 0x70UL 10652 #define NVM_SET_VARIABLE_REQ_FLAGS_FLAGS_UNUSED_0_SFT 4 10653 #define NVM_SET_VARIABLE_REQ_FLAGS_FACTORY_DEFAULT 0x80UL 10654 u8 unused_0; 10655 }; 10656 10657 /* hwrm_nvm_set_variable_output (size:128b/16B) */ 10658 struct hwrm_nvm_set_variable_output { 10659 __le16 error_code; 10660 __le16 req_type; 10661 __le16 seq_id; 10662 __le16 resp_len; 10663 u8 unused_0[7]; 10664 u8 valid; 10665 }; 10666 10667 /* hwrm_nvm_set_variable_cmd_err (size:64b/8B) */ 10668 struct hwrm_nvm_set_variable_cmd_err { 10669 u8 code; 10670 #define NVM_SET_VARIABLE_CMD_ERR_CODE_UNKNOWN 0x0UL 10671 #define NVM_SET_VARIABLE_CMD_ERR_CODE_VAR_NOT_EXIST 0x1UL 10672 #define NVM_SET_VARIABLE_CMD_ERR_CODE_CORRUPT_VAR 0x2UL 10673 #define NVM_SET_VARIABLE_CMD_ERR_CODE_LAST NVM_SET_VARIABLE_CMD_ERR_CODE_CORRUPT_VAR 10674 u8 unused_0[7]; 10675 }; 10676 10677 /* hwrm_selftest_qlist_input (size:128b/16B) */ 10678 struct hwrm_selftest_qlist_input { 10679 __le16 req_type; 10680 __le16 cmpl_ring; 10681 __le16 seq_id; 10682 __le16 target_id; 10683 __le64 resp_addr; 10684 }; 10685 10686 /* hwrm_selftest_qlist_output (size:2240b/280B) */ 10687 struct hwrm_selftest_qlist_output { 10688 __le16 error_code; 10689 __le16 req_type; 10690 __le16 seq_id; 10691 __le16 resp_len; 10692 u8 num_tests; 10693 u8 available_tests; 10694 #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_NVM_TEST 0x1UL 10695 #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_LINK_TEST 0x2UL 10696 #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_REGISTER_TEST 0x4UL 10697 #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_MEMORY_TEST 0x8UL 10698 #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_PCIE_SERDES_TEST 0x10UL 10699 #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_ETHERNET_SERDES_TEST 0x20UL 10700 u8 offline_tests; 10701 #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_NVM_TEST 0x1UL 10702 #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_LINK_TEST 0x2UL 10703 #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_REGISTER_TEST 0x4UL 10704 #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_MEMORY_TEST 0x8UL 10705 #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_PCIE_SERDES_TEST 0x10UL 10706 #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_ETHERNET_SERDES_TEST 0x20UL 10707 u8 unused_0; 10708 __le16 test_timeout; 10709 u8 unused_1[2]; 10710 char test_name[8][32]; 10711 u8 eyescope_target_BER_support; 10712 #define SELFTEST_QLIST_RESP_EYESCOPE_TARGET_BER_SUPPORT_BER_1E8_SUPPORTED 0x0UL 10713 #define SELFTEST_QLIST_RESP_EYESCOPE_TARGET_BER_SUPPORT_BER_1E9_SUPPORTED 0x1UL 10714 #define SELFTEST_QLIST_RESP_EYESCOPE_TARGET_BER_SUPPORT_BER_1E10_SUPPORTED 0x2UL 10715 #define SELFTEST_QLIST_RESP_EYESCOPE_TARGET_BER_SUPPORT_BER_1E11_SUPPORTED 0x3UL 10716 #define SELFTEST_QLIST_RESP_EYESCOPE_TARGET_BER_SUPPORT_BER_1E12_SUPPORTED 0x4UL 10717 #define SELFTEST_QLIST_RESP_EYESCOPE_TARGET_BER_SUPPORT_LAST SELFTEST_QLIST_RESP_EYESCOPE_TARGET_BER_SUPPORT_BER_1E12_SUPPORTED 10718 u8 unused_2[6]; 10719 u8 valid; 10720 }; 10721 10722 /* hwrm_selftest_exec_input (size:192b/24B) */ 10723 struct hwrm_selftest_exec_input { 10724 __le16 req_type; 10725 __le16 cmpl_ring; 10726 __le16 seq_id; 10727 __le16 target_id; 10728 __le64 resp_addr; 10729 u8 flags; 10730 #define SELFTEST_EXEC_REQ_FLAGS_NVM_TEST 0x1UL 10731 #define SELFTEST_EXEC_REQ_FLAGS_LINK_TEST 0x2UL 10732 #define SELFTEST_EXEC_REQ_FLAGS_REGISTER_TEST 0x4UL 10733 #define SELFTEST_EXEC_REQ_FLAGS_MEMORY_TEST 0x8UL 10734 #define SELFTEST_EXEC_REQ_FLAGS_PCIE_SERDES_TEST 0x10UL 10735 #define SELFTEST_EXEC_REQ_FLAGS_ETHERNET_SERDES_TEST 0x20UL 10736 u8 unused_0[7]; 10737 }; 10738 10739 /* hwrm_selftest_exec_output (size:128b/16B) */ 10740 struct hwrm_selftest_exec_output { 10741 __le16 error_code; 10742 __le16 req_type; 10743 __le16 seq_id; 10744 __le16 resp_len; 10745 u8 requested_tests; 10746 #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_NVM_TEST 0x1UL 10747 #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_LINK_TEST 0x2UL 10748 #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_REGISTER_TEST 0x4UL 10749 #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_MEMORY_TEST 0x8UL 10750 #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_PCIE_SERDES_TEST 0x10UL 10751 #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_ETHERNET_SERDES_TEST 0x20UL 10752 u8 test_success; 10753 #define SELFTEST_EXEC_RESP_TEST_SUCCESS_NVM_TEST 0x1UL 10754 #define SELFTEST_EXEC_RESP_TEST_SUCCESS_LINK_TEST 0x2UL 10755 #define SELFTEST_EXEC_RESP_TEST_SUCCESS_REGISTER_TEST 0x4UL 10756 #define SELFTEST_EXEC_RESP_TEST_SUCCESS_MEMORY_TEST 0x8UL 10757 #define SELFTEST_EXEC_RESP_TEST_SUCCESS_PCIE_SERDES_TEST 0x10UL 10758 #define SELFTEST_EXEC_RESP_TEST_SUCCESS_ETHERNET_SERDES_TEST 0x20UL 10759 u8 unused_0[5]; 10760 u8 valid; 10761 }; 10762 10763 /* hwrm_selftest_irq_input (size:128b/16B) */ 10764 struct hwrm_selftest_irq_input { 10765 __le16 req_type; 10766 __le16 cmpl_ring; 10767 __le16 seq_id; 10768 __le16 target_id; 10769 __le64 resp_addr; 10770 }; 10771 10772 /* hwrm_selftest_irq_output (size:128b/16B) */ 10773 struct hwrm_selftest_irq_output { 10774 __le16 error_code; 10775 __le16 req_type; 10776 __le16 seq_id; 10777 __le16 resp_len; 10778 u8 unused_0[7]; 10779 u8 valid; 10780 }; 10781 10782 /* dbc_dbc (size:64b/8B) */ 10783 struct dbc_dbc { 10784 __le32 index; 10785 #define DBC_DBC_INDEX_MASK 0xffffffUL 10786 #define DBC_DBC_INDEX_SFT 0 10787 #define DBC_DBC_EPOCH 0x1000000UL 10788 #define DBC_DBC_TOGGLE_MASK 0x6000000UL 10789 #define DBC_DBC_TOGGLE_SFT 25 10790 __le32 type_path_xid; 10791 #define DBC_DBC_XID_MASK 0xfffffUL 10792 #define DBC_DBC_XID_SFT 0 10793 #define DBC_DBC_PATH_MASK 0x3000000UL 10794 #define DBC_DBC_PATH_SFT 24 10795 #define DBC_DBC_PATH_ROCE (0x0UL << 24) 10796 #define DBC_DBC_PATH_L2 (0x1UL << 24) 10797 #define DBC_DBC_PATH_ENGINE (0x2UL << 24) 10798 #define DBC_DBC_PATH_LAST DBC_DBC_PATH_ENGINE 10799 #define DBC_DBC_VALID 0x4000000UL 10800 #define DBC_DBC_DEBUG_TRACE 0x8000000UL 10801 #define DBC_DBC_TYPE_MASK 0xf0000000UL 10802 #define DBC_DBC_TYPE_SFT 28 10803 #define DBC_DBC_TYPE_SQ (0x0UL << 28) 10804 #define DBC_DBC_TYPE_RQ (0x1UL << 28) 10805 #define DBC_DBC_TYPE_SRQ (0x2UL << 28) 10806 #define DBC_DBC_TYPE_SRQ_ARM (0x3UL << 28) 10807 #define DBC_DBC_TYPE_CQ (0x4UL << 28) 10808 #define DBC_DBC_TYPE_CQ_ARMSE (0x5UL << 28) 10809 #define DBC_DBC_TYPE_CQ_ARMALL (0x6UL << 28) 10810 #define DBC_DBC_TYPE_CQ_ARMENA (0x7UL << 28) 10811 #define DBC_DBC_TYPE_SRQ_ARMENA (0x8UL << 28) 10812 #define DBC_DBC_TYPE_CQ_CUTOFF_ACK (0x9UL << 28) 10813 #define DBC_DBC_TYPE_NQ (0xaUL << 28) 10814 #define DBC_DBC_TYPE_NQ_ARM (0xbUL << 28) 10815 #define DBC_DBC_TYPE_NQ_MASK (0xeUL << 28) 10816 #define DBC_DBC_TYPE_NULL (0xfUL << 28) 10817 #define DBC_DBC_TYPE_LAST DBC_DBC_TYPE_NULL 10818 }; 10819 10820 /* db_push_start (size:64b/8B) */ 10821 struct db_push_start { 10822 u64 db; 10823 #define DB_PUSH_START_DB_INDEX_MASK 0xffffffUL 10824 #define DB_PUSH_START_DB_INDEX_SFT 0 10825 #define DB_PUSH_START_DB_PI_LO_MASK 0xff000000UL 10826 #define DB_PUSH_START_DB_PI_LO_SFT 24 10827 #define DB_PUSH_START_DB_XID_MASK 0xfffff00000000ULL 10828 #define DB_PUSH_START_DB_XID_SFT 32 10829 #define DB_PUSH_START_DB_PI_HI_MASK 0xf0000000000000ULL 10830 #define DB_PUSH_START_DB_PI_HI_SFT 52 10831 #define DB_PUSH_START_DB_TYPE_MASK 0xf000000000000000ULL 10832 #define DB_PUSH_START_DB_TYPE_SFT 60 10833 #define DB_PUSH_START_DB_TYPE_PUSH_START (0xcULL << 60) 10834 #define DB_PUSH_START_DB_TYPE_PUSH_END (0xdULL << 60) 10835 #define DB_PUSH_START_DB_TYPE_LAST DB_PUSH_START_DB_TYPE_PUSH_END 10836 }; 10837 10838 /* db_push_end (size:64b/8B) */ 10839 struct db_push_end { 10840 u64 db; 10841 #define DB_PUSH_END_DB_INDEX_MASK 0xffffffUL 10842 #define DB_PUSH_END_DB_INDEX_SFT 0 10843 #define DB_PUSH_END_DB_PI_LO_MASK 0xff000000UL 10844 #define DB_PUSH_END_DB_PI_LO_SFT 24 10845 #define DB_PUSH_END_DB_XID_MASK 0xfffff00000000ULL 10846 #define DB_PUSH_END_DB_XID_SFT 32 10847 #define DB_PUSH_END_DB_PI_HI_MASK 0xf0000000000000ULL 10848 #define DB_PUSH_END_DB_PI_HI_SFT 52 10849 #define DB_PUSH_END_DB_PATH_MASK 0x300000000000000ULL 10850 #define DB_PUSH_END_DB_PATH_SFT 56 10851 #define DB_PUSH_END_DB_PATH_ROCE (0x0ULL << 56) 10852 #define DB_PUSH_END_DB_PATH_L2 (0x1ULL << 56) 10853 #define DB_PUSH_END_DB_PATH_ENGINE (0x2ULL << 56) 10854 #define DB_PUSH_END_DB_PATH_LAST DB_PUSH_END_DB_PATH_ENGINE 10855 #define DB_PUSH_END_DB_DEBUG_TRACE 0x800000000000000ULL 10856 #define DB_PUSH_END_DB_TYPE_MASK 0xf000000000000000ULL 10857 #define DB_PUSH_END_DB_TYPE_SFT 60 10858 #define DB_PUSH_END_DB_TYPE_PUSH_START (0xcULL << 60) 10859 #define DB_PUSH_END_DB_TYPE_PUSH_END (0xdULL << 60) 10860 #define DB_PUSH_END_DB_TYPE_LAST DB_PUSH_END_DB_TYPE_PUSH_END 10861 }; 10862 10863 /* db_push_info (size:64b/8B) */ 10864 struct db_push_info { 10865 u32 push_size_push_index; 10866 #define DB_PUSH_INFO_PUSH_INDEX_MASK 0xffffffUL 10867 #define DB_PUSH_INFO_PUSH_INDEX_SFT 0 10868 #define DB_PUSH_INFO_PUSH_SIZE_MASK 0x1f000000UL 10869 #define DB_PUSH_INFO_PUSH_SIZE_SFT 24 10870 u32 reserved32; 10871 }; 10872 10873 /* fw_status_reg (size:32b/4B) */ 10874 struct fw_status_reg { 10875 u32 fw_status; 10876 #define FW_STATUS_REG_CODE_MASK 0xffffUL 10877 #define FW_STATUS_REG_CODE_SFT 0 10878 #define FW_STATUS_REG_CODE_READY 0x8000UL 10879 #define FW_STATUS_REG_CODE_LAST FW_STATUS_REG_CODE_READY 10880 #define FW_STATUS_REG_IMAGE_DEGRADED 0x10000UL 10881 #define FW_STATUS_REG_RECOVERABLE 0x20000UL 10882 #define FW_STATUS_REG_CRASHDUMP_ONGOING 0x40000UL 10883 #define FW_STATUS_REG_CRASHDUMP_COMPLETE 0x80000UL 10884 #define FW_STATUS_REG_SHUTDOWN 0x100000UL 10885 #define FW_STATUS_REG_CRASHED_NO_MASTER 0x200000UL 10886 #define FW_STATUS_REG_RECOVERING 0x400000UL 10887 #define FW_STATUS_REG_MANU_DEBUG_STATUS 0x800000UL 10888 }; 10889 10890 /* hcomm_status (size:64b/8B) */ 10891 struct hcomm_status { 10892 u32 sig_ver; 10893 #define HCOMM_STATUS_VER_MASK 0xffUL 10894 #define HCOMM_STATUS_VER_SFT 0 10895 #define HCOMM_STATUS_VER_LATEST 0x1UL 10896 #define HCOMM_STATUS_VER_LAST HCOMM_STATUS_VER_LATEST 10897 #define HCOMM_STATUS_SIGNATURE_MASK 0xffffff00UL 10898 #define HCOMM_STATUS_SIGNATURE_SFT 8 10899 #define HCOMM_STATUS_SIGNATURE_VAL (0x484353UL << 8) 10900 #define HCOMM_STATUS_SIGNATURE_LAST HCOMM_STATUS_SIGNATURE_VAL 10901 u32 fw_status_loc; 10902 #define HCOMM_STATUS_TRUE_ADDR_SPACE_MASK 0x3UL 10903 #define HCOMM_STATUS_TRUE_ADDR_SPACE_SFT 0 10904 #define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_PCIE_CFG 0x0UL 10905 #define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_GRC 0x1UL 10906 #define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_BAR0 0x2UL 10907 #define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_BAR1 0x3UL 10908 #define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_LAST HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_BAR1 10909 #define HCOMM_STATUS_TRUE_OFFSET_MASK 0xfffffffcUL 10910 #define HCOMM_STATUS_TRUE_OFFSET_SFT 2 10911 }; 10912 #define HCOMM_STATUS_STRUCT_LOC 0x31001F0UL 10913 10914 #endif /* _BNXT_HSI_H_ */ 10915