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-2019 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_ENGINE_CKV_ALIAS_ECC_PUBLIC_KEY 0x8001UL 44 #define TLV_TYPE_ENGINE_CKV_IV 0x8003UL 45 #define TLV_TYPE_ENGINE_CKV_AUTH_TAG 0x8004UL 46 #define TLV_TYPE_ENGINE_CKV_CIPHERTEXT 0x8005UL 47 #define TLV_TYPE_ENGINE_CKV_HOST_ALGORITHMS 0x8006UL 48 #define TLV_TYPE_ENGINE_CKV_HOST_ECC_PUBLIC_KEY 0x8007UL 49 #define TLV_TYPE_ENGINE_CKV_ECDSA_SIGNATURE 0x8008UL 50 #define TLV_TYPE_ENGINE_CKV_FW_ECC_PUBLIC_KEY 0x8009UL 51 #define TLV_TYPE_ENGINE_CKV_FW_ALGORITHMS 0x800aUL 52 #define TLV_TYPE_LAST TLV_TYPE_ENGINE_CKV_FW_ALGORITHMS 53 54 55 /* tlv (size:64b/8B) */ 56 struct tlv { 57 __le16 cmd_discr; 58 u8 reserved_8b; 59 u8 flags; 60 #define TLV_FLAGS_MORE 0x1UL 61 #define TLV_FLAGS_MORE_LAST 0x0UL 62 #define TLV_FLAGS_MORE_NOT_LAST 0x1UL 63 #define TLV_FLAGS_REQUIRED 0x2UL 64 #define TLV_FLAGS_REQUIRED_NO (0x0UL << 1) 65 #define TLV_FLAGS_REQUIRED_YES (0x1UL << 1) 66 #define TLV_FLAGS_REQUIRED_LAST TLV_FLAGS_REQUIRED_YES 67 __le16 tlv_type; 68 __le16 length; 69 }; 70 71 /* input (size:128b/16B) */ 72 struct input { 73 __le16 req_type; 74 __le16 cmpl_ring; 75 __le16 seq_id; 76 __le16 target_id; 77 __le64 resp_addr; 78 }; 79 80 /* output (size:64b/8B) */ 81 struct output { 82 __le16 error_code; 83 __le16 req_type; 84 __le16 seq_id; 85 __le16 resp_len; 86 }; 87 88 /* hwrm_short_input (size:128b/16B) */ 89 struct hwrm_short_input { 90 __le16 req_type; 91 __le16 signature; 92 #define SHORT_REQ_SIGNATURE_SHORT_CMD 0x4321UL 93 #define SHORT_REQ_SIGNATURE_LAST SHORT_REQ_SIGNATURE_SHORT_CMD 94 __le16 target_id; 95 #define SHORT_REQ_TARGET_ID_DEFAULT 0x0UL 96 #define SHORT_REQ_TARGET_ID_TOOLS 0xfffdUL 97 #define SHORT_REQ_TARGET_ID_LAST SHORT_REQ_TARGET_ID_TOOLS 98 __le16 size; 99 __le64 req_addr; 100 }; 101 102 /* cmd_nums (size:64b/8B) */ 103 struct cmd_nums { 104 __le16 req_type; 105 #define HWRM_VER_GET 0x0UL 106 #define HWRM_ERROR_RECOVERY_QCFG 0xcUL 107 #define HWRM_FUNC_DRV_IF_CHANGE 0xdUL 108 #define HWRM_FUNC_BUF_UNRGTR 0xeUL 109 #define HWRM_FUNC_VF_CFG 0xfUL 110 #define HWRM_RESERVED1 0x10UL 111 #define HWRM_FUNC_RESET 0x11UL 112 #define HWRM_FUNC_GETFID 0x12UL 113 #define HWRM_FUNC_VF_ALLOC 0x13UL 114 #define HWRM_FUNC_VF_FREE 0x14UL 115 #define HWRM_FUNC_QCAPS 0x15UL 116 #define HWRM_FUNC_QCFG 0x16UL 117 #define HWRM_FUNC_CFG 0x17UL 118 #define HWRM_FUNC_QSTATS 0x18UL 119 #define HWRM_FUNC_CLR_STATS 0x19UL 120 #define HWRM_FUNC_DRV_UNRGTR 0x1aUL 121 #define HWRM_FUNC_VF_RESC_FREE 0x1bUL 122 #define HWRM_FUNC_VF_VNIC_IDS_QUERY 0x1cUL 123 #define HWRM_FUNC_DRV_RGTR 0x1dUL 124 #define HWRM_FUNC_DRV_QVER 0x1eUL 125 #define HWRM_FUNC_BUF_RGTR 0x1fUL 126 #define HWRM_PORT_PHY_CFG 0x20UL 127 #define HWRM_PORT_MAC_CFG 0x21UL 128 #define HWRM_PORT_TS_QUERY 0x22UL 129 #define HWRM_PORT_QSTATS 0x23UL 130 #define HWRM_PORT_LPBK_QSTATS 0x24UL 131 #define HWRM_PORT_CLR_STATS 0x25UL 132 #define HWRM_PORT_LPBK_CLR_STATS 0x26UL 133 #define HWRM_PORT_PHY_QCFG 0x27UL 134 #define HWRM_PORT_MAC_QCFG 0x28UL 135 #define HWRM_PORT_MAC_PTP_QCFG 0x29UL 136 #define HWRM_PORT_PHY_QCAPS 0x2aUL 137 #define HWRM_PORT_PHY_I2C_WRITE 0x2bUL 138 #define HWRM_PORT_PHY_I2C_READ 0x2cUL 139 #define HWRM_PORT_LED_CFG 0x2dUL 140 #define HWRM_PORT_LED_QCFG 0x2eUL 141 #define HWRM_PORT_LED_QCAPS 0x2fUL 142 #define HWRM_QUEUE_QPORTCFG 0x30UL 143 #define HWRM_QUEUE_QCFG 0x31UL 144 #define HWRM_QUEUE_CFG 0x32UL 145 #define HWRM_FUNC_VLAN_CFG 0x33UL 146 #define HWRM_FUNC_VLAN_QCFG 0x34UL 147 #define HWRM_QUEUE_PFCENABLE_QCFG 0x35UL 148 #define HWRM_QUEUE_PFCENABLE_CFG 0x36UL 149 #define HWRM_QUEUE_PRI2COS_QCFG 0x37UL 150 #define HWRM_QUEUE_PRI2COS_CFG 0x38UL 151 #define HWRM_QUEUE_COS2BW_QCFG 0x39UL 152 #define HWRM_QUEUE_COS2BW_CFG 0x3aUL 153 #define HWRM_QUEUE_DSCP_QCAPS 0x3bUL 154 #define HWRM_QUEUE_DSCP2PRI_QCFG 0x3cUL 155 #define HWRM_QUEUE_DSCP2PRI_CFG 0x3dUL 156 #define HWRM_VNIC_ALLOC 0x40UL 157 #define HWRM_VNIC_FREE 0x41UL 158 #define HWRM_VNIC_CFG 0x42UL 159 #define HWRM_VNIC_QCFG 0x43UL 160 #define HWRM_VNIC_TPA_CFG 0x44UL 161 #define HWRM_VNIC_TPA_QCFG 0x45UL 162 #define HWRM_VNIC_RSS_CFG 0x46UL 163 #define HWRM_VNIC_RSS_QCFG 0x47UL 164 #define HWRM_VNIC_PLCMODES_CFG 0x48UL 165 #define HWRM_VNIC_PLCMODES_QCFG 0x49UL 166 #define HWRM_VNIC_QCAPS 0x4aUL 167 #define HWRM_RING_ALLOC 0x50UL 168 #define HWRM_RING_FREE 0x51UL 169 #define HWRM_RING_CMPL_RING_QAGGINT_PARAMS 0x52UL 170 #define HWRM_RING_CMPL_RING_CFG_AGGINT_PARAMS 0x53UL 171 #define HWRM_RING_AGGINT_QCAPS 0x54UL 172 #define HWRM_RING_RESET 0x5eUL 173 #define HWRM_RING_GRP_ALLOC 0x60UL 174 #define HWRM_RING_GRP_FREE 0x61UL 175 #define HWRM_RESERVED5 0x64UL 176 #define HWRM_RESERVED6 0x65UL 177 #define HWRM_VNIC_RSS_COS_LB_CTX_ALLOC 0x70UL 178 #define HWRM_VNIC_RSS_COS_LB_CTX_FREE 0x71UL 179 #define HWRM_QUEUE_MPLS_QCAPS 0x80UL 180 #define HWRM_QUEUE_MPLSTC2PRI_QCFG 0x81UL 181 #define HWRM_QUEUE_MPLSTC2PRI_CFG 0x82UL 182 #define HWRM_CFA_L2_FILTER_ALLOC 0x90UL 183 #define HWRM_CFA_L2_FILTER_FREE 0x91UL 184 #define HWRM_CFA_L2_FILTER_CFG 0x92UL 185 #define HWRM_CFA_L2_SET_RX_MASK 0x93UL 186 #define HWRM_CFA_VLAN_ANTISPOOF_CFG 0x94UL 187 #define HWRM_CFA_TUNNEL_FILTER_ALLOC 0x95UL 188 #define HWRM_CFA_TUNNEL_FILTER_FREE 0x96UL 189 #define HWRM_CFA_ENCAP_RECORD_ALLOC 0x97UL 190 #define HWRM_CFA_ENCAP_RECORD_FREE 0x98UL 191 #define HWRM_CFA_NTUPLE_FILTER_ALLOC 0x99UL 192 #define HWRM_CFA_NTUPLE_FILTER_FREE 0x9aUL 193 #define HWRM_CFA_NTUPLE_FILTER_CFG 0x9bUL 194 #define HWRM_CFA_EM_FLOW_ALLOC 0x9cUL 195 #define HWRM_CFA_EM_FLOW_FREE 0x9dUL 196 #define HWRM_CFA_EM_FLOW_CFG 0x9eUL 197 #define HWRM_TUNNEL_DST_PORT_QUERY 0xa0UL 198 #define HWRM_TUNNEL_DST_PORT_ALLOC 0xa1UL 199 #define HWRM_TUNNEL_DST_PORT_FREE 0xa2UL 200 #define HWRM_STAT_CTX_ENG_QUERY 0xafUL 201 #define HWRM_STAT_CTX_ALLOC 0xb0UL 202 #define HWRM_STAT_CTX_FREE 0xb1UL 203 #define HWRM_STAT_CTX_QUERY 0xb2UL 204 #define HWRM_STAT_CTX_CLR_STATS 0xb3UL 205 #define HWRM_PORT_QSTATS_EXT 0xb4UL 206 #define HWRM_PORT_PHY_MDIO_WRITE 0xb5UL 207 #define HWRM_PORT_PHY_MDIO_READ 0xb6UL 208 #define HWRM_PORT_PHY_MDIO_BUS_ACQUIRE 0xb7UL 209 #define HWRM_PORT_PHY_MDIO_BUS_RELEASE 0xb8UL 210 #define HWRM_FW_RESET 0xc0UL 211 #define HWRM_FW_QSTATUS 0xc1UL 212 #define HWRM_FW_HEALTH_CHECK 0xc2UL 213 #define HWRM_FW_SYNC 0xc3UL 214 #define HWRM_FW_STATE_QCAPS 0xc4UL 215 #define HWRM_FW_STATE_QUIESCE 0xc5UL 216 #define HWRM_FW_STATE_BACKUP 0xc6UL 217 #define HWRM_FW_STATE_RESTORE 0xc7UL 218 #define HWRM_FW_SET_TIME 0xc8UL 219 #define HWRM_FW_GET_TIME 0xc9UL 220 #define HWRM_FW_SET_STRUCTURED_DATA 0xcaUL 221 #define HWRM_FW_GET_STRUCTURED_DATA 0xcbUL 222 #define HWRM_FW_IPC_MAILBOX 0xccUL 223 #define HWRM_EXEC_FWD_RESP 0xd0UL 224 #define HWRM_REJECT_FWD_RESP 0xd1UL 225 #define HWRM_FWD_RESP 0xd2UL 226 #define HWRM_FWD_ASYNC_EVENT_CMPL 0xd3UL 227 #define HWRM_OEM_CMD 0xd4UL 228 #define HWRM_PORT_PRBS_TEST 0xd5UL 229 #define HWRM_PORT_SFP_SIDEBAND_CFG 0xd6UL 230 #define HWRM_PORT_SFP_SIDEBAND_QCFG 0xd7UL 231 #define HWRM_FW_STATE_UNQUIESCE 0xd8UL 232 #define HWRM_PORT_DSC_DUMP 0xd9UL 233 #define HWRM_TEMP_MONITOR_QUERY 0xe0UL 234 #define HWRM_REG_POWER_QUERY 0xe1UL 235 #define HWRM_CORE_FREQUENCY_QUERY 0xe2UL 236 #define HWRM_WOL_FILTER_ALLOC 0xf0UL 237 #define HWRM_WOL_FILTER_FREE 0xf1UL 238 #define HWRM_WOL_FILTER_QCFG 0xf2UL 239 #define HWRM_WOL_REASON_QCFG 0xf3UL 240 #define HWRM_CFA_METER_QCAPS 0xf4UL 241 #define HWRM_CFA_METER_PROFILE_ALLOC 0xf5UL 242 #define HWRM_CFA_METER_PROFILE_FREE 0xf6UL 243 #define HWRM_CFA_METER_PROFILE_CFG 0xf7UL 244 #define HWRM_CFA_METER_INSTANCE_ALLOC 0xf8UL 245 #define HWRM_CFA_METER_INSTANCE_FREE 0xf9UL 246 #define HWRM_CFA_METER_INSTANCE_CFG 0xfaUL 247 #define HWRM_CFA_VFR_ALLOC 0xfdUL 248 #define HWRM_CFA_VFR_FREE 0xfeUL 249 #define HWRM_CFA_VF_PAIR_ALLOC 0x100UL 250 #define HWRM_CFA_VF_PAIR_FREE 0x101UL 251 #define HWRM_CFA_VF_PAIR_INFO 0x102UL 252 #define HWRM_CFA_FLOW_ALLOC 0x103UL 253 #define HWRM_CFA_FLOW_FREE 0x104UL 254 #define HWRM_CFA_FLOW_FLUSH 0x105UL 255 #define HWRM_CFA_FLOW_STATS 0x106UL 256 #define HWRM_CFA_FLOW_INFO 0x107UL 257 #define HWRM_CFA_DECAP_FILTER_ALLOC 0x108UL 258 #define HWRM_CFA_DECAP_FILTER_FREE 0x109UL 259 #define HWRM_CFA_VLAN_ANTISPOOF_QCFG 0x10aUL 260 #define HWRM_CFA_REDIRECT_TUNNEL_TYPE_ALLOC 0x10bUL 261 #define HWRM_CFA_REDIRECT_TUNNEL_TYPE_FREE 0x10cUL 262 #define HWRM_CFA_PAIR_ALLOC 0x10dUL 263 #define HWRM_CFA_PAIR_FREE 0x10eUL 264 #define HWRM_CFA_PAIR_INFO 0x10fUL 265 #define HWRM_FW_IPC_MSG 0x110UL 266 #define HWRM_CFA_REDIRECT_TUNNEL_TYPE_INFO 0x111UL 267 #define HWRM_CFA_REDIRECT_QUERY_TUNNEL_TYPE 0x112UL 268 #define HWRM_CFA_FLOW_AGING_TIMER_RESET 0x113UL 269 #define HWRM_CFA_FLOW_AGING_CFG 0x114UL 270 #define HWRM_CFA_FLOW_AGING_QCFG 0x115UL 271 #define HWRM_CFA_FLOW_AGING_QCAPS 0x116UL 272 #define HWRM_CFA_CTX_MEM_RGTR 0x117UL 273 #define HWRM_CFA_CTX_MEM_UNRGTR 0x118UL 274 #define HWRM_CFA_CTX_MEM_QCTX 0x119UL 275 #define HWRM_CFA_CTX_MEM_QCAPS 0x11aUL 276 #define HWRM_CFA_COUNTER_QCAPS 0x11bUL 277 #define HWRM_CFA_COUNTER_CFG 0x11cUL 278 #define HWRM_CFA_COUNTER_QCFG 0x11dUL 279 #define HWRM_CFA_COUNTER_QSTATS 0x11eUL 280 #define HWRM_CFA_TCP_FLAG_PROCESS_QCFG 0x11fUL 281 #define HWRM_CFA_EEM_QCAPS 0x120UL 282 #define HWRM_CFA_EEM_CFG 0x121UL 283 #define HWRM_CFA_EEM_QCFG 0x122UL 284 #define HWRM_CFA_EEM_OP 0x123UL 285 #define HWRM_CFA_ADV_FLOW_MGNT_QCAPS 0x124UL 286 #define HWRM_CFA_TFLIB 0x125UL 287 #define HWRM_ENGINE_CKV_STATUS 0x12eUL 288 #define HWRM_ENGINE_CKV_CKEK_ADD 0x12fUL 289 #define HWRM_ENGINE_CKV_CKEK_DELETE 0x130UL 290 #define HWRM_ENGINE_CKV_KEY_ADD 0x131UL 291 #define HWRM_ENGINE_CKV_KEY_DELETE 0x132UL 292 #define HWRM_ENGINE_CKV_FLUSH 0x133UL 293 #define HWRM_ENGINE_CKV_RNG_GET 0x134UL 294 #define HWRM_ENGINE_CKV_KEY_GEN 0x135UL 295 #define HWRM_ENGINE_CKV_KEY_LABEL_CFG 0x136UL 296 #define HWRM_ENGINE_CKV_KEY_LABEL_QCFG 0x137UL 297 #define HWRM_ENGINE_QG_CONFIG_QUERY 0x13cUL 298 #define HWRM_ENGINE_QG_QUERY 0x13dUL 299 #define HWRM_ENGINE_QG_METER_PROFILE_CONFIG_QUERY 0x13eUL 300 #define HWRM_ENGINE_QG_METER_PROFILE_QUERY 0x13fUL 301 #define HWRM_ENGINE_QG_METER_PROFILE_ALLOC 0x140UL 302 #define HWRM_ENGINE_QG_METER_PROFILE_FREE 0x141UL 303 #define HWRM_ENGINE_QG_METER_QUERY 0x142UL 304 #define HWRM_ENGINE_QG_METER_BIND 0x143UL 305 #define HWRM_ENGINE_QG_METER_UNBIND 0x144UL 306 #define HWRM_ENGINE_QG_FUNC_BIND 0x145UL 307 #define HWRM_ENGINE_SG_CONFIG_QUERY 0x146UL 308 #define HWRM_ENGINE_SG_QUERY 0x147UL 309 #define HWRM_ENGINE_SG_METER_QUERY 0x148UL 310 #define HWRM_ENGINE_SG_METER_CONFIG 0x149UL 311 #define HWRM_ENGINE_SG_QG_BIND 0x14aUL 312 #define HWRM_ENGINE_QG_SG_UNBIND 0x14bUL 313 #define HWRM_ENGINE_CONFIG_QUERY 0x154UL 314 #define HWRM_ENGINE_STATS_CONFIG 0x155UL 315 #define HWRM_ENGINE_STATS_CLEAR 0x156UL 316 #define HWRM_ENGINE_STATS_QUERY 0x157UL 317 #define HWRM_ENGINE_STATS_QUERY_CONTINUOUS_ERROR 0x158UL 318 #define HWRM_ENGINE_RQ_ALLOC 0x15eUL 319 #define HWRM_ENGINE_RQ_FREE 0x15fUL 320 #define HWRM_ENGINE_CQ_ALLOC 0x160UL 321 #define HWRM_ENGINE_CQ_FREE 0x161UL 322 #define HWRM_ENGINE_NQ_ALLOC 0x162UL 323 #define HWRM_ENGINE_NQ_FREE 0x163UL 324 #define HWRM_ENGINE_ON_DIE_RQE_CREDITS 0x164UL 325 #define HWRM_ENGINE_FUNC_QCFG 0x165UL 326 #define HWRM_FUNC_RESOURCE_QCAPS 0x190UL 327 #define HWRM_FUNC_VF_RESOURCE_CFG 0x191UL 328 #define HWRM_FUNC_BACKING_STORE_QCAPS 0x192UL 329 #define HWRM_FUNC_BACKING_STORE_CFG 0x193UL 330 #define HWRM_FUNC_BACKING_STORE_QCFG 0x194UL 331 #define HWRM_FUNC_VF_BW_CFG 0x195UL 332 #define HWRM_FUNC_VF_BW_QCFG 0x196UL 333 #define HWRM_FUNC_HOST_PF_IDS_QUERY 0x197UL 334 #define HWRM_SELFTEST_QLIST 0x200UL 335 #define HWRM_SELFTEST_EXEC 0x201UL 336 #define HWRM_SELFTEST_IRQ 0x202UL 337 #define HWRM_SELFTEST_RETRIEVE_SERDES_DATA 0x203UL 338 #define HWRM_PCIE_QSTATS 0x204UL 339 #define HWRM_MFG_FRU_WRITE_CONTROL 0x205UL 340 #define HWRM_MFG_TIMERS_QUERY 0x206UL 341 #define HWRM_MFG_OTP_CFG 0x207UL 342 #define HWRM_MFG_OTP_QCFG 0x208UL 343 #define HWRM_MFG_HDMA_TEST 0x209UL 344 #define HWRM_DBG_READ_DIRECT 0xff10UL 345 #define HWRM_DBG_READ_INDIRECT 0xff11UL 346 #define HWRM_DBG_WRITE_DIRECT 0xff12UL 347 #define HWRM_DBG_WRITE_INDIRECT 0xff13UL 348 #define HWRM_DBG_DUMP 0xff14UL 349 #define HWRM_DBG_ERASE_NVM 0xff15UL 350 #define HWRM_DBG_CFG 0xff16UL 351 #define HWRM_DBG_COREDUMP_LIST 0xff17UL 352 #define HWRM_DBG_COREDUMP_INITIATE 0xff18UL 353 #define HWRM_DBG_COREDUMP_RETRIEVE 0xff19UL 354 #define HWRM_DBG_FW_CLI 0xff1aUL 355 #define HWRM_DBG_I2C_CMD 0xff1bUL 356 #define HWRM_DBG_RING_INFO_GET 0xff1cUL 357 #define HWRM_DBG_CRASHDUMP_HEADER 0xff1dUL 358 #define HWRM_DBG_CRASHDUMP_ERASE 0xff1eUL 359 #define HWRM_NVM_FACTORY_DEFAULTS 0xffeeUL 360 #define HWRM_NVM_VALIDATE_OPTION 0xffefUL 361 #define HWRM_NVM_FLUSH 0xfff0UL 362 #define HWRM_NVM_GET_VARIABLE 0xfff1UL 363 #define HWRM_NVM_SET_VARIABLE 0xfff2UL 364 #define HWRM_NVM_INSTALL_UPDATE 0xfff3UL 365 #define HWRM_NVM_MODIFY 0xfff4UL 366 #define HWRM_NVM_VERIFY_UPDATE 0xfff5UL 367 #define HWRM_NVM_GET_DEV_INFO 0xfff6UL 368 #define HWRM_NVM_ERASE_DIR_ENTRY 0xfff7UL 369 #define HWRM_NVM_MOD_DIR_ENTRY 0xfff8UL 370 #define HWRM_NVM_FIND_DIR_ENTRY 0xfff9UL 371 #define HWRM_NVM_GET_DIR_ENTRIES 0xfffaUL 372 #define HWRM_NVM_GET_DIR_INFO 0xfffbUL 373 #define HWRM_NVM_RAW_DUMP 0xfffcUL 374 #define HWRM_NVM_READ 0xfffdUL 375 #define HWRM_NVM_WRITE 0xfffeUL 376 #define HWRM_NVM_RAW_WRITE_BLK 0xffffUL 377 #define HWRM_LAST HWRM_NVM_RAW_WRITE_BLK 378 __le16 unused_0[3]; 379 }; 380 381 /* ret_codes (size:64b/8B) */ 382 struct ret_codes { 383 __le16 error_code; 384 #define HWRM_ERR_CODE_SUCCESS 0x0UL 385 #define HWRM_ERR_CODE_FAIL 0x1UL 386 #define HWRM_ERR_CODE_INVALID_PARAMS 0x2UL 387 #define HWRM_ERR_CODE_RESOURCE_ACCESS_DENIED 0x3UL 388 #define HWRM_ERR_CODE_RESOURCE_ALLOC_ERROR 0x4UL 389 #define HWRM_ERR_CODE_INVALID_FLAGS 0x5UL 390 #define HWRM_ERR_CODE_INVALID_ENABLES 0x6UL 391 #define HWRM_ERR_CODE_UNSUPPORTED_TLV 0x7UL 392 #define HWRM_ERR_CODE_NO_BUFFER 0x8UL 393 #define HWRM_ERR_CODE_UNSUPPORTED_OPTION_ERR 0x9UL 394 #define HWRM_ERR_CODE_HOT_RESET_PROGRESS 0xaUL 395 #define HWRM_ERR_CODE_HOT_RESET_FAIL 0xbUL 396 #define HWRM_ERR_CODE_NO_FLOW_COUNTER_DURING_ALLOC 0xcUL 397 #define HWRM_ERR_CODE_KEY_HASH_COLLISION 0xdUL 398 #define HWRM_ERR_CODE_KEY_ALREADY_EXISTS 0xeUL 399 #define HWRM_ERR_CODE_HWRM_ERROR 0xfUL 400 #define HWRM_ERR_CODE_BUSY 0x10UL 401 #define HWRM_ERR_CODE_TLV_ENCAPSULATED_RESPONSE 0x8000UL 402 #define HWRM_ERR_CODE_UNKNOWN_ERR 0xfffeUL 403 #define HWRM_ERR_CODE_CMD_NOT_SUPPORTED 0xffffUL 404 #define HWRM_ERR_CODE_LAST HWRM_ERR_CODE_CMD_NOT_SUPPORTED 405 __le16 unused_0[3]; 406 }; 407 408 /* hwrm_err_output (size:128b/16B) */ 409 struct hwrm_err_output { 410 __le16 error_code; 411 __le16 req_type; 412 __le16 seq_id; 413 __le16 resp_len; 414 __le32 opaque_0; 415 __le16 opaque_1; 416 u8 cmd_err; 417 u8 valid; 418 }; 419 #define HWRM_NA_SIGNATURE ((__le32)(-1)) 420 #define HWRM_MAX_REQ_LEN 128 421 #define HWRM_MAX_RESP_LEN 704 422 #define HW_HASH_INDEX_SIZE 0x80 423 #define HW_HASH_KEY_SIZE 40 424 #define HWRM_RESP_VALID_KEY 1 425 #define HWRM_TARGET_ID_BONO 0xFFF8 426 #define HWRM_TARGET_ID_KONG 0xFFF9 427 #define HWRM_TARGET_ID_APE 0xFFFA 428 #define HWRM_TARGET_ID_TOOLS 0xFFFD 429 #define HWRM_VERSION_MAJOR 1 430 #define HWRM_VERSION_MINOR 10 431 #define HWRM_VERSION_UPDATE 1 432 #define HWRM_VERSION_RSVD 12 433 #define HWRM_VERSION_STR "1.10.1.12" 434 435 /* hwrm_ver_get_input (size:192b/24B) */ 436 struct hwrm_ver_get_input { 437 __le16 req_type; 438 __le16 cmpl_ring; 439 __le16 seq_id; 440 __le16 target_id; 441 __le64 resp_addr; 442 u8 hwrm_intf_maj; 443 u8 hwrm_intf_min; 444 u8 hwrm_intf_upd; 445 u8 unused_0[5]; 446 }; 447 448 /* hwrm_ver_get_output (size:1408b/176B) */ 449 struct hwrm_ver_get_output { 450 __le16 error_code; 451 __le16 req_type; 452 __le16 seq_id; 453 __le16 resp_len; 454 u8 hwrm_intf_maj_8b; 455 u8 hwrm_intf_min_8b; 456 u8 hwrm_intf_upd_8b; 457 u8 hwrm_intf_rsvd_8b; 458 u8 hwrm_fw_maj_8b; 459 u8 hwrm_fw_min_8b; 460 u8 hwrm_fw_bld_8b; 461 u8 hwrm_fw_rsvd_8b; 462 u8 mgmt_fw_maj_8b; 463 u8 mgmt_fw_min_8b; 464 u8 mgmt_fw_bld_8b; 465 u8 mgmt_fw_rsvd_8b; 466 u8 netctrl_fw_maj_8b; 467 u8 netctrl_fw_min_8b; 468 u8 netctrl_fw_bld_8b; 469 u8 netctrl_fw_rsvd_8b; 470 __le32 dev_caps_cfg; 471 #define VER_GET_RESP_DEV_CAPS_CFG_SECURE_FW_UPD_SUPPORTED 0x1UL 472 #define VER_GET_RESP_DEV_CAPS_CFG_FW_DCBX_AGENT_SUPPORTED 0x2UL 473 #define VER_GET_RESP_DEV_CAPS_CFG_SHORT_CMD_SUPPORTED 0x4UL 474 #define VER_GET_RESP_DEV_CAPS_CFG_SHORT_CMD_REQUIRED 0x8UL 475 #define VER_GET_RESP_DEV_CAPS_CFG_KONG_MB_CHNL_SUPPORTED 0x10UL 476 #define VER_GET_RESP_DEV_CAPS_CFG_FLOW_HANDLE_64BIT_SUPPORTED 0x20UL 477 #define VER_GET_RESP_DEV_CAPS_CFG_L2_FILTER_TYPES_ROCE_OR_L2_SUPPORTED 0x40UL 478 #define VER_GET_RESP_DEV_CAPS_CFG_VIRTIO_VSWITCH_OFFLOAD_SUPPORTED 0x80UL 479 #define VER_GET_RESP_DEV_CAPS_CFG_TRUSTED_VF_SUPPORTED 0x100UL 480 #define VER_GET_RESP_DEV_CAPS_CFG_FLOW_AGING_SUPPORTED 0x200UL 481 #define VER_GET_RESP_DEV_CAPS_CFG_ADV_FLOW_COUNTERS_SUPPORTED 0x400UL 482 #define VER_GET_RESP_DEV_CAPS_CFG_CFA_EEM_SUPPORTED 0x800UL 483 #define VER_GET_RESP_DEV_CAPS_CFG_CFA_ADV_FLOW_MGNT_SUPPORTED 0x1000UL 484 #define VER_GET_RESP_DEV_CAPS_CFG_CFA_TFLIB_SUPPORTED 0x2000UL 485 u8 roce_fw_maj_8b; 486 u8 roce_fw_min_8b; 487 u8 roce_fw_bld_8b; 488 u8 roce_fw_rsvd_8b; 489 char hwrm_fw_name[16]; 490 char mgmt_fw_name[16]; 491 char netctrl_fw_name[16]; 492 char active_pkg_name[16]; 493 char roce_fw_name[16]; 494 __le16 chip_num; 495 u8 chip_rev; 496 u8 chip_metal; 497 u8 chip_bond_id; 498 u8 chip_platform_type; 499 #define VER_GET_RESP_CHIP_PLATFORM_TYPE_ASIC 0x0UL 500 #define VER_GET_RESP_CHIP_PLATFORM_TYPE_FPGA 0x1UL 501 #define VER_GET_RESP_CHIP_PLATFORM_TYPE_PALLADIUM 0x2UL 502 #define VER_GET_RESP_CHIP_PLATFORM_TYPE_LAST VER_GET_RESP_CHIP_PLATFORM_TYPE_PALLADIUM 503 __le16 max_req_win_len; 504 __le16 max_resp_len; 505 __le16 def_req_timeout; 506 u8 flags; 507 #define VER_GET_RESP_FLAGS_DEV_NOT_RDY 0x1UL 508 #define VER_GET_RESP_FLAGS_EXT_VER_AVAIL 0x2UL 509 u8 unused_0[2]; 510 u8 always_1; 511 __le16 hwrm_intf_major; 512 __le16 hwrm_intf_minor; 513 __le16 hwrm_intf_build; 514 __le16 hwrm_intf_patch; 515 __le16 hwrm_fw_major; 516 __le16 hwrm_fw_minor; 517 __le16 hwrm_fw_build; 518 __le16 hwrm_fw_patch; 519 __le16 mgmt_fw_major; 520 __le16 mgmt_fw_minor; 521 __le16 mgmt_fw_build; 522 __le16 mgmt_fw_patch; 523 __le16 netctrl_fw_major; 524 __le16 netctrl_fw_minor; 525 __le16 netctrl_fw_build; 526 __le16 netctrl_fw_patch; 527 __le16 roce_fw_major; 528 __le16 roce_fw_minor; 529 __le16 roce_fw_build; 530 __le16 roce_fw_patch; 531 __le16 max_ext_req_len; 532 u8 unused_1[5]; 533 u8 valid; 534 }; 535 536 /* eject_cmpl (size:128b/16B) */ 537 struct eject_cmpl { 538 __le16 type; 539 #define EJECT_CMPL_TYPE_MASK 0x3fUL 540 #define EJECT_CMPL_TYPE_SFT 0 541 #define EJECT_CMPL_TYPE_STAT_EJECT 0x1aUL 542 #define EJECT_CMPL_TYPE_LAST EJECT_CMPL_TYPE_STAT_EJECT 543 #define EJECT_CMPL_FLAGS_MASK 0xffc0UL 544 #define EJECT_CMPL_FLAGS_SFT 6 545 #define EJECT_CMPL_FLAGS_ERROR 0x40UL 546 __le16 len; 547 __le32 opaque; 548 __le16 v; 549 #define EJECT_CMPL_V 0x1UL 550 #define EJECT_CMPL_ERRORS_MASK 0xfffeUL 551 #define EJECT_CMPL_ERRORS_SFT 1 552 #define EJECT_CMPL_ERRORS_BUFFER_ERROR_MASK 0xeUL 553 #define EJECT_CMPL_ERRORS_BUFFER_ERROR_SFT 1 554 #define EJECT_CMPL_ERRORS_BUFFER_ERROR_NO_BUFFER (0x0UL << 1) 555 #define EJECT_CMPL_ERRORS_BUFFER_ERROR_DID_NOT_FIT (0x1UL << 1) 556 #define EJECT_CMPL_ERRORS_BUFFER_ERROR_BAD_FORMAT (0x3UL << 1) 557 #define EJECT_CMPL_ERRORS_BUFFER_ERROR_FLUSH (0x5UL << 1) 558 #define EJECT_CMPL_ERRORS_BUFFER_ERROR_LAST EJECT_CMPL_ERRORS_BUFFER_ERROR_FLUSH 559 __le16 reserved16; 560 __le32 unused_2; 561 }; 562 563 /* hwrm_cmpl (size:128b/16B) */ 564 struct hwrm_cmpl { 565 __le16 type; 566 #define CMPL_TYPE_MASK 0x3fUL 567 #define CMPL_TYPE_SFT 0 568 #define CMPL_TYPE_HWRM_DONE 0x20UL 569 #define CMPL_TYPE_LAST CMPL_TYPE_HWRM_DONE 570 __le16 sequence_id; 571 __le32 unused_1; 572 __le32 v; 573 #define CMPL_V 0x1UL 574 __le32 unused_3; 575 }; 576 577 /* hwrm_fwd_req_cmpl (size:128b/16B) */ 578 struct hwrm_fwd_req_cmpl { 579 __le16 req_len_type; 580 #define FWD_REQ_CMPL_TYPE_MASK 0x3fUL 581 #define FWD_REQ_CMPL_TYPE_SFT 0 582 #define FWD_REQ_CMPL_TYPE_HWRM_FWD_REQ 0x22UL 583 #define FWD_REQ_CMPL_TYPE_LAST FWD_REQ_CMPL_TYPE_HWRM_FWD_REQ 584 #define FWD_REQ_CMPL_REQ_LEN_MASK 0xffc0UL 585 #define FWD_REQ_CMPL_REQ_LEN_SFT 6 586 __le16 source_id; 587 __le32 unused0; 588 __le32 req_buf_addr_v[2]; 589 #define FWD_REQ_CMPL_V 0x1UL 590 #define FWD_REQ_CMPL_REQ_BUF_ADDR_MASK 0xfffffffeUL 591 #define FWD_REQ_CMPL_REQ_BUF_ADDR_SFT 1 592 }; 593 594 /* hwrm_fwd_resp_cmpl (size:128b/16B) */ 595 struct hwrm_fwd_resp_cmpl { 596 __le16 type; 597 #define FWD_RESP_CMPL_TYPE_MASK 0x3fUL 598 #define FWD_RESP_CMPL_TYPE_SFT 0 599 #define FWD_RESP_CMPL_TYPE_HWRM_FWD_RESP 0x24UL 600 #define FWD_RESP_CMPL_TYPE_LAST FWD_RESP_CMPL_TYPE_HWRM_FWD_RESP 601 __le16 source_id; 602 __le16 resp_len; 603 __le16 unused_1; 604 __le32 resp_buf_addr_v[2]; 605 #define FWD_RESP_CMPL_V 0x1UL 606 #define FWD_RESP_CMPL_RESP_BUF_ADDR_MASK 0xfffffffeUL 607 #define FWD_RESP_CMPL_RESP_BUF_ADDR_SFT 1 608 }; 609 610 /* hwrm_async_event_cmpl (size:128b/16B) */ 611 struct hwrm_async_event_cmpl { 612 __le16 type; 613 #define ASYNC_EVENT_CMPL_TYPE_MASK 0x3fUL 614 #define ASYNC_EVENT_CMPL_TYPE_SFT 0 615 #define ASYNC_EVENT_CMPL_TYPE_HWRM_ASYNC_EVENT 0x2eUL 616 #define ASYNC_EVENT_CMPL_TYPE_LAST ASYNC_EVENT_CMPL_TYPE_HWRM_ASYNC_EVENT 617 __le16 event_id; 618 #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_STATUS_CHANGE 0x0UL 619 #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_MTU_CHANGE 0x1UL 620 #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CHANGE 0x2UL 621 #define ASYNC_EVENT_CMPL_EVENT_ID_DCB_CONFIG_CHANGE 0x3UL 622 #define ASYNC_EVENT_CMPL_EVENT_ID_PORT_CONN_NOT_ALLOWED 0x4UL 623 #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CFG_NOT_ALLOWED 0x5UL 624 #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CFG_CHANGE 0x6UL 625 #define ASYNC_EVENT_CMPL_EVENT_ID_PORT_PHY_CFG_CHANGE 0x7UL 626 #define ASYNC_EVENT_CMPL_EVENT_ID_RESET_NOTIFY 0x8UL 627 #define ASYNC_EVENT_CMPL_EVENT_ID_ERROR_RECOVERY 0x9UL 628 #define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_DRVR_UNLOAD 0x10UL 629 #define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_DRVR_LOAD 0x11UL 630 #define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_FLR_PROC_CMPLT 0x12UL 631 #define ASYNC_EVENT_CMPL_EVENT_ID_PF_DRVR_UNLOAD 0x20UL 632 #define ASYNC_EVENT_CMPL_EVENT_ID_PF_DRVR_LOAD 0x21UL 633 #define ASYNC_EVENT_CMPL_EVENT_ID_VF_FLR 0x30UL 634 #define ASYNC_EVENT_CMPL_EVENT_ID_VF_MAC_ADDR_CHANGE 0x31UL 635 #define ASYNC_EVENT_CMPL_EVENT_ID_PF_VF_COMM_STATUS_CHANGE 0x32UL 636 #define ASYNC_EVENT_CMPL_EVENT_ID_VF_CFG_CHANGE 0x33UL 637 #define ASYNC_EVENT_CMPL_EVENT_ID_LLFC_PFC_CHANGE 0x34UL 638 #define ASYNC_EVENT_CMPL_EVENT_ID_DEFAULT_VNIC_CHANGE 0x35UL 639 #define ASYNC_EVENT_CMPL_EVENT_ID_HW_FLOW_AGED 0x36UL 640 #define ASYNC_EVENT_CMPL_EVENT_ID_DEBUG_NOTIFICATION 0x37UL 641 #define ASYNC_EVENT_CMPL_EVENT_ID_EEM_CACHE_FLUSH_REQ 0x38UL 642 #define ASYNC_EVENT_CMPL_EVENT_ID_EEM_CACHE_FLUSH_DONE 0x39UL 643 #define ASYNC_EVENT_CMPL_EVENT_ID_TCP_FLAG_ACTION_CHANGE 0x3aUL 644 #define ASYNC_EVENT_CMPL_EVENT_ID_EEM_FLOW_ACTIVE 0x3bUL 645 #define ASYNC_EVENT_CMPL_EVENT_ID_EEM_CFG_CHANGE 0x3cUL 646 #define ASYNC_EVENT_CMPL_EVENT_ID_TFLIB_DEFAULT_VNIC_CHANGE 0x3dUL 647 #define ASYNC_EVENT_CMPL_EVENT_ID_TFLIB_LINK_STATUS_CHANGE 0x3eUL 648 #define ASYNC_EVENT_CMPL_EVENT_ID_QUIESCE_DONE 0x3fUL 649 #define ASYNC_EVENT_CMPL_EVENT_ID_DEFERRED_RESPONSE 0x40UL 650 #define ASYNC_EVENT_CMPL_EVENT_ID_FW_TRACE_MSG 0xfeUL 651 #define ASYNC_EVENT_CMPL_EVENT_ID_HWRM_ERROR 0xffUL 652 #define ASYNC_EVENT_CMPL_EVENT_ID_LAST ASYNC_EVENT_CMPL_EVENT_ID_HWRM_ERROR 653 __le32 event_data2; 654 u8 opaque_v; 655 #define ASYNC_EVENT_CMPL_V 0x1UL 656 #define ASYNC_EVENT_CMPL_OPAQUE_MASK 0xfeUL 657 #define ASYNC_EVENT_CMPL_OPAQUE_SFT 1 658 u8 timestamp_lo; 659 __le16 timestamp_hi; 660 __le32 event_data1; 661 }; 662 663 /* hwrm_async_event_cmpl_link_status_change (size:128b/16B) */ 664 struct hwrm_async_event_cmpl_link_status_change { 665 __le16 type; 666 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_MASK 0x3fUL 667 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_SFT 0 668 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_HWRM_ASYNC_EVENT 0x2eUL 669 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_LAST ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_HWRM_ASYNC_EVENT 670 __le16 event_id; 671 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_ID_LINK_STATUS_CHANGE 0x0UL 672 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_ID_LAST ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_ID_LINK_STATUS_CHANGE 673 __le32 event_data2; 674 u8 opaque_v; 675 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_V 0x1UL 676 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_OPAQUE_MASK 0xfeUL 677 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_OPAQUE_SFT 1 678 u8 timestamp_lo; 679 __le16 timestamp_hi; 680 __le32 event_data1; 681 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE 0x1UL 682 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_DOWN 0x0UL 683 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_UP 0x1UL 684 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_LAST ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_UP 685 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_MASK 0xeUL 686 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_SFT 1 687 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_ID_MASK 0xffff0UL 688 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_ID_SFT 4 689 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PF_ID_MASK 0xff00000UL 690 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PF_ID_SFT 20 691 }; 692 693 /* hwrm_async_event_cmpl_port_conn_not_allowed (size:128b/16B) */ 694 struct hwrm_async_event_cmpl_port_conn_not_allowed { 695 __le16 type; 696 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_MASK 0x3fUL 697 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_SFT 0 698 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_HWRM_ASYNC_EVENT 0x2eUL 699 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_LAST ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_HWRM_ASYNC_EVENT 700 __le16 event_id; 701 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_ID_PORT_CONN_NOT_ALLOWED 0x4UL 702 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_ID_LAST ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_ID_PORT_CONN_NOT_ALLOWED 703 __le32 event_data2; 704 u8 opaque_v; 705 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_V 0x1UL 706 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_OPAQUE_MASK 0xfeUL 707 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_OPAQUE_SFT 1 708 u8 timestamp_lo; 709 __le16 timestamp_hi; 710 __le32 event_data1; 711 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_PORT_ID_MASK 0xffffUL 712 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_PORT_ID_SFT 0 713 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_MASK 0xff0000UL 714 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_SFT 16 715 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_NONE (0x0UL << 16) 716 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_DISABLETX (0x1UL << 16) 717 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_WARNINGMSG (0x2UL << 16) 718 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_PWRDOWN (0x3UL << 16) 719 #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 720 }; 721 722 /* hwrm_async_event_cmpl_link_speed_cfg_change (size:128b/16B) */ 723 struct hwrm_async_event_cmpl_link_speed_cfg_change { 724 __le16 type; 725 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_MASK 0x3fUL 726 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_SFT 0 727 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT 0x2eUL 728 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_LAST ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT 729 __le16 event_id; 730 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_ID_LINK_SPEED_CFG_CHANGE 0x6UL 731 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_ID_LAST ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_ID_LINK_SPEED_CFG_CHANGE 732 __le32 event_data2; 733 u8 opaque_v; 734 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_V 0x1UL 735 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_OPAQUE_MASK 0xfeUL 736 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_OPAQUE_SFT 1 737 u8 timestamp_lo; 738 __le16 timestamp_hi; 739 __le32 event_data1; 740 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_PORT_ID_MASK 0xffffUL 741 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_PORT_ID_SFT 0 742 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_SUPPORTED_LINK_SPEEDS_CHANGE 0x10000UL 743 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_ILLEGAL_LINK_SPEED_CFG 0x20000UL 744 }; 745 746 /* hwrm_async_event_cmpl_reset_notify (size:128b/16B) */ 747 struct hwrm_async_event_cmpl_reset_notify { 748 __le16 type; 749 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_MASK 0x3fUL 750 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_SFT 0 751 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_HWRM_ASYNC_EVENT 0x2eUL 752 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_LAST ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_HWRM_ASYNC_EVENT 753 __le16 event_id; 754 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_ID_RESET_NOTIFY 0x8UL 755 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_ID_LAST ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_ID_RESET_NOTIFY 756 __le32 event_data2; 757 u8 opaque_v; 758 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_V 0x1UL 759 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_OPAQUE_MASK 0xfeUL 760 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_OPAQUE_SFT 1 761 u8 timestamp_lo; 762 __le16 timestamp_hi; 763 __le32 event_data1; 764 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_MASK 0xffUL 765 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_SFT 0 766 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_DRIVER_STOP_TX_QUEUE 0x1UL 767 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_DRIVER_IFDOWN 0x2UL 768 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_LAST ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_DRIVER_IFDOWN 769 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_MASK 0xff00UL 770 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_SFT 8 771 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_MANAGEMENT_RESET_REQUEST (0x1UL << 8) 772 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FW_EXCEPTION_FATAL (0x2UL << 8) 773 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FW_EXCEPTION_NON_FATAL (0x3UL << 8) 774 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_LAST ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FW_EXCEPTION_NON_FATAL 775 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DELAY_IN_100MS_TICKS_MASK 0xffff0000UL 776 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DELAY_IN_100MS_TICKS_SFT 16 777 }; 778 779 /* hwrm_async_event_cmpl_error_recovery (size:128b/16B) */ 780 struct hwrm_async_event_cmpl_error_recovery { 781 __le16 type; 782 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_MASK 0x3fUL 783 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_SFT 0 784 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_HWRM_ASYNC_EVENT 0x2eUL 785 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_HWRM_ASYNC_EVENT 786 __le16 event_id; 787 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_ID_ERROR_RECOVERY 0x9UL 788 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_ID_LAST ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_ID_ERROR_RECOVERY 789 __le32 event_data2; 790 u8 opaque_v; 791 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_V 0x1UL 792 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_OPAQUE_MASK 0xfeUL 793 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_OPAQUE_SFT 1 794 u8 timestamp_lo; 795 __le16 timestamp_hi; 796 __le32 event_data1; 797 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_MASK 0xffUL 798 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_SFT 0 799 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_MASTER_FUNC 0x1UL 800 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_RECOVERY_ENABLED 0x2UL 801 }; 802 803 /* hwrm_async_event_cmpl_vf_cfg_change (size:128b/16B) */ 804 struct hwrm_async_event_cmpl_vf_cfg_change { 805 __le16 type; 806 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_MASK 0x3fUL 807 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_SFT 0 808 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT 0x2eUL 809 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_LAST ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT 810 __le16 event_id; 811 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_ID_VF_CFG_CHANGE 0x33UL 812 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_ID_LAST ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_ID_VF_CFG_CHANGE 813 __le32 event_data2; 814 u8 opaque_v; 815 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_V 0x1UL 816 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_OPAQUE_MASK 0xfeUL 817 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_OPAQUE_SFT 1 818 u8 timestamp_lo; 819 __le16 timestamp_hi; 820 __le32 event_data1; 821 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_MTU_CHANGE 0x1UL 822 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_MRU_CHANGE 0x2UL 823 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_DFLT_MAC_ADDR_CHANGE 0x4UL 824 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_DFLT_VLAN_CHANGE 0x8UL 825 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_TRUSTED_VF_CFG_CHANGE 0x10UL 826 }; 827 828 /* hwrm_async_event_cmpl_default_vnic_change (size:128b/16B) */ 829 struct hwrm_async_event_cmpl_default_vnic_change { 830 __le16 type; 831 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_TYPE_MASK 0x3fUL 832 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_TYPE_SFT 0 833 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_TYPE_HWRM_ASYNC_EVENT 0x2eUL 834 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_TYPE_LAST ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_TYPE_HWRM_ASYNC_EVENT 835 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_UNUSED1_MASK 0xffc0UL 836 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_UNUSED1_SFT 6 837 __le16 event_id; 838 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_ID_ALLOC_FREE_NOTIFICATION 0x35UL 839 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_ID_LAST ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_ID_ALLOC_FREE_NOTIFICATION 840 __le32 event_data2; 841 u8 opaque_v; 842 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_V 0x1UL 843 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_OPAQUE_MASK 0xfeUL 844 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_OPAQUE_SFT 1 845 u8 timestamp_lo; 846 __le16 timestamp_hi; 847 __le32 event_data1; 848 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_DEF_VNIC_STATE_MASK 0x3UL 849 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_DEF_VNIC_STATE_SFT 0 850 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_DEF_VNIC_STATE_DEF_VNIC_ALLOC 0x1UL 851 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_DEF_VNIC_STATE_DEF_VNIC_FREE 0x2UL 852 #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 853 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_PF_ID_MASK 0x3fcUL 854 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_PF_ID_SFT 2 855 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_VF_ID_MASK 0x3fffc00UL 856 #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_VF_ID_SFT 10 857 }; 858 859 /* hwrm_async_event_cmpl_hw_flow_aged (size:128b/16B) */ 860 struct hwrm_async_event_cmpl_hw_flow_aged { 861 __le16 type; 862 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_MASK 0x3fUL 863 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_SFT 0 864 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_HWRM_ASYNC_EVENT 0x2eUL 865 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_LAST ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_HWRM_ASYNC_EVENT 866 __le16 event_id; 867 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_ID_HW_FLOW_AGED 0x36UL 868 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_ID_LAST ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_ID_HW_FLOW_AGED 869 __le32 event_data2; 870 u8 opaque_v; 871 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_V 0x1UL 872 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_OPAQUE_MASK 0xfeUL 873 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_OPAQUE_SFT 1 874 u8 timestamp_lo; 875 __le16 timestamp_hi; 876 __le32 event_data1; 877 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_ID_MASK 0x7fffffffUL 878 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_ID_SFT 0 879 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION 0x80000000UL 880 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_RX (0x0UL << 31) 881 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_TX (0x1UL << 31) 882 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_LAST ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_TX 883 }; 884 885 /* hwrm_async_event_cmpl_eem_cache_flush_req (size:128b/16B) */ 886 struct hwrm_async_event_cmpl_eem_cache_flush_req { 887 __le16 type; 888 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_MASK 0x3fUL 889 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_SFT 0 890 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_HWRM_ASYNC_EVENT 0x2eUL 891 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_LAST ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_HWRM_ASYNC_EVENT 892 __le16 event_id; 893 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_EVENT_ID_EEM_CACHE_FLUSH_REQ 0x38UL 894 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_EVENT_ID_LAST ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_EVENT_ID_EEM_CACHE_FLUSH_REQ 895 __le32 event_data2; 896 u8 opaque_v; 897 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_V 0x1UL 898 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_OPAQUE_MASK 0xfeUL 899 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_OPAQUE_SFT 1 900 u8 timestamp_lo; 901 __le16 timestamp_hi; 902 __le32 event_data1; 903 }; 904 905 /* hwrm_async_event_cmpl_eem_cache_flush_done (size:128b/16B) */ 906 struct hwrm_async_event_cmpl_eem_cache_flush_done { 907 __le16 type; 908 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_MASK 0x3fUL 909 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_SFT 0 910 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_HWRM_ASYNC_EVENT 0x2eUL 911 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_LAST ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_HWRM_ASYNC_EVENT 912 __le16 event_id; 913 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_ID_EEM_CACHE_FLUSH_DONE 0x39UL 914 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_ID_LAST ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_ID_EEM_CACHE_FLUSH_DONE 915 __le32 event_data2; 916 u8 opaque_v; 917 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_V 0x1UL 918 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_OPAQUE_MASK 0xfeUL 919 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_OPAQUE_SFT 1 920 u8 timestamp_lo; 921 __le16 timestamp_hi; 922 __le32 event_data1; 923 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_DATA1_FID_MASK 0xffffUL 924 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_DATA1_FID_SFT 0 925 }; 926 927 /* hwrm_func_reset_input (size:192b/24B) */ 928 struct hwrm_func_reset_input { 929 __le16 req_type; 930 __le16 cmpl_ring; 931 __le16 seq_id; 932 __le16 target_id; 933 __le64 resp_addr; 934 __le32 enables; 935 #define FUNC_RESET_REQ_ENABLES_VF_ID_VALID 0x1UL 936 __le16 vf_id; 937 u8 func_reset_level; 938 #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETALL 0x0UL 939 #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETME 0x1UL 940 #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETCHILDREN 0x2UL 941 #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETVF 0x3UL 942 #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_LAST FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETVF 943 u8 unused_0; 944 }; 945 946 /* hwrm_func_reset_output (size:128b/16B) */ 947 struct hwrm_func_reset_output { 948 __le16 error_code; 949 __le16 req_type; 950 __le16 seq_id; 951 __le16 resp_len; 952 u8 unused_0[7]; 953 u8 valid; 954 }; 955 956 /* hwrm_func_getfid_input (size:192b/24B) */ 957 struct hwrm_func_getfid_input { 958 __le16 req_type; 959 __le16 cmpl_ring; 960 __le16 seq_id; 961 __le16 target_id; 962 __le64 resp_addr; 963 __le32 enables; 964 #define FUNC_GETFID_REQ_ENABLES_PCI_ID 0x1UL 965 __le16 pci_id; 966 u8 unused_0[2]; 967 }; 968 969 /* hwrm_func_getfid_output (size:128b/16B) */ 970 struct hwrm_func_getfid_output { 971 __le16 error_code; 972 __le16 req_type; 973 __le16 seq_id; 974 __le16 resp_len; 975 __le16 fid; 976 u8 unused_0[5]; 977 u8 valid; 978 }; 979 980 /* hwrm_func_vf_alloc_input (size:192b/24B) */ 981 struct hwrm_func_vf_alloc_input { 982 __le16 req_type; 983 __le16 cmpl_ring; 984 __le16 seq_id; 985 __le16 target_id; 986 __le64 resp_addr; 987 __le32 enables; 988 #define FUNC_VF_ALLOC_REQ_ENABLES_FIRST_VF_ID 0x1UL 989 __le16 first_vf_id; 990 __le16 num_vfs; 991 }; 992 993 /* hwrm_func_vf_alloc_output (size:128b/16B) */ 994 struct hwrm_func_vf_alloc_output { 995 __le16 error_code; 996 __le16 req_type; 997 __le16 seq_id; 998 __le16 resp_len; 999 __le16 first_vf_id; 1000 u8 unused_0[5]; 1001 u8 valid; 1002 }; 1003 1004 /* hwrm_func_vf_free_input (size:192b/24B) */ 1005 struct hwrm_func_vf_free_input { 1006 __le16 req_type; 1007 __le16 cmpl_ring; 1008 __le16 seq_id; 1009 __le16 target_id; 1010 __le64 resp_addr; 1011 __le32 enables; 1012 #define FUNC_VF_FREE_REQ_ENABLES_FIRST_VF_ID 0x1UL 1013 __le16 first_vf_id; 1014 __le16 num_vfs; 1015 }; 1016 1017 /* hwrm_func_vf_free_output (size:128b/16B) */ 1018 struct hwrm_func_vf_free_output { 1019 __le16 error_code; 1020 __le16 req_type; 1021 __le16 seq_id; 1022 __le16 resp_len; 1023 u8 unused_0[7]; 1024 u8 valid; 1025 }; 1026 1027 /* hwrm_func_vf_cfg_input (size:448b/56B) */ 1028 struct hwrm_func_vf_cfg_input { 1029 __le16 req_type; 1030 __le16 cmpl_ring; 1031 __le16 seq_id; 1032 __le16 target_id; 1033 __le64 resp_addr; 1034 __le32 enables; 1035 #define FUNC_VF_CFG_REQ_ENABLES_MTU 0x1UL 1036 #define FUNC_VF_CFG_REQ_ENABLES_GUEST_VLAN 0x2UL 1037 #define FUNC_VF_CFG_REQ_ENABLES_ASYNC_EVENT_CR 0x4UL 1038 #define FUNC_VF_CFG_REQ_ENABLES_DFLT_MAC_ADDR 0x8UL 1039 #define FUNC_VF_CFG_REQ_ENABLES_NUM_RSSCOS_CTXS 0x10UL 1040 #define FUNC_VF_CFG_REQ_ENABLES_NUM_CMPL_RINGS 0x20UL 1041 #define FUNC_VF_CFG_REQ_ENABLES_NUM_TX_RINGS 0x40UL 1042 #define FUNC_VF_CFG_REQ_ENABLES_NUM_RX_RINGS 0x80UL 1043 #define FUNC_VF_CFG_REQ_ENABLES_NUM_L2_CTXS 0x100UL 1044 #define FUNC_VF_CFG_REQ_ENABLES_NUM_VNICS 0x200UL 1045 #define FUNC_VF_CFG_REQ_ENABLES_NUM_STAT_CTXS 0x400UL 1046 #define FUNC_VF_CFG_REQ_ENABLES_NUM_HW_RING_GRPS 0x800UL 1047 __le16 mtu; 1048 __le16 guest_vlan; 1049 __le16 async_event_cr; 1050 u8 dflt_mac_addr[6]; 1051 __le32 flags; 1052 #define FUNC_VF_CFG_REQ_FLAGS_TX_ASSETS_TEST 0x1UL 1053 #define FUNC_VF_CFG_REQ_FLAGS_RX_ASSETS_TEST 0x2UL 1054 #define FUNC_VF_CFG_REQ_FLAGS_CMPL_ASSETS_TEST 0x4UL 1055 #define FUNC_VF_CFG_REQ_FLAGS_RSSCOS_CTX_ASSETS_TEST 0x8UL 1056 #define FUNC_VF_CFG_REQ_FLAGS_RING_GRP_ASSETS_TEST 0x10UL 1057 #define FUNC_VF_CFG_REQ_FLAGS_STAT_CTX_ASSETS_TEST 0x20UL 1058 #define FUNC_VF_CFG_REQ_FLAGS_VNIC_ASSETS_TEST 0x40UL 1059 #define FUNC_VF_CFG_REQ_FLAGS_L2_CTX_ASSETS_TEST 0x80UL 1060 __le16 num_rsscos_ctxs; 1061 __le16 num_cmpl_rings; 1062 __le16 num_tx_rings; 1063 __le16 num_rx_rings; 1064 __le16 num_l2_ctxs; 1065 __le16 num_vnics; 1066 __le16 num_stat_ctxs; 1067 __le16 num_hw_ring_grps; 1068 u8 unused_0[4]; 1069 }; 1070 1071 /* hwrm_func_vf_cfg_output (size:128b/16B) */ 1072 struct hwrm_func_vf_cfg_output { 1073 __le16 error_code; 1074 __le16 req_type; 1075 __le16 seq_id; 1076 __le16 resp_len; 1077 u8 unused_0[7]; 1078 u8 valid; 1079 }; 1080 1081 /* hwrm_func_qcaps_input (size:192b/24B) */ 1082 struct hwrm_func_qcaps_input { 1083 __le16 req_type; 1084 __le16 cmpl_ring; 1085 __le16 seq_id; 1086 __le16 target_id; 1087 __le64 resp_addr; 1088 __le16 fid; 1089 u8 unused_0[6]; 1090 }; 1091 1092 /* hwrm_func_qcaps_output (size:640b/80B) */ 1093 struct hwrm_func_qcaps_output { 1094 __le16 error_code; 1095 __le16 req_type; 1096 __le16 seq_id; 1097 __le16 resp_len; 1098 __le16 fid; 1099 __le16 port_id; 1100 __le32 flags; 1101 #define FUNC_QCAPS_RESP_FLAGS_PUSH_MODE_SUPPORTED 0x1UL 1102 #define FUNC_QCAPS_RESP_FLAGS_GLOBAL_MSIX_AUTOMASKING 0x2UL 1103 #define FUNC_QCAPS_RESP_FLAGS_PTP_SUPPORTED 0x4UL 1104 #define FUNC_QCAPS_RESP_FLAGS_ROCE_V1_SUPPORTED 0x8UL 1105 #define FUNC_QCAPS_RESP_FLAGS_ROCE_V2_SUPPORTED 0x10UL 1106 #define FUNC_QCAPS_RESP_FLAGS_WOL_MAGICPKT_SUPPORTED 0x20UL 1107 #define FUNC_QCAPS_RESP_FLAGS_WOL_BMP_SUPPORTED 0x40UL 1108 #define FUNC_QCAPS_RESP_FLAGS_TX_RING_RL_SUPPORTED 0x80UL 1109 #define FUNC_QCAPS_RESP_FLAGS_TX_BW_CFG_SUPPORTED 0x100UL 1110 #define FUNC_QCAPS_RESP_FLAGS_VF_TX_RING_RL_SUPPORTED 0x200UL 1111 #define FUNC_QCAPS_RESP_FLAGS_VF_BW_CFG_SUPPORTED 0x400UL 1112 #define FUNC_QCAPS_RESP_FLAGS_STD_TX_RING_MODE_SUPPORTED 0x800UL 1113 #define FUNC_QCAPS_RESP_FLAGS_GENEVE_TUN_FLAGS_SUPPORTED 0x1000UL 1114 #define FUNC_QCAPS_RESP_FLAGS_NVGRE_TUN_FLAGS_SUPPORTED 0x2000UL 1115 #define FUNC_QCAPS_RESP_FLAGS_GRE_TUN_FLAGS_SUPPORTED 0x4000UL 1116 #define FUNC_QCAPS_RESP_FLAGS_MPLS_TUN_FLAGS_SUPPORTED 0x8000UL 1117 #define FUNC_QCAPS_RESP_FLAGS_PCIE_STATS_SUPPORTED 0x10000UL 1118 #define FUNC_QCAPS_RESP_FLAGS_ADOPTED_PF_SUPPORTED 0x20000UL 1119 #define FUNC_QCAPS_RESP_FLAGS_ADMIN_PF_SUPPORTED 0x40000UL 1120 #define FUNC_QCAPS_RESP_FLAGS_LINK_ADMIN_STATUS_SUPPORTED 0x80000UL 1121 #define FUNC_QCAPS_RESP_FLAGS_WCB_PUSH_MODE 0x100000UL 1122 #define FUNC_QCAPS_RESP_FLAGS_DYNAMIC_TX_RING_ALLOC 0x200000UL 1123 #define FUNC_QCAPS_RESP_FLAGS_HOT_RESET_CAPABLE 0x400000UL 1124 #define FUNC_QCAPS_RESP_FLAGS_ERROR_RECOVERY_CAPABLE 0x800000UL 1125 #define FUNC_QCAPS_RESP_FLAGS_EXT_STATS_SUPPORTED 0x1000000UL 1126 #define FUNC_QCAPS_RESP_FLAGS_ERR_RECOVER_RELOAD 0x2000000UL 1127 #define FUNC_QCAPS_RESP_FLAGS_NOTIFY_VF_DEF_VNIC_CHNG_SUPPORTED 0x4000000UL 1128 #define FUNC_QCAPS_RESP_FLAGS_VLAN_ACCELERATION_TX_DISABLED 0x8000000UL 1129 u8 mac_address[6]; 1130 __le16 max_rsscos_ctx; 1131 __le16 max_cmpl_rings; 1132 __le16 max_tx_rings; 1133 __le16 max_rx_rings; 1134 __le16 max_l2_ctxs; 1135 __le16 max_vnics; 1136 __le16 first_vf_id; 1137 __le16 max_vfs; 1138 __le16 max_stat_ctx; 1139 __le32 max_encap_records; 1140 __le32 max_decap_records; 1141 __le32 max_tx_em_flows; 1142 __le32 max_tx_wm_flows; 1143 __le32 max_rx_em_flows; 1144 __le32 max_rx_wm_flows; 1145 __le32 max_mcast_filters; 1146 __le32 max_flow_id; 1147 __le32 max_hw_ring_grps; 1148 __le16 max_sp_tx_rings; 1149 u8 unused_0; 1150 u8 valid; 1151 }; 1152 1153 /* hwrm_func_qcfg_input (size:192b/24B) */ 1154 struct hwrm_func_qcfg_input { 1155 __le16 req_type; 1156 __le16 cmpl_ring; 1157 __le16 seq_id; 1158 __le16 target_id; 1159 __le64 resp_addr; 1160 __le16 fid; 1161 u8 unused_0[6]; 1162 }; 1163 1164 /* hwrm_func_qcfg_output (size:704b/88B) */ 1165 struct hwrm_func_qcfg_output { 1166 __le16 error_code; 1167 __le16 req_type; 1168 __le16 seq_id; 1169 __le16 resp_len; 1170 __le16 fid; 1171 __le16 port_id; 1172 __le16 vlan; 1173 __le16 flags; 1174 #define FUNC_QCFG_RESP_FLAGS_OOB_WOL_MAGICPKT_ENABLED 0x1UL 1175 #define FUNC_QCFG_RESP_FLAGS_OOB_WOL_BMP_ENABLED 0x2UL 1176 #define FUNC_QCFG_RESP_FLAGS_FW_DCBX_AGENT_ENABLED 0x4UL 1177 #define FUNC_QCFG_RESP_FLAGS_STD_TX_RING_MODE_ENABLED 0x8UL 1178 #define FUNC_QCFG_RESP_FLAGS_FW_LLDP_AGENT_ENABLED 0x10UL 1179 #define FUNC_QCFG_RESP_FLAGS_MULTI_HOST 0x20UL 1180 #define FUNC_QCFG_RESP_FLAGS_TRUSTED_VF 0x40UL 1181 #define FUNC_QCFG_RESP_FLAGS_SECURE_MODE_ENABLED 0x80UL 1182 #define FUNC_QCFG_RESP_FLAGS_PREBOOT_LEGACY_L2_RINGS 0x100UL 1183 u8 mac_address[6]; 1184 __le16 pci_id; 1185 __le16 alloc_rsscos_ctx; 1186 __le16 alloc_cmpl_rings; 1187 __le16 alloc_tx_rings; 1188 __le16 alloc_rx_rings; 1189 __le16 alloc_l2_ctx; 1190 __le16 alloc_vnics; 1191 __le16 mtu; 1192 __le16 mru; 1193 __le16 stat_ctx_id; 1194 u8 port_partition_type; 1195 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_SPF 0x0UL 1196 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_MPFS 0x1UL 1197 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_0 0x2UL 1198 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_5 0x3UL 1199 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR2_0 0x4UL 1200 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_UNKNOWN 0xffUL 1201 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_LAST FUNC_QCFG_RESP_PORT_PARTITION_TYPE_UNKNOWN 1202 u8 port_pf_cnt; 1203 #define FUNC_QCFG_RESP_PORT_PF_CNT_UNAVAIL 0x0UL 1204 #define FUNC_QCFG_RESP_PORT_PF_CNT_LAST FUNC_QCFG_RESP_PORT_PF_CNT_UNAVAIL 1205 __le16 dflt_vnic_id; 1206 __le16 max_mtu_configured; 1207 __le32 min_bw; 1208 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_MASK 0xfffffffUL 1209 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_SFT 0 1210 #define FUNC_QCFG_RESP_MIN_BW_SCALE 0x10000000UL 1211 #define FUNC_QCFG_RESP_MIN_BW_SCALE_BITS (0x0UL << 28) 1212 #define FUNC_QCFG_RESP_MIN_BW_SCALE_BYTES (0x1UL << 28) 1213 #define FUNC_QCFG_RESP_MIN_BW_SCALE_LAST FUNC_QCFG_RESP_MIN_BW_SCALE_BYTES 1214 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 1215 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_SFT 29 1216 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 1217 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 1218 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 1219 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 1220 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 1221 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 1222 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_LAST FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_INVALID 1223 __le32 max_bw; 1224 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_MASK 0xfffffffUL 1225 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_SFT 0 1226 #define FUNC_QCFG_RESP_MAX_BW_SCALE 0x10000000UL 1227 #define FUNC_QCFG_RESP_MAX_BW_SCALE_BITS (0x0UL << 28) 1228 #define FUNC_QCFG_RESP_MAX_BW_SCALE_BYTES (0x1UL << 28) 1229 #define FUNC_QCFG_RESP_MAX_BW_SCALE_LAST FUNC_QCFG_RESP_MAX_BW_SCALE_BYTES 1230 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 1231 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_SFT 29 1232 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 1233 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 1234 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 1235 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 1236 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 1237 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 1238 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_LAST FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_INVALID 1239 u8 evb_mode; 1240 #define FUNC_QCFG_RESP_EVB_MODE_NO_EVB 0x0UL 1241 #define FUNC_QCFG_RESP_EVB_MODE_VEB 0x1UL 1242 #define FUNC_QCFG_RESP_EVB_MODE_VEPA 0x2UL 1243 #define FUNC_QCFG_RESP_EVB_MODE_LAST FUNC_QCFG_RESP_EVB_MODE_VEPA 1244 u8 options; 1245 #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_MASK 0x3UL 1246 #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SFT 0 1247 #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SIZE_64 0x0UL 1248 #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SIZE_128 0x1UL 1249 #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_LAST FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SIZE_128 1250 #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_MASK 0xcUL 1251 #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_SFT 2 1252 #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_FORCED_DOWN (0x0UL << 2) 1253 #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_FORCED_UP (0x1UL << 2) 1254 #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_AUTO (0x2UL << 2) 1255 #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_LAST FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_AUTO 1256 #define FUNC_QCFG_RESP_OPTIONS_RSVD_MASK 0xf0UL 1257 #define FUNC_QCFG_RESP_OPTIONS_RSVD_SFT 4 1258 __le16 alloc_vfs; 1259 __le32 alloc_mcast_filters; 1260 __le32 alloc_hw_ring_grps; 1261 __le16 alloc_sp_tx_rings; 1262 __le16 alloc_stat_ctx; 1263 __le16 alloc_msix; 1264 __le16 registered_vfs; 1265 __le16 l2_doorbell_bar_size_kb; 1266 u8 unused_1; 1267 u8 always_1; 1268 __le32 reset_addr_poll; 1269 __le16 legacy_l2_db_size_kb; 1270 u8 unused_2[1]; 1271 u8 valid; 1272 }; 1273 1274 /* hwrm_func_cfg_input (size:704b/88B) */ 1275 struct hwrm_func_cfg_input { 1276 __le16 req_type; 1277 __le16 cmpl_ring; 1278 __le16 seq_id; 1279 __le16 target_id; 1280 __le64 resp_addr; 1281 __le16 fid; 1282 __le16 num_msix; 1283 __le32 flags; 1284 #define FUNC_CFG_REQ_FLAGS_SRC_MAC_ADDR_CHECK_DISABLE 0x1UL 1285 #define FUNC_CFG_REQ_FLAGS_SRC_MAC_ADDR_CHECK_ENABLE 0x2UL 1286 #define FUNC_CFG_REQ_FLAGS_RSVD_MASK 0x1fcUL 1287 #define FUNC_CFG_REQ_FLAGS_RSVD_SFT 2 1288 #define FUNC_CFG_REQ_FLAGS_STD_TX_RING_MODE_ENABLE 0x200UL 1289 #define FUNC_CFG_REQ_FLAGS_STD_TX_RING_MODE_DISABLE 0x400UL 1290 #define FUNC_CFG_REQ_FLAGS_VIRT_MAC_PERSIST 0x800UL 1291 #define FUNC_CFG_REQ_FLAGS_NO_AUTOCLEAR_STATISTIC 0x1000UL 1292 #define FUNC_CFG_REQ_FLAGS_TX_ASSETS_TEST 0x2000UL 1293 #define FUNC_CFG_REQ_FLAGS_RX_ASSETS_TEST 0x4000UL 1294 #define FUNC_CFG_REQ_FLAGS_CMPL_ASSETS_TEST 0x8000UL 1295 #define FUNC_CFG_REQ_FLAGS_RSSCOS_CTX_ASSETS_TEST 0x10000UL 1296 #define FUNC_CFG_REQ_FLAGS_RING_GRP_ASSETS_TEST 0x20000UL 1297 #define FUNC_CFG_REQ_FLAGS_STAT_CTX_ASSETS_TEST 0x40000UL 1298 #define FUNC_CFG_REQ_FLAGS_VNIC_ASSETS_TEST 0x80000UL 1299 #define FUNC_CFG_REQ_FLAGS_L2_CTX_ASSETS_TEST 0x100000UL 1300 #define FUNC_CFG_REQ_FLAGS_TRUSTED_VF_ENABLE 0x200000UL 1301 #define FUNC_CFG_REQ_FLAGS_DYNAMIC_TX_RING_ALLOC 0x400000UL 1302 #define FUNC_CFG_REQ_FLAGS_NQ_ASSETS_TEST 0x800000UL 1303 #define FUNC_CFG_REQ_FLAGS_TRUSTED_VF_DISABLE 0x1000000UL 1304 #define FUNC_CFG_REQ_FLAGS_PREBOOT_LEGACY_L2_RINGS 0x2000000UL 1305 __le32 enables; 1306 #define FUNC_CFG_REQ_ENABLES_MTU 0x1UL 1307 #define FUNC_CFG_REQ_ENABLES_MRU 0x2UL 1308 #define FUNC_CFG_REQ_ENABLES_NUM_RSSCOS_CTXS 0x4UL 1309 #define FUNC_CFG_REQ_ENABLES_NUM_CMPL_RINGS 0x8UL 1310 #define FUNC_CFG_REQ_ENABLES_NUM_TX_RINGS 0x10UL 1311 #define FUNC_CFG_REQ_ENABLES_NUM_RX_RINGS 0x20UL 1312 #define FUNC_CFG_REQ_ENABLES_NUM_L2_CTXS 0x40UL 1313 #define FUNC_CFG_REQ_ENABLES_NUM_VNICS 0x80UL 1314 #define FUNC_CFG_REQ_ENABLES_NUM_STAT_CTXS 0x100UL 1315 #define FUNC_CFG_REQ_ENABLES_DFLT_MAC_ADDR 0x200UL 1316 #define FUNC_CFG_REQ_ENABLES_DFLT_VLAN 0x400UL 1317 #define FUNC_CFG_REQ_ENABLES_DFLT_IP_ADDR 0x800UL 1318 #define FUNC_CFG_REQ_ENABLES_MIN_BW 0x1000UL 1319 #define FUNC_CFG_REQ_ENABLES_MAX_BW 0x2000UL 1320 #define FUNC_CFG_REQ_ENABLES_ASYNC_EVENT_CR 0x4000UL 1321 #define FUNC_CFG_REQ_ENABLES_VLAN_ANTISPOOF_MODE 0x8000UL 1322 #define FUNC_CFG_REQ_ENABLES_ALLOWED_VLAN_PRIS 0x10000UL 1323 #define FUNC_CFG_REQ_ENABLES_EVB_MODE 0x20000UL 1324 #define FUNC_CFG_REQ_ENABLES_NUM_MCAST_FILTERS 0x40000UL 1325 #define FUNC_CFG_REQ_ENABLES_NUM_HW_RING_GRPS 0x80000UL 1326 #define FUNC_CFG_REQ_ENABLES_CACHE_LINESIZE 0x100000UL 1327 #define FUNC_CFG_REQ_ENABLES_NUM_MSIX 0x200000UL 1328 #define FUNC_CFG_REQ_ENABLES_ADMIN_LINK_STATE 0x400000UL 1329 __le16 mtu; 1330 __le16 mru; 1331 __le16 num_rsscos_ctxs; 1332 __le16 num_cmpl_rings; 1333 __le16 num_tx_rings; 1334 __le16 num_rx_rings; 1335 __le16 num_l2_ctxs; 1336 __le16 num_vnics; 1337 __le16 num_stat_ctxs; 1338 __le16 num_hw_ring_grps; 1339 u8 dflt_mac_addr[6]; 1340 __le16 dflt_vlan; 1341 __be32 dflt_ip_addr[4]; 1342 __le32 min_bw; 1343 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_MASK 0xfffffffUL 1344 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_SFT 0 1345 #define FUNC_CFG_REQ_MIN_BW_SCALE 0x10000000UL 1346 #define FUNC_CFG_REQ_MIN_BW_SCALE_BITS (0x0UL << 28) 1347 #define FUNC_CFG_REQ_MIN_BW_SCALE_BYTES (0x1UL << 28) 1348 #define FUNC_CFG_REQ_MIN_BW_SCALE_LAST FUNC_CFG_REQ_MIN_BW_SCALE_BYTES 1349 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 1350 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_SFT 29 1351 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 1352 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 1353 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 1354 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 1355 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 1356 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 1357 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_LAST FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_INVALID 1358 __le32 max_bw; 1359 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_MASK 0xfffffffUL 1360 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_SFT 0 1361 #define FUNC_CFG_REQ_MAX_BW_SCALE 0x10000000UL 1362 #define FUNC_CFG_REQ_MAX_BW_SCALE_BITS (0x0UL << 28) 1363 #define FUNC_CFG_REQ_MAX_BW_SCALE_BYTES (0x1UL << 28) 1364 #define FUNC_CFG_REQ_MAX_BW_SCALE_LAST FUNC_CFG_REQ_MAX_BW_SCALE_BYTES 1365 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 1366 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_SFT 29 1367 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 1368 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 1369 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 1370 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 1371 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 1372 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 1373 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_LAST FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_INVALID 1374 __le16 async_event_cr; 1375 u8 vlan_antispoof_mode; 1376 #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_NOCHECK 0x0UL 1377 #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_VALIDATE_VLAN 0x1UL 1378 #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_INSERT_IF_VLANDNE 0x2UL 1379 #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_INSERT_OR_OVERRIDE_VLAN 0x3UL 1380 #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_LAST FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_INSERT_OR_OVERRIDE_VLAN 1381 u8 allowed_vlan_pris; 1382 u8 evb_mode; 1383 #define FUNC_CFG_REQ_EVB_MODE_NO_EVB 0x0UL 1384 #define FUNC_CFG_REQ_EVB_MODE_VEB 0x1UL 1385 #define FUNC_CFG_REQ_EVB_MODE_VEPA 0x2UL 1386 #define FUNC_CFG_REQ_EVB_MODE_LAST FUNC_CFG_REQ_EVB_MODE_VEPA 1387 u8 options; 1388 #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_MASK 0x3UL 1389 #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SFT 0 1390 #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SIZE_64 0x0UL 1391 #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SIZE_128 0x1UL 1392 #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_LAST FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SIZE_128 1393 #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_MASK 0xcUL 1394 #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_SFT 2 1395 #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_FORCED_DOWN (0x0UL << 2) 1396 #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_FORCED_UP (0x1UL << 2) 1397 #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_AUTO (0x2UL << 2) 1398 #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_LAST FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_AUTO 1399 #define FUNC_CFG_REQ_OPTIONS_RSVD_MASK 0xf0UL 1400 #define FUNC_CFG_REQ_OPTIONS_RSVD_SFT 4 1401 __le16 num_mcast_filters; 1402 }; 1403 1404 /* hwrm_func_cfg_output (size:128b/16B) */ 1405 struct hwrm_func_cfg_output { 1406 __le16 error_code; 1407 __le16 req_type; 1408 __le16 seq_id; 1409 __le16 resp_len; 1410 u8 unused_0[7]; 1411 u8 valid; 1412 }; 1413 1414 /* hwrm_func_qstats_input (size:192b/24B) */ 1415 struct hwrm_func_qstats_input { 1416 __le16 req_type; 1417 __le16 cmpl_ring; 1418 __le16 seq_id; 1419 __le16 target_id; 1420 __le64 resp_addr; 1421 __le16 fid; 1422 u8 flags; 1423 #define FUNC_QSTATS_REQ_FLAGS_UNUSED 0x0UL 1424 #define FUNC_QSTATS_REQ_FLAGS_ROCE_ONLY 0x1UL 1425 #define FUNC_QSTATS_REQ_FLAGS_LAST FUNC_QSTATS_REQ_FLAGS_ROCE_ONLY 1426 u8 unused_0[5]; 1427 }; 1428 1429 /* hwrm_func_qstats_output (size:1408b/176B) */ 1430 struct hwrm_func_qstats_output { 1431 __le16 error_code; 1432 __le16 req_type; 1433 __le16 seq_id; 1434 __le16 resp_len; 1435 __le64 tx_ucast_pkts; 1436 __le64 tx_mcast_pkts; 1437 __le64 tx_bcast_pkts; 1438 __le64 tx_discard_pkts; 1439 __le64 tx_drop_pkts; 1440 __le64 tx_ucast_bytes; 1441 __le64 tx_mcast_bytes; 1442 __le64 tx_bcast_bytes; 1443 __le64 rx_ucast_pkts; 1444 __le64 rx_mcast_pkts; 1445 __le64 rx_bcast_pkts; 1446 __le64 rx_discard_pkts; 1447 __le64 rx_drop_pkts; 1448 __le64 rx_ucast_bytes; 1449 __le64 rx_mcast_bytes; 1450 __le64 rx_bcast_bytes; 1451 __le64 rx_agg_pkts; 1452 __le64 rx_agg_bytes; 1453 __le64 rx_agg_events; 1454 __le64 rx_agg_aborts; 1455 u8 unused_0[7]; 1456 u8 valid; 1457 }; 1458 1459 /* hwrm_func_clr_stats_input (size:192b/24B) */ 1460 struct hwrm_func_clr_stats_input { 1461 __le16 req_type; 1462 __le16 cmpl_ring; 1463 __le16 seq_id; 1464 __le16 target_id; 1465 __le64 resp_addr; 1466 __le16 fid; 1467 u8 unused_0[6]; 1468 }; 1469 1470 /* hwrm_func_clr_stats_output (size:128b/16B) */ 1471 struct hwrm_func_clr_stats_output { 1472 __le16 error_code; 1473 __le16 req_type; 1474 __le16 seq_id; 1475 __le16 resp_len; 1476 u8 unused_0[7]; 1477 u8 valid; 1478 }; 1479 1480 /* hwrm_func_vf_resc_free_input (size:192b/24B) */ 1481 struct hwrm_func_vf_resc_free_input { 1482 __le16 req_type; 1483 __le16 cmpl_ring; 1484 __le16 seq_id; 1485 __le16 target_id; 1486 __le64 resp_addr; 1487 __le16 vf_id; 1488 u8 unused_0[6]; 1489 }; 1490 1491 /* hwrm_func_vf_resc_free_output (size:128b/16B) */ 1492 struct hwrm_func_vf_resc_free_output { 1493 __le16 error_code; 1494 __le16 req_type; 1495 __le16 seq_id; 1496 __le16 resp_len; 1497 u8 unused_0[7]; 1498 u8 valid; 1499 }; 1500 1501 /* hwrm_func_drv_rgtr_input (size:896b/112B) */ 1502 struct hwrm_func_drv_rgtr_input { 1503 __le16 req_type; 1504 __le16 cmpl_ring; 1505 __le16 seq_id; 1506 __le16 target_id; 1507 __le64 resp_addr; 1508 __le32 flags; 1509 #define FUNC_DRV_RGTR_REQ_FLAGS_FWD_ALL_MODE 0x1UL 1510 #define FUNC_DRV_RGTR_REQ_FLAGS_FWD_NONE_MODE 0x2UL 1511 #define FUNC_DRV_RGTR_REQ_FLAGS_16BIT_VER_MODE 0x4UL 1512 #define FUNC_DRV_RGTR_REQ_FLAGS_FLOW_HANDLE_64BIT_MODE 0x8UL 1513 #define FUNC_DRV_RGTR_REQ_FLAGS_HOT_RESET_SUPPORT 0x10UL 1514 #define FUNC_DRV_RGTR_REQ_FLAGS_ERROR_RECOVERY_SUPPORT 0x20UL 1515 #define FUNC_DRV_RGTR_REQ_FLAGS_MASTER_SUPPORT 0x40UL 1516 __le32 enables; 1517 #define FUNC_DRV_RGTR_REQ_ENABLES_OS_TYPE 0x1UL 1518 #define FUNC_DRV_RGTR_REQ_ENABLES_VER 0x2UL 1519 #define FUNC_DRV_RGTR_REQ_ENABLES_TIMESTAMP 0x4UL 1520 #define FUNC_DRV_RGTR_REQ_ENABLES_VF_REQ_FWD 0x8UL 1521 #define FUNC_DRV_RGTR_REQ_ENABLES_ASYNC_EVENT_FWD 0x10UL 1522 __le16 os_type; 1523 #define FUNC_DRV_RGTR_REQ_OS_TYPE_UNKNOWN 0x0UL 1524 #define FUNC_DRV_RGTR_REQ_OS_TYPE_OTHER 0x1UL 1525 #define FUNC_DRV_RGTR_REQ_OS_TYPE_MSDOS 0xeUL 1526 #define FUNC_DRV_RGTR_REQ_OS_TYPE_WINDOWS 0x12UL 1527 #define FUNC_DRV_RGTR_REQ_OS_TYPE_SOLARIS 0x1dUL 1528 #define FUNC_DRV_RGTR_REQ_OS_TYPE_LINUX 0x24UL 1529 #define FUNC_DRV_RGTR_REQ_OS_TYPE_FREEBSD 0x2aUL 1530 #define FUNC_DRV_RGTR_REQ_OS_TYPE_ESXI 0x68UL 1531 #define FUNC_DRV_RGTR_REQ_OS_TYPE_WIN864 0x73UL 1532 #define FUNC_DRV_RGTR_REQ_OS_TYPE_WIN2012R2 0x74UL 1533 #define FUNC_DRV_RGTR_REQ_OS_TYPE_UEFI 0x8000UL 1534 #define FUNC_DRV_RGTR_REQ_OS_TYPE_LAST FUNC_DRV_RGTR_REQ_OS_TYPE_UEFI 1535 u8 ver_maj_8b; 1536 u8 ver_min_8b; 1537 u8 ver_upd_8b; 1538 u8 unused_0[3]; 1539 __le32 timestamp; 1540 u8 unused_1[4]; 1541 __le32 vf_req_fwd[8]; 1542 __le32 async_event_fwd[8]; 1543 __le16 ver_maj; 1544 __le16 ver_min; 1545 __le16 ver_upd; 1546 __le16 ver_patch; 1547 }; 1548 1549 /* hwrm_func_drv_rgtr_output (size:128b/16B) */ 1550 struct hwrm_func_drv_rgtr_output { 1551 __le16 error_code; 1552 __le16 req_type; 1553 __le16 seq_id; 1554 __le16 resp_len; 1555 __le32 flags; 1556 #define FUNC_DRV_RGTR_RESP_FLAGS_IF_CHANGE_SUPPORTED 0x1UL 1557 u8 unused_0[3]; 1558 u8 valid; 1559 }; 1560 1561 /* hwrm_func_drv_unrgtr_input (size:192b/24B) */ 1562 struct hwrm_func_drv_unrgtr_input { 1563 __le16 req_type; 1564 __le16 cmpl_ring; 1565 __le16 seq_id; 1566 __le16 target_id; 1567 __le64 resp_addr; 1568 __le32 flags; 1569 #define FUNC_DRV_UNRGTR_REQ_FLAGS_PREPARE_FOR_SHUTDOWN 0x1UL 1570 u8 unused_0[4]; 1571 }; 1572 1573 /* hwrm_func_drv_unrgtr_output (size:128b/16B) */ 1574 struct hwrm_func_drv_unrgtr_output { 1575 __le16 error_code; 1576 __le16 req_type; 1577 __le16 seq_id; 1578 __le16 resp_len; 1579 u8 unused_0[7]; 1580 u8 valid; 1581 }; 1582 1583 /* hwrm_func_buf_rgtr_input (size:1024b/128B) */ 1584 struct hwrm_func_buf_rgtr_input { 1585 __le16 req_type; 1586 __le16 cmpl_ring; 1587 __le16 seq_id; 1588 __le16 target_id; 1589 __le64 resp_addr; 1590 __le32 enables; 1591 #define FUNC_BUF_RGTR_REQ_ENABLES_VF_ID 0x1UL 1592 #define FUNC_BUF_RGTR_REQ_ENABLES_ERR_BUF_ADDR 0x2UL 1593 __le16 vf_id; 1594 __le16 req_buf_num_pages; 1595 __le16 req_buf_page_size; 1596 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_16B 0x4UL 1597 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_4K 0xcUL 1598 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_8K 0xdUL 1599 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_64K 0x10UL 1600 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_2M 0x15UL 1601 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_4M 0x16UL 1602 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_1G 0x1eUL 1603 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_LAST FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_1G 1604 __le16 req_buf_len; 1605 __le16 resp_buf_len; 1606 u8 unused_0[2]; 1607 __le64 req_buf_page_addr0; 1608 __le64 req_buf_page_addr1; 1609 __le64 req_buf_page_addr2; 1610 __le64 req_buf_page_addr3; 1611 __le64 req_buf_page_addr4; 1612 __le64 req_buf_page_addr5; 1613 __le64 req_buf_page_addr6; 1614 __le64 req_buf_page_addr7; 1615 __le64 req_buf_page_addr8; 1616 __le64 req_buf_page_addr9; 1617 __le64 error_buf_addr; 1618 __le64 resp_buf_addr; 1619 }; 1620 1621 /* hwrm_func_buf_rgtr_output (size:128b/16B) */ 1622 struct hwrm_func_buf_rgtr_output { 1623 __le16 error_code; 1624 __le16 req_type; 1625 __le16 seq_id; 1626 __le16 resp_len; 1627 u8 unused_0[7]; 1628 u8 valid; 1629 }; 1630 1631 /* hwrm_func_drv_qver_input (size:192b/24B) */ 1632 struct hwrm_func_drv_qver_input { 1633 __le16 req_type; 1634 __le16 cmpl_ring; 1635 __le16 seq_id; 1636 __le16 target_id; 1637 __le64 resp_addr; 1638 __le32 reserved; 1639 __le16 fid; 1640 u8 unused_0[2]; 1641 }; 1642 1643 /* hwrm_func_drv_qver_output (size:256b/32B) */ 1644 struct hwrm_func_drv_qver_output { 1645 __le16 error_code; 1646 __le16 req_type; 1647 __le16 seq_id; 1648 __le16 resp_len; 1649 __le16 os_type; 1650 #define FUNC_DRV_QVER_RESP_OS_TYPE_UNKNOWN 0x0UL 1651 #define FUNC_DRV_QVER_RESP_OS_TYPE_OTHER 0x1UL 1652 #define FUNC_DRV_QVER_RESP_OS_TYPE_MSDOS 0xeUL 1653 #define FUNC_DRV_QVER_RESP_OS_TYPE_WINDOWS 0x12UL 1654 #define FUNC_DRV_QVER_RESP_OS_TYPE_SOLARIS 0x1dUL 1655 #define FUNC_DRV_QVER_RESP_OS_TYPE_LINUX 0x24UL 1656 #define FUNC_DRV_QVER_RESP_OS_TYPE_FREEBSD 0x2aUL 1657 #define FUNC_DRV_QVER_RESP_OS_TYPE_ESXI 0x68UL 1658 #define FUNC_DRV_QVER_RESP_OS_TYPE_WIN864 0x73UL 1659 #define FUNC_DRV_QVER_RESP_OS_TYPE_WIN2012R2 0x74UL 1660 #define FUNC_DRV_QVER_RESP_OS_TYPE_UEFI 0x8000UL 1661 #define FUNC_DRV_QVER_RESP_OS_TYPE_LAST FUNC_DRV_QVER_RESP_OS_TYPE_UEFI 1662 u8 ver_maj_8b; 1663 u8 ver_min_8b; 1664 u8 ver_upd_8b; 1665 u8 unused_0[3]; 1666 __le16 ver_maj; 1667 __le16 ver_min; 1668 __le16 ver_upd; 1669 __le16 ver_patch; 1670 u8 unused_1[7]; 1671 u8 valid; 1672 }; 1673 1674 /* hwrm_func_resource_qcaps_input (size:192b/24B) */ 1675 struct hwrm_func_resource_qcaps_input { 1676 __le16 req_type; 1677 __le16 cmpl_ring; 1678 __le16 seq_id; 1679 __le16 target_id; 1680 __le64 resp_addr; 1681 __le16 fid; 1682 u8 unused_0[6]; 1683 }; 1684 1685 /* hwrm_func_resource_qcaps_output (size:448b/56B) */ 1686 struct hwrm_func_resource_qcaps_output { 1687 __le16 error_code; 1688 __le16 req_type; 1689 __le16 seq_id; 1690 __le16 resp_len; 1691 __le16 max_vfs; 1692 __le16 max_msix; 1693 __le16 vf_reservation_strategy; 1694 #define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MAXIMAL 0x0UL 1695 #define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MINIMAL 0x1UL 1696 #define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MINIMAL_STATIC 0x2UL 1697 #define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_LAST FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MINIMAL_STATIC 1698 __le16 min_rsscos_ctx; 1699 __le16 max_rsscos_ctx; 1700 __le16 min_cmpl_rings; 1701 __le16 max_cmpl_rings; 1702 __le16 min_tx_rings; 1703 __le16 max_tx_rings; 1704 __le16 min_rx_rings; 1705 __le16 max_rx_rings; 1706 __le16 min_l2_ctxs; 1707 __le16 max_l2_ctxs; 1708 __le16 min_vnics; 1709 __le16 max_vnics; 1710 __le16 min_stat_ctx; 1711 __le16 max_stat_ctx; 1712 __le16 min_hw_ring_grps; 1713 __le16 max_hw_ring_grps; 1714 __le16 max_tx_scheduler_inputs; 1715 __le16 flags; 1716 #define FUNC_RESOURCE_QCAPS_RESP_FLAGS_MIN_GUARANTEED 0x1UL 1717 u8 unused_0[5]; 1718 u8 valid; 1719 }; 1720 1721 /* hwrm_func_vf_resource_cfg_input (size:448b/56B) */ 1722 struct hwrm_func_vf_resource_cfg_input { 1723 __le16 req_type; 1724 __le16 cmpl_ring; 1725 __le16 seq_id; 1726 __le16 target_id; 1727 __le64 resp_addr; 1728 __le16 vf_id; 1729 __le16 max_msix; 1730 __le16 min_rsscos_ctx; 1731 __le16 max_rsscos_ctx; 1732 __le16 min_cmpl_rings; 1733 __le16 max_cmpl_rings; 1734 __le16 min_tx_rings; 1735 __le16 max_tx_rings; 1736 __le16 min_rx_rings; 1737 __le16 max_rx_rings; 1738 __le16 min_l2_ctxs; 1739 __le16 max_l2_ctxs; 1740 __le16 min_vnics; 1741 __le16 max_vnics; 1742 __le16 min_stat_ctx; 1743 __le16 max_stat_ctx; 1744 __le16 min_hw_ring_grps; 1745 __le16 max_hw_ring_grps; 1746 __le16 flags; 1747 #define FUNC_VF_RESOURCE_CFG_REQ_FLAGS_MIN_GUARANTEED 0x1UL 1748 u8 unused_0[2]; 1749 }; 1750 1751 /* hwrm_func_vf_resource_cfg_output (size:256b/32B) */ 1752 struct hwrm_func_vf_resource_cfg_output { 1753 __le16 error_code; 1754 __le16 req_type; 1755 __le16 seq_id; 1756 __le16 resp_len; 1757 __le16 reserved_rsscos_ctx; 1758 __le16 reserved_cmpl_rings; 1759 __le16 reserved_tx_rings; 1760 __le16 reserved_rx_rings; 1761 __le16 reserved_l2_ctxs; 1762 __le16 reserved_vnics; 1763 __le16 reserved_stat_ctx; 1764 __le16 reserved_hw_ring_grps; 1765 u8 unused_0[7]; 1766 u8 valid; 1767 }; 1768 1769 /* hwrm_func_backing_store_qcaps_input (size:128b/16B) */ 1770 struct hwrm_func_backing_store_qcaps_input { 1771 __le16 req_type; 1772 __le16 cmpl_ring; 1773 __le16 seq_id; 1774 __le16 target_id; 1775 __le64 resp_addr; 1776 }; 1777 1778 /* hwrm_func_backing_store_qcaps_output (size:640b/80B) */ 1779 struct hwrm_func_backing_store_qcaps_output { 1780 __le16 error_code; 1781 __le16 req_type; 1782 __le16 seq_id; 1783 __le16 resp_len; 1784 __le32 qp_max_entries; 1785 __le16 qp_min_qp1_entries; 1786 __le16 qp_max_l2_entries; 1787 __le16 qp_entry_size; 1788 __le16 srq_max_l2_entries; 1789 __le32 srq_max_entries; 1790 __le16 srq_entry_size; 1791 __le16 cq_max_l2_entries; 1792 __le32 cq_max_entries; 1793 __le16 cq_entry_size; 1794 __le16 vnic_max_vnic_entries; 1795 __le16 vnic_max_ring_table_entries; 1796 __le16 vnic_entry_size; 1797 __le32 stat_max_entries; 1798 __le16 stat_entry_size; 1799 __le16 tqm_entry_size; 1800 __le32 tqm_min_entries_per_ring; 1801 __le32 tqm_max_entries_per_ring; 1802 __le32 mrav_max_entries; 1803 __le16 mrav_entry_size; 1804 __le16 tim_entry_size; 1805 __le32 tim_max_entries; 1806 __le16 mrav_num_entries_units; 1807 u8 tqm_entries_multiple; 1808 u8 ctx_kind_initializer; 1809 __le32 rsvd; 1810 __le16 rsvd1; 1811 u8 rsvd2; 1812 u8 valid; 1813 }; 1814 1815 /* hwrm_func_backing_store_cfg_input (size:2048b/256B) */ 1816 struct hwrm_func_backing_store_cfg_input { 1817 __le16 req_type; 1818 __le16 cmpl_ring; 1819 __le16 seq_id; 1820 __le16 target_id; 1821 __le64 resp_addr; 1822 __le32 flags; 1823 #define FUNC_BACKING_STORE_CFG_REQ_FLAGS_PREBOOT_MODE 0x1UL 1824 #define FUNC_BACKING_STORE_CFG_REQ_FLAGS_MRAV_RESERVATION_SPLIT 0x2UL 1825 __le32 enables; 1826 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_QP 0x1UL 1827 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_SRQ 0x2UL 1828 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_CQ 0x4UL 1829 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_VNIC 0x8UL 1830 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_STAT 0x10UL 1831 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_SP 0x20UL 1832 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING0 0x40UL 1833 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING1 0x80UL 1834 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING2 0x100UL 1835 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING3 0x200UL 1836 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING4 0x400UL 1837 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING5 0x800UL 1838 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING6 0x1000UL 1839 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING7 0x2000UL 1840 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_MRAV 0x4000UL 1841 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TIM 0x8000UL 1842 u8 qpc_pg_size_qpc_lvl; 1843 #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_MASK 0xfUL 1844 #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_SFT 0 1845 #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_0 0x0UL 1846 #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_1 0x1UL 1847 #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_2 0x2UL 1848 #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_2 1849 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_MASK 0xf0UL 1850 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_SFT 4 1851 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_4K (0x0UL << 4) 1852 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_8K (0x1UL << 4) 1853 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_64K (0x2UL << 4) 1854 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_2M (0x3UL << 4) 1855 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_8M (0x4UL << 4) 1856 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_1G (0x5UL << 4) 1857 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_1G 1858 u8 srq_pg_size_srq_lvl; 1859 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_MASK 0xfUL 1860 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_SFT 0 1861 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_0 0x0UL 1862 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_1 0x1UL 1863 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_2 0x2UL 1864 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_2 1865 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_MASK 0xf0UL 1866 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_SFT 4 1867 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_4K (0x0UL << 4) 1868 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_8K (0x1UL << 4) 1869 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_64K (0x2UL << 4) 1870 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_2M (0x3UL << 4) 1871 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_8M (0x4UL << 4) 1872 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_1G (0x5UL << 4) 1873 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_1G 1874 u8 cq_pg_size_cq_lvl; 1875 #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_MASK 0xfUL 1876 #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_SFT 0 1877 #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_0 0x0UL 1878 #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_1 0x1UL 1879 #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_2 0x2UL 1880 #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_2 1881 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_MASK 0xf0UL 1882 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_SFT 4 1883 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_4K (0x0UL << 4) 1884 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_8K (0x1UL << 4) 1885 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_64K (0x2UL << 4) 1886 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_2M (0x3UL << 4) 1887 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_8M (0x4UL << 4) 1888 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_1G (0x5UL << 4) 1889 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_1G 1890 u8 vnic_pg_size_vnic_lvl; 1891 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_MASK 0xfUL 1892 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_SFT 0 1893 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_0 0x0UL 1894 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_1 0x1UL 1895 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_2 0x2UL 1896 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_2 1897 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_MASK 0xf0UL 1898 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_SFT 4 1899 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_4K (0x0UL << 4) 1900 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_8K (0x1UL << 4) 1901 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_64K (0x2UL << 4) 1902 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_2M (0x3UL << 4) 1903 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_8M (0x4UL << 4) 1904 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_1G (0x5UL << 4) 1905 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_1G 1906 u8 stat_pg_size_stat_lvl; 1907 #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_MASK 0xfUL 1908 #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_SFT 0 1909 #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_0 0x0UL 1910 #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_1 0x1UL 1911 #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_2 0x2UL 1912 #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_2 1913 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_MASK 0xf0UL 1914 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_SFT 4 1915 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_4K (0x0UL << 4) 1916 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_8K (0x1UL << 4) 1917 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_64K (0x2UL << 4) 1918 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_2M (0x3UL << 4) 1919 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_8M (0x4UL << 4) 1920 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_1G (0x5UL << 4) 1921 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_1G 1922 u8 tqm_sp_pg_size_tqm_sp_lvl; 1923 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_MASK 0xfUL 1924 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_SFT 0 1925 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_0 0x0UL 1926 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_1 0x1UL 1927 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_2 0x2UL 1928 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_2 1929 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_MASK 0xf0UL 1930 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_SFT 4 1931 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_4K (0x0UL << 4) 1932 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_8K (0x1UL << 4) 1933 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_64K (0x2UL << 4) 1934 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_2M (0x3UL << 4) 1935 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_8M (0x4UL << 4) 1936 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_1G (0x5UL << 4) 1937 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_1G 1938 u8 tqm_ring0_pg_size_tqm_ring0_lvl; 1939 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_MASK 0xfUL 1940 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_SFT 0 1941 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_0 0x0UL 1942 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_1 0x1UL 1943 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_2 0x2UL 1944 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_2 1945 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_MASK 0xf0UL 1946 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_SFT 4 1947 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_4K (0x0UL << 4) 1948 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_8K (0x1UL << 4) 1949 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_64K (0x2UL << 4) 1950 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_2M (0x3UL << 4) 1951 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_8M (0x4UL << 4) 1952 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_1G (0x5UL << 4) 1953 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_1G 1954 u8 tqm_ring1_pg_size_tqm_ring1_lvl; 1955 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_MASK 0xfUL 1956 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_SFT 0 1957 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_0 0x0UL 1958 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_1 0x1UL 1959 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_2 0x2UL 1960 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_2 1961 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_MASK 0xf0UL 1962 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_SFT 4 1963 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_4K (0x0UL << 4) 1964 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_8K (0x1UL << 4) 1965 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_64K (0x2UL << 4) 1966 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_2M (0x3UL << 4) 1967 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_8M (0x4UL << 4) 1968 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_1G (0x5UL << 4) 1969 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_1G 1970 u8 tqm_ring2_pg_size_tqm_ring2_lvl; 1971 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_MASK 0xfUL 1972 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_SFT 0 1973 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_0 0x0UL 1974 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_1 0x1UL 1975 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_2 0x2UL 1976 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_2 1977 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_MASK 0xf0UL 1978 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_SFT 4 1979 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_4K (0x0UL << 4) 1980 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_8K (0x1UL << 4) 1981 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_64K (0x2UL << 4) 1982 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_2M (0x3UL << 4) 1983 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_8M (0x4UL << 4) 1984 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_1G (0x5UL << 4) 1985 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_1G 1986 u8 tqm_ring3_pg_size_tqm_ring3_lvl; 1987 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_MASK 0xfUL 1988 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_SFT 0 1989 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_0 0x0UL 1990 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_1 0x1UL 1991 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_2 0x2UL 1992 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_2 1993 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_MASK 0xf0UL 1994 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_SFT 4 1995 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_4K (0x0UL << 4) 1996 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_8K (0x1UL << 4) 1997 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_64K (0x2UL << 4) 1998 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_2M (0x3UL << 4) 1999 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_8M (0x4UL << 4) 2000 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_1G (0x5UL << 4) 2001 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_1G 2002 u8 tqm_ring4_pg_size_tqm_ring4_lvl; 2003 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_MASK 0xfUL 2004 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_SFT 0 2005 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_0 0x0UL 2006 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_1 0x1UL 2007 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_2 0x2UL 2008 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_2 2009 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_MASK 0xf0UL 2010 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_SFT 4 2011 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_4K (0x0UL << 4) 2012 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_8K (0x1UL << 4) 2013 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_64K (0x2UL << 4) 2014 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_2M (0x3UL << 4) 2015 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_8M (0x4UL << 4) 2016 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_1G (0x5UL << 4) 2017 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_1G 2018 u8 tqm_ring5_pg_size_tqm_ring5_lvl; 2019 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_MASK 0xfUL 2020 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_SFT 0 2021 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_0 0x0UL 2022 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_1 0x1UL 2023 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_2 0x2UL 2024 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_2 2025 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_MASK 0xf0UL 2026 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_SFT 4 2027 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_4K (0x0UL << 4) 2028 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_8K (0x1UL << 4) 2029 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_64K (0x2UL << 4) 2030 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_2M (0x3UL << 4) 2031 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_8M (0x4UL << 4) 2032 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_1G (0x5UL << 4) 2033 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_1G 2034 u8 tqm_ring6_pg_size_tqm_ring6_lvl; 2035 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_MASK 0xfUL 2036 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_SFT 0 2037 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_0 0x0UL 2038 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_1 0x1UL 2039 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_2 0x2UL 2040 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_2 2041 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_MASK 0xf0UL 2042 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_SFT 4 2043 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_4K (0x0UL << 4) 2044 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_8K (0x1UL << 4) 2045 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_64K (0x2UL << 4) 2046 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_2M (0x3UL << 4) 2047 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_8M (0x4UL << 4) 2048 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_1G (0x5UL << 4) 2049 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_1G 2050 u8 tqm_ring7_pg_size_tqm_ring7_lvl; 2051 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_MASK 0xfUL 2052 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_SFT 0 2053 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_0 0x0UL 2054 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_1 0x1UL 2055 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_2 0x2UL 2056 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_2 2057 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_MASK 0xf0UL 2058 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_SFT 4 2059 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_4K (0x0UL << 4) 2060 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_8K (0x1UL << 4) 2061 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_64K (0x2UL << 4) 2062 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_2M (0x3UL << 4) 2063 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_8M (0x4UL << 4) 2064 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_1G (0x5UL << 4) 2065 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_1G 2066 u8 mrav_pg_size_mrav_lvl; 2067 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_MASK 0xfUL 2068 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_SFT 0 2069 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_0 0x0UL 2070 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_1 0x1UL 2071 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_2 0x2UL 2072 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_2 2073 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_MASK 0xf0UL 2074 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_SFT 4 2075 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_4K (0x0UL << 4) 2076 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_8K (0x1UL << 4) 2077 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_64K (0x2UL << 4) 2078 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_2M (0x3UL << 4) 2079 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_8M (0x4UL << 4) 2080 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_1G (0x5UL << 4) 2081 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_1G 2082 u8 tim_pg_size_tim_lvl; 2083 #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_MASK 0xfUL 2084 #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_SFT 0 2085 #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_0 0x0UL 2086 #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_1 0x1UL 2087 #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_2 0x2UL 2088 #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_2 2089 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_MASK 0xf0UL 2090 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_SFT 4 2091 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_4K (0x0UL << 4) 2092 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_8K (0x1UL << 4) 2093 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_64K (0x2UL << 4) 2094 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_2M (0x3UL << 4) 2095 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_8M (0x4UL << 4) 2096 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_1G (0x5UL << 4) 2097 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_1G 2098 __le64 qpc_page_dir; 2099 __le64 srq_page_dir; 2100 __le64 cq_page_dir; 2101 __le64 vnic_page_dir; 2102 __le64 stat_page_dir; 2103 __le64 tqm_sp_page_dir; 2104 __le64 tqm_ring0_page_dir; 2105 __le64 tqm_ring1_page_dir; 2106 __le64 tqm_ring2_page_dir; 2107 __le64 tqm_ring3_page_dir; 2108 __le64 tqm_ring4_page_dir; 2109 __le64 tqm_ring5_page_dir; 2110 __le64 tqm_ring6_page_dir; 2111 __le64 tqm_ring7_page_dir; 2112 __le64 mrav_page_dir; 2113 __le64 tim_page_dir; 2114 __le32 qp_num_entries; 2115 __le32 srq_num_entries; 2116 __le32 cq_num_entries; 2117 __le32 stat_num_entries; 2118 __le32 tqm_sp_num_entries; 2119 __le32 tqm_ring0_num_entries; 2120 __le32 tqm_ring1_num_entries; 2121 __le32 tqm_ring2_num_entries; 2122 __le32 tqm_ring3_num_entries; 2123 __le32 tqm_ring4_num_entries; 2124 __le32 tqm_ring5_num_entries; 2125 __le32 tqm_ring6_num_entries; 2126 __le32 tqm_ring7_num_entries; 2127 __le32 mrav_num_entries; 2128 __le32 tim_num_entries; 2129 __le16 qp_num_qp1_entries; 2130 __le16 qp_num_l2_entries; 2131 __le16 qp_entry_size; 2132 __le16 srq_num_l2_entries; 2133 __le16 srq_entry_size; 2134 __le16 cq_num_l2_entries; 2135 __le16 cq_entry_size; 2136 __le16 vnic_num_vnic_entries; 2137 __le16 vnic_num_ring_table_entries; 2138 __le16 vnic_entry_size; 2139 __le16 stat_entry_size; 2140 __le16 tqm_entry_size; 2141 __le16 mrav_entry_size; 2142 __le16 tim_entry_size; 2143 }; 2144 2145 /* hwrm_func_backing_store_cfg_output (size:128b/16B) */ 2146 struct hwrm_func_backing_store_cfg_output { 2147 __le16 error_code; 2148 __le16 req_type; 2149 __le16 seq_id; 2150 __le16 resp_len; 2151 u8 unused_0[7]; 2152 u8 valid; 2153 }; 2154 2155 /* hwrm_error_recovery_qcfg_input (size:192b/24B) */ 2156 struct hwrm_error_recovery_qcfg_input { 2157 __le16 req_type; 2158 __le16 cmpl_ring; 2159 __le16 seq_id; 2160 __le16 target_id; 2161 __le64 resp_addr; 2162 u8 unused_0[8]; 2163 }; 2164 2165 /* hwrm_error_recovery_qcfg_output (size:1664b/208B) */ 2166 struct hwrm_error_recovery_qcfg_output { 2167 __le16 error_code; 2168 __le16 req_type; 2169 __le16 seq_id; 2170 __le16 resp_len; 2171 __le32 flags; 2172 #define ERROR_RECOVERY_QCFG_RESP_FLAGS_HOST 0x1UL 2173 #define ERROR_RECOVERY_QCFG_RESP_FLAGS_CO_CPU 0x2UL 2174 __le32 driver_polling_freq; 2175 __le32 master_func_wait_period; 2176 __le32 normal_func_wait_period; 2177 __le32 master_func_wait_period_after_reset; 2178 __le32 max_bailout_time_after_reset; 2179 __le32 fw_health_status_reg; 2180 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_MASK 0x3UL 2181 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_SFT 0 2182 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_PCIE_CFG 0x0UL 2183 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_GRC 0x1UL 2184 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_BAR0 0x2UL 2185 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_BAR1 0x3UL 2186 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_LAST ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_BAR1 2187 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_MASK 0xfffffffcUL 2188 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SFT 2 2189 __le32 fw_heartbeat_reg; 2190 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_MASK 0x3UL 2191 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_SFT 0 2192 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_PCIE_CFG 0x0UL 2193 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_GRC 0x1UL 2194 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_BAR0 0x2UL 2195 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_BAR1 0x3UL 2196 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_LAST ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_BAR1 2197 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_MASK 0xfffffffcUL 2198 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SFT 2 2199 __le32 fw_reset_cnt_reg; 2200 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_MASK 0x3UL 2201 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_SFT 0 2202 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_PCIE_CFG 0x0UL 2203 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_GRC 0x1UL 2204 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_BAR0 0x2UL 2205 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_BAR1 0x3UL 2206 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_LAST ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_BAR1 2207 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_MASK 0xfffffffcUL 2208 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SFT 2 2209 __le32 reset_inprogress_reg; 2210 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_MASK 0x3UL 2211 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_SFT 0 2212 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_PCIE_CFG 0x0UL 2213 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_GRC 0x1UL 2214 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_BAR0 0x2UL 2215 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_BAR1 0x3UL 2216 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_LAST ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_BAR1 2217 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_MASK 0xfffffffcUL 2218 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SFT 2 2219 __le32 reset_inprogress_reg_mask; 2220 u8 unused_0[3]; 2221 u8 reg_array_cnt; 2222 __le32 reset_reg[16]; 2223 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_MASK 0x3UL 2224 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_SFT 0 2225 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_PCIE_CFG 0x0UL 2226 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_GRC 0x1UL 2227 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_BAR0 0x2UL 2228 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_BAR1 0x3UL 2229 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_LAST ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_BAR1 2230 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_MASK 0xfffffffcUL 2231 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SFT 2 2232 __le32 reset_reg_val[16]; 2233 u8 delay_after_reset[16]; 2234 u8 unused_1[7]; 2235 u8 valid; 2236 }; 2237 2238 /* hwrm_func_drv_if_change_input (size:192b/24B) */ 2239 struct hwrm_func_drv_if_change_input { 2240 __le16 req_type; 2241 __le16 cmpl_ring; 2242 __le16 seq_id; 2243 __le16 target_id; 2244 __le64 resp_addr; 2245 __le32 flags; 2246 #define FUNC_DRV_IF_CHANGE_REQ_FLAGS_UP 0x1UL 2247 __le32 unused; 2248 }; 2249 2250 /* hwrm_func_drv_if_change_output (size:128b/16B) */ 2251 struct hwrm_func_drv_if_change_output { 2252 __le16 error_code; 2253 __le16 req_type; 2254 __le16 seq_id; 2255 __le16 resp_len; 2256 __le32 flags; 2257 #define FUNC_DRV_IF_CHANGE_RESP_FLAGS_RESC_CHANGE 0x1UL 2258 #define FUNC_DRV_IF_CHANGE_RESP_FLAGS_HOT_FW_RESET_DONE 0x2UL 2259 u8 unused_0[3]; 2260 u8 valid; 2261 }; 2262 2263 /* hwrm_port_phy_cfg_input (size:448b/56B) */ 2264 struct hwrm_port_phy_cfg_input { 2265 __le16 req_type; 2266 __le16 cmpl_ring; 2267 __le16 seq_id; 2268 __le16 target_id; 2269 __le64 resp_addr; 2270 __le32 flags; 2271 #define PORT_PHY_CFG_REQ_FLAGS_RESET_PHY 0x1UL 2272 #define PORT_PHY_CFG_REQ_FLAGS_DEPRECATED 0x2UL 2273 #define PORT_PHY_CFG_REQ_FLAGS_FORCE 0x4UL 2274 #define PORT_PHY_CFG_REQ_FLAGS_RESTART_AUTONEG 0x8UL 2275 #define PORT_PHY_CFG_REQ_FLAGS_EEE_ENABLE 0x10UL 2276 #define PORT_PHY_CFG_REQ_FLAGS_EEE_DISABLE 0x20UL 2277 #define PORT_PHY_CFG_REQ_FLAGS_EEE_TX_LPI_ENABLE 0x40UL 2278 #define PORT_PHY_CFG_REQ_FLAGS_EEE_TX_LPI_DISABLE 0x80UL 2279 #define PORT_PHY_CFG_REQ_FLAGS_FEC_AUTONEG_ENABLE 0x100UL 2280 #define PORT_PHY_CFG_REQ_FLAGS_FEC_AUTONEG_DISABLE 0x200UL 2281 #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE74_ENABLE 0x400UL 2282 #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE74_DISABLE 0x800UL 2283 #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE91_ENABLE 0x1000UL 2284 #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE91_DISABLE 0x2000UL 2285 #define PORT_PHY_CFG_REQ_FLAGS_FORCE_LINK_DWN 0x4000UL 2286 __le32 enables; 2287 #define PORT_PHY_CFG_REQ_ENABLES_AUTO_MODE 0x1UL 2288 #define PORT_PHY_CFG_REQ_ENABLES_AUTO_DUPLEX 0x2UL 2289 #define PORT_PHY_CFG_REQ_ENABLES_AUTO_PAUSE 0x4UL 2290 #define PORT_PHY_CFG_REQ_ENABLES_AUTO_LINK_SPEED 0x8UL 2291 #define PORT_PHY_CFG_REQ_ENABLES_AUTO_LINK_SPEED_MASK 0x10UL 2292 #define PORT_PHY_CFG_REQ_ENABLES_WIRESPEED 0x20UL 2293 #define PORT_PHY_CFG_REQ_ENABLES_LPBK 0x40UL 2294 #define PORT_PHY_CFG_REQ_ENABLES_PREEMPHASIS 0x80UL 2295 #define PORT_PHY_CFG_REQ_ENABLES_FORCE_PAUSE 0x100UL 2296 #define PORT_PHY_CFG_REQ_ENABLES_EEE_LINK_SPEED_MASK 0x200UL 2297 #define PORT_PHY_CFG_REQ_ENABLES_TX_LPI_TIMER 0x400UL 2298 __le16 port_id; 2299 __le16 force_link_speed; 2300 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_100MB 0x1UL 2301 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_1GB 0xaUL 2302 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_2GB 0x14UL 2303 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_2_5GB 0x19UL 2304 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10GB 0x64UL 2305 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_20GB 0xc8UL 2306 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_25GB 0xfaUL 2307 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_40GB 0x190UL 2308 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_50GB 0x1f4UL 2309 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_100GB 0x3e8UL 2310 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_200GB 0x7d0UL 2311 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10MB 0xffffUL 2312 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_LAST PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10MB 2313 u8 auto_mode; 2314 #define PORT_PHY_CFG_REQ_AUTO_MODE_NONE 0x0UL 2315 #define PORT_PHY_CFG_REQ_AUTO_MODE_ALL_SPEEDS 0x1UL 2316 #define PORT_PHY_CFG_REQ_AUTO_MODE_ONE_SPEED 0x2UL 2317 #define PORT_PHY_CFG_REQ_AUTO_MODE_ONE_OR_BELOW 0x3UL 2318 #define PORT_PHY_CFG_REQ_AUTO_MODE_SPEED_MASK 0x4UL 2319 #define PORT_PHY_CFG_REQ_AUTO_MODE_LAST PORT_PHY_CFG_REQ_AUTO_MODE_SPEED_MASK 2320 u8 auto_duplex; 2321 #define PORT_PHY_CFG_REQ_AUTO_DUPLEX_HALF 0x0UL 2322 #define PORT_PHY_CFG_REQ_AUTO_DUPLEX_FULL 0x1UL 2323 #define PORT_PHY_CFG_REQ_AUTO_DUPLEX_BOTH 0x2UL 2324 #define PORT_PHY_CFG_REQ_AUTO_DUPLEX_LAST PORT_PHY_CFG_REQ_AUTO_DUPLEX_BOTH 2325 u8 auto_pause; 2326 #define PORT_PHY_CFG_REQ_AUTO_PAUSE_TX 0x1UL 2327 #define PORT_PHY_CFG_REQ_AUTO_PAUSE_RX 0x2UL 2328 #define PORT_PHY_CFG_REQ_AUTO_PAUSE_AUTONEG_PAUSE 0x4UL 2329 u8 unused_0; 2330 __le16 auto_link_speed; 2331 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_100MB 0x1UL 2332 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_1GB 0xaUL 2333 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_2GB 0x14UL 2334 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_2_5GB 0x19UL 2335 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_10GB 0x64UL 2336 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_20GB 0xc8UL 2337 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_25GB 0xfaUL 2338 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_40GB 0x190UL 2339 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_50GB 0x1f4UL 2340 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_100GB 0x3e8UL 2341 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_200GB 0x7d0UL 2342 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_10MB 0xffffUL 2343 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_LAST PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_10MB 2344 __le16 auto_link_speed_mask; 2345 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100MBHD 0x1UL 2346 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100MB 0x2UL 2347 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_1GBHD 0x4UL 2348 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_1GB 0x8UL 2349 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_2GB 0x10UL 2350 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_2_5GB 0x20UL 2351 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10GB 0x40UL 2352 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_20GB 0x80UL 2353 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_25GB 0x100UL 2354 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_40GB 0x200UL 2355 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_50GB 0x400UL 2356 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100GB 0x800UL 2357 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10MBHD 0x1000UL 2358 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10MB 0x2000UL 2359 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_200GB 0x4000UL 2360 u8 wirespeed; 2361 #define PORT_PHY_CFG_REQ_WIRESPEED_OFF 0x0UL 2362 #define PORT_PHY_CFG_REQ_WIRESPEED_ON 0x1UL 2363 #define PORT_PHY_CFG_REQ_WIRESPEED_LAST PORT_PHY_CFG_REQ_WIRESPEED_ON 2364 u8 lpbk; 2365 #define PORT_PHY_CFG_REQ_LPBK_NONE 0x0UL 2366 #define PORT_PHY_CFG_REQ_LPBK_LOCAL 0x1UL 2367 #define PORT_PHY_CFG_REQ_LPBK_REMOTE 0x2UL 2368 #define PORT_PHY_CFG_REQ_LPBK_EXTERNAL 0x3UL 2369 #define PORT_PHY_CFG_REQ_LPBK_LAST PORT_PHY_CFG_REQ_LPBK_EXTERNAL 2370 u8 force_pause; 2371 #define PORT_PHY_CFG_REQ_FORCE_PAUSE_TX 0x1UL 2372 #define PORT_PHY_CFG_REQ_FORCE_PAUSE_RX 0x2UL 2373 u8 unused_1; 2374 __le32 preemphasis; 2375 __le16 eee_link_speed_mask; 2376 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD1 0x1UL 2377 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_100MB 0x2UL 2378 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD2 0x4UL 2379 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_1GB 0x8UL 2380 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD3 0x10UL 2381 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD4 0x20UL 2382 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_10GB 0x40UL 2383 u8 unused_2[2]; 2384 __le32 tx_lpi_timer; 2385 #define PORT_PHY_CFG_REQ_TX_LPI_TIMER_MASK 0xffffffUL 2386 #define PORT_PHY_CFG_REQ_TX_LPI_TIMER_SFT 0 2387 __le32 unused_3; 2388 }; 2389 2390 /* hwrm_port_phy_cfg_output (size:128b/16B) */ 2391 struct hwrm_port_phy_cfg_output { 2392 __le16 error_code; 2393 __le16 req_type; 2394 __le16 seq_id; 2395 __le16 resp_len; 2396 u8 unused_0[7]; 2397 u8 valid; 2398 }; 2399 2400 /* hwrm_port_phy_cfg_cmd_err (size:64b/8B) */ 2401 struct hwrm_port_phy_cfg_cmd_err { 2402 u8 code; 2403 #define PORT_PHY_CFG_CMD_ERR_CODE_UNKNOWN 0x0UL 2404 #define PORT_PHY_CFG_CMD_ERR_CODE_ILLEGAL_SPEED 0x1UL 2405 #define PORT_PHY_CFG_CMD_ERR_CODE_RETRY 0x2UL 2406 #define PORT_PHY_CFG_CMD_ERR_CODE_LAST PORT_PHY_CFG_CMD_ERR_CODE_RETRY 2407 u8 unused_0[7]; 2408 }; 2409 2410 /* hwrm_port_phy_qcfg_input (size:192b/24B) */ 2411 struct hwrm_port_phy_qcfg_input { 2412 __le16 req_type; 2413 __le16 cmpl_ring; 2414 __le16 seq_id; 2415 __le16 target_id; 2416 __le64 resp_addr; 2417 __le16 port_id; 2418 u8 unused_0[6]; 2419 }; 2420 2421 /* hwrm_port_phy_qcfg_output (size:768b/96B) */ 2422 struct hwrm_port_phy_qcfg_output { 2423 __le16 error_code; 2424 __le16 req_type; 2425 __le16 seq_id; 2426 __le16 resp_len; 2427 u8 link; 2428 #define PORT_PHY_QCFG_RESP_LINK_NO_LINK 0x0UL 2429 #define PORT_PHY_QCFG_RESP_LINK_SIGNAL 0x1UL 2430 #define PORT_PHY_QCFG_RESP_LINK_LINK 0x2UL 2431 #define PORT_PHY_QCFG_RESP_LINK_LAST PORT_PHY_QCFG_RESP_LINK_LINK 2432 u8 unused_0; 2433 __le16 link_speed; 2434 #define PORT_PHY_QCFG_RESP_LINK_SPEED_100MB 0x1UL 2435 #define PORT_PHY_QCFG_RESP_LINK_SPEED_1GB 0xaUL 2436 #define PORT_PHY_QCFG_RESP_LINK_SPEED_2GB 0x14UL 2437 #define PORT_PHY_QCFG_RESP_LINK_SPEED_2_5GB 0x19UL 2438 #define PORT_PHY_QCFG_RESP_LINK_SPEED_10GB 0x64UL 2439 #define PORT_PHY_QCFG_RESP_LINK_SPEED_20GB 0xc8UL 2440 #define PORT_PHY_QCFG_RESP_LINK_SPEED_25GB 0xfaUL 2441 #define PORT_PHY_QCFG_RESP_LINK_SPEED_40GB 0x190UL 2442 #define PORT_PHY_QCFG_RESP_LINK_SPEED_50GB 0x1f4UL 2443 #define PORT_PHY_QCFG_RESP_LINK_SPEED_100GB 0x3e8UL 2444 #define PORT_PHY_QCFG_RESP_LINK_SPEED_200GB 0x7d0UL 2445 #define PORT_PHY_QCFG_RESP_LINK_SPEED_10MB 0xffffUL 2446 #define PORT_PHY_QCFG_RESP_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_LINK_SPEED_10MB 2447 u8 duplex_cfg; 2448 #define PORT_PHY_QCFG_RESP_DUPLEX_CFG_HALF 0x0UL 2449 #define PORT_PHY_QCFG_RESP_DUPLEX_CFG_FULL 0x1UL 2450 #define PORT_PHY_QCFG_RESP_DUPLEX_CFG_LAST PORT_PHY_QCFG_RESP_DUPLEX_CFG_FULL 2451 u8 pause; 2452 #define PORT_PHY_QCFG_RESP_PAUSE_TX 0x1UL 2453 #define PORT_PHY_QCFG_RESP_PAUSE_RX 0x2UL 2454 __le16 support_speeds; 2455 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100MBHD 0x1UL 2456 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100MB 0x2UL 2457 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_1GBHD 0x4UL 2458 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_1GB 0x8UL 2459 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_2GB 0x10UL 2460 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_2_5GB 0x20UL 2461 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10GB 0x40UL 2462 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_20GB 0x80UL 2463 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_25GB 0x100UL 2464 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_40GB 0x200UL 2465 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_50GB 0x400UL 2466 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100GB 0x800UL 2467 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10MBHD 0x1000UL 2468 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10MB 0x2000UL 2469 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_200GB 0x4000UL 2470 __le16 force_link_speed; 2471 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_100MB 0x1UL 2472 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_1GB 0xaUL 2473 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_2GB 0x14UL 2474 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_2_5GB 0x19UL 2475 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_10GB 0x64UL 2476 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_20GB 0xc8UL 2477 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_25GB 0xfaUL 2478 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_40GB 0x190UL 2479 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_50GB 0x1f4UL 2480 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_100GB 0x3e8UL 2481 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_200GB 0x7d0UL 2482 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_10MB 0xffffUL 2483 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_10MB 2484 u8 auto_mode; 2485 #define PORT_PHY_QCFG_RESP_AUTO_MODE_NONE 0x0UL 2486 #define PORT_PHY_QCFG_RESP_AUTO_MODE_ALL_SPEEDS 0x1UL 2487 #define PORT_PHY_QCFG_RESP_AUTO_MODE_ONE_SPEED 0x2UL 2488 #define PORT_PHY_QCFG_RESP_AUTO_MODE_ONE_OR_BELOW 0x3UL 2489 #define PORT_PHY_QCFG_RESP_AUTO_MODE_SPEED_MASK 0x4UL 2490 #define PORT_PHY_QCFG_RESP_AUTO_MODE_LAST PORT_PHY_QCFG_RESP_AUTO_MODE_SPEED_MASK 2491 u8 auto_pause; 2492 #define PORT_PHY_QCFG_RESP_AUTO_PAUSE_TX 0x1UL 2493 #define PORT_PHY_QCFG_RESP_AUTO_PAUSE_RX 0x2UL 2494 #define PORT_PHY_QCFG_RESP_AUTO_PAUSE_AUTONEG_PAUSE 0x4UL 2495 __le16 auto_link_speed; 2496 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_100MB 0x1UL 2497 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_1GB 0xaUL 2498 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_2GB 0x14UL 2499 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_2_5GB 0x19UL 2500 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_10GB 0x64UL 2501 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_20GB 0xc8UL 2502 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_25GB 0xfaUL 2503 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_40GB 0x190UL 2504 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_50GB 0x1f4UL 2505 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_100GB 0x3e8UL 2506 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_200GB 0x7d0UL 2507 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_10MB 0xffffUL 2508 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_10MB 2509 __le16 auto_link_speed_mask; 2510 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100MBHD 0x1UL 2511 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100MB 0x2UL 2512 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_1GBHD 0x4UL 2513 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_1GB 0x8UL 2514 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_2GB 0x10UL 2515 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_2_5GB 0x20UL 2516 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10GB 0x40UL 2517 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_20GB 0x80UL 2518 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_25GB 0x100UL 2519 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_40GB 0x200UL 2520 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_50GB 0x400UL 2521 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100GB 0x800UL 2522 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10MBHD 0x1000UL 2523 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10MB 0x2000UL 2524 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_200GB 0x4000UL 2525 u8 wirespeed; 2526 #define PORT_PHY_QCFG_RESP_WIRESPEED_OFF 0x0UL 2527 #define PORT_PHY_QCFG_RESP_WIRESPEED_ON 0x1UL 2528 #define PORT_PHY_QCFG_RESP_WIRESPEED_LAST PORT_PHY_QCFG_RESP_WIRESPEED_ON 2529 u8 lpbk; 2530 #define PORT_PHY_QCFG_RESP_LPBK_NONE 0x0UL 2531 #define PORT_PHY_QCFG_RESP_LPBK_LOCAL 0x1UL 2532 #define PORT_PHY_QCFG_RESP_LPBK_REMOTE 0x2UL 2533 #define PORT_PHY_QCFG_RESP_LPBK_EXTERNAL 0x3UL 2534 #define PORT_PHY_QCFG_RESP_LPBK_LAST PORT_PHY_QCFG_RESP_LPBK_EXTERNAL 2535 u8 force_pause; 2536 #define PORT_PHY_QCFG_RESP_FORCE_PAUSE_TX 0x1UL 2537 #define PORT_PHY_QCFG_RESP_FORCE_PAUSE_RX 0x2UL 2538 u8 module_status; 2539 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_NONE 0x0UL 2540 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_DISABLETX 0x1UL 2541 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_WARNINGMSG 0x2UL 2542 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_PWRDOWN 0x3UL 2543 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_NOTINSERTED 0x4UL 2544 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_CURRENTFAULT 0x5UL 2545 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_NOTAPPLICABLE 0xffUL 2546 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_LAST PORT_PHY_QCFG_RESP_MODULE_STATUS_NOTAPPLICABLE 2547 __le32 preemphasis; 2548 u8 phy_maj; 2549 u8 phy_min; 2550 u8 phy_bld; 2551 u8 phy_type; 2552 #define PORT_PHY_QCFG_RESP_PHY_TYPE_UNKNOWN 0x0UL 2553 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASECR 0x1UL 2554 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR4 0x2UL 2555 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASELR 0x3UL 2556 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASESR 0x4UL 2557 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR2 0x5UL 2558 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKX 0x6UL 2559 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR 0x7UL 2560 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASET 0x8UL 2561 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASETE 0x9UL 2562 #define PORT_PHY_QCFG_RESP_PHY_TYPE_SGMIIEXTPHY 0xaUL 2563 #define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASECR_CA_L 0xbUL 2564 #define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASECR_CA_S 0xcUL 2565 #define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASECR_CA_N 0xdUL 2566 #define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASESR 0xeUL 2567 #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASECR4 0xfUL 2568 #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASESR4 0x10UL 2569 #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASELR4 0x11UL 2570 #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASEER4 0x12UL 2571 #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASESR10 0x13UL 2572 #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASECR4 0x14UL 2573 #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASESR4 0x15UL 2574 #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASELR4 0x16UL 2575 #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASEER4 0x17UL 2576 #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_ACTIVE_CABLE 0x18UL 2577 #define PORT_PHY_QCFG_RESP_PHY_TYPE_1G_BASET 0x19UL 2578 #define PORT_PHY_QCFG_RESP_PHY_TYPE_1G_BASESX 0x1aUL 2579 #define PORT_PHY_QCFG_RESP_PHY_TYPE_1G_BASECX 0x1bUL 2580 #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASECR4 0x1cUL 2581 #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASESR4 0x1dUL 2582 #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASELR4 0x1eUL 2583 #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASEER4 0x1fUL 2584 #define PORT_PHY_QCFG_RESP_PHY_TYPE_LAST PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASEER4 2585 u8 media_type; 2586 #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_UNKNOWN 0x0UL 2587 #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_TP 0x1UL 2588 #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_DAC 0x2UL 2589 #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_FIBRE 0x3UL 2590 #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_LAST PORT_PHY_QCFG_RESP_MEDIA_TYPE_FIBRE 2591 u8 xcvr_pkg_type; 2592 #define PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_XCVR_INTERNAL 0x1UL 2593 #define PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_XCVR_EXTERNAL 0x2UL 2594 #define PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_LAST PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_XCVR_EXTERNAL 2595 u8 eee_config_phy_addr; 2596 #define PORT_PHY_QCFG_RESP_PHY_ADDR_MASK 0x1fUL 2597 #define PORT_PHY_QCFG_RESP_PHY_ADDR_SFT 0 2598 #define PORT_PHY_QCFG_RESP_EEE_CONFIG_MASK 0xe0UL 2599 #define PORT_PHY_QCFG_RESP_EEE_CONFIG_SFT 5 2600 #define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_ENABLED 0x20UL 2601 #define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_ACTIVE 0x40UL 2602 #define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_TX_LPI 0x80UL 2603 u8 parallel_detect; 2604 #define PORT_PHY_QCFG_RESP_PARALLEL_DETECT 0x1UL 2605 __le16 link_partner_adv_speeds; 2606 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100MBHD 0x1UL 2607 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100MB 0x2UL 2608 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_1GBHD 0x4UL 2609 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_1GB 0x8UL 2610 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_2GB 0x10UL 2611 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_2_5GB 0x20UL 2612 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10GB 0x40UL 2613 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_20GB 0x80UL 2614 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_25GB 0x100UL 2615 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_40GB 0x200UL 2616 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_50GB 0x400UL 2617 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100GB 0x800UL 2618 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10MBHD 0x1000UL 2619 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10MB 0x2000UL 2620 u8 link_partner_adv_auto_mode; 2621 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_NONE 0x0UL 2622 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ALL_SPEEDS 0x1UL 2623 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ONE_SPEED 0x2UL 2624 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ONE_OR_BELOW 0x3UL 2625 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_SPEED_MASK 0x4UL 2626 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_LAST PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_SPEED_MASK 2627 u8 link_partner_adv_pause; 2628 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_PAUSE_TX 0x1UL 2629 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_PAUSE_RX 0x2UL 2630 __le16 adv_eee_link_speed_mask; 2631 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD1 0x1UL 2632 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_100MB 0x2UL 2633 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD2 0x4UL 2634 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_1GB 0x8UL 2635 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD3 0x10UL 2636 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD4 0x20UL 2637 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_10GB 0x40UL 2638 __le16 link_partner_adv_eee_link_speed_mask; 2639 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD1 0x1UL 2640 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_100MB 0x2UL 2641 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD2 0x4UL 2642 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_1GB 0x8UL 2643 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD3 0x10UL 2644 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD4 0x20UL 2645 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_10GB 0x40UL 2646 __le32 xcvr_identifier_type_tx_lpi_timer; 2647 #define PORT_PHY_QCFG_RESP_TX_LPI_TIMER_MASK 0xffffffUL 2648 #define PORT_PHY_QCFG_RESP_TX_LPI_TIMER_SFT 0 2649 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_MASK 0xff000000UL 2650 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_SFT 24 2651 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_UNKNOWN (0x0UL << 24) 2652 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_SFP (0x3UL << 24) 2653 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP (0xcUL << 24) 2654 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFPPLUS (0xdUL << 24) 2655 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP28 (0x11UL << 24) 2656 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_LAST PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP28 2657 __le16 fec_cfg; 2658 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_NONE_SUPPORTED 0x1UL 2659 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_AUTONEG_SUPPORTED 0x2UL 2660 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_AUTONEG_ENABLED 0x4UL 2661 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE74_SUPPORTED 0x8UL 2662 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE74_ENABLED 0x10UL 2663 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE91_SUPPORTED 0x20UL 2664 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE91_ENABLED 0x40UL 2665 u8 duplex_state; 2666 #define PORT_PHY_QCFG_RESP_DUPLEX_STATE_HALF 0x0UL 2667 #define PORT_PHY_QCFG_RESP_DUPLEX_STATE_FULL 0x1UL 2668 #define PORT_PHY_QCFG_RESP_DUPLEX_STATE_LAST PORT_PHY_QCFG_RESP_DUPLEX_STATE_FULL 2669 u8 option_flags; 2670 #define PORT_PHY_QCFG_RESP_OPTION_FLAGS_MEDIA_AUTO_DETECT 0x1UL 2671 char phy_vendor_name[16]; 2672 char phy_vendor_partnumber[16]; 2673 u8 unused_2[7]; 2674 u8 valid; 2675 }; 2676 2677 /* hwrm_port_mac_cfg_input (size:384b/48B) */ 2678 struct hwrm_port_mac_cfg_input { 2679 __le16 req_type; 2680 __le16 cmpl_ring; 2681 __le16 seq_id; 2682 __le16 target_id; 2683 __le64 resp_addr; 2684 __le32 flags; 2685 #define PORT_MAC_CFG_REQ_FLAGS_MATCH_LINK 0x1UL 2686 #define PORT_MAC_CFG_REQ_FLAGS_VLAN_PRI2COS_ENABLE 0x2UL 2687 #define PORT_MAC_CFG_REQ_FLAGS_TUNNEL_PRI2COS_ENABLE 0x4UL 2688 #define PORT_MAC_CFG_REQ_FLAGS_IP_DSCP2COS_ENABLE 0x8UL 2689 #define PORT_MAC_CFG_REQ_FLAGS_PTP_RX_TS_CAPTURE_ENABLE 0x10UL 2690 #define PORT_MAC_CFG_REQ_FLAGS_PTP_RX_TS_CAPTURE_DISABLE 0x20UL 2691 #define PORT_MAC_CFG_REQ_FLAGS_PTP_TX_TS_CAPTURE_ENABLE 0x40UL 2692 #define PORT_MAC_CFG_REQ_FLAGS_PTP_TX_TS_CAPTURE_DISABLE 0x80UL 2693 #define PORT_MAC_CFG_REQ_FLAGS_OOB_WOL_ENABLE 0x100UL 2694 #define PORT_MAC_CFG_REQ_FLAGS_OOB_WOL_DISABLE 0x200UL 2695 #define PORT_MAC_CFG_REQ_FLAGS_VLAN_PRI2COS_DISABLE 0x400UL 2696 #define PORT_MAC_CFG_REQ_FLAGS_TUNNEL_PRI2COS_DISABLE 0x800UL 2697 #define PORT_MAC_CFG_REQ_FLAGS_IP_DSCP2COS_DISABLE 0x1000UL 2698 #define PORT_MAC_CFG_REQ_FLAGS_PTP_ONE_STEP_TX_TS 0x2000UL 2699 __le32 enables; 2700 #define PORT_MAC_CFG_REQ_ENABLES_IPG 0x1UL 2701 #define PORT_MAC_CFG_REQ_ENABLES_LPBK 0x2UL 2702 #define PORT_MAC_CFG_REQ_ENABLES_VLAN_PRI2COS_MAP_PRI 0x4UL 2703 #define PORT_MAC_CFG_REQ_ENABLES_TUNNEL_PRI2COS_MAP_PRI 0x10UL 2704 #define PORT_MAC_CFG_REQ_ENABLES_DSCP2COS_MAP_PRI 0x20UL 2705 #define PORT_MAC_CFG_REQ_ENABLES_RX_TS_CAPTURE_PTP_MSG_TYPE 0x40UL 2706 #define PORT_MAC_CFG_REQ_ENABLES_TX_TS_CAPTURE_PTP_MSG_TYPE 0x80UL 2707 #define PORT_MAC_CFG_REQ_ENABLES_COS_FIELD_CFG 0x100UL 2708 #define PORT_MAC_CFG_REQ_ENABLES_PTP_FREQ_ADJ_PPB 0x200UL 2709 __le16 port_id; 2710 u8 ipg; 2711 u8 lpbk; 2712 #define PORT_MAC_CFG_REQ_LPBK_NONE 0x0UL 2713 #define PORT_MAC_CFG_REQ_LPBK_LOCAL 0x1UL 2714 #define PORT_MAC_CFG_REQ_LPBK_REMOTE 0x2UL 2715 #define PORT_MAC_CFG_REQ_LPBK_LAST PORT_MAC_CFG_REQ_LPBK_REMOTE 2716 u8 vlan_pri2cos_map_pri; 2717 u8 reserved1; 2718 u8 tunnel_pri2cos_map_pri; 2719 u8 dscp2pri_map_pri; 2720 __le16 rx_ts_capture_ptp_msg_type; 2721 __le16 tx_ts_capture_ptp_msg_type; 2722 u8 cos_field_cfg; 2723 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_RSVD1 0x1UL 2724 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_MASK 0x6UL 2725 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_SFT 1 2726 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_INNERMOST (0x0UL << 1) 2727 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_OUTER (0x1UL << 1) 2728 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_OUTERMOST (0x2UL << 1) 2729 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_UNSPECIFIED (0x3UL << 1) 2730 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_LAST PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_UNSPECIFIED 2731 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_MASK 0x18UL 2732 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_SFT 3 2733 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_INNERMOST (0x0UL << 3) 2734 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_OUTER (0x1UL << 3) 2735 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_OUTERMOST (0x2UL << 3) 2736 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_UNSPECIFIED (0x3UL << 3) 2737 #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 2738 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_DEFAULT_COS_MASK 0xe0UL 2739 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_DEFAULT_COS_SFT 5 2740 u8 unused_0[3]; 2741 __s32 ptp_freq_adj_ppb; 2742 u8 unused_1[4]; 2743 }; 2744 2745 /* hwrm_port_mac_cfg_output (size:128b/16B) */ 2746 struct hwrm_port_mac_cfg_output { 2747 __le16 error_code; 2748 __le16 req_type; 2749 __le16 seq_id; 2750 __le16 resp_len; 2751 __le16 mru; 2752 __le16 mtu; 2753 u8 ipg; 2754 u8 lpbk; 2755 #define PORT_MAC_CFG_RESP_LPBK_NONE 0x0UL 2756 #define PORT_MAC_CFG_RESP_LPBK_LOCAL 0x1UL 2757 #define PORT_MAC_CFG_RESP_LPBK_REMOTE 0x2UL 2758 #define PORT_MAC_CFG_RESP_LPBK_LAST PORT_MAC_CFG_RESP_LPBK_REMOTE 2759 u8 unused_0; 2760 u8 valid; 2761 }; 2762 2763 /* hwrm_port_mac_ptp_qcfg_input (size:192b/24B) */ 2764 struct hwrm_port_mac_ptp_qcfg_input { 2765 __le16 req_type; 2766 __le16 cmpl_ring; 2767 __le16 seq_id; 2768 __le16 target_id; 2769 __le64 resp_addr; 2770 __le16 port_id; 2771 u8 unused_0[6]; 2772 }; 2773 2774 /* hwrm_port_mac_ptp_qcfg_output (size:640b/80B) */ 2775 struct hwrm_port_mac_ptp_qcfg_output { 2776 __le16 error_code; 2777 __le16 req_type; 2778 __le16 seq_id; 2779 __le16 resp_len; 2780 u8 flags; 2781 #define PORT_MAC_PTP_QCFG_RESP_FLAGS_DIRECT_ACCESS 0x1UL 2782 #define PORT_MAC_PTP_QCFG_RESP_FLAGS_ONE_STEP_TX_TS 0x4UL 2783 #define PORT_MAC_PTP_QCFG_RESP_FLAGS_HWRM_ACCESS 0x8UL 2784 u8 unused_0[3]; 2785 __le32 rx_ts_reg_off_lower; 2786 __le32 rx_ts_reg_off_upper; 2787 __le32 rx_ts_reg_off_seq_id; 2788 __le32 rx_ts_reg_off_src_id_0; 2789 __le32 rx_ts_reg_off_src_id_1; 2790 __le32 rx_ts_reg_off_src_id_2; 2791 __le32 rx_ts_reg_off_domain_id; 2792 __le32 rx_ts_reg_off_fifo; 2793 __le32 rx_ts_reg_off_fifo_adv; 2794 __le32 rx_ts_reg_off_granularity; 2795 __le32 tx_ts_reg_off_lower; 2796 __le32 tx_ts_reg_off_upper; 2797 __le32 tx_ts_reg_off_seq_id; 2798 __le32 tx_ts_reg_off_fifo; 2799 __le32 tx_ts_reg_off_granularity; 2800 u8 unused_1[7]; 2801 u8 valid; 2802 }; 2803 2804 /* tx_port_stats (size:3264b/408B) */ 2805 struct tx_port_stats { 2806 __le64 tx_64b_frames; 2807 __le64 tx_65b_127b_frames; 2808 __le64 tx_128b_255b_frames; 2809 __le64 tx_256b_511b_frames; 2810 __le64 tx_512b_1023b_frames; 2811 __le64 tx_1024b_1518b_frames; 2812 __le64 tx_good_vlan_frames; 2813 __le64 tx_1519b_2047b_frames; 2814 __le64 tx_2048b_4095b_frames; 2815 __le64 tx_4096b_9216b_frames; 2816 __le64 tx_9217b_16383b_frames; 2817 __le64 tx_good_frames; 2818 __le64 tx_total_frames; 2819 __le64 tx_ucast_frames; 2820 __le64 tx_mcast_frames; 2821 __le64 tx_bcast_frames; 2822 __le64 tx_pause_frames; 2823 __le64 tx_pfc_frames; 2824 __le64 tx_jabber_frames; 2825 __le64 tx_fcs_err_frames; 2826 __le64 tx_control_frames; 2827 __le64 tx_oversz_frames; 2828 __le64 tx_single_dfrl_frames; 2829 __le64 tx_multi_dfrl_frames; 2830 __le64 tx_single_coll_frames; 2831 __le64 tx_multi_coll_frames; 2832 __le64 tx_late_coll_frames; 2833 __le64 tx_excessive_coll_frames; 2834 __le64 tx_frag_frames; 2835 __le64 tx_err; 2836 __le64 tx_tagged_frames; 2837 __le64 tx_dbl_tagged_frames; 2838 __le64 tx_runt_frames; 2839 __le64 tx_fifo_underruns; 2840 __le64 tx_pfc_ena_frames_pri0; 2841 __le64 tx_pfc_ena_frames_pri1; 2842 __le64 tx_pfc_ena_frames_pri2; 2843 __le64 tx_pfc_ena_frames_pri3; 2844 __le64 tx_pfc_ena_frames_pri4; 2845 __le64 tx_pfc_ena_frames_pri5; 2846 __le64 tx_pfc_ena_frames_pri6; 2847 __le64 tx_pfc_ena_frames_pri7; 2848 __le64 tx_eee_lpi_events; 2849 __le64 tx_eee_lpi_duration; 2850 __le64 tx_llfc_logical_msgs; 2851 __le64 tx_hcfc_msgs; 2852 __le64 tx_total_collisions; 2853 __le64 tx_bytes; 2854 __le64 tx_xthol_frames; 2855 __le64 tx_stat_discard; 2856 __le64 tx_stat_error; 2857 }; 2858 2859 /* rx_port_stats (size:4224b/528B) */ 2860 struct rx_port_stats { 2861 __le64 rx_64b_frames; 2862 __le64 rx_65b_127b_frames; 2863 __le64 rx_128b_255b_frames; 2864 __le64 rx_256b_511b_frames; 2865 __le64 rx_512b_1023b_frames; 2866 __le64 rx_1024b_1518b_frames; 2867 __le64 rx_good_vlan_frames; 2868 __le64 rx_1519b_2047b_frames; 2869 __le64 rx_2048b_4095b_frames; 2870 __le64 rx_4096b_9216b_frames; 2871 __le64 rx_9217b_16383b_frames; 2872 __le64 rx_total_frames; 2873 __le64 rx_ucast_frames; 2874 __le64 rx_mcast_frames; 2875 __le64 rx_bcast_frames; 2876 __le64 rx_fcs_err_frames; 2877 __le64 rx_ctrl_frames; 2878 __le64 rx_pause_frames; 2879 __le64 rx_pfc_frames; 2880 __le64 rx_unsupported_opcode_frames; 2881 __le64 rx_unsupported_da_pausepfc_frames; 2882 __le64 rx_wrong_sa_frames; 2883 __le64 rx_align_err_frames; 2884 __le64 rx_oor_len_frames; 2885 __le64 rx_code_err_frames; 2886 __le64 rx_false_carrier_frames; 2887 __le64 rx_ovrsz_frames; 2888 __le64 rx_jbr_frames; 2889 __le64 rx_mtu_err_frames; 2890 __le64 rx_match_crc_frames; 2891 __le64 rx_promiscuous_frames; 2892 __le64 rx_tagged_frames; 2893 __le64 rx_double_tagged_frames; 2894 __le64 rx_trunc_frames; 2895 __le64 rx_good_frames; 2896 __le64 rx_pfc_xon2xoff_frames_pri0; 2897 __le64 rx_pfc_xon2xoff_frames_pri1; 2898 __le64 rx_pfc_xon2xoff_frames_pri2; 2899 __le64 rx_pfc_xon2xoff_frames_pri3; 2900 __le64 rx_pfc_xon2xoff_frames_pri4; 2901 __le64 rx_pfc_xon2xoff_frames_pri5; 2902 __le64 rx_pfc_xon2xoff_frames_pri6; 2903 __le64 rx_pfc_xon2xoff_frames_pri7; 2904 __le64 rx_pfc_ena_frames_pri0; 2905 __le64 rx_pfc_ena_frames_pri1; 2906 __le64 rx_pfc_ena_frames_pri2; 2907 __le64 rx_pfc_ena_frames_pri3; 2908 __le64 rx_pfc_ena_frames_pri4; 2909 __le64 rx_pfc_ena_frames_pri5; 2910 __le64 rx_pfc_ena_frames_pri6; 2911 __le64 rx_pfc_ena_frames_pri7; 2912 __le64 rx_sch_crc_err_frames; 2913 __le64 rx_undrsz_frames; 2914 __le64 rx_frag_frames; 2915 __le64 rx_eee_lpi_events; 2916 __le64 rx_eee_lpi_duration; 2917 __le64 rx_llfc_physical_msgs; 2918 __le64 rx_llfc_logical_msgs; 2919 __le64 rx_llfc_msgs_with_crc_err; 2920 __le64 rx_hcfc_msgs; 2921 __le64 rx_hcfc_msgs_with_crc_err; 2922 __le64 rx_bytes; 2923 __le64 rx_runt_bytes; 2924 __le64 rx_runt_frames; 2925 __le64 rx_stat_discard; 2926 __le64 rx_stat_err; 2927 }; 2928 2929 /* hwrm_port_qstats_input (size:320b/40B) */ 2930 struct hwrm_port_qstats_input { 2931 __le16 req_type; 2932 __le16 cmpl_ring; 2933 __le16 seq_id; 2934 __le16 target_id; 2935 __le64 resp_addr; 2936 __le16 port_id; 2937 u8 unused_0[6]; 2938 __le64 tx_stat_host_addr; 2939 __le64 rx_stat_host_addr; 2940 }; 2941 2942 /* hwrm_port_qstats_output (size:128b/16B) */ 2943 struct hwrm_port_qstats_output { 2944 __le16 error_code; 2945 __le16 req_type; 2946 __le16 seq_id; 2947 __le16 resp_len; 2948 __le16 tx_stat_size; 2949 __le16 rx_stat_size; 2950 u8 unused_0[3]; 2951 u8 valid; 2952 }; 2953 2954 /* tx_port_stats_ext (size:2048b/256B) */ 2955 struct tx_port_stats_ext { 2956 __le64 tx_bytes_cos0; 2957 __le64 tx_bytes_cos1; 2958 __le64 tx_bytes_cos2; 2959 __le64 tx_bytes_cos3; 2960 __le64 tx_bytes_cos4; 2961 __le64 tx_bytes_cos5; 2962 __le64 tx_bytes_cos6; 2963 __le64 tx_bytes_cos7; 2964 __le64 tx_packets_cos0; 2965 __le64 tx_packets_cos1; 2966 __le64 tx_packets_cos2; 2967 __le64 tx_packets_cos3; 2968 __le64 tx_packets_cos4; 2969 __le64 tx_packets_cos5; 2970 __le64 tx_packets_cos6; 2971 __le64 tx_packets_cos7; 2972 __le64 pfc_pri0_tx_duration_us; 2973 __le64 pfc_pri0_tx_transitions; 2974 __le64 pfc_pri1_tx_duration_us; 2975 __le64 pfc_pri1_tx_transitions; 2976 __le64 pfc_pri2_tx_duration_us; 2977 __le64 pfc_pri2_tx_transitions; 2978 __le64 pfc_pri3_tx_duration_us; 2979 __le64 pfc_pri3_tx_transitions; 2980 __le64 pfc_pri4_tx_duration_us; 2981 __le64 pfc_pri4_tx_transitions; 2982 __le64 pfc_pri5_tx_duration_us; 2983 __le64 pfc_pri5_tx_transitions; 2984 __le64 pfc_pri6_tx_duration_us; 2985 __le64 pfc_pri6_tx_transitions; 2986 __le64 pfc_pri7_tx_duration_us; 2987 __le64 pfc_pri7_tx_transitions; 2988 }; 2989 2990 /* rx_port_stats_ext (size:3648b/456B) */ 2991 struct rx_port_stats_ext { 2992 __le64 link_down_events; 2993 __le64 continuous_pause_events; 2994 __le64 resume_pause_events; 2995 __le64 continuous_roce_pause_events; 2996 __le64 resume_roce_pause_events; 2997 __le64 rx_bytes_cos0; 2998 __le64 rx_bytes_cos1; 2999 __le64 rx_bytes_cos2; 3000 __le64 rx_bytes_cos3; 3001 __le64 rx_bytes_cos4; 3002 __le64 rx_bytes_cos5; 3003 __le64 rx_bytes_cos6; 3004 __le64 rx_bytes_cos7; 3005 __le64 rx_packets_cos0; 3006 __le64 rx_packets_cos1; 3007 __le64 rx_packets_cos2; 3008 __le64 rx_packets_cos3; 3009 __le64 rx_packets_cos4; 3010 __le64 rx_packets_cos5; 3011 __le64 rx_packets_cos6; 3012 __le64 rx_packets_cos7; 3013 __le64 pfc_pri0_rx_duration_us; 3014 __le64 pfc_pri0_rx_transitions; 3015 __le64 pfc_pri1_rx_duration_us; 3016 __le64 pfc_pri1_rx_transitions; 3017 __le64 pfc_pri2_rx_duration_us; 3018 __le64 pfc_pri2_rx_transitions; 3019 __le64 pfc_pri3_rx_duration_us; 3020 __le64 pfc_pri3_rx_transitions; 3021 __le64 pfc_pri4_rx_duration_us; 3022 __le64 pfc_pri4_rx_transitions; 3023 __le64 pfc_pri5_rx_duration_us; 3024 __le64 pfc_pri5_rx_transitions; 3025 __le64 pfc_pri6_rx_duration_us; 3026 __le64 pfc_pri6_rx_transitions; 3027 __le64 pfc_pri7_rx_duration_us; 3028 __le64 pfc_pri7_rx_transitions; 3029 __le64 rx_bits; 3030 __le64 rx_buffer_passed_threshold; 3031 __le64 rx_pcs_symbol_err; 3032 __le64 rx_corrected_bits; 3033 __le64 rx_discard_bytes_cos0; 3034 __le64 rx_discard_bytes_cos1; 3035 __le64 rx_discard_bytes_cos2; 3036 __le64 rx_discard_bytes_cos3; 3037 __le64 rx_discard_bytes_cos4; 3038 __le64 rx_discard_bytes_cos5; 3039 __le64 rx_discard_bytes_cos6; 3040 __le64 rx_discard_bytes_cos7; 3041 __le64 rx_discard_packets_cos0; 3042 __le64 rx_discard_packets_cos1; 3043 __le64 rx_discard_packets_cos2; 3044 __le64 rx_discard_packets_cos3; 3045 __le64 rx_discard_packets_cos4; 3046 __le64 rx_discard_packets_cos5; 3047 __le64 rx_discard_packets_cos6; 3048 __le64 rx_discard_packets_cos7; 3049 }; 3050 3051 /* hwrm_port_qstats_ext_input (size:320b/40B) */ 3052 struct hwrm_port_qstats_ext_input { 3053 __le16 req_type; 3054 __le16 cmpl_ring; 3055 __le16 seq_id; 3056 __le16 target_id; 3057 __le64 resp_addr; 3058 __le16 port_id; 3059 __le16 tx_stat_size; 3060 __le16 rx_stat_size; 3061 u8 unused_0[2]; 3062 __le64 tx_stat_host_addr; 3063 __le64 rx_stat_host_addr; 3064 }; 3065 3066 /* hwrm_port_qstats_ext_output (size:128b/16B) */ 3067 struct hwrm_port_qstats_ext_output { 3068 __le16 error_code; 3069 __le16 req_type; 3070 __le16 seq_id; 3071 __le16 resp_len; 3072 __le16 tx_stat_size; 3073 __le16 rx_stat_size; 3074 __le16 total_active_cos_queues; 3075 u8 flags; 3076 #define PORT_QSTATS_EXT_RESP_FLAGS_CLEAR_ROCE_COUNTERS_SUPPORTED 0x1UL 3077 u8 valid; 3078 }; 3079 3080 /* hwrm_port_lpbk_qstats_input (size:128b/16B) */ 3081 struct hwrm_port_lpbk_qstats_input { 3082 __le16 req_type; 3083 __le16 cmpl_ring; 3084 __le16 seq_id; 3085 __le16 target_id; 3086 __le64 resp_addr; 3087 }; 3088 3089 /* hwrm_port_lpbk_qstats_output (size:768b/96B) */ 3090 struct hwrm_port_lpbk_qstats_output { 3091 __le16 error_code; 3092 __le16 req_type; 3093 __le16 seq_id; 3094 __le16 resp_len; 3095 __le64 lpbk_ucast_frames; 3096 __le64 lpbk_mcast_frames; 3097 __le64 lpbk_bcast_frames; 3098 __le64 lpbk_ucast_bytes; 3099 __le64 lpbk_mcast_bytes; 3100 __le64 lpbk_bcast_bytes; 3101 __le64 tx_stat_discard; 3102 __le64 tx_stat_error; 3103 __le64 rx_stat_discard; 3104 __le64 rx_stat_error; 3105 u8 unused_0[7]; 3106 u8 valid; 3107 }; 3108 3109 /* hwrm_port_clr_stats_input (size:192b/24B) */ 3110 struct hwrm_port_clr_stats_input { 3111 __le16 req_type; 3112 __le16 cmpl_ring; 3113 __le16 seq_id; 3114 __le16 target_id; 3115 __le64 resp_addr; 3116 __le16 port_id; 3117 u8 flags; 3118 #define PORT_CLR_STATS_REQ_FLAGS_ROCE_COUNTERS 0x1UL 3119 u8 unused_0[5]; 3120 }; 3121 3122 /* hwrm_port_clr_stats_output (size:128b/16B) */ 3123 struct hwrm_port_clr_stats_output { 3124 __le16 error_code; 3125 __le16 req_type; 3126 __le16 seq_id; 3127 __le16 resp_len; 3128 u8 unused_0[7]; 3129 u8 valid; 3130 }; 3131 3132 /* hwrm_port_lpbk_clr_stats_input (size:128b/16B) */ 3133 struct hwrm_port_lpbk_clr_stats_input { 3134 __le16 req_type; 3135 __le16 cmpl_ring; 3136 __le16 seq_id; 3137 __le16 target_id; 3138 __le64 resp_addr; 3139 }; 3140 3141 /* hwrm_port_lpbk_clr_stats_output (size:128b/16B) */ 3142 struct hwrm_port_lpbk_clr_stats_output { 3143 __le16 error_code; 3144 __le16 req_type; 3145 __le16 seq_id; 3146 __le16 resp_len; 3147 u8 unused_0[7]; 3148 u8 valid; 3149 }; 3150 3151 /* hwrm_port_ts_query_input (size:192b/24B) */ 3152 struct hwrm_port_ts_query_input { 3153 __le16 req_type; 3154 __le16 cmpl_ring; 3155 __le16 seq_id; 3156 __le16 target_id; 3157 __le64 resp_addr; 3158 __le32 flags; 3159 #define PORT_TS_QUERY_REQ_FLAGS_PATH 0x1UL 3160 #define PORT_TS_QUERY_REQ_FLAGS_PATH_TX 0x0UL 3161 #define PORT_TS_QUERY_REQ_FLAGS_PATH_RX 0x1UL 3162 #define PORT_TS_QUERY_REQ_FLAGS_PATH_LAST PORT_TS_QUERY_REQ_FLAGS_PATH_RX 3163 #define PORT_TS_QUERY_REQ_FLAGS_CURRENT_TIME 0x2UL 3164 __le16 port_id; 3165 u8 unused_0[2]; 3166 }; 3167 3168 /* hwrm_port_ts_query_output (size:192b/24B) */ 3169 struct hwrm_port_ts_query_output { 3170 __le16 error_code; 3171 __le16 req_type; 3172 __le16 seq_id; 3173 __le16 resp_len; 3174 __le64 ptp_msg_ts; 3175 __le16 ptp_msg_seqid; 3176 u8 unused_0[5]; 3177 u8 valid; 3178 }; 3179 3180 /* hwrm_port_phy_qcaps_input (size:192b/24B) */ 3181 struct hwrm_port_phy_qcaps_input { 3182 __le16 req_type; 3183 __le16 cmpl_ring; 3184 __le16 seq_id; 3185 __le16 target_id; 3186 __le64 resp_addr; 3187 __le16 port_id; 3188 u8 unused_0[6]; 3189 }; 3190 3191 /* hwrm_port_phy_qcaps_output (size:192b/24B) */ 3192 struct hwrm_port_phy_qcaps_output { 3193 __le16 error_code; 3194 __le16 req_type; 3195 __le16 seq_id; 3196 __le16 resp_len; 3197 u8 flags; 3198 #define PORT_PHY_QCAPS_RESP_FLAGS_EEE_SUPPORTED 0x1UL 3199 #define PORT_PHY_QCAPS_RESP_FLAGS_EXTERNAL_LPBK_SUPPORTED 0x2UL 3200 #define PORT_PHY_QCAPS_RESP_FLAGS_AUTONEG_LPBK_SUPPORTED 0x4UL 3201 #define PORT_PHY_QCAPS_RESP_FLAGS_SHARED_PHY_CFG_SUPPORTED 0x8UL 3202 #define PORT_PHY_QCAPS_RESP_FLAGS_RSVD1_MASK 0xf0UL 3203 #define PORT_PHY_QCAPS_RESP_FLAGS_RSVD1_SFT 4 3204 u8 port_cnt; 3205 #define PORT_PHY_QCAPS_RESP_PORT_CNT_UNKNOWN 0x0UL 3206 #define PORT_PHY_QCAPS_RESP_PORT_CNT_1 0x1UL 3207 #define PORT_PHY_QCAPS_RESP_PORT_CNT_2 0x2UL 3208 #define PORT_PHY_QCAPS_RESP_PORT_CNT_3 0x3UL 3209 #define PORT_PHY_QCAPS_RESP_PORT_CNT_4 0x4UL 3210 #define PORT_PHY_QCAPS_RESP_PORT_CNT_LAST PORT_PHY_QCAPS_RESP_PORT_CNT_4 3211 __le16 supported_speeds_force_mode; 3212 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100MBHD 0x1UL 3213 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100MB 0x2UL 3214 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_1GBHD 0x4UL 3215 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_1GB 0x8UL 3216 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_2GB 0x10UL 3217 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_2_5GB 0x20UL 3218 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10GB 0x40UL 3219 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_20GB 0x80UL 3220 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_25GB 0x100UL 3221 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_40GB 0x200UL 3222 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_50GB 0x400UL 3223 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100GB 0x800UL 3224 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10MBHD 0x1000UL 3225 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10MB 0x2000UL 3226 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_200GB 0x4000UL 3227 __le16 supported_speeds_auto_mode; 3228 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100MBHD 0x1UL 3229 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100MB 0x2UL 3230 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_1GBHD 0x4UL 3231 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_1GB 0x8UL 3232 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_2GB 0x10UL 3233 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_2_5GB 0x20UL 3234 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10GB 0x40UL 3235 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_20GB 0x80UL 3236 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_25GB 0x100UL 3237 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_40GB 0x200UL 3238 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_50GB 0x400UL 3239 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100GB 0x800UL 3240 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10MBHD 0x1000UL 3241 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10MB 0x2000UL 3242 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_200GB 0x4000UL 3243 __le16 supported_speeds_eee_mode; 3244 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD1 0x1UL 3245 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_100MB 0x2UL 3246 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD2 0x4UL 3247 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_1GB 0x8UL 3248 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD3 0x10UL 3249 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD4 0x20UL 3250 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_10GB 0x40UL 3251 __le32 tx_lpi_timer_low; 3252 #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_LOW_MASK 0xffffffUL 3253 #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_LOW_SFT 0 3254 #define PORT_PHY_QCAPS_RESP_RSVD2_MASK 0xff000000UL 3255 #define PORT_PHY_QCAPS_RESP_RSVD2_SFT 24 3256 __le32 valid_tx_lpi_timer_high; 3257 #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_HIGH_MASK 0xffffffUL 3258 #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_HIGH_SFT 0 3259 #define PORT_PHY_QCAPS_RESP_VALID_MASK 0xff000000UL 3260 #define PORT_PHY_QCAPS_RESP_VALID_SFT 24 3261 }; 3262 3263 /* hwrm_port_phy_i2c_read_input (size:320b/40B) */ 3264 struct hwrm_port_phy_i2c_read_input { 3265 __le16 req_type; 3266 __le16 cmpl_ring; 3267 __le16 seq_id; 3268 __le16 target_id; 3269 __le64 resp_addr; 3270 __le32 flags; 3271 __le32 enables; 3272 #define PORT_PHY_I2C_READ_REQ_ENABLES_PAGE_OFFSET 0x1UL 3273 __le16 port_id; 3274 u8 i2c_slave_addr; 3275 u8 unused_0; 3276 __le16 page_number; 3277 __le16 page_offset; 3278 u8 data_length; 3279 u8 unused_1[7]; 3280 }; 3281 3282 /* hwrm_port_phy_i2c_read_output (size:640b/80B) */ 3283 struct hwrm_port_phy_i2c_read_output { 3284 __le16 error_code; 3285 __le16 req_type; 3286 __le16 seq_id; 3287 __le16 resp_len; 3288 __le32 data[16]; 3289 u8 unused_0[7]; 3290 u8 valid; 3291 }; 3292 3293 /* hwrm_port_phy_mdio_write_input (size:320b/40B) */ 3294 struct hwrm_port_phy_mdio_write_input { 3295 __le16 req_type; 3296 __le16 cmpl_ring; 3297 __le16 seq_id; 3298 __le16 target_id; 3299 __le64 resp_addr; 3300 __le32 unused_0[2]; 3301 __le16 port_id; 3302 u8 phy_addr; 3303 u8 dev_addr; 3304 __le16 reg_addr; 3305 __le16 reg_data; 3306 u8 cl45_mdio; 3307 u8 unused_1[7]; 3308 }; 3309 3310 /* hwrm_port_phy_mdio_write_output (size:128b/16B) */ 3311 struct hwrm_port_phy_mdio_write_output { 3312 __le16 error_code; 3313 __le16 req_type; 3314 __le16 seq_id; 3315 __le16 resp_len; 3316 u8 unused_0[7]; 3317 u8 valid; 3318 }; 3319 3320 /* hwrm_port_phy_mdio_read_input (size:256b/32B) */ 3321 struct hwrm_port_phy_mdio_read_input { 3322 __le16 req_type; 3323 __le16 cmpl_ring; 3324 __le16 seq_id; 3325 __le16 target_id; 3326 __le64 resp_addr; 3327 __le32 unused_0[2]; 3328 __le16 port_id; 3329 u8 phy_addr; 3330 u8 dev_addr; 3331 __le16 reg_addr; 3332 u8 cl45_mdio; 3333 u8 unused_1; 3334 }; 3335 3336 /* hwrm_port_phy_mdio_read_output (size:128b/16B) */ 3337 struct hwrm_port_phy_mdio_read_output { 3338 __le16 error_code; 3339 __le16 req_type; 3340 __le16 seq_id; 3341 __le16 resp_len; 3342 __le16 reg_data; 3343 u8 unused_0[5]; 3344 u8 valid; 3345 }; 3346 3347 /* hwrm_port_led_cfg_input (size:512b/64B) */ 3348 struct hwrm_port_led_cfg_input { 3349 __le16 req_type; 3350 __le16 cmpl_ring; 3351 __le16 seq_id; 3352 __le16 target_id; 3353 __le64 resp_addr; 3354 __le32 enables; 3355 #define PORT_LED_CFG_REQ_ENABLES_LED0_ID 0x1UL 3356 #define PORT_LED_CFG_REQ_ENABLES_LED0_STATE 0x2UL 3357 #define PORT_LED_CFG_REQ_ENABLES_LED0_COLOR 0x4UL 3358 #define PORT_LED_CFG_REQ_ENABLES_LED0_BLINK_ON 0x8UL 3359 #define PORT_LED_CFG_REQ_ENABLES_LED0_BLINK_OFF 0x10UL 3360 #define PORT_LED_CFG_REQ_ENABLES_LED0_GROUP_ID 0x20UL 3361 #define PORT_LED_CFG_REQ_ENABLES_LED1_ID 0x40UL 3362 #define PORT_LED_CFG_REQ_ENABLES_LED1_STATE 0x80UL 3363 #define PORT_LED_CFG_REQ_ENABLES_LED1_COLOR 0x100UL 3364 #define PORT_LED_CFG_REQ_ENABLES_LED1_BLINK_ON 0x200UL 3365 #define PORT_LED_CFG_REQ_ENABLES_LED1_BLINK_OFF 0x400UL 3366 #define PORT_LED_CFG_REQ_ENABLES_LED1_GROUP_ID 0x800UL 3367 #define PORT_LED_CFG_REQ_ENABLES_LED2_ID 0x1000UL 3368 #define PORT_LED_CFG_REQ_ENABLES_LED2_STATE 0x2000UL 3369 #define PORT_LED_CFG_REQ_ENABLES_LED2_COLOR 0x4000UL 3370 #define PORT_LED_CFG_REQ_ENABLES_LED2_BLINK_ON 0x8000UL 3371 #define PORT_LED_CFG_REQ_ENABLES_LED2_BLINK_OFF 0x10000UL 3372 #define PORT_LED_CFG_REQ_ENABLES_LED2_GROUP_ID 0x20000UL 3373 #define PORT_LED_CFG_REQ_ENABLES_LED3_ID 0x40000UL 3374 #define PORT_LED_CFG_REQ_ENABLES_LED3_STATE 0x80000UL 3375 #define PORT_LED_CFG_REQ_ENABLES_LED3_COLOR 0x100000UL 3376 #define PORT_LED_CFG_REQ_ENABLES_LED3_BLINK_ON 0x200000UL 3377 #define PORT_LED_CFG_REQ_ENABLES_LED3_BLINK_OFF 0x400000UL 3378 #define PORT_LED_CFG_REQ_ENABLES_LED3_GROUP_ID 0x800000UL 3379 __le16 port_id; 3380 u8 num_leds; 3381 u8 rsvd; 3382 u8 led0_id; 3383 u8 led0_state; 3384 #define PORT_LED_CFG_REQ_LED0_STATE_DEFAULT 0x0UL 3385 #define PORT_LED_CFG_REQ_LED0_STATE_OFF 0x1UL 3386 #define PORT_LED_CFG_REQ_LED0_STATE_ON 0x2UL 3387 #define PORT_LED_CFG_REQ_LED0_STATE_BLINK 0x3UL 3388 #define PORT_LED_CFG_REQ_LED0_STATE_BLINKALT 0x4UL 3389 #define PORT_LED_CFG_REQ_LED0_STATE_LAST PORT_LED_CFG_REQ_LED0_STATE_BLINKALT 3390 u8 led0_color; 3391 #define PORT_LED_CFG_REQ_LED0_COLOR_DEFAULT 0x0UL 3392 #define PORT_LED_CFG_REQ_LED0_COLOR_AMBER 0x1UL 3393 #define PORT_LED_CFG_REQ_LED0_COLOR_GREEN 0x2UL 3394 #define PORT_LED_CFG_REQ_LED0_COLOR_GREENAMBER 0x3UL 3395 #define PORT_LED_CFG_REQ_LED0_COLOR_LAST PORT_LED_CFG_REQ_LED0_COLOR_GREENAMBER 3396 u8 unused_0; 3397 __le16 led0_blink_on; 3398 __le16 led0_blink_off; 3399 u8 led0_group_id; 3400 u8 rsvd0; 3401 u8 led1_id; 3402 u8 led1_state; 3403 #define PORT_LED_CFG_REQ_LED1_STATE_DEFAULT 0x0UL 3404 #define PORT_LED_CFG_REQ_LED1_STATE_OFF 0x1UL 3405 #define PORT_LED_CFG_REQ_LED1_STATE_ON 0x2UL 3406 #define PORT_LED_CFG_REQ_LED1_STATE_BLINK 0x3UL 3407 #define PORT_LED_CFG_REQ_LED1_STATE_BLINKALT 0x4UL 3408 #define PORT_LED_CFG_REQ_LED1_STATE_LAST PORT_LED_CFG_REQ_LED1_STATE_BLINKALT 3409 u8 led1_color; 3410 #define PORT_LED_CFG_REQ_LED1_COLOR_DEFAULT 0x0UL 3411 #define PORT_LED_CFG_REQ_LED1_COLOR_AMBER 0x1UL 3412 #define PORT_LED_CFG_REQ_LED1_COLOR_GREEN 0x2UL 3413 #define PORT_LED_CFG_REQ_LED1_COLOR_GREENAMBER 0x3UL 3414 #define PORT_LED_CFG_REQ_LED1_COLOR_LAST PORT_LED_CFG_REQ_LED1_COLOR_GREENAMBER 3415 u8 unused_1; 3416 __le16 led1_blink_on; 3417 __le16 led1_blink_off; 3418 u8 led1_group_id; 3419 u8 rsvd1; 3420 u8 led2_id; 3421 u8 led2_state; 3422 #define PORT_LED_CFG_REQ_LED2_STATE_DEFAULT 0x0UL 3423 #define PORT_LED_CFG_REQ_LED2_STATE_OFF 0x1UL 3424 #define PORT_LED_CFG_REQ_LED2_STATE_ON 0x2UL 3425 #define PORT_LED_CFG_REQ_LED2_STATE_BLINK 0x3UL 3426 #define PORT_LED_CFG_REQ_LED2_STATE_BLINKALT 0x4UL 3427 #define PORT_LED_CFG_REQ_LED2_STATE_LAST PORT_LED_CFG_REQ_LED2_STATE_BLINKALT 3428 u8 led2_color; 3429 #define PORT_LED_CFG_REQ_LED2_COLOR_DEFAULT 0x0UL 3430 #define PORT_LED_CFG_REQ_LED2_COLOR_AMBER 0x1UL 3431 #define PORT_LED_CFG_REQ_LED2_COLOR_GREEN 0x2UL 3432 #define PORT_LED_CFG_REQ_LED2_COLOR_GREENAMBER 0x3UL 3433 #define PORT_LED_CFG_REQ_LED2_COLOR_LAST PORT_LED_CFG_REQ_LED2_COLOR_GREENAMBER 3434 u8 unused_2; 3435 __le16 led2_blink_on; 3436 __le16 led2_blink_off; 3437 u8 led2_group_id; 3438 u8 rsvd2; 3439 u8 led3_id; 3440 u8 led3_state; 3441 #define PORT_LED_CFG_REQ_LED3_STATE_DEFAULT 0x0UL 3442 #define PORT_LED_CFG_REQ_LED3_STATE_OFF 0x1UL 3443 #define PORT_LED_CFG_REQ_LED3_STATE_ON 0x2UL 3444 #define PORT_LED_CFG_REQ_LED3_STATE_BLINK 0x3UL 3445 #define PORT_LED_CFG_REQ_LED3_STATE_BLINKALT 0x4UL 3446 #define PORT_LED_CFG_REQ_LED3_STATE_LAST PORT_LED_CFG_REQ_LED3_STATE_BLINKALT 3447 u8 led3_color; 3448 #define PORT_LED_CFG_REQ_LED3_COLOR_DEFAULT 0x0UL 3449 #define PORT_LED_CFG_REQ_LED3_COLOR_AMBER 0x1UL 3450 #define PORT_LED_CFG_REQ_LED3_COLOR_GREEN 0x2UL 3451 #define PORT_LED_CFG_REQ_LED3_COLOR_GREENAMBER 0x3UL 3452 #define PORT_LED_CFG_REQ_LED3_COLOR_LAST PORT_LED_CFG_REQ_LED3_COLOR_GREENAMBER 3453 u8 unused_3; 3454 __le16 led3_blink_on; 3455 __le16 led3_blink_off; 3456 u8 led3_group_id; 3457 u8 rsvd3; 3458 }; 3459 3460 /* hwrm_port_led_cfg_output (size:128b/16B) */ 3461 struct hwrm_port_led_cfg_output { 3462 __le16 error_code; 3463 __le16 req_type; 3464 __le16 seq_id; 3465 __le16 resp_len; 3466 u8 unused_0[7]; 3467 u8 valid; 3468 }; 3469 3470 /* hwrm_port_led_qcfg_input (size:192b/24B) */ 3471 struct hwrm_port_led_qcfg_input { 3472 __le16 req_type; 3473 __le16 cmpl_ring; 3474 __le16 seq_id; 3475 __le16 target_id; 3476 __le64 resp_addr; 3477 __le16 port_id; 3478 u8 unused_0[6]; 3479 }; 3480 3481 /* hwrm_port_led_qcfg_output (size:448b/56B) */ 3482 struct hwrm_port_led_qcfg_output { 3483 __le16 error_code; 3484 __le16 req_type; 3485 __le16 seq_id; 3486 __le16 resp_len; 3487 u8 num_leds; 3488 u8 led0_id; 3489 u8 led0_type; 3490 #define PORT_LED_QCFG_RESP_LED0_TYPE_SPEED 0x0UL 3491 #define PORT_LED_QCFG_RESP_LED0_TYPE_ACTIVITY 0x1UL 3492 #define PORT_LED_QCFG_RESP_LED0_TYPE_INVALID 0xffUL 3493 #define PORT_LED_QCFG_RESP_LED0_TYPE_LAST PORT_LED_QCFG_RESP_LED0_TYPE_INVALID 3494 u8 led0_state; 3495 #define PORT_LED_QCFG_RESP_LED0_STATE_DEFAULT 0x0UL 3496 #define PORT_LED_QCFG_RESP_LED0_STATE_OFF 0x1UL 3497 #define PORT_LED_QCFG_RESP_LED0_STATE_ON 0x2UL 3498 #define PORT_LED_QCFG_RESP_LED0_STATE_BLINK 0x3UL 3499 #define PORT_LED_QCFG_RESP_LED0_STATE_BLINKALT 0x4UL 3500 #define PORT_LED_QCFG_RESP_LED0_STATE_LAST PORT_LED_QCFG_RESP_LED0_STATE_BLINKALT 3501 u8 led0_color; 3502 #define PORT_LED_QCFG_RESP_LED0_COLOR_DEFAULT 0x0UL 3503 #define PORT_LED_QCFG_RESP_LED0_COLOR_AMBER 0x1UL 3504 #define PORT_LED_QCFG_RESP_LED0_COLOR_GREEN 0x2UL 3505 #define PORT_LED_QCFG_RESP_LED0_COLOR_GREENAMBER 0x3UL 3506 #define PORT_LED_QCFG_RESP_LED0_COLOR_LAST PORT_LED_QCFG_RESP_LED0_COLOR_GREENAMBER 3507 u8 unused_0; 3508 __le16 led0_blink_on; 3509 __le16 led0_blink_off; 3510 u8 led0_group_id; 3511 u8 led1_id; 3512 u8 led1_type; 3513 #define PORT_LED_QCFG_RESP_LED1_TYPE_SPEED 0x0UL 3514 #define PORT_LED_QCFG_RESP_LED1_TYPE_ACTIVITY 0x1UL 3515 #define PORT_LED_QCFG_RESP_LED1_TYPE_INVALID 0xffUL 3516 #define PORT_LED_QCFG_RESP_LED1_TYPE_LAST PORT_LED_QCFG_RESP_LED1_TYPE_INVALID 3517 u8 led1_state; 3518 #define PORT_LED_QCFG_RESP_LED1_STATE_DEFAULT 0x0UL 3519 #define PORT_LED_QCFG_RESP_LED1_STATE_OFF 0x1UL 3520 #define PORT_LED_QCFG_RESP_LED1_STATE_ON 0x2UL 3521 #define PORT_LED_QCFG_RESP_LED1_STATE_BLINK 0x3UL 3522 #define PORT_LED_QCFG_RESP_LED1_STATE_BLINKALT 0x4UL 3523 #define PORT_LED_QCFG_RESP_LED1_STATE_LAST PORT_LED_QCFG_RESP_LED1_STATE_BLINKALT 3524 u8 led1_color; 3525 #define PORT_LED_QCFG_RESP_LED1_COLOR_DEFAULT 0x0UL 3526 #define PORT_LED_QCFG_RESP_LED1_COLOR_AMBER 0x1UL 3527 #define PORT_LED_QCFG_RESP_LED1_COLOR_GREEN 0x2UL 3528 #define PORT_LED_QCFG_RESP_LED1_COLOR_GREENAMBER 0x3UL 3529 #define PORT_LED_QCFG_RESP_LED1_COLOR_LAST PORT_LED_QCFG_RESP_LED1_COLOR_GREENAMBER 3530 u8 unused_1; 3531 __le16 led1_blink_on; 3532 __le16 led1_blink_off; 3533 u8 led1_group_id; 3534 u8 led2_id; 3535 u8 led2_type; 3536 #define PORT_LED_QCFG_RESP_LED2_TYPE_SPEED 0x0UL 3537 #define PORT_LED_QCFG_RESP_LED2_TYPE_ACTIVITY 0x1UL 3538 #define PORT_LED_QCFG_RESP_LED2_TYPE_INVALID 0xffUL 3539 #define PORT_LED_QCFG_RESP_LED2_TYPE_LAST PORT_LED_QCFG_RESP_LED2_TYPE_INVALID 3540 u8 led2_state; 3541 #define PORT_LED_QCFG_RESP_LED2_STATE_DEFAULT 0x0UL 3542 #define PORT_LED_QCFG_RESP_LED2_STATE_OFF 0x1UL 3543 #define PORT_LED_QCFG_RESP_LED2_STATE_ON 0x2UL 3544 #define PORT_LED_QCFG_RESP_LED2_STATE_BLINK 0x3UL 3545 #define PORT_LED_QCFG_RESP_LED2_STATE_BLINKALT 0x4UL 3546 #define PORT_LED_QCFG_RESP_LED2_STATE_LAST PORT_LED_QCFG_RESP_LED2_STATE_BLINKALT 3547 u8 led2_color; 3548 #define PORT_LED_QCFG_RESP_LED2_COLOR_DEFAULT 0x0UL 3549 #define PORT_LED_QCFG_RESP_LED2_COLOR_AMBER 0x1UL 3550 #define PORT_LED_QCFG_RESP_LED2_COLOR_GREEN 0x2UL 3551 #define PORT_LED_QCFG_RESP_LED2_COLOR_GREENAMBER 0x3UL 3552 #define PORT_LED_QCFG_RESP_LED2_COLOR_LAST PORT_LED_QCFG_RESP_LED2_COLOR_GREENAMBER 3553 u8 unused_2; 3554 __le16 led2_blink_on; 3555 __le16 led2_blink_off; 3556 u8 led2_group_id; 3557 u8 led3_id; 3558 u8 led3_type; 3559 #define PORT_LED_QCFG_RESP_LED3_TYPE_SPEED 0x0UL 3560 #define PORT_LED_QCFG_RESP_LED3_TYPE_ACTIVITY 0x1UL 3561 #define PORT_LED_QCFG_RESP_LED3_TYPE_INVALID 0xffUL 3562 #define PORT_LED_QCFG_RESP_LED3_TYPE_LAST PORT_LED_QCFG_RESP_LED3_TYPE_INVALID 3563 u8 led3_state; 3564 #define PORT_LED_QCFG_RESP_LED3_STATE_DEFAULT 0x0UL 3565 #define PORT_LED_QCFG_RESP_LED3_STATE_OFF 0x1UL 3566 #define PORT_LED_QCFG_RESP_LED3_STATE_ON 0x2UL 3567 #define PORT_LED_QCFG_RESP_LED3_STATE_BLINK 0x3UL 3568 #define PORT_LED_QCFG_RESP_LED3_STATE_BLINKALT 0x4UL 3569 #define PORT_LED_QCFG_RESP_LED3_STATE_LAST PORT_LED_QCFG_RESP_LED3_STATE_BLINKALT 3570 u8 led3_color; 3571 #define PORT_LED_QCFG_RESP_LED3_COLOR_DEFAULT 0x0UL 3572 #define PORT_LED_QCFG_RESP_LED3_COLOR_AMBER 0x1UL 3573 #define PORT_LED_QCFG_RESP_LED3_COLOR_GREEN 0x2UL 3574 #define PORT_LED_QCFG_RESP_LED3_COLOR_GREENAMBER 0x3UL 3575 #define PORT_LED_QCFG_RESP_LED3_COLOR_LAST PORT_LED_QCFG_RESP_LED3_COLOR_GREENAMBER 3576 u8 unused_3; 3577 __le16 led3_blink_on; 3578 __le16 led3_blink_off; 3579 u8 led3_group_id; 3580 u8 unused_4[6]; 3581 u8 valid; 3582 }; 3583 3584 /* hwrm_port_led_qcaps_input (size:192b/24B) */ 3585 struct hwrm_port_led_qcaps_input { 3586 __le16 req_type; 3587 __le16 cmpl_ring; 3588 __le16 seq_id; 3589 __le16 target_id; 3590 __le64 resp_addr; 3591 __le16 port_id; 3592 u8 unused_0[6]; 3593 }; 3594 3595 /* hwrm_port_led_qcaps_output (size:384b/48B) */ 3596 struct hwrm_port_led_qcaps_output { 3597 __le16 error_code; 3598 __le16 req_type; 3599 __le16 seq_id; 3600 __le16 resp_len; 3601 u8 num_leds; 3602 u8 unused[3]; 3603 u8 led0_id; 3604 u8 led0_type; 3605 #define PORT_LED_QCAPS_RESP_LED0_TYPE_SPEED 0x0UL 3606 #define PORT_LED_QCAPS_RESP_LED0_TYPE_ACTIVITY 0x1UL 3607 #define PORT_LED_QCAPS_RESP_LED0_TYPE_INVALID 0xffUL 3608 #define PORT_LED_QCAPS_RESP_LED0_TYPE_LAST PORT_LED_QCAPS_RESP_LED0_TYPE_INVALID 3609 u8 led0_group_id; 3610 u8 unused_0; 3611 __le16 led0_state_caps; 3612 #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_ENABLED 0x1UL 3613 #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_OFF_SUPPORTED 0x2UL 3614 #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_ON_SUPPORTED 0x4UL 3615 #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_BLINK_SUPPORTED 0x8UL 3616 #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_BLINK_ALT_SUPPORTED 0x10UL 3617 __le16 led0_color_caps; 3618 #define PORT_LED_QCAPS_RESP_LED0_COLOR_CAPS_RSVD 0x1UL 3619 #define PORT_LED_QCAPS_RESP_LED0_COLOR_CAPS_AMBER_SUPPORTED 0x2UL 3620 #define PORT_LED_QCAPS_RESP_LED0_COLOR_CAPS_GREEN_SUPPORTED 0x4UL 3621 u8 led1_id; 3622 u8 led1_type; 3623 #define PORT_LED_QCAPS_RESP_LED1_TYPE_SPEED 0x0UL 3624 #define PORT_LED_QCAPS_RESP_LED1_TYPE_ACTIVITY 0x1UL 3625 #define PORT_LED_QCAPS_RESP_LED1_TYPE_INVALID 0xffUL 3626 #define PORT_LED_QCAPS_RESP_LED1_TYPE_LAST PORT_LED_QCAPS_RESP_LED1_TYPE_INVALID 3627 u8 led1_group_id; 3628 u8 unused_1; 3629 __le16 led1_state_caps; 3630 #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_ENABLED 0x1UL 3631 #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_OFF_SUPPORTED 0x2UL 3632 #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_ON_SUPPORTED 0x4UL 3633 #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_BLINK_SUPPORTED 0x8UL 3634 #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_BLINK_ALT_SUPPORTED 0x10UL 3635 __le16 led1_color_caps; 3636 #define PORT_LED_QCAPS_RESP_LED1_COLOR_CAPS_RSVD 0x1UL 3637 #define PORT_LED_QCAPS_RESP_LED1_COLOR_CAPS_AMBER_SUPPORTED 0x2UL 3638 #define PORT_LED_QCAPS_RESP_LED1_COLOR_CAPS_GREEN_SUPPORTED 0x4UL 3639 u8 led2_id; 3640 u8 led2_type; 3641 #define PORT_LED_QCAPS_RESP_LED2_TYPE_SPEED 0x0UL 3642 #define PORT_LED_QCAPS_RESP_LED2_TYPE_ACTIVITY 0x1UL 3643 #define PORT_LED_QCAPS_RESP_LED2_TYPE_INVALID 0xffUL 3644 #define PORT_LED_QCAPS_RESP_LED2_TYPE_LAST PORT_LED_QCAPS_RESP_LED2_TYPE_INVALID 3645 u8 led2_group_id; 3646 u8 unused_2; 3647 __le16 led2_state_caps; 3648 #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_ENABLED 0x1UL 3649 #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_OFF_SUPPORTED 0x2UL 3650 #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_ON_SUPPORTED 0x4UL 3651 #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_BLINK_SUPPORTED 0x8UL 3652 #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_BLINK_ALT_SUPPORTED 0x10UL 3653 __le16 led2_color_caps; 3654 #define PORT_LED_QCAPS_RESP_LED2_COLOR_CAPS_RSVD 0x1UL 3655 #define PORT_LED_QCAPS_RESP_LED2_COLOR_CAPS_AMBER_SUPPORTED 0x2UL 3656 #define PORT_LED_QCAPS_RESP_LED2_COLOR_CAPS_GREEN_SUPPORTED 0x4UL 3657 u8 led3_id; 3658 u8 led3_type; 3659 #define PORT_LED_QCAPS_RESP_LED3_TYPE_SPEED 0x0UL 3660 #define PORT_LED_QCAPS_RESP_LED3_TYPE_ACTIVITY 0x1UL 3661 #define PORT_LED_QCAPS_RESP_LED3_TYPE_INVALID 0xffUL 3662 #define PORT_LED_QCAPS_RESP_LED3_TYPE_LAST PORT_LED_QCAPS_RESP_LED3_TYPE_INVALID 3663 u8 led3_group_id; 3664 u8 unused_3; 3665 __le16 led3_state_caps; 3666 #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_ENABLED 0x1UL 3667 #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_OFF_SUPPORTED 0x2UL 3668 #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_ON_SUPPORTED 0x4UL 3669 #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_BLINK_SUPPORTED 0x8UL 3670 #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_BLINK_ALT_SUPPORTED 0x10UL 3671 __le16 led3_color_caps; 3672 #define PORT_LED_QCAPS_RESP_LED3_COLOR_CAPS_RSVD 0x1UL 3673 #define PORT_LED_QCAPS_RESP_LED3_COLOR_CAPS_AMBER_SUPPORTED 0x2UL 3674 #define PORT_LED_QCAPS_RESP_LED3_COLOR_CAPS_GREEN_SUPPORTED 0x4UL 3675 u8 unused_4[3]; 3676 u8 valid; 3677 }; 3678 3679 /* hwrm_queue_qportcfg_input (size:192b/24B) */ 3680 struct hwrm_queue_qportcfg_input { 3681 __le16 req_type; 3682 __le16 cmpl_ring; 3683 __le16 seq_id; 3684 __le16 target_id; 3685 __le64 resp_addr; 3686 __le32 flags; 3687 #define QUEUE_QPORTCFG_REQ_FLAGS_PATH 0x1UL 3688 #define QUEUE_QPORTCFG_REQ_FLAGS_PATH_TX 0x0UL 3689 #define QUEUE_QPORTCFG_REQ_FLAGS_PATH_RX 0x1UL 3690 #define QUEUE_QPORTCFG_REQ_FLAGS_PATH_LAST QUEUE_QPORTCFG_REQ_FLAGS_PATH_RX 3691 __le16 port_id; 3692 u8 drv_qmap_cap; 3693 #define QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_DISABLED 0x0UL 3694 #define QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_ENABLED 0x1UL 3695 #define QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_LAST QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_ENABLED 3696 u8 unused_0; 3697 }; 3698 3699 /* hwrm_queue_qportcfg_output (size:256b/32B) */ 3700 struct hwrm_queue_qportcfg_output { 3701 __le16 error_code; 3702 __le16 req_type; 3703 __le16 seq_id; 3704 __le16 resp_len; 3705 u8 max_configurable_queues; 3706 u8 max_configurable_lossless_queues; 3707 u8 queue_cfg_allowed; 3708 u8 queue_cfg_info; 3709 #define QUEUE_QPORTCFG_RESP_QUEUE_CFG_INFO_ASYM_CFG 0x1UL 3710 u8 queue_pfcenable_cfg_allowed; 3711 u8 queue_pri2cos_cfg_allowed; 3712 u8 queue_cos2bw_cfg_allowed; 3713 u8 queue_id0; 3714 u8 queue_id0_service_profile; 3715 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSY 0x0UL 3716 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS 0x1UL 3717 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 3718 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 3719 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 3720 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_UNKNOWN 0xffUL 3721 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_UNKNOWN 3722 u8 queue_id1; 3723 u8 queue_id1_service_profile; 3724 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSY 0x0UL 3725 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSLESS 0x1UL 3726 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 3727 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 3728 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 3729 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_UNKNOWN 0xffUL 3730 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_UNKNOWN 3731 u8 queue_id2; 3732 u8 queue_id2_service_profile; 3733 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSY 0x0UL 3734 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSLESS 0x1UL 3735 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 3736 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 3737 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 3738 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_UNKNOWN 0xffUL 3739 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_UNKNOWN 3740 u8 queue_id3; 3741 u8 queue_id3_service_profile; 3742 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSY 0x0UL 3743 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSLESS 0x1UL 3744 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 3745 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 3746 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 3747 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_UNKNOWN 0xffUL 3748 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_UNKNOWN 3749 u8 queue_id4; 3750 u8 queue_id4_service_profile; 3751 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSY 0x0UL 3752 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSLESS 0x1UL 3753 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 3754 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 3755 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 3756 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_UNKNOWN 0xffUL 3757 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_UNKNOWN 3758 u8 queue_id5; 3759 u8 queue_id5_service_profile; 3760 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSY 0x0UL 3761 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSLESS 0x1UL 3762 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 3763 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 3764 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 3765 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_UNKNOWN 0xffUL 3766 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_UNKNOWN 3767 u8 queue_id6; 3768 u8 queue_id6_service_profile; 3769 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSY 0x0UL 3770 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSLESS 0x1UL 3771 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 3772 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 3773 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 3774 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_UNKNOWN 0xffUL 3775 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_UNKNOWN 3776 u8 queue_id7; 3777 u8 queue_id7_service_profile; 3778 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSY 0x0UL 3779 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSLESS 0x1UL 3780 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 3781 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 3782 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 3783 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_UNKNOWN 0xffUL 3784 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_UNKNOWN 3785 u8 valid; 3786 }; 3787 3788 /* hwrm_queue_cfg_input (size:320b/40B) */ 3789 struct hwrm_queue_cfg_input { 3790 __le16 req_type; 3791 __le16 cmpl_ring; 3792 __le16 seq_id; 3793 __le16 target_id; 3794 __le64 resp_addr; 3795 __le32 flags; 3796 #define QUEUE_CFG_REQ_FLAGS_PATH_MASK 0x3UL 3797 #define QUEUE_CFG_REQ_FLAGS_PATH_SFT 0 3798 #define QUEUE_CFG_REQ_FLAGS_PATH_TX 0x0UL 3799 #define QUEUE_CFG_REQ_FLAGS_PATH_RX 0x1UL 3800 #define QUEUE_CFG_REQ_FLAGS_PATH_BIDIR 0x2UL 3801 #define QUEUE_CFG_REQ_FLAGS_PATH_LAST QUEUE_CFG_REQ_FLAGS_PATH_BIDIR 3802 __le32 enables; 3803 #define QUEUE_CFG_REQ_ENABLES_DFLT_LEN 0x1UL 3804 #define QUEUE_CFG_REQ_ENABLES_SERVICE_PROFILE 0x2UL 3805 __le32 queue_id; 3806 __le32 dflt_len; 3807 u8 service_profile; 3808 #define QUEUE_CFG_REQ_SERVICE_PROFILE_LOSSY 0x0UL 3809 #define QUEUE_CFG_REQ_SERVICE_PROFILE_LOSSLESS 0x1UL 3810 #define QUEUE_CFG_REQ_SERVICE_PROFILE_UNKNOWN 0xffUL 3811 #define QUEUE_CFG_REQ_SERVICE_PROFILE_LAST QUEUE_CFG_REQ_SERVICE_PROFILE_UNKNOWN 3812 u8 unused_0[7]; 3813 }; 3814 3815 /* hwrm_queue_cfg_output (size:128b/16B) */ 3816 struct hwrm_queue_cfg_output { 3817 __le16 error_code; 3818 __le16 req_type; 3819 __le16 seq_id; 3820 __le16 resp_len; 3821 u8 unused_0[7]; 3822 u8 valid; 3823 }; 3824 3825 /* hwrm_queue_pfcenable_qcfg_input (size:192b/24B) */ 3826 struct hwrm_queue_pfcenable_qcfg_input { 3827 __le16 req_type; 3828 __le16 cmpl_ring; 3829 __le16 seq_id; 3830 __le16 target_id; 3831 __le64 resp_addr; 3832 __le16 port_id; 3833 u8 unused_0[6]; 3834 }; 3835 3836 /* hwrm_queue_pfcenable_qcfg_output (size:128b/16B) */ 3837 struct hwrm_queue_pfcenable_qcfg_output { 3838 __le16 error_code; 3839 __le16 req_type; 3840 __le16 seq_id; 3841 __le16 resp_len; 3842 __le32 flags; 3843 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI0_PFC_ENABLED 0x1UL 3844 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI1_PFC_ENABLED 0x2UL 3845 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI2_PFC_ENABLED 0x4UL 3846 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI3_PFC_ENABLED 0x8UL 3847 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI4_PFC_ENABLED 0x10UL 3848 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI5_PFC_ENABLED 0x20UL 3849 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI6_PFC_ENABLED 0x40UL 3850 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI7_PFC_ENABLED 0x80UL 3851 u8 unused_0[3]; 3852 u8 valid; 3853 }; 3854 3855 /* hwrm_queue_pfcenable_cfg_input (size:192b/24B) */ 3856 struct hwrm_queue_pfcenable_cfg_input { 3857 __le16 req_type; 3858 __le16 cmpl_ring; 3859 __le16 seq_id; 3860 __le16 target_id; 3861 __le64 resp_addr; 3862 __le32 flags; 3863 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI0_PFC_ENABLED 0x1UL 3864 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI1_PFC_ENABLED 0x2UL 3865 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI2_PFC_ENABLED 0x4UL 3866 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI3_PFC_ENABLED 0x8UL 3867 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI4_PFC_ENABLED 0x10UL 3868 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI5_PFC_ENABLED 0x20UL 3869 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI6_PFC_ENABLED 0x40UL 3870 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI7_PFC_ENABLED 0x80UL 3871 __le16 port_id; 3872 u8 unused_0[2]; 3873 }; 3874 3875 /* hwrm_queue_pfcenable_cfg_output (size:128b/16B) */ 3876 struct hwrm_queue_pfcenable_cfg_output { 3877 __le16 error_code; 3878 __le16 req_type; 3879 __le16 seq_id; 3880 __le16 resp_len; 3881 u8 unused_0[7]; 3882 u8 valid; 3883 }; 3884 3885 /* hwrm_queue_pri2cos_qcfg_input (size:192b/24B) */ 3886 struct hwrm_queue_pri2cos_qcfg_input { 3887 __le16 req_type; 3888 __le16 cmpl_ring; 3889 __le16 seq_id; 3890 __le16 target_id; 3891 __le64 resp_addr; 3892 __le32 flags; 3893 #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH 0x1UL 3894 #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_TX 0x0UL 3895 #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_RX 0x1UL 3896 #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_LAST QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_RX 3897 #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_IVLAN 0x2UL 3898 u8 port_id; 3899 u8 unused_0[3]; 3900 }; 3901 3902 /* hwrm_queue_pri2cos_qcfg_output (size:192b/24B) */ 3903 struct hwrm_queue_pri2cos_qcfg_output { 3904 __le16 error_code; 3905 __le16 req_type; 3906 __le16 seq_id; 3907 __le16 resp_len; 3908 u8 pri0_cos_queue_id; 3909 u8 pri1_cos_queue_id; 3910 u8 pri2_cos_queue_id; 3911 u8 pri3_cos_queue_id; 3912 u8 pri4_cos_queue_id; 3913 u8 pri5_cos_queue_id; 3914 u8 pri6_cos_queue_id; 3915 u8 pri7_cos_queue_id; 3916 u8 queue_cfg_info; 3917 #define QUEUE_PRI2COS_QCFG_RESP_QUEUE_CFG_INFO_ASYM_CFG 0x1UL 3918 u8 unused_0[6]; 3919 u8 valid; 3920 }; 3921 3922 /* hwrm_queue_pri2cos_cfg_input (size:320b/40B) */ 3923 struct hwrm_queue_pri2cos_cfg_input { 3924 __le16 req_type; 3925 __le16 cmpl_ring; 3926 __le16 seq_id; 3927 __le16 target_id; 3928 __le64 resp_addr; 3929 __le32 flags; 3930 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_MASK 0x3UL 3931 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_SFT 0 3932 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_TX 0x0UL 3933 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_RX 0x1UL 3934 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_BIDIR 0x2UL 3935 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_LAST QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_BIDIR 3936 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_IVLAN 0x4UL 3937 __le32 enables; 3938 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI0_COS_QUEUE_ID 0x1UL 3939 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI1_COS_QUEUE_ID 0x2UL 3940 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI2_COS_QUEUE_ID 0x4UL 3941 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI3_COS_QUEUE_ID 0x8UL 3942 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI4_COS_QUEUE_ID 0x10UL 3943 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI5_COS_QUEUE_ID 0x20UL 3944 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI6_COS_QUEUE_ID 0x40UL 3945 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI7_COS_QUEUE_ID 0x80UL 3946 u8 port_id; 3947 u8 pri0_cos_queue_id; 3948 u8 pri1_cos_queue_id; 3949 u8 pri2_cos_queue_id; 3950 u8 pri3_cos_queue_id; 3951 u8 pri4_cos_queue_id; 3952 u8 pri5_cos_queue_id; 3953 u8 pri6_cos_queue_id; 3954 u8 pri7_cos_queue_id; 3955 u8 unused_0[7]; 3956 }; 3957 3958 /* hwrm_queue_pri2cos_cfg_output (size:128b/16B) */ 3959 struct hwrm_queue_pri2cos_cfg_output { 3960 __le16 error_code; 3961 __le16 req_type; 3962 __le16 seq_id; 3963 __le16 resp_len; 3964 u8 unused_0[7]; 3965 u8 valid; 3966 }; 3967 3968 /* hwrm_queue_cos2bw_qcfg_input (size:192b/24B) */ 3969 struct hwrm_queue_cos2bw_qcfg_input { 3970 __le16 req_type; 3971 __le16 cmpl_ring; 3972 __le16 seq_id; 3973 __le16 target_id; 3974 __le64 resp_addr; 3975 __le16 port_id; 3976 u8 unused_0[6]; 3977 }; 3978 3979 /* hwrm_queue_cos2bw_qcfg_output (size:896b/112B) */ 3980 struct hwrm_queue_cos2bw_qcfg_output { 3981 __le16 error_code; 3982 __le16 req_type; 3983 __le16 seq_id; 3984 __le16 resp_len; 3985 u8 queue_id0; 3986 u8 unused_0; 3987 __le16 unused_1; 3988 __le32 queue_id0_min_bw; 3989 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_MASK 0xfffffffUL 3990 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_SFT 0 3991 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE 0x10000000UL 3992 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_BITS (0x0UL << 28) 3993 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_BYTES (0x1UL << 28) 3994 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_BYTES 3995 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 3996 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_SFT 29 3997 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 3998 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 3999 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4000 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4001 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4002 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4003 #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 4004 __le32 queue_id0_max_bw; 4005 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_MASK 0xfffffffUL 4006 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_SFT 0 4007 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE 0x10000000UL 4008 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_BITS (0x0UL << 28) 4009 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_BYTES (0x1UL << 28) 4010 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_BYTES 4011 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4012 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_SFT 29 4013 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4014 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4015 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4016 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4017 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4018 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4019 #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 4020 u8 queue_id0_tsa_assign; 4021 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_SP 0x0UL 4022 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_ETS 0x1UL 4023 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_RESERVED_FIRST 0x2UL 4024 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_RESERVED_LAST 0xffUL 4025 u8 queue_id0_pri_lvl; 4026 u8 queue_id0_bw_weight; 4027 u8 queue_id1; 4028 __le32 queue_id1_min_bw; 4029 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_MASK 0xfffffffUL 4030 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_SFT 0 4031 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_SCALE 0x10000000UL 4032 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_SCALE_BITS (0x0UL << 28) 4033 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_SCALE_BYTES (0x1UL << 28) 4034 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_SCALE_BYTES 4035 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4036 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_SFT 29 4037 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4038 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4039 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4040 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4041 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4042 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4043 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_INVALID 4044 __le32 queue_id1_max_bw; 4045 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_MASK 0xfffffffUL 4046 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_SFT 0 4047 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_SCALE 0x10000000UL 4048 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_SCALE_BITS (0x0UL << 28) 4049 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_SCALE_BYTES (0x1UL << 28) 4050 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_SCALE_BYTES 4051 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4052 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_SFT 29 4053 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4054 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4055 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4056 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4057 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4058 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4059 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_INVALID 4060 u8 queue_id1_tsa_assign; 4061 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_TSA_ASSIGN_SP 0x0UL 4062 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_TSA_ASSIGN_ETS 0x1UL 4063 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_TSA_ASSIGN_RESERVED_FIRST 0x2UL 4064 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_TSA_ASSIGN_RESERVED_LAST 0xffUL 4065 u8 queue_id1_pri_lvl; 4066 u8 queue_id1_bw_weight; 4067 u8 queue_id2; 4068 __le32 queue_id2_min_bw; 4069 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_MASK 0xfffffffUL 4070 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_SFT 0 4071 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_SCALE 0x10000000UL 4072 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_SCALE_BITS (0x0UL << 28) 4073 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_SCALE_BYTES (0x1UL << 28) 4074 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_SCALE_BYTES 4075 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4076 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_SFT 29 4077 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4078 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4079 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4080 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4081 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4082 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4083 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_INVALID 4084 __le32 queue_id2_max_bw; 4085 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_MASK 0xfffffffUL 4086 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_SFT 0 4087 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_SCALE 0x10000000UL 4088 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_SCALE_BITS (0x0UL << 28) 4089 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_SCALE_BYTES (0x1UL << 28) 4090 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_SCALE_BYTES 4091 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4092 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_SFT 29 4093 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4094 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4095 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4096 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4097 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4098 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4099 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_INVALID 4100 u8 queue_id2_tsa_assign; 4101 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_TSA_ASSIGN_SP 0x0UL 4102 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_TSA_ASSIGN_ETS 0x1UL 4103 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_TSA_ASSIGN_RESERVED_FIRST 0x2UL 4104 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_TSA_ASSIGN_RESERVED_LAST 0xffUL 4105 u8 queue_id2_pri_lvl; 4106 u8 queue_id2_bw_weight; 4107 u8 queue_id3; 4108 __le32 queue_id3_min_bw; 4109 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_MASK 0xfffffffUL 4110 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_SFT 0 4111 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_SCALE 0x10000000UL 4112 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_SCALE_BITS (0x0UL << 28) 4113 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_SCALE_BYTES (0x1UL << 28) 4114 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_SCALE_BYTES 4115 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4116 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_SFT 29 4117 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4118 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4119 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4120 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4121 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4122 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4123 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_INVALID 4124 __le32 queue_id3_max_bw; 4125 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_MASK 0xfffffffUL 4126 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_SFT 0 4127 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_SCALE 0x10000000UL 4128 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_SCALE_BITS (0x0UL << 28) 4129 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_SCALE_BYTES (0x1UL << 28) 4130 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_SCALE_BYTES 4131 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4132 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_SFT 29 4133 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4134 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4135 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4136 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4137 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4138 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4139 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_INVALID 4140 u8 queue_id3_tsa_assign; 4141 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_TSA_ASSIGN_SP 0x0UL 4142 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_TSA_ASSIGN_ETS 0x1UL 4143 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_TSA_ASSIGN_RESERVED_FIRST 0x2UL 4144 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_TSA_ASSIGN_RESERVED_LAST 0xffUL 4145 u8 queue_id3_pri_lvl; 4146 u8 queue_id3_bw_weight; 4147 u8 queue_id4; 4148 __le32 queue_id4_min_bw; 4149 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_MASK 0xfffffffUL 4150 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_SFT 0 4151 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_SCALE 0x10000000UL 4152 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_SCALE_BITS (0x0UL << 28) 4153 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_SCALE_BYTES (0x1UL << 28) 4154 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_SCALE_BYTES 4155 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4156 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_SFT 29 4157 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4158 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4159 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4160 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4161 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4162 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4163 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_INVALID 4164 __le32 queue_id4_max_bw; 4165 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_MASK 0xfffffffUL 4166 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_SFT 0 4167 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_SCALE 0x10000000UL 4168 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_SCALE_BITS (0x0UL << 28) 4169 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_SCALE_BYTES (0x1UL << 28) 4170 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_SCALE_BYTES 4171 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4172 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_SFT 29 4173 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4174 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4175 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4176 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4177 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4178 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4179 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_INVALID 4180 u8 queue_id4_tsa_assign; 4181 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_TSA_ASSIGN_SP 0x0UL 4182 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_TSA_ASSIGN_ETS 0x1UL 4183 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_TSA_ASSIGN_RESERVED_FIRST 0x2UL 4184 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_TSA_ASSIGN_RESERVED_LAST 0xffUL 4185 u8 queue_id4_pri_lvl; 4186 u8 queue_id4_bw_weight; 4187 u8 queue_id5; 4188 __le32 queue_id5_min_bw; 4189 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_MASK 0xfffffffUL 4190 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_SFT 0 4191 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_SCALE 0x10000000UL 4192 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_SCALE_BITS (0x0UL << 28) 4193 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_SCALE_BYTES (0x1UL << 28) 4194 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_SCALE_BYTES 4195 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4196 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_SFT 29 4197 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4198 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4199 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4200 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4201 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4202 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4203 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_INVALID 4204 __le32 queue_id5_max_bw; 4205 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_MASK 0xfffffffUL 4206 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_SFT 0 4207 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_SCALE 0x10000000UL 4208 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_SCALE_BITS (0x0UL << 28) 4209 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_SCALE_BYTES (0x1UL << 28) 4210 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_SCALE_BYTES 4211 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4212 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_SFT 29 4213 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4214 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4215 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4216 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4217 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4218 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4219 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_INVALID 4220 u8 queue_id5_tsa_assign; 4221 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_TSA_ASSIGN_SP 0x0UL 4222 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_TSA_ASSIGN_ETS 0x1UL 4223 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_TSA_ASSIGN_RESERVED_FIRST 0x2UL 4224 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_TSA_ASSIGN_RESERVED_LAST 0xffUL 4225 u8 queue_id5_pri_lvl; 4226 u8 queue_id5_bw_weight; 4227 u8 queue_id6; 4228 __le32 queue_id6_min_bw; 4229 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_MASK 0xfffffffUL 4230 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_SFT 0 4231 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_SCALE 0x10000000UL 4232 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_SCALE_BITS (0x0UL << 28) 4233 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_SCALE_BYTES (0x1UL << 28) 4234 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_SCALE_BYTES 4235 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4236 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_SFT 29 4237 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4238 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4239 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4240 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4241 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4242 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4243 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_INVALID 4244 __le32 queue_id6_max_bw; 4245 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_MASK 0xfffffffUL 4246 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_SFT 0 4247 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_SCALE 0x10000000UL 4248 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_SCALE_BITS (0x0UL << 28) 4249 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_SCALE_BYTES (0x1UL << 28) 4250 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_SCALE_BYTES 4251 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4252 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_SFT 29 4253 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4254 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4255 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4256 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4257 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4258 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4259 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_INVALID 4260 u8 queue_id6_tsa_assign; 4261 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_TSA_ASSIGN_SP 0x0UL 4262 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_TSA_ASSIGN_ETS 0x1UL 4263 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_TSA_ASSIGN_RESERVED_FIRST 0x2UL 4264 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_TSA_ASSIGN_RESERVED_LAST 0xffUL 4265 u8 queue_id6_pri_lvl; 4266 u8 queue_id6_bw_weight; 4267 u8 queue_id7; 4268 __le32 queue_id7_min_bw; 4269 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_MASK 0xfffffffUL 4270 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_SFT 0 4271 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_SCALE 0x10000000UL 4272 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_SCALE_BITS (0x0UL << 28) 4273 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_SCALE_BYTES (0x1UL << 28) 4274 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_SCALE_BYTES 4275 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4276 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_SFT 29 4277 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4278 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4279 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4280 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4281 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4282 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4283 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_INVALID 4284 __le32 queue_id7_max_bw; 4285 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_MASK 0xfffffffUL 4286 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_SFT 0 4287 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_SCALE 0x10000000UL 4288 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_SCALE_BITS (0x0UL << 28) 4289 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_SCALE_BYTES (0x1UL << 28) 4290 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_SCALE_BYTES 4291 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4292 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_SFT 29 4293 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4294 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4295 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4296 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4297 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4298 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4299 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_INVALID 4300 u8 queue_id7_tsa_assign; 4301 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_TSA_ASSIGN_SP 0x0UL 4302 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_TSA_ASSIGN_ETS 0x1UL 4303 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_TSA_ASSIGN_RESERVED_FIRST 0x2UL 4304 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_TSA_ASSIGN_RESERVED_LAST 0xffUL 4305 u8 queue_id7_pri_lvl; 4306 u8 queue_id7_bw_weight; 4307 u8 unused_2[4]; 4308 u8 valid; 4309 }; 4310 4311 /* hwrm_queue_cos2bw_cfg_input (size:1024b/128B) */ 4312 struct hwrm_queue_cos2bw_cfg_input { 4313 __le16 req_type; 4314 __le16 cmpl_ring; 4315 __le16 seq_id; 4316 __le16 target_id; 4317 __le64 resp_addr; 4318 __le32 flags; 4319 __le32 enables; 4320 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID0_VALID 0x1UL 4321 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID1_VALID 0x2UL 4322 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID2_VALID 0x4UL 4323 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID3_VALID 0x8UL 4324 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID4_VALID 0x10UL 4325 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID5_VALID 0x20UL 4326 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID6_VALID 0x40UL 4327 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID7_VALID 0x80UL 4328 __le16 port_id; 4329 u8 queue_id0; 4330 u8 unused_0; 4331 __le32 queue_id0_min_bw; 4332 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_MASK 0xfffffffUL 4333 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_SFT 0 4334 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE 0x10000000UL 4335 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_BITS (0x0UL << 28) 4336 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_BYTES (0x1UL << 28) 4337 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_BYTES 4338 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4339 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_SFT 29 4340 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4341 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4342 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4343 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4344 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4345 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4346 #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 4347 __le32 queue_id0_max_bw; 4348 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_MASK 0xfffffffUL 4349 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_SFT 0 4350 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE 0x10000000UL 4351 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_BITS (0x0UL << 28) 4352 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_BYTES (0x1UL << 28) 4353 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_BYTES 4354 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4355 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_SFT 29 4356 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4357 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4358 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4359 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4360 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4361 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4362 #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 4363 u8 queue_id0_tsa_assign; 4364 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_SP 0x0UL 4365 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_ETS 0x1UL 4366 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_RESERVED_FIRST 0x2UL 4367 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_RESERVED_LAST 0xffUL 4368 u8 queue_id0_pri_lvl; 4369 u8 queue_id0_bw_weight; 4370 u8 queue_id1; 4371 __le32 queue_id1_min_bw; 4372 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_MASK 0xfffffffUL 4373 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_SFT 0 4374 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_SCALE 0x10000000UL 4375 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_SCALE_BITS (0x0UL << 28) 4376 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_SCALE_BYTES (0x1UL << 28) 4377 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_SCALE_BYTES 4378 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4379 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_SFT 29 4380 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4381 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4382 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4383 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4384 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4385 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4386 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_INVALID 4387 __le32 queue_id1_max_bw; 4388 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_MASK 0xfffffffUL 4389 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_SFT 0 4390 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_SCALE 0x10000000UL 4391 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_SCALE_BITS (0x0UL << 28) 4392 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_SCALE_BYTES (0x1UL << 28) 4393 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_SCALE_BYTES 4394 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4395 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_SFT 29 4396 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4397 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4398 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4399 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4400 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4401 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4402 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_INVALID 4403 u8 queue_id1_tsa_assign; 4404 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_TSA_ASSIGN_SP 0x0UL 4405 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_TSA_ASSIGN_ETS 0x1UL 4406 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_TSA_ASSIGN_RESERVED_FIRST 0x2UL 4407 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_TSA_ASSIGN_RESERVED_LAST 0xffUL 4408 u8 queue_id1_pri_lvl; 4409 u8 queue_id1_bw_weight; 4410 u8 queue_id2; 4411 __le32 queue_id2_min_bw; 4412 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_MASK 0xfffffffUL 4413 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_SFT 0 4414 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_SCALE 0x10000000UL 4415 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_SCALE_BITS (0x0UL << 28) 4416 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_SCALE_BYTES (0x1UL << 28) 4417 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_SCALE_BYTES 4418 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4419 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_SFT 29 4420 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4421 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4422 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4423 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4424 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4425 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4426 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_INVALID 4427 __le32 queue_id2_max_bw; 4428 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_MASK 0xfffffffUL 4429 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_SFT 0 4430 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_SCALE 0x10000000UL 4431 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_SCALE_BITS (0x0UL << 28) 4432 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_SCALE_BYTES (0x1UL << 28) 4433 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_SCALE_BYTES 4434 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4435 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_SFT 29 4436 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4437 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4438 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4439 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4440 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4441 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4442 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_INVALID 4443 u8 queue_id2_tsa_assign; 4444 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_TSA_ASSIGN_SP 0x0UL 4445 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_TSA_ASSIGN_ETS 0x1UL 4446 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_TSA_ASSIGN_RESERVED_FIRST 0x2UL 4447 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_TSA_ASSIGN_RESERVED_LAST 0xffUL 4448 u8 queue_id2_pri_lvl; 4449 u8 queue_id2_bw_weight; 4450 u8 queue_id3; 4451 __le32 queue_id3_min_bw; 4452 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_MASK 0xfffffffUL 4453 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_SFT 0 4454 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_SCALE 0x10000000UL 4455 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_SCALE_BITS (0x0UL << 28) 4456 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_SCALE_BYTES (0x1UL << 28) 4457 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_SCALE_BYTES 4458 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4459 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_SFT 29 4460 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4461 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4462 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4463 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4464 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4465 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4466 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_INVALID 4467 __le32 queue_id3_max_bw; 4468 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_MASK 0xfffffffUL 4469 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_SFT 0 4470 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_SCALE 0x10000000UL 4471 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_SCALE_BITS (0x0UL << 28) 4472 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_SCALE_BYTES (0x1UL << 28) 4473 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_SCALE_BYTES 4474 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4475 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_SFT 29 4476 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4477 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4478 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4479 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4480 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4481 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4482 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_INVALID 4483 u8 queue_id3_tsa_assign; 4484 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_TSA_ASSIGN_SP 0x0UL 4485 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_TSA_ASSIGN_ETS 0x1UL 4486 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_TSA_ASSIGN_RESERVED_FIRST 0x2UL 4487 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_TSA_ASSIGN_RESERVED_LAST 0xffUL 4488 u8 queue_id3_pri_lvl; 4489 u8 queue_id3_bw_weight; 4490 u8 queue_id4; 4491 __le32 queue_id4_min_bw; 4492 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_MASK 0xfffffffUL 4493 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_SFT 0 4494 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_SCALE 0x10000000UL 4495 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_SCALE_BITS (0x0UL << 28) 4496 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_SCALE_BYTES (0x1UL << 28) 4497 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_SCALE_BYTES 4498 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4499 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_SFT 29 4500 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4501 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4502 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4503 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4504 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4505 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4506 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_INVALID 4507 __le32 queue_id4_max_bw; 4508 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_MASK 0xfffffffUL 4509 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_SFT 0 4510 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_SCALE 0x10000000UL 4511 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_SCALE_BITS (0x0UL << 28) 4512 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_SCALE_BYTES (0x1UL << 28) 4513 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_SCALE_BYTES 4514 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4515 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_SFT 29 4516 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4517 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4518 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4519 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4520 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4521 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4522 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_INVALID 4523 u8 queue_id4_tsa_assign; 4524 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_TSA_ASSIGN_SP 0x0UL 4525 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_TSA_ASSIGN_ETS 0x1UL 4526 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_TSA_ASSIGN_RESERVED_FIRST 0x2UL 4527 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_TSA_ASSIGN_RESERVED_LAST 0xffUL 4528 u8 queue_id4_pri_lvl; 4529 u8 queue_id4_bw_weight; 4530 u8 queue_id5; 4531 __le32 queue_id5_min_bw; 4532 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_MASK 0xfffffffUL 4533 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_SFT 0 4534 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_SCALE 0x10000000UL 4535 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_SCALE_BITS (0x0UL << 28) 4536 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_SCALE_BYTES (0x1UL << 28) 4537 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_SCALE_BYTES 4538 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4539 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_SFT 29 4540 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4541 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4542 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4543 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4544 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4545 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4546 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_INVALID 4547 __le32 queue_id5_max_bw; 4548 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_MASK 0xfffffffUL 4549 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_SFT 0 4550 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_SCALE 0x10000000UL 4551 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_SCALE_BITS (0x0UL << 28) 4552 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_SCALE_BYTES (0x1UL << 28) 4553 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_SCALE_BYTES 4554 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4555 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_SFT 29 4556 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4557 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4558 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4559 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4560 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4561 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4562 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_INVALID 4563 u8 queue_id5_tsa_assign; 4564 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_TSA_ASSIGN_SP 0x0UL 4565 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_TSA_ASSIGN_ETS 0x1UL 4566 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_TSA_ASSIGN_RESERVED_FIRST 0x2UL 4567 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_TSA_ASSIGN_RESERVED_LAST 0xffUL 4568 u8 queue_id5_pri_lvl; 4569 u8 queue_id5_bw_weight; 4570 u8 queue_id6; 4571 __le32 queue_id6_min_bw; 4572 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_MASK 0xfffffffUL 4573 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_SFT 0 4574 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_SCALE 0x10000000UL 4575 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_SCALE_BITS (0x0UL << 28) 4576 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_SCALE_BYTES (0x1UL << 28) 4577 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_SCALE_BYTES 4578 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4579 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_SFT 29 4580 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4581 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4582 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4583 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4584 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4585 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4586 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_INVALID 4587 __le32 queue_id6_max_bw; 4588 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_MASK 0xfffffffUL 4589 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_SFT 0 4590 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_SCALE 0x10000000UL 4591 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_SCALE_BITS (0x0UL << 28) 4592 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_SCALE_BYTES (0x1UL << 28) 4593 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_SCALE_BYTES 4594 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4595 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_SFT 29 4596 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4597 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4598 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4599 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4600 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4601 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4602 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_INVALID 4603 u8 queue_id6_tsa_assign; 4604 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_TSA_ASSIGN_SP 0x0UL 4605 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_TSA_ASSIGN_ETS 0x1UL 4606 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_TSA_ASSIGN_RESERVED_FIRST 0x2UL 4607 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_TSA_ASSIGN_RESERVED_LAST 0xffUL 4608 u8 queue_id6_pri_lvl; 4609 u8 queue_id6_bw_weight; 4610 u8 queue_id7; 4611 __le32 queue_id7_min_bw; 4612 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_MASK 0xfffffffUL 4613 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_SFT 0 4614 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_SCALE 0x10000000UL 4615 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_SCALE_BITS (0x0UL << 28) 4616 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_SCALE_BYTES (0x1UL << 28) 4617 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_SCALE_BYTES 4618 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4619 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_SFT 29 4620 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4621 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4622 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4623 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4624 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4625 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4626 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_INVALID 4627 __le32 queue_id7_max_bw; 4628 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_MASK 0xfffffffUL 4629 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_SFT 0 4630 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_SCALE 0x10000000UL 4631 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_SCALE_BITS (0x0UL << 28) 4632 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_SCALE_BYTES (0x1UL << 28) 4633 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_SCALE_BYTES 4634 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 4635 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_SFT 29 4636 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 4637 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 4638 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 4639 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 4640 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 4641 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 4642 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_INVALID 4643 u8 queue_id7_tsa_assign; 4644 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_TSA_ASSIGN_SP 0x0UL 4645 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_TSA_ASSIGN_ETS 0x1UL 4646 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_TSA_ASSIGN_RESERVED_FIRST 0x2UL 4647 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_TSA_ASSIGN_RESERVED_LAST 0xffUL 4648 u8 queue_id7_pri_lvl; 4649 u8 queue_id7_bw_weight; 4650 u8 unused_1[5]; 4651 }; 4652 4653 /* hwrm_queue_cos2bw_cfg_output (size:128b/16B) */ 4654 struct hwrm_queue_cos2bw_cfg_output { 4655 __le16 error_code; 4656 __le16 req_type; 4657 __le16 seq_id; 4658 __le16 resp_len; 4659 u8 unused_0[7]; 4660 u8 valid; 4661 }; 4662 4663 /* hwrm_queue_dscp_qcaps_input (size:192b/24B) */ 4664 struct hwrm_queue_dscp_qcaps_input { 4665 __le16 req_type; 4666 __le16 cmpl_ring; 4667 __le16 seq_id; 4668 __le16 target_id; 4669 __le64 resp_addr; 4670 u8 port_id; 4671 u8 unused_0[7]; 4672 }; 4673 4674 /* hwrm_queue_dscp_qcaps_output (size:128b/16B) */ 4675 struct hwrm_queue_dscp_qcaps_output { 4676 __le16 error_code; 4677 __le16 req_type; 4678 __le16 seq_id; 4679 __le16 resp_len; 4680 u8 num_dscp_bits; 4681 u8 unused_0; 4682 __le16 max_entries; 4683 u8 unused_1[3]; 4684 u8 valid; 4685 }; 4686 4687 /* hwrm_queue_dscp2pri_qcfg_input (size:256b/32B) */ 4688 struct hwrm_queue_dscp2pri_qcfg_input { 4689 __le16 req_type; 4690 __le16 cmpl_ring; 4691 __le16 seq_id; 4692 __le16 target_id; 4693 __le64 resp_addr; 4694 __le64 dest_data_addr; 4695 u8 port_id; 4696 u8 unused_0; 4697 __le16 dest_data_buffer_size; 4698 u8 unused_1[4]; 4699 }; 4700 4701 /* hwrm_queue_dscp2pri_qcfg_output (size:128b/16B) */ 4702 struct hwrm_queue_dscp2pri_qcfg_output { 4703 __le16 error_code; 4704 __le16 req_type; 4705 __le16 seq_id; 4706 __le16 resp_len; 4707 __le16 entry_cnt; 4708 u8 default_pri; 4709 u8 unused_0[4]; 4710 u8 valid; 4711 }; 4712 4713 /* hwrm_queue_dscp2pri_cfg_input (size:320b/40B) */ 4714 struct hwrm_queue_dscp2pri_cfg_input { 4715 __le16 req_type; 4716 __le16 cmpl_ring; 4717 __le16 seq_id; 4718 __le16 target_id; 4719 __le64 resp_addr; 4720 __le64 src_data_addr; 4721 __le32 flags; 4722 #define QUEUE_DSCP2PRI_CFG_REQ_FLAGS_USE_HW_DEFAULT_PRI 0x1UL 4723 __le32 enables; 4724 #define QUEUE_DSCP2PRI_CFG_REQ_ENABLES_DEFAULT_PRI 0x1UL 4725 u8 port_id; 4726 u8 default_pri; 4727 __le16 entry_cnt; 4728 u8 unused_0[4]; 4729 }; 4730 4731 /* hwrm_queue_dscp2pri_cfg_output (size:128b/16B) */ 4732 struct hwrm_queue_dscp2pri_cfg_output { 4733 __le16 error_code; 4734 __le16 req_type; 4735 __le16 seq_id; 4736 __le16 resp_len; 4737 u8 unused_0[7]; 4738 u8 valid; 4739 }; 4740 4741 /* hwrm_vnic_alloc_input (size:192b/24B) */ 4742 struct hwrm_vnic_alloc_input { 4743 __le16 req_type; 4744 __le16 cmpl_ring; 4745 __le16 seq_id; 4746 __le16 target_id; 4747 __le64 resp_addr; 4748 __le32 flags; 4749 #define VNIC_ALLOC_REQ_FLAGS_DEFAULT 0x1UL 4750 u8 unused_0[4]; 4751 }; 4752 4753 /* hwrm_vnic_alloc_output (size:128b/16B) */ 4754 struct hwrm_vnic_alloc_output { 4755 __le16 error_code; 4756 __le16 req_type; 4757 __le16 seq_id; 4758 __le16 resp_len; 4759 __le32 vnic_id; 4760 u8 unused_0[3]; 4761 u8 valid; 4762 }; 4763 4764 /* hwrm_vnic_free_input (size:192b/24B) */ 4765 struct hwrm_vnic_free_input { 4766 __le16 req_type; 4767 __le16 cmpl_ring; 4768 __le16 seq_id; 4769 __le16 target_id; 4770 __le64 resp_addr; 4771 __le32 vnic_id; 4772 u8 unused_0[4]; 4773 }; 4774 4775 /* hwrm_vnic_free_output (size:128b/16B) */ 4776 struct hwrm_vnic_free_output { 4777 __le16 error_code; 4778 __le16 req_type; 4779 __le16 seq_id; 4780 __le16 resp_len; 4781 u8 unused_0[7]; 4782 u8 valid; 4783 }; 4784 4785 /* hwrm_vnic_cfg_input (size:384b/48B) */ 4786 struct hwrm_vnic_cfg_input { 4787 __le16 req_type; 4788 __le16 cmpl_ring; 4789 __le16 seq_id; 4790 __le16 target_id; 4791 __le64 resp_addr; 4792 __le32 flags; 4793 #define VNIC_CFG_REQ_FLAGS_DEFAULT 0x1UL 4794 #define VNIC_CFG_REQ_FLAGS_VLAN_STRIP_MODE 0x2UL 4795 #define VNIC_CFG_REQ_FLAGS_BD_STALL_MODE 0x4UL 4796 #define VNIC_CFG_REQ_FLAGS_ROCE_DUAL_VNIC_MODE 0x8UL 4797 #define VNIC_CFG_REQ_FLAGS_ROCE_ONLY_VNIC_MODE 0x10UL 4798 #define VNIC_CFG_REQ_FLAGS_RSS_DFLT_CR_MODE 0x20UL 4799 #define VNIC_CFG_REQ_FLAGS_ROCE_MIRRORING_CAPABLE_VNIC_MODE 0x40UL 4800 __le32 enables; 4801 #define VNIC_CFG_REQ_ENABLES_DFLT_RING_GRP 0x1UL 4802 #define VNIC_CFG_REQ_ENABLES_RSS_RULE 0x2UL 4803 #define VNIC_CFG_REQ_ENABLES_COS_RULE 0x4UL 4804 #define VNIC_CFG_REQ_ENABLES_LB_RULE 0x8UL 4805 #define VNIC_CFG_REQ_ENABLES_MRU 0x10UL 4806 #define VNIC_CFG_REQ_ENABLES_DEFAULT_RX_RING_ID 0x20UL 4807 #define VNIC_CFG_REQ_ENABLES_DEFAULT_CMPL_RING_ID 0x40UL 4808 #define VNIC_CFG_REQ_ENABLES_QUEUE_ID 0x80UL 4809 __le16 vnic_id; 4810 __le16 dflt_ring_grp; 4811 __le16 rss_rule; 4812 __le16 cos_rule; 4813 __le16 lb_rule; 4814 __le16 mru; 4815 __le16 default_rx_ring_id; 4816 __le16 default_cmpl_ring_id; 4817 __le16 queue_id; 4818 u8 unused0[6]; 4819 }; 4820 4821 /* hwrm_vnic_cfg_output (size:128b/16B) */ 4822 struct hwrm_vnic_cfg_output { 4823 __le16 error_code; 4824 __le16 req_type; 4825 __le16 seq_id; 4826 __le16 resp_len; 4827 u8 unused_0[7]; 4828 u8 valid; 4829 }; 4830 4831 /* hwrm_vnic_qcaps_input (size:192b/24B) */ 4832 struct hwrm_vnic_qcaps_input { 4833 __le16 req_type; 4834 __le16 cmpl_ring; 4835 __le16 seq_id; 4836 __le16 target_id; 4837 __le64 resp_addr; 4838 __le32 enables; 4839 u8 unused_0[4]; 4840 }; 4841 4842 /* hwrm_vnic_qcaps_output (size:192b/24B) */ 4843 struct hwrm_vnic_qcaps_output { 4844 __le16 error_code; 4845 __le16 req_type; 4846 __le16 seq_id; 4847 __le16 resp_len; 4848 __le16 mru; 4849 u8 unused_0[2]; 4850 __le32 flags; 4851 #define VNIC_QCAPS_RESP_FLAGS_UNUSED 0x1UL 4852 #define VNIC_QCAPS_RESP_FLAGS_VLAN_STRIP_CAP 0x2UL 4853 #define VNIC_QCAPS_RESP_FLAGS_BD_STALL_CAP 0x4UL 4854 #define VNIC_QCAPS_RESP_FLAGS_ROCE_DUAL_VNIC_CAP 0x8UL 4855 #define VNIC_QCAPS_RESP_FLAGS_ROCE_ONLY_VNIC_CAP 0x10UL 4856 #define VNIC_QCAPS_RESP_FLAGS_RSS_DFLT_CR_CAP 0x20UL 4857 #define VNIC_QCAPS_RESP_FLAGS_ROCE_MIRRORING_CAPABLE_VNIC_CAP 0x40UL 4858 #define VNIC_QCAPS_RESP_FLAGS_OUTERMOST_RSS_CAP 0x80UL 4859 #define VNIC_QCAPS_RESP_FLAGS_COS_ASSIGNMENT_CAP 0x100UL 4860 __le16 max_aggs_supported; 4861 u8 unused_1[5]; 4862 u8 valid; 4863 }; 4864 4865 /* hwrm_vnic_tpa_cfg_input (size:320b/40B) */ 4866 struct hwrm_vnic_tpa_cfg_input { 4867 __le16 req_type; 4868 __le16 cmpl_ring; 4869 __le16 seq_id; 4870 __le16 target_id; 4871 __le64 resp_addr; 4872 __le32 flags; 4873 #define VNIC_TPA_CFG_REQ_FLAGS_TPA 0x1UL 4874 #define VNIC_TPA_CFG_REQ_FLAGS_ENCAP_TPA 0x2UL 4875 #define VNIC_TPA_CFG_REQ_FLAGS_RSC_WND_UPDATE 0x4UL 4876 #define VNIC_TPA_CFG_REQ_FLAGS_GRO 0x8UL 4877 #define VNIC_TPA_CFG_REQ_FLAGS_AGG_WITH_ECN 0x10UL 4878 #define VNIC_TPA_CFG_REQ_FLAGS_AGG_WITH_SAME_GRE_SEQ 0x20UL 4879 #define VNIC_TPA_CFG_REQ_FLAGS_GRO_IPID_CHECK 0x40UL 4880 #define VNIC_TPA_CFG_REQ_FLAGS_GRO_TTL_CHECK 0x80UL 4881 #define VNIC_TPA_CFG_REQ_FLAGS_AGG_PACK_AS_GRO 0x100UL 4882 __le32 enables; 4883 #define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGG_SEGS 0x1UL 4884 #define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGGS 0x2UL 4885 #define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGG_TIMER 0x4UL 4886 #define VNIC_TPA_CFG_REQ_ENABLES_MIN_AGG_LEN 0x8UL 4887 __le16 vnic_id; 4888 __le16 max_agg_segs; 4889 #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_1 0x0UL 4890 #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_2 0x1UL 4891 #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_4 0x2UL 4892 #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_8 0x3UL 4893 #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_MAX 0x1fUL 4894 #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_LAST VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_MAX 4895 __le16 max_aggs; 4896 #define VNIC_TPA_CFG_REQ_MAX_AGGS_1 0x0UL 4897 #define VNIC_TPA_CFG_REQ_MAX_AGGS_2 0x1UL 4898 #define VNIC_TPA_CFG_REQ_MAX_AGGS_4 0x2UL 4899 #define VNIC_TPA_CFG_REQ_MAX_AGGS_8 0x3UL 4900 #define VNIC_TPA_CFG_REQ_MAX_AGGS_16 0x4UL 4901 #define VNIC_TPA_CFG_REQ_MAX_AGGS_MAX 0x7UL 4902 #define VNIC_TPA_CFG_REQ_MAX_AGGS_LAST VNIC_TPA_CFG_REQ_MAX_AGGS_MAX 4903 u8 unused_0[2]; 4904 __le32 max_agg_timer; 4905 __le32 min_agg_len; 4906 }; 4907 4908 /* hwrm_vnic_tpa_cfg_output (size:128b/16B) */ 4909 struct hwrm_vnic_tpa_cfg_output { 4910 __le16 error_code; 4911 __le16 req_type; 4912 __le16 seq_id; 4913 __le16 resp_len; 4914 u8 unused_0[7]; 4915 u8 valid; 4916 }; 4917 4918 /* hwrm_vnic_tpa_qcfg_input (size:192b/24B) */ 4919 struct hwrm_vnic_tpa_qcfg_input { 4920 __le16 req_type; 4921 __le16 cmpl_ring; 4922 __le16 seq_id; 4923 __le16 target_id; 4924 __le64 resp_addr; 4925 __le16 vnic_id; 4926 u8 unused_0[6]; 4927 }; 4928 4929 /* hwrm_vnic_tpa_qcfg_output (size:256b/32B) */ 4930 struct hwrm_vnic_tpa_qcfg_output { 4931 __le16 error_code; 4932 __le16 req_type; 4933 __le16 seq_id; 4934 __le16 resp_len; 4935 __le32 flags; 4936 #define VNIC_TPA_QCFG_RESP_FLAGS_TPA 0x1UL 4937 #define VNIC_TPA_QCFG_RESP_FLAGS_ENCAP_TPA 0x2UL 4938 #define VNIC_TPA_QCFG_RESP_FLAGS_RSC_WND_UPDATE 0x4UL 4939 #define VNIC_TPA_QCFG_RESP_FLAGS_GRO 0x8UL 4940 #define VNIC_TPA_QCFG_RESP_FLAGS_AGG_WITH_ECN 0x10UL 4941 #define VNIC_TPA_QCFG_RESP_FLAGS_AGG_WITH_SAME_GRE_SEQ 0x20UL 4942 #define VNIC_TPA_QCFG_RESP_FLAGS_GRO_IPID_CHECK 0x40UL 4943 #define VNIC_TPA_QCFG_RESP_FLAGS_GRO_TTL_CHECK 0x80UL 4944 __le16 max_agg_segs; 4945 #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_1 0x0UL 4946 #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_2 0x1UL 4947 #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_4 0x2UL 4948 #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_8 0x3UL 4949 #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_MAX 0x1fUL 4950 #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_LAST VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_MAX 4951 __le16 max_aggs; 4952 #define VNIC_TPA_QCFG_RESP_MAX_AGGS_1 0x0UL 4953 #define VNIC_TPA_QCFG_RESP_MAX_AGGS_2 0x1UL 4954 #define VNIC_TPA_QCFG_RESP_MAX_AGGS_4 0x2UL 4955 #define VNIC_TPA_QCFG_RESP_MAX_AGGS_8 0x3UL 4956 #define VNIC_TPA_QCFG_RESP_MAX_AGGS_16 0x4UL 4957 #define VNIC_TPA_QCFG_RESP_MAX_AGGS_MAX 0x7UL 4958 #define VNIC_TPA_QCFG_RESP_MAX_AGGS_LAST VNIC_TPA_QCFG_RESP_MAX_AGGS_MAX 4959 __le32 max_agg_timer; 4960 __le32 min_agg_len; 4961 u8 unused_0[7]; 4962 u8 valid; 4963 }; 4964 4965 /* hwrm_vnic_rss_cfg_input (size:384b/48B) */ 4966 struct hwrm_vnic_rss_cfg_input { 4967 __le16 req_type; 4968 __le16 cmpl_ring; 4969 __le16 seq_id; 4970 __le16 target_id; 4971 __le64 resp_addr; 4972 __le32 hash_type; 4973 #define VNIC_RSS_CFG_REQ_HASH_TYPE_IPV4 0x1UL 4974 #define VNIC_RSS_CFG_REQ_HASH_TYPE_TCP_IPV4 0x2UL 4975 #define VNIC_RSS_CFG_REQ_HASH_TYPE_UDP_IPV4 0x4UL 4976 #define VNIC_RSS_CFG_REQ_HASH_TYPE_IPV6 0x8UL 4977 #define VNIC_RSS_CFG_REQ_HASH_TYPE_TCP_IPV6 0x10UL 4978 #define VNIC_RSS_CFG_REQ_HASH_TYPE_UDP_IPV6 0x20UL 4979 __le16 vnic_id; 4980 u8 ring_table_pair_index; 4981 u8 hash_mode_flags; 4982 #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_DEFAULT 0x1UL 4983 #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_INNERMOST_4 0x2UL 4984 #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_INNERMOST_2 0x4UL 4985 #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_OUTERMOST_4 0x8UL 4986 #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_OUTERMOST_2 0x10UL 4987 __le64 ring_grp_tbl_addr; 4988 __le64 hash_key_tbl_addr; 4989 __le16 rss_ctx_idx; 4990 u8 unused_1[6]; 4991 }; 4992 4993 /* hwrm_vnic_rss_cfg_output (size:128b/16B) */ 4994 struct hwrm_vnic_rss_cfg_output { 4995 __le16 error_code; 4996 __le16 req_type; 4997 __le16 seq_id; 4998 __le16 resp_len; 4999 u8 unused_0[7]; 5000 u8 valid; 5001 }; 5002 5003 /* hwrm_vnic_rss_cfg_cmd_err (size:64b/8B) */ 5004 struct hwrm_vnic_rss_cfg_cmd_err { 5005 u8 code; 5006 #define VNIC_RSS_CFG_CMD_ERR_CODE_UNKNOWN 0x0UL 5007 #define VNIC_RSS_CFG_CMD_ERR_CODE_INTERFACE_NOT_READY 0x1UL 5008 #define VNIC_RSS_CFG_CMD_ERR_CODE_LAST VNIC_RSS_CFG_CMD_ERR_CODE_INTERFACE_NOT_READY 5009 u8 unused_0[7]; 5010 }; 5011 5012 /* hwrm_vnic_plcmodes_cfg_input (size:320b/40B) */ 5013 struct hwrm_vnic_plcmodes_cfg_input { 5014 __le16 req_type; 5015 __le16 cmpl_ring; 5016 __le16 seq_id; 5017 __le16 target_id; 5018 __le64 resp_addr; 5019 __le32 flags; 5020 #define VNIC_PLCMODES_CFG_REQ_FLAGS_REGULAR_PLACEMENT 0x1UL 5021 #define VNIC_PLCMODES_CFG_REQ_FLAGS_JUMBO_PLACEMENT 0x2UL 5022 #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_IPV4 0x4UL 5023 #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_IPV6 0x8UL 5024 #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_FCOE 0x10UL 5025 #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_ROCE 0x20UL 5026 __le32 enables; 5027 #define VNIC_PLCMODES_CFG_REQ_ENABLES_JUMBO_THRESH_VALID 0x1UL 5028 #define VNIC_PLCMODES_CFG_REQ_ENABLES_HDS_OFFSET_VALID 0x2UL 5029 #define VNIC_PLCMODES_CFG_REQ_ENABLES_HDS_THRESHOLD_VALID 0x4UL 5030 __le32 vnic_id; 5031 __le16 jumbo_thresh; 5032 __le16 hds_offset; 5033 __le16 hds_threshold; 5034 u8 unused_0[6]; 5035 }; 5036 5037 /* hwrm_vnic_plcmodes_cfg_output (size:128b/16B) */ 5038 struct hwrm_vnic_plcmodes_cfg_output { 5039 __le16 error_code; 5040 __le16 req_type; 5041 __le16 seq_id; 5042 __le16 resp_len; 5043 u8 unused_0[7]; 5044 u8 valid; 5045 }; 5046 5047 /* hwrm_vnic_rss_cos_lb_ctx_alloc_input (size:128b/16B) */ 5048 struct hwrm_vnic_rss_cos_lb_ctx_alloc_input { 5049 __le16 req_type; 5050 __le16 cmpl_ring; 5051 __le16 seq_id; 5052 __le16 target_id; 5053 __le64 resp_addr; 5054 }; 5055 5056 /* hwrm_vnic_rss_cos_lb_ctx_alloc_output (size:128b/16B) */ 5057 struct hwrm_vnic_rss_cos_lb_ctx_alloc_output { 5058 __le16 error_code; 5059 __le16 req_type; 5060 __le16 seq_id; 5061 __le16 resp_len; 5062 __le16 rss_cos_lb_ctx_id; 5063 u8 unused_0[5]; 5064 u8 valid; 5065 }; 5066 5067 /* hwrm_vnic_rss_cos_lb_ctx_free_input (size:192b/24B) */ 5068 struct hwrm_vnic_rss_cos_lb_ctx_free_input { 5069 __le16 req_type; 5070 __le16 cmpl_ring; 5071 __le16 seq_id; 5072 __le16 target_id; 5073 __le64 resp_addr; 5074 __le16 rss_cos_lb_ctx_id; 5075 u8 unused_0[6]; 5076 }; 5077 5078 /* hwrm_vnic_rss_cos_lb_ctx_free_output (size:128b/16B) */ 5079 struct hwrm_vnic_rss_cos_lb_ctx_free_output { 5080 __le16 error_code; 5081 __le16 req_type; 5082 __le16 seq_id; 5083 __le16 resp_len; 5084 u8 unused_0[7]; 5085 u8 valid; 5086 }; 5087 5088 /* hwrm_ring_alloc_input (size:704b/88B) */ 5089 struct hwrm_ring_alloc_input { 5090 __le16 req_type; 5091 __le16 cmpl_ring; 5092 __le16 seq_id; 5093 __le16 target_id; 5094 __le64 resp_addr; 5095 __le32 enables; 5096 #define RING_ALLOC_REQ_ENABLES_RING_ARB_CFG 0x2UL 5097 #define RING_ALLOC_REQ_ENABLES_STAT_CTX_ID_VALID 0x8UL 5098 #define RING_ALLOC_REQ_ENABLES_MAX_BW_VALID 0x20UL 5099 #define RING_ALLOC_REQ_ENABLES_RX_RING_ID_VALID 0x40UL 5100 #define RING_ALLOC_REQ_ENABLES_NQ_RING_ID_VALID 0x80UL 5101 #define RING_ALLOC_REQ_ENABLES_RX_BUF_SIZE_VALID 0x100UL 5102 u8 ring_type; 5103 #define RING_ALLOC_REQ_RING_TYPE_L2_CMPL 0x0UL 5104 #define RING_ALLOC_REQ_RING_TYPE_TX 0x1UL 5105 #define RING_ALLOC_REQ_RING_TYPE_RX 0x2UL 5106 #define RING_ALLOC_REQ_RING_TYPE_ROCE_CMPL 0x3UL 5107 #define RING_ALLOC_REQ_RING_TYPE_RX_AGG 0x4UL 5108 #define RING_ALLOC_REQ_RING_TYPE_NQ 0x5UL 5109 #define RING_ALLOC_REQ_RING_TYPE_LAST RING_ALLOC_REQ_RING_TYPE_NQ 5110 u8 unused_0; 5111 __le16 flags; 5112 #define RING_ALLOC_REQ_FLAGS_RX_SOP_PAD 0x1UL 5113 __le64 page_tbl_addr; 5114 __le32 fbo; 5115 u8 page_size; 5116 u8 page_tbl_depth; 5117 u8 unused_1[2]; 5118 __le32 length; 5119 __le16 logical_id; 5120 __le16 cmpl_ring_id; 5121 __le16 queue_id; 5122 __le16 rx_buf_size; 5123 __le16 rx_ring_id; 5124 __le16 nq_ring_id; 5125 __le16 ring_arb_cfg; 5126 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_MASK 0xfUL 5127 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_SFT 0 5128 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_SP 0x1UL 5129 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_WFQ 0x2UL 5130 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_LAST RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_WFQ 5131 #define RING_ALLOC_REQ_RING_ARB_CFG_RSVD_MASK 0xf0UL 5132 #define RING_ALLOC_REQ_RING_ARB_CFG_RSVD_SFT 4 5133 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_PARAM_MASK 0xff00UL 5134 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_PARAM_SFT 8 5135 __le16 unused_3; 5136 __le32 reserved3; 5137 __le32 stat_ctx_id; 5138 __le32 reserved4; 5139 __le32 max_bw; 5140 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_MASK 0xfffffffUL 5141 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_SFT 0 5142 #define RING_ALLOC_REQ_MAX_BW_SCALE 0x10000000UL 5143 #define RING_ALLOC_REQ_MAX_BW_SCALE_BITS (0x0UL << 28) 5144 #define RING_ALLOC_REQ_MAX_BW_SCALE_BYTES (0x1UL << 28) 5145 #define RING_ALLOC_REQ_MAX_BW_SCALE_LAST RING_ALLOC_REQ_MAX_BW_SCALE_BYTES 5146 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 5147 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_SFT 29 5148 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 5149 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 5150 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 5151 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 5152 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 5153 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 5154 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_LAST RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_INVALID 5155 u8 int_mode; 5156 #define RING_ALLOC_REQ_INT_MODE_LEGACY 0x0UL 5157 #define RING_ALLOC_REQ_INT_MODE_RSVD 0x1UL 5158 #define RING_ALLOC_REQ_INT_MODE_MSIX 0x2UL 5159 #define RING_ALLOC_REQ_INT_MODE_POLL 0x3UL 5160 #define RING_ALLOC_REQ_INT_MODE_LAST RING_ALLOC_REQ_INT_MODE_POLL 5161 u8 unused_4[3]; 5162 __le64 cq_handle; 5163 }; 5164 5165 /* hwrm_ring_alloc_output (size:128b/16B) */ 5166 struct hwrm_ring_alloc_output { 5167 __le16 error_code; 5168 __le16 req_type; 5169 __le16 seq_id; 5170 __le16 resp_len; 5171 __le16 ring_id; 5172 __le16 logical_ring_id; 5173 u8 unused_0[3]; 5174 u8 valid; 5175 }; 5176 5177 /* hwrm_ring_free_input (size:192b/24B) */ 5178 struct hwrm_ring_free_input { 5179 __le16 req_type; 5180 __le16 cmpl_ring; 5181 __le16 seq_id; 5182 __le16 target_id; 5183 __le64 resp_addr; 5184 u8 ring_type; 5185 #define RING_FREE_REQ_RING_TYPE_L2_CMPL 0x0UL 5186 #define RING_FREE_REQ_RING_TYPE_TX 0x1UL 5187 #define RING_FREE_REQ_RING_TYPE_RX 0x2UL 5188 #define RING_FREE_REQ_RING_TYPE_ROCE_CMPL 0x3UL 5189 #define RING_FREE_REQ_RING_TYPE_RX_AGG 0x4UL 5190 #define RING_FREE_REQ_RING_TYPE_NQ 0x5UL 5191 #define RING_FREE_REQ_RING_TYPE_LAST RING_FREE_REQ_RING_TYPE_NQ 5192 u8 unused_0; 5193 __le16 ring_id; 5194 u8 unused_1[4]; 5195 }; 5196 5197 /* hwrm_ring_free_output (size:128b/16B) */ 5198 struct hwrm_ring_free_output { 5199 __le16 error_code; 5200 __le16 req_type; 5201 __le16 seq_id; 5202 __le16 resp_len; 5203 u8 unused_0[7]; 5204 u8 valid; 5205 }; 5206 5207 /* hwrm_ring_reset_input (size:192b/24B) */ 5208 struct hwrm_ring_reset_input { 5209 __le16 req_type; 5210 __le16 cmpl_ring; 5211 __le16 seq_id; 5212 __le16 target_id; 5213 __le64 resp_addr; 5214 u8 ring_type; 5215 #define RING_RESET_REQ_RING_TYPE_L2_CMPL 0x0UL 5216 #define RING_RESET_REQ_RING_TYPE_TX 0x1UL 5217 #define RING_RESET_REQ_RING_TYPE_RX 0x2UL 5218 #define RING_RESET_REQ_RING_TYPE_ROCE_CMPL 0x3UL 5219 #define RING_RESET_REQ_RING_TYPE_LAST RING_RESET_REQ_RING_TYPE_ROCE_CMPL 5220 u8 unused_0; 5221 __le16 ring_id; 5222 u8 unused_1[4]; 5223 }; 5224 5225 /* hwrm_ring_reset_output (size:128b/16B) */ 5226 struct hwrm_ring_reset_output { 5227 __le16 error_code; 5228 __le16 req_type; 5229 __le16 seq_id; 5230 __le16 resp_len; 5231 u8 unused_0[4]; 5232 u8 consumer_idx[3]; 5233 u8 valid; 5234 }; 5235 5236 /* hwrm_ring_aggint_qcaps_input (size:128b/16B) */ 5237 struct hwrm_ring_aggint_qcaps_input { 5238 __le16 req_type; 5239 __le16 cmpl_ring; 5240 __le16 seq_id; 5241 __le16 target_id; 5242 __le64 resp_addr; 5243 }; 5244 5245 /* hwrm_ring_aggint_qcaps_output (size:384b/48B) */ 5246 struct hwrm_ring_aggint_qcaps_output { 5247 __le16 error_code; 5248 __le16 req_type; 5249 __le16 seq_id; 5250 __le16 resp_len; 5251 __le32 cmpl_params; 5252 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_INT_LAT_TMR_MIN 0x1UL 5253 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_INT_LAT_TMR_MAX 0x2UL 5254 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_TIMER_RESET 0x4UL 5255 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_RING_IDLE 0x8UL 5256 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_NUM_CMPL_DMA_AGGR 0x10UL 5257 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_NUM_CMPL_DMA_AGGR_DURING_INT 0x20UL 5258 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_CMPL_AGGR_DMA_TMR 0x40UL 5259 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_CMPL_AGGR_DMA_TMR_DURING_INT 0x80UL 5260 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_NUM_CMPL_AGGR_INT 0x100UL 5261 __le32 nq_params; 5262 #define RING_AGGINT_QCAPS_RESP_NQ_PARAMS_INT_LAT_TMR_MIN 0x1UL 5263 __le16 num_cmpl_dma_aggr_min; 5264 __le16 num_cmpl_dma_aggr_max; 5265 __le16 num_cmpl_dma_aggr_during_int_min; 5266 __le16 num_cmpl_dma_aggr_during_int_max; 5267 __le16 cmpl_aggr_dma_tmr_min; 5268 __le16 cmpl_aggr_dma_tmr_max; 5269 __le16 cmpl_aggr_dma_tmr_during_int_min; 5270 __le16 cmpl_aggr_dma_tmr_during_int_max; 5271 __le16 int_lat_tmr_min_min; 5272 __le16 int_lat_tmr_min_max; 5273 __le16 int_lat_tmr_max_min; 5274 __le16 int_lat_tmr_max_max; 5275 __le16 num_cmpl_aggr_int_min; 5276 __le16 num_cmpl_aggr_int_max; 5277 __le16 timer_units; 5278 u8 unused_0[1]; 5279 u8 valid; 5280 }; 5281 5282 /* hwrm_ring_cmpl_ring_qaggint_params_input (size:192b/24B) */ 5283 struct hwrm_ring_cmpl_ring_qaggint_params_input { 5284 __le16 req_type; 5285 __le16 cmpl_ring; 5286 __le16 seq_id; 5287 __le16 target_id; 5288 __le64 resp_addr; 5289 __le16 ring_id; 5290 u8 unused_0[6]; 5291 }; 5292 5293 /* hwrm_ring_cmpl_ring_qaggint_params_output (size:256b/32B) */ 5294 struct hwrm_ring_cmpl_ring_qaggint_params_output { 5295 __le16 error_code; 5296 __le16 req_type; 5297 __le16 seq_id; 5298 __le16 resp_len; 5299 __le16 flags; 5300 #define RING_CMPL_RING_QAGGINT_PARAMS_RESP_FLAGS_TIMER_RESET 0x1UL 5301 #define RING_CMPL_RING_QAGGINT_PARAMS_RESP_FLAGS_RING_IDLE 0x2UL 5302 __le16 num_cmpl_dma_aggr; 5303 __le16 num_cmpl_dma_aggr_during_int; 5304 __le16 cmpl_aggr_dma_tmr; 5305 __le16 cmpl_aggr_dma_tmr_during_int; 5306 __le16 int_lat_tmr_min; 5307 __le16 int_lat_tmr_max; 5308 __le16 num_cmpl_aggr_int; 5309 u8 unused_0[7]; 5310 u8 valid; 5311 }; 5312 5313 /* hwrm_ring_cmpl_ring_cfg_aggint_params_input (size:320b/40B) */ 5314 struct hwrm_ring_cmpl_ring_cfg_aggint_params_input { 5315 __le16 req_type; 5316 __le16 cmpl_ring; 5317 __le16 seq_id; 5318 __le16 target_id; 5319 __le64 resp_addr; 5320 __le16 ring_id; 5321 __le16 flags; 5322 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_FLAGS_TIMER_RESET 0x1UL 5323 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_FLAGS_RING_IDLE 0x2UL 5324 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_FLAGS_IS_NQ 0x4UL 5325 __le16 num_cmpl_dma_aggr; 5326 __le16 num_cmpl_dma_aggr_during_int; 5327 __le16 cmpl_aggr_dma_tmr; 5328 __le16 cmpl_aggr_dma_tmr_during_int; 5329 __le16 int_lat_tmr_min; 5330 __le16 int_lat_tmr_max; 5331 __le16 num_cmpl_aggr_int; 5332 __le16 enables; 5333 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_NUM_CMPL_DMA_AGGR 0x1UL 5334 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_NUM_CMPL_DMA_AGGR_DURING_INT 0x2UL 5335 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_CMPL_AGGR_DMA_TMR 0x4UL 5336 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_INT_LAT_TMR_MIN 0x8UL 5337 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_INT_LAT_TMR_MAX 0x10UL 5338 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_NUM_CMPL_AGGR_INT 0x20UL 5339 u8 unused_0[4]; 5340 }; 5341 5342 /* hwrm_ring_cmpl_ring_cfg_aggint_params_output (size:128b/16B) */ 5343 struct hwrm_ring_cmpl_ring_cfg_aggint_params_output { 5344 __le16 error_code; 5345 __le16 req_type; 5346 __le16 seq_id; 5347 __le16 resp_len; 5348 u8 unused_0[7]; 5349 u8 valid; 5350 }; 5351 5352 /* hwrm_ring_grp_alloc_input (size:192b/24B) */ 5353 struct hwrm_ring_grp_alloc_input { 5354 __le16 req_type; 5355 __le16 cmpl_ring; 5356 __le16 seq_id; 5357 __le16 target_id; 5358 __le64 resp_addr; 5359 __le16 cr; 5360 __le16 rr; 5361 __le16 ar; 5362 __le16 sc; 5363 }; 5364 5365 /* hwrm_ring_grp_alloc_output (size:128b/16B) */ 5366 struct hwrm_ring_grp_alloc_output { 5367 __le16 error_code; 5368 __le16 req_type; 5369 __le16 seq_id; 5370 __le16 resp_len; 5371 __le32 ring_group_id; 5372 u8 unused_0[3]; 5373 u8 valid; 5374 }; 5375 5376 /* hwrm_ring_grp_free_input (size:192b/24B) */ 5377 struct hwrm_ring_grp_free_input { 5378 __le16 req_type; 5379 __le16 cmpl_ring; 5380 __le16 seq_id; 5381 __le16 target_id; 5382 __le64 resp_addr; 5383 __le32 ring_group_id; 5384 u8 unused_0[4]; 5385 }; 5386 5387 /* hwrm_ring_grp_free_output (size:128b/16B) */ 5388 struct hwrm_ring_grp_free_output { 5389 __le16 error_code; 5390 __le16 req_type; 5391 __le16 seq_id; 5392 __le16 resp_len; 5393 u8 unused_0[7]; 5394 u8 valid; 5395 }; 5396 #define DEFAULT_FLOW_ID 0xFFFFFFFFUL 5397 #define ROCEV1_FLOW_ID 0xFFFFFFFEUL 5398 #define ROCEV2_FLOW_ID 0xFFFFFFFDUL 5399 #define ROCEV2_CNP_FLOW_ID 0xFFFFFFFCUL 5400 5401 /* hwrm_cfa_l2_filter_alloc_input (size:768b/96B) */ 5402 struct hwrm_cfa_l2_filter_alloc_input { 5403 __le16 req_type; 5404 __le16 cmpl_ring; 5405 __le16 seq_id; 5406 __le16 target_id; 5407 __le64 resp_addr; 5408 __le32 flags; 5409 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH 0x1UL 5410 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_TX 0x0UL 5411 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_RX 0x1UL 5412 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_LAST CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_RX 5413 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_LOOPBACK 0x2UL 5414 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_DROP 0x4UL 5415 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_OUTERMOST 0x8UL 5416 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_MASK 0x30UL 5417 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_SFT 4 5418 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_NO_ROCE_L2 (0x0UL << 4) 5419 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_L2 (0x1UL << 4) 5420 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_ROCE (0x2UL << 4) 5421 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_LAST CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_ROCE 5422 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_XDP_DISABLE 0x40UL 5423 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_SOURCE_VALID 0x80UL 5424 __le32 enables; 5425 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_ADDR 0x1UL 5426 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_ADDR_MASK 0x2UL 5427 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_OVLAN 0x4UL 5428 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_OVLAN_MASK 0x8UL 5429 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN 0x10UL 5430 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN_MASK 0x20UL 5431 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_ADDR 0x40UL 5432 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_ADDR_MASK 0x80UL 5433 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_OVLAN 0x100UL 5434 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_OVLAN_MASK 0x200UL 5435 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_IVLAN 0x400UL 5436 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_IVLAN_MASK 0x800UL 5437 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_SRC_TYPE 0x1000UL 5438 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_SRC_ID 0x2000UL 5439 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE 0x4000UL 5440 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_DST_ID 0x8000UL 5441 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID 0x10000UL 5442 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_NUM_VLANS 0x20000UL 5443 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_NUM_VLANS 0x40000UL 5444 u8 l2_addr[6]; 5445 u8 num_vlans; 5446 u8 t_num_vlans; 5447 u8 l2_addr_mask[6]; 5448 __le16 l2_ovlan; 5449 __le16 l2_ovlan_mask; 5450 __le16 l2_ivlan; 5451 __le16 l2_ivlan_mask; 5452 u8 unused_1[2]; 5453 u8 t_l2_addr[6]; 5454 u8 unused_2[2]; 5455 u8 t_l2_addr_mask[6]; 5456 __le16 t_l2_ovlan; 5457 __le16 t_l2_ovlan_mask; 5458 __le16 t_l2_ivlan; 5459 __le16 t_l2_ivlan_mask; 5460 u8 src_type; 5461 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_NPORT 0x0UL 5462 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_PF 0x1UL 5463 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_VF 0x2UL 5464 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_VNIC 0x3UL 5465 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_KONG 0x4UL 5466 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_APE 0x5UL 5467 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_BONO 0x6UL 5468 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_TANG 0x7UL 5469 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_LAST CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_TANG 5470 u8 unused_3; 5471 __le32 src_id; 5472 u8 tunnel_type; 5473 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL 5474 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL 5475 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE 0x2UL 5476 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE 0x3UL 5477 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP 0x4UL 5478 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL 5479 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS 0x6UL 5480 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT 0x7UL 5481 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE 0x8UL 5482 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 5483 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 5484 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 5485 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 5486 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL 5487 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 5488 u8 unused_4; 5489 __le16 dst_id; 5490 __le16 mirror_vnic_id; 5491 u8 pri_hint; 5492 #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_NO_PREFER 0x0UL 5493 #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_ABOVE_FILTER 0x1UL 5494 #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_BELOW_FILTER 0x2UL 5495 #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_MAX 0x3UL 5496 #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_MIN 0x4UL 5497 #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_LAST CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_MIN 5498 u8 unused_5; 5499 __le32 unused_6; 5500 __le64 l2_filter_id_hint; 5501 }; 5502 5503 /* hwrm_cfa_l2_filter_alloc_output (size:192b/24B) */ 5504 struct hwrm_cfa_l2_filter_alloc_output { 5505 __le16 error_code; 5506 __le16 req_type; 5507 __le16 seq_id; 5508 __le16 resp_len; 5509 __le64 l2_filter_id; 5510 __le32 flow_id; 5511 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL 5512 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_VALUE_SFT 0 5513 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE 0x40000000UL 5514 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_INT (0x0UL << 30) 5515 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT (0x1UL << 30) 5516 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_LAST CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT 5517 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR 0x80000000UL 5518 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_RX (0x0UL << 31) 5519 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX (0x1UL << 31) 5520 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_LAST CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX 5521 u8 unused_0[3]; 5522 u8 valid; 5523 }; 5524 5525 /* hwrm_cfa_l2_filter_free_input (size:192b/24B) */ 5526 struct hwrm_cfa_l2_filter_free_input { 5527 __le16 req_type; 5528 __le16 cmpl_ring; 5529 __le16 seq_id; 5530 __le16 target_id; 5531 __le64 resp_addr; 5532 __le64 l2_filter_id; 5533 }; 5534 5535 /* hwrm_cfa_l2_filter_free_output (size:128b/16B) */ 5536 struct hwrm_cfa_l2_filter_free_output { 5537 __le16 error_code; 5538 __le16 req_type; 5539 __le16 seq_id; 5540 __le16 resp_len; 5541 u8 unused_0[7]; 5542 u8 valid; 5543 }; 5544 5545 /* hwrm_cfa_l2_filter_cfg_input (size:320b/40B) */ 5546 struct hwrm_cfa_l2_filter_cfg_input { 5547 __le16 req_type; 5548 __le16 cmpl_ring; 5549 __le16 seq_id; 5550 __le16 target_id; 5551 __le64 resp_addr; 5552 __le32 flags; 5553 #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH 0x1UL 5554 #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_TX 0x0UL 5555 #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_RX 0x1UL 5556 #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_LAST CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_RX 5557 #define CFA_L2_FILTER_CFG_REQ_FLAGS_DROP 0x2UL 5558 #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_MASK 0xcUL 5559 #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_SFT 2 5560 #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_NO_ROCE_L2 (0x0UL << 2) 5561 #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_L2 (0x1UL << 2) 5562 #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_ROCE (0x2UL << 2) 5563 #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_LAST CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_ROCE 5564 __le32 enables; 5565 #define CFA_L2_FILTER_CFG_REQ_ENABLES_DST_ID 0x1UL 5566 #define CFA_L2_FILTER_CFG_REQ_ENABLES_NEW_MIRROR_VNIC_ID 0x2UL 5567 __le64 l2_filter_id; 5568 __le32 dst_id; 5569 __le32 new_mirror_vnic_id; 5570 }; 5571 5572 /* hwrm_cfa_l2_filter_cfg_output (size:128b/16B) */ 5573 struct hwrm_cfa_l2_filter_cfg_output { 5574 __le16 error_code; 5575 __le16 req_type; 5576 __le16 seq_id; 5577 __le16 resp_len; 5578 u8 unused_0[7]; 5579 u8 valid; 5580 }; 5581 5582 /* hwrm_cfa_l2_set_rx_mask_input (size:448b/56B) */ 5583 struct hwrm_cfa_l2_set_rx_mask_input { 5584 __le16 req_type; 5585 __le16 cmpl_ring; 5586 __le16 seq_id; 5587 __le16 target_id; 5588 __le64 resp_addr; 5589 __le32 vnic_id; 5590 __le32 mask; 5591 #define CFA_L2_SET_RX_MASK_REQ_MASK_MCAST 0x2UL 5592 #define CFA_L2_SET_RX_MASK_REQ_MASK_ALL_MCAST 0x4UL 5593 #define CFA_L2_SET_RX_MASK_REQ_MASK_BCAST 0x8UL 5594 #define CFA_L2_SET_RX_MASK_REQ_MASK_PROMISCUOUS 0x10UL 5595 #define CFA_L2_SET_RX_MASK_REQ_MASK_OUTERMOST 0x20UL 5596 #define CFA_L2_SET_RX_MASK_REQ_MASK_VLANONLY 0x40UL 5597 #define CFA_L2_SET_RX_MASK_REQ_MASK_VLAN_NONVLAN 0x80UL 5598 #define CFA_L2_SET_RX_MASK_REQ_MASK_ANYVLAN_NONVLAN 0x100UL 5599 __le64 mc_tbl_addr; 5600 __le32 num_mc_entries; 5601 u8 unused_0[4]; 5602 __le64 vlan_tag_tbl_addr; 5603 __le32 num_vlan_tags; 5604 u8 unused_1[4]; 5605 }; 5606 5607 /* hwrm_cfa_l2_set_rx_mask_output (size:128b/16B) */ 5608 struct hwrm_cfa_l2_set_rx_mask_output { 5609 __le16 error_code; 5610 __le16 req_type; 5611 __le16 seq_id; 5612 __le16 resp_len; 5613 u8 unused_0[7]; 5614 u8 valid; 5615 }; 5616 5617 /* hwrm_cfa_l2_set_rx_mask_cmd_err (size:64b/8B) */ 5618 struct hwrm_cfa_l2_set_rx_mask_cmd_err { 5619 u8 code; 5620 #define CFA_L2_SET_RX_MASK_CMD_ERR_CODE_UNKNOWN 0x0UL 5621 #define CFA_L2_SET_RX_MASK_CMD_ERR_CODE_NTUPLE_FILTER_CONFLICT_ERR 0x1UL 5622 #define CFA_L2_SET_RX_MASK_CMD_ERR_CODE_LAST CFA_L2_SET_RX_MASK_CMD_ERR_CODE_NTUPLE_FILTER_CONFLICT_ERR 5623 u8 unused_0[7]; 5624 }; 5625 5626 /* hwrm_cfa_tunnel_filter_alloc_input (size:704b/88B) */ 5627 struct hwrm_cfa_tunnel_filter_alloc_input { 5628 __le16 req_type; 5629 __le16 cmpl_ring; 5630 __le16 seq_id; 5631 __le16 target_id; 5632 __le64 resp_addr; 5633 __le32 flags; 5634 #define CFA_TUNNEL_FILTER_ALLOC_REQ_FLAGS_LOOPBACK 0x1UL 5635 __le32 enables; 5636 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_FILTER_ID 0x1UL 5637 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_ADDR 0x2UL 5638 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN 0x4UL 5639 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L3_ADDR 0x8UL 5640 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L3_ADDR_TYPE 0x10UL 5641 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_T_L3_ADDR_TYPE 0x20UL 5642 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_T_L3_ADDR 0x40UL 5643 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE 0x80UL 5644 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_VNI 0x100UL 5645 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_DST_VNIC_ID 0x200UL 5646 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID 0x400UL 5647 __le64 l2_filter_id; 5648 u8 l2_addr[6]; 5649 __le16 l2_ivlan; 5650 __le32 l3_addr[4]; 5651 __le32 t_l3_addr[4]; 5652 u8 l3_addr_type; 5653 u8 t_l3_addr_type; 5654 u8 tunnel_type; 5655 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL 5656 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL 5657 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE 0x2UL 5658 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE 0x3UL 5659 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP 0x4UL 5660 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL 5661 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS 0x6UL 5662 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT 0x7UL 5663 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE 0x8UL 5664 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 5665 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 5666 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 5667 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 5668 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL 5669 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 5670 u8 tunnel_flags; 5671 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_FLAGS_TUN_FLAGS_OAM_CHECKSUM_EXPLHDR 0x1UL 5672 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_FLAGS_TUN_FLAGS_CRITICAL_OPT_S1 0x2UL 5673 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_FLAGS_TUN_FLAGS_EXTHDR_SEQNUM_S0 0x4UL 5674 __le32 vni; 5675 __le32 dst_vnic_id; 5676 __le32 mirror_vnic_id; 5677 }; 5678 5679 /* hwrm_cfa_tunnel_filter_alloc_output (size:192b/24B) */ 5680 struct hwrm_cfa_tunnel_filter_alloc_output { 5681 __le16 error_code; 5682 __le16 req_type; 5683 __le16 seq_id; 5684 __le16 resp_len; 5685 __le64 tunnel_filter_id; 5686 __le32 flow_id; 5687 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL 5688 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_VALUE_SFT 0 5689 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE 0x40000000UL 5690 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_INT (0x0UL << 30) 5691 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT (0x1UL << 30) 5692 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_LAST CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT 5693 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR 0x80000000UL 5694 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_RX (0x0UL << 31) 5695 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX (0x1UL << 31) 5696 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_LAST CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX 5697 u8 unused_0[3]; 5698 u8 valid; 5699 }; 5700 5701 /* hwrm_cfa_tunnel_filter_free_input (size:192b/24B) */ 5702 struct hwrm_cfa_tunnel_filter_free_input { 5703 __le16 req_type; 5704 __le16 cmpl_ring; 5705 __le16 seq_id; 5706 __le16 target_id; 5707 __le64 resp_addr; 5708 __le64 tunnel_filter_id; 5709 }; 5710 5711 /* hwrm_cfa_tunnel_filter_free_output (size:128b/16B) */ 5712 struct hwrm_cfa_tunnel_filter_free_output { 5713 __le16 error_code; 5714 __le16 req_type; 5715 __le16 seq_id; 5716 __le16 resp_len; 5717 u8 unused_0[7]; 5718 u8 valid; 5719 }; 5720 5721 /* hwrm_vxlan_ipv4_hdr (size:128b/16B) */ 5722 struct hwrm_vxlan_ipv4_hdr { 5723 u8 ver_hlen; 5724 #define VXLAN_IPV4_HDR_VER_HLEN_HEADER_LENGTH_MASK 0xfUL 5725 #define VXLAN_IPV4_HDR_VER_HLEN_HEADER_LENGTH_SFT 0 5726 #define VXLAN_IPV4_HDR_VER_HLEN_VERSION_MASK 0xf0UL 5727 #define VXLAN_IPV4_HDR_VER_HLEN_VERSION_SFT 4 5728 u8 tos; 5729 __be16 ip_id; 5730 __be16 flags_frag_offset; 5731 u8 ttl; 5732 u8 protocol; 5733 __be32 src_ip_addr; 5734 __be32 dest_ip_addr; 5735 }; 5736 5737 /* hwrm_vxlan_ipv6_hdr (size:320b/40B) */ 5738 struct hwrm_vxlan_ipv6_hdr { 5739 __be32 ver_tc_flow_label; 5740 #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_VER_SFT 0x1cUL 5741 #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_VER_MASK 0xf0000000UL 5742 #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_TC_SFT 0x14UL 5743 #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_TC_MASK 0xff00000UL 5744 #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_FLOW_LABEL_SFT 0x0UL 5745 #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_FLOW_LABEL_MASK 0xfffffUL 5746 #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_LAST VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_FLOW_LABEL_MASK 5747 __be16 payload_len; 5748 u8 next_hdr; 5749 u8 ttl; 5750 __be32 src_ip_addr[4]; 5751 __be32 dest_ip_addr[4]; 5752 }; 5753 5754 /* hwrm_cfa_encap_data_vxlan (size:640b/80B) */ 5755 struct hwrm_cfa_encap_data_vxlan { 5756 u8 src_mac_addr[6]; 5757 __le16 unused_0; 5758 u8 dst_mac_addr[6]; 5759 u8 num_vlan_tags; 5760 u8 unused_1; 5761 __be16 ovlan_tpid; 5762 __be16 ovlan_tci; 5763 __be16 ivlan_tpid; 5764 __be16 ivlan_tci; 5765 __le32 l3[10]; 5766 #define CFA_ENCAP_DATA_VXLAN_L3_VER_MASK 0xfUL 5767 #define CFA_ENCAP_DATA_VXLAN_L3_VER_IPV4 0x4UL 5768 #define CFA_ENCAP_DATA_VXLAN_L3_VER_IPV6 0x6UL 5769 #define CFA_ENCAP_DATA_VXLAN_L3_LAST CFA_ENCAP_DATA_VXLAN_L3_VER_IPV6 5770 __be16 src_port; 5771 __be16 dst_port; 5772 __be32 vni; 5773 u8 hdr_rsvd0[3]; 5774 u8 hdr_rsvd1; 5775 u8 hdr_flags; 5776 u8 unused[3]; 5777 }; 5778 5779 /* hwrm_cfa_encap_record_alloc_input (size:832b/104B) */ 5780 struct hwrm_cfa_encap_record_alloc_input { 5781 __le16 req_type; 5782 __le16 cmpl_ring; 5783 __le16 seq_id; 5784 __le16 target_id; 5785 __le64 resp_addr; 5786 __le32 flags; 5787 #define CFA_ENCAP_RECORD_ALLOC_REQ_FLAGS_LOOPBACK 0x1UL 5788 #define CFA_ENCAP_RECORD_ALLOC_REQ_FLAGS_EXTERNAL 0x2UL 5789 u8 encap_type; 5790 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN 0x1UL 5791 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_NVGRE 0x2UL 5792 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_L2GRE 0x3UL 5793 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_IPIP 0x4UL 5794 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_GENEVE 0x5UL 5795 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_MPLS 0x6UL 5796 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VLAN 0x7UL 5797 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_IPGRE 0x8UL 5798 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN_V4 0x9UL 5799 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_IPGRE_V1 0xaUL 5800 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_L2_ETYPE 0xbUL 5801 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN_GPE_V6 0xcUL 5802 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_LAST CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN_GPE_V6 5803 u8 unused_0[3]; 5804 __le32 encap_data[20]; 5805 }; 5806 5807 /* hwrm_cfa_encap_record_alloc_output (size:128b/16B) */ 5808 struct hwrm_cfa_encap_record_alloc_output { 5809 __le16 error_code; 5810 __le16 req_type; 5811 __le16 seq_id; 5812 __le16 resp_len; 5813 __le32 encap_record_id; 5814 u8 unused_0[3]; 5815 u8 valid; 5816 }; 5817 5818 /* hwrm_cfa_encap_record_free_input (size:192b/24B) */ 5819 struct hwrm_cfa_encap_record_free_input { 5820 __le16 req_type; 5821 __le16 cmpl_ring; 5822 __le16 seq_id; 5823 __le16 target_id; 5824 __le64 resp_addr; 5825 __le32 encap_record_id; 5826 u8 unused_0[4]; 5827 }; 5828 5829 /* hwrm_cfa_encap_record_free_output (size:128b/16B) */ 5830 struct hwrm_cfa_encap_record_free_output { 5831 __le16 error_code; 5832 __le16 req_type; 5833 __le16 seq_id; 5834 __le16 resp_len; 5835 u8 unused_0[7]; 5836 u8 valid; 5837 }; 5838 5839 /* hwrm_cfa_ntuple_filter_alloc_input (size:1024b/128B) */ 5840 struct hwrm_cfa_ntuple_filter_alloc_input { 5841 __le16 req_type; 5842 __le16 cmpl_ring; 5843 __le16 seq_id; 5844 __le16 target_id; 5845 __le64 resp_addr; 5846 __le32 flags; 5847 #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_LOOPBACK 0x1UL 5848 #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_DROP 0x2UL 5849 #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_METER 0x4UL 5850 #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_DEST_FID 0x8UL 5851 #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_ARP_REPLY 0x10UL 5852 #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_DEST_RFS_RING_IDX 0x20UL 5853 __le32 enables; 5854 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_L2_FILTER_ID 0x1UL 5855 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_ETHERTYPE 0x2UL 5856 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE 0x4UL 5857 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_MACADDR 0x8UL 5858 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_IPADDR_TYPE 0x10UL 5859 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_IPADDR 0x20UL 5860 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_IPADDR_MASK 0x40UL 5861 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_IPADDR 0x80UL 5862 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_IPADDR_MASK 0x100UL 5863 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_IP_PROTOCOL 0x200UL 5864 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_PORT 0x400UL 5865 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_PORT_MASK 0x800UL 5866 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_PORT 0x1000UL 5867 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_PORT_MASK 0x2000UL 5868 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_PRI_HINT 0x4000UL 5869 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_NTUPLE_FILTER_ID 0x8000UL 5870 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_ID 0x10000UL 5871 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID 0x20000UL 5872 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_MACADDR 0x40000UL 5873 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_RFS_RING_TBL_IDX 0x80000UL 5874 __le64 l2_filter_id; 5875 u8 src_macaddr[6]; 5876 __be16 ethertype; 5877 u8 ip_addr_type; 5878 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_UNKNOWN 0x0UL 5879 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV4 0x4UL 5880 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6 0x6UL 5881 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_LAST CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6 5882 u8 ip_protocol; 5883 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_UNKNOWN 0x0UL 5884 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_TCP 0x6UL 5885 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP 0x11UL 5886 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_LAST CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP 5887 __le16 dst_id; 5888 __le16 mirror_vnic_id; 5889 u8 tunnel_type; 5890 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL 5891 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL 5892 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE 0x2UL 5893 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE 0x3UL 5894 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP 0x4UL 5895 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL 5896 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS 0x6UL 5897 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT 0x7UL 5898 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE 0x8UL 5899 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 5900 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 5901 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 5902 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 5903 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL 5904 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 5905 u8 pri_hint; 5906 #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_NO_PREFER 0x0UL 5907 #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_ABOVE 0x1UL 5908 #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_BELOW 0x2UL 5909 #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_HIGHEST 0x3UL 5910 #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_LOWEST 0x4UL 5911 #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_LAST CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_LOWEST 5912 __be32 src_ipaddr[4]; 5913 __be32 src_ipaddr_mask[4]; 5914 __be32 dst_ipaddr[4]; 5915 __be32 dst_ipaddr_mask[4]; 5916 __be16 src_port; 5917 __be16 src_port_mask; 5918 __be16 dst_port; 5919 __be16 dst_port_mask; 5920 __le64 ntuple_filter_id_hint; 5921 }; 5922 5923 /* hwrm_cfa_ntuple_filter_alloc_output (size:192b/24B) */ 5924 struct hwrm_cfa_ntuple_filter_alloc_output { 5925 __le16 error_code; 5926 __le16 req_type; 5927 __le16 seq_id; 5928 __le16 resp_len; 5929 __le64 ntuple_filter_id; 5930 __le32 flow_id; 5931 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL 5932 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_VALUE_SFT 0 5933 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE 0x40000000UL 5934 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_INT (0x0UL << 30) 5935 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT (0x1UL << 30) 5936 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_LAST CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT 5937 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR 0x80000000UL 5938 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_RX (0x0UL << 31) 5939 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX (0x1UL << 31) 5940 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_LAST CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX 5941 u8 unused_0[3]; 5942 u8 valid; 5943 }; 5944 5945 /* hwrm_cfa_ntuple_filter_alloc_cmd_err (size:64b/8B) */ 5946 struct hwrm_cfa_ntuple_filter_alloc_cmd_err { 5947 u8 code; 5948 #define CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_UNKNOWN 0x0UL 5949 #define CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_RX_MASK_VLAN_CONFLICT_ERR 0x1UL 5950 #define CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_LAST CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_RX_MASK_VLAN_CONFLICT_ERR 5951 u8 unused_0[7]; 5952 }; 5953 5954 /* hwrm_cfa_ntuple_filter_free_input (size:192b/24B) */ 5955 struct hwrm_cfa_ntuple_filter_free_input { 5956 __le16 req_type; 5957 __le16 cmpl_ring; 5958 __le16 seq_id; 5959 __le16 target_id; 5960 __le64 resp_addr; 5961 __le64 ntuple_filter_id; 5962 }; 5963 5964 /* hwrm_cfa_ntuple_filter_free_output (size:128b/16B) */ 5965 struct hwrm_cfa_ntuple_filter_free_output { 5966 __le16 error_code; 5967 __le16 req_type; 5968 __le16 seq_id; 5969 __le16 resp_len; 5970 u8 unused_0[7]; 5971 u8 valid; 5972 }; 5973 5974 /* hwrm_cfa_ntuple_filter_cfg_input (size:384b/48B) */ 5975 struct hwrm_cfa_ntuple_filter_cfg_input { 5976 __le16 req_type; 5977 __le16 cmpl_ring; 5978 __le16 seq_id; 5979 __le16 target_id; 5980 __le64 resp_addr; 5981 __le32 enables; 5982 #define CFA_NTUPLE_FILTER_CFG_REQ_ENABLES_NEW_DST_ID 0x1UL 5983 #define CFA_NTUPLE_FILTER_CFG_REQ_ENABLES_NEW_MIRROR_VNIC_ID 0x2UL 5984 #define CFA_NTUPLE_FILTER_CFG_REQ_ENABLES_NEW_METER_INSTANCE_ID 0x4UL 5985 __le32 flags; 5986 #define CFA_NTUPLE_FILTER_CFG_REQ_FLAGS_DEST_FID 0x1UL 5987 #define CFA_NTUPLE_FILTER_CFG_REQ_FLAGS_DEST_RFS_RING_IDX 0x2UL 5988 __le64 ntuple_filter_id; 5989 __le32 new_dst_id; 5990 __le32 new_mirror_vnic_id; 5991 __le16 new_meter_instance_id; 5992 #define CFA_NTUPLE_FILTER_CFG_REQ_NEW_METER_INSTANCE_ID_INVALID 0xffffUL 5993 #define CFA_NTUPLE_FILTER_CFG_REQ_NEW_METER_INSTANCE_ID_LAST CFA_NTUPLE_FILTER_CFG_REQ_NEW_METER_INSTANCE_ID_INVALID 5994 u8 unused_1[6]; 5995 }; 5996 5997 /* hwrm_cfa_ntuple_filter_cfg_output (size:128b/16B) */ 5998 struct hwrm_cfa_ntuple_filter_cfg_output { 5999 __le16 error_code; 6000 __le16 req_type; 6001 __le16 seq_id; 6002 __le16 resp_len; 6003 u8 unused_0[7]; 6004 u8 valid; 6005 }; 6006 6007 /* hwrm_cfa_decap_filter_alloc_input (size:832b/104B) */ 6008 struct hwrm_cfa_decap_filter_alloc_input { 6009 __le16 req_type; 6010 __le16 cmpl_ring; 6011 __le16 seq_id; 6012 __le16 target_id; 6013 __le64 resp_addr; 6014 __le32 flags; 6015 #define CFA_DECAP_FILTER_ALLOC_REQ_FLAGS_OVS_TUNNEL 0x1UL 6016 __le32 enables; 6017 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE 0x1UL 6018 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_TUNNEL_ID 0x2UL 6019 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_SRC_MACADDR 0x4UL 6020 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_MACADDR 0x8UL 6021 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_OVLAN_VID 0x10UL 6022 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_IVLAN_VID 0x20UL 6023 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_T_OVLAN_VID 0x40UL 6024 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_T_IVLAN_VID 0x80UL 6025 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_ETHERTYPE 0x100UL 6026 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_SRC_IPADDR 0x200UL 6027 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_IPADDR 0x400UL 6028 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_IPADDR_TYPE 0x800UL 6029 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_IP_PROTOCOL 0x1000UL 6030 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_SRC_PORT 0x2000UL 6031 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_PORT 0x4000UL 6032 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_ID 0x8000UL 6033 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID 0x10000UL 6034 __be32 tunnel_id; 6035 u8 tunnel_type; 6036 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL 6037 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL 6038 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE 0x2UL 6039 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE 0x3UL 6040 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP 0x4UL 6041 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL 6042 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS 0x6UL 6043 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT 0x7UL 6044 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE 0x8UL 6045 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 6046 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 6047 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 6048 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 6049 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL 6050 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 6051 u8 unused_0; 6052 __le16 unused_1; 6053 u8 src_macaddr[6]; 6054 u8 unused_2[2]; 6055 u8 dst_macaddr[6]; 6056 __be16 ovlan_vid; 6057 __be16 ivlan_vid; 6058 __be16 t_ovlan_vid; 6059 __be16 t_ivlan_vid; 6060 __be16 ethertype; 6061 u8 ip_addr_type; 6062 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_UNKNOWN 0x0UL 6063 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV4 0x4UL 6064 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6 0x6UL 6065 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_LAST CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6 6066 u8 ip_protocol; 6067 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_UNKNOWN 0x0UL 6068 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_TCP 0x6UL 6069 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP 0x11UL 6070 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_LAST CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP 6071 __le16 unused_3; 6072 __le32 unused_4; 6073 __be32 src_ipaddr[4]; 6074 __be32 dst_ipaddr[4]; 6075 __be16 src_port; 6076 __be16 dst_port; 6077 __le16 dst_id; 6078 __le16 l2_ctxt_ref_id; 6079 }; 6080 6081 /* hwrm_cfa_decap_filter_alloc_output (size:128b/16B) */ 6082 struct hwrm_cfa_decap_filter_alloc_output { 6083 __le16 error_code; 6084 __le16 req_type; 6085 __le16 seq_id; 6086 __le16 resp_len; 6087 __le32 decap_filter_id; 6088 u8 unused_0[3]; 6089 u8 valid; 6090 }; 6091 6092 /* hwrm_cfa_decap_filter_free_input (size:192b/24B) */ 6093 struct hwrm_cfa_decap_filter_free_input { 6094 __le16 req_type; 6095 __le16 cmpl_ring; 6096 __le16 seq_id; 6097 __le16 target_id; 6098 __le64 resp_addr; 6099 __le32 decap_filter_id; 6100 u8 unused_0[4]; 6101 }; 6102 6103 /* hwrm_cfa_decap_filter_free_output (size:128b/16B) */ 6104 struct hwrm_cfa_decap_filter_free_output { 6105 __le16 error_code; 6106 __le16 req_type; 6107 __le16 seq_id; 6108 __le16 resp_len; 6109 u8 unused_0[7]; 6110 u8 valid; 6111 }; 6112 6113 /* hwrm_cfa_flow_alloc_input (size:1024b/128B) */ 6114 struct hwrm_cfa_flow_alloc_input { 6115 __le16 req_type; 6116 __le16 cmpl_ring; 6117 __le16 seq_id; 6118 __le16 target_id; 6119 __le64 resp_addr; 6120 __le16 flags; 6121 #define CFA_FLOW_ALLOC_REQ_FLAGS_TUNNEL 0x1UL 6122 #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_MASK 0x6UL 6123 #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_SFT 1 6124 #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_NONE (0x0UL << 1) 6125 #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_ONE (0x1UL << 1) 6126 #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_TWO (0x2UL << 1) 6127 #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_LAST CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_TWO 6128 #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_MASK 0x38UL 6129 #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_SFT 3 6130 #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_L2 (0x0UL << 3) 6131 #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_IPV4 (0x1UL << 3) 6132 #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_IPV6 (0x2UL << 3) 6133 #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_LAST CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_IPV6 6134 #define CFA_FLOW_ALLOC_REQ_FLAGS_PATH_TX 0x40UL 6135 #define CFA_FLOW_ALLOC_REQ_FLAGS_PATH_RX 0x80UL 6136 #define CFA_FLOW_ALLOC_REQ_FLAGS_MATCH_VXLAN_IP_VNI 0x100UL 6137 #define CFA_FLOW_ALLOC_REQ_FLAGS_VHOST_ID_USE_VLAN 0x200UL 6138 __le16 src_fid; 6139 __le32 tunnel_handle; 6140 __le16 action_flags; 6141 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_FWD 0x1UL 6142 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_RECYCLE 0x2UL 6143 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_DROP 0x4UL 6144 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_METER 0x8UL 6145 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_TUNNEL 0x10UL 6146 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NAT_SRC 0x20UL 6147 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NAT_DEST 0x40UL 6148 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NAT_IPV4_ADDRESS 0x80UL 6149 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_L2_HEADER_REWRITE 0x100UL 6150 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_TTL_DECREMENT 0x200UL 6151 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_TUNNEL_IP 0x400UL 6152 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_FLOW_AGING_ENABLED 0x800UL 6153 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_PRI_HINT 0x1000UL 6154 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NO_FLOW_COUNTER_ALLOC 0x2000UL 6155 __le16 dst_fid; 6156 __be16 l2_rewrite_vlan_tpid; 6157 __be16 l2_rewrite_vlan_tci; 6158 __le16 act_meter_id; 6159 __le16 ref_flow_handle; 6160 __be16 ethertype; 6161 __be16 outer_vlan_tci; 6162 __be16 dmac[3]; 6163 __be16 inner_vlan_tci; 6164 __be16 smac[3]; 6165 u8 ip_dst_mask_len; 6166 u8 ip_src_mask_len; 6167 __be32 ip_dst[4]; 6168 __be32 ip_src[4]; 6169 __be16 l4_src_port; 6170 __be16 l4_src_port_mask; 6171 __be16 l4_dst_port; 6172 __be16 l4_dst_port_mask; 6173 __be32 nat_ip_address[4]; 6174 __be16 l2_rewrite_dmac[3]; 6175 __be16 nat_port; 6176 __be16 l2_rewrite_smac[3]; 6177 u8 ip_proto; 6178 u8 tunnel_type; 6179 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL 6180 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL 6181 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_NVGRE 0x2UL 6182 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_L2GRE 0x3UL 6183 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_IPIP 0x4UL 6184 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL 6185 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_MPLS 0x6UL 6186 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_STT 0x7UL 6187 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_IPGRE 0x8UL 6188 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 6189 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 6190 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 6191 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 6192 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL 6193 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_LAST CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 6194 }; 6195 6196 /* hwrm_cfa_flow_alloc_output (size:256b/32B) */ 6197 struct hwrm_cfa_flow_alloc_output { 6198 __le16 error_code; 6199 __le16 req_type; 6200 __le16 seq_id; 6201 __le16 resp_len; 6202 __le16 flow_handle; 6203 u8 unused_0[2]; 6204 __le32 flow_id; 6205 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL 6206 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_VALUE_SFT 0 6207 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE 0x40000000UL 6208 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_INT (0x0UL << 30) 6209 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_EXT (0x1UL << 30) 6210 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_LAST CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_EXT 6211 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR 0x80000000UL 6212 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_RX (0x0UL << 31) 6213 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_TX (0x1UL << 31) 6214 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_LAST CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_TX 6215 __le64 ext_flow_handle; 6216 __le32 flow_counter_id; 6217 u8 unused_1[3]; 6218 u8 valid; 6219 }; 6220 6221 /* hwrm_cfa_flow_alloc_cmd_err (size:64b/8B) */ 6222 struct hwrm_cfa_flow_alloc_cmd_err { 6223 u8 code; 6224 #define CFA_FLOW_ALLOC_CMD_ERR_CODE_UNKNOWN 0x0UL 6225 #define CFA_FLOW_ALLOC_CMD_ERR_CODE_L2_CONTEXT_TCAM 0x1UL 6226 #define CFA_FLOW_ALLOC_CMD_ERR_CODE_ACTION_RECORD 0x2UL 6227 #define CFA_FLOW_ALLOC_CMD_ERR_CODE_FLOW_COUNTER 0x3UL 6228 #define CFA_FLOW_ALLOC_CMD_ERR_CODE_WILD_CARD_TCAM 0x4UL 6229 #define CFA_FLOW_ALLOC_CMD_ERR_CODE_HASH_COLLISION 0x5UL 6230 #define CFA_FLOW_ALLOC_CMD_ERR_CODE_KEY_EXISTS 0x6UL 6231 #define CFA_FLOW_ALLOC_CMD_ERR_CODE_FLOW_CTXT_DB 0x7UL 6232 #define CFA_FLOW_ALLOC_CMD_ERR_CODE_LAST CFA_FLOW_ALLOC_CMD_ERR_CODE_FLOW_CTXT_DB 6233 u8 unused_0[7]; 6234 }; 6235 6236 /* hwrm_cfa_flow_free_input (size:256b/32B) */ 6237 struct hwrm_cfa_flow_free_input { 6238 __le16 req_type; 6239 __le16 cmpl_ring; 6240 __le16 seq_id; 6241 __le16 target_id; 6242 __le64 resp_addr; 6243 __le16 flow_handle; 6244 __le16 unused_0; 6245 __le32 flow_counter_id; 6246 __le64 ext_flow_handle; 6247 }; 6248 6249 /* hwrm_cfa_flow_free_output (size:256b/32B) */ 6250 struct hwrm_cfa_flow_free_output { 6251 __le16 error_code; 6252 __le16 req_type; 6253 __le16 seq_id; 6254 __le16 resp_len; 6255 __le64 packet; 6256 __le64 byte; 6257 u8 unused_0[7]; 6258 u8 valid; 6259 }; 6260 6261 /* hwrm_cfa_flow_info_input (size:256b/32B) */ 6262 struct hwrm_cfa_flow_info_input { 6263 __le16 req_type; 6264 __le16 cmpl_ring; 6265 __le16 seq_id; 6266 __le16 target_id; 6267 __le64 resp_addr; 6268 __le16 flow_handle; 6269 #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_MAX_MASK 0xfffUL 6270 #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_MAX_SFT 0 6271 #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_CNP_CNT 0x1000UL 6272 #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_ROCEV1_CNT 0x2000UL 6273 #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_ROCEV2_CNT 0x4000UL 6274 #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_DIR_RX 0x8000UL 6275 u8 unused_0[6]; 6276 __le64 ext_flow_handle; 6277 }; 6278 6279 /* hwrm_cfa_flow_info_output (size:5632b/704B) */ 6280 struct hwrm_cfa_flow_info_output { 6281 __le16 error_code; 6282 __le16 req_type; 6283 __le16 seq_id; 6284 __le16 resp_len; 6285 u8 flags; 6286 #define CFA_FLOW_INFO_RESP_FLAGS_PATH_TX 0x1UL 6287 #define CFA_FLOW_INFO_RESP_FLAGS_PATH_RX 0x2UL 6288 u8 profile; 6289 __le16 src_fid; 6290 __le16 dst_fid; 6291 __le16 l2_ctxt_id; 6292 __le64 em_info; 6293 __le64 tcam_info; 6294 __le64 vfp_tcam_info; 6295 __le16 ar_id; 6296 __le16 flow_handle; 6297 __le32 tunnel_handle; 6298 __le16 flow_timer; 6299 u8 unused_0[6]; 6300 __le32 flow_key_data[130]; 6301 __le32 flow_action_info[30]; 6302 u8 unused_1[7]; 6303 u8 valid; 6304 }; 6305 6306 /* hwrm_cfa_flow_stats_input (size:640b/80B) */ 6307 struct hwrm_cfa_flow_stats_input { 6308 __le16 req_type; 6309 __le16 cmpl_ring; 6310 __le16 seq_id; 6311 __le16 target_id; 6312 __le64 resp_addr; 6313 __le16 num_flows; 6314 __le16 flow_handle_0; 6315 __le16 flow_handle_1; 6316 __le16 flow_handle_2; 6317 __le16 flow_handle_3; 6318 __le16 flow_handle_4; 6319 __le16 flow_handle_5; 6320 __le16 flow_handle_6; 6321 __le16 flow_handle_7; 6322 __le16 flow_handle_8; 6323 __le16 flow_handle_9; 6324 u8 unused_0[2]; 6325 __le32 flow_id_0; 6326 __le32 flow_id_1; 6327 __le32 flow_id_2; 6328 __le32 flow_id_3; 6329 __le32 flow_id_4; 6330 __le32 flow_id_5; 6331 __le32 flow_id_6; 6332 __le32 flow_id_7; 6333 __le32 flow_id_8; 6334 __le32 flow_id_9; 6335 }; 6336 6337 /* hwrm_cfa_flow_stats_output (size:1408b/176B) */ 6338 struct hwrm_cfa_flow_stats_output { 6339 __le16 error_code; 6340 __le16 req_type; 6341 __le16 seq_id; 6342 __le16 resp_len; 6343 __le64 packet_0; 6344 __le64 packet_1; 6345 __le64 packet_2; 6346 __le64 packet_3; 6347 __le64 packet_4; 6348 __le64 packet_5; 6349 __le64 packet_6; 6350 __le64 packet_7; 6351 __le64 packet_8; 6352 __le64 packet_9; 6353 __le64 byte_0; 6354 __le64 byte_1; 6355 __le64 byte_2; 6356 __le64 byte_3; 6357 __le64 byte_4; 6358 __le64 byte_5; 6359 __le64 byte_6; 6360 __le64 byte_7; 6361 __le64 byte_8; 6362 __le64 byte_9; 6363 u8 unused_0[7]; 6364 u8 valid; 6365 }; 6366 6367 /* hwrm_cfa_vfr_alloc_input (size:448b/56B) */ 6368 struct hwrm_cfa_vfr_alloc_input { 6369 __le16 req_type; 6370 __le16 cmpl_ring; 6371 __le16 seq_id; 6372 __le16 target_id; 6373 __le64 resp_addr; 6374 __le16 vf_id; 6375 __le16 reserved; 6376 u8 unused_0[4]; 6377 char vfr_name[32]; 6378 }; 6379 6380 /* hwrm_cfa_vfr_alloc_output (size:128b/16B) */ 6381 struct hwrm_cfa_vfr_alloc_output { 6382 __le16 error_code; 6383 __le16 req_type; 6384 __le16 seq_id; 6385 __le16 resp_len; 6386 __le16 rx_cfa_code; 6387 __le16 tx_cfa_action; 6388 u8 unused_0[3]; 6389 u8 valid; 6390 }; 6391 6392 /* hwrm_cfa_vfr_free_input (size:384b/48B) */ 6393 struct hwrm_cfa_vfr_free_input { 6394 __le16 req_type; 6395 __le16 cmpl_ring; 6396 __le16 seq_id; 6397 __le16 target_id; 6398 __le64 resp_addr; 6399 char vfr_name[32]; 6400 }; 6401 6402 /* hwrm_cfa_vfr_free_output (size:128b/16B) */ 6403 struct hwrm_cfa_vfr_free_output { 6404 __le16 error_code; 6405 __le16 req_type; 6406 __le16 seq_id; 6407 __le16 resp_len; 6408 u8 unused_0[7]; 6409 u8 valid; 6410 }; 6411 6412 /* hwrm_cfa_eem_qcaps_input (size:192b/24B) */ 6413 struct hwrm_cfa_eem_qcaps_input { 6414 __le16 req_type; 6415 __le16 cmpl_ring; 6416 __le16 seq_id; 6417 __le16 target_id; 6418 __le64 resp_addr; 6419 __le32 flags; 6420 #define CFA_EEM_QCAPS_REQ_FLAGS_PATH_TX 0x1UL 6421 #define CFA_EEM_QCAPS_REQ_FLAGS_PATH_RX 0x2UL 6422 #define CFA_EEM_QCAPS_REQ_FLAGS_PREFERRED_OFFLOAD 0x4UL 6423 __le32 unused_0; 6424 }; 6425 6426 /* hwrm_cfa_eem_qcaps_output (size:320b/40B) */ 6427 struct hwrm_cfa_eem_qcaps_output { 6428 __le16 error_code; 6429 __le16 req_type; 6430 __le16 seq_id; 6431 __le16 resp_len; 6432 __le32 flags; 6433 #define CFA_EEM_QCAPS_RESP_FLAGS_PATH_TX 0x1UL 6434 #define CFA_EEM_QCAPS_RESP_FLAGS_PATH_RX 0x2UL 6435 #define CFA_EEM_QCAPS_RESP_FLAGS_CENTRALIZED_MEMORY_MODEL_SUPPORTED 0x4UL 6436 #define CFA_EEM_QCAPS_RESP_FLAGS_DETACHED_CENTRALIZED_MEMORY_MODEL_SUPPORTED 0x8UL 6437 __le32 unused_0; 6438 __le32 supported; 6439 #define CFA_EEM_QCAPS_RESP_SUPPORTED_KEY0_TABLE 0x1UL 6440 #define CFA_EEM_QCAPS_RESP_SUPPORTED_KEY1_TABLE 0x2UL 6441 #define CFA_EEM_QCAPS_RESP_SUPPORTED_EXTERNAL_RECORD_TABLE 0x4UL 6442 #define CFA_EEM_QCAPS_RESP_SUPPORTED_EXTERNAL_FLOW_COUNTERS_TABLE 0x8UL 6443 #define CFA_EEM_QCAPS_RESP_SUPPORTED_FID_TABLE 0x10UL 6444 __le32 max_entries_supported; 6445 __le16 key_entry_size; 6446 __le16 record_entry_size; 6447 __le16 efc_entry_size; 6448 __le16 fid_entry_size; 6449 u8 unused_1[7]; 6450 u8 valid; 6451 }; 6452 6453 /* hwrm_cfa_eem_cfg_input (size:384b/48B) */ 6454 struct hwrm_cfa_eem_cfg_input { 6455 __le16 req_type; 6456 __le16 cmpl_ring; 6457 __le16 seq_id; 6458 __le16 target_id; 6459 __le64 resp_addr; 6460 __le32 flags; 6461 #define CFA_EEM_CFG_REQ_FLAGS_PATH_TX 0x1UL 6462 #define CFA_EEM_CFG_REQ_FLAGS_PATH_RX 0x2UL 6463 #define CFA_EEM_CFG_REQ_FLAGS_PREFERRED_OFFLOAD 0x4UL 6464 #define CFA_EEM_CFG_REQ_FLAGS_SECONDARY_PF 0x8UL 6465 __le16 group_id; 6466 __le16 unused_0; 6467 __le32 num_entries; 6468 __le32 unused_1; 6469 __le16 key0_ctx_id; 6470 __le16 key1_ctx_id; 6471 __le16 record_ctx_id; 6472 __le16 efc_ctx_id; 6473 __le16 fid_ctx_id; 6474 __le16 unused_2; 6475 __le32 unused_3; 6476 }; 6477 6478 /* hwrm_cfa_eem_cfg_output (size:128b/16B) */ 6479 struct hwrm_cfa_eem_cfg_output { 6480 __le16 error_code; 6481 __le16 req_type; 6482 __le16 seq_id; 6483 __le16 resp_len; 6484 u8 unused_0[7]; 6485 u8 valid; 6486 }; 6487 6488 /* hwrm_cfa_eem_qcfg_input (size:192b/24B) */ 6489 struct hwrm_cfa_eem_qcfg_input { 6490 __le16 req_type; 6491 __le16 cmpl_ring; 6492 __le16 seq_id; 6493 __le16 target_id; 6494 __le64 resp_addr; 6495 __le32 flags; 6496 #define CFA_EEM_QCFG_REQ_FLAGS_PATH_TX 0x1UL 6497 #define CFA_EEM_QCFG_REQ_FLAGS_PATH_RX 0x2UL 6498 __le32 unused_0; 6499 }; 6500 6501 /* hwrm_cfa_eem_qcfg_output (size:256b/32B) */ 6502 struct hwrm_cfa_eem_qcfg_output { 6503 __le16 error_code; 6504 __le16 req_type; 6505 __le16 seq_id; 6506 __le16 resp_len; 6507 __le32 flags; 6508 #define CFA_EEM_QCFG_RESP_FLAGS_PATH_TX 0x1UL 6509 #define CFA_EEM_QCFG_RESP_FLAGS_PATH_RX 0x2UL 6510 #define CFA_EEM_QCFG_RESP_FLAGS_PREFERRED_OFFLOAD 0x4UL 6511 __le32 num_entries; 6512 __le16 key0_ctx_id; 6513 __le16 key1_ctx_id; 6514 __le16 record_ctx_id; 6515 __le16 efc_ctx_id; 6516 __le16 fid_ctx_id; 6517 u8 unused_2[5]; 6518 u8 valid; 6519 }; 6520 6521 /* hwrm_cfa_eem_op_input (size:192b/24B) */ 6522 struct hwrm_cfa_eem_op_input { 6523 __le16 req_type; 6524 __le16 cmpl_ring; 6525 __le16 seq_id; 6526 __le16 target_id; 6527 __le64 resp_addr; 6528 __le32 flags; 6529 #define CFA_EEM_OP_REQ_FLAGS_PATH_TX 0x1UL 6530 #define CFA_EEM_OP_REQ_FLAGS_PATH_RX 0x2UL 6531 __le16 unused_0; 6532 __le16 op; 6533 #define CFA_EEM_OP_REQ_OP_RESERVED 0x0UL 6534 #define CFA_EEM_OP_REQ_OP_EEM_DISABLE 0x1UL 6535 #define CFA_EEM_OP_REQ_OP_EEM_ENABLE 0x2UL 6536 #define CFA_EEM_OP_REQ_OP_EEM_CLEANUP 0x3UL 6537 #define CFA_EEM_OP_REQ_OP_LAST CFA_EEM_OP_REQ_OP_EEM_CLEANUP 6538 }; 6539 6540 /* hwrm_cfa_eem_op_output (size:128b/16B) */ 6541 struct hwrm_cfa_eem_op_output { 6542 __le16 error_code; 6543 __le16 req_type; 6544 __le16 seq_id; 6545 __le16 resp_len; 6546 u8 unused_0[7]; 6547 u8 valid; 6548 }; 6549 6550 /* hwrm_cfa_adv_flow_mgnt_qcaps_input (size:256b/32B) */ 6551 struct hwrm_cfa_adv_flow_mgnt_qcaps_input { 6552 __le16 req_type; 6553 __le16 cmpl_ring; 6554 __le16 seq_id; 6555 __le16 target_id; 6556 __le64 resp_addr; 6557 __le32 unused_0[4]; 6558 }; 6559 6560 /* hwrm_cfa_adv_flow_mgnt_qcaps_output (size:128b/16B) */ 6561 struct hwrm_cfa_adv_flow_mgnt_qcaps_output { 6562 __le16 error_code; 6563 __le16 req_type; 6564 __le16 seq_id; 6565 __le16 resp_len; 6566 __le32 flags; 6567 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_HND_16BIT_SUPPORTED 0x1UL 6568 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_HND_64BIT_SUPPORTED 0x2UL 6569 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_BATCH_DELETE_SUPPORTED 0x4UL 6570 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_RESET_ALL_SUPPORTED 0x8UL 6571 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_NTUPLE_FLOW_DEST_FUNC_SUPPORTED 0x10UL 6572 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_TX_EEM_FLOW_SUPPORTED 0x20UL 6573 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_RX_EEM_FLOW_SUPPORTED 0x40UL 6574 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_COUNTER_ALLOC_SUPPORTED 0x80UL 6575 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_RFS_RING_TBL_IDX_SUPPORTED 0x100UL 6576 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_UNTAGGED_VLAN_SUPPORTED 0x200UL 6577 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_XDP_SUPPORTED 0x400UL 6578 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_L2_HEADER_SOURCE_FIELDS_SUPPORTED 0x800UL 6579 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_NTUPLE_FLOW_RX_ARP_SUPPORTED 0x1000UL 6580 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_RFS_RING_TBL_IDX_V2_SUPPORTED 0x2000UL 6581 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_NTUPLE_FLOW_RX_ETHERTYPE_IP_SUPPORTED 0x4000UL 6582 u8 unused_0[3]; 6583 u8 valid; 6584 }; 6585 6586 /* hwrm_tunnel_dst_port_query_input (size:192b/24B) */ 6587 struct hwrm_tunnel_dst_port_query_input { 6588 __le16 req_type; 6589 __le16 cmpl_ring; 6590 __le16 seq_id; 6591 __le16 target_id; 6592 __le64 resp_addr; 6593 u8 tunnel_type; 6594 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN 0x1UL 6595 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_GENEVE 0x5UL 6596 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 6597 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 6598 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 6599 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 6600 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_LAST TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 6601 u8 unused_0[7]; 6602 }; 6603 6604 /* hwrm_tunnel_dst_port_query_output (size:128b/16B) */ 6605 struct hwrm_tunnel_dst_port_query_output { 6606 __le16 error_code; 6607 __le16 req_type; 6608 __le16 seq_id; 6609 __le16 resp_len; 6610 __le16 tunnel_dst_port_id; 6611 __be16 tunnel_dst_port_val; 6612 u8 unused_0[3]; 6613 u8 valid; 6614 }; 6615 6616 /* hwrm_tunnel_dst_port_alloc_input (size:192b/24B) */ 6617 struct hwrm_tunnel_dst_port_alloc_input { 6618 __le16 req_type; 6619 __le16 cmpl_ring; 6620 __le16 seq_id; 6621 __le16 target_id; 6622 __le64 resp_addr; 6623 u8 tunnel_type; 6624 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL 6625 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL 6626 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 6627 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 6628 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 6629 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 6630 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_LAST TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 6631 u8 unused_0; 6632 __be16 tunnel_dst_port_val; 6633 u8 unused_1[4]; 6634 }; 6635 6636 /* hwrm_tunnel_dst_port_alloc_output (size:128b/16B) */ 6637 struct hwrm_tunnel_dst_port_alloc_output { 6638 __le16 error_code; 6639 __le16 req_type; 6640 __le16 seq_id; 6641 __le16 resp_len; 6642 __le16 tunnel_dst_port_id; 6643 u8 unused_0[5]; 6644 u8 valid; 6645 }; 6646 6647 /* hwrm_tunnel_dst_port_free_input (size:192b/24B) */ 6648 struct hwrm_tunnel_dst_port_free_input { 6649 __le16 req_type; 6650 __le16 cmpl_ring; 6651 __le16 seq_id; 6652 __le16 target_id; 6653 __le64 resp_addr; 6654 u8 tunnel_type; 6655 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN 0x1UL 6656 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_GENEVE 0x5UL 6657 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 6658 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 6659 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 6660 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 6661 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_LAST TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 6662 u8 unused_0; 6663 __le16 tunnel_dst_port_id; 6664 u8 unused_1[4]; 6665 }; 6666 6667 /* hwrm_tunnel_dst_port_free_output (size:128b/16B) */ 6668 struct hwrm_tunnel_dst_port_free_output { 6669 __le16 error_code; 6670 __le16 req_type; 6671 __le16 seq_id; 6672 __le16 resp_len; 6673 u8 unused_1[7]; 6674 u8 valid; 6675 }; 6676 6677 /* ctx_hw_stats (size:1280b/160B) */ 6678 struct ctx_hw_stats { 6679 __le64 rx_ucast_pkts; 6680 __le64 rx_mcast_pkts; 6681 __le64 rx_bcast_pkts; 6682 __le64 rx_discard_pkts; 6683 __le64 rx_drop_pkts; 6684 __le64 rx_ucast_bytes; 6685 __le64 rx_mcast_bytes; 6686 __le64 rx_bcast_bytes; 6687 __le64 tx_ucast_pkts; 6688 __le64 tx_mcast_pkts; 6689 __le64 tx_bcast_pkts; 6690 __le64 tx_discard_pkts; 6691 __le64 tx_drop_pkts; 6692 __le64 tx_ucast_bytes; 6693 __le64 tx_mcast_bytes; 6694 __le64 tx_bcast_bytes; 6695 __le64 tpa_pkts; 6696 __le64 tpa_bytes; 6697 __le64 tpa_events; 6698 __le64 tpa_aborts; 6699 }; 6700 6701 /* ctx_hw_stats_ext (size:1344b/168B) */ 6702 struct ctx_hw_stats_ext { 6703 __le64 rx_ucast_pkts; 6704 __le64 rx_mcast_pkts; 6705 __le64 rx_bcast_pkts; 6706 __le64 rx_discard_pkts; 6707 __le64 rx_drop_pkts; 6708 __le64 rx_ucast_bytes; 6709 __le64 rx_mcast_bytes; 6710 __le64 rx_bcast_bytes; 6711 __le64 tx_ucast_pkts; 6712 __le64 tx_mcast_pkts; 6713 __le64 tx_bcast_pkts; 6714 __le64 tx_discard_pkts; 6715 __le64 tx_drop_pkts; 6716 __le64 tx_ucast_bytes; 6717 __le64 tx_mcast_bytes; 6718 __le64 tx_bcast_bytes; 6719 __le64 rx_tpa_eligible_pkt; 6720 __le64 rx_tpa_eligible_bytes; 6721 __le64 rx_tpa_pkt; 6722 __le64 rx_tpa_bytes; 6723 __le64 rx_tpa_errors; 6724 }; 6725 6726 /* hwrm_stat_ctx_alloc_input (size:256b/32B) */ 6727 struct hwrm_stat_ctx_alloc_input { 6728 __le16 req_type; 6729 __le16 cmpl_ring; 6730 __le16 seq_id; 6731 __le16 target_id; 6732 __le64 resp_addr; 6733 __le64 stats_dma_addr; 6734 __le32 update_period_ms; 6735 u8 stat_ctx_flags; 6736 #define STAT_CTX_ALLOC_REQ_STAT_CTX_FLAGS_ROCE 0x1UL 6737 u8 unused_0; 6738 __le16 stats_dma_length; 6739 }; 6740 6741 /* hwrm_stat_ctx_alloc_output (size:128b/16B) */ 6742 struct hwrm_stat_ctx_alloc_output { 6743 __le16 error_code; 6744 __le16 req_type; 6745 __le16 seq_id; 6746 __le16 resp_len; 6747 __le32 stat_ctx_id; 6748 u8 unused_0[3]; 6749 u8 valid; 6750 }; 6751 6752 /* hwrm_stat_ctx_free_input (size:192b/24B) */ 6753 struct hwrm_stat_ctx_free_input { 6754 __le16 req_type; 6755 __le16 cmpl_ring; 6756 __le16 seq_id; 6757 __le16 target_id; 6758 __le64 resp_addr; 6759 __le32 stat_ctx_id; 6760 u8 unused_0[4]; 6761 }; 6762 6763 /* hwrm_stat_ctx_free_output (size:128b/16B) */ 6764 struct hwrm_stat_ctx_free_output { 6765 __le16 error_code; 6766 __le16 req_type; 6767 __le16 seq_id; 6768 __le16 resp_len; 6769 __le32 stat_ctx_id; 6770 u8 unused_0[3]; 6771 u8 valid; 6772 }; 6773 6774 /* hwrm_stat_ctx_query_input (size:192b/24B) */ 6775 struct hwrm_stat_ctx_query_input { 6776 __le16 req_type; 6777 __le16 cmpl_ring; 6778 __le16 seq_id; 6779 __le16 target_id; 6780 __le64 resp_addr; 6781 __le32 stat_ctx_id; 6782 u8 unused_0[4]; 6783 }; 6784 6785 /* hwrm_stat_ctx_query_output (size:1408b/176B) */ 6786 struct hwrm_stat_ctx_query_output { 6787 __le16 error_code; 6788 __le16 req_type; 6789 __le16 seq_id; 6790 __le16 resp_len; 6791 __le64 tx_ucast_pkts; 6792 __le64 tx_mcast_pkts; 6793 __le64 tx_bcast_pkts; 6794 __le64 tx_err_pkts; 6795 __le64 tx_drop_pkts; 6796 __le64 tx_ucast_bytes; 6797 __le64 tx_mcast_bytes; 6798 __le64 tx_bcast_bytes; 6799 __le64 rx_ucast_pkts; 6800 __le64 rx_mcast_pkts; 6801 __le64 rx_bcast_pkts; 6802 __le64 rx_err_pkts; 6803 __le64 rx_drop_pkts; 6804 __le64 rx_ucast_bytes; 6805 __le64 rx_mcast_bytes; 6806 __le64 rx_bcast_bytes; 6807 __le64 rx_agg_pkts; 6808 __le64 rx_agg_bytes; 6809 __le64 rx_agg_events; 6810 __le64 rx_agg_aborts; 6811 u8 unused_0[7]; 6812 u8 valid; 6813 }; 6814 6815 /* hwrm_stat_ctx_clr_stats_input (size:192b/24B) */ 6816 struct hwrm_stat_ctx_clr_stats_input { 6817 __le16 req_type; 6818 __le16 cmpl_ring; 6819 __le16 seq_id; 6820 __le16 target_id; 6821 __le64 resp_addr; 6822 __le32 stat_ctx_id; 6823 u8 unused_0[4]; 6824 }; 6825 6826 /* hwrm_stat_ctx_clr_stats_output (size:128b/16B) */ 6827 struct hwrm_stat_ctx_clr_stats_output { 6828 __le16 error_code; 6829 __le16 req_type; 6830 __le16 seq_id; 6831 __le16 resp_len; 6832 u8 unused_0[7]; 6833 u8 valid; 6834 }; 6835 6836 /* hwrm_pcie_qstats_input (size:256b/32B) */ 6837 struct hwrm_pcie_qstats_input { 6838 __le16 req_type; 6839 __le16 cmpl_ring; 6840 __le16 seq_id; 6841 __le16 target_id; 6842 __le64 resp_addr; 6843 __le16 pcie_stat_size; 6844 u8 unused_0[6]; 6845 __le64 pcie_stat_host_addr; 6846 }; 6847 6848 /* hwrm_pcie_qstats_output (size:128b/16B) */ 6849 struct hwrm_pcie_qstats_output { 6850 __le16 error_code; 6851 __le16 req_type; 6852 __le16 seq_id; 6853 __le16 resp_len; 6854 __le16 pcie_stat_size; 6855 u8 unused_0[5]; 6856 u8 valid; 6857 }; 6858 6859 /* pcie_ctx_hw_stats (size:768b/96B) */ 6860 struct pcie_ctx_hw_stats { 6861 __le64 pcie_pl_signal_integrity; 6862 __le64 pcie_dl_signal_integrity; 6863 __le64 pcie_tl_signal_integrity; 6864 __le64 pcie_link_integrity; 6865 __le64 pcie_tx_traffic_rate; 6866 __le64 pcie_rx_traffic_rate; 6867 __le64 pcie_tx_dllp_statistics; 6868 __le64 pcie_rx_dllp_statistics; 6869 __le64 pcie_equalization_time; 6870 __le32 pcie_ltssm_histogram[4]; 6871 __le64 pcie_recovery_histogram; 6872 }; 6873 6874 /* hwrm_fw_reset_input (size:192b/24B) */ 6875 struct hwrm_fw_reset_input { 6876 __le16 req_type; 6877 __le16 cmpl_ring; 6878 __le16 seq_id; 6879 __le16 target_id; 6880 __le64 resp_addr; 6881 u8 embedded_proc_type; 6882 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_BOOT 0x0UL 6883 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_MGMT 0x1UL 6884 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_NETCTRL 0x2UL 6885 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_ROCE 0x3UL 6886 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_HOST 0x4UL 6887 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_AP 0x5UL 6888 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_CHIP 0x6UL 6889 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_HOST_RESOURCE_REINIT 0x7UL 6890 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_IMPACTLESS_ACTIVATION 0x8UL 6891 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_LAST FW_RESET_REQ_EMBEDDED_PROC_TYPE_IMPACTLESS_ACTIVATION 6892 u8 selfrst_status; 6893 #define FW_RESET_REQ_SELFRST_STATUS_SELFRSTNONE 0x0UL 6894 #define FW_RESET_REQ_SELFRST_STATUS_SELFRSTASAP 0x1UL 6895 #define FW_RESET_REQ_SELFRST_STATUS_SELFRSTPCIERST 0x2UL 6896 #define FW_RESET_REQ_SELFRST_STATUS_SELFRSTIMMEDIATE 0x3UL 6897 #define FW_RESET_REQ_SELFRST_STATUS_LAST FW_RESET_REQ_SELFRST_STATUS_SELFRSTIMMEDIATE 6898 u8 host_idx; 6899 u8 flags; 6900 #define FW_RESET_REQ_FLAGS_RESET_GRACEFUL 0x1UL 6901 u8 unused_0[4]; 6902 }; 6903 6904 /* hwrm_fw_reset_output (size:128b/16B) */ 6905 struct hwrm_fw_reset_output { 6906 __le16 error_code; 6907 __le16 req_type; 6908 __le16 seq_id; 6909 __le16 resp_len; 6910 u8 selfrst_status; 6911 #define FW_RESET_RESP_SELFRST_STATUS_SELFRSTNONE 0x0UL 6912 #define FW_RESET_RESP_SELFRST_STATUS_SELFRSTASAP 0x1UL 6913 #define FW_RESET_RESP_SELFRST_STATUS_SELFRSTPCIERST 0x2UL 6914 #define FW_RESET_RESP_SELFRST_STATUS_SELFRSTIMMEDIATE 0x3UL 6915 #define FW_RESET_RESP_SELFRST_STATUS_LAST FW_RESET_RESP_SELFRST_STATUS_SELFRSTIMMEDIATE 6916 u8 unused_0[6]; 6917 u8 valid; 6918 }; 6919 6920 /* hwrm_fw_qstatus_input (size:192b/24B) */ 6921 struct hwrm_fw_qstatus_input { 6922 __le16 req_type; 6923 __le16 cmpl_ring; 6924 __le16 seq_id; 6925 __le16 target_id; 6926 __le64 resp_addr; 6927 u8 embedded_proc_type; 6928 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_BOOT 0x0UL 6929 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_MGMT 0x1UL 6930 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_NETCTRL 0x2UL 6931 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_ROCE 0x3UL 6932 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_HOST 0x4UL 6933 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_AP 0x5UL 6934 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_CHIP 0x6UL 6935 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_LAST FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_CHIP 6936 u8 unused_0[7]; 6937 }; 6938 6939 /* hwrm_fw_qstatus_output (size:128b/16B) */ 6940 struct hwrm_fw_qstatus_output { 6941 __le16 error_code; 6942 __le16 req_type; 6943 __le16 seq_id; 6944 __le16 resp_len; 6945 u8 selfrst_status; 6946 #define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTNONE 0x0UL 6947 #define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTASAP 0x1UL 6948 #define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTPCIERST 0x2UL 6949 #define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTPOWER 0x3UL 6950 #define FW_QSTATUS_RESP_SELFRST_STATUS_LAST FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTPOWER 6951 u8 unused_0[6]; 6952 u8 valid; 6953 }; 6954 6955 /* hwrm_fw_set_time_input (size:256b/32B) */ 6956 struct hwrm_fw_set_time_input { 6957 __le16 req_type; 6958 __le16 cmpl_ring; 6959 __le16 seq_id; 6960 __le16 target_id; 6961 __le64 resp_addr; 6962 __le16 year; 6963 #define FW_SET_TIME_REQ_YEAR_UNKNOWN 0x0UL 6964 #define FW_SET_TIME_REQ_YEAR_LAST FW_SET_TIME_REQ_YEAR_UNKNOWN 6965 u8 month; 6966 u8 day; 6967 u8 hour; 6968 u8 minute; 6969 u8 second; 6970 u8 unused_0; 6971 __le16 millisecond; 6972 __le16 zone; 6973 #define FW_SET_TIME_REQ_ZONE_UTC 0 6974 #define FW_SET_TIME_REQ_ZONE_UNKNOWN 65535 6975 #define FW_SET_TIME_REQ_ZONE_LAST FW_SET_TIME_REQ_ZONE_UNKNOWN 6976 u8 unused_1[4]; 6977 }; 6978 6979 /* hwrm_fw_set_time_output (size:128b/16B) */ 6980 struct hwrm_fw_set_time_output { 6981 __le16 error_code; 6982 __le16 req_type; 6983 __le16 seq_id; 6984 __le16 resp_len; 6985 u8 unused_0[7]; 6986 u8 valid; 6987 }; 6988 6989 /* hwrm_struct_hdr (size:128b/16B) */ 6990 struct hwrm_struct_hdr { 6991 __le16 struct_id; 6992 #define STRUCT_HDR_STRUCT_ID_LLDP_CFG 0x41bUL 6993 #define STRUCT_HDR_STRUCT_ID_DCBX_ETS 0x41dUL 6994 #define STRUCT_HDR_STRUCT_ID_DCBX_PFC 0x41fUL 6995 #define STRUCT_HDR_STRUCT_ID_DCBX_APP 0x421UL 6996 #define STRUCT_HDR_STRUCT_ID_DCBX_FEATURE_STATE 0x422UL 6997 #define STRUCT_HDR_STRUCT_ID_LLDP_GENERIC 0x424UL 6998 #define STRUCT_HDR_STRUCT_ID_LLDP_DEVICE 0x426UL 6999 #define STRUCT_HDR_STRUCT_ID_POWER_BKUP 0x427UL 7000 #define STRUCT_HDR_STRUCT_ID_AFM_OPAQUE 0x1UL 7001 #define STRUCT_HDR_STRUCT_ID_PORT_DESCRIPTION 0xaUL 7002 #define STRUCT_HDR_STRUCT_ID_RSS_V2 0x64UL 7003 #define STRUCT_HDR_STRUCT_ID_LAST STRUCT_HDR_STRUCT_ID_RSS_V2 7004 __le16 len; 7005 u8 version; 7006 u8 count; 7007 __le16 subtype; 7008 __le16 next_offset; 7009 #define STRUCT_HDR_NEXT_OFFSET_LAST 0x0UL 7010 u8 unused_0[6]; 7011 }; 7012 7013 /* hwrm_struct_data_dcbx_app (size:64b/8B) */ 7014 struct hwrm_struct_data_dcbx_app { 7015 __be16 protocol_id; 7016 u8 protocol_selector; 7017 #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_ETHER_TYPE 0x1UL 7018 #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_TCP_PORT 0x2UL 7019 #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_UDP_PORT 0x3UL 7020 #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_TCP_UDP_PORT 0x4UL 7021 #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_LAST STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_TCP_UDP_PORT 7022 u8 priority; 7023 u8 valid; 7024 u8 unused_0[3]; 7025 }; 7026 7027 /* hwrm_fw_set_structured_data_input (size:256b/32B) */ 7028 struct hwrm_fw_set_structured_data_input { 7029 __le16 req_type; 7030 __le16 cmpl_ring; 7031 __le16 seq_id; 7032 __le16 target_id; 7033 __le64 resp_addr; 7034 __le64 src_data_addr; 7035 __le16 data_len; 7036 u8 hdr_cnt; 7037 u8 unused_0[5]; 7038 }; 7039 7040 /* hwrm_fw_set_structured_data_output (size:128b/16B) */ 7041 struct hwrm_fw_set_structured_data_output { 7042 __le16 error_code; 7043 __le16 req_type; 7044 __le16 seq_id; 7045 __le16 resp_len; 7046 u8 unused_0[7]; 7047 u8 valid; 7048 }; 7049 7050 /* hwrm_fw_set_structured_data_cmd_err (size:64b/8B) */ 7051 struct hwrm_fw_set_structured_data_cmd_err { 7052 u8 code; 7053 #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_UNKNOWN 0x0UL 7054 #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_HDR_CNT 0x1UL 7055 #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_FMT 0x2UL 7056 #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID 0x3UL 7057 #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_LAST FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID 7058 u8 unused_0[7]; 7059 }; 7060 7061 /* hwrm_fw_get_structured_data_input (size:256b/32B) */ 7062 struct hwrm_fw_get_structured_data_input { 7063 __le16 req_type; 7064 __le16 cmpl_ring; 7065 __le16 seq_id; 7066 __le16 target_id; 7067 __le64 resp_addr; 7068 __le64 dest_data_addr; 7069 __le16 data_len; 7070 __le16 structure_id; 7071 __le16 subtype; 7072 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_UNUSED 0x0UL 7073 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_ALL 0xffffUL 7074 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_ADMIN 0x100UL 7075 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_PEER 0x101UL 7076 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_OPERATIONAL 0x102UL 7077 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_ADMIN 0x200UL 7078 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_PEER 0x201UL 7079 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_OPERATIONAL 0x202UL 7080 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_HOST_OPERATIONAL 0x300UL 7081 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_LAST FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_HOST_OPERATIONAL 7082 u8 count; 7083 u8 unused_0; 7084 }; 7085 7086 /* hwrm_fw_get_structured_data_output (size:128b/16B) */ 7087 struct hwrm_fw_get_structured_data_output { 7088 __le16 error_code; 7089 __le16 req_type; 7090 __le16 seq_id; 7091 __le16 resp_len; 7092 u8 hdr_cnt; 7093 u8 unused_0[6]; 7094 u8 valid; 7095 }; 7096 7097 /* hwrm_fw_get_structured_data_cmd_err (size:64b/8B) */ 7098 struct hwrm_fw_get_structured_data_cmd_err { 7099 u8 code; 7100 #define FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_UNKNOWN 0x0UL 7101 #define FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID 0x3UL 7102 #define FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_LAST FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID 7103 u8 unused_0[7]; 7104 }; 7105 7106 /* hwrm_exec_fwd_resp_input (size:1024b/128B) */ 7107 struct hwrm_exec_fwd_resp_input { 7108 __le16 req_type; 7109 __le16 cmpl_ring; 7110 __le16 seq_id; 7111 __le16 target_id; 7112 __le64 resp_addr; 7113 __le32 encap_request[26]; 7114 __le16 encap_resp_target_id; 7115 u8 unused_0[6]; 7116 }; 7117 7118 /* hwrm_exec_fwd_resp_output (size:128b/16B) */ 7119 struct hwrm_exec_fwd_resp_output { 7120 __le16 error_code; 7121 __le16 req_type; 7122 __le16 seq_id; 7123 __le16 resp_len; 7124 u8 unused_0[7]; 7125 u8 valid; 7126 }; 7127 7128 /* hwrm_reject_fwd_resp_input (size:1024b/128B) */ 7129 struct hwrm_reject_fwd_resp_input { 7130 __le16 req_type; 7131 __le16 cmpl_ring; 7132 __le16 seq_id; 7133 __le16 target_id; 7134 __le64 resp_addr; 7135 __le32 encap_request[26]; 7136 __le16 encap_resp_target_id; 7137 u8 unused_0[6]; 7138 }; 7139 7140 /* hwrm_reject_fwd_resp_output (size:128b/16B) */ 7141 struct hwrm_reject_fwd_resp_output { 7142 __le16 error_code; 7143 __le16 req_type; 7144 __le16 seq_id; 7145 __le16 resp_len; 7146 u8 unused_0[7]; 7147 u8 valid; 7148 }; 7149 7150 /* hwrm_fwd_resp_input (size:1024b/128B) */ 7151 struct hwrm_fwd_resp_input { 7152 __le16 req_type; 7153 __le16 cmpl_ring; 7154 __le16 seq_id; 7155 __le16 target_id; 7156 __le64 resp_addr; 7157 __le16 encap_resp_target_id; 7158 __le16 encap_resp_cmpl_ring; 7159 __le16 encap_resp_len; 7160 u8 unused_0; 7161 u8 unused_1; 7162 __le64 encap_resp_addr; 7163 __le32 encap_resp[24]; 7164 }; 7165 7166 /* hwrm_fwd_resp_output (size:128b/16B) */ 7167 struct hwrm_fwd_resp_output { 7168 __le16 error_code; 7169 __le16 req_type; 7170 __le16 seq_id; 7171 __le16 resp_len; 7172 u8 unused_0[7]; 7173 u8 valid; 7174 }; 7175 7176 /* hwrm_fwd_async_event_cmpl_input (size:320b/40B) */ 7177 struct hwrm_fwd_async_event_cmpl_input { 7178 __le16 req_type; 7179 __le16 cmpl_ring; 7180 __le16 seq_id; 7181 __le16 target_id; 7182 __le64 resp_addr; 7183 __le16 encap_async_event_target_id; 7184 u8 unused_0[6]; 7185 __le32 encap_async_event_cmpl[4]; 7186 }; 7187 7188 /* hwrm_fwd_async_event_cmpl_output (size:128b/16B) */ 7189 struct hwrm_fwd_async_event_cmpl_output { 7190 __le16 error_code; 7191 __le16 req_type; 7192 __le16 seq_id; 7193 __le16 resp_len; 7194 u8 unused_0[7]; 7195 u8 valid; 7196 }; 7197 7198 /* hwrm_temp_monitor_query_input (size:128b/16B) */ 7199 struct hwrm_temp_monitor_query_input { 7200 __le16 req_type; 7201 __le16 cmpl_ring; 7202 __le16 seq_id; 7203 __le16 target_id; 7204 __le64 resp_addr; 7205 }; 7206 7207 /* hwrm_temp_monitor_query_output (size:128b/16B) */ 7208 struct hwrm_temp_monitor_query_output { 7209 __le16 error_code; 7210 __le16 req_type; 7211 __le16 seq_id; 7212 __le16 resp_len; 7213 u8 temp; 7214 u8 phy_temp; 7215 u8 om_temp; 7216 u8 flags; 7217 #define TEMP_MONITOR_QUERY_RESP_FLAGS_TEMP_NOT_AVAILABLE 0x1UL 7218 #define TEMP_MONITOR_QUERY_RESP_FLAGS_PHY_TEMP_NOT_AVAILABLE 0x2UL 7219 #define TEMP_MONITOR_QUERY_RESP_FLAGS_OM_NOT_PRESENT 0x4UL 7220 #define TEMP_MONITOR_QUERY_RESP_FLAGS_OM_TEMP_NOT_AVAILABLE 0x8UL 7221 u8 unused_0[3]; 7222 u8 valid; 7223 }; 7224 7225 /* hwrm_wol_filter_alloc_input (size:512b/64B) */ 7226 struct hwrm_wol_filter_alloc_input { 7227 __le16 req_type; 7228 __le16 cmpl_ring; 7229 __le16 seq_id; 7230 __le16 target_id; 7231 __le64 resp_addr; 7232 __le32 flags; 7233 __le32 enables; 7234 #define WOL_FILTER_ALLOC_REQ_ENABLES_MAC_ADDRESS 0x1UL 7235 #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_OFFSET 0x2UL 7236 #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_BUF_SIZE 0x4UL 7237 #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_BUF_ADDR 0x8UL 7238 #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_MASK_ADDR 0x10UL 7239 #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_MASK_SIZE 0x20UL 7240 __le16 port_id; 7241 u8 wol_type; 7242 #define WOL_FILTER_ALLOC_REQ_WOL_TYPE_MAGICPKT 0x0UL 7243 #define WOL_FILTER_ALLOC_REQ_WOL_TYPE_BMP 0x1UL 7244 #define WOL_FILTER_ALLOC_REQ_WOL_TYPE_INVALID 0xffUL 7245 #define WOL_FILTER_ALLOC_REQ_WOL_TYPE_LAST WOL_FILTER_ALLOC_REQ_WOL_TYPE_INVALID 7246 u8 unused_0[5]; 7247 u8 mac_address[6]; 7248 __le16 pattern_offset; 7249 __le16 pattern_buf_size; 7250 __le16 pattern_mask_size; 7251 u8 unused_1[4]; 7252 __le64 pattern_buf_addr; 7253 __le64 pattern_mask_addr; 7254 }; 7255 7256 /* hwrm_wol_filter_alloc_output (size:128b/16B) */ 7257 struct hwrm_wol_filter_alloc_output { 7258 __le16 error_code; 7259 __le16 req_type; 7260 __le16 seq_id; 7261 __le16 resp_len; 7262 u8 wol_filter_id; 7263 u8 unused_0[6]; 7264 u8 valid; 7265 }; 7266 7267 /* hwrm_wol_filter_free_input (size:256b/32B) */ 7268 struct hwrm_wol_filter_free_input { 7269 __le16 req_type; 7270 __le16 cmpl_ring; 7271 __le16 seq_id; 7272 __le16 target_id; 7273 __le64 resp_addr; 7274 __le32 flags; 7275 #define WOL_FILTER_FREE_REQ_FLAGS_FREE_ALL_WOL_FILTERS 0x1UL 7276 __le32 enables; 7277 #define WOL_FILTER_FREE_REQ_ENABLES_WOL_FILTER_ID 0x1UL 7278 __le16 port_id; 7279 u8 wol_filter_id; 7280 u8 unused_0[5]; 7281 }; 7282 7283 /* hwrm_wol_filter_free_output (size:128b/16B) */ 7284 struct hwrm_wol_filter_free_output { 7285 __le16 error_code; 7286 __le16 req_type; 7287 __le16 seq_id; 7288 __le16 resp_len; 7289 u8 unused_0[7]; 7290 u8 valid; 7291 }; 7292 7293 /* hwrm_wol_filter_qcfg_input (size:448b/56B) */ 7294 struct hwrm_wol_filter_qcfg_input { 7295 __le16 req_type; 7296 __le16 cmpl_ring; 7297 __le16 seq_id; 7298 __le16 target_id; 7299 __le64 resp_addr; 7300 __le16 port_id; 7301 __le16 handle; 7302 u8 unused_0[4]; 7303 __le64 pattern_buf_addr; 7304 __le16 pattern_buf_size; 7305 u8 unused_1[6]; 7306 __le64 pattern_mask_addr; 7307 __le16 pattern_mask_size; 7308 u8 unused_2[6]; 7309 }; 7310 7311 /* hwrm_wol_filter_qcfg_output (size:256b/32B) */ 7312 struct hwrm_wol_filter_qcfg_output { 7313 __le16 error_code; 7314 __le16 req_type; 7315 __le16 seq_id; 7316 __le16 resp_len; 7317 __le16 next_handle; 7318 u8 wol_filter_id; 7319 u8 wol_type; 7320 #define WOL_FILTER_QCFG_RESP_WOL_TYPE_MAGICPKT 0x0UL 7321 #define WOL_FILTER_QCFG_RESP_WOL_TYPE_BMP 0x1UL 7322 #define WOL_FILTER_QCFG_RESP_WOL_TYPE_INVALID 0xffUL 7323 #define WOL_FILTER_QCFG_RESP_WOL_TYPE_LAST WOL_FILTER_QCFG_RESP_WOL_TYPE_INVALID 7324 __le32 unused_0; 7325 u8 mac_address[6]; 7326 __le16 pattern_offset; 7327 __le16 pattern_size; 7328 __le16 pattern_mask_size; 7329 u8 unused_1[3]; 7330 u8 valid; 7331 }; 7332 7333 /* hwrm_wol_reason_qcfg_input (size:320b/40B) */ 7334 struct hwrm_wol_reason_qcfg_input { 7335 __le16 req_type; 7336 __le16 cmpl_ring; 7337 __le16 seq_id; 7338 __le16 target_id; 7339 __le64 resp_addr; 7340 __le16 port_id; 7341 u8 unused_0[6]; 7342 __le64 wol_pkt_buf_addr; 7343 __le16 wol_pkt_buf_size; 7344 u8 unused_1[6]; 7345 }; 7346 7347 /* hwrm_wol_reason_qcfg_output (size:128b/16B) */ 7348 struct hwrm_wol_reason_qcfg_output { 7349 __le16 error_code; 7350 __le16 req_type; 7351 __le16 seq_id; 7352 __le16 resp_len; 7353 u8 wol_filter_id; 7354 u8 wol_reason; 7355 #define WOL_REASON_QCFG_RESP_WOL_REASON_MAGICPKT 0x0UL 7356 #define WOL_REASON_QCFG_RESP_WOL_REASON_BMP 0x1UL 7357 #define WOL_REASON_QCFG_RESP_WOL_REASON_INVALID 0xffUL 7358 #define WOL_REASON_QCFG_RESP_WOL_REASON_LAST WOL_REASON_QCFG_RESP_WOL_REASON_INVALID 7359 u8 wol_pkt_len; 7360 u8 unused_0[4]; 7361 u8 valid; 7362 }; 7363 7364 /* coredump_segment_record (size:128b/16B) */ 7365 struct coredump_segment_record { 7366 __le16 component_id; 7367 __le16 segment_id; 7368 __le16 max_instances; 7369 u8 version_hi; 7370 u8 version_low; 7371 u8 seg_flags; 7372 u8 compress_flags; 7373 #define SFLAG_COMPRESSED_ZLIB 0x1UL 7374 u8 unused_0[6]; 7375 }; 7376 7377 /* hwrm_dbg_coredump_list_input (size:256b/32B) */ 7378 struct hwrm_dbg_coredump_list_input { 7379 __le16 req_type; 7380 __le16 cmpl_ring; 7381 __le16 seq_id; 7382 __le16 target_id; 7383 __le64 resp_addr; 7384 __le64 host_dest_addr; 7385 __le32 host_buf_len; 7386 __le16 seq_no; 7387 u8 flags; 7388 #define DBG_COREDUMP_LIST_REQ_FLAGS_CRASHDUMP 0x1UL 7389 u8 unused_0[1]; 7390 }; 7391 7392 /* hwrm_dbg_coredump_list_output (size:128b/16B) */ 7393 struct hwrm_dbg_coredump_list_output { 7394 __le16 error_code; 7395 __le16 req_type; 7396 __le16 seq_id; 7397 __le16 resp_len; 7398 u8 flags; 7399 #define DBG_COREDUMP_LIST_RESP_FLAGS_MORE 0x1UL 7400 u8 unused_0; 7401 __le16 total_segments; 7402 __le16 data_len; 7403 u8 unused_1; 7404 u8 valid; 7405 }; 7406 7407 /* hwrm_dbg_coredump_initiate_input (size:256b/32B) */ 7408 struct hwrm_dbg_coredump_initiate_input { 7409 __le16 req_type; 7410 __le16 cmpl_ring; 7411 __le16 seq_id; 7412 __le16 target_id; 7413 __le64 resp_addr; 7414 __le16 component_id; 7415 __le16 segment_id; 7416 __le16 instance; 7417 __le16 unused_0; 7418 u8 seg_flags; 7419 u8 unused_1[7]; 7420 }; 7421 7422 /* hwrm_dbg_coredump_initiate_output (size:128b/16B) */ 7423 struct hwrm_dbg_coredump_initiate_output { 7424 __le16 error_code; 7425 __le16 req_type; 7426 __le16 seq_id; 7427 __le16 resp_len; 7428 u8 unused_0[7]; 7429 u8 valid; 7430 }; 7431 7432 /* coredump_data_hdr (size:128b/16B) */ 7433 struct coredump_data_hdr { 7434 __le32 address; 7435 __le32 flags_length; 7436 __le32 instance; 7437 __le32 next_offset; 7438 }; 7439 7440 /* hwrm_dbg_coredump_retrieve_input (size:448b/56B) */ 7441 struct hwrm_dbg_coredump_retrieve_input { 7442 __le16 req_type; 7443 __le16 cmpl_ring; 7444 __le16 seq_id; 7445 __le16 target_id; 7446 __le64 resp_addr; 7447 __le64 host_dest_addr; 7448 __le32 host_buf_len; 7449 __le32 unused_0; 7450 __le16 component_id; 7451 __le16 segment_id; 7452 __le16 instance; 7453 __le16 unused_1; 7454 u8 seg_flags; 7455 u8 unused_2; 7456 __le16 unused_3; 7457 __le32 unused_4; 7458 __le32 seq_no; 7459 __le32 unused_5; 7460 }; 7461 7462 /* hwrm_dbg_coredump_retrieve_output (size:128b/16B) */ 7463 struct hwrm_dbg_coredump_retrieve_output { 7464 __le16 error_code; 7465 __le16 req_type; 7466 __le16 seq_id; 7467 __le16 resp_len; 7468 u8 flags; 7469 #define DBG_COREDUMP_RETRIEVE_RESP_FLAGS_MORE 0x1UL 7470 u8 unused_0; 7471 __le16 data_len; 7472 u8 unused_1[3]; 7473 u8 valid; 7474 }; 7475 7476 /* hwrm_dbg_ring_info_get_input (size:192b/24B) */ 7477 struct hwrm_dbg_ring_info_get_input { 7478 __le16 req_type; 7479 __le16 cmpl_ring; 7480 __le16 seq_id; 7481 __le16 target_id; 7482 __le64 resp_addr; 7483 u8 ring_type; 7484 #define DBG_RING_INFO_GET_REQ_RING_TYPE_L2_CMPL 0x0UL 7485 #define DBG_RING_INFO_GET_REQ_RING_TYPE_TX 0x1UL 7486 #define DBG_RING_INFO_GET_REQ_RING_TYPE_RX 0x2UL 7487 #define DBG_RING_INFO_GET_REQ_RING_TYPE_LAST DBG_RING_INFO_GET_REQ_RING_TYPE_RX 7488 u8 unused_0[3]; 7489 __le32 fw_ring_id; 7490 }; 7491 7492 /* hwrm_dbg_ring_info_get_output (size:192b/24B) */ 7493 struct hwrm_dbg_ring_info_get_output { 7494 __le16 error_code; 7495 __le16 req_type; 7496 __le16 seq_id; 7497 __le16 resp_len; 7498 __le32 producer_index; 7499 __le32 consumer_index; 7500 u8 unused_0[7]; 7501 u8 valid; 7502 }; 7503 7504 /* hwrm_nvm_read_input (size:320b/40B) */ 7505 struct hwrm_nvm_read_input { 7506 __le16 req_type; 7507 __le16 cmpl_ring; 7508 __le16 seq_id; 7509 __le16 target_id; 7510 __le64 resp_addr; 7511 __le64 host_dest_addr; 7512 __le16 dir_idx; 7513 u8 unused_0[2]; 7514 __le32 offset; 7515 __le32 len; 7516 u8 unused_1[4]; 7517 }; 7518 7519 /* hwrm_nvm_read_output (size:128b/16B) */ 7520 struct hwrm_nvm_read_output { 7521 __le16 error_code; 7522 __le16 req_type; 7523 __le16 seq_id; 7524 __le16 resp_len; 7525 u8 unused_0[7]; 7526 u8 valid; 7527 }; 7528 7529 /* hwrm_nvm_get_dir_entries_input (size:192b/24B) */ 7530 struct hwrm_nvm_get_dir_entries_input { 7531 __le16 req_type; 7532 __le16 cmpl_ring; 7533 __le16 seq_id; 7534 __le16 target_id; 7535 __le64 resp_addr; 7536 __le64 host_dest_addr; 7537 }; 7538 7539 /* hwrm_nvm_get_dir_entries_output (size:128b/16B) */ 7540 struct hwrm_nvm_get_dir_entries_output { 7541 __le16 error_code; 7542 __le16 req_type; 7543 __le16 seq_id; 7544 __le16 resp_len; 7545 u8 unused_0[7]; 7546 u8 valid; 7547 }; 7548 7549 /* hwrm_nvm_get_dir_info_input (size:128b/16B) */ 7550 struct hwrm_nvm_get_dir_info_input { 7551 __le16 req_type; 7552 __le16 cmpl_ring; 7553 __le16 seq_id; 7554 __le16 target_id; 7555 __le64 resp_addr; 7556 }; 7557 7558 /* hwrm_nvm_get_dir_info_output (size:192b/24B) */ 7559 struct hwrm_nvm_get_dir_info_output { 7560 __le16 error_code; 7561 __le16 req_type; 7562 __le16 seq_id; 7563 __le16 resp_len; 7564 __le32 entries; 7565 __le32 entry_length; 7566 u8 unused_0[7]; 7567 u8 valid; 7568 }; 7569 7570 /* hwrm_nvm_write_input (size:384b/48B) */ 7571 struct hwrm_nvm_write_input { 7572 __le16 req_type; 7573 __le16 cmpl_ring; 7574 __le16 seq_id; 7575 __le16 target_id; 7576 __le64 resp_addr; 7577 __le64 host_src_addr; 7578 __le16 dir_type; 7579 __le16 dir_ordinal; 7580 __le16 dir_ext; 7581 __le16 dir_attr; 7582 __le32 dir_data_length; 7583 __le16 option; 7584 __le16 flags; 7585 #define NVM_WRITE_REQ_FLAGS_KEEP_ORIG_ACTIVE_IMG 0x1UL 7586 __le32 dir_item_length; 7587 __le32 unused_0; 7588 }; 7589 7590 /* hwrm_nvm_write_output (size:128b/16B) */ 7591 struct hwrm_nvm_write_output { 7592 __le16 error_code; 7593 __le16 req_type; 7594 __le16 seq_id; 7595 __le16 resp_len; 7596 __le32 dir_item_length; 7597 __le16 dir_idx; 7598 u8 unused_0; 7599 u8 valid; 7600 }; 7601 7602 /* hwrm_nvm_write_cmd_err (size:64b/8B) */ 7603 struct hwrm_nvm_write_cmd_err { 7604 u8 code; 7605 #define NVM_WRITE_CMD_ERR_CODE_UNKNOWN 0x0UL 7606 #define NVM_WRITE_CMD_ERR_CODE_FRAG_ERR 0x1UL 7607 #define NVM_WRITE_CMD_ERR_CODE_NO_SPACE 0x2UL 7608 #define NVM_WRITE_CMD_ERR_CODE_LAST NVM_WRITE_CMD_ERR_CODE_NO_SPACE 7609 u8 unused_0[7]; 7610 }; 7611 7612 /* hwrm_nvm_modify_input (size:320b/40B) */ 7613 struct hwrm_nvm_modify_input { 7614 __le16 req_type; 7615 __le16 cmpl_ring; 7616 __le16 seq_id; 7617 __le16 target_id; 7618 __le64 resp_addr; 7619 __le64 host_src_addr; 7620 __le16 dir_idx; 7621 u8 unused_0[2]; 7622 __le32 offset; 7623 __le32 len; 7624 u8 unused_1[4]; 7625 }; 7626 7627 /* hwrm_nvm_modify_output (size:128b/16B) */ 7628 struct hwrm_nvm_modify_output { 7629 __le16 error_code; 7630 __le16 req_type; 7631 __le16 seq_id; 7632 __le16 resp_len; 7633 u8 unused_0[7]; 7634 u8 valid; 7635 }; 7636 7637 /* hwrm_nvm_find_dir_entry_input (size:256b/32B) */ 7638 struct hwrm_nvm_find_dir_entry_input { 7639 __le16 req_type; 7640 __le16 cmpl_ring; 7641 __le16 seq_id; 7642 __le16 target_id; 7643 __le64 resp_addr; 7644 __le32 enables; 7645 #define NVM_FIND_DIR_ENTRY_REQ_ENABLES_DIR_IDX_VALID 0x1UL 7646 __le16 dir_idx; 7647 __le16 dir_type; 7648 __le16 dir_ordinal; 7649 __le16 dir_ext; 7650 u8 opt_ordinal; 7651 #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_MASK 0x3UL 7652 #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_SFT 0 7653 #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_EQ 0x0UL 7654 #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_GE 0x1UL 7655 #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_GT 0x2UL 7656 #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_LAST NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_GT 7657 u8 unused_0[3]; 7658 }; 7659 7660 /* hwrm_nvm_find_dir_entry_output (size:256b/32B) */ 7661 struct hwrm_nvm_find_dir_entry_output { 7662 __le16 error_code; 7663 __le16 req_type; 7664 __le16 seq_id; 7665 __le16 resp_len; 7666 __le32 dir_item_length; 7667 __le32 dir_data_length; 7668 __le32 fw_ver; 7669 __le16 dir_ordinal; 7670 __le16 dir_idx; 7671 u8 unused_0[7]; 7672 u8 valid; 7673 }; 7674 7675 /* hwrm_nvm_erase_dir_entry_input (size:192b/24B) */ 7676 struct hwrm_nvm_erase_dir_entry_input { 7677 __le16 req_type; 7678 __le16 cmpl_ring; 7679 __le16 seq_id; 7680 __le16 target_id; 7681 __le64 resp_addr; 7682 __le16 dir_idx; 7683 u8 unused_0[6]; 7684 }; 7685 7686 /* hwrm_nvm_erase_dir_entry_output (size:128b/16B) */ 7687 struct hwrm_nvm_erase_dir_entry_output { 7688 __le16 error_code; 7689 __le16 req_type; 7690 __le16 seq_id; 7691 __le16 resp_len; 7692 u8 unused_0[7]; 7693 u8 valid; 7694 }; 7695 7696 /* hwrm_nvm_get_dev_info_input (size:128b/16B) */ 7697 struct hwrm_nvm_get_dev_info_input { 7698 __le16 req_type; 7699 __le16 cmpl_ring; 7700 __le16 seq_id; 7701 __le16 target_id; 7702 __le64 resp_addr; 7703 }; 7704 7705 /* hwrm_nvm_get_dev_info_output (size:256b/32B) */ 7706 struct hwrm_nvm_get_dev_info_output { 7707 __le16 error_code; 7708 __le16 req_type; 7709 __le16 seq_id; 7710 __le16 resp_len; 7711 __le16 manufacturer_id; 7712 __le16 device_id; 7713 __le32 sector_size; 7714 __le32 nvram_size; 7715 __le32 reserved_size; 7716 __le32 available_size; 7717 u8 nvm_cfg_ver_maj; 7718 u8 nvm_cfg_ver_min; 7719 u8 nvm_cfg_ver_upd; 7720 u8 valid; 7721 }; 7722 7723 /* hwrm_nvm_mod_dir_entry_input (size:256b/32B) */ 7724 struct hwrm_nvm_mod_dir_entry_input { 7725 __le16 req_type; 7726 __le16 cmpl_ring; 7727 __le16 seq_id; 7728 __le16 target_id; 7729 __le64 resp_addr; 7730 __le32 enables; 7731 #define NVM_MOD_DIR_ENTRY_REQ_ENABLES_CHECKSUM 0x1UL 7732 __le16 dir_idx; 7733 __le16 dir_ordinal; 7734 __le16 dir_ext; 7735 __le16 dir_attr; 7736 __le32 checksum; 7737 }; 7738 7739 /* hwrm_nvm_mod_dir_entry_output (size:128b/16B) */ 7740 struct hwrm_nvm_mod_dir_entry_output { 7741 __le16 error_code; 7742 __le16 req_type; 7743 __le16 seq_id; 7744 __le16 resp_len; 7745 u8 unused_0[7]; 7746 u8 valid; 7747 }; 7748 7749 /* hwrm_nvm_verify_update_input (size:192b/24B) */ 7750 struct hwrm_nvm_verify_update_input { 7751 __le16 req_type; 7752 __le16 cmpl_ring; 7753 __le16 seq_id; 7754 __le16 target_id; 7755 __le64 resp_addr; 7756 __le16 dir_type; 7757 __le16 dir_ordinal; 7758 __le16 dir_ext; 7759 u8 unused_0[2]; 7760 }; 7761 7762 /* hwrm_nvm_verify_update_output (size:128b/16B) */ 7763 struct hwrm_nvm_verify_update_output { 7764 __le16 error_code; 7765 __le16 req_type; 7766 __le16 seq_id; 7767 __le16 resp_len; 7768 u8 unused_0[7]; 7769 u8 valid; 7770 }; 7771 7772 /* hwrm_nvm_install_update_input (size:192b/24B) */ 7773 struct hwrm_nvm_install_update_input { 7774 __le16 req_type; 7775 __le16 cmpl_ring; 7776 __le16 seq_id; 7777 __le16 target_id; 7778 __le64 resp_addr; 7779 __le32 install_type; 7780 #define NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_NORMAL 0x0UL 7781 #define NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_ALL 0xffffffffUL 7782 #define NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_LAST NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_ALL 7783 __le16 flags; 7784 #define NVM_INSTALL_UPDATE_REQ_FLAGS_ERASE_UNUSED_SPACE 0x1UL 7785 #define NVM_INSTALL_UPDATE_REQ_FLAGS_REMOVE_UNUSED_PKG 0x2UL 7786 #define NVM_INSTALL_UPDATE_REQ_FLAGS_ALLOWED_TO_DEFRAG 0x4UL 7787 u8 unused_0[2]; 7788 }; 7789 7790 /* hwrm_nvm_install_update_output (size:192b/24B) */ 7791 struct hwrm_nvm_install_update_output { 7792 __le16 error_code; 7793 __le16 req_type; 7794 __le16 seq_id; 7795 __le16 resp_len; 7796 __le64 installed_items; 7797 u8 result; 7798 #define NVM_INSTALL_UPDATE_RESP_RESULT_SUCCESS 0x0UL 7799 #define NVM_INSTALL_UPDATE_RESP_RESULT_LAST NVM_INSTALL_UPDATE_RESP_RESULT_SUCCESS 7800 u8 problem_item; 7801 #define NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_NONE 0x0UL 7802 #define NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_PACKAGE 0xffUL 7803 #define NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_LAST NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_PACKAGE 7804 u8 reset_required; 7805 #define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_NONE 0x0UL 7806 #define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_PCI 0x1UL 7807 #define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_POWER 0x2UL 7808 #define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_LAST NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_POWER 7809 u8 unused_0[4]; 7810 u8 valid; 7811 }; 7812 7813 /* hwrm_nvm_install_update_cmd_err (size:64b/8B) */ 7814 struct hwrm_nvm_install_update_cmd_err { 7815 u8 code; 7816 #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_UNKNOWN 0x0UL 7817 #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_FRAG_ERR 0x1UL 7818 #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_NO_SPACE 0x2UL 7819 #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_LAST NVM_INSTALL_UPDATE_CMD_ERR_CODE_NO_SPACE 7820 u8 unused_0[7]; 7821 }; 7822 7823 /* hwrm_nvm_get_variable_input (size:320b/40B) */ 7824 struct hwrm_nvm_get_variable_input { 7825 __le16 req_type; 7826 __le16 cmpl_ring; 7827 __le16 seq_id; 7828 __le16 target_id; 7829 __le64 resp_addr; 7830 __le64 dest_data_addr; 7831 __le16 data_len; 7832 __le16 option_num; 7833 #define NVM_GET_VARIABLE_REQ_OPTION_NUM_RSVD_0 0x0UL 7834 #define NVM_GET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF 0xffffUL 7835 #define NVM_GET_VARIABLE_REQ_OPTION_NUM_LAST NVM_GET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF 7836 __le16 dimensions; 7837 __le16 index_0; 7838 __le16 index_1; 7839 __le16 index_2; 7840 __le16 index_3; 7841 u8 flags; 7842 #define NVM_GET_VARIABLE_REQ_FLAGS_FACTORY_DFLT 0x1UL 7843 u8 unused_0; 7844 }; 7845 7846 /* hwrm_nvm_get_variable_output (size:128b/16B) */ 7847 struct hwrm_nvm_get_variable_output { 7848 __le16 error_code; 7849 __le16 req_type; 7850 __le16 seq_id; 7851 __le16 resp_len; 7852 __le16 data_len; 7853 __le16 option_num; 7854 #define NVM_GET_VARIABLE_RESP_OPTION_NUM_RSVD_0 0x0UL 7855 #define NVM_GET_VARIABLE_RESP_OPTION_NUM_RSVD_FFFF 0xffffUL 7856 #define NVM_GET_VARIABLE_RESP_OPTION_NUM_LAST NVM_GET_VARIABLE_RESP_OPTION_NUM_RSVD_FFFF 7857 u8 unused_0[3]; 7858 u8 valid; 7859 }; 7860 7861 /* hwrm_nvm_get_variable_cmd_err (size:64b/8B) */ 7862 struct hwrm_nvm_get_variable_cmd_err { 7863 u8 code; 7864 #define NVM_GET_VARIABLE_CMD_ERR_CODE_UNKNOWN 0x0UL 7865 #define NVM_GET_VARIABLE_CMD_ERR_CODE_VAR_NOT_EXIST 0x1UL 7866 #define NVM_GET_VARIABLE_CMD_ERR_CODE_CORRUPT_VAR 0x2UL 7867 #define NVM_GET_VARIABLE_CMD_ERR_CODE_LEN_TOO_SHORT 0x3UL 7868 #define NVM_GET_VARIABLE_CMD_ERR_CODE_LAST NVM_GET_VARIABLE_CMD_ERR_CODE_LEN_TOO_SHORT 7869 u8 unused_0[7]; 7870 }; 7871 7872 /* hwrm_nvm_set_variable_input (size:320b/40B) */ 7873 struct hwrm_nvm_set_variable_input { 7874 __le16 req_type; 7875 __le16 cmpl_ring; 7876 __le16 seq_id; 7877 __le16 target_id; 7878 __le64 resp_addr; 7879 __le64 src_data_addr; 7880 __le16 data_len; 7881 __le16 option_num; 7882 #define NVM_SET_VARIABLE_REQ_OPTION_NUM_RSVD_0 0x0UL 7883 #define NVM_SET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF 0xffffUL 7884 #define NVM_SET_VARIABLE_REQ_OPTION_NUM_LAST NVM_SET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF 7885 __le16 dimensions; 7886 __le16 index_0; 7887 __le16 index_1; 7888 __le16 index_2; 7889 __le16 index_3; 7890 u8 flags; 7891 #define NVM_SET_VARIABLE_REQ_FLAGS_FORCE_FLUSH 0x1UL 7892 #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_MASK 0xeUL 7893 #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_SFT 1 7894 #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_NONE (0x0UL << 1) 7895 #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_HMAC_SHA1 (0x1UL << 1) 7896 #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_AES256 (0x2UL << 1) 7897 #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_HMAC_SHA1_AUTH (0x3UL << 1) 7898 #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_LAST NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_HMAC_SHA1_AUTH 7899 #define NVM_SET_VARIABLE_REQ_FLAGS_FLAGS_UNUSED_0_MASK 0x70UL 7900 #define NVM_SET_VARIABLE_REQ_FLAGS_FLAGS_UNUSED_0_SFT 4 7901 #define NVM_SET_VARIABLE_REQ_FLAGS_FACTORY_DEFAULT 0x80UL 7902 u8 unused_0; 7903 }; 7904 7905 /* hwrm_nvm_set_variable_output (size:128b/16B) */ 7906 struct hwrm_nvm_set_variable_output { 7907 __le16 error_code; 7908 __le16 req_type; 7909 __le16 seq_id; 7910 __le16 resp_len; 7911 u8 unused_0[7]; 7912 u8 valid; 7913 }; 7914 7915 /* hwrm_nvm_set_variable_cmd_err (size:64b/8B) */ 7916 struct hwrm_nvm_set_variable_cmd_err { 7917 u8 code; 7918 #define NVM_SET_VARIABLE_CMD_ERR_CODE_UNKNOWN 0x0UL 7919 #define NVM_SET_VARIABLE_CMD_ERR_CODE_VAR_NOT_EXIST 0x1UL 7920 #define NVM_SET_VARIABLE_CMD_ERR_CODE_CORRUPT_VAR 0x2UL 7921 #define NVM_SET_VARIABLE_CMD_ERR_CODE_LAST NVM_SET_VARIABLE_CMD_ERR_CODE_CORRUPT_VAR 7922 u8 unused_0[7]; 7923 }; 7924 7925 /* hwrm_selftest_qlist_input (size:128b/16B) */ 7926 struct hwrm_selftest_qlist_input { 7927 __le16 req_type; 7928 __le16 cmpl_ring; 7929 __le16 seq_id; 7930 __le16 target_id; 7931 __le64 resp_addr; 7932 }; 7933 7934 /* hwrm_selftest_qlist_output (size:2240b/280B) */ 7935 struct hwrm_selftest_qlist_output { 7936 __le16 error_code; 7937 __le16 req_type; 7938 __le16 seq_id; 7939 __le16 resp_len; 7940 u8 num_tests; 7941 u8 available_tests; 7942 #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_NVM_TEST 0x1UL 7943 #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_LINK_TEST 0x2UL 7944 #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_REGISTER_TEST 0x4UL 7945 #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_MEMORY_TEST 0x8UL 7946 #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_PCIE_SERDES_TEST 0x10UL 7947 #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_ETHERNET_SERDES_TEST 0x20UL 7948 u8 offline_tests; 7949 #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_NVM_TEST 0x1UL 7950 #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_LINK_TEST 0x2UL 7951 #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_REGISTER_TEST 0x4UL 7952 #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_MEMORY_TEST 0x8UL 7953 #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_PCIE_SERDES_TEST 0x10UL 7954 #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_ETHERNET_SERDES_TEST 0x20UL 7955 u8 unused_0; 7956 __le16 test_timeout; 7957 u8 unused_1[2]; 7958 char test0_name[32]; 7959 char test1_name[32]; 7960 char test2_name[32]; 7961 char test3_name[32]; 7962 char test4_name[32]; 7963 char test5_name[32]; 7964 char test6_name[32]; 7965 char test7_name[32]; 7966 u8 unused_2[7]; 7967 u8 valid; 7968 }; 7969 7970 /* hwrm_selftest_exec_input (size:192b/24B) */ 7971 struct hwrm_selftest_exec_input { 7972 __le16 req_type; 7973 __le16 cmpl_ring; 7974 __le16 seq_id; 7975 __le16 target_id; 7976 __le64 resp_addr; 7977 u8 flags; 7978 #define SELFTEST_EXEC_REQ_FLAGS_NVM_TEST 0x1UL 7979 #define SELFTEST_EXEC_REQ_FLAGS_LINK_TEST 0x2UL 7980 #define SELFTEST_EXEC_REQ_FLAGS_REGISTER_TEST 0x4UL 7981 #define SELFTEST_EXEC_REQ_FLAGS_MEMORY_TEST 0x8UL 7982 #define SELFTEST_EXEC_REQ_FLAGS_PCIE_SERDES_TEST 0x10UL 7983 #define SELFTEST_EXEC_REQ_FLAGS_ETHERNET_SERDES_TEST 0x20UL 7984 u8 unused_0[7]; 7985 }; 7986 7987 /* hwrm_selftest_exec_output (size:128b/16B) */ 7988 struct hwrm_selftest_exec_output { 7989 __le16 error_code; 7990 __le16 req_type; 7991 __le16 seq_id; 7992 __le16 resp_len; 7993 u8 requested_tests; 7994 #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_NVM_TEST 0x1UL 7995 #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_LINK_TEST 0x2UL 7996 #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_REGISTER_TEST 0x4UL 7997 #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_MEMORY_TEST 0x8UL 7998 #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_PCIE_SERDES_TEST 0x10UL 7999 #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_ETHERNET_SERDES_TEST 0x20UL 8000 u8 test_success; 8001 #define SELFTEST_EXEC_RESP_TEST_SUCCESS_NVM_TEST 0x1UL 8002 #define SELFTEST_EXEC_RESP_TEST_SUCCESS_LINK_TEST 0x2UL 8003 #define SELFTEST_EXEC_RESP_TEST_SUCCESS_REGISTER_TEST 0x4UL 8004 #define SELFTEST_EXEC_RESP_TEST_SUCCESS_MEMORY_TEST 0x8UL 8005 #define SELFTEST_EXEC_RESP_TEST_SUCCESS_PCIE_SERDES_TEST 0x10UL 8006 #define SELFTEST_EXEC_RESP_TEST_SUCCESS_ETHERNET_SERDES_TEST 0x20UL 8007 u8 unused_0[5]; 8008 u8 valid; 8009 }; 8010 8011 /* hwrm_selftest_irq_input (size:128b/16B) */ 8012 struct hwrm_selftest_irq_input { 8013 __le16 req_type; 8014 __le16 cmpl_ring; 8015 __le16 seq_id; 8016 __le16 target_id; 8017 __le64 resp_addr; 8018 }; 8019 8020 /* hwrm_selftest_irq_output (size:128b/16B) */ 8021 struct hwrm_selftest_irq_output { 8022 __le16 error_code; 8023 __le16 req_type; 8024 __le16 seq_id; 8025 __le16 resp_len; 8026 u8 unused_0[7]; 8027 u8 valid; 8028 }; 8029 8030 #endif /* _BNXT_HSI_H_ */ 8031