1c0c050c5SMichael Chan /* Broadcom NetXtreme-C/E network driver. 2c0c050c5SMichael Chan * 311f15ed3SMichael Chan * Copyright (c) 2014-2016 Broadcom Corporation 42792b5b9SMichael Chan * Copyright (c) 2014-2018 Broadcom Limited 5ad04cc05SMichael Chan * Copyright (c) 2018-2022 Broadcom Inc. 6c0c050c5SMichael Chan * 7c0c050c5SMichael Chan * This program is free software; you can redistribute it and/or modify 8c0c050c5SMichael Chan * it under the terms of the GNU General Public License as published by 9c0c050c5SMichael Chan * the Free Software Foundation. 10894aa69aSMichael Chan * 11894aa69aSMichael Chan * DO NOT MODIFY!!! This file is automatically generated. 12c0c050c5SMichael Chan */ 13c0c050c5SMichael Chan 14894aa69aSMichael Chan #ifndef _BNXT_HSI_H_ 15894aa69aSMichael Chan #define _BNXT_HSI_H_ 16c0c050c5SMichael Chan 17894aa69aSMichael Chan /* hwrm_cmd_hdr (size:128b/16B) */ 18894aa69aSMichael Chan struct hwrm_cmd_hdr { 19894aa69aSMichael Chan __le16 req_type; 20894aa69aSMichael Chan __le16 cmpl_ring; 21894aa69aSMichael Chan __le16 seq_id; 22894aa69aSMichael Chan __le16 target_id; 23894aa69aSMichael Chan __le64 resp_addr; 24894aa69aSMichael Chan }; 2587c374deSMichael Chan 26894aa69aSMichael Chan /* hwrm_resp_hdr (size:64b/8B) */ 27894aa69aSMichael Chan struct hwrm_resp_hdr { 28894aa69aSMichael Chan __le16 error_code; 29894aa69aSMichael Chan __le16 req_type; 30894aa69aSMichael Chan __le16 seq_id; 31894aa69aSMichael Chan __le16 resp_len; 32894aa69aSMichael Chan }; 338eb992e8SMichael Chan 34894aa69aSMichael Chan #define CMD_DISCR_TLV_ENCAP 0x8000UL 35894aa69aSMichael Chan #define CMD_DISCR_LAST CMD_DISCR_TLV_ENCAP 36894aa69aSMichael Chan 37894aa69aSMichael Chan 38894aa69aSMichael Chan #define TLV_TYPE_HWRM_REQUEST 0x1UL 39894aa69aSMichael Chan #define TLV_TYPE_HWRM_RESPONSE 0x2UL 40894aa69aSMichael Chan #define TLV_TYPE_ROCE_SP_COMMAND 0x3UL 4131d357c0SMichael Chan #define TLV_TYPE_QUERY_ROCE_CC_GEN1 0x4UL 4231d357c0SMichael Chan #define TLV_TYPE_MODIFY_ROCE_CC_GEN1 0x5UL 432792b5b9SMichael Chan #define TLV_TYPE_ENGINE_CKV_ALIAS_ECC_PUBLIC_KEY 0x8001UL 44894aa69aSMichael Chan #define TLV_TYPE_ENGINE_CKV_IV 0x8003UL 45894aa69aSMichael Chan #define TLV_TYPE_ENGINE_CKV_AUTH_TAG 0x8004UL 46894aa69aSMichael Chan #define TLV_TYPE_ENGINE_CKV_CIPHERTEXT 0x8005UL 4772e0c9f9SMichael Chan #define TLV_TYPE_ENGINE_CKV_HOST_ALGORITHMS 0x8006UL 482792b5b9SMichael Chan #define TLV_TYPE_ENGINE_CKV_HOST_ECC_PUBLIC_KEY 0x8007UL 49894aa69aSMichael Chan #define TLV_TYPE_ENGINE_CKV_ECDSA_SIGNATURE 0x8008UL 5072e0c9f9SMichael Chan #define TLV_TYPE_ENGINE_CKV_FW_ECC_PUBLIC_KEY 0x8009UL 5172e0c9f9SMichael Chan #define TLV_TYPE_ENGINE_CKV_FW_ALGORITHMS 0x800aUL 5272e0c9f9SMichael Chan #define TLV_TYPE_LAST TLV_TYPE_ENGINE_CKV_FW_ALGORITHMS 53894aa69aSMichael Chan 54894aa69aSMichael Chan 55894aa69aSMichael Chan /* tlv (size:64b/8B) */ 56894aa69aSMichael Chan struct tlv { 57894aa69aSMichael Chan __le16 cmd_discr; 58894aa69aSMichael Chan u8 reserved_8b; 59894aa69aSMichael Chan u8 flags; 60894aa69aSMichael Chan #define TLV_FLAGS_MORE 0x1UL 61894aa69aSMichael Chan #define TLV_FLAGS_MORE_LAST 0x0UL 62894aa69aSMichael Chan #define TLV_FLAGS_MORE_NOT_LAST 0x1UL 63894aa69aSMichael Chan #define TLV_FLAGS_REQUIRED 0x2UL 64894aa69aSMichael Chan #define TLV_FLAGS_REQUIRED_NO (0x0UL << 1) 65894aa69aSMichael Chan #define TLV_FLAGS_REQUIRED_YES (0x1UL << 1) 66894aa69aSMichael Chan #define TLV_FLAGS_REQUIRED_LAST TLV_FLAGS_REQUIRED_YES 67894aa69aSMichael Chan __le16 tlv_type; 68894aa69aSMichael Chan __le16 length; 69894aa69aSMichael Chan }; 70894aa69aSMichael Chan 71894aa69aSMichael Chan /* input (size:128b/16B) */ 72894aa69aSMichael Chan struct input { 73894aa69aSMichael Chan __le16 req_type; 74894aa69aSMichael Chan __le16 cmpl_ring; 75894aa69aSMichael Chan __le16 seq_id; 76894aa69aSMichael Chan __le16 target_id; 77894aa69aSMichael Chan __le64 resp_addr; 78894aa69aSMichael Chan }; 79894aa69aSMichael Chan 80894aa69aSMichael Chan /* output (size:64b/8B) */ 81894aa69aSMichael Chan struct output { 82894aa69aSMichael Chan __le16 error_code; 83894aa69aSMichael Chan __le16 req_type; 84894aa69aSMichael Chan __le16 seq_id; 85894aa69aSMichael Chan __le16 resp_len; 86894aa69aSMichael Chan }; 87894aa69aSMichael Chan 88894aa69aSMichael Chan /* hwrm_short_input (size:128b/16B) */ 89894aa69aSMichael Chan struct hwrm_short_input { 90894aa69aSMichael Chan __le16 req_type; 91894aa69aSMichael Chan __le16 signature; 92894aa69aSMichael Chan #define SHORT_REQ_SIGNATURE_SHORT_CMD 0x4321UL 93894aa69aSMichael Chan #define SHORT_REQ_SIGNATURE_LAST SHORT_REQ_SIGNATURE_SHORT_CMD 944a50ddc2SMichael Chan __le16 target_id; 954a50ddc2SMichael Chan #define SHORT_REQ_TARGET_ID_DEFAULT 0x0UL 964a50ddc2SMichael Chan #define SHORT_REQ_TARGET_ID_TOOLS 0xfffdUL 974a50ddc2SMichael Chan #define SHORT_REQ_TARGET_ID_LAST SHORT_REQ_TARGET_ID_TOOLS 98894aa69aSMichael Chan __le16 size; 99894aa69aSMichael Chan __le64 req_addr; 100894aa69aSMichael Chan }; 101894aa69aSMichael Chan 102894aa69aSMichael Chan /* cmd_nums (size:64b/8B) */ 103894aa69aSMichael Chan struct cmd_nums { 104894aa69aSMichael Chan __le16 req_type; 105894aa69aSMichael Chan #define HWRM_VER_GET 0x0UL 10631f67c2eSMichael Chan #define HWRM_FUNC_ECHO_RESPONSE 0xbUL 1073293ec23SMichael Chan #define HWRM_ERROR_RECOVERY_QCFG 0xcUL 1086fc92c33SMichael Chan #define HWRM_FUNC_DRV_IF_CHANGE 0xdUL 109894aa69aSMichael Chan #define HWRM_FUNC_BUF_UNRGTR 0xeUL 110894aa69aSMichael Chan #define HWRM_FUNC_VF_CFG 0xfUL 111894aa69aSMichael Chan #define HWRM_RESERVED1 0x10UL 112894aa69aSMichael Chan #define HWRM_FUNC_RESET 0x11UL 113894aa69aSMichael Chan #define HWRM_FUNC_GETFID 0x12UL 114894aa69aSMichael Chan #define HWRM_FUNC_VF_ALLOC 0x13UL 115894aa69aSMichael Chan #define HWRM_FUNC_VF_FREE 0x14UL 116894aa69aSMichael Chan #define HWRM_FUNC_QCAPS 0x15UL 117894aa69aSMichael Chan #define HWRM_FUNC_QCFG 0x16UL 118894aa69aSMichael Chan #define HWRM_FUNC_CFG 0x17UL 119894aa69aSMichael Chan #define HWRM_FUNC_QSTATS 0x18UL 120894aa69aSMichael Chan #define HWRM_FUNC_CLR_STATS 0x19UL 121894aa69aSMichael Chan #define HWRM_FUNC_DRV_UNRGTR 0x1aUL 122894aa69aSMichael Chan #define HWRM_FUNC_VF_RESC_FREE 0x1bUL 123894aa69aSMichael Chan #define HWRM_FUNC_VF_VNIC_IDS_QUERY 0x1cUL 124894aa69aSMichael Chan #define HWRM_FUNC_DRV_RGTR 0x1dUL 125894aa69aSMichael Chan #define HWRM_FUNC_DRV_QVER 0x1eUL 126894aa69aSMichael Chan #define HWRM_FUNC_BUF_RGTR 0x1fUL 127894aa69aSMichael Chan #define HWRM_PORT_PHY_CFG 0x20UL 128894aa69aSMichael Chan #define HWRM_PORT_MAC_CFG 0x21UL 129894aa69aSMichael Chan #define HWRM_PORT_TS_QUERY 0x22UL 130894aa69aSMichael Chan #define HWRM_PORT_QSTATS 0x23UL 131894aa69aSMichael Chan #define HWRM_PORT_LPBK_QSTATS 0x24UL 132894aa69aSMichael Chan #define HWRM_PORT_CLR_STATS 0x25UL 133894aa69aSMichael Chan #define HWRM_PORT_LPBK_CLR_STATS 0x26UL 134894aa69aSMichael Chan #define HWRM_PORT_PHY_QCFG 0x27UL 135894aa69aSMichael Chan #define HWRM_PORT_MAC_QCFG 0x28UL 136894aa69aSMichael Chan #define HWRM_PORT_MAC_PTP_QCFG 0x29UL 137894aa69aSMichael Chan #define HWRM_PORT_PHY_QCAPS 0x2aUL 138894aa69aSMichael Chan #define HWRM_PORT_PHY_I2C_WRITE 0x2bUL 139894aa69aSMichael Chan #define HWRM_PORT_PHY_I2C_READ 0x2cUL 140894aa69aSMichael Chan #define HWRM_PORT_LED_CFG 0x2dUL 141894aa69aSMichael Chan #define HWRM_PORT_LED_QCFG 0x2eUL 142894aa69aSMichael Chan #define HWRM_PORT_LED_QCAPS 0x2fUL 143894aa69aSMichael Chan #define HWRM_QUEUE_QPORTCFG 0x30UL 144894aa69aSMichael Chan #define HWRM_QUEUE_QCFG 0x31UL 145894aa69aSMichael Chan #define HWRM_QUEUE_CFG 0x32UL 146894aa69aSMichael Chan #define HWRM_FUNC_VLAN_CFG 0x33UL 147894aa69aSMichael Chan #define HWRM_FUNC_VLAN_QCFG 0x34UL 148894aa69aSMichael Chan #define HWRM_QUEUE_PFCENABLE_QCFG 0x35UL 149894aa69aSMichael Chan #define HWRM_QUEUE_PFCENABLE_CFG 0x36UL 150894aa69aSMichael Chan #define HWRM_QUEUE_PRI2COS_QCFG 0x37UL 151894aa69aSMichael Chan #define HWRM_QUEUE_PRI2COS_CFG 0x38UL 152894aa69aSMichael Chan #define HWRM_QUEUE_COS2BW_QCFG 0x39UL 153894aa69aSMichael Chan #define HWRM_QUEUE_COS2BW_CFG 0x3aUL 154894aa69aSMichael Chan #define HWRM_QUEUE_DSCP_QCAPS 0x3bUL 155894aa69aSMichael Chan #define HWRM_QUEUE_DSCP2PRI_QCFG 0x3cUL 156894aa69aSMichael Chan #define HWRM_QUEUE_DSCP2PRI_CFG 0x3dUL 157894aa69aSMichael Chan #define HWRM_VNIC_ALLOC 0x40UL 158894aa69aSMichael Chan #define HWRM_VNIC_FREE 0x41UL 159894aa69aSMichael Chan #define HWRM_VNIC_CFG 0x42UL 160894aa69aSMichael Chan #define HWRM_VNIC_QCFG 0x43UL 161894aa69aSMichael Chan #define HWRM_VNIC_TPA_CFG 0x44UL 162894aa69aSMichael Chan #define HWRM_VNIC_TPA_QCFG 0x45UL 163894aa69aSMichael Chan #define HWRM_VNIC_RSS_CFG 0x46UL 164894aa69aSMichael Chan #define HWRM_VNIC_RSS_QCFG 0x47UL 165894aa69aSMichael Chan #define HWRM_VNIC_PLCMODES_CFG 0x48UL 166894aa69aSMichael Chan #define HWRM_VNIC_PLCMODES_QCFG 0x49UL 167894aa69aSMichael Chan #define HWRM_VNIC_QCAPS 0x4aUL 16816db6323SMichael Chan #define HWRM_VNIC_UPDATE 0x4bUL 169894aa69aSMichael Chan #define HWRM_RING_ALLOC 0x50UL 170894aa69aSMichael Chan #define HWRM_RING_FREE 0x51UL 171894aa69aSMichael Chan #define HWRM_RING_CMPL_RING_QAGGINT_PARAMS 0x52UL 172894aa69aSMichael Chan #define HWRM_RING_CMPL_RING_CFG_AGGINT_PARAMS 0x53UL 1736fc92c33SMichael Chan #define HWRM_RING_AGGINT_QCAPS 0x54UL 174bfc6e5fbSMichael Chan #define HWRM_RING_SCHQ_ALLOC 0x55UL 175bfc6e5fbSMichael Chan #define HWRM_RING_SCHQ_CFG 0x56UL 176bfc6e5fbSMichael Chan #define HWRM_RING_SCHQ_FREE 0x57UL 177894aa69aSMichael Chan #define HWRM_RING_RESET 0x5eUL 178894aa69aSMichael Chan #define HWRM_RING_GRP_ALLOC 0x60UL 179894aa69aSMichael Chan #define HWRM_RING_GRP_FREE 0x61UL 180bfc6e5fbSMichael Chan #define HWRM_RING_CFG 0x62UL 181bfc6e5fbSMichael Chan #define HWRM_RING_QCFG 0x63UL 182894aa69aSMichael Chan #define HWRM_RESERVED5 0x64UL 183894aa69aSMichael Chan #define HWRM_RESERVED6 0x65UL 184894aa69aSMichael Chan #define HWRM_VNIC_RSS_COS_LB_CTX_ALLOC 0x70UL 185894aa69aSMichael Chan #define HWRM_VNIC_RSS_COS_LB_CTX_FREE 0x71UL 18641136ab3SMichael Chan #define HWRM_QUEUE_MPLS_QCAPS 0x80UL 18741136ab3SMichael Chan #define HWRM_QUEUE_MPLSTC2PRI_QCFG 0x81UL 18841136ab3SMichael Chan #define HWRM_QUEUE_MPLSTC2PRI_CFG 0x82UL 18916db6323SMichael Chan #define HWRM_QUEUE_VLANPRI_QCAPS 0x83UL 19016db6323SMichael Chan #define HWRM_QUEUE_VLANPRI2PRI_QCFG 0x84UL 19116db6323SMichael Chan #define HWRM_QUEUE_VLANPRI2PRI_CFG 0x85UL 19278eeadb8SMichael Chan #define HWRM_QUEUE_GLOBAL_CFG 0x86UL 19378eeadb8SMichael Chan #define HWRM_QUEUE_GLOBAL_QCFG 0x87UL 194894aa69aSMichael Chan #define HWRM_CFA_L2_FILTER_ALLOC 0x90UL 195894aa69aSMichael Chan #define HWRM_CFA_L2_FILTER_FREE 0x91UL 196894aa69aSMichael Chan #define HWRM_CFA_L2_FILTER_CFG 0x92UL 197894aa69aSMichael Chan #define HWRM_CFA_L2_SET_RX_MASK 0x93UL 198894aa69aSMichael Chan #define HWRM_CFA_VLAN_ANTISPOOF_CFG 0x94UL 199894aa69aSMichael Chan #define HWRM_CFA_TUNNEL_FILTER_ALLOC 0x95UL 200894aa69aSMichael Chan #define HWRM_CFA_TUNNEL_FILTER_FREE 0x96UL 201894aa69aSMichael Chan #define HWRM_CFA_ENCAP_RECORD_ALLOC 0x97UL 202894aa69aSMichael Chan #define HWRM_CFA_ENCAP_RECORD_FREE 0x98UL 203894aa69aSMichael Chan #define HWRM_CFA_NTUPLE_FILTER_ALLOC 0x99UL 204894aa69aSMichael Chan #define HWRM_CFA_NTUPLE_FILTER_FREE 0x9aUL 205894aa69aSMichael Chan #define HWRM_CFA_NTUPLE_FILTER_CFG 0x9bUL 206894aa69aSMichael Chan #define HWRM_CFA_EM_FLOW_ALLOC 0x9cUL 207894aa69aSMichael Chan #define HWRM_CFA_EM_FLOW_FREE 0x9dUL 208894aa69aSMichael Chan #define HWRM_CFA_EM_FLOW_CFG 0x9eUL 209894aa69aSMichael Chan #define HWRM_TUNNEL_DST_PORT_QUERY 0xa0UL 210894aa69aSMichael Chan #define HWRM_TUNNEL_DST_PORT_ALLOC 0xa1UL 211894aa69aSMichael Chan #define HWRM_TUNNEL_DST_PORT_FREE 0xa2UL 21231d357c0SMichael Chan #define HWRM_STAT_CTX_ENG_QUERY 0xafUL 213894aa69aSMichael Chan #define HWRM_STAT_CTX_ALLOC 0xb0UL 214894aa69aSMichael Chan #define HWRM_STAT_CTX_FREE 0xb1UL 215894aa69aSMichael Chan #define HWRM_STAT_CTX_QUERY 0xb2UL 216894aa69aSMichael Chan #define HWRM_STAT_CTX_CLR_STATS 0xb3UL 217d4f52de0SMichael Chan #define HWRM_PORT_QSTATS_EXT 0xb4UL 2183322479eSMichael Chan #define HWRM_PORT_PHY_MDIO_WRITE 0xb5UL 2193322479eSMichael Chan #define HWRM_PORT_PHY_MDIO_READ 0xb6UL 22072e0c9f9SMichael Chan #define HWRM_PORT_PHY_MDIO_BUS_ACQUIRE 0xb7UL 22172e0c9f9SMichael Chan #define HWRM_PORT_PHY_MDIO_BUS_RELEASE 0xb8UL 222460c2577SMichael Chan #define HWRM_PORT_QSTATS_EXT_PFC_WD 0xb9UL 2239d6b648cSMichael Chan #define HWRM_RESERVED7 0xbaUL 2249d6b648cSMichael Chan #define HWRM_PORT_TX_FIR_CFG 0xbbUL 2259d6b648cSMichael Chan #define HWRM_PORT_TX_FIR_QCFG 0xbcUL 2269d6b648cSMichael Chan #define HWRM_PORT_ECN_QSTATS 0xbdUL 22716db6323SMichael Chan #define HWRM_FW_LIVEPATCH_QUERY 0xbeUL 22816db6323SMichael Chan #define HWRM_FW_LIVEPATCH 0xbfUL 229894aa69aSMichael Chan #define HWRM_FW_RESET 0xc0UL 230894aa69aSMichael Chan #define HWRM_FW_QSTATUS 0xc1UL 2316fc92c33SMichael Chan #define HWRM_FW_HEALTH_CHECK 0xc2UL 2326fc92c33SMichael Chan #define HWRM_FW_SYNC 0xc3UL 23341136ab3SMichael Chan #define HWRM_FW_STATE_QCAPS 0xc4UL 23472e0c9f9SMichael Chan #define HWRM_FW_STATE_QUIESCE 0xc5UL 23572e0c9f9SMichael Chan #define HWRM_FW_STATE_BACKUP 0xc6UL 23672e0c9f9SMichael Chan #define HWRM_FW_STATE_RESTORE 0xc7UL 237894aa69aSMichael Chan #define HWRM_FW_SET_TIME 0xc8UL 238894aa69aSMichael Chan #define HWRM_FW_GET_TIME 0xc9UL 239894aa69aSMichael Chan #define HWRM_FW_SET_STRUCTURED_DATA 0xcaUL 240894aa69aSMichael Chan #define HWRM_FW_GET_STRUCTURED_DATA 0xcbUL 241894aa69aSMichael Chan #define HWRM_FW_IPC_MAILBOX 0xccUL 242460c2577SMichael Chan #define HWRM_FW_ECN_CFG 0xcdUL 243460c2577SMichael Chan #define HWRM_FW_ECN_QCFG 0xceUL 244bfc6e5fbSMichael Chan #define HWRM_FW_SECURE_CFG 0xcfUL 245894aa69aSMichael Chan #define HWRM_EXEC_FWD_RESP 0xd0UL 246894aa69aSMichael Chan #define HWRM_REJECT_FWD_RESP 0xd1UL 247894aa69aSMichael Chan #define HWRM_FWD_RESP 0xd2UL 248894aa69aSMichael Chan #define HWRM_FWD_ASYNC_EVENT_CMPL 0xd3UL 249d4f52de0SMichael Chan #define HWRM_OEM_CMD 0xd4UL 2504a50ddc2SMichael Chan #define HWRM_PORT_PRBS_TEST 0xd5UL 25172e0c9f9SMichael Chan #define HWRM_PORT_SFP_SIDEBAND_CFG 0xd6UL 25272e0c9f9SMichael Chan #define HWRM_PORT_SFP_SIDEBAND_QCFG 0xd7UL 25341136ab3SMichael Chan #define HWRM_FW_STATE_UNQUIESCE 0xd8UL 25441136ab3SMichael Chan #define HWRM_PORT_DSC_DUMP 0xd9UL 25578eeadb8SMichael Chan #define HWRM_PORT_EP_TX_QCFG 0xdaUL 25678eeadb8SMichael Chan #define HWRM_PORT_EP_TX_CFG 0xdbUL 25784a911dbSMichael Chan #define HWRM_PORT_CFG 0xdcUL 25884a911dbSMichael Chan #define HWRM_PORT_QCFG 0xddUL 259894aa69aSMichael Chan #define HWRM_TEMP_MONITOR_QUERY 0xe0UL 26072e0c9f9SMichael Chan #define HWRM_REG_POWER_QUERY 0xe1UL 26141136ab3SMichael Chan #define HWRM_CORE_FREQUENCY_QUERY 0xe2UL 262460c2577SMichael Chan #define HWRM_REG_POWER_HISTOGRAM 0xe3UL 263894aa69aSMichael Chan #define HWRM_WOL_FILTER_ALLOC 0xf0UL 264894aa69aSMichael Chan #define HWRM_WOL_FILTER_FREE 0xf1UL 265894aa69aSMichael Chan #define HWRM_WOL_FILTER_QCFG 0xf2UL 266894aa69aSMichael Chan #define HWRM_WOL_REASON_QCFG 0xf3UL 2673322479eSMichael Chan #define HWRM_CFA_METER_QCAPS 0xf4UL 268894aa69aSMichael Chan #define HWRM_CFA_METER_PROFILE_ALLOC 0xf5UL 269894aa69aSMichael Chan #define HWRM_CFA_METER_PROFILE_FREE 0xf6UL 270894aa69aSMichael Chan #define HWRM_CFA_METER_PROFILE_CFG 0xf7UL 271894aa69aSMichael Chan #define HWRM_CFA_METER_INSTANCE_ALLOC 0xf8UL 272894aa69aSMichael Chan #define HWRM_CFA_METER_INSTANCE_FREE 0xf9UL 2733293ec23SMichael Chan #define HWRM_CFA_METER_INSTANCE_CFG 0xfaUL 274894aa69aSMichael Chan #define HWRM_CFA_VFR_ALLOC 0xfdUL 275894aa69aSMichael Chan #define HWRM_CFA_VFR_FREE 0xfeUL 276894aa69aSMichael Chan #define HWRM_CFA_VF_PAIR_ALLOC 0x100UL 277894aa69aSMichael Chan #define HWRM_CFA_VF_PAIR_FREE 0x101UL 278894aa69aSMichael Chan #define HWRM_CFA_VF_PAIR_INFO 0x102UL 279894aa69aSMichael Chan #define HWRM_CFA_FLOW_ALLOC 0x103UL 280894aa69aSMichael Chan #define HWRM_CFA_FLOW_FREE 0x104UL 281894aa69aSMichael Chan #define HWRM_CFA_FLOW_FLUSH 0x105UL 282894aa69aSMichael Chan #define HWRM_CFA_FLOW_STATS 0x106UL 283894aa69aSMichael Chan #define HWRM_CFA_FLOW_INFO 0x107UL 284894aa69aSMichael Chan #define HWRM_CFA_DECAP_FILTER_ALLOC 0x108UL 285894aa69aSMichael Chan #define HWRM_CFA_DECAP_FILTER_FREE 0x109UL 286894aa69aSMichael Chan #define HWRM_CFA_VLAN_ANTISPOOF_QCFG 0x10aUL 287894aa69aSMichael Chan #define HWRM_CFA_REDIRECT_TUNNEL_TYPE_ALLOC 0x10bUL 288894aa69aSMichael Chan #define HWRM_CFA_REDIRECT_TUNNEL_TYPE_FREE 0x10cUL 289894aa69aSMichael Chan #define HWRM_CFA_PAIR_ALLOC 0x10dUL 290894aa69aSMichael Chan #define HWRM_CFA_PAIR_FREE 0x10eUL 291894aa69aSMichael Chan #define HWRM_CFA_PAIR_INFO 0x10fUL 292894aa69aSMichael Chan #define HWRM_FW_IPC_MSG 0x110UL 293894aa69aSMichael Chan #define HWRM_CFA_REDIRECT_TUNNEL_TYPE_INFO 0x111UL 29431d357c0SMichael Chan #define HWRM_CFA_REDIRECT_QUERY_TUNNEL_TYPE 0x112UL 2953322479eSMichael Chan #define HWRM_CFA_FLOW_AGING_TIMER_RESET 0x113UL 2963322479eSMichael Chan #define HWRM_CFA_FLOW_AGING_CFG 0x114UL 2973322479eSMichael Chan #define HWRM_CFA_FLOW_AGING_QCFG 0x115UL 2983322479eSMichael Chan #define HWRM_CFA_FLOW_AGING_QCAPS 0x116UL 2993322479eSMichael Chan #define HWRM_CFA_CTX_MEM_RGTR 0x117UL 3003322479eSMichael Chan #define HWRM_CFA_CTX_MEM_UNRGTR 0x118UL 3013322479eSMichael Chan #define HWRM_CFA_CTX_MEM_QCTX 0x119UL 3023322479eSMichael Chan #define HWRM_CFA_CTX_MEM_QCAPS 0x11aUL 3033322479eSMichael Chan #define HWRM_CFA_COUNTER_QCAPS 0x11bUL 3043322479eSMichael Chan #define HWRM_CFA_COUNTER_CFG 0x11cUL 3053322479eSMichael Chan #define HWRM_CFA_COUNTER_QCFG 0x11dUL 3063322479eSMichael Chan #define HWRM_CFA_COUNTER_QSTATS 0x11eUL 3073322479eSMichael Chan #define HWRM_CFA_TCP_FLAG_PROCESS_QCFG 0x11fUL 3083322479eSMichael Chan #define HWRM_CFA_EEM_QCAPS 0x120UL 3093322479eSMichael Chan #define HWRM_CFA_EEM_CFG 0x121UL 3103322479eSMichael Chan #define HWRM_CFA_EEM_QCFG 0x122UL 3113322479eSMichael Chan #define HWRM_CFA_EEM_OP 0x123UL 3123322479eSMichael Chan #define HWRM_CFA_ADV_FLOW_MGNT_QCAPS 0x124UL 3134a50ddc2SMichael Chan #define HWRM_CFA_TFLIB 0x125UL 31478eeadb8SMichael Chan #define HWRM_CFA_LAG_GROUP_MEMBER_RGTR 0x126UL 31578eeadb8SMichael Chan #define HWRM_CFA_LAG_GROUP_MEMBER_UNRGTR 0x127UL 316ad04cc05SMichael Chan #define HWRM_CFA_TLS_FILTER_ALLOC 0x128UL 317ad04cc05SMichael Chan #define HWRM_CFA_TLS_FILTER_FREE 0x129UL 318894aa69aSMichael Chan #define HWRM_ENGINE_CKV_STATUS 0x12eUL 319894aa69aSMichael Chan #define HWRM_ENGINE_CKV_CKEK_ADD 0x12fUL 320894aa69aSMichael Chan #define HWRM_ENGINE_CKV_CKEK_DELETE 0x130UL 321894aa69aSMichael Chan #define HWRM_ENGINE_CKV_KEY_ADD 0x131UL 322894aa69aSMichael Chan #define HWRM_ENGINE_CKV_KEY_DELETE 0x132UL 323894aa69aSMichael Chan #define HWRM_ENGINE_CKV_FLUSH 0x133UL 324894aa69aSMichael Chan #define HWRM_ENGINE_CKV_RNG_GET 0x134UL 325894aa69aSMichael Chan #define HWRM_ENGINE_CKV_KEY_GEN 0x135UL 3263293ec23SMichael Chan #define HWRM_ENGINE_CKV_KEY_LABEL_CFG 0x136UL 3274a50ddc2SMichael Chan #define HWRM_ENGINE_CKV_KEY_LABEL_QCFG 0x137UL 328894aa69aSMichael Chan #define HWRM_ENGINE_QG_CONFIG_QUERY 0x13cUL 329894aa69aSMichael Chan #define HWRM_ENGINE_QG_QUERY 0x13dUL 330894aa69aSMichael Chan #define HWRM_ENGINE_QG_METER_PROFILE_CONFIG_QUERY 0x13eUL 331894aa69aSMichael Chan #define HWRM_ENGINE_QG_METER_PROFILE_QUERY 0x13fUL 332894aa69aSMichael Chan #define HWRM_ENGINE_QG_METER_PROFILE_ALLOC 0x140UL 333894aa69aSMichael Chan #define HWRM_ENGINE_QG_METER_PROFILE_FREE 0x141UL 334894aa69aSMichael Chan #define HWRM_ENGINE_QG_METER_QUERY 0x142UL 335894aa69aSMichael Chan #define HWRM_ENGINE_QG_METER_BIND 0x143UL 336894aa69aSMichael Chan #define HWRM_ENGINE_QG_METER_UNBIND 0x144UL 337894aa69aSMichael Chan #define HWRM_ENGINE_QG_FUNC_BIND 0x145UL 338894aa69aSMichael Chan #define HWRM_ENGINE_SG_CONFIG_QUERY 0x146UL 339894aa69aSMichael Chan #define HWRM_ENGINE_SG_QUERY 0x147UL 340894aa69aSMichael Chan #define HWRM_ENGINE_SG_METER_QUERY 0x148UL 341894aa69aSMichael Chan #define HWRM_ENGINE_SG_METER_CONFIG 0x149UL 342894aa69aSMichael Chan #define HWRM_ENGINE_SG_QG_BIND 0x14aUL 343894aa69aSMichael Chan #define HWRM_ENGINE_QG_SG_UNBIND 0x14bUL 344894aa69aSMichael Chan #define HWRM_ENGINE_CONFIG_QUERY 0x154UL 345894aa69aSMichael Chan #define HWRM_ENGINE_STATS_CONFIG 0x155UL 346894aa69aSMichael Chan #define HWRM_ENGINE_STATS_CLEAR 0x156UL 347894aa69aSMichael Chan #define HWRM_ENGINE_STATS_QUERY 0x157UL 34841136ab3SMichael Chan #define HWRM_ENGINE_STATS_QUERY_CONTINUOUS_ERROR 0x158UL 349894aa69aSMichael Chan #define HWRM_ENGINE_RQ_ALLOC 0x15eUL 350894aa69aSMichael Chan #define HWRM_ENGINE_RQ_FREE 0x15fUL 351894aa69aSMichael Chan #define HWRM_ENGINE_CQ_ALLOC 0x160UL 352894aa69aSMichael Chan #define HWRM_ENGINE_CQ_FREE 0x161UL 353894aa69aSMichael Chan #define HWRM_ENGINE_NQ_ALLOC 0x162UL 354894aa69aSMichael Chan #define HWRM_ENGINE_NQ_FREE 0x163UL 355894aa69aSMichael Chan #define HWRM_ENGINE_ON_DIE_RQE_CREDITS 0x164UL 3563293ec23SMichael Chan #define HWRM_ENGINE_FUNC_QCFG 0x165UL 357894aa69aSMichael Chan #define HWRM_FUNC_RESOURCE_QCAPS 0x190UL 358894aa69aSMichael Chan #define HWRM_FUNC_VF_RESOURCE_CFG 0x191UL 3596fc92c33SMichael Chan #define HWRM_FUNC_BACKING_STORE_QCAPS 0x192UL 3606fc92c33SMichael Chan #define HWRM_FUNC_BACKING_STORE_CFG 0x193UL 3616fc92c33SMichael Chan #define HWRM_FUNC_BACKING_STORE_QCFG 0x194UL 3626fc92c33SMichael Chan #define HWRM_FUNC_VF_BW_CFG 0x195UL 3636fc92c33SMichael Chan #define HWRM_FUNC_VF_BW_QCFG 0x196UL 3642792b5b9SMichael Chan #define HWRM_FUNC_HOST_PF_IDS_QUERY 0x197UL 365460c2577SMichael Chan #define HWRM_FUNC_QSTATS_EXT 0x198UL 366bfc6e5fbSMichael Chan #define HWRM_STAT_EXT_CTX_QUERY 0x199UL 36716db6323SMichael Chan #define HWRM_FUNC_SPD_CFG 0x19aUL 36816db6323SMichael Chan #define HWRM_FUNC_SPD_QCFG 0x19bUL 36978eeadb8SMichael Chan #define HWRM_FUNC_PTP_PIN_QCFG 0x19cUL 37078eeadb8SMichael Chan #define HWRM_FUNC_PTP_PIN_CFG 0x19dUL 37178eeadb8SMichael Chan #define HWRM_FUNC_PTP_CFG 0x19eUL 37278eeadb8SMichael Chan #define HWRM_FUNC_PTP_TS_QUERY 0x19fUL 37378eeadb8SMichael Chan #define HWRM_FUNC_PTP_EXT_CFG 0x1a0UL 37478eeadb8SMichael Chan #define HWRM_FUNC_PTP_EXT_QCFG 0x1a1UL 375fbfee257SMichael Chan #define HWRM_FUNC_KEY_CTX_ALLOC 0x1a2UL 3762895c153SMichael Chan #define HWRM_FUNC_BACKING_STORE_CFG_V2 0x1a3UL 3772895c153SMichael Chan #define HWRM_FUNC_BACKING_STORE_QCFG_V2 0x1a4UL 3782895c153SMichael Chan #define HWRM_FUNC_DBR_PACING_CFG 0x1a5UL 3792895c153SMichael Chan #define HWRM_FUNC_DBR_PACING_QCFG 0x1a6UL 3802895c153SMichael Chan #define HWRM_FUNC_DBR_PACING_BROADCAST_EVENT 0x1a7UL 3812895c153SMichael Chan #define HWRM_FUNC_BACKING_STORE_QCAPS_V2 0x1a8UL 382ad04cc05SMichael Chan #define HWRM_FUNC_DBR_PACING_NQLIST_QUERY 0x1a9UL 383ad04cc05SMichael Chan #define HWRM_FUNC_DBR_RECOVERY_COMPLETED 0x1aaUL 38484a911dbSMichael Chan #define HWRM_FUNC_SYNCE_CFG 0x1abUL 38584a911dbSMichael Chan #define HWRM_FUNC_SYNCE_QCFG 0x1acUL 386894aa69aSMichael Chan #define HWRM_SELFTEST_QLIST 0x200UL 387894aa69aSMichael Chan #define HWRM_SELFTEST_EXEC 0x201UL 388894aa69aSMichael Chan #define HWRM_SELFTEST_IRQ 0x202UL 389894aa69aSMichael Chan #define HWRM_SELFTEST_RETRIEVE_SERDES_DATA 0x203UL 390d4f52de0SMichael Chan #define HWRM_PCIE_QSTATS 0x204UL 3914a50ddc2SMichael Chan #define HWRM_MFG_FRU_WRITE_CONTROL 0x205UL 3924a50ddc2SMichael Chan #define HWRM_MFG_TIMERS_QUERY 0x206UL 3934a50ddc2SMichael Chan #define HWRM_MFG_OTP_CFG 0x207UL 3944a50ddc2SMichael Chan #define HWRM_MFG_OTP_QCFG 0x208UL 3954a50ddc2SMichael Chan #define HWRM_MFG_HDMA_TEST 0x209UL 396460c2577SMichael Chan #define HWRM_MFG_FRU_EEPROM_WRITE 0x20aUL 397460c2577SMichael Chan #define HWRM_MFG_FRU_EEPROM_READ 0x20bUL 39816db6323SMichael Chan #define HWRM_MFG_SOC_IMAGE 0x20cUL 39916db6323SMichael Chan #define HWRM_MFG_SOC_QSTATUS 0x20dUL 40016db6323SMichael Chan #define HWRM_MFG_PARAM_SEEPROM_SYNC 0x20eUL 40116db6323SMichael Chan #define HWRM_MFG_PARAM_SEEPROM_READ 0x20fUL 40216db6323SMichael Chan #define HWRM_MFG_PARAM_SEEPROM_HEALTH 0x210UL 40378eeadb8SMichael Chan #define HWRM_MFG_PRVSN_EXPORT_CSR 0x211UL 40478eeadb8SMichael Chan #define HWRM_MFG_PRVSN_IMPORT_CERT 0x212UL 40578eeadb8SMichael Chan #define HWRM_MFG_PRVSN_GET_STATE 0x213UL 40678eeadb8SMichael Chan #define HWRM_MFG_GET_NVM_MEASUREMENT 0x214UL 4072895c153SMichael Chan #define HWRM_MFG_PSOC_QSTATUS 0x215UL 4082895c153SMichael Chan #define HWRM_MFG_SELFTEST_QLIST 0x216UL 4092895c153SMichael Chan #define HWRM_MFG_SELFTEST_EXEC 0x217UL 410ad04cc05SMichael Chan #define HWRM_STAT_GENERIC_QSTATS 0x218UL 411460c2577SMichael Chan #define HWRM_TF 0x2bcUL 412460c2577SMichael Chan #define HWRM_TF_VERSION_GET 0x2bdUL 413460c2577SMichael Chan #define HWRM_TF_SESSION_OPEN 0x2c6UL 414460c2577SMichael Chan #define HWRM_TF_SESSION_ATTACH 0x2c7UL 415bfc6e5fbSMichael Chan #define HWRM_TF_SESSION_REGISTER 0x2c8UL 416bfc6e5fbSMichael Chan #define HWRM_TF_SESSION_UNREGISTER 0x2c9UL 417bfc6e5fbSMichael Chan #define HWRM_TF_SESSION_CLOSE 0x2caUL 418bfc6e5fbSMichael Chan #define HWRM_TF_SESSION_QCFG 0x2cbUL 419bfc6e5fbSMichael Chan #define HWRM_TF_SESSION_RESC_QCAPS 0x2ccUL 420bfc6e5fbSMichael Chan #define HWRM_TF_SESSION_RESC_ALLOC 0x2cdUL 421bfc6e5fbSMichael Chan #define HWRM_TF_SESSION_RESC_FREE 0x2ceUL 422bfc6e5fbSMichael Chan #define HWRM_TF_SESSION_RESC_FLUSH 0x2cfUL 42378eeadb8SMichael Chan #define HWRM_TF_SESSION_RESC_INFO 0x2d0UL 42484a911dbSMichael Chan #define HWRM_TF_SESSION_HOTUP_STATE_SET 0x2d1UL 42584a911dbSMichael Chan #define HWRM_TF_SESSION_HOTUP_STATE_GET 0x2d2UL 426bfc6e5fbSMichael Chan #define HWRM_TF_TBL_TYPE_GET 0x2daUL 427bfc6e5fbSMichael Chan #define HWRM_TF_TBL_TYPE_SET 0x2dbUL 428424174f1SVasundhara Volam #define HWRM_TF_TBL_TYPE_BULK_GET 0x2dcUL 4299d6b648cSMichael Chan #define HWRM_TF_CTXT_MEM_ALLOC 0x2e2UL 4309d6b648cSMichael Chan #define HWRM_TF_CTXT_MEM_FREE 0x2e3UL 431bfc6e5fbSMichael Chan #define HWRM_TF_CTXT_MEM_RGTR 0x2e4UL 432bfc6e5fbSMichael Chan #define HWRM_TF_CTXT_MEM_UNRGTR 0x2e5UL 433bfc6e5fbSMichael Chan #define HWRM_TF_EXT_EM_QCAPS 0x2e6UL 434bfc6e5fbSMichael Chan #define HWRM_TF_EXT_EM_OP 0x2e7UL 435bfc6e5fbSMichael Chan #define HWRM_TF_EXT_EM_CFG 0x2e8UL 436bfc6e5fbSMichael Chan #define HWRM_TF_EXT_EM_QCFG 0x2e9UL 437bfc6e5fbSMichael Chan #define HWRM_TF_EM_INSERT 0x2eaUL 438bfc6e5fbSMichael Chan #define HWRM_TF_EM_DELETE 0x2ebUL 43916db6323SMichael Chan #define HWRM_TF_EM_HASH_INSERT 0x2ecUL 44078eeadb8SMichael Chan #define HWRM_TF_EM_MOVE 0x2edUL 441bfc6e5fbSMichael Chan #define HWRM_TF_TCAM_SET 0x2f8UL 442bfc6e5fbSMichael Chan #define HWRM_TF_TCAM_GET 0x2f9UL 443bfc6e5fbSMichael Chan #define HWRM_TF_TCAM_MOVE 0x2faUL 444bfc6e5fbSMichael Chan #define HWRM_TF_TCAM_FREE 0x2fbUL 445bfc6e5fbSMichael Chan #define HWRM_TF_GLOBAL_CFG_SET 0x2fcUL 446bfc6e5fbSMichael Chan #define HWRM_TF_GLOBAL_CFG_GET 0x2fdUL 4479d6b648cSMichael Chan #define HWRM_TF_IF_TBL_SET 0x2feUL 4489d6b648cSMichael Chan #define HWRM_TF_IF_TBL_GET 0x2ffUL 44984a911dbSMichael Chan #define HWRM_TFC_TBL_SCOPE_QCAPS 0x380UL 45084a911dbSMichael Chan #define HWRM_TFC_TBL_SCOPE_ID_ALLOC 0x381UL 45184a911dbSMichael Chan #define HWRM_TFC_TBL_SCOPE_CONFIG 0x382UL 45284a911dbSMichael Chan #define HWRM_TFC_TBL_SCOPE_DECONFIG 0x383UL 45384a911dbSMichael Chan #define HWRM_TFC_TBL_SCOPE_FID_ADD 0x384UL 45484a911dbSMichael Chan #define HWRM_TFC_TBL_SCOPE_FID_REM 0x385UL 45584a911dbSMichael Chan #define HWRM_TFC_TBL_SCOPE_POOL_ALLOC 0x386UL 45684a911dbSMichael Chan #define HWRM_TFC_TBL_SCOPE_POOL_FREE 0x387UL 45784a911dbSMichael Chan #define HWRM_TFC_SESSION_ID_ALLOC 0x388UL 45884a911dbSMichael Chan #define HWRM_TFC_SESSION_FID_ADD 0x389UL 45984a911dbSMichael Chan #define HWRM_TFC_SESSION_FID_REM 0x38aUL 46084a911dbSMichael Chan #define HWRM_TFC_IDENT_ALLOC 0x38bUL 46184a911dbSMichael Chan #define HWRM_TFC_IDENT_FREE 0x38cUL 46284a911dbSMichael Chan #define HWRM_TFC_IDX_TBL_ALLOC 0x38dUL 46384a911dbSMichael Chan #define HWRM_TFC_IDX_TBL_ALLOC_SET 0x38eUL 46484a911dbSMichael Chan #define HWRM_TFC_IDX_TBL_SET 0x38fUL 46584a911dbSMichael Chan #define HWRM_TFC_IDX_TBL_GET 0x390UL 46684a911dbSMichael Chan #define HWRM_TFC_IDX_TBL_FREE 0x391UL 46784a911dbSMichael Chan #define HWRM_TFC_GLOBAL_ID_ALLOC 0x392UL 468460c2577SMichael Chan #define HWRM_SV 0x400UL 469894aa69aSMichael Chan #define HWRM_DBG_READ_DIRECT 0xff10UL 470894aa69aSMichael Chan #define HWRM_DBG_READ_INDIRECT 0xff11UL 471894aa69aSMichael Chan #define HWRM_DBG_WRITE_DIRECT 0xff12UL 472894aa69aSMichael Chan #define HWRM_DBG_WRITE_INDIRECT 0xff13UL 473894aa69aSMichael Chan #define HWRM_DBG_DUMP 0xff14UL 474894aa69aSMichael Chan #define HWRM_DBG_ERASE_NVM 0xff15UL 475894aa69aSMichael Chan #define HWRM_DBG_CFG 0xff16UL 476894aa69aSMichael Chan #define HWRM_DBG_COREDUMP_LIST 0xff17UL 477894aa69aSMichael Chan #define HWRM_DBG_COREDUMP_INITIATE 0xff18UL 478894aa69aSMichael Chan #define HWRM_DBG_COREDUMP_RETRIEVE 0xff19UL 4796fc92c33SMichael Chan #define HWRM_DBG_FW_CLI 0xff1aUL 4806fc92c33SMichael Chan #define HWRM_DBG_I2C_CMD 0xff1bUL 48131d357c0SMichael Chan #define HWRM_DBG_RING_INFO_GET 0xff1cUL 4824a50ddc2SMichael Chan #define HWRM_DBG_CRASHDUMP_HEADER 0xff1dUL 4834a50ddc2SMichael Chan #define HWRM_DBG_CRASHDUMP_ERASE 0xff1eUL 484460c2577SMichael Chan #define HWRM_DBG_DRV_TRACE 0xff1fUL 485460c2577SMichael Chan #define HWRM_DBG_QCAPS 0xff20UL 486460c2577SMichael Chan #define HWRM_DBG_QCFG 0xff21UL 487460c2577SMichael Chan #define HWRM_DBG_CRASHDUMP_MEDIUM_CFG 0xff22UL 48878eeadb8SMichael Chan #define HWRM_DBG_USEQ_ALLOC 0xff23UL 48978eeadb8SMichael Chan #define HWRM_DBG_USEQ_FREE 0xff24UL 49078eeadb8SMichael Chan #define HWRM_DBG_USEQ_FLUSH 0xff25UL 49178eeadb8SMichael Chan #define HWRM_DBG_USEQ_QCAPS 0xff26UL 49278eeadb8SMichael Chan #define HWRM_DBG_USEQ_CW_CFG 0xff27UL 49378eeadb8SMichael Chan #define HWRM_DBG_USEQ_SCHED_CFG 0xff28UL 49478eeadb8SMichael Chan #define HWRM_DBG_USEQ_RUN 0xff29UL 49578eeadb8SMichael Chan #define HWRM_DBG_USEQ_DELIVERY_REQ 0xff2aUL 49678eeadb8SMichael Chan #define HWRM_DBG_USEQ_RESP_HDR 0xff2bUL 49778eeadb8SMichael Chan #define HWRM_NVM_DEFRAG 0xffecUL 498bfc6e5fbSMichael Chan #define HWRM_NVM_REQ_ARBITRATION 0xffedUL 499894aa69aSMichael Chan #define HWRM_NVM_FACTORY_DEFAULTS 0xffeeUL 500894aa69aSMichael Chan #define HWRM_NVM_VALIDATE_OPTION 0xffefUL 501894aa69aSMichael Chan #define HWRM_NVM_FLUSH 0xfff0UL 502894aa69aSMichael Chan #define HWRM_NVM_GET_VARIABLE 0xfff1UL 503894aa69aSMichael Chan #define HWRM_NVM_SET_VARIABLE 0xfff2UL 504894aa69aSMichael Chan #define HWRM_NVM_INSTALL_UPDATE 0xfff3UL 505894aa69aSMichael Chan #define HWRM_NVM_MODIFY 0xfff4UL 506894aa69aSMichael Chan #define HWRM_NVM_VERIFY_UPDATE 0xfff5UL 507894aa69aSMichael Chan #define HWRM_NVM_GET_DEV_INFO 0xfff6UL 508894aa69aSMichael Chan #define HWRM_NVM_ERASE_DIR_ENTRY 0xfff7UL 509894aa69aSMichael Chan #define HWRM_NVM_MOD_DIR_ENTRY 0xfff8UL 510894aa69aSMichael Chan #define HWRM_NVM_FIND_DIR_ENTRY 0xfff9UL 511894aa69aSMichael Chan #define HWRM_NVM_GET_DIR_ENTRIES 0xfffaUL 512894aa69aSMichael Chan #define HWRM_NVM_GET_DIR_INFO 0xfffbUL 513894aa69aSMichael Chan #define HWRM_NVM_RAW_DUMP 0xfffcUL 514894aa69aSMichael Chan #define HWRM_NVM_READ 0xfffdUL 515894aa69aSMichael Chan #define HWRM_NVM_WRITE 0xfffeUL 516894aa69aSMichael Chan #define HWRM_NVM_RAW_WRITE_BLK 0xffffUL 517894aa69aSMichael Chan #define HWRM_LAST HWRM_NVM_RAW_WRITE_BLK 518894aa69aSMichael Chan __le16 unused_0[3]; 519894aa69aSMichael Chan }; 520894aa69aSMichael Chan 521894aa69aSMichael Chan /* ret_codes (size:64b/8B) */ 522894aa69aSMichael Chan struct ret_codes { 523894aa69aSMichael Chan __le16 error_code; 524894aa69aSMichael Chan #define HWRM_ERR_CODE_SUCCESS 0x0UL 525894aa69aSMichael Chan #define HWRM_ERR_CODE_FAIL 0x1UL 526894aa69aSMichael Chan #define HWRM_ERR_CODE_INVALID_PARAMS 0x2UL 527894aa69aSMichael Chan #define HWRM_ERR_CODE_RESOURCE_ACCESS_DENIED 0x3UL 528894aa69aSMichael Chan #define HWRM_ERR_CODE_RESOURCE_ALLOC_ERROR 0x4UL 529894aa69aSMichael Chan #define HWRM_ERR_CODE_INVALID_FLAGS 0x5UL 530894aa69aSMichael Chan #define HWRM_ERR_CODE_INVALID_ENABLES 0x6UL 531894aa69aSMichael Chan #define HWRM_ERR_CODE_UNSUPPORTED_TLV 0x7UL 532894aa69aSMichael Chan #define HWRM_ERR_CODE_NO_BUFFER 0x8UL 5336fc92c33SMichael Chan #define HWRM_ERR_CODE_UNSUPPORTED_OPTION_ERR 0x9UL 5343322479eSMichael Chan #define HWRM_ERR_CODE_HOT_RESET_PROGRESS 0xaUL 5353322479eSMichael Chan #define HWRM_ERR_CODE_HOT_RESET_FAIL 0xbUL 5364a50ddc2SMichael Chan #define HWRM_ERR_CODE_NO_FLOW_COUNTER_DURING_ALLOC 0xcUL 5374a50ddc2SMichael Chan #define HWRM_ERR_CODE_KEY_HASH_COLLISION 0xdUL 5384a50ddc2SMichael Chan #define HWRM_ERR_CODE_KEY_ALREADY_EXISTS 0xeUL 539894aa69aSMichael Chan #define HWRM_ERR_CODE_HWRM_ERROR 0xfUL 54041136ab3SMichael Chan #define HWRM_ERR_CODE_BUSY 0x10UL 5419d6b648cSMichael Chan #define HWRM_ERR_CODE_RESOURCE_LOCKED 0x11UL 54278eeadb8SMichael Chan #define HWRM_ERR_CODE_PF_UNAVAILABLE 0x12UL 54331d357c0SMichael Chan #define HWRM_ERR_CODE_TLV_ENCAPSULATED_RESPONSE 0x8000UL 544894aa69aSMichael Chan #define HWRM_ERR_CODE_UNKNOWN_ERR 0xfffeUL 545894aa69aSMichael Chan #define HWRM_ERR_CODE_CMD_NOT_SUPPORTED 0xffffUL 546894aa69aSMichael Chan #define HWRM_ERR_CODE_LAST HWRM_ERR_CODE_CMD_NOT_SUPPORTED 547894aa69aSMichael Chan __le16 unused_0[3]; 548894aa69aSMichael Chan }; 549894aa69aSMichael Chan 550894aa69aSMichael Chan /* hwrm_err_output (size:128b/16B) */ 551894aa69aSMichael Chan struct hwrm_err_output { 552894aa69aSMichael Chan __le16 error_code; 553894aa69aSMichael Chan __le16 req_type; 554894aa69aSMichael Chan __le16 seq_id; 555894aa69aSMichael Chan __le16 resp_len; 556894aa69aSMichael Chan __le32 opaque_0; 557894aa69aSMichael Chan __le16 opaque_1; 558894aa69aSMichael Chan u8 cmd_err; 559894aa69aSMichael Chan u8 valid; 560894aa69aSMichael Chan }; 56187c374deSMichael Chan #define HWRM_NA_SIGNATURE ((__le32)(-1)) 562894aa69aSMichael Chan #define HWRM_MAX_REQ_LEN 128 5633293ec23SMichael Chan #define HWRM_MAX_RESP_LEN 704 564894aa69aSMichael Chan #define HW_HASH_INDEX_SIZE 0x80 56587c374deSMichael Chan #define HW_HASH_KEY_SIZE 40 566894aa69aSMichael Chan #define HWRM_RESP_VALID_KEY 1 5674a50ddc2SMichael Chan #define HWRM_TARGET_ID_BONO 0xFFF8 5684a50ddc2SMichael Chan #define HWRM_TARGET_ID_KONG 0xFFF9 5694a50ddc2SMichael Chan #define HWRM_TARGET_ID_APE 0xFFFA 5704a50ddc2SMichael Chan #define HWRM_TARGET_ID_TOOLS 0xFFFD 571894aa69aSMichael Chan #define HWRM_VERSION_MAJOR 1 57231d357c0SMichael Chan #define HWRM_VERSION_MINOR 10 57316db6323SMichael Chan #define HWRM_VERSION_UPDATE 2 57484a911dbSMichael Chan #define HWRM_VERSION_RSVD 118 57584a911dbSMichael Chan #define HWRM_VERSION_STR "1.10.2.118" 576c0c050c5SMichael Chan 577894aa69aSMichael Chan /* hwrm_ver_get_input (size:192b/24B) */ 578894aa69aSMichael Chan struct hwrm_ver_get_input { 579894aa69aSMichael Chan __le16 req_type; 580894aa69aSMichael Chan __le16 cmpl_ring; 581894aa69aSMichael Chan __le16 seq_id; 582894aa69aSMichael Chan __le16 target_id; 583894aa69aSMichael Chan __le64 resp_addr; 584894aa69aSMichael Chan u8 hwrm_intf_maj; 585894aa69aSMichael Chan u8 hwrm_intf_min; 586894aa69aSMichael Chan u8 hwrm_intf_upd; 587894aa69aSMichael Chan u8 unused_0[5]; 588894aa69aSMichael Chan }; 589894aa69aSMichael Chan 590894aa69aSMichael Chan /* hwrm_ver_get_output (size:1408b/176B) */ 591894aa69aSMichael Chan struct hwrm_ver_get_output { 592894aa69aSMichael Chan __le16 error_code; 593894aa69aSMichael Chan __le16 req_type; 594894aa69aSMichael Chan __le16 seq_id; 595894aa69aSMichael Chan __le16 resp_len; 596894aa69aSMichael Chan u8 hwrm_intf_maj_8b; 597894aa69aSMichael Chan u8 hwrm_intf_min_8b; 598894aa69aSMichael Chan u8 hwrm_intf_upd_8b; 599894aa69aSMichael Chan u8 hwrm_intf_rsvd_8b; 600894aa69aSMichael Chan u8 hwrm_fw_maj_8b; 601894aa69aSMichael Chan u8 hwrm_fw_min_8b; 602894aa69aSMichael Chan u8 hwrm_fw_bld_8b; 603894aa69aSMichael Chan u8 hwrm_fw_rsvd_8b; 604894aa69aSMichael Chan u8 mgmt_fw_maj_8b; 605894aa69aSMichael Chan u8 mgmt_fw_min_8b; 606894aa69aSMichael Chan u8 mgmt_fw_bld_8b; 607894aa69aSMichael Chan u8 mgmt_fw_rsvd_8b; 608894aa69aSMichael Chan u8 netctrl_fw_maj_8b; 609894aa69aSMichael Chan u8 netctrl_fw_min_8b; 610894aa69aSMichael Chan u8 netctrl_fw_bld_8b; 611894aa69aSMichael Chan u8 netctrl_fw_rsvd_8b; 612894aa69aSMichael Chan __le32 dev_caps_cfg; 613894aa69aSMichael Chan #define VER_GET_RESP_DEV_CAPS_CFG_SECURE_FW_UPD_SUPPORTED 0x1UL 614894aa69aSMichael Chan #define VER_GET_RESP_DEV_CAPS_CFG_FW_DCBX_AGENT_SUPPORTED 0x2UL 615894aa69aSMichael Chan #define VER_GET_RESP_DEV_CAPS_CFG_SHORT_CMD_SUPPORTED 0x4UL 616894aa69aSMichael Chan #define VER_GET_RESP_DEV_CAPS_CFG_SHORT_CMD_REQUIRED 0x8UL 61731d357c0SMichael Chan #define VER_GET_RESP_DEV_CAPS_CFG_KONG_MB_CHNL_SUPPORTED 0x10UL 61831d357c0SMichael Chan #define VER_GET_RESP_DEV_CAPS_CFG_FLOW_HANDLE_64BIT_SUPPORTED 0x20UL 61931d357c0SMichael Chan #define VER_GET_RESP_DEV_CAPS_CFG_L2_FILTER_TYPES_ROCE_OR_L2_SUPPORTED 0x40UL 62031d357c0SMichael Chan #define VER_GET_RESP_DEV_CAPS_CFG_VIRTIO_VSWITCH_OFFLOAD_SUPPORTED 0x80UL 62131d357c0SMichael Chan #define VER_GET_RESP_DEV_CAPS_CFG_TRUSTED_VF_SUPPORTED 0x100UL 6223322479eSMichael Chan #define VER_GET_RESP_DEV_CAPS_CFG_FLOW_AGING_SUPPORTED 0x200UL 6233322479eSMichael Chan #define VER_GET_RESP_DEV_CAPS_CFG_ADV_FLOW_COUNTERS_SUPPORTED 0x400UL 6243322479eSMichael Chan #define VER_GET_RESP_DEV_CAPS_CFG_CFA_EEM_SUPPORTED 0x800UL 6253322479eSMichael Chan #define VER_GET_RESP_DEV_CAPS_CFG_CFA_ADV_FLOW_MGNT_SUPPORTED 0x1000UL 6264a50ddc2SMichael Chan #define VER_GET_RESP_DEV_CAPS_CFG_CFA_TFLIB_SUPPORTED 0x2000UL 627460c2577SMichael Chan #define VER_GET_RESP_DEV_CAPS_CFG_CFA_TRUFLOW_SUPPORTED 0x4000UL 628fbfee257SMichael Chan #define VER_GET_RESP_DEV_CAPS_CFG_SECURE_BOOT_CAPABLE 0x8000UL 629894aa69aSMichael Chan u8 roce_fw_maj_8b; 630894aa69aSMichael Chan u8 roce_fw_min_8b; 631894aa69aSMichael Chan u8 roce_fw_bld_8b; 632894aa69aSMichael Chan u8 roce_fw_rsvd_8b; 633894aa69aSMichael Chan char hwrm_fw_name[16]; 634894aa69aSMichael Chan char mgmt_fw_name[16]; 635894aa69aSMichael Chan char netctrl_fw_name[16]; 6364a50ddc2SMichael Chan char active_pkg_name[16]; 637894aa69aSMichael Chan char roce_fw_name[16]; 638894aa69aSMichael Chan __le16 chip_num; 639894aa69aSMichael Chan u8 chip_rev; 640894aa69aSMichael Chan u8 chip_metal; 641894aa69aSMichael Chan u8 chip_bond_id; 642894aa69aSMichael Chan u8 chip_platform_type; 643894aa69aSMichael Chan #define VER_GET_RESP_CHIP_PLATFORM_TYPE_ASIC 0x0UL 644894aa69aSMichael Chan #define VER_GET_RESP_CHIP_PLATFORM_TYPE_FPGA 0x1UL 645894aa69aSMichael Chan #define VER_GET_RESP_CHIP_PLATFORM_TYPE_PALLADIUM 0x2UL 646894aa69aSMichael Chan #define VER_GET_RESP_CHIP_PLATFORM_TYPE_LAST VER_GET_RESP_CHIP_PLATFORM_TYPE_PALLADIUM 647894aa69aSMichael Chan __le16 max_req_win_len; 648894aa69aSMichael Chan __le16 max_resp_len; 649894aa69aSMichael Chan __le16 def_req_timeout; 650894aa69aSMichael Chan u8 flags; 651894aa69aSMichael Chan #define VER_GET_RESP_FLAGS_DEV_NOT_RDY 0x1UL 652894aa69aSMichael Chan #define VER_GET_RESP_FLAGS_EXT_VER_AVAIL 0x2UL 65316db6323SMichael Chan #define VER_GET_RESP_FLAGS_DEV_NOT_RDY_BACKING_STORE 0x4UL 654894aa69aSMichael Chan u8 unused_0[2]; 655894aa69aSMichael Chan u8 always_1; 656894aa69aSMichael Chan __le16 hwrm_intf_major; 657894aa69aSMichael Chan __le16 hwrm_intf_minor; 658894aa69aSMichael Chan __le16 hwrm_intf_build; 659894aa69aSMichael Chan __le16 hwrm_intf_patch; 660894aa69aSMichael Chan __le16 hwrm_fw_major; 661894aa69aSMichael Chan __le16 hwrm_fw_minor; 662894aa69aSMichael Chan __le16 hwrm_fw_build; 663894aa69aSMichael Chan __le16 hwrm_fw_patch; 664894aa69aSMichael Chan __le16 mgmt_fw_major; 665894aa69aSMichael Chan __le16 mgmt_fw_minor; 666894aa69aSMichael Chan __le16 mgmt_fw_build; 667894aa69aSMichael Chan __le16 mgmt_fw_patch; 668894aa69aSMichael Chan __le16 netctrl_fw_major; 669894aa69aSMichael Chan __le16 netctrl_fw_minor; 670894aa69aSMichael Chan __le16 netctrl_fw_build; 671894aa69aSMichael Chan __le16 netctrl_fw_patch; 672894aa69aSMichael Chan __le16 roce_fw_major; 673894aa69aSMichael Chan __le16 roce_fw_minor; 674894aa69aSMichael Chan __le16 roce_fw_build; 675894aa69aSMichael Chan __le16 roce_fw_patch; 676894aa69aSMichael Chan __le16 max_ext_req_len; 67778eeadb8SMichael Chan __le16 max_req_timeout; 67878eeadb8SMichael Chan u8 unused_1[3]; 679894aa69aSMichael Chan u8 valid; 680894aa69aSMichael Chan }; 681894aa69aSMichael Chan 682894aa69aSMichael Chan /* eject_cmpl (size:128b/16B) */ 683c0c050c5SMichael Chan struct eject_cmpl { 684c0c050c5SMichael Chan __le16 type; 685c0c050c5SMichael Chan #define EJECT_CMPL_TYPE_MASK 0x3fUL 686c0c050c5SMichael Chan #define EJECT_CMPL_TYPE_SFT 0 687441cabbbSMichael Chan #define EJECT_CMPL_TYPE_STAT_EJECT 0x1aUL 688894aa69aSMichael Chan #define EJECT_CMPL_TYPE_LAST EJECT_CMPL_TYPE_STAT_EJECT 6893322479eSMichael Chan #define EJECT_CMPL_FLAGS_MASK 0xffc0UL 6903322479eSMichael Chan #define EJECT_CMPL_FLAGS_SFT 6 6913322479eSMichael Chan #define EJECT_CMPL_FLAGS_ERROR 0x40UL 692c0c050c5SMichael Chan __le16 len; 693c0c050c5SMichael Chan __le32 opaque; 6943322479eSMichael Chan __le16 v; 695c0c050c5SMichael Chan #define EJECT_CMPL_V 0x1UL 6963322479eSMichael Chan #define EJECT_CMPL_ERRORS_MASK 0xfffeUL 6973322479eSMichael Chan #define EJECT_CMPL_ERRORS_SFT 1 6983322479eSMichael Chan #define EJECT_CMPL_ERRORS_BUFFER_ERROR_MASK 0xeUL 6993322479eSMichael Chan #define EJECT_CMPL_ERRORS_BUFFER_ERROR_SFT 1 7003322479eSMichael Chan #define EJECT_CMPL_ERRORS_BUFFER_ERROR_NO_BUFFER (0x0UL << 1) 7013322479eSMichael Chan #define EJECT_CMPL_ERRORS_BUFFER_ERROR_DID_NOT_FIT (0x1UL << 1) 7023322479eSMichael Chan #define EJECT_CMPL_ERRORS_BUFFER_ERROR_BAD_FORMAT (0x3UL << 1) 7033322479eSMichael Chan #define EJECT_CMPL_ERRORS_BUFFER_ERROR_FLUSH (0x5UL << 1) 7043322479eSMichael Chan #define EJECT_CMPL_ERRORS_BUFFER_ERROR_LAST EJECT_CMPL_ERRORS_BUFFER_ERROR_FLUSH 7053322479eSMichael Chan __le16 reserved16; 706c0c050c5SMichael Chan __le32 unused_2; 707c0c050c5SMichael Chan }; 708c0c050c5SMichael Chan 709894aa69aSMichael Chan /* hwrm_cmpl (size:128b/16B) */ 710c0c050c5SMichael Chan struct hwrm_cmpl { 711c0c050c5SMichael Chan __le16 type; 71287c374deSMichael Chan #define CMPL_TYPE_MASK 0x3fUL 71387c374deSMichael Chan #define CMPL_TYPE_SFT 0 71487c374deSMichael Chan #define CMPL_TYPE_HWRM_DONE 0x20UL 715894aa69aSMichael Chan #define CMPL_TYPE_LAST CMPL_TYPE_HWRM_DONE 716c0c050c5SMichael Chan __le16 sequence_id; 717c0c050c5SMichael Chan __le32 unused_1; 718c0c050c5SMichael Chan __le32 v; 71987c374deSMichael Chan #define CMPL_V 0x1UL 720c0c050c5SMichael Chan __le32 unused_3; 721c0c050c5SMichael Chan }; 722c0c050c5SMichael Chan 723894aa69aSMichael Chan /* hwrm_fwd_req_cmpl (size:128b/16B) */ 724c0c050c5SMichael Chan struct hwrm_fwd_req_cmpl { 725c0c050c5SMichael Chan __le16 req_len_type; 72687c374deSMichael Chan #define FWD_REQ_CMPL_TYPE_MASK 0x3fUL 72787c374deSMichael Chan #define FWD_REQ_CMPL_TYPE_SFT 0 72887c374deSMichael Chan #define FWD_REQ_CMPL_TYPE_HWRM_FWD_REQ 0x22UL 729894aa69aSMichael Chan #define FWD_REQ_CMPL_TYPE_LAST FWD_REQ_CMPL_TYPE_HWRM_FWD_REQ 73087c374deSMichael Chan #define FWD_REQ_CMPL_REQ_LEN_MASK 0xffc0UL 73187c374deSMichael Chan #define FWD_REQ_CMPL_REQ_LEN_SFT 6 732c0c050c5SMichael Chan __le16 source_id; 733894aa69aSMichael Chan __le32 unused0; 734c0c050c5SMichael Chan __le32 req_buf_addr_v[2]; 73587c374deSMichael Chan #define FWD_REQ_CMPL_V 0x1UL 73687c374deSMichael Chan #define FWD_REQ_CMPL_REQ_BUF_ADDR_MASK 0xfffffffeUL 73787c374deSMichael Chan #define FWD_REQ_CMPL_REQ_BUF_ADDR_SFT 1 738c0c050c5SMichael Chan }; 739c0c050c5SMichael Chan 740894aa69aSMichael Chan /* hwrm_fwd_resp_cmpl (size:128b/16B) */ 741c0c050c5SMichael Chan struct hwrm_fwd_resp_cmpl { 742c0c050c5SMichael Chan __le16 type; 74387c374deSMichael Chan #define FWD_RESP_CMPL_TYPE_MASK 0x3fUL 74487c374deSMichael Chan #define FWD_RESP_CMPL_TYPE_SFT 0 74587c374deSMichael Chan #define FWD_RESP_CMPL_TYPE_HWRM_FWD_RESP 0x24UL 746894aa69aSMichael Chan #define FWD_RESP_CMPL_TYPE_LAST FWD_RESP_CMPL_TYPE_HWRM_FWD_RESP 747c0c050c5SMichael Chan __le16 source_id; 748c0c050c5SMichael Chan __le16 resp_len; 749c0c050c5SMichael Chan __le16 unused_1; 750c0c050c5SMichael Chan __le32 resp_buf_addr_v[2]; 75187c374deSMichael Chan #define FWD_RESP_CMPL_V 0x1UL 75287c374deSMichael Chan #define FWD_RESP_CMPL_RESP_BUF_ADDR_MASK 0xfffffffeUL 75387c374deSMichael Chan #define FWD_RESP_CMPL_RESP_BUF_ADDR_SFT 1 754c0c050c5SMichael Chan }; 755c0c050c5SMichael Chan 756894aa69aSMichael Chan /* hwrm_async_event_cmpl (size:128b/16B) */ 757c0c050c5SMichael Chan struct hwrm_async_event_cmpl { 758c0c050c5SMichael Chan __le16 type; 75987c374deSMichael Chan #define ASYNC_EVENT_CMPL_TYPE_MASK 0x3fUL 76087c374deSMichael Chan #define ASYNC_EVENT_CMPL_TYPE_SFT 0 76187c374deSMichael Chan #define ASYNC_EVENT_CMPL_TYPE_HWRM_ASYNC_EVENT 0x2eUL 762894aa69aSMichael Chan #define ASYNC_EVENT_CMPL_TYPE_LAST ASYNC_EVENT_CMPL_TYPE_HWRM_ASYNC_EVENT 763c0c050c5SMichael Chan __le16 event_id; 76487c374deSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_STATUS_CHANGE 0x0UL 76587c374deSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_MTU_CHANGE 0x1UL 76687c374deSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CHANGE 0x2UL 76787c374deSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_DCB_CONFIG_CHANGE 0x3UL 76887c374deSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_PORT_CONN_NOT_ALLOWED 0x4UL 76987c374deSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CFG_NOT_ALLOWED 0x5UL 77087c374deSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CFG_CHANGE 0x6UL 77187c374deSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_PORT_PHY_CFG_CHANGE 0x7UL 77231d357c0SMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_RESET_NOTIFY 0x8UL 7733293ec23SMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_ERROR_RECOVERY 0x9UL 7749d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_RING_MONITOR_MSG 0xaUL 77587c374deSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_DRVR_UNLOAD 0x10UL 77687c374deSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_DRVR_LOAD 0x11UL 77787c374deSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_FLR_PROC_CMPLT 0x12UL 77887c374deSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_PF_DRVR_UNLOAD 0x20UL 77987c374deSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_PF_DRVR_LOAD 0x21UL 78087c374deSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_VF_FLR 0x30UL 78187c374deSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_VF_MAC_ADDR_CHANGE 0x31UL 78287c374deSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_PF_VF_COMM_STATUS_CHANGE 0x32UL 78387c374deSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_VF_CFG_CHANGE 0x33UL 78457922b0aSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_LLFC_PFC_CHANGE 0x34UL 7856fc92c33SMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_DEFAULT_VNIC_CHANGE 0x35UL 78631d357c0SMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_HW_FLOW_AGED 0x36UL 7873322479eSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_DEBUG_NOTIFICATION 0x37UL 7883322479eSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_EEM_CACHE_FLUSH_REQ 0x38UL 7893322479eSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_EEM_CACHE_FLUSH_DONE 0x39UL 7903293ec23SMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_TCP_FLAG_ACTION_CHANGE 0x3aUL 7913293ec23SMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_EEM_FLOW_ACTIVE 0x3bUL 7923293ec23SMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_EEM_CFG_CHANGE 0x3cUL 7932792b5b9SMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_TFLIB_DEFAULT_VNIC_CHANGE 0x3dUL 7942792b5b9SMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_TFLIB_LINK_STATUS_CHANGE 0x3eUL 79541136ab3SMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_QUIESCE_DONE 0x3fUL 79641136ab3SMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_DEFERRED_RESPONSE 0x40UL 797460c2577SMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_PFC_WATCHDOG_CFG_CHANGE 0x41UL 79831f67c2eSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_ECHO_REQUEST 0x42UL 7992895c153SMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_PHC_UPDATE 0x43UL 80078eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_PPS_TIMESTAMP 0x44UL 80178eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_ERROR_REPORT 0x45UL 8022895c153SMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_DOORBELL_PACING_THRESHOLD 0x46UL 803ad04cc05SMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_RSS_CHANGE 0x47UL 804ad04cc05SMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_DOORBELL_PACING_NQ_UPDATE 0x48UL 805ad04cc05SMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_MAX_RGTR_EVENT_ID 0x49UL 8063322479eSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_FW_TRACE_MSG 0xfeUL 80787c374deSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_HWRM_ERROR 0xffUL 808894aa69aSMichael Chan #define ASYNC_EVENT_CMPL_EVENT_ID_LAST ASYNC_EVENT_CMPL_EVENT_ID_HWRM_ERROR 809c0c050c5SMichael Chan __le32 event_data2; 810c0c050c5SMichael Chan u8 opaque_v; 81187c374deSMichael Chan #define ASYNC_EVENT_CMPL_V 0x1UL 81287c374deSMichael Chan #define ASYNC_EVENT_CMPL_OPAQUE_MASK 0xfeUL 81387c374deSMichael Chan #define ASYNC_EVENT_CMPL_OPAQUE_SFT 1 814c193554eSMichael Chan u8 timestamp_lo; 815c193554eSMichael Chan __le16 timestamp_hi; 816c0c050c5SMichael Chan __le32 event_data1; 817c0c050c5SMichael Chan }; 818c0c050c5SMichael Chan 819894aa69aSMichael Chan /* hwrm_async_event_cmpl_link_status_change (size:128b/16B) */ 820c0c050c5SMichael Chan struct hwrm_async_event_cmpl_link_status_change { 821c0c050c5SMichael Chan __le16 type; 82287c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_MASK 0x3fUL 82387c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_SFT 0 82487c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_HWRM_ASYNC_EVENT 0x2eUL 825894aa69aSMichael Chan #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_LAST ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_HWRM_ASYNC_EVENT 826c0c050c5SMichael Chan __le16 event_id; 82787c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_ID_LINK_STATUS_CHANGE 0x0UL 828894aa69aSMichael Chan #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_ID_LAST ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_ID_LINK_STATUS_CHANGE 829c0c050c5SMichael Chan __le32 event_data2; 830c0c050c5SMichael Chan u8 opaque_v; 83187c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_V 0x1UL 83287c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_OPAQUE_MASK 0xfeUL 83387c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_OPAQUE_SFT 1 834c193554eSMichael Chan u8 timestamp_lo; 835c193554eSMichael Chan __le16 timestamp_hi; 836c0c050c5SMichael Chan __le32 event_data1; 83787c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE 0x1UL 838894aa69aSMichael Chan #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_DOWN 0x0UL 839894aa69aSMichael Chan #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_UP 0x1UL 84087c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_LAST ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_UP 84187c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_MASK 0xeUL 84287c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_SFT 1 84387c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_ID_MASK 0xffff0UL 84487c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_ID_SFT 4 8456fc92c33SMichael Chan #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PF_ID_MASK 0xff00000UL 8466fc92c33SMichael Chan #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PF_ID_SFT 20 847c0c050c5SMichael Chan }; 848c0c050c5SMichael Chan 849894aa69aSMichael Chan /* hwrm_async_event_cmpl_port_conn_not_allowed (size:128b/16B) */ 850c0c050c5SMichael Chan struct hwrm_async_event_cmpl_port_conn_not_allowed { 851c0c050c5SMichael Chan __le16 type; 85287c374deSMichael Chan #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_MASK 0x3fUL 85387c374deSMichael Chan #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_SFT 0 85487c374deSMichael Chan #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_HWRM_ASYNC_EVENT 0x2eUL 855894aa69aSMichael Chan #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_LAST ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_HWRM_ASYNC_EVENT 856c0c050c5SMichael Chan __le16 event_id; 85787c374deSMichael Chan #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_ID_PORT_CONN_NOT_ALLOWED 0x4UL 858894aa69aSMichael Chan #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_ID_LAST ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_ID_PORT_CONN_NOT_ALLOWED 859c0c050c5SMichael Chan __le32 event_data2; 860c0c050c5SMichael Chan u8 opaque_v; 86187c374deSMichael Chan #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_V 0x1UL 86287c374deSMichael Chan #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_OPAQUE_MASK 0xfeUL 86387c374deSMichael Chan #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_OPAQUE_SFT 1 864c193554eSMichael Chan u8 timestamp_lo; 865c193554eSMichael Chan __le16 timestamp_hi; 866c0c050c5SMichael Chan __le32 event_data1; 86787c374deSMichael Chan #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_PORT_ID_MASK 0xffffUL 86887c374deSMichael Chan #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_PORT_ID_SFT 0 86987c374deSMichael Chan #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_MASK 0xff0000UL 87087c374deSMichael Chan #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_SFT 16 87187c374deSMichael Chan #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_NONE (0x0UL << 16) 87287c374deSMichael Chan #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_DISABLETX (0x1UL << 16) 87387c374deSMichael Chan #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_WARNINGMSG (0x2UL << 16) 87487c374deSMichael Chan #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_PWRDOWN (0x3UL << 16) 87587c374deSMichael Chan #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 87611f15ed3SMichael Chan }; 87711f15ed3SMichael Chan 878894aa69aSMichael Chan /* hwrm_async_event_cmpl_link_speed_cfg_change (size:128b/16B) */ 87911f15ed3SMichael Chan struct hwrm_async_event_cmpl_link_speed_cfg_change { 88011f15ed3SMichael Chan __le16 type; 88187c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_MASK 0x3fUL 88287c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_SFT 0 88387c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT 0x2eUL 884894aa69aSMichael Chan #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_LAST ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT 88511f15ed3SMichael Chan __le16 event_id; 88687c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_ID_LINK_SPEED_CFG_CHANGE 0x6UL 887894aa69aSMichael Chan #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_ID_LAST ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_ID_LINK_SPEED_CFG_CHANGE 88811f15ed3SMichael Chan __le32 event_data2; 88911f15ed3SMichael Chan u8 opaque_v; 89087c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_V 0x1UL 89187c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_OPAQUE_MASK 0xfeUL 89287c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_OPAQUE_SFT 1 89311f15ed3SMichael Chan u8 timestamp_lo; 89411f15ed3SMichael Chan __le16 timestamp_hi; 89511f15ed3SMichael Chan __le32 event_data1; 89687c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_PORT_ID_MASK 0xffffUL 89787c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_PORT_ID_SFT 0 89887c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_SUPPORTED_LINK_SPEEDS_CHANGE 0x10000UL 89987c374deSMichael Chan #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_ILLEGAL_LINK_SPEED_CFG 0x20000UL 900c0c050c5SMichael Chan }; 901c0c050c5SMichael Chan 9023322479eSMichael Chan /* hwrm_async_event_cmpl_reset_notify (size:128b/16B) */ 9033322479eSMichael Chan struct hwrm_async_event_cmpl_reset_notify { 9043322479eSMichael Chan __le16 type; 9053322479eSMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_MASK 0x3fUL 9063322479eSMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_SFT 0 9073322479eSMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_HWRM_ASYNC_EVENT 0x2eUL 9083322479eSMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_LAST ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_HWRM_ASYNC_EVENT 9093322479eSMichael Chan __le16 event_id; 9103322479eSMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_ID_RESET_NOTIFY 0x8UL 9113322479eSMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_ID_LAST ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_ID_RESET_NOTIFY 9123322479eSMichael Chan __le32 event_data2; 91316db6323SMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA2_FW_STATUS_CODE_MASK 0xffffUL 91416db6323SMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA2_FW_STATUS_CODE_SFT 0 9153322479eSMichael Chan u8 opaque_v; 9163322479eSMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_V 0x1UL 9173322479eSMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_OPAQUE_MASK 0xfeUL 9183322479eSMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_OPAQUE_SFT 1 9193322479eSMichael Chan u8 timestamp_lo; 9203322479eSMichael Chan __le16 timestamp_hi; 9213322479eSMichael Chan __le32 event_data1; 9223322479eSMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_MASK 0xffUL 9233322479eSMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_SFT 0 9243322479eSMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_DRIVER_STOP_TX_QUEUE 0x1UL 9253322479eSMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_DRIVER_IFDOWN 0x2UL 9263322479eSMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_LAST ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_DRIVER_IFDOWN 9273322479eSMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_MASK 0xff00UL 9283322479eSMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_SFT 8 9293322479eSMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_MANAGEMENT_RESET_REQUEST (0x1UL << 8) 9303322479eSMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FW_EXCEPTION_FATAL (0x2UL << 8) 9313322479eSMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FW_EXCEPTION_NON_FATAL (0x3UL << 8) 93216db6323SMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FAST_RESET (0x4UL << 8) 933fbfee257SMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FW_ACTIVATION (0x5UL << 8) 934fbfee257SMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_LAST ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FW_ACTIVATION 9353322479eSMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DELAY_IN_100MS_TICKS_MASK 0xffff0000UL 9363322479eSMichael Chan #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DELAY_IN_100MS_TICKS_SFT 16 9373322479eSMichael Chan }; 9383322479eSMichael Chan 9393293ec23SMichael Chan /* hwrm_async_event_cmpl_error_recovery (size:128b/16B) */ 9403293ec23SMichael Chan struct hwrm_async_event_cmpl_error_recovery { 9413293ec23SMichael Chan __le16 type; 9423293ec23SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_MASK 0x3fUL 9433293ec23SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_SFT 0 9443293ec23SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_HWRM_ASYNC_EVENT 0x2eUL 9453293ec23SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_HWRM_ASYNC_EVENT 9463293ec23SMichael Chan __le16 event_id; 9473293ec23SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_ID_ERROR_RECOVERY 0x9UL 9483293ec23SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_ID_LAST ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_ID_ERROR_RECOVERY 9493293ec23SMichael Chan __le32 event_data2; 9503293ec23SMichael Chan u8 opaque_v; 9513293ec23SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_V 0x1UL 9523293ec23SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_OPAQUE_MASK 0xfeUL 9533293ec23SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_OPAQUE_SFT 1 9543293ec23SMichael Chan u8 timestamp_lo; 9553293ec23SMichael Chan __le16 timestamp_hi; 9563293ec23SMichael Chan __le32 event_data1; 9573293ec23SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_MASK 0xffUL 9583293ec23SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_SFT 0 9593293ec23SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_MASTER_FUNC 0x1UL 9603293ec23SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_RECOVERY_ENABLED 0x2UL 9613293ec23SMichael Chan }; 9623293ec23SMichael Chan 9639d6b648cSMichael Chan /* hwrm_async_event_cmpl_ring_monitor_msg (size:128b/16B) */ 9649d6b648cSMichael Chan struct hwrm_async_event_cmpl_ring_monitor_msg { 9659d6b648cSMichael Chan __le16 type; 9669d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_TYPE_MASK 0x3fUL 9679d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_TYPE_SFT 0 9689d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_TYPE_HWRM_ASYNC_EVENT 0x2eUL 9699d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_TYPE_LAST ASYNC_EVENT_CMPL_RING_MONITOR_MSG_TYPE_HWRM_ASYNC_EVENT 9709d6b648cSMichael Chan __le16 event_id; 9719d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_ID_RING_MONITOR_MSG 0xaUL 9729d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_ID_LAST ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_ID_RING_MONITOR_MSG 9739d6b648cSMichael Chan __le32 event_data2; 9749d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_MASK 0xffUL 9759d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_SFT 0 9769d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_TX 0x0UL 9779d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_RX 0x1UL 9789d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_CMPL 0x2UL 9799d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_LAST ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_CMPL 9809d6b648cSMichael Chan u8 opaque_v; 9819d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_V 0x1UL 9829d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_OPAQUE_MASK 0xfeUL 9839d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_OPAQUE_SFT 1 9849d6b648cSMichael Chan u8 timestamp_lo; 9859d6b648cSMichael Chan __le16 timestamp_hi; 9869d6b648cSMichael Chan __le32 event_data1; 9879d6b648cSMichael Chan }; 9889d6b648cSMichael Chan 989894aa69aSMichael Chan /* hwrm_async_event_cmpl_vf_cfg_change (size:128b/16B) */ 99011f15ed3SMichael Chan struct hwrm_async_event_cmpl_vf_cfg_change { 99111f15ed3SMichael Chan __le16 type; 99287c374deSMichael Chan #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_MASK 0x3fUL 99387c374deSMichael Chan #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_SFT 0 99487c374deSMichael Chan #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT 0x2eUL 995894aa69aSMichael Chan #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_LAST ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT 99611f15ed3SMichael Chan __le16 event_id; 99787c374deSMichael Chan #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_ID_VF_CFG_CHANGE 0x33UL 998894aa69aSMichael Chan #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_ID_LAST ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_ID_VF_CFG_CHANGE 99911f15ed3SMichael Chan __le32 event_data2; 100078eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA2_VF_ID_MASK 0xffffUL 100178eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA2_VF_ID_SFT 0 100211f15ed3SMichael Chan u8 opaque_v; 100387c374deSMichael Chan #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_V 0x1UL 100487c374deSMichael Chan #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_OPAQUE_MASK 0xfeUL 100587c374deSMichael Chan #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_OPAQUE_SFT 1 100611f15ed3SMichael Chan u8 timestamp_lo; 100711f15ed3SMichael Chan __le16 timestamp_hi; 100811f15ed3SMichael Chan __le32 event_data1; 100987c374deSMichael Chan #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_MTU_CHANGE 0x1UL 101087c374deSMichael Chan #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_MRU_CHANGE 0x2UL 101187c374deSMichael Chan #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_DFLT_MAC_ADDR_CHANGE 0x4UL 101287c374deSMichael Chan #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_DFLT_VLAN_CHANGE 0x8UL 101331d357c0SMichael Chan #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_TRUSTED_VF_CFG_CHANGE 0x10UL 101411f15ed3SMichael Chan }; 101511f15ed3SMichael Chan 101672e0c9f9SMichael Chan /* hwrm_async_event_cmpl_default_vnic_change (size:128b/16B) */ 101772e0c9f9SMichael Chan struct hwrm_async_event_cmpl_default_vnic_change { 101872e0c9f9SMichael Chan __le16 type; 101972e0c9f9SMichael Chan #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_TYPE_MASK 0x3fUL 102072e0c9f9SMichael Chan #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_TYPE_SFT 0 102172e0c9f9SMichael Chan #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_TYPE_HWRM_ASYNC_EVENT 0x2eUL 102272e0c9f9SMichael Chan #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_TYPE_LAST ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_TYPE_HWRM_ASYNC_EVENT 102372e0c9f9SMichael Chan #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_UNUSED1_MASK 0xffc0UL 102472e0c9f9SMichael Chan #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_UNUSED1_SFT 6 102572e0c9f9SMichael Chan __le16 event_id; 102672e0c9f9SMichael Chan #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_ID_ALLOC_FREE_NOTIFICATION 0x35UL 102772e0c9f9SMichael Chan #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_ID_LAST ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_ID_ALLOC_FREE_NOTIFICATION 102872e0c9f9SMichael Chan __le32 event_data2; 102972e0c9f9SMichael Chan u8 opaque_v; 103072e0c9f9SMichael Chan #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_V 0x1UL 103172e0c9f9SMichael Chan #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_OPAQUE_MASK 0xfeUL 103272e0c9f9SMichael Chan #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_OPAQUE_SFT 1 103372e0c9f9SMichael Chan u8 timestamp_lo; 103472e0c9f9SMichael Chan __le16 timestamp_hi; 103572e0c9f9SMichael Chan __le32 event_data1; 103672e0c9f9SMichael Chan #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_DEF_VNIC_STATE_MASK 0x3UL 103772e0c9f9SMichael Chan #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_DEF_VNIC_STATE_SFT 0 103872e0c9f9SMichael Chan #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_DEF_VNIC_STATE_DEF_VNIC_ALLOC 0x1UL 103972e0c9f9SMichael Chan #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_DEF_VNIC_STATE_DEF_VNIC_FREE 0x2UL 104072e0c9f9SMichael Chan #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 104172e0c9f9SMichael Chan #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_PF_ID_MASK 0x3fcUL 104272e0c9f9SMichael Chan #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_PF_ID_SFT 2 104372e0c9f9SMichael Chan #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_VF_ID_MASK 0x3fffc00UL 104472e0c9f9SMichael Chan #define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_VF_ID_SFT 10 104572e0c9f9SMichael Chan }; 104672e0c9f9SMichael Chan 10473322479eSMichael Chan /* hwrm_async_event_cmpl_hw_flow_aged (size:128b/16B) */ 10483322479eSMichael Chan struct hwrm_async_event_cmpl_hw_flow_aged { 10493322479eSMichael Chan __le16 type; 10503322479eSMichael Chan #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_MASK 0x3fUL 10513322479eSMichael Chan #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_SFT 0 10523322479eSMichael Chan #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_HWRM_ASYNC_EVENT 0x2eUL 10533322479eSMichael Chan #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_LAST ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_HWRM_ASYNC_EVENT 10543322479eSMichael Chan __le16 event_id; 10553322479eSMichael Chan #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_ID_HW_FLOW_AGED 0x36UL 10563322479eSMichael Chan #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_ID_LAST ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_ID_HW_FLOW_AGED 10573322479eSMichael Chan __le32 event_data2; 10583322479eSMichael Chan u8 opaque_v; 10593322479eSMichael Chan #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_V 0x1UL 10603322479eSMichael Chan #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_OPAQUE_MASK 0xfeUL 10613322479eSMichael Chan #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_OPAQUE_SFT 1 10623322479eSMichael Chan u8 timestamp_lo; 10633322479eSMichael Chan __le16 timestamp_hi; 10643322479eSMichael Chan __le32 event_data1; 10653322479eSMichael Chan #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_ID_MASK 0x7fffffffUL 10663322479eSMichael Chan #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_ID_SFT 0 10673322479eSMichael Chan #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION 0x80000000UL 10683322479eSMichael Chan #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_RX (0x0UL << 31) 10693322479eSMichael Chan #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_TX (0x1UL << 31) 10703322479eSMichael Chan #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_LAST ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_TX 10713322479eSMichael Chan }; 10723322479eSMichael Chan 10733322479eSMichael Chan /* hwrm_async_event_cmpl_eem_cache_flush_req (size:128b/16B) */ 10743322479eSMichael Chan struct hwrm_async_event_cmpl_eem_cache_flush_req { 10753322479eSMichael Chan __le16 type; 10763322479eSMichael Chan #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_MASK 0x3fUL 10773322479eSMichael Chan #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_SFT 0 10783322479eSMichael Chan #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_HWRM_ASYNC_EVENT 0x2eUL 10793322479eSMichael Chan #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_LAST ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_HWRM_ASYNC_EVENT 10803322479eSMichael Chan __le16 event_id; 10813322479eSMichael Chan #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_EVENT_ID_EEM_CACHE_FLUSH_REQ 0x38UL 10823322479eSMichael Chan #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_EVENT_ID_LAST ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_EVENT_ID_EEM_CACHE_FLUSH_REQ 10833322479eSMichael Chan __le32 event_data2; 10843322479eSMichael Chan u8 opaque_v; 10853322479eSMichael Chan #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_V 0x1UL 10863322479eSMichael Chan #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_OPAQUE_MASK 0xfeUL 10873322479eSMichael Chan #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_OPAQUE_SFT 1 10883322479eSMichael Chan u8 timestamp_lo; 10893322479eSMichael Chan __le16 timestamp_hi; 10903322479eSMichael Chan __le32 event_data1; 10913322479eSMichael Chan }; 10923322479eSMichael Chan 10933322479eSMichael Chan /* hwrm_async_event_cmpl_eem_cache_flush_done (size:128b/16B) */ 10943322479eSMichael Chan struct hwrm_async_event_cmpl_eem_cache_flush_done { 10953322479eSMichael Chan __le16 type; 10963322479eSMichael Chan #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_MASK 0x3fUL 10973322479eSMichael Chan #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_SFT 0 10983322479eSMichael Chan #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_HWRM_ASYNC_EVENT 0x2eUL 10993322479eSMichael Chan #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_LAST ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_HWRM_ASYNC_EVENT 11003322479eSMichael Chan __le16 event_id; 11013322479eSMichael Chan #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_ID_EEM_CACHE_FLUSH_DONE 0x39UL 11023322479eSMichael Chan #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_ID_LAST ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_ID_EEM_CACHE_FLUSH_DONE 11033322479eSMichael Chan __le32 event_data2; 11043322479eSMichael Chan u8 opaque_v; 11053322479eSMichael Chan #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_V 0x1UL 11063322479eSMichael Chan #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_OPAQUE_MASK 0xfeUL 11073322479eSMichael Chan #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_OPAQUE_SFT 1 11083322479eSMichael Chan u8 timestamp_lo; 11093322479eSMichael Chan __le16 timestamp_hi; 11103322479eSMichael Chan __le32 event_data1; 11113322479eSMichael Chan #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_DATA1_FID_MASK 0xffffUL 11123322479eSMichael Chan #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_DATA1_FID_SFT 0 11133322479eSMichael Chan }; 11143322479eSMichael Chan 11159d6b648cSMichael Chan /* hwrm_async_event_cmpl_deferred_response (size:128b/16B) */ 11169d6b648cSMichael Chan struct hwrm_async_event_cmpl_deferred_response { 11179d6b648cSMichael Chan __le16 type; 11189d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_TYPE_MASK 0x3fUL 11199d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_TYPE_SFT 0 11209d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_TYPE_HWRM_ASYNC_EVENT 0x2eUL 11219d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_TYPE_LAST ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_TYPE_HWRM_ASYNC_EVENT 11229d6b648cSMichael Chan __le16 event_id; 11239d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_EVENT_ID_DEFERRED_RESPONSE 0x40UL 11249d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_EVENT_ID_LAST ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_EVENT_ID_DEFERRED_RESPONSE 11259d6b648cSMichael Chan __le32 event_data2; 11269d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_EVENT_DATA2_SEQ_ID_MASK 0xffffUL 11279d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_EVENT_DATA2_SEQ_ID_SFT 0 11289d6b648cSMichael Chan u8 opaque_v; 11299d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_V 0x1UL 11309d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_OPAQUE_MASK 0xfeUL 11319d6b648cSMichael Chan #define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_OPAQUE_SFT 1 11329d6b648cSMichael Chan u8 timestamp_lo; 11339d6b648cSMichael Chan __le16 timestamp_hi; 11349d6b648cSMichael Chan __le32 event_data1; 11359d6b648cSMichael Chan }; 11369d6b648cSMichael Chan 113731f67c2eSMichael Chan /* hwrm_async_event_cmpl_echo_request (size:128b/16B) */ 113831f67c2eSMichael Chan struct hwrm_async_event_cmpl_echo_request { 113931f67c2eSMichael Chan __le16 type; 114031f67c2eSMichael Chan #define ASYNC_EVENT_CMPL_ECHO_REQUEST_TYPE_MASK 0x3fUL 114131f67c2eSMichael Chan #define ASYNC_EVENT_CMPL_ECHO_REQUEST_TYPE_SFT 0 114231f67c2eSMichael Chan #define ASYNC_EVENT_CMPL_ECHO_REQUEST_TYPE_HWRM_ASYNC_EVENT 0x2eUL 114331f67c2eSMichael Chan #define ASYNC_EVENT_CMPL_ECHO_REQUEST_TYPE_LAST ASYNC_EVENT_CMPL_ECHO_REQUEST_TYPE_HWRM_ASYNC_EVENT 114431f67c2eSMichael Chan __le16 event_id; 114531f67c2eSMichael Chan #define ASYNC_EVENT_CMPL_ECHO_REQUEST_EVENT_ID_ECHO_REQUEST 0x42UL 114631f67c2eSMichael Chan #define ASYNC_EVENT_CMPL_ECHO_REQUEST_EVENT_ID_LAST ASYNC_EVENT_CMPL_ECHO_REQUEST_EVENT_ID_ECHO_REQUEST 114731f67c2eSMichael Chan __le32 event_data2; 114831f67c2eSMichael Chan u8 opaque_v; 114931f67c2eSMichael Chan #define ASYNC_EVENT_CMPL_ECHO_REQUEST_V 0x1UL 115031f67c2eSMichael Chan #define ASYNC_EVENT_CMPL_ECHO_REQUEST_OPAQUE_MASK 0xfeUL 115131f67c2eSMichael Chan #define ASYNC_EVENT_CMPL_ECHO_REQUEST_OPAQUE_SFT 1 115231f67c2eSMichael Chan u8 timestamp_lo; 115331f67c2eSMichael Chan __le16 timestamp_hi; 115431f67c2eSMichael Chan __le32 event_data1; 115531f67c2eSMichael Chan }; 115631f67c2eSMichael Chan 11572895c153SMichael Chan /* hwrm_async_event_cmpl_phc_update (size:128b/16B) */ 11582895c153SMichael Chan struct hwrm_async_event_cmpl_phc_update { 115978eeadb8SMichael Chan __le16 type; 11602895c153SMichael Chan #define ASYNC_EVENT_CMPL_PHC_UPDATE_TYPE_MASK 0x3fUL 11612895c153SMichael Chan #define ASYNC_EVENT_CMPL_PHC_UPDATE_TYPE_SFT 0 11622895c153SMichael Chan #define ASYNC_EVENT_CMPL_PHC_UPDATE_TYPE_HWRM_ASYNC_EVENT 0x2eUL 11632895c153SMichael Chan #define ASYNC_EVENT_CMPL_PHC_UPDATE_TYPE_LAST ASYNC_EVENT_CMPL_PHC_UPDATE_TYPE_HWRM_ASYNC_EVENT 116478eeadb8SMichael Chan __le16 event_id; 11652895c153SMichael Chan #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_ID_PHC_UPDATE 0x43UL 11662895c153SMichael Chan #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_ID_LAST ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_ID_PHC_UPDATE 116778eeadb8SMichael Chan __le32 event_data2; 11682895c153SMichael Chan #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA2_PHC_MASTER_FID_MASK 0xffffUL 11692895c153SMichael Chan #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA2_PHC_MASTER_FID_SFT 0 11702895c153SMichael Chan #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA2_PHC_SEC_FID_MASK 0xffff0000UL 11712895c153SMichael Chan #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA2_PHC_SEC_FID_SFT 16 117278eeadb8SMichael Chan u8 opaque_v; 11732895c153SMichael Chan #define ASYNC_EVENT_CMPL_PHC_UPDATE_V 0x1UL 11742895c153SMichael Chan #define ASYNC_EVENT_CMPL_PHC_UPDATE_OPAQUE_MASK 0xfeUL 11752895c153SMichael Chan #define ASYNC_EVENT_CMPL_PHC_UPDATE_OPAQUE_SFT 1 117678eeadb8SMichael Chan u8 timestamp_lo; 117778eeadb8SMichael Chan __le16 timestamp_hi; 117878eeadb8SMichael Chan __le32 event_data1; 11792895c153SMichael Chan #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_MASK 0xfUL 11802895c153SMichael Chan #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_SFT 0 11812895c153SMichael Chan #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_PHC_MASTER 0x1UL 11822895c153SMichael Chan #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_PHC_SECONDARY 0x2UL 11832895c153SMichael Chan #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_PHC_FAILOVER 0x3UL 11842895c153SMichael Chan #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_PHC_RTC_UPDATE 0x4UL 11852895c153SMichael Chan #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_LAST ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_PHC_RTC_UPDATE 11862895c153SMichael Chan #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_PHC_TIME_MSB_MASK 0xffff0UL 11872895c153SMichael Chan #define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_PHC_TIME_MSB_SFT 4 118878eeadb8SMichael Chan }; 118978eeadb8SMichael Chan 119078eeadb8SMichael Chan /* hwrm_async_event_cmpl_pps_timestamp (size:128b/16B) */ 119178eeadb8SMichael Chan struct hwrm_async_event_cmpl_pps_timestamp { 119278eeadb8SMichael Chan __le16 type; 119378eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_TYPE_MASK 0x3fUL 119478eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_TYPE_SFT 0 119578eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_TYPE_HWRM_ASYNC_EVENT 0x2eUL 119678eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_TYPE_LAST ASYNC_EVENT_CMPL_PPS_TIMESTAMP_TYPE_HWRM_ASYNC_EVENT 119778eeadb8SMichael Chan __le16 event_id; 119878eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_ID_PPS_TIMESTAMP 0x44UL 119978eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_ID_LAST ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_ID_PPS_TIMESTAMP 120078eeadb8SMichael Chan __le32 event_data2; 120178eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_EVENT_TYPE 0x1UL 120278eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_EVENT_TYPE_INTERNAL 0x0UL 120378eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_EVENT_TYPE_EXTERNAL 0x1UL 120478eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_EVENT_TYPE_LAST ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_EVENT_TYPE_EXTERNAL 120578eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_PIN_NUMBER_MASK 0xeUL 120678eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_PIN_NUMBER_SFT 1 120778eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_PPS_TIMESTAMP_UPPER_MASK 0xffff0UL 120878eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_PPS_TIMESTAMP_UPPER_SFT 4 120978eeadb8SMichael Chan u8 opaque_v; 121078eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_V 0x1UL 121178eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_OPAQUE_MASK 0xfeUL 121278eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_OPAQUE_SFT 1 121378eeadb8SMichael Chan u8 timestamp_lo; 121478eeadb8SMichael Chan __le16 timestamp_hi; 121578eeadb8SMichael Chan __le32 event_data1; 121678eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA1_PPS_TIMESTAMP_LOWER_MASK 0xffffffffUL 121778eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA1_PPS_TIMESTAMP_LOWER_SFT 0 121878eeadb8SMichael Chan }; 121978eeadb8SMichael Chan 122078eeadb8SMichael Chan /* hwrm_async_event_cmpl_error_report (size:128b/16B) */ 122178eeadb8SMichael Chan struct hwrm_async_event_cmpl_error_report { 122278eeadb8SMichael Chan __le16 type; 122378eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_TYPE_MASK 0x3fUL 122478eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_TYPE_SFT 0 122578eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_TYPE_HWRM_ASYNC_EVENT 0x2eUL 122678eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_TYPE_HWRM_ASYNC_EVENT 122778eeadb8SMichael Chan __le16 event_id; 122878eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_EVENT_ID_ERROR_REPORT 0x45UL 122978eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_EVENT_ID_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_EVENT_ID_ERROR_REPORT 123078eeadb8SMichael Chan __le32 event_data2; 123178eeadb8SMichael Chan u8 opaque_v; 123278eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_V 0x1UL 123378eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_OPAQUE_MASK 0xfeUL 123478eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_OPAQUE_SFT 1 123578eeadb8SMichael Chan u8 timestamp_lo; 123678eeadb8SMichael Chan __le16 timestamp_hi; 123778eeadb8SMichael Chan __le32 event_data1; 123878eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_EVENT_DATA1_ERROR_TYPE_MASK 0xffUL 123978eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_EVENT_DATA1_ERROR_TYPE_SFT 0 124078eeadb8SMichael Chan }; 124178eeadb8SMichael Chan 124278eeadb8SMichael Chan /* hwrm_async_event_cmpl_hwrm_error (size:128b/16B) */ 124378eeadb8SMichael Chan struct hwrm_async_event_cmpl_hwrm_error { 124478eeadb8SMichael Chan __le16 type; 124578eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_HWRM_ERROR_TYPE_MASK 0x3fUL 124678eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_HWRM_ERROR_TYPE_SFT 0 124778eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_HWRM_ERROR_TYPE_HWRM_ASYNC_EVENT 0x2eUL 124878eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_HWRM_ERROR_TYPE_LAST ASYNC_EVENT_CMPL_HWRM_ERROR_TYPE_HWRM_ASYNC_EVENT 124978eeadb8SMichael Chan __le16 event_id; 125078eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_ID_HWRM_ERROR 0xffUL 125178eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_ID_LAST ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_ID_HWRM_ERROR 125278eeadb8SMichael Chan __le32 event_data2; 125378eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_MASK 0xffUL 125478eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_SFT 0 125578eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_WARNING 0x0UL 125678eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_NONFATAL 0x1UL 125778eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_FATAL 0x2UL 125878eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_LAST ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_FATAL 125978eeadb8SMichael Chan u8 opaque_v; 126078eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_HWRM_ERROR_V 0x1UL 126178eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_HWRM_ERROR_OPAQUE_MASK 0xfeUL 126278eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_HWRM_ERROR_OPAQUE_SFT 1 126378eeadb8SMichael Chan u8 timestamp_lo; 126478eeadb8SMichael Chan __le16 timestamp_hi; 126578eeadb8SMichael Chan __le32 event_data1; 126678eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA1_TIMESTAMP 0x1UL 126778eeadb8SMichael Chan }; 126878eeadb8SMichael Chan 126978eeadb8SMichael Chan /* hwrm_async_event_cmpl_error_report_base (size:128b/16B) */ 127078eeadb8SMichael Chan struct hwrm_async_event_cmpl_error_report_base { 127178eeadb8SMichael Chan __le16 type; 127278eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_TYPE_MASK 0x3fUL 127378eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_TYPE_SFT 0 127478eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_TYPE_HWRM_ASYNC_EVENT 0x2eUL 127578eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_TYPE_HWRM_ASYNC_EVENT 127678eeadb8SMichael Chan __le16 event_id; 127778eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_ID_ERROR_REPORT 0x45UL 127878eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_ID_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_ID_ERROR_REPORT 127978eeadb8SMichael Chan __le32 event_data2; 128078eeadb8SMichael Chan u8 opaque_v; 128178eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_V 0x1UL 128278eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_OPAQUE_MASK 0xfeUL 128378eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_OPAQUE_SFT 1 128478eeadb8SMichael Chan u8 timestamp_lo; 128578eeadb8SMichael Chan __le16 timestamp_hi; 128678eeadb8SMichael Chan __le32 event_data1; 128778eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_MASK 0xffUL 128878eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_SFT 0 128978eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_RESERVED 0x0UL 129078eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_PAUSE_STORM 0x1UL 129178eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_INVALID_SIGNAL 0x2UL 129278eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_NVM 0x3UL 1293fbfee257SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_DOORBELL_DROP_THRESHOLD 0x4UL 1294ad04cc05SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_THERMAL_THRESHOLD 0x5UL 1295ad04cc05SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_THERMAL_THRESHOLD 129678eeadb8SMichael Chan }; 129778eeadb8SMichael Chan 129878eeadb8SMichael Chan /* hwrm_async_event_cmpl_error_report_pause_storm (size:128b/16B) */ 129978eeadb8SMichael Chan struct hwrm_async_event_cmpl_error_report_pause_storm { 130078eeadb8SMichael Chan __le16 type; 130178eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_TYPE_MASK 0x3fUL 130278eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_TYPE_SFT 0 130378eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_TYPE_HWRM_ASYNC_EVENT 0x2eUL 130478eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_TYPE_HWRM_ASYNC_EVENT 130578eeadb8SMichael Chan __le16 event_id; 130678eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_ID_ERROR_REPORT 0x45UL 130778eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_ID_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_ID_ERROR_REPORT 130878eeadb8SMichael Chan __le32 event_data2; 130978eeadb8SMichael Chan u8 opaque_v; 131078eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_V 0x1UL 131178eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_OPAQUE_MASK 0xfeUL 131278eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_OPAQUE_SFT 1 131378eeadb8SMichael Chan u8 timestamp_lo; 131478eeadb8SMichael Chan __le16 timestamp_hi; 131578eeadb8SMichael Chan __le32 event_data1; 131678eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_DATA1_ERROR_TYPE_MASK 0xffUL 131778eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_DATA1_ERROR_TYPE_SFT 0 131878eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_DATA1_ERROR_TYPE_PAUSE_STORM 0x1UL 131978eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_DATA1_ERROR_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_DATA1_ERROR_TYPE_PAUSE_STORM 132078eeadb8SMichael Chan }; 132178eeadb8SMichael Chan 132278eeadb8SMichael Chan /* hwrm_async_event_cmpl_error_report_invalid_signal (size:128b/16B) */ 132378eeadb8SMichael Chan struct hwrm_async_event_cmpl_error_report_invalid_signal { 132478eeadb8SMichael Chan __le16 type; 132578eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_TYPE_MASK 0x3fUL 132678eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_TYPE_SFT 0 132778eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_TYPE_HWRM_ASYNC_EVENT 0x2eUL 132878eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_TYPE_HWRM_ASYNC_EVENT 132978eeadb8SMichael Chan __le16 event_id; 133078eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_ID_ERROR_REPORT 0x45UL 133178eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_ID_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_ID_ERROR_REPORT 133278eeadb8SMichael Chan __le32 event_data2; 133378eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_DATA2_PIN_ID_MASK 0xffUL 133478eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_DATA2_PIN_ID_SFT 0 133578eeadb8SMichael Chan u8 opaque_v; 133678eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_V 0x1UL 133778eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_OPAQUE_MASK 0xfeUL 133878eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_OPAQUE_SFT 1 133978eeadb8SMichael Chan u8 timestamp_lo; 134078eeadb8SMichael Chan __le16 timestamp_hi; 134178eeadb8SMichael Chan __le32 event_data1; 134278eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_DATA1_ERROR_TYPE_MASK 0xffUL 134378eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_DATA1_ERROR_TYPE_SFT 0 134478eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_DATA1_ERROR_TYPE_INVALID_SIGNAL 0x2UL 134578eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_DATA1_ERROR_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_DATA1_ERROR_TYPE_INVALID_SIGNAL 134678eeadb8SMichael Chan }; 134778eeadb8SMichael Chan 134878eeadb8SMichael Chan /* hwrm_async_event_cmpl_error_report_nvm (size:128b/16B) */ 134978eeadb8SMichael Chan struct hwrm_async_event_cmpl_error_report_nvm { 135078eeadb8SMichael Chan __le16 type; 135178eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_TYPE_MASK 0x3fUL 135278eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_TYPE_SFT 0 135378eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_TYPE_HWRM_ASYNC_EVENT 0x2eUL 135478eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_TYPE_HWRM_ASYNC_EVENT 135578eeadb8SMichael Chan __le16 event_id; 135678eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_ID_ERROR_REPORT 0x45UL 135778eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_ID_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_ID_ERROR_REPORT 135878eeadb8SMichael Chan __le32 event_data2; 135978eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA2_ERR_ADDR_MASK 0xffffffffUL 136078eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA2_ERR_ADDR_SFT 0 136178eeadb8SMichael Chan u8 opaque_v; 136278eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_V 0x1UL 136378eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_OPAQUE_MASK 0xfeUL 136478eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_OPAQUE_SFT 1 136578eeadb8SMichael Chan u8 timestamp_lo; 136678eeadb8SMichael Chan __le16 timestamp_hi; 136778eeadb8SMichael Chan __le32 event_data1; 136878eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_ERROR_TYPE_MASK 0xffUL 136978eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_ERROR_TYPE_SFT 0 137078eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_ERROR_TYPE_NVM_ERROR 0x3UL 137178eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_ERROR_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_ERROR_TYPE_NVM_ERROR 137278eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_NVM_ERR_TYPE_MASK 0xff00UL 137378eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_NVM_ERR_TYPE_SFT 8 137478eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_NVM_ERR_TYPE_WRITE (0x1UL << 8) 137578eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_NVM_ERR_TYPE_ERASE (0x2UL << 8) 137678eeadb8SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_NVM_ERR_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_NVM_ERR_TYPE_ERASE 137778eeadb8SMichael Chan }; 137878eeadb8SMichael Chan 13792895c153SMichael Chan /* hwrm_async_event_cmpl_error_report_doorbell_drop_threshold (size:128b/16B) */ 13802895c153SMichael Chan struct hwrm_async_event_cmpl_error_report_doorbell_drop_threshold { 13812895c153SMichael Chan __le16 type; 13822895c153SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_TYPE_MASK 0x3fUL 13832895c153SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_TYPE_SFT 0 13842895c153SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_TYPE_HWRM_ASYNC_EVENT 0x2eUL 13852895c153SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_TYPE_HWRM_ASYNC_EVENT 13862895c153SMichael Chan __le16 event_id; 13872895c153SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_ID_ERROR_REPORT 0x45UL 13882895c153SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_ID_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_ID_ERROR_REPORT 13892895c153SMichael Chan __le32 event_data2; 13902895c153SMichael Chan u8 opaque_v; 13912895c153SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_V 0x1UL 13922895c153SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_OPAQUE_MASK 0xfeUL 13932895c153SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_OPAQUE_SFT 1 13942895c153SMichael Chan u8 timestamp_lo; 13952895c153SMichael Chan __le16 timestamp_hi; 13962895c153SMichael Chan __le32 event_data1; 13972895c153SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_DATA1_ERROR_TYPE_MASK 0xffUL 13982895c153SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_DATA1_ERROR_TYPE_SFT 0 13992895c153SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_DATA1_ERROR_TYPE_DOORBELL_DROP_THRESHOLD 0x4UL 14002895c153SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_DATA1_ERROR_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_DATA1_ERROR_TYPE_DOORBELL_DROP_THRESHOLD 1401ad04cc05SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_DATA1_EPOCH_MASK 0xffffff00UL 1402ad04cc05SMichael Chan #define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_DATA1_EPOCH_SFT 8 14032895c153SMichael Chan }; 14042895c153SMichael Chan 1405894aa69aSMichael Chan /* hwrm_func_reset_input (size:192b/24B) */ 1406c0c050c5SMichael Chan struct hwrm_func_reset_input { 1407c0c050c5SMichael Chan __le16 req_type; 1408c0c050c5SMichael Chan __le16 cmpl_ring; 1409c0c050c5SMichael Chan __le16 seq_id; 1410c0c050c5SMichael Chan __le16 target_id; 1411c0c050c5SMichael Chan __le64 resp_addr; 1412c0c050c5SMichael Chan __le32 enables; 1413c0c050c5SMichael Chan #define FUNC_RESET_REQ_ENABLES_VF_ID_VALID 0x1UL 1414c0c050c5SMichael Chan __le16 vf_id; 1415c193554eSMichael Chan u8 func_reset_level; 1416441cabbbSMichael Chan #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETALL 0x0UL 1417441cabbbSMichael Chan #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETME 0x1UL 1418441cabbbSMichael Chan #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETCHILDREN 0x2UL 1419441cabbbSMichael Chan #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETVF 0x3UL 1420894aa69aSMichael Chan #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_LAST FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETVF 1421c193554eSMichael Chan u8 unused_0; 1422c0c050c5SMichael Chan }; 1423c0c050c5SMichael Chan 1424894aa69aSMichael Chan /* hwrm_func_reset_output (size:128b/16B) */ 1425c0c050c5SMichael Chan struct hwrm_func_reset_output { 1426c0c050c5SMichael Chan __le16 error_code; 1427c0c050c5SMichael Chan __le16 req_type; 1428c0c050c5SMichael Chan __le16 seq_id; 1429c0c050c5SMichael Chan __le16 resp_len; 1430894aa69aSMichael Chan u8 unused_0[7]; 1431c0c050c5SMichael Chan u8 valid; 1432c0c050c5SMichael Chan }; 1433c0c050c5SMichael Chan 1434894aa69aSMichael Chan /* hwrm_func_getfid_input (size:192b/24B) */ 1435c0c050c5SMichael Chan struct hwrm_func_getfid_input { 1436c0c050c5SMichael Chan __le16 req_type; 1437c0c050c5SMichael Chan __le16 cmpl_ring; 1438c0c050c5SMichael Chan __le16 seq_id; 1439c0c050c5SMichael Chan __le16 target_id; 1440c0c050c5SMichael Chan __le64 resp_addr; 1441c0c050c5SMichael Chan __le32 enables; 1442c0c050c5SMichael Chan #define FUNC_GETFID_REQ_ENABLES_PCI_ID 0x1UL 1443c0c050c5SMichael Chan __le16 pci_id; 1444894aa69aSMichael Chan u8 unused_0[2]; 1445c0c050c5SMichael Chan }; 1446c0c050c5SMichael Chan 1447894aa69aSMichael Chan /* hwrm_func_getfid_output (size:128b/16B) */ 1448c0c050c5SMichael Chan struct hwrm_func_getfid_output { 1449c0c050c5SMichael Chan __le16 error_code; 1450c0c050c5SMichael Chan __le16 req_type; 1451c0c050c5SMichael Chan __le16 seq_id; 1452c0c050c5SMichael Chan __le16 resp_len; 1453c0c050c5SMichael Chan __le16 fid; 1454894aa69aSMichael Chan u8 unused_0[5]; 1455c0c050c5SMichael Chan u8 valid; 1456c0c050c5SMichael Chan }; 1457c0c050c5SMichael Chan 1458894aa69aSMichael Chan /* hwrm_func_vf_alloc_input (size:192b/24B) */ 1459c0c050c5SMichael Chan struct hwrm_func_vf_alloc_input { 1460c0c050c5SMichael Chan __le16 req_type; 1461c0c050c5SMichael Chan __le16 cmpl_ring; 1462c0c050c5SMichael Chan __le16 seq_id; 1463c0c050c5SMichael Chan __le16 target_id; 1464c0c050c5SMichael Chan __le64 resp_addr; 1465c0c050c5SMichael Chan __le32 enables; 1466c0c050c5SMichael Chan #define FUNC_VF_ALLOC_REQ_ENABLES_FIRST_VF_ID 0x1UL 1467c0c050c5SMichael Chan __le16 first_vf_id; 1468c0c050c5SMichael Chan __le16 num_vfs; 1469c0c050c5SMichael Chan }; 1470c0c050c5SMichael Chan 1471894aa69aSMichael Chan /* hwrm_func_vf_alloc_output (size:128b/16B) */ 1472c0c050c5SMichael Chan struct hwrm_func_vf_alloc_output { 1473c0c050c5SMichael Chan __le16 error_code; 1474c0c050c5SMichael Chan __le16 req_type; 1475c0c050c5SMichael Chan __le16 seq_id; 1476c0c050c5SMichael Chan __le16 resp_len; 1477c0c050c5SMichael Chan __le16 first_vf_id; 1478894aa69aSMichael Chan u8 unused_0[5]; 1479c0c050c5SMichael Chan u8 valid; 1480c0c050c5SMichael Chan }; 1481c0c050c5SMichael Chan 1482894aa69aSMichael Chan /* hwrm_func_vf_free_input (size:192b/24B) */ 1483c0c050c5SMichael Chan struct hwrm_func_vf_free_input { 1484c0c050c5SMichael Chan __le16 req_type; 1485c0c050c5SMichael Chan __le16 cmpl_ring; 1486c0c050c5SMichael Chan __le16 seq_id; 1487c0c050c5SMichael Chan __le16 target_id; 1488c0c050c5SMichael Chan __le64 resp_addr; 1489c0c050c5SMichael Chan __le32 enables; 1490c0c050c5SMichael Chan #define FUNC_VF_FREE_REQ_ENABLES_FIRST_VF_ID 0x1UL 1491c0c050c5SMichael Chan __le16 first_vf_id; 1492c0c050c5SMichael Chan __le16 num_vfs; 1493c0c050c5SMichael Chan }; 1494c0c050c5SMichael Chan 1495894aa69aSMichael Chan /* hwrm_func_vf_free_output (size:128b/16B) */ 1496c0c050c5SMichael Chan struct hwrm_func_vf_free_output { 1497c0c050c5SMichael Chan __le16 error_code; 1498c0c050c5SMichael Chan __le16 req_type; 1499c0c050c5SMichael Chan __le16 seq_id; 1500c0c050c5SMichael Chan __le16 resp_len; 1501894aa69aSMichael Chan u8 unused_0[7]; 1502c0c050c5SMichael Chan u8 valid; 1503c0c050c5SMichael Chan }; 1504c0c050c5SMichael Chan 1505894aa69aSMichael Chan /* hwrm_func_vf_cfg_input (size:448b/56B) */ 1506c0c050c5SMichael Chan struct hwrm_func_vf_cfg_input { 1507c0c050c5SMichael Chan __le16 req_type; 1508c0c050c5SMichael Chan __le16 cmpl_ring; 1509c0c050c5SMichael Chan __le16 seq_id; 1510c0c050c5SMichael Chan __le16 target_id; 1511c0c050c5SMichael Chan __le64 resp_addr; 1512c0c050c5SMichael Chan __le32 enables; 1513c0c050c5SMichael Chan #define FUNC_VF_CFG_REQ_ENABLES_MTU 0x1UL 1514c0c050c5SMichael Chan #define FUNC_VF_CFG_REQ_ENABLES_GUEST_VLAN 0x2UL 1515c193554eSMichael Chan #define FUNC_VF_CFG_REQ_ENABLES_ASYNC_EVENT_CR 0x4UL 151611f15ed3SMichael Chan #define FUNC_VF_CFG_REQ_ENABLES_DFLT_MAC_ADDR 0x8UL 1517894aa69aSMichael Chan #define FUNC_VF_CFG_REQ_ENABLES_NUM_RSSCOS_CTXS 0x10UL 1518894aa69aSMichael Chan #define FUNC_VF_CFG_REQ_ENABLES_NUM_CMPL_RINGS 0x20UL 1519894aa69aSMichael Chan #define FUNC_VF_CFG_REQ_ENABLES_NUM_TX_RINGS 0x40UL 1520894aa69aSMichael Chan #define FUNC_VF_CFG_REQ_ENABLES_NUM_RX_RINGS 0x80UL 1521894aa69aSMichael Chan #define FUNC_VF_CFG_REQ_ENABLES_NUM_L2_CTXS 0x100UL 1522894aa69aSMichael Chan #define FUNC_VF_CFG_REQ_ENABLES_NUM_VNICS 0x200UL 1523894aa69aSMichael Chan #define FUNC_VF_CFG_REQ_ENABLES_NUM_STAT_CTXS 0x400UL 1524894aa69aSMichael Chan #define FUNC_VF_CFG_REQ_ENABLES_NUM_HW_RING_GRPS 0x800UL 1525fbfee257SMichael Chan #define FUNC_VF_CFG_REQ_ENABLES_NUM_TX_KEY_CTXS 0x1000UL 1526fbfee257SMichael Chan #define FUNC_VF_CFG_REQ_ENABLES_NUM_RX_KEY_CTXS 0x2000UL 1527c0c050c5SMichael Chan __le16 mtu; 1528c0c050c5SMichael Chan __le16 guest_vlan; 1529c193554eSMichael Chan __le16 async_event_cr; 153011f15ed3SMichael Chan u8 dflt_mac_addr[6]; 1531894aa69aSMichael Chan __le32 flags; 1532894aa69aSMichael Chan #define FUNC_VF_CFG_REQ_FLAGS_TX_ASSETS_TEST 0x1UL 1533894aa69aSMichael Chan #define FUNC_VF_CFG_REQ_FLAGS_RX_ASSETS_TEST 0x2UL 1534894aa69aSMichael Chan #define FUNC_VF_CFG_REQ_FLAGS_CMPL_ASSETS_TEST 0x4UL 1535894aa69aSMichael Chan #define FUNC_VF_CFG_REQ_FLAGS_RSSCOS_CTX_ASSETS_TEST 0x8UL 1536894aa69aSMichael Chan #define FUNC_VF_CFG_REQ_FLAGS_RING_GRP_ASSETS_TEST 0x10UL 1537894aa69aSMichael Chan #define FUNC_VF_CFG_REQ_FLAGS_STAT_CTX_ASSETS_TEST 0x20UL 1538894aa69aSMichael Chan #define FUNC_VF_CFG_REQ_FLAGS_VNIC_ASSETS_TEST 0x40UL 1539894aa69aSMichael Chan #define FUNC_VF_CFG_REQ_FLAGS_L2_CTX_ASSETS_TEST 0x80UL 1540bfc6e5fbSMichael Chan #define FUNC_VF_CFG_REQ_FLAGS_PPP_PUSH_MODE_ENABLE 0x100UL 1541bfc6e5fbSMichael Chan #define FUNC_VF_CFG_REQ_FLAGS_PPP_PUSH_MODE_DISABLE 0x200UL 1542894aa69aSMichael Chan __le16 num_rsscos_ctxs; 1543894aa69aSMichael Chan __le16 num_cmpl_rings; 1544894aa69aSMichael Chan __le16 num_tx_rings; 1545894aa69aSMichael Chan __le16 num_rx_rings; 1546894aa69aSMichael Chan __le16 num_l2_ctxs; 1547894aa69aSMichael Chan __le16 num_vnics; 1548894aa69aSMichael Chan __le16 num_stat_ctxs; 1549894aa69aSMichael Chan __le16 num_hw_ring_grps; 1550fbfee257SMichael Chan __le16 num_tx_key_ctxs; 1551fbfee257SMichael Chan __le16 num_rx_key_ctxs; 1552c0c050c5SMichael Chan }; 1553c0c050c5SMichael Chan 1554894aa69aSMichael Chan /* hwrm_func_vf_cfg_output (size:128b/16B) */ 1555c0c050c5SMichael Chan struct hwrm_func_vf_cfg_output { 1556c0c050c5SMichael Chan __le16 error_code; 1557c0c050c5SMichael Chan __le16 req_type; 1558c0c050c5SMichael Chan __le16 seq_id; 1559c0c050c5SMichael Chan __le16 resp_len; 1560894aa69aSMichael Chan u8 unused_0[7]; 1561c0c050c5SMichael Chan u8 valid; 1562c0c050c5SMichael Chan }; 1563c0c050c5SMichael Chan 1564894aa69aSMichael Chan /* hwrm_func_qcaps_input (size:192b/24B) */ 1565c0c050c5SMichael Chan struct hwrm_func_qcaps_input { 1566c0c050c5SMichael Chan __le16 req_type; 1567c0c050c5SMichael Chan __le16 cmpl_ring; 1568c0c050c5SMichael Chan __le16 seq_id; 1569c0c050c5SMichael Chan __le16 target_id; 1570c0c050c5SMichael Chan __le64 resp_addr; 1571c0c050c5SMichael Chan __le16 fid; 1572894aa69aSMichael Chan u8 unused_0[6]; 1573c0c050c5SMichael Chan }; 1574c0c050c5SMichael Chan 1575fbfee257SMichael Chan /* hwrm_func_qcaps_output (size:768b/96B) */ 1576c0c050c5SMichael Chan struct hwrm_func_qcaps_output { 1577c0c050c5SMichael Chan __le16 error_code; 1578c0c050c5SMichael Chan __le16 req_type; 1579c0c050c5SMichael Chan __le16 seq_id; 1580c0c050c5SMichael Chan __le16 resp_len; 1581c0c050c5SMichael Chan __le16 fid; 1582c0c050c5SMichael Chan __le16 port_id; 1583c0c050c5SMichael Chan __le32 flags; 1584c0c050c5SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_PUSH_MODE_SUPPORTED 0x1UL 1585c0c050c5SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_GLOBAL_MSIX_AUTOMASKING 0x2UL 158611f15ed3SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_PTP_SUPPORTED 0x4UL 1587a58a3e68SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_ROCE_V1_SUPPORTED 0x8UL 1588a58a3e68SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_ROCE_V2_SUPPORTED 0x10UL 1589a58a3e68SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_WOL_MAGICPKT_SUPPORTED 0x20UL 1590a58a3e68SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_WOL_BMP_SUPPORTED 0x40UL 1591441cabbbSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_TX_RING_RL_SUPPORTED 0x80UL 1592441cabbbSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_TX_BW_CFG_SUPPORTED 0x100UL 1593441cabbbSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_VF_TX_RING_RL_SUPPORTED 0x200UL 1594441cabbbSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_VF_BW_CFG_SUPPORTED 0x400UL 159587c374deSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_STD_TX_RING_MODE_SUPPORTED 0x800UL 1596894aa69aSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_GENEVE_TUN_FLAGS_SUPPORTED 0x1000UL 1597894aa69aSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_NVGRE_TUN_FLAGS_SUPPORTED 0x2000UL 1598894aa69aSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_GRE_TUN_FLAGS_SUPPORTED 0x4000UL 1599894aa69aSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_MPLS_TUN_FLAGS_SUPPORTED 0x8000UL 1600d4f52de0SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_PCIE_STATS_SUPPORTED 0x10000UL 16016fc92c33SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_ADOPTED_PF_SUPPORTED 0x20000UL 16026fc92c33SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_ADMIN_PF_SUPPORTED 0x40000UL 16036fc92c33SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_LINK_ADMIN_STATUS_SUPPORTED 0x80000UL 160431d357c0SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_WCB_PUSH_MODE 0x100000UL 16053322479eSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_DYNAMIC_TX_RING_ALLOC 0x200000UL 16063322479eSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_HOT_RESET_CAPABLE 0x400000UL 16073293ec23SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_ERROR_RECOVERY_CAPABLE 0x800000UL 16084a50ddc2SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_STATS_SUPPORTED 0x1000000UL 160972e0c9f9SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_ERR_RECOVER_RELOAD 0x2000000UL 161072e0c9f9SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_NOTIFY_VF_DEF_VNIC_CHNG_SUPPORTED 0x4000000UL 161141136ab3SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_VLAN_ACCELERATION_TX_DISABLED 0x8000000UL 1612460c2577SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_COREDUMP_CMD_SUPPORTED 0x10000000UL 1613460c2577SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_CRASHDUMP_CMD_SUPPORTED 0x20000000UL 1614460c2577SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_PFC_WD_STATS_SUPPORTED 0x40000000UL 1615460c2577SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_DBG_QCAPS_CMD_SUPPORTED 0x80000000UL 161611f15ed3SMichael Chan u8 mac_address[6]; 1617c0c050c5SMichael Chan __le16 max_rsscos_ctx; 1618c0c050c5SMichael Chan __le16 max_cmpl_rings; 1619c0c050c5SMichael Chan __le16 max_tx_rings; 1620c0c050c5SMichael Chan __le16 max_rx_rings; 1621c0c050c5SMichael Chan __le16 max_l2_ctxs; 1622c0c050c5SMichael Chan __le16 max_vnics; 1623c0c050c5SMichael Chan __le16 first_vf_id; 1624c0c050c5SMichael Chan __le16 max_vfs; 1625c0c050c5SMichael Chan __le16 max_stat_ctx; 1626c0c050c5SMichael Chan __le32 max_encap_records; 1627c0c050c5SMichael Chan __le32 max_decap_records; 1628c0c050c5SMichael Chan __le32 max_tx_em_flows; 1629c0c050c5SMichael Chan __le32 max_tx_wm_flows; 1630c0c050c5SMichael Chan __le32 max_rx_em_flows; 1631c0c050c5SMichael Chan __le32 max_rx_wm_flows; 1632c0c050c5SMichael Chan __le32 max_mcast_filters; 1633c0c050c5SMichael Chan __le32 max_flow_id; 1634c0c050c5SMichael Chan __le32 max_hw_ring_grps; 1635441cabbbSMichael Chan __le16 max_sp_tx_rings; 163678eeadb8SMichael Chan __le16 max_msix_vfs; 1637460c2577SMichael Chan __le32 flags_ext; 1638460c2577SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_ECN_MARK_SUPPORTED 0x1UL 1639460c2577SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_ECN_STATS_SUPPORTED 0x2UL 1640460c2577SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_EXT_HW_STATS_SUPPORTED 0x4UL 1641bfc6e5fbSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_HOT_RESET_IF_SUPPORT 0x8UL 1642bfc6e5fbSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_PROXY_MODE_SUPPORT 0x10UL 1643bfc6e5fbSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_TX_PROXY_SRC_INTF_OVERRIDE_SUPPORT 0x20UL 1644bfc6e5fbSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_SCHQ_SUPPORTED 0x40UL 1645bfc6e5fbSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_PPP_PUSH_MODE_SUPPORTED 0x80UL 164616db6323SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_EVB_MODE_CFG_NOT_SUPPORTED 0x100UL 164716db6323SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_SOC_SPD_SUPPORTED 0x200UL 164816db6323SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_FW_LIVEPATCH_SUPPORTED 0x400UL 164916db6323SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_FAST_RESET_CAPABLE 0x800UL 165031f67c2eSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_TX_METADATA_CFG_CAPABLE 0x1000UL 165131f67c2eSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_NVM_OPTION_ACTION_SUPPORTED 0x2000UL 165231f67c2eSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_BD_METADATA_SUPPORTED 0x4000UL 165331f67c2eSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_ECHO_REQUEST_SUPPORTED 0x8000UL 165478eeadb8SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_NPAR_1_2_SUPPORTED 0x10000UL 165578eeadb8SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_PTP_PTM_SUPPORTED 0x20000UL 165678eeadb8SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_PTP_PPS_SUPPORTED 0x40000UL 165778eeadb8SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_VF_CFG_ASYNC_FOR_PF_SUPPORTED 0x80000UL 165878eeadb8SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_PARTITION_BW_SUPPORTED 0x100000UL 165978eeadb8SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_DFLT_VLAN_TPID_PCP_SUPPORTED 0x200000UL 166078eeadb8SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_KTLS_SUPPORTED 0x400000UL 166178eeadb8SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_EP_RATE_CONTROL 0x800000UL 166221e70778SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_MIN_BW_SUPPORTED 0x1000000UL 166321e70778SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_TX_COAL_CMPL_CAP 0x2000000UL 16642895c153SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_BS_V2_SUPPORTED 0x4000000UL 16652895c153SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_BS_V2_REQUIRED 0x8000000UL 16662895c153SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_PTP_64BIT_RTC_SUPPORTED 0x10000000UL 16672895c153SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_DBR_PACING_SUPPORTED 0x20000000UL 1668ad04cc05SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_HW_DBR_DROP_RECOV_SUPPORTED 0x40000000UL 1669ad04cc05SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT_DISABLE_CQ_OVERFLOW_DETECTION_SUPPORTED 0x80000000UL 1670bfc6e5fbSMichael Chan u8 max_schqs; 16719d6b648cSMichael Chan u8 mpc_chnls_cap; 16729d6b648cSMichael Chan #define FUNC_QCAPS_RESP_MPC_CHNLS_CAP_TCE 0x1UL 16739d6b648cSMichael Chan #define FUNC_QCAPS_RESP_MPC_CHNLS_CAP_RCE 0x2UL 16749d6b648cSMichael Chan #define FUNC_QCAPS_RESP_MPC_CHNLS_CAP_TE_CFA 0x4UL 16759d6b648cSMichael Chan #define FUNC_QCAPS_RESP_MPC_CHNLS_CAP_RE_CFA 0x8UL 16769d6b648cSMichael Chan #define FUNC_QCAPS_RESP_MPC_CHNLS_CAP_PRIMATE 0x10UL 1677fbfee257SMichael Chan __le16 max_key_ctxs_alloc; 1678ad04cc05SMichael Chan __le32 flags_ext2; 1679ad04cc05SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT2_RX_ALL_PKTS_TIMESTAMPS_SUPPORTED 0x1UL 1680ad04cc05SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT2_QUIC_SUPPORTED 0x2UL 1681ad04cc05SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT2_KDNET_SUPPORTED 0x4UL 1682ad04cc05SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT2_DBR_PACING_EXT_SUPPORTED 0x8UL 1683ad04cc05SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT2_SW_DBR_DROP_RECOVERY_SUPPORTED 0x10UL 1684ad04cc05SMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT2_GENERIC_STATS_SUPPORTED 0x20UL 168584a911dbSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT2_UDP_GSO_SUPPORTED 0x40UL 168684a911dbSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT2_SYNCE_SUPPORTED 0x80UL 168784a911dbSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT2_DBR_PACING_V0_SUPPORTED 0x100UL 168884a911dbSMichael Chan #define FUNC_QCAPS_RESP_FLAGS_EXT2_TX_PKT_TS_CMPL_SUPPORTED 0x200UL 1689ad04cc05SMichael Chan __le16 tunnel_disable_flag; 1690ad04cc05SMichael Chan #define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_VXLAN 0x1UL 1691ad04cc05SMichael Chan #define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_NGE 0x2UL 1692ad04cc05SMichael Chan #define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_NVGRE 0x4UL 1693ad04cc05SMichael Chan #define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_L2GRE 0x8UL 1694ad04cc05SMichael Chan #define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_GRE 0x10UL 1695ad04cc05SMichael Chan #define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_IPINIP 0x20UL 1696ad04cc05SMichael Chan #define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_MPLS 0x40UL 1697ad04cc05SMichael Chan #define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_PPPOE 0x80UL 1698ad04cc05SMichael Chan u8 unused_1; 1699c0c050c5SMichael Chan u8 valid; 1700c0c050c5SMichael Chan }; 1701c0c050c5SMichael Chan 1702894aa69aSMichael Chan /* hwrm_func_qcfg_input (size:192b/24B) */ 170311f15ed3SMichael Chan struct hwrm_func_qcfg_input { 170411f15ed3SMichael Chan __le16 req_type; 170511f15ed3SMichael Chan __le16 cmpl_ring; 170611f15ed3SMichael Chan __le16 seq_id; 170711f15ed3SMichael Chan __le16 target_id; 170811f15ed3SMichael Chan __le64 resp_addr; 170911f15ed3SMichael Chan __le16 fid; 1710894aa69aSMichael Chan u8 unused_0[6]; 171111f15ed3SMichael Chan }; 171211f15ed3SMichael Chan 1713fbfee257SMichael Chan /* hwrm_func_qcfg_output (size:896b/112B) */ 171411f15ed3SMichael Chan struct hwrm_func_qcfg_output { 171511f15ed3SMichael Chan __le16 error_code; 171611f15ed3SMichael Chan __le16 req_type; 171711f15ed3SMichael Chan __le16 seq_id; 171811f15ed3SMichael Chan __le16 resp_len; 171911f15ed3SMichael Chan __le16 fid; 172011f15ed3SMichael Chan __le16 port_id; 172111f15ed3SMichael Chan __le16 vlan; 1722a58a3e68SMichael Chan __le16 flags; 1723a58a3e68SMichael Chan #define FUNC_QCFG_RESP_FLAGS_OOB_WOL_MAGICPKT_ENABLED 0x1UL 1724a58a3e68SMichael Chan #define FUNC_QCFG_RESP_FLAGS_OOB_WOL_BMP_ENABLED 0x2UL 1725441cabbbSMichael Chan #define FUNC_QCFG_RESP_FLAGS_FW_DCBX_AGENT_ENABLED 0x4UL 172687c374deSMichael Chan #define FUNC_QCFG_RESP_FLAGS_STD_TX_RING_MODE_ENABLED 0x8UL 17278eb992e8SMichael Chan #define FUNC_QCFG_RESP_FLAGS_FW_LLDP_AGENT_ENABLED 0x10UL 17288eb992e8SMichael Chan #define FUNC_QCFG_RESP_FLAGS_MULTI_HOST 0x20UL 172931d357c0SMichael Chan #define FUNC_QCFG_RESP_FLAGS_TRUSTED_VF 0x40UL 17303322479eSMichael Chan #define FUNC_QCFG_RESP_FLAGS_SECURE_MODE_ENABLED 0x80UL 17312792b5b9SMichael Chan #define FUNC_QCFG_RESP_FLAGS_PREBOOT_LEGACY_L2_RINGS 0x100UL 1732bfc6e5fbSMichael Chan #define FUNC_QCFG_RESP_FLAGS_HOT_RESET_ALLOWED 0x200UL 1733bfc6e5fbSMichael Chan #define FUNC_QCFG_RESP_FLAGS_PPP_PUSH_MODE_ENABLED 0x400UL 17349d6b648cSMichael Chan #define FUNC_QCFG_RESP_FLAGS_RING_MONITOR_ENABLED 0x800UL 173516db6323SMichael Chan #define FUNC_QCFG_RESP_FLAGS_FAST_RESET_ALLOWED 0x1000UL 173631f67c2eSMichael Chan #define FUNC_QCFG_RESP_FLAGS_MULTI_ROOT 0x2000UL 173778eeadb8SMichael Chan #define FUNC_QCFG_RESP_FLAGS_ENABLE_RDMA_SRIOV 0x4000UL 173811f15ed3SMichael Chan u8 mac_address[6]; 173911f15ed3SMichael Chan __le16 pci_id; 174011f15ed3SMichael Chan __le16 alloc_rsscos_ctx; 174111f15ed3SMichael Chan __le16 alloc_cmpl_rings; 174211f15ed3SMichael Chan __le16 alloc_tx_rings; 174311f15ed3SMichael Chan __le16 alloc_rx_rings; 174411f15ed3SMichael Chan __le16 alloc_l2_ctx; 174511f15ed3SMichael Chan __le16 alloc_vnics; 174678eeadb8SMichael Chan __le16 admin_mtu; 174711f15ed3SMichael Chan __le16 mru; 174811f15ed3SMichael Chan __le16 stat_ctx_id; 174911f15ed3SMichael Chan u8 port_partition_type; 1750441cabbbSMichael Chan #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_SPF 0x0UL 1751441cabbbSMichael Chan #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_MPFS 0x1UL 1752441cabbbSMichael Chan #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_0 0x2UL 1753441cabbbSMichael Chan #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_5 0x3UL 1754441cabbbSMichael Chan #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR2_0 0x4UL 175578eeadb8SMichael Chan #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_2 0x5UL 1756441cabbbSMichael Chan #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_UNKNOWN 0xffUL 1757894aa69aSMichael Chan #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_LAST FUNC_QCFG_RESP_PORT_PARTITION_TYPE_UNKNOWN 17588eb992e8SMichael Chan u8 port_pf_cnt; 17598eb992e8SMichael Chan #define FUNC_QCFG_RESP_PORT_PF_CNT_UNAVAIL 0x0UL 1760894aa69aSMichael Chan #define FUNC_QCFG_RESP_PORT_PF_CNT_LAST FUNC_QCFG_RESP_PORT_PF_CNT_UNAVAIL 176111f15ed3SMichael Chan __le16 dflt_vnic_id; 176257922b0aSMichael Chan __le16 max_mtu_configured; 176311f15ed3SMichael Chan __le32 min_bw; 1764441cabbbSMichael Chan #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_MASK 0xfffffffUL 1765441cabbbSMichael Chan #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_SFT 0 1766bac9a7e0SMichael Chan #define FUNC_QCFG_RESP_MIN_BW_SCALE 0x10000000UL 1767bac9a7e0SMichael Chan #define FUNC_QCFG_RESP_MIN_BW_SCALE_BITS (0x0UL << 28) 1768bac9a7e0SMichael Chan #define FUNC_QCFG_RESP_MIN_BW_SCALE_BYTES (0x1UL << 28) 1769bac9a7e0SMichael Chan #define FUNC_QCFG_RESP_MIN_BW_SCALE_LAST FUNC_QCFG_RESP_MIN_BW_SCALE_BYTES 1770441cabbbSMichael Chan #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 1771441cabbbSMichael Chan #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_SFT 29 1772bac9a7e0SMichael Chan #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 1773bac9a7e0SMichael Chan #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 1774bac9a7e0SMichael Chan #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 1775bac9a7e0SMichael Chan #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 1776441cabbbSMichael Chan #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 1777441cabbbSMichael Chan #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 1778441cabbbSMichael Chan #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_LAST FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_INVALID 177911f15ed3SMichael Chan __le32 max_bw; 1780441cabbbSMichael Chan #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_MASK 0xfffffffUL 1781441cabbbSMichael Chan #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_SFT 0 1782bac9a7e0SMichael Chan #define FUNC_QCFG_RESP_MAX_BW_SCALE 0x10000000UL 1783bac9a7e0SMichael Chan #define FUNC_QCFG_RESP_MAX_BW_SCALE_BITS (0x0UL << 28) 1784bac9a7e0SMichael Chan #define FUNC_QCFG_RESP_MAX_BW_SCALE_BYTES (0x1UL << 28) 1785bac9a7e0SMichael Chan #define FUNC_QCFG_RESP_MAX_BW_SCALE_LAST FUNC_QCFG_RESP_MAX_BW_SCALE_BYTES 1786441cabbbSMichael Chan #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 1787441cabbbSMichael Chan #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_SFT 29 1788bac9a7e0SMichael Chan #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 1789bac9a7e0SMichael Chan #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 1790bac9a7e0SMichael Chan #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 1791bac9a7e0SMichael Chan #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 1792441cabbbSMichael Chan #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 1793441cabbbSMichael Chan #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 1794441cabbbSMichael Chan #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_LAST FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_INVALID 179511f15ed3SMichael Chan u8 evb_mode; 1796441cabbbSMichael Chan #define FUNC_QCFG_RESP_EVB_MODE_NO_EVB 0x0UL 1797441cabbbSMichael Chan #define FUNC_QCFG_RESP_EVB_MODE_VEB 0x1UL 1798441cabbbSMichael Chan #define FUNC_QCFG_RESP_EVB_MODE_VEPA 0x2UL 1799894aa69aSMichael Chan #define FUNC_QCFG_RESP_EVB_MODE_LAST FUNC_QCFG_RESP_EVB_MODE_VEPA 1800d4f52de0SMichael Chan u8 options; 1801d4f52de0SMichael Chan #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_MASK 0x3UL 1802d4f52de0SMichael Chan #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SFT 0 1803d4f52de0SMichael Chan #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SIZE_64 0x0UL 1804d4f52de0SMichael Chan #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SIZE_128 0x1UL 1805d4f52de0SMichael Chan #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_LAST FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SIZE_128 18066fc92c33SMichael Chan #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_MASK 0xcUL 18076fc92c33SMichael Chan #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_SFT 2 18086fc92c33SMichael Chan #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_FORCED_DOWN (0x0UL << 2) 18096fc92c33SMichael Chan #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_FORCED_UP (0x1UL << 2) 18106fc92c33SMichael Chan #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_AUTO (0x2UL << 2) 18116fc92c33SMichael Chan #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_LAST FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_AUTO 18126fc92c33SMichael Chan #define FUNC_QCFG_RESP_OPTIONS_RSVD_MASK 0xf0UL 18136fc92c33SMichael Chan #define FUNC_QCFG_RESP_OPTIONS_RSVD_SFT 4 1814441cabbbSMichael Chan __le16 alloc_vfs; 181511f15ed3SMichael Chan __le32 alloc_mcast_filters; 181611f15ed3SMichael Chan __le32 alloc_hw_ring_grps; 1817441cabbbSMichael Chan __le16 alloc_sp_tx_rings; 1818894aa69aSMichael Chan __le16 alloc_stat_ctx; 18196fc92c33SMichael Chan __le16 alloc_msix; 18203322479eSMichael Chan __le16 registered_vfs; 182172e0c9f9SMichael Chan __le16 l2_doorbell_bar_size_kb; 182272e0c9f9SMichael Chan u8 unused_1; 18233322479eSMichael Chan u8 always_1; 18243322479eSMichael Chan __le32 reset_addr_poll; 182541136ab3SMichael Chan __le16 legacy_l2_db_size_kb; 1826460c2577SMichael Chan __le16 svif_info; 1827460c2577SMichael Chan #define FUNC_QCFG_RESP_SVIF_INFO_SVIF_MASK 0x7fffUL 1828460c2577SMichael Chan #define FUNC_QCFG_RESP_SVIF_INFO_SVIF_SFT 0 1829460c2577SMichael Chan #define FUNC_QCFG_RESP_SVIF_INFO_SVIF_VALID 0x8000UL 18309d6b648cSMichael Chan u8 mpc_chnls; 18319d6b648cSMichael Chan #define FUNC_QCFG_RESP_MPC_CHNLS_TCE_ENABLED 0x1UL 18329d6b648cSMichael Chan #define FUNC_QCFG_RESP_MPC_CHNLS_RCE_ENABLED 0x2UL 18339d6b648cSMichael Chan #define FUNC_QCFG_RESP_MPC_CHNLS_TE_CFA_ENABLED 0x4UL 18349d6b648cSMichael Chan #define FUNC_QCFG_RESP_MPC_CHNLS_RE_CFA_ENABLED 0x8UL 18359d6b648cSMichael Chan #define FUNC_QCFG_RESP_MPC_CHNLS_PRIMATE_ENABLED 0x10UL 183684a911dbSMichael Chan u8 db_page_size; 183784a911dbSMichael Chan #define FUNC_QCFG_RESP_DB_PAGE_SIZE_4KB 0x0UL 183884a911dbSMichael Chan #define FUNC_QCFG_RESP_DB_PAGE_SIZE_8KB 0x1UL 183984a911dbSMichael Chan #define FUNC_QCFG_RESP_DB_PAGE_SIZE_16KB 0x2UL 184084a911dbSMichael Chan #define FUNC_QCFG_RESP_DB_PAGE_SIZE_32KB 0x3UL 184184a911dbSMichael Chan #define FUNC_QCFG_RESP_DB_PAGE_SIZE_64KB 0x4UL 184284a911dbSMichael Chan #define FUNC_QCFG_RESP_DB_PAGE_SIZE_128KB 0x5UL 184384a911dbSMichael Chan #define FUNC_QCFG_RESP_DB_PAGE_SIZE_256KB 0x6UL 184484a911dbSMichael Chan #define FUNC_QCFG_RESP_DB_PAGE_SIZE_512KB 0x7UL 184584a911dbSMichael Chan #define FUNC_QCFG_RESP_DB_PAGE_SIZE_1MB 0x8UL 184684a911dbSMichael Chan #define FUNC_QCFG_RESP_DB_PAGE_SIZE_2MB 0x9UL 184784a911dbSMichael Chan #define FUNC_QCFG_RESP_DB_PAGE_SIZE_4MB 0xaUL 184884a911dbSMichael Chan #define FUNC_QCFG_RESP_DB_PAGE_SIZE_LAST FUNC_QCFG_RESP_DB_PAGE_SIZE_4MB 184984a911dbSMichael Chan u8 unused_2[2]; 185078eeadb8SMichael Chan __le32 partition_min_bw; 185178eeadb8SMichael Chan #define FUNC_QCFG_RESP_PARTITION_MIN_BW_BW_VALUE_MASK 0xfffffffUL 185278eeadb8SMichael Chan #define FUNC_QCFG_RESP_PARTITION_MIN_BW_BW_VALUE_SFT 0 185378eeadb8SMichael Chan #define FUNC_QCFG_RESP_PARTITION_MIN_BW_SCALE 0x10000000UL 185478eeadb8SMichael Chan #define FUNC_QCFG_RESP_PARTITION_MIN_BW_SCALE_BITS (0x0UL << 28) 185578eeadb8SMichael Chan #define FUNC_QCFG_RESP_PARTITION_MIN_BW_SCALE_BYTES (0x1UL << 28) 185678eeadb8SMichael Chan #define FUNC_QCFG_RESP_PARTITION_MIN_BW_SCALE_LAST FUNC_QCFG_RESP_PARTITION_MIN_BW_SCALE_BYTES 185778eeadb8SMichael Chan #define FUNC_QCFG_RESP_PARTITION_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 185878eeadb8SMichael Chan #define FUNC_QCFG_RESP_PARTITION_MIN_BW_BW_VALUE_UNIT_SFT 29 185978eeadb8SMichael Chan #define FUNC_QCFG_RESP_PARTITION_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 186078eeadb8SMichael Chan #define FUNC_QCFG_RESP_PARTITION_MIN_BW_BW_VALUE_UNIT_LAST FUNC_QCFG_RESP_PARTITION_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 186178eeadb8SMichael Chan __le32 partition_max_bw; 186278eeadb8SMichael Chan #define FUNC_QCFG_RESP_PARTITION_MAX_BW_BW_VALUE_MASK 0xfffffffUL 186378eeadb8SMichael Chan #define FUNC_QCFG_RESP_PARTITION_MAX_BW_BW_VALUE_SFT 0 186478eeadb8SMichael Chan #define FUNC_QCFG_RESP_PARTITION_MAX_BW_SCALE 0x10000000UL 186578eeadb8SMichael Chan #define FUNC_QCFG_RESP_PARTITION_MAX_BW_SCALE_BITS (0x0UL << 28) 186678eeadb8SMichael Chan #define FUNC_QCFG_RESP_PARTITION_MAX_BW_SCALE_BYTES (0x1UL << 28) 186778eeadb8SMichael Chan #define FUNC_QCFG_RESP_PARTITION_MAX_BW_SCALE_LAST FUNC_QCFG_RESP_PARTITION_MAX_BW_SCALE_BYTES 186878eeadb8SMichael Chan #define FUNC_QCFG_RESP_PARTITION_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 186978eeadb8SMichael Chan #define FUNC_QCFG_RESP_PARTITION_MAX_BW_BW_VALUE_UNIT_SFT 29 187078eeadb8SMichael Chan #define FUNC_QCFG_RESP_PARTITION_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 187178eeadb8SMichael Chan #define FUNC_QCFG_RESP_PARTITION_MAX_BW_BW_VALUE_UNIT_LAST FUNC_QCFG_RESP_PARTITION_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 187278eeadb8SMichael Chan __le16 host_mtu; 1873fbfee257SMichael Chan __le16 alloc_tx_key_ctxs; 1874fbfee257SMichael Chan __le16 alloc_rx_key_ctxs; 1875ad04cc05SMichael Chan u8 port_kdnet_mode; 1876ad04cc05SMichael Chan #define FUNC_QCFG_RESP_PORT_KDNET_MODE_DISABLED 0x0UL 1877ad04cc05SMichael Chan #define FUNC_QCFG_RESP_PORT_KDNET_MODE_ENABLED 0x1UL 1878ad04cc05SMichael Chan #define FUNC_QCFG_RESP_PORT_KDNET_MODE_LAST FUNC_QCFG_RESP_PORT_KDNET_MODE_ENABLED 1879ad04cc05SMichael Chan u8 kdnet_pcie_function; 1880ad04cc05SMichael Chan __le16 port_kdnet_fid; 1881ad04cc05SMichael Chan u8 unused_3; 188211f15ed3SMichael Chan u8 valid; 188311f15ed3SMichael Chan }; 188411f15ed3SMichael Chan 1885ad04cc05SMichael Chan /* hwrm_func_cfg_input (size:960b/120B) */ 1886c0c050c5SMichael Chan struct hwrm_func_cfg_input { 1887c0c050c5SMichael Chan __le16 req_type; 1888c0c050c5SMichael Chan __le16 cmpl_ring; 1889c0c050c5SMichael Chan __le16 seq_id; 1890c0c050c5SMichael Chan __le16 target_id; 1891c0c050c5SMichael Chan __le64 resp_addr; 1892c193554eSMichael Chan __le16 fid; 18936fc92c33SMichael Chan __le16 num_msix; 1894c0c050c5SMichael Chan __le32 flags; 18958eb992e8SMichael Chan #define FUNC_CFG_REQ_FLAGS_SRC_MAC_ADDR_CHECK_DISABLE 0x1UL 18968eb992e8SMichael Chan #define FUNC_CFG_REQ_FLAGS_SRC_MAC_ADDR_CHECK_ENABLE 0x2UL 18978eb992e8SMichael Chan #define FUNC_CFG_REQ_FLAGS_RSVD_MASK 0x1fcUL 18988eb992e8SMichael Chan #define FUNC_CFG_REQ_FLAGS_RSVD_SFT 2 18998eb992e8SMichael Chan #define FUNC_CFG_REQ_FLAGS_STD_TX_RING_MODE_ENABLE 0x200UL 19008eb992e8SMichael Chan #define FUNC_CFG_REQ_FLAGS_STD_TX_RING_MODE_DISABLE 0x400UL 19018eb992e8SMichael Chan #define FUNC_CFG_REQ_FLAGS_VIRT_MAC_PERSIST 0x800UL 1902acb20054SMichael Chan #define FUNC_CFG_REQ_FLAGS_NO_AUTOCLEAR_STATISTIC 0x1000UL 19036a17eb27SMichael Chan #define FUNC_CFG_REQ_FLAGS_TX_ASSETS_TEST 0x2000UL 1904894aa69aSMichael Chan #define FUNC_CFG_REQ_FLAGS_RX_ASSETS_TEST 0x4000UL 1905894aa69aSMichael Chan #define FUNC_CFG_REQ_FLAGS_CMPL_ASSETS_TEST 0x8000UL 1906894aa69aSMichael Chan #define FUNC_CFG_REQ_FLAGS_RSSCOS_CTX_ASSETS_TEST 0x10000UL 1907894aa69aSMichael Chan #define FUNC_CFG_REQ_FLAGS_RING_GRP_ASSETS_TEST 0x20000UL 1908894aa69aSMichael Chan #define FUNC_CFG_REQ_FLAGS_STAT_CTX_ASSETS_TEST 0x40000UL 1909894aa69aSMichael Chan #define FUNC_CFG_REQ_FLAGS_VNIC_ASSETS_TEST 0x80000UL 1910894aa69aSMichael Chan #define FUNC_CFG_REQ_FLAGS_L2_CTX_ASSETS_TEST 0x100000UL 191131d357c0SMichael Chan #define FUNC_CFG_REQ_FLAGS_TRUSTED_VF_ENABLE 0x200000UL 19123322479eSMichael Chan #define FUNC_CFG_REQ_FLAGS_DYNAMIC_TX_RING_ALLOC 0x400000UL 19130b815023SMichael Chan #define FUNC_CFG_REQ_FLAGS_NQ_ASSETS_TEST 0x800000UL 19143293ec23SMichael Chan #define FUNC_CFG_REQ_FLAGS_TRUSTED_VF_DISABLE 0x1000000UL 19152792b5b9SMichael Chan #define FUNC_CFG_REQ_FLAGS_PREBOOT_LEGACY_L2_RINGS 0x2000000UL 1916bfc6e5fbSMichael Chan #define FUNC_CFG_REQ_FLAGS_HOT_RESET_IF_EN_DIS 0x4000000UL 1917bfc6e5fbSMichael Chan #define FUNC_CFG_REQ_FLAGS_PPP_PUSH_MODE_ENABLE 0x8000000UL 1918bfc6e5fbSMichael Chan #define FUNC_CFG_REQ_FLAGS_PPP_PUSH_MODE_DISABLE 0x10000000UL 191931f67c2eSMichael Chan #define FUNC_CFG_REQ_FLAGS_BD_METADATA_ENABLE 0x20000000UL 192031f67c2eSMichael Chan #define FUNC_CFG_REQ_FLAGS_BD_METADATA_DISABLE 0x40000000UL 192184a911dbSMichael Chan #define FUNC_CFG_REQ_FLAGS_KEY_CTX_ASSETS_TEST 0x80000000UL 1922c0c050c5SMichael Chan __le32 enables; 192378eeadb8SMichael Chan #define FUNC_CFG_REQ_ENABLES_ADMIN_MTU 0x1UL 1924c0c050c5SMichael Chan #define FUNC_CFG_REQ_ENABLES_MRU 0x2UL 1925c0c050c5SMichael Chan #define FUNC_CFG_REQ_ENABLES_NUM_RSSCOS_CTXS 0x4UL 1926c0c050c5SMichael Chan #define FUNC_CFG_REQ_ENABLES_NUM_CMPL_RINGS 0x8UL 1927c0c050c5SMichael Chan #define FUNC_CFG_REQ_ENABLES_NUM_TX_RINGS 0x10UL 1928c0c050c5SMichael Chan #define FUNC_CFG_REQ_ENABLES_NUM_RX_RINGS 0x20UL 1929c0c050c5SMichael Chan #define FUNC_CFG_REQ_ENABLES_NUM_L2_CTXS 0x40UL 1930c0c050c5SMichael Chan #define FUNC_CFG_REQ_ENABLES_NUM_VNICS 0x80UL 1931c0c050c5SMichael Chan #define FUNC_CFG_REQ_ENABLES_NUM_STAT_CTXS 0x100UL 1932c0c050c5SMichael Chan #define FUNC_CFG_REQ_ENABLES_DFLT_MAC_ADDR 0x200UL 1933c0c050c5SMichael Chan #define FUNC_CFG_REQ_ENABLES_DFLT_VLAN 0x400UL 1934c0c050c5SMichael Chan #define FUNC_CFG_REQ_ENABLES_DFLT_IP_ADDR 0x800UL 1935c0c050c5SMichael Chan #define FUNC_CFG_REQ_ENABLES_MIN_BW 0x1000UL 1936c0c050c5SMichael Chan #define FUNC_CFG_REQ_ENABLES_MAX_BW 0x2000UL 1937c0c050c5SMichael Chan #define FUNC_CFG_REQ_ENABLES_ASYNC_EVENT_CR 0x4000UL 1938c0c050c5SMichael Chan #define FUNC_CFG_REQ_ENABLES_VLAN_ANTISPOOF_MODE 0x8000UL 1939c0c050c5SMichael Chan #define FUNC_CFG_REQ_ENABLES_ALLOWED_VLAN_PRIS 0x10000UL 1940c0c050c5SMichael Chan #define FUNC_CFG_REQ_ENABLES_EVB_MODE 0x20000UL 1941c0c050c5SMichael Chan #define FUNC_CFG_REQ_ENABLES_NUM_MCAST_FILTERS 0x40000UL 1942c0c050c5SMichael Chan #define FUNC_CFG_REQ_ENABLES_NUM_HW_RING_GRPS 0x80000UL 1943894aa69aSMichael Chan #define FUNC_CFG_REQ_ENABLES_CACHE_LINESIZE 0x100000UL 19446fc92c33SMichael Chan #define FUNC_CFG_REQ_ENABLES_NUM_MSIX 0x200000UL 19456fc92c33SMichael Chan #define FUNC_CFG_REQ_ENABLES_ADMIN_LINK_STATE 0x400000UL 1946bfc6e5fbSMichael Chan #define FUNC_CFG_REQ_ENABLES_HOT_RESET_IF_SUPPORT 0x800000UL 1947bfc6e5fbSMichael Chan #define FUNC_CFG_REQ_ENABLES_SCHQ_ID 0x1000000UL 19489d6b648cSMichael Chan #define FUNC_CFG_REQ_ENABLES_MPC_CHNLS 0x2000000UL 194978eeadb8SMichael Chan #define FUNC_CFG_REQ_ENABLES_PARTITION_MIN_BW 0x4000000UL 195078eeadb8SMichael Chan #define FUNC_CFG_REQ_ENABLES_PARTITION_MAX_BW 0x8000000UL 195178eeadb8SMichael Chan #define FUNC_CFG_REQ_ENABLES_TPID 0x10000000UL 195278eeadb8SMichael Chan #define FUNC_CFG_REQ_ENABLES_HOST_MTU 0x20000000UL 1953fbfee257SMichael Chan #define FUNC_CFG_REQ_ENABLES_TX_KEY_CTXS 0x40000000UL 1954fbfee257SMichael Chan #define FUNC_CFG_REQ_ENABLES_RX_KEY_CTXS 0x80000000UL 195578eeadb8SMichael Chan __le16 admin_mtu; 1956c0c050c5SMichael Chan __le16 mru; 1957c0c050c5SMichael Chan __le16 num_rsscos_ctxs; 1958c0c050c5SMichael Chan __le16 num_cmpl_rings; 1959c0c050c5SMichael Chan __le16 num_tx_rings; 1960c0c050c5SMichael Chan __le16 num_rx_rings; 1961c0c050c5SMichael Chan __le16 num_l2_ctxs; 1962c0c050c5SMichael Chan __le16 num_vnics; 1963c0c050c5SMichael Chan __le16 num_stat_ctxs; 1964c0c050c5SMichael Chan __le16 num_hw_ring_grps; 1965c0c050c5SMichael Chan u8 dflt_mac_addr[6]; 1966c0c050c5SMichael Chan __le16 dflt_vlan; 1967c0c050c5SMichael Chan __be32 dflt_ip_addr[4]; 1968c0c050c5SMichael Chan __le32 min_bw; 1969441cabbbSMichael Chan #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_MASK 0xfffffffUL 1970441cabbbSMichael Chan #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_SFT 0 1971bac9a7e0SMichael Chan #define FUNC_CFG_REQ_MIN_BW_SCALE 0x10000000UL 1972bac9a7e0SMichael Chan #define FUNC_CFG_REQ_MIN_BW_SCALE_BITS (0x0UL << 28) 1973bac9a7e0SMichael Chan #define FUNC_CFG_REQ_MIN_BW_SCALE_BYTES (0x1UL << 28) 1974bac9a7e0SMichael Chan #define FUNC_CFG_REQ_MIN_BW_SCALE_LAST FUNC_CFG_REQ_MIN_BW_SCALE_BYTES 1975441cabbbSMichael Chan #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 1976441cabbbSMichael Chan #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_SFT 29 1977bac9a7e0SMichael Chan #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 1978bac9a7e0SMichael Chan #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 1979bac9a7e0SMichael Chan #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 1980bac9a7e0SMichael Chan #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 1981441cabbbSMichael Chan #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 1982441cabbbSMichael Chan #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 1983441cabbbSMichael Chan #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_LAST FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_INVALID 1984c0c050c5SMichael Chan __le32 max_bw; 1985441cabbbSMichael Chan #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_MASK 0xfffffffUL 1986441cabbbSMichael Chan #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_SFT 0 1987bac9a7e0SMichael Chan #define FUNC_CFG_REQ_MAX_BW_SCALE 0x10000000UL 1988bac9a7e0SMichael Chan #define FUNC_CFG_REQ_MAX_BW_SCALE_BITS (0x0UL << 28) 1989bac9a7e0SMichael Chan #define FUNC_CFG_REQ_MAX_BW_SCALE_BYTES (0x1UL << 28) 1990bac9a7e0SMichael Chan #define FUNC_CFG_REQ_MAX_BW_SCALE_LAST FUNC_CFG_REQ_MAX_BW_SCALE_BYTES 1991441cabbbSMichael Chan #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 1992441cabbbSMichael Chan #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_SFT 29 1993bac9a7e0SMichael Chan #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 1994bac9a7e0SMichael Chan #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 1995bac9a7e0SMichael Chan #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 1996bac9a7e0SMichael Chan #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 1997441cabbbSMichael Chan #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 1998441cabbbSMichael Chan #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 1999441cabbbSMichael Chan #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_LAST FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_INVALID 2000c0c050c5SMichael Chan __le16 async_event_cr; 2001c0c050c5SMichael Chan u8 vlan_antispoof_mode; 2002441cabbbSMichael Chan #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_NOCHECK 0x0UL 2003441cabbbSMichael Chan #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_VALIDATE_VLAN 0x1UL 2004441cabbbSMichael Chan #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_INSERT_IF_VLANDNE 0x2UL 2005441cabbbSMichael Chan #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_INSERT_OR_OVERRIDE_VLAN 0x3UL 2006894aa69aSMichael Chan #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_LAST FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_INSERT_OR_OVERRIDE_VLAN 2007c0c050c5SMichael Chan u8 allowed_vlan_pris; 2008c0c050c5SMichael Chan u8 evb_mode; 2009441cabbbSMichael Chan #define FUNC_CFG_REQ_EVB_MODE_NO_EVB 0x0UL 2010441cabbbSMichael Chan #define FUNC_CFG_REQ_EVB_MODE_VEB 0x1UL 2011441cabbbSMichael Chan #define FUNC_CFG_REQ_EVB_MODE_VEPA 0x2UL 2012894aa69aSMichael Chan #define FUNC_CFG_REQ_EVB_MODE_LAST FUNC_CFG_REQ_EVB_MODE_VEPA 2013d4f52de0SMichael Chan u8 options; 2014d4f52de0SMichael Chan #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_MASK 0x3UL 2015d4f52de0SMichael Chan #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SFT 0 2016d4f52de0SMichael Chan #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SIZE_64 0x0UL 2017d4f52de0SMichael Chan #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SIZE_128 0x1UL 2018d4f52de0SMichael Chan #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_LAST FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SIZE_128 20196fc92c33SMichael Chan #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_MASK 0xcUL 20206fc92c33SMichael Chan #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_SFT 2 20216fc92c33SMichael Chan #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_FORCED_DOWN (0x0UL << 2) 20226fc92c33SMichael Chan #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_FORCED_UP (0x1UL << 2) 20236fc92c33SMichael Chan #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_AUTO (0x2UL << 2) 20246fc92c33SMichael Chan #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_LAST FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_AUTO 20256fc92c33SMichael Chan #define FUNC_CFG_REQ_OPTIONS_RSVD_MASK 0xf0UL 20266fc92c33SMichael Chan #define FUNC_CFG_REQ_OPTIONS_RSVD_SFT 4 2027c0c050c5SMichael Chan __le16 num_mcast_filters; 2028bfc6e5fbSMichael Chan __le16 schq_id; 20299d6b648cSMichael Chan __le16 mpc_chnls; 20309d6b648cSMichael Chan #define FUNC_CFG_REQ_MPC_CHNLS_TCE_ENABLE 0x1UL 20319d6b648cSMichael Chan #define FUNC_CFG_REQ_MPC_CHNLS_TCE_DISABLE 0x2UL 20329d6b648cSMichael Chan #define FUNC_CFG_REQ_MPC_CHNLS_RCE_ENABLE 0x4UL 20339d6b648cSMichael Chan #define FUNC_CFG_REQ_MPC_CHNLS_RCE_DISABLE 0x8UL 20349d6b648cSMichael Chan #define FUNC_CFG_REQ_MPC_CHNLS_TE_CFA_ENABLE 0x10UL 20359d6b648cSMichael Chan #define FUNC_CFG_REQ_MPC_CHNLS_TE_CFA_DISABLE 0x20UL 20369d6b648cSMichael Chan #define FUNC_CFG_REQ_MPC_CHNLS_RE_CFA_ENABLE 0x40UL 20379d6b648cSMichael Chan #define FUNC_CFG_REQ_MPC_CHNLS_RE_CFA_DISABLE 0x80UL 20389d6b648cSMichael Chan #define FUNC_CFG_REQ_MPC_CHNLS_PRIMATE_ENABLE 0x100UL 20399d6b648cSMichael Chan #define FUNC_CFG_REQ_MPC_CHNLS_PRIMATE_DISABLE 0x200UL 204078eeadb8SMichael Chan __le32 partition_min_bw; 204178eeadb8SMichael Chan #define FUNC_CFG_REQ_PARTITION_MIN_BW_BW_VALUE_MASK 0xfffffffUL 204278eeadb8SMichael Chan #define FUNC_CFG_REQ_PARTITION_MIN_BW_BW_VALUE_SFT 0 204378eeadb8SMichael Chan #define FUNC_CFG_REQ_PARTITION_MIN_BW_SCALE 0x10000000UL 204478eeadb8SMichael Chan #define FUNC_CFG_REQ_PARTITION_MIN_BW_SCALE_BITS (0x0UL << 28) 204578eeadb8SMichael Chan #define FUNC_CFG_REQ_PARTITION_MIN_BW_SCALE_BYTES (0x1UL << 28) 204678eeadb8SMichael Chan #define FUNC_CFG_REQ_PARTITION_MIN_BW_SCALE_LAST FUNC_CFG_REQ_PARTITION_MIN_BW_SCALE_BYTES 204778eeadb8SMichael Chan #define FUNC_CFG_REQ_PARTITION_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 204878eeadb8SMichael Chan #define FUNC_CFG_REQ_PARTITION_MIN_BW_BW_VALUE_UNIT_SFT 29 204978eeadb8SMichael Chan #define FUNC_CFG_REQ_PARTITION_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 205078eeadb8SMichael Chan #define FUNC_CFG_REQ_PARTITION_MIN_BW_BW_VALUE_UNIT_LAST FUNC_CFG_REQ_PARTITION_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 205178eeadb8SMichael Chan __le32 partition_max_bw; 205278eeadb8SMichael Chan #define FUNC_CFG_REQ_PARTITION_MAX_BW_BW_VALUE_MASK 0xfffffffUL 205378eeadb8SMichael Chan #define FUNC_CFG_REQ_PARTITION_MAX_BW_BW_VALUE_SFT 0 205478eeadb8SMichael Chan #define FUNC_CFG_REQ_PARTITION_MAX_BW_SCALE 0x10000000UL 205578eeadb8SMichael Chan #define FUNC_CFG_REQ_PARTITION_MAX_BW_SCALE_BITS (0x0UL << 28) 205678eeadb8SMichael Chan #define FUNC_CFG_REQ_PARTITION_MAX_BW_SCALE_BYTES (0x1UL << 28) 205778eeadb8SMichael Chan #define FUNC_CFG_REQ_PARTITION_MAX_BW_SCALE_LAST FUNC_CFG_REQ_PARTITION_MAX_BW_SCALE_BYTES 205878eeadb8SMichael Chan #define FUNC_CFG_REQ_PARTITION_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 205978eeadb8SMichael Chan #define FUNC_CFG_REQ_PARTITION_MAX_BW_BW_VALUE_UNIT_SFT 29 206078eeadb8SMichael Chan #define FUNC_CFG_REQ_PARTITION_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 206178eeadb8SMichael Chan #define FUNC_CFG_REQ_PARTITION_MAX_BW_BW_VALUE_UNIT_LAST FUNC_CFG_REQ_PARTITION_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 206278eeadb8SMichael Chan __be16 tpid; 206378eeadb8SMichael Chan __le16 host_mtu; 2064fbfee257SMichael Chan __le16 num_tx_key_ctxs; 2065fbfee257SMichael Chan __le16 num_rx_key_ctxs; 2066ad04cc05SMichael Chan __le32 enables2; 2067ad04cc05SMichael Chan #define FUNC_CFG_REQ_ENABLES2_KDNET 0x1UL 206884a911dbSMichael Chan #define FUNC_CFG_REQ_ENABLES2_DB_PAGE_SIZE 0x2UL 2069ad04cc05SMichael Chan u8 port_kdnet_mode; 2070ad04cc05SMichael Chan #define FUNC_CFG_REQ_PORT_KDNET_MODE_DISABLED 0x0UL 2071ad04cc05SMichael Chan #define FUNC_CFG_REQ_PORT_KDNET_MODE_ENABLED 0x1UL 2072ad04cc05SMichael Chan #define FUNC_CFG_REQ_PORT_KDNET_MODE_LAST FUNC_CFG_REQ_PORT_KDNET_MODE_ENABLED 207384a911dbSMichael Chan u8 db_page_size; 207484a911dbSMichael Chan #define FUNC_CFG_REQ_DB_PAGE_SIZE_4KB 0x0UL 207584a911dbSMichael Chan #define FUNC_CFG_REQ_DB_PAGE_SIZE_8KB 0x1UL 207684a911dbSMichael Chan #define FUNC_CFG_REQ_DB_PAGE_SIZE_16KB 0x2UL 207784a911dbSMichael Chan #define FUNC_CFG_REQ_DB_PAGE_SIZE_32KB 0x3UL 207884a911dbSMichael Chan #define FUNC_CFG_REQ_DB_PAGE_SIZE_64KB 0x4UL 207984a911dbSMichael Chan #define FUNC_CFG_REQ_DB_PAGE_SIZE_128KB 0x5UL 208084a911dbSMichael Chan #define FUNC_CFG_REQ_DB_PAGE_SIZE_256KB 0x6UL 208184a911dbSMichael Chan #define FUNC_CFG_REQ_DB_PAGE_SIZE_512KB 0x7UL 208284a911dbSMichael Chan #define FUNC_CFG_REQ_DB_PAGE_SIZE_1MB 0x8UL 208384a911dbSMichael Chan #define FUNC_CFG_REQ_DB_PAGE_SIZE_2MB 0x9UL 208484a911dbSMichael Chan #define FUNC_CFG_REQ_DB_PAGE_SIZE_4MB 0xaUL 208584a911dbSMichael Chan #define FUNC_CFG_REQ_DB_PAGE_SIZE_LAST FUNC_CFG_REQ_DB_PAGE_SIZE_4MB 208684a911dbSMichael Chan u8 unused_0[6]; 2087c0c050c5SMichael Chan }; 2088c0c050c5SMichael Chan 2089894aa69aSMichael Chan /* hwrm_func_cfg_output (size:128b/16B) */ 2090c0c050c5SMichael Chan struct hwrm_func_cfg_output { 2091c0c050c5SMichael Chan __le16 error_code; 2092c0c050c5SMichael Chan __le16 req_type; 2093c0c050c5SMichael Chan __le16 seq_id; 2094c0c050c5SMichael Chan __le16 resp_len; 2095894aa69aSMichael Chan u8 unused_0[7]; 2096c0c050c5SMichael Chan u8 valid; 2097c0c050c5SMichael Chan }; 2098c0c050c5SMichael Chan 209921e70778SMichael Chan /* hwrm_func_cfg_cmd_err (size:64b/8B) */ 210021e70778SMichael Chan struct hwrm_func_cfg_cmd_err { 210121e70778SMichael Chan u8 code; 210221e70778SMichael Chan #define FUNC_CFG_CMD_ERR_CODE_UNKNOWN 0x0UL 210321e70778SMichael Chan #define FUNC_CFG_CMD_ERR_CODE_PARTITION_MIN_BW_RANGE 0x1UL 210421e70778SMichael Chan #define FUNC_CFG_CMD_ERR_CODE_PARTITION_MIN_MORE_THAN_MAX 0x2UL 210521e70778SMichael Chan #define FUNC_CFG_CMD_ERR_CODE_PARTITION_MIN_BW_UNSUPPORTED 0x3UL 210621e70778SMichael Chan #define FUNC_CFG_CMD_ERR_CODE_PARTITION_BW_PERCENT 0x4UL 210721e70778SMichael Chan #define FUNC_CFG_CMD_ERR_CODE_LAST FUNC_CFG_CMD_ERR_CODE_PARTITION_BW_PERCENT 210821e70778SMichael Chan u8 unused_0[7]; 210921e70778SMichael Chan }; 211021e70778SMichael Chan 2111894aa69aSMichael Chan /* hwrm_func_qstats_input (size:192b/24B) */ 2112c0c050c5SMichael Chan struct hwrm_func_qstats_input { 2113c0c050c5SMichael Chan __le16 req_type; 2114c0c050c5SMichael Chan __le16 cmpl_ring; 2115c0c050c5SMichael Chan __le16 seq_id; 2116c0c050c5SMichael Chan __le16 target_id; 2117c0c050c5SMichael Chan __le64 resp_addr; 2118c0c050c5SMichael Chan __le16 fid; 211972e0c9f9SMichael Chan u8 flags; 212072e0c9f9SMichael Chan #define FUNC_QSTATS_REQ_FLAGS_ROCE_ONLY 0x1UL 2121460c2577SMichael Chan #define FUNC_QSTATS_REQ_FLAGS_COUNTER_MASK 0x2UL 212284a911dbSMichael Chan #define FUNC_QSTATS_REQ_FLAGS_L2_ONLY 0x4UL 212372e0c9f9SMichael Chan u8 unused_0[5]; 2124c0c050c5SMichael Chan }; 2125c0c050c5SMichael Chan 2126894aa69aSMichael Chan /* hwrm_func_qstats_output (size:1408b/176B) */ 2127c0c050c5SMichael Chan struct hwrm_func_qstats_output { 2128c0c050c5SMichael Chan __le16 error_code; 2129c0c050c5SMichael Chan __le16 req_type; 2130c0c050c5SMichael Chan __le16 seq_id; 2131c0c050c5SMichael Chan __le16 resp_len; 2132c0c050c5SMichael Chan __le64 tx_ucast_pkts; 2133c0c050c5SMichael Chan __le64 tx_mcast_pkts; 2134c0c050c5SMichael Chan __le64 tx_bcast_pkts; 21358eb992e8SMichael Chan __le64 tx_discard_pkts; 2136c0c050c5SMichael Chan __le64 tx_drop_pkts; 2137c0c050c5SMichael Chan __le64 tx_ucast_bytes; 2138c0c050c5SMichael Chan __le64 tx_mcast_bytes; 2139c0c050c5SMichael Chan __le64 tx_bcast_bytes; 2140c0c050c5SMichael Chan __le64 rx_ucast_pkts; 2141c0c050c5SMichael Chan __le64 rx_mcast_pkts; 2142c0c050c5SMichael Chan __le64 rx_bcast_pkts; 21438eb992e8SMichael Chan __le64 rx_discard_pkts; 2144c0c050c5SMichael Chan __le64 rx_drop_pkts; 2145c0c050c5SMichael Chan __le64 rx_ucast_bytes; 2146c0c050c5SMichael Chan __le64 rx_mcast_bytes; 2147c0c050c5SMichael Chan __le64 rx_bcast_bytes; 2148c0c050c5SMichael Chan __le64 rx_agg_pkts; 2149c0c050c5SMichael Chan __le64 rx_agg_bytes; 2150c0c050c5SMichael Chan __le64 rx_agg_events; 2151c0c050c5SMichael Chan __le64 rx_agg_aborts; 215284a911dbSMichael Chan u8 clear_seq; 215384a911dbSMichael Chan u8 unused_0[6]; 2154c0c050c5SMichael Chan u8 valid; 2155c0c050c5SMichael Chan }; 2156c0c050c5SMichael Chan 2157bfc6e5fbSMichael Chan /* hwrm_func_qstats_ext_input (size:256b/32B) */ 2158460c2577SMichael Chan struct hwrm_func_qstats_ext_input { 2159460c2577SMichael Chan __le16 req_type; 2160460c2577SMichael Chan __le16 cmpl_ring; 2161460c2577SMichael Chan __le16 seq_id; 2162460c2577SMichael Chan __le16 target_id; 2163460c2577SMichael Chan __le64 resp_addr; 2164460c2577SMichael Chan __le16 fid; 2165460c2577SMichael Chan u8 flags; 2166460c2577SMichael Chan #define FUNC_QSTATS_EXT_REQ_FLAGS_ROCE_ONLY 0x1UL 2167460c2577SMichael Chan #define FUNC_QSTATS_EXT_REQ_FLAGS_COUNTER_MASK 0x2UL 2168bfc6e5fbSMichael Chan u8 unused_0[1]; 2169bfc6e5fbSMichael Chan __le32 enables; 2170bfc6e5fbSMichael Chan #define FUNC_QSTATS_EXT_REQ_ENABLES_SCHQ_ID 0x1UL 2171bfc6e5fbSMichael Chan __le16 schq_id; 2172bfc6e5fbSMichael Chan __le16 traffic_class; 2173bfc6e5fbSMichael Chan u8 unused_1[4]; 2174460c2577SMichael Chan }; 2175460c2577SMichael Chan 21769d6b648cSMichael Chan /* hwrm_func_qstats_ext_output (size:1536b/192B) */ 2177460c2577SMichael Chan struct hwrm_func_qstats_ext_output { 2178460c2577SMichael Chan __le16 error_code; 2179460c2577SMichael Chan __le16 req_type; 2180460c2577SMichael Chan __le16 seq_id; 2181460c2577SMichael Chan __le16 resp_len; 2182460c2577SMichael Chan __le64 rx_ucast_pkts; 2183460c2577SMichael Chan __le64 rx_mcast_pkts; 2184460c2577SMichael Chan __le64 rx_bcast_pkts; 2185460c2577SMichael Chan __le64 rx_discard_pkts; 2186bfc6e5fbSMichael Chan __le64 rx_error_pkts; 2187460c2577SMichael Chan __le64 rx_ucast_bytes; 2188460c2577SMichael Chan __le64 rx_mcast_bytes; 2189460c2577SMichael Chan __le64 rx_bcast_bytes; 2190460c2577SMichael Chan __le64 tx_ucast_pkts; 2191460c2577SMichael Chan __le64 tx_mcast_pkts; 2192460c2577SMichael Chan __le64 tx_bcast_pkts; 2193bfc6e5fbSMichael Chan __le64 tx_error_pkts; 2194460c2577SMichael Chan __le64 tx_discard_pkts; 2195460c2577SMichael Chan __le64 tx_ucast_bytes; 2196460c2577SMichael Chan __le64 tx_mcast_bytes; 2197460c2577SMichael Chan __le64 tx_bcast_bytes; 2198460c2577SMichael Chan __le64 rx_tpa_eligible_pkt; 2199460c2577SMichael Chan __le64 rx_tpa_eligible_bytes; 2200460c2577SMichael Chan __le64 rx_tpa_pkt; 2201460c2577SMichael Chan __le64 rx_tpa_bytes; 2202460c2577SMichael Chan __le64 rx_tpa_errors; 22039d6b648cSMichael Chan __le64 rx_tpa_events; 2204460c2577SMichael Chan u8 unused_0[7]; 2205460c2577SMichael Chan u8 valid; 2206460c2577SMichael Chan }; 2207460c2577SMichael Chan 2208894aa69aSMichael Chan /* hwrm_func_clr_stats_input (size:192b/24B) */ 2209c0c050c5SMichael Chan struct hwrm_func_clr_stats_input { 2210c0c050c5SMichael Chan __le16 req_type; 2211c0c050c5SMichael Chan __le16 cmpl_ring; 2212c0c050c5SMichael Chan __le16 seq_id; 2213c0c050c5SMichael Chan __le16 target_id; 2214c0c050c5SMichael Chan __le64 resp_addr; 2215c0c050c5SMichael Chan __le16 fid; 2216894aa69aSMichael Chan u8 unused_0[6]; 2217c0c050c5SMichael Chan }; 2218c0c050c5SMichael Chan 2219894aa69aSMichael Chan /* hwrm_func_clr_stats_output (size:128b/16B) */ 2220c0c050c5SMichael Chan struct hwrm_func_clr_stats_output { 2221c0c050c5SMichael Chan __le16 error_code; 2222c0c050c5SMichael Chan __le16 req_type; 2223c0c050c5SMichael Chan __le16 seq_id; 2224c0c050c5SMichael Chan __le16 resp_len; 2225894aa69aSMichael Chan u8 unused_0[7]; 2226c0c050c5SMichael Chan u8 valid; 2227c0c050c5SMichael Chan }; 2228c0c050c5SMichael Chan 2229894aa69aSMichael Chan /* hwrm_func_vf_resc_free_input (size:192b/24B) */ 2230c0c050c5SMichael Chan struct hwrm_func_vf_resc_free_input { 2231c0c050c5SMichael Chan __le16 req_type; 2232c0c050c5SMichael Chan __le16 cmpl_ring; 2233c0c050c5SMichael Chan __le16 seq_id; 2234c0c050c5SMichael Chan __le16 target_id; 2235c0c050c5SMichael Chan __le64 resp_addr; 2236c0c050c5SMichael Chan __le16 vf_id; 2237894aa69aSMichael Chan u8 unused_0[6]; 2238c0c050c5SMichael Chan }; 2239c0c050c5SMichael Chan 2240894aa69aSMichael Chan /* hwrm_func_vf_resc_free_output (size:128b/16B) */ 2241c0c050c5SMichael Chan struct hwrm_func_vf_resc_free_output { 2242c0c050c5SMichael Chan __le16 error_code; 2243c0c050c5SMichael Chan __le16 req_type; 2244c0c050c5SMichael Chan __le16 seq_id; 2245c0c050c5SMichael Chan __le16 resp_len; 2246894aa69aSMichael Chan u8 unused_0[7]; 2247c0c050c5SMichael Chan u8 valid; 2248c0c050c5SMichael Chan }; 2249c0c050c5SMichael Chan 2250d4f52de0SMichael Chan /* hwrm_func_drv_rgtr_input (size:896b/112B) */ 2251c0c050c5SMichael Chan struct hwrm_func_drv_rgtr_input { 2252c0c050c5SMichael Chan __le16 req_type; 2253c0c050c5SMichael Chan __le16 cmpl_ring; 2254c0c050c5SMichael Chan __le16 seq_id; 2255c0c050c5SMichael Chan __le16 target_id; 2256c0c050c5SMichael Chan __le64 resp_addr; 2257c0c050c5SMichael Chan __le32 flags; 2258c0c050c5SMichael Chan #define FUNC_DRV_RGTR_REQ_FLAGS_FWD_ALL_MODE 0x1UL 2259c0c050c5SMichael Chan #define FUNC_DRV_RGTR_REQ_FLAGS_FWD_NONE_MODE 0x2UL 2260d4f52de0SMichael Chan #define FUNC_DRV_RGTR_REQ_FLAGS_16BIT_VER_MODE 0x4UL 226131d357c0SMichael Chan #define FUNC_DRV_RGTR_REQ_FLAGS_FLOW_HANDLE_64BIT_MODE 0x8UL 22623322479eSMichael Chan #define FUNC_DRV_RGTR_REQ_FLAGS_HOT_RESET_SUPPORT 0x10UL 22633293ec23SMichael Chan #define FUNC_DRV_RGTR_REQ_FLAGS_ERROR_RECOVERY_SUPPORT 0x20UL 226441136ab3SMichael Chan #define FUNC_DRV_RGTR_REQ_FLAGS_MASTER_SUPPORT 0x40UL 226516db6323SMichael Chan #define FUNC_DRV_RGTR_REQ_FLAGS_FAST_RESET_SUPPORT 0x80UL 226678eeadb8SMichael Chan #define FUNC_DRV_RGTR_REQ_FLAGS_RSS_STRICT_HASH_TYPE_SUPPORT 0x100UL 2267fbfee257SMichael Chan #define FUNC_DRV_RGTR_REQ_FLAGS_NPAR_1_2_SUPPORT 0x200UL 226884a911dbSMichael Chan #define FUNC_DRV_RGTR_REQ_FLAGS_ASYM_QUEUE_CFG_SUPPORT 0x400UL 2269c0c050c5SMichael Chan __le32 enables; 2270c0c050c5SMichael Chan #define FUNC_DRV_RGTR_REQ_ENABLES_OS_TYPE 0x1UL 2271c0c050c5SMichael Chan #define FUNC_DRV_RGTR_REQ_ENABLES_VER 0x2UL 2272c0c050c5SMichael Chan #define FUNC_DRV_RGTR_REQ_ENABLES_TIMESTAMP 0x4UL 2273c0c050c5SMichael Chan #define FUNC_DRV_RGTR_REQ_ENABLES_VF_REQ_FWD 0x8UL 2274c0c050c5SMichael Chan #define FUNC_DRV_RGTR_REQ_ENABLES_ASYNC_EVENT_FWD 0x10UL 2275c0c050c5SMichael Chan __le16 os_type; 2276441cabbbSMichael Chan #define FUNC_DRV_RGTR_REQ_OS_TYPE_UNKNOWN 0x0UL 2277441cabbbSMichael Chan #define FUNC_DRV_RGTR_REQ_OS_TYPE_OTHER 0x1UL 2278441cabbbSMichael Chan #define FUNC_DRV_RGTR_REQ_OS_TYPE_MSDOS 0xeUL 2279441cabbbSMichael Chan #define FUNC_DRV_RGTR_REQ_OS_TYPE_WINDOWS 0x12UL 2280441cabbbSMichael Chan #define FUNC_DRV_RGTR_REQ_OS_TYPE_SOLARIS 0x1dUL 2281441cabbbSMichael Chan #define FUNC_DRV_RGTR_REQ_OS_TYPE_LINUX 0x24UL 2282441cabbbSMichael Chan #define FUNC_DRV_RGTR_REQ_OS_TYPE_FREEBSD 0x2aUL 2283441cabbbSMichael Chan #define FUNC_DRV_RGTR_REQ_OS_TYPE_ESXI 0x68UL 2284441cabbbSMichael Chan #define FUNC_DRV_RGTR_REQ_OS_TYPE_WIN864 0x73UL 2285441cabbbSMichael Chan #define FUNC_DRV_RGTR_REQ_OS_TYPE_WIN2012R2 0x74UL 228616d663a6SMichael Chan #define FUNC_DRV_RGTR_REQ_OS_TYPE_UEFI 0x8000UL 2287894aa69aSMichael Chan #define FUNC_DRV_RGTR_REQ_OS_TYPE_LAST FUNC_DRV_RGTR_REQ_OS_TYPE_UEFI 2288d4f52de0SMichael Chan u8 ver_maj_8b; 2289d4f52de0SMichael Chan u8 ver_min_8b; 2290d4f52de0SMichael Chan u8 ver_upd_8b; 2291894aa69aSMichael Chan u8 unused_0[3]; 2292c0c050c5SMichael Chan __le32 timestamp; 2293894aa69aSMichael Chan u8 unused_1[4]; 2294c0c050c5SMichael Chan __le32 vf_req_fwd[8]; 2295c0c050c5SMichael Chan __le32 async_event_fwd[8]; 2296d4f52de0SMichael Chan __le16 ver_maj; 2297d4f52de0SMichael Chan __le16 ver_min; 2298d4f52de0SMichael Chan __le16 ver_upd; 2299d4f52de0SMichael Chan __le16 ver_patch; 2300c0c050c5SMichael Chan }; 2301c0c050c5SMichael Chan 2302894aa69aSMichael Chan /* hwrm_func_drv_rgtr_output (size:128b/16B) */ 2303c0c050c5SMichael Chan struct hwrm_func_drv_rgtr_output { 2304c0c050c5SMichael Chan __le16 error_code; 2305c0c050c5SMichael Chan __le16 req_type; 2306c0c050c5SMichael Chan __le16 seq_id; 2307c0c050c5SMichael Chan __le16 resp_len; 23086fc92c33SMichael Chan __le32 flags; 23096fc92c33SMichael Chan #define FUNC_DRV_RGTR_RESP_FLAGS_IF_CHANGE_SUPPORTED 0x1UL 23106fc92c33SMichael Chan u8 unused_0[3]; 2311c0c050c5SMichael Chan u8 valid; 2312c0c050c5SMichael Chan }; 2313c0c050c5SMichael Chan 2314894aa69aSMichael Chan /* hwrm_func_drv_unrgtr_input (size:192b/24B) */ 2315c0c050c5SMichael Chan struct hwrm_func_drv_unrgtr_input { 2316c0c050c5SMichael Chan __le16 req_type; 2317c0c050c5SMichael Chan __le16 cmpl_ring; 2318c0c050c5SMichael Chan __le16 seq_id; 2319c0c050c5SMichael Chan __le16 target_id; 2320c0c050c5SMichael Chan __le64 resp_addr; 2321c0c050c5SMichael Chan __le32 flags; 2322c0c050c5SMichael Chan #define FUNC_DRV_UNRGTR_REQ_FLAGS_PREPARE_FOR_SHUTDOWN 0x1UL 2323894aa69aSMichael Chan u8 unused_0[4]; 2324c0c050c5SMichael Chan }; 2325c0c050c5SMichael Chan 2326894aa69aSMichael Chan /* hwrm_func_drv_unrgtr_output (size:128b/16B) */ 2327c0c050c5SMichael Chan struct hwrm_func_drv_unrgtr_output { 2328c0c050c5SMichael Chan __le16 error_code; 2329c0c050c5SMichael Chan __le16 req_type; 2330c0c050c5SMichael Chan __le16 seq_id; 2331c0c050c5SMichael Chan __le16 resp_len; 2332894aa69aSMichael Chan u8 unused_0[7]; 2333c0c050c5SMichael Chan u8 valid; 2334c0c050c5SMichael Chan }; 2335c0c050c5SMichael Chan 2336894aa69aSMichael Chan /* hwrm_func_buf_rgtr_input (size:1024b/128B) */ 2337c0c050c5SMichael Chan struct hwrm_func_buf_rgtr_input { 2338c0c050c5SMichael Chan __le16 req_type; 2339c0c050c5SMichael Chan __le16 cmpl_ring; 2340c0c050c5SMichael Chan __le16 seq_id; 2341c0c050c5SMichael Chan __le16 target_id; 2342c0c050c5SMichael Chan __le64 resp_addr; 2343c0c050c5SMichael Chan __le32 enables; 2344c0c050c5SMichael Chan #define FUNC_BUF_RGTR_REQ_ENABLES_VF_ID 0x1UL 2345c0c050c5SMichael Chan #define FUNC_BUF_RGTR_REQ_ENABLES_ERR_BUF_ADDR 0x2UL 2346c0c050c5SMichael Chan __le16 vf_id; 2347c0c050c5SMichael Chan __le16 req_buf_num_pages; 2348c0c050c5SMichael Chan __le16 req_buf_page_size; 2349441cabbbSMichael Chan #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_16B 0x4UL 2350441cabbbSMichael Chan #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_4K 0xcUL 2351441cabbbSMichael Chan #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_8K 0xdUL 2352441cabbbSMichael Chan #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_64K 0x10UL 2353441cabbbSMichael Chan #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_2M 0x15UL 2354441cabbbSMichael Chan #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_4M 0x16UL 2355441cabbbSMichael Chan #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_1G 0x1eUL 2356894aa69aSMichael Chan #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_LAST FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_1G 2357c0c050c5SMichael Chan __le16 req_buf_len; 2358c0c050c5SMichael Chan __le16 resp_buf_len; 2359894aa69aSMichael Chan u8 unused_0[2]; 2360c0c050c5SMichael Chan __le64 req_buf_page_addr0; 2361c0c050c5SMichael Chan __le64 req_buf_page_addr1; 2362c0c050c5SMichael Chan __le64 req_buf_page_addr2; 2363c0c050c5SMichael Chan __le64 req_buf_page_addr3; 2364c0c050c5SMichael Chan __le64 req_buf_page_addr4; 2365c0c050c5SMichael Chan __le64 req_buf_page_addr5; 2366c0c050c5SMichael Chan __le64 req_buf_page_addr6; 2367c0c050c5SMichael Chan __le64 req_buf_page_addr7; 2368c0c050c5SMichael Chan __le64 req_buf_page_addr8; 2369c0c050c5SMichael Chan __le64 req_buf_page_addr9; 2370c0c050c5SMichael Chan __le64 error_buf_addr; 2371c0c050c5SMichael Chan __le64 resp_buf_addr; 2372c0c050c5SMichael Chan }; 2373c0c050c5SMichael Chan 2374894aa69aSMichael Chan /* hwrm_func_buf_rgtr_output (size:128b/16B) */ 2375c0c050c5SMichael Chan struct hwrm_func_buf_rgtr_output { 2376c0c050c5SMichael Chan __le16 error_code; 2377c0c050c5SMichael Chan __le16 req_type; 2378c0c050c5SMichael Chan __le16 seq_id; 2379c0c050c5SMichael Chan __le16 resp_len; 2380894aa69aSMichael Chan u8 unused_0[7]; 2381c0c050c5SMichael Chan u8 valid; 2382c0c050c5SMichael Chan }; 2383c0c050c5SMichael Chan 2384894aa69aSMichael Chan /* hwrm_func_drv_qver_input (size:192b/24B) */ 2385c0c050c5SMichael Chan struct hwrm_func_drv_qver_input { 2386c0c050c5SMichael Chan __le16 req_type; 2387c0c050c5SMichael Chan __le16 cmpl_ring; 2388c0c050c5SMichael Chan __le16 seq_id; 2389c0c050c5SMichael Chan __le16 target_id; 2390c0c050c5SMichael Chan __le64 resp_addr; 2391c193554eSMichael Chan __le32 reserved; 2392c0c050c5SMichael Chan __le16 fid; 2393894aa69aSMichael Chan u8 unused_0[2]; 2394c0c050c5SMichael Chan }; 2395c0c050c5SMichael Chan 23966fc92c33SMichael Chan /* hwrm_func_drv_qver_output (size:256b/32B) */ 2397c0c050c5SMichael Chan struct hwrm_func_drv_qver_output { 2398c0c050c5SMichael Chan __le16 error_code; 2399c0c050c5SMichael Chan __le16 req_type; 2400c0c050c5SMichael Chan __le16 seq_id; 2401c0c050c5SMichael Chan __le16 resp_len; 2402c0c050c5SMichael Chan __le16 os_type; 2403441cabbbSMichael Chan #define FUNC_DRV_QVER_RESP_OS_TYPE_UNKNOWN 0x0UL 2404441cabbbSMichael Chan #define FUNC_DRV_QVER_RESP_OS_TYPE_OTHER 0x1UL 2405441cabbbSMichael Chan #define FUNC_DRV_QVER_RESP_OS_TYPE_MSDOS 0xeUL 2406441cabbbSMichael Chan #define FUNC_DRV_QVER_RESP_OS_TYPE_WINDOWS 0x12UL 2407441cabbbSMichael Chan #define FUNC_DRV_QVER_RESP_OS_TYPE_SOLARIS 0x1dUL 2408441cabbbSMichael Chan #define FUNC_DRV_QVER_RESP_OS_TYPE_LINUX 0x24UL 2409441cabbbSMichael Chan #define FUNC_DRV_QVER_RESP_OS_TYPE_FREEBSD 0x2aUL 2410441cabbbSMichael Chan #define FUNC_DRV_QVER_RESP_OS_TYPE_ESXI 0x68UL 2411441cabbbSMichael Chan #define FUNC_DRV_QVER_RESP_OS_TYPE_WIN864 0x73UL 2412441cabbbSMichael Chan #define FUNC_DRV_QVER_RESP_OS_TYPE_WIN2012R2 0x74UL 241387c374deSMichael Chan #define FUNC_DRV_QVER_RESP_OS_TYPE_UEFI 0x8000UL 2414894aa69aSMichael Chan #define FUNC_DRV_QVER_RESP_OS_TYPE_LAST FUNC_DRV_QVER_RESP_OS_TYPE_UEFI 2415d4f52de0SMichael Chan u8 ver_maj_8b; 2416d4f52de0SMichael Chan u8 ver_min_8b; 2417d4f52de0SMichael Chan u8 ver_upd_8b; 24186fc92c33SMichael Chan u8 unused_0[3]; 2419d4f52de0SMichael Chan __le16 ver_maj; 2420d4f52de0SMichael Chan __le16 ver_min; 2421d4f52de0SMichael Chan __le16 ver_upd; 2422d4f52de0SMichael Chan __le16 ver_patch; 24236fc92c33SMichael Chan u8 unused_1[7]; 24246fc92c33SMichael Chan u8 valid; 2425c0c050c5SMichael Chan }; 2426c0c050c5SMichael Chan 2427894aa69aSMichael Chan /* hwrm_func_resource_qcaps_input (size:192b/24B) */ 2428894aa69aSMichael Chan struct hwrm_func_resource_qcaps_input { 2429894aa69aSMichael Chan __le16 req_type; 2430894aa69aSMichael Chan __le16 cmpl_ring; 2431894aa69aSMichael Chan __le16 seq_id; 2432894aa69aSMichael Chan __le16 target_id; 2433894aa69aSMichael Chan __le64 resp_addr; 2434894aa69aSMichael Chan __le16 fid; 2435894aa69aSMichael Chan u8 unused_0[6]; 2436894aa69aSMichael Chan }; 2437894aa69aSMichael Chan 2438fbfee257SMichael Chan /* hwrm_func_resource_qcaps_output (size:512b/64B) */ 2439894aa69aSMichael Chan struct hwrm_func_resource_qcaps_output { 2440894aa69aSMichael Chan __le16 error_code; 2441894aa69aSMichael Chan __le16 req_type; 2442894aa69aSMichael Chan __le16 seq_id; 2443894aa69aSMichael Chan __le16 resp_len; 2444894aa69aSMichael Chan __le16 max_vfs; 2445894aa69aSMichael Chan __le16 max_msix; 2446894aa69aSMichael Chan __le16 vf_reservation_strategy; 2447894aa69aSMichael Chan #define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MAXIMAL 0x0UL 2448894aa69aSMichael Chan #define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MINIMAL 0x1UL 2449d4f52de0SMichael Chan #define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MINIMAL_STATIC 0x2UL 2450d4f52de0SMichael Chan #define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_LAST FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MINIMAL_STATIC 2451894aa69aSMichael Chan __le16 min_rsscos_ctx; 2452894aa69aSMichael Chan __le16 max_rsscos_ctx; 2453894aa69aSMichael Chan __le16 min_cmpl_rings; 2454894aa69aSMichael Chan __le16 max_cmpl_rings; 2455894aa69aSMichael Chan __le16 min_tx_rings; 2456894aa69aSMichael Chan __le16 max_tx_rings; 2457894aa69aSMichael Chan __le16 min_rx_rings; 2458894aa69aSMichael Chan __le16 max_rx_rings; 2459894aa69aSMichael Chan __le16 min_l2_ctxs; 2460894aa69aSMichael Chan __le16 max_l2_ctxs; 2461894aa69aSMichael Chan __le16 min_vnics; 2462894aa69aSMichael Chan __le16 max_vnics; 2463894aa69aSMichael Chan __le16 min_stat_ctx; 2464894aa69aSMichael Chan __le16 max_stat_ctx; 2465894aa69aSMichael Chan __le16 min_hw_ring_grps; 2466894aa69aSMichael Chan __le16 max_hw_ring_grps; 2467d4f52de0SMichael Chan __le16 max_tx_scheduler_inputs; 246831d357c0SMichael Chan __le16 flags; 246931d357c0SMichael Chan #define FUNC_RESOURCE_QCAPS_RESP_FLAGS_MIN_GUARANTEED 0x1UL 2470fbfee257SMichael Chan __le16 min_tx_key_ctxs; 2471fbfee257SMichael Chan __le16 max_tx_key_ctxs; 2472fbfee257SMichael Chan __le16 min_rx_key_ctxs; 2473fbfee257SMichael Chan __le16 max_rx_key_ctxs; 247431d357c0SMichael Chan u8 unused_0[5]; 2475894aa69aSMichael Chan u8 valid; 2476894aa69aSMichael Chan }; 2477894aa69aSMichael Chan 2478fbfee257SMichael Chan /* hwrm_func_vf_resource_cfg_input (size:512b/64B) */ 2479894aa69aSMichael Chan struct hwrm_func_vf_resource_cfg_input { 2480894aa69aSMichael Chan __le16 req_type; 2481894aa69aSMichael Chan __le16 cmpl_ring; 2482894aa69aSMichael Chan __le16 seq_id; 2483894aa69aSMichael Chan __le16 target_id; 2484894aa69aSMichael Chan __le64 resp_addr; 2485894aa69aSMichael Chan __le16 vf_id; 2486894aa69aSMichael Chan __le16 max_msix; 2487894aa69aSMichael Chan __le16 min_rsscos_ctx; 2488894aa69aSMichael Chan __le16 max_rsscos_ctx; 2489894aa69aSMichael Chan __le16 min_cmpl_rings; 2490894aa69aSMichael Chan __le16 max_cmpl_rings; 2491894aa69aSMichael Chan __le16 min_tx_rings; 2492894aa69aSMichael Chan __le16 max_tx_rings; 2493894aa69aSMichael Chan __le16 min_rx_rings; 2494894aa69aSMichael Chan __le16 max_rx_rings; 2495894aa69aSMichael Chan __le16 min_l2_ctxs; 2496894aa69aSMichael Chan __le16 max_l2_ctxs; 2497894aa69aSMichael Chan __le16 min_vnics; 2498894aa69aSMichael Chan __le16 max_vnics; 2499894aa69aSMichael Chan __le16 min_stat_ctx; 2500894aa69aSMichael Chan __le16 max_stat_ctx; 2501894aa69aSMichael Chan __le16 min_hw_ring_grps; 2502894aa69aSMichael Chan __le16 max_hw_ring_grps; 250331d357c0SMichael Chan __le16 flags; 250431d357c0SMichael Chan #define FUNC_VF_RESOURCE_CFG_REQ_FLAGS_MIN_GUARANTEED 0x1UL 2505fbfee257SMichael Chan __le16 min_tx_key_ctxs; 2506fbfee257SMichael Chan __le16 max_tx_key_ctxs; 2507fbfee257SMichael Chan __le16 min_rx_key_ctxs; 2508fbfee257SMichael Chan __le16 max_rx_key_ctxs; 250931d357c0SMichael Chan u8 unused_0[2]; 2510894aa69aSMichael Chan }; 2511894aa69aSMichael Chan 2512894aa69aSMichael Chan /* hwrm_func_vf_resource_cfg_output (size:256b/32B) */ 2513894aa69aSMichael Chan struct hwrm_func_vf_resource_cfg_output { 2514894aa69aSMichael Chan __le16 error_code; 2515894aa69aSMichael Chan __le16 req_type; 2516894aa69aSMichael Chan __le16 seq_id; 2517894aa69aSMichael Chan __le16 resp_len; 2518894aa69aSMichael Chan __le16 reserved_rsscos_ctx; 2519894aa69aSMichael Chan __le16 reserved_cmpl_rings; 2520894aa69aSMichael Chan __le16 reserved_tx_rings; 2521894aa69aSMichael Chan __le16 reserved_rx_rings; 2522894aa69aSMichael Chan __le16 reserved_l2_ctxs; 2523894aa69aSMichael Chan __le16 reserved_vnics; 2524894aa69aSMichael Chan __le16 reserved_stat_ctx; 2525894aa69aSMichael Chan __le16 reserved_hw_ring_grps; 2526fbfee257SMichael Chan __le16 reserved_tx_key_ctxs; 2527fbfee257SMichael Chan __le16 reserved_rx_key_ctxs; 2528fbfee257SMichael Chan u8 unused_0[3]; 2529894aa69aSMichael Chan u8 valid; 2530894aa69aSMichael Chan }; 2531894aa69aSMichael Chan 25326fc92c33SMichael Chan /* hwrm_func_backing_store_qcaps_input (size:128b/16B) */ 25336fc92c33SMichael Chan struct hwrm_func_backing_store_qcaps_input { 25346fc92c33SMichael Chan __le16 req_type; 25356fc92c33SMichael Chan __le16 cmpl_ring; 25366fc92c33SMichael Chan __le16 seq_id; 25376fc92c33SMichael Chan __le16 target_id; 25386fc92c33SMichael Chan __le64 resp_addr; 25396fc92c33SMichael Chan }; 25406fc92c33SMichael Chan 254178eeadb8SMichael Chan /* hwrm_func_backing_store_qcaps_output (size:832b/104B) */ 25426fc92c33SMichael Chan struct hwrm_func_backing_store_qcaps_output { 25436fc92c33SMichael Chan __le16 error_code; 25446fc92c33SMichael Chan __le16 req_type; 25456fc92c33SMichael Chan __le16 seq_id; 25466fc92c33SMichael Chan __le16 resp_len; 25476fc92c33SMichael Chan __le32 qp_max_entries; 25486fc92c33SMichael Chan __le16 qp_min_qp1_entries; 25496fc92c33SMichael Chan __le16 qp_max_l2_entries; 25506fc92c33SMichael Chan __le16 qp_entry_size; 25516fc92c33SMichael Chan __le16 srq_max_l2_entries; 25526fc92c33SMichael Chan __le32 srq_max_entries; 25536fc92c33SMichael Chan __le16 srq_entry_size; 25546fc92c33SMichael Chan __le16 cq_max_l2_entries; 25556fc92c33SMichael Chan __le32 cq_max_entries; 25566fc92c33SMichael Chan __le16 cq_entry_size; 25576fc92c33SMichael Chan __le16 vnic_max_vnic_entries; 25586fc92c33SMichael Chan __le16 vnic_max_ring_table_entries; 25596fc92c33SMichael Chan __le16 vnic_entry_size; 25606fc92c33SMichael Chan __le32 stat_max_entries; 25616fc92c33SMichael Chan __le16 stat_entry_size; 25626fc92c33SMichael Chan __le16 tqm_entry_size; 25636fc92c33SMichael Chan __le32 tqm_min_entries_per_ring; 25646fc92c33SMichael Chan __le32 tqm_max_entries_per_ring; 25656fc92c33SMichael Chan __le32 mrav_max_entries; 25666fc92c33SMichael Chan __le16 mrav_entry_size; 25676fc92c33SMichael Chan __le16 tim_entry_size; 25686fc92c33SMichael Chan __le32 tim_max_entries; 25694a50ddc2SMichael Chan __le16 mrav_num_entries_units; 257031d357c0SMichael Chan u8 tqm_entries_multiple; 257141136ab3SMichael Chan u8 ctx_kind_initializer; 257216db6323SMichael Chan __le16 ctx_init_mask; 257316db6323SMichael Chan #define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_QP 0x1UL 257416db6323SMichael Chan #define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_SRQ 0x2UL 257516db6323SMichael Chan #define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_CQ 0x4UL 257616db6323SMichael Chan #define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_VNIC 0x8UL 257716db6323SMichael Chan #define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_STAT 0x10UL 257816db6323SMichael Chan #define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_MRAV 0x20UL 257978eeadb8SMichael Chan #define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_TKC 0x40UL 258078eeadb8SMichael Chan #define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_RKC 0x80UL 258116db6323SMichael Chan u8 qp_init_offset; 258216db6323SMichael Chan u8 srq_init_offset; 258316db6323SMichael Chan u8 cq_init_offset; 258416db6323SMichael Chan u8 vnic_init_offset; 2585460c2577SMichael Chan u8 tqm_fp_rings_count; 258616db6323SMichael Chan u8 stat_init_offset; 258716db6323SMichael Chan u8 mrav_init_offset; 258831f67c2eSMichael Chan u8 tqm_fp_rings_count_ext; 258978eeadb8SMichael Chan u8 tkc_init_offset; 259078eeadb8SMichael Chan u8 rkc_init_offset; 259178eeadb8SMichael Chan __le16 tkc_entry_size; 259278eeadb8SMichael Chan __le16 rkc_entry_size; 259378eeadb8SMichael Chan __le32 tkc_max_entries; 259478eeadb8SMichael Chan __le32 rkc_max_entries; 25952895c153SMichael Chan u8 rsvd1[7]; 25966fc92c33SMichael Chan u8 valid; 25976fc92c33SMichael Chan }; 25986fc92c33SMichael Chan 259931f67c2eSMichael Chan /* tqm_fp_ring_cfg (size:128b/16B) */ 260031f67c2eSMichael Chan struct tqm_fp_ring_cfg { 260131f67c2eSMichael Chan u8 tqm_ring_pg_size_tqm_ring_lvl; 260231f67c2eSMichael Chan #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_LVL_MASK 0xfUL 260331f67c2eSMichael Chan #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_LVL_SFT 0 260431f67c2eSMichael Chan #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_LVL_LVL_0 0x0UL 260531f67c2eSMichael Chan #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_LVL_LVL_1 0x1UL 260631f67c2eSMichael Chan #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_LVL_LVL_2 0x2UL 260731f67c2eSMichael Chan #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_LVL_LAST TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_LVL_LVL_2 260831f67c2eSMichael Chan #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_MASK 0xf0UL 260931f67c2eSMichael Chan #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_SFT 4 261031f67c2eSMichael Chan #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_PG_4K (0x0UL << 4) 261131f67c2eSMichael Chan #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_PG_8K (0x1UL << 4) 261231f67c2eSMichael Chan #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_PG_64K (0x2UL << 4) 261331f67c2eSMichael Chan #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_PG_2M (0x3UL << 4) 261431f67c2eSMichael Chan #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_PG_8M (0x4UL << 4) 261531f67c2eSMichael Chan #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_PG_1G (0x5UL << 4) 261631f67c2eSMichael Chan #define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_LAST TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_PG_1G 261731f67c2eSMichael Chan u8 unused[3]; 261831f67c2eSMichael Chan __le32 tqm_ring_num_entries; 261931f67c2eSMichael Chan __le64 tqm_ring_page_dir; 262031f67c2eSMichael Chan }; 262131f67c2eSMichael Chan 262278eeadb8SMichael Chan /* hwrm_func_backing_store_cfg_input (size:2688b/336B) */ 26236fc92c33SMichael Chan struct hwrm_func_backing_store_cfg_input { 26246fc92c33SMichael Chan __le16 req_type; 26256fc92c33SMichael Chan __le16 cmpl_ring; 26266fc92c33SMichael Chan __le16 seq_id; 26276fc92c33SMichael Chan __le16 target_id; 26286fc92c33SMichael Chan __le64 resp_addr; 26296fc92c33SMichael Chan __le32 flags; 26306fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_FLAGS_PREBOOT_MODE 0x1UL 26314a50ddc2SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_FLAGS_MRAV_RESERVATION_SPLIT 0x2UL 26326fc92c33SMichael Chan __le32 enables; 26336fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_QP 0x1UL 26346fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_SRQ 0x2UL 26356fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_CQ 0x4UL 26366fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_VNIC 0x8UL 26376fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_STAT 0x10UL 26386fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_SP 0x20UL 26396fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING0 0x40UL 26406fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING1 0x80UL 26416fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING2 0x100UL 26426fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING3 0x200UL 26436fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING4 0x400UL 26446fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING5 0x800UL 26456fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING6 0x1000UL 26466fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING7 0x2000UL 26476fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_MRAV 0x4000UL 26486fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TIM 0x8000UL 264916db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING8 0x10000UL 265016db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING9 0x20000UL 265116db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING10 0x40000UL 265278eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TKC 0x80000UL 265378eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_RKC 0x100000UL 26546fc92c33SMichael Chan u8 qpc_pg_size_qpc_lvl; 26556fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_MASK 0xfUL 26566fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_SFT 0 26576fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_0 0x0UL 26586fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_1 0x1UL 26596fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_2 0x2UL 26606fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_2 26616fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_MASK 0xf0UL 26626fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_SFT 4 26636fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_4K (0x0UL << 4) 26646fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_8K (0x1UL << 4) 26656fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_64K (0x2UL << 4) 26666fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_2M (0x3UL << 4) 26676fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_8M (0x4UL << 4) 26686fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_1G (0x5UL << 4) 26696fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_1G 26706fc92c33SMichael Chan u8 srq_pg_size_srq_lvl; 26716fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_MASK 0xfUL 26726fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_SFT 0 26736fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_0 0x0UL 26746fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_1 0x1UL 26756fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_2 0x2UL 26766fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_2 26776fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_MASK 0xf0UL 26786fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_SFT 4 26796fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_4K (0x0UL << 4) 26806fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_8K (0x1UL << 4) 26816fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_64K (0x2UL << 4) 26826fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_2M (0x3UL << 4) 26836fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_8M (0x4UL << 4) 26846fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_1G (0x5UL << 4) 26856fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_1G 26866fc92c33SMichael Chan u8 cq_pg_size_cq_lvl; 26876fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_MASK 0xfUL 26886fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_SFT 0 26896fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_0 0x0UL 26906fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_1 0x1UL 26916fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_2 0x2UL 26926fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_2 26936fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_MASK 0xf0UL 26946fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_SFT 4 26956fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_4K (0x0UL << 4) 26966fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_8K (0x1UL << 4) 26976fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_64K (0x2UL << 4) 26986fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_2M (0x3UL << 4) 26996fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_8M (0x4UL << 4) 27006fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_1G (0x5UL << 4) 27016fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_1G 27026fc92c33SMichael Chan u8 vnic_pg_size_vnic_lvl; 27036fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_MASK 0xfUL 27046fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_SFT 0 27056fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_0 0x0UL 27066fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_1 0x1UL 27076fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_2 0x2UL 27086fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_2 27096fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_MASK 0xf0UL 27106fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_SFT 4 27116fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_4K (0x0UL << 4) 27126fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_8K (0x1UL << 4) 27136fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_64K (0x2UL << 4) 27146fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_2M (0x3UL << 4) 27156fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_8M (0x4UL << 4) 27166fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_1G (0x5UL << 4) 27176fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_1G 27186fc92c33SMichael Chan u8 stat_pg_size_stat_lvl; 27196fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_MASK 0xfUL 27206fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_SFT 0 27216fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_0 0x0UL 27226fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_1 0x1UL 27236fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_2 0x2UL 27246fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_2 27256fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_MASK 0xf0UL 27266fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_SFT 4 27276fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_4K (0x0UL << 4) 27286fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_8K (0x1UL << 4) 27296fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_64K (0x2UL << 4) 27306fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_2M (0x3UL << 4) 27316fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_8M (0x4UL << 4) 27326fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_1G (0x5UL << 4) 27336fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_1G 27346fc92c33SMichael Chan u8 tqm_sp_pg_size_tqm_sp_lvl; 27356fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_MASK 0xfUL 27366fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_SFT 0 27376fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_0 0x0UL 27386fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_1 0x1UL 27396fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_2 0x2UL 27406fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_2 27416fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_MASK 0xf0UL 27426fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_SFT 4 27436fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_4K (0x0UL << 4) 27446fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_8K (0x1UL << 4) 27456fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_64K (0x2UL << 4) 27466fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_2M (0x3UL << 4) 27476fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_8M (0x4UL << 4) 27486fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_1G (0x5UL << 4) 27496fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_1G 27506fc92c33SMichael Chan u8 tqm_ring0_pg_size_tqm_ring0_lvl; 27516fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_MASK 0xfUL 27526fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_SFT 0 27536fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_0 0x0UL 27546fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_1 0x1UL 27556fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_2 0x2UL 27566fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_2 27576fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_MASK 0xf0UL 27586fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_SFT 4 27596fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_4K (0x0UL << 4) 27606fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_8K (0x1UL << 4) 27616fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_64K (0x2UL << 4) 27626fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_2M (0x3UL << 4) 27636fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_8M (0x4UL << 4) 27646fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_1G (0x5UL << 4) 27656fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_1G 27666fc92c33SMichael Chan u8 tqm_ring1_pg_size_tqm_ring1_lvl; 27676fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_MASK 0xfUL 27686fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_SFT 0 27696fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_0 0x0UL 27706fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_1 0x1UL 27716fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_2 0x2UL 27726fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_2 27736fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_MASK 0xf0UL 27746fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_SFT 4 27756fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_4K (0x0UL << 4) 27766fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_8K (0x1UL << 4) 27776fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_64K (0x2UL << 4) 27786fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_2M (0x3UL << 4) 27796fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_8M (0x4UL << 4) 27806fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_1G (0x5UL << 4) 27816fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_1G 27826fc92c33SMichael Chan u8 tqm_ring2_pg_size_tqm_ring2_lvl; 27836fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_MASK 0xfUL 27846fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_SFT 0 27856fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_0 0x0UL 27866fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_1 0x1UL 27876fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_2 0x2UL 27886fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_2 27896fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_MASK 0xf0UL 27906fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_SFT 4 27916fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_4K (0x0UL << 4) 27926fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_8K (0x1UL << 4) 27936fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_64K (0x2UL << 4) 27946fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_2M (0x3UL << 4) 27956fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_8M (0x4UL << 4) 27966fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_1G (0x5UL << 4) 27976fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_1G 27986fc92c33SMichael Chan u8 tqm_ring3_pg_size_tqm_ring3_lvl; 27996fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_MASK 0xfUL 28006fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_SFT 0 28016fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_0 0x0UL 28026fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_1 0x1UL 28036fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_2 0x2UL 28046fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_2 28056fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_MASK 0xf0UL 28066fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_SFT 4 28076fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_4K (0x0UL << 4) 28086fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_8K (0x1UL << 4) 28096fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_64K (0x2UL << 4) 28106fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_2M (0x3UL << 4) 28116fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_8M (0x4UL << 4) 28126fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_1G (0x5UL << 4) 28136fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_1G 28146fc92c33SMichael Chan u8 tqm_ring4_pg_size_tqm_ring4_lvl; 28156fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_MASK 0xfUL 28166fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_SFT 0 28176fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_0 0x0UL 28186fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_1 0x1UL 28196fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_2 0x2UL 28206fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_2 28216fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_MASK 0xf0UL 28226fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_SFT 4 28236fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_4K (0x0UL << 4) 28246fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_8K (0x1UL << 4) 28256fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_64K (0x2UL << 4) 28266fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_2M (0x3UL << 4) 28276fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_8M (0x4UL << 4) 28286fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_1G (0x5UL << 4) 28296fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_1G 28306fc92c33SMichael Chan u8 tqm_ring5_pg_size_tqm_ring5_lvl; 28316fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_MASK 0xfUL 28326fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_SFT 0 28336fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_0 0x0UL 28346fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_1 0x1UL 28356fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_2 0x2UL 28366fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_2 28376fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_MASK 0xf0UL 28386fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_SFT 4 28396fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_4K (0x0UL << 4) 28406fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_8K (0x1UL << 4) 28416fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_64K (0x2UL << 4) 28426fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_2M (0x3UL << 4) 28436fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_8M (0x4UL << 4) 28446fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_1G (0x5UL << 4) 28456fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_1G 28466fc92c33SMichael Chan u8 tqm_ring6_pg_size_tqm_ring6_lvl; 28476fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_MASK 0xfUL 28486fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_SFT 0 28496fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_0 0x0UL 28506fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_1 0x1UL 28516fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_2 0x2UL 28526fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_2 28536fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_MASK 0xf0UL 28546fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_SFT 4 28556fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_4K (0x0UL << 4) 28566fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_8K (0x1UL << 4) 28576fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_64K (0x2UL << 4) 28586fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_2M (0x3UL << 4) 28596fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_8M (0x4UL << 4) 28606fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_1G (0x5UL << 4) 28616fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_1G 28626fc92c33SMichael Chan u8 tqm_ring7_pg_size_tqm_ring7_lvl; 28636fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_MASK 0xfUL 28646fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_SFT 0 28656fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_0 0x0UL 28666fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_1 0x1UL 28676fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_2 0x2UL 28686fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_2 28696fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_MASK 0xf0UL 28706fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_SFT 4 28716fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_4K (0x0UL << 4) 28726fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_8K (0x1UL << 4) 28736fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_64K (0x2UL << 4) 28746fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_2M (0x3UL << 4) 28756fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_8M (0x4UL << 4) 28766fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_1G (0x5UL << 4) 28776fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_1G 28786fc92c33SMichael Chan u8 mrav_pg_size_mrav_lvl; 28796fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_MASK 0xfUL 28806fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_SFT 0 28816fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_0 0x0UL 28826fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_1 0x1UL 28836fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_2 0x2UL 28846fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_2 28856fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_MASK 0xf0UL 28866fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_SFT 4 28876fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_4K (0x0UL << 4) 28886fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_8K (0x1UL << 4) 28896fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_64K (0x2UL << 4) 28906fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_2M (0x3UL << 4) 28916fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_8M (0x4UL << 4) 28926fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_1G (0x5UL << 4) 28936fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_1G 28946fc92c33SMichael Chan u8 tim_pg_size_tim_lvl; 28956fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_MASK 0xfUL 28966fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_SFT 0 28976fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_0 0x0UL 28986fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_1 0x1UL 28996fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_2 0x2UL 29006fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_2 29016fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_MASK 0xf0UL 29026fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_SFT 4 29036fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_4K (0x0UL << 4) 29046fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_8K (0x1UL << 4) 29056fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_64K (0x2UL << 4) 29066fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_2M (0x3UL << 4) 29076fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_8M (0x4UL << 4) 29086fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_1G (0x5UL << 4) 29096fc92c33SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_1G 29106fc92c33SMichael Chan __le64 qpc_page_dir; 29116fc92c33SMichael Chan __le64 srq_page_dir; 29126fc92c33SMichael Chan __le64 cq_page_dir; 29136fc92c33SMichael Chan __le64 vnic_page_dir; 29146fc92c33SMichael Chan __le64 stat_page_dir; 29156fc92c33SMichael Chan __le64 tqm_sp_page_dir; 29166fc92c33SMichael Chan __le64 tqm_ring0_page_dir; 29176fc92c33SMichael Chan __le64 tqm_ring1_page_dir; 29186fc92c33SMichael Chan __le64 tqm_ring2_page_dir; 29196fc92c33SMichael Chan __le64 tqm_ring3_page_dir; 29206fc92c33SMichael Chan __le64 tqm_ring4_page_dir; 29216fc92c33SMichael Chan __le64 tqm_ring5_page_dir; 29226fc92c33SMichael Chan __le64 tqm_ring6_page_dir; 29236fc92c33SMichael Chan __le64 tqm_ring7_page_dir; 29246fc92c33SMichael Chan __le64 mrav_page_dir; 29256fc92c33SMichael Chan __le64 tim_page_dir; 29266fc92c33SMichael Chan __le32 qp_num_entries; 29276fc92c33SMichael Chan __le32 srq_num_entries; 29286fc92c33SMichael Chan __le32 cq_num_entries; 29296fc92c33SMichael Chan __le32 stat_num_entries; 29306fc92c33SMichael Chan __le32 tqm_sp_num_entries; 29316fc92c33SMichael Chan __le32 tqm_ring0_num_entries; 29326fc92c33SMichael Chan __le32 tqm_ring1_num_entries; 29336fc92c33SMichael Chan __le32 tqm_ring2_num_entries; 29346fc92c33SMichael Chan __le32 tqm_ring3_num_entries; 29356fc92c33SMichael Chan __le32 tqm_ring4_num_entries; 29366fc92c33SMichael Chan __le32 tqm_ring5_num_entries; 29376fc92c33SMichael Chan __le32 tqm_ring6_num_entries; 29386fc92c33SMichael Chan __le32 tqm_ring7_num_entries; 29396fc92c33SMichael Chan __le32 mrav_num_entries; 29406fc92c33SMichael Chan __le32 tim_num_entries; 29416fc92c33SMichael Chan __le16 qp_num_qp1_entries; 29426fc92c33SMichael Chan __le16 qp_num_l2_entries; 29436fc92c33SMichael Chan __le16 qp_entry_size; 29446fc92c33SMichael Chan __le16 srq_num_l2_entries; 29456fc92c33SMichael Chan __le16 srq_entry_size; 29466fc92c33SMichael Chan __le16 cq_num_l2_entries; 29476fc92c33SMichael Chan __le16 cq_entry_size; 29486fc92c33SMichael Chan __le16 vnic_num_vnic_entries; 29496fc92c33SMichael Chan __le16 vnic_num_ring_table_entries; 29506fc92c33SMichael Chan __le16 vnic_entry_size; 29516fc92c33SMichael Chan __le16 stat_entry_size; 29526fc92c33SMichael Chan __le16 tqm_entry_size; 29536fc92c33SMichael Chan __le16 mrav_entry_size; 29546fc92c33SMichael Chan __le16 tim_entry_size; 295516db6323SMichael Chan u8 tqm_ring8_pg_size_tqm_ring_lvl; 295616db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_LVL_MASK 0xfUL 295716db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_LVL_SFT 0 295816db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_LVL_LVL_0 0x0UL 295916db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_LVL_LVL_1 0x1UL 296016db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_LVL_LVL_2 0x2UL 296116db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_LVL_LVL_2 296216db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_MASK 0xf0UL 296316db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_SFT 4 296416db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_PG_4K (0x0UL << 4) 296516db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_PG_8K (0x1UL << 4) 296616db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_PG_64K (0x2UL << 4) 296716db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_PG_2M (0x3UL << 4) 296816db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_PG_8M (0x4UL << 4) 296916db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_PG_1G (0x5UL << 4) 297016db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_PG_1G 297116db6323SMichael Chan u8 ring8_unused[3]; 297216db6323SMichael Chan __le32 tqm_ring8_num_entries; 297316db6323SMichael Chan __le64 tqm_ring8_page_dir; 297416db6323SMichael Chan u8 tqm_ring9_pg_size_tqm_ring_lvl; 297516db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_LVL_MASK 0xfUL 297616db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_LVL_SFT 0 297716db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_LVL_LVL_0 0x0UL 297816db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_LVL_LVL_1 0x1UL 297916db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_LVL_LVL_2 0x2UL 298016db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_LVL_LVL_2 298116db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_MASK 0xf0UL 298216db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_SFT 4 298316db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_PG_4K (0x0UL << 4) 298416db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_PG_8K (0x1UL << 4) 298516db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_PG_64K (0x2UL << 4) 298616db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_PG_2M (0x3UL << 4) 298716db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_PG_8M (0x4UL << 4) 298816db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_PG_1G (0x5UL << 4) 298916db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_PG_1G 299016db6323SMichael Chan u8 ring9_unused[3]; 299116db6323SMichael Chan __le32 tqm_ring9_num_entries; 299216db6323SMichael Chan __le64 tqm_ring9_page_dir; 299316db6323SMichael Chan u8 tqm_ring10_pg_size_tqm_ring_lvl; 299416db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_LVL_MASK 0xfUL 299516db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_LVL_SFT 0 299616db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_LVL_LVL_0 0x0UL 299716db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_LVL_LVL_1 0x1UL 299816db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_LVL_LVL_2 0x2UL 299916db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_LVL_LVL_2 300016db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_MASK 0xf0UL 300116db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_SFT 4 300216db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_PG_4K (0x0UL << 4) 300316db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_PG_8K (0x1UL << 4) 300416db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_PG_64K (0x2UL << 4) 300516db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_PG_2M (0x3UL << 4) 300616db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_PG_8M (0x4UL << 4) 300716db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_PG_1G (0x5UL << 4) 300816db6323SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_PG_1G 300916db6323SMichael Chan u8 ring10_unused[3]; 301016db6323SMichael Chan __le32 tqm_ring10_num_entries; 301116db6323SMichael Chan __le64 tqm_ring10_page_dir; 301278eeadb8SMichael Chan __le32 tkc_num_entries; 301378eeadb8SMichael Chan __le32 rkc_num_entries; 301478eeadb8SMichael Chan __le64 tkc_page_dir; 301578eeadb8SMichael Chan __le64 rkc_page_dir; 301678eeadb8SMichael Chan __le16 tkc_entry_size; 301778eeadb8SMichael Chan __le16 rkc_entry_size; 301878eeadb8SMichael Chan u8 tkc_pg_size_tkc_lvl; 301978eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TKC_LVL_MASK 0xfUL 302078eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TKC_LVL_SFT 0 302178eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TKC_LVL_LVL_0 0x0UL 302278eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TKC_LVL_LVL_1 0x1UL 302378eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TKC_LVL_LVL_2 0x2UL 302478eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TKC_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TKC_LVL_LVL_2 302578eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_MASK 0xf0UL 302678eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_SFT 4 302778eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_PG_4K (0x0UL << 4) 302878eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_PG_8K (0x1UL << 4) 302978eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_PG_64K (0x2UL << 4) 303078eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_PG_2M (0x3UL << 4) 303178eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_PG_8M (0x4UL << 4) 303278eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_PG_1G (0x5UL << 4) 303378eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_PG_1G 303478eeadb8SMichael Chan u8 rkc_pg_size_rkc_lvl; 303578eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RKC_LVL_MASK 0xfUL 303678eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RKC_LVL_SFT 0 303778eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RKC_LVL_LVL_0 0x0UL 303878eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RKC_LVL_LVL_1 0x1UL 303978eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RKC_LVL_LVL_2 0x2UL 304078eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RKC_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_RKC_LVL_LVL_2 304178eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_MASK 0xf0UL 304278eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_SFT 4 304378eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_PG_4K (0x0UL << 4) 304478eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_PG_8K (0x1UL << 4) 304578eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_PG_64K (0x2UL << 4) 304678eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_PG_2M (0x3UL << 4) 304778eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_PG_8M (0x4UL << 4) 304878eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_PG_1G (0x5UL << 4) 304978eeadb8SMichael Chan #define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_PG_1G 305078eeadb8SMichael Chan u8 rsvd[2]; 30516fc92c33SMichael Chan }; 30526fc92c33SMichael Chan 30536fc92c33SMichael Chan /* hwrm_func_backing_store_cfg_output (size:128b/16B) */ 30546fc92c33SMichael Chan struct hwrm_func_backing_store_cfg_output { 30556fc92c33SMichael Chan __le16 error_code; 30566fc92c33SMichael Chan __le16 req_type; 30576fc92c33SMichael Chan __le16 seq_id; 30586fc92c33SMichael Chan __le16 resp_len; 30596fc92c33SMichael Chan u8 unused_0[7]; 30606fc92c33SMichael Chan u8 valid; 30616fc92c33SMichael Chan }; 30626fc92c33SMichael Chan 30633293ec23SMichael Chan /* hwrm_error_recovery_qcfg_input (size:192b/24B) */ 30643293ec23SMichael Chan struct hwrm_error_recovery_qcfg_input { 30653293ec23SMichael Chan __le16 req_type; 30663293ec23SMichael Chan __le16 cmpl_ring; 30673293ec23SMichael Chan __le16 seq_id; 30683293ec23SMichael Chan __le16 target_id; 30693293ec23SMichael Chan __le64 resp_addr; 30703293ec23SMichael Chan u8 unused_0[8]; 30713293ec23SMichael Chan }; 30723293ec23SMichael Chan 30733293ec23SMichael Chan /* hwrm_error_recovery_qcfg_output (size:1664b/208B) */ 30743293ec23SMichael Chan struct hwrm_error_recovery_qcfg_output { 30753293ec23SMichael Chan __le16 error_code; 30763293ec23SMichael Chan __le16 req_type; 30773293ec23SMichael Chan __le16 seq_id; 30783293ec23SMichael Chan __le16 resp_len; 30793293ec23SMichael Chan __le32 flags; 30803293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FLAGS_HOST 0x1UL 30813293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FLAGS_CO_CPU 0x2UL 30823293ec23SMichael Chan __le32 driver_polling_freq; 30833293ec23SMichael Chan __le32 master_func_wait_period; 30843293ec23SMichael Chan __le32 normal_func_wait_period; 30853293ec23SMichael Chan __le32 master_func_wait_period_after_reset; 30863293ec23SMichael Chan __le32 max_bailout_time_after_reset; 30873293ec23SMichael Chan __le32 fw_health_status_reg; 30883293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_MASK 0x3UL 30893293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_SFT 0 30903293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_PCIE_CFG 0x0UL 30913293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_GRC 0x1UL 30923293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_BAR0 0x2UL 30933293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_BAR1 0x3UL 30943293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_LAST ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_BAR1 30953293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_MASK 0xfffffffcUL 30963293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SFT 2 30973293ec23SMichael Chan __le32 fw_heartbeat_reg; 30983293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_MASK 0x3UL 30993293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_SFT 0 31003293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_PCIE_CFG 0x0UL 31013293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_GRC 0x1UL 31023293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_BAR0 0x2UL 31033293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_BAR1 0x3UL 31043293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_LAST ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_BAR1 31053293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_MASK 0xfffffffcUL 31063293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SFT 2 31073293ec23SMichael Chan __le32 fw_reset_cnt_reg; 31083293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_MASK 0x3UL 31093293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_SFT 0 31103293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_PCIE_CFG 0x0UL 31113293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_GRC 0x1UL 31123293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_BAR0 0x2UL 31133293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_BAR1 0x3UL 31143293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_LAST ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_BAR1 31153293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_MASK 0xfffffffcUL 31163293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SFT 2 31173293ec23SMichael Chan __le32 reset_inprogress_reg; 31183293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_MASK 0x3UL 31193293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_SFT 0 31203293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_PCIE_CFG 0x0UL 31213293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_GRC 0x1UL 31223293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_BAR0 0x2UL 31233293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_BAR1 0x3UL 31243293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_LAST ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_BAR1 31253293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_MASK 0xfffffffcUL 31263293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SFT 2 31273293ec23SMichael Chan __le32 reset_inprogress_reg_mask; 31283293ec23SMichael Chan u8 unused_0[3]; 31293293ec23SMichael Chan u8 reg_array_cnt; 31303293ec23SMichael Chan __le32 reset_reg[16]; 31313293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_MASK 0x3UL 31323293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_SFT 0 31333293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_PCIE_CFG 0x0UL 31343293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_GRC 0x1UL 31353293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_BAR0 0x2UL 31363293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_BAR1 0x3UL 31373293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_LAST ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_BAR1 31383293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_MASK 0xfffffffcUL 31393293ec23SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SFT 2 31403293ec23SMichael Chan __le32 reset_reg_val[16]; 31413293ec23SMichael Chan u8 delay_after_reset[16]; 3142460c2577SMichael Chan __le32 err_recovery_cnt_reg; 3143460c2577SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_MASK 0x3UL 3144460c2577SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_SFT 0 3145460c2577SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_PCIE_CFG 0x0UL 3146460c2577SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_GRC 0x1UL 3147460c2577SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_BAR0 0x2UL 3148460c2577SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_BAR1 0x3UL 3149460c2577SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_LAST ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_BAR1 3150460c2577SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_MASK 0xfffffffcUL 3151460c2577SMichael Chan #define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SFT 2 3152460c2577SMichael Chan u8 unused_1[3]; 31533293ec23SMichael Chan u8 valid; 31543293ec23SMichael Chan }; 31553293ec23SMichael Chan 315631f67c2eSMichael Chan /* hwrm_func_echo_response_input (size:192b/24B) */ 315731f67c2eSMichael Chan struct hwrm_func_echo_response_input { 315831f67c2eSMichael Chan __le16 req_type; 315931f67c2eSMichael Chan __le16 cmpl_ring; 316031f67c2eSMichael Chan __le16 seq_id; 316131f67c2eSMichael Chan __le16 target_id; 316231f67c2eSMichael Chan __le64 resp_addr; 316331f67c2eSMichael Chan __le32 event_data1; 316431f67c2eSMichael Chan __le32 event_data2; 316531f67c2eSMichael Chan }; 316631f67c2eSMichael Chan 316731f67c2eSMichael Chan /* hwrm_func_echo_response_output (size:128b/16B) */ 316831f67c2eSMichael Chan struct hwrm_func_echo_response_output { 316931f67c2eSMichael Chan __le16 error_code; 317031f67c2eSMichael Chan __le16 req_type; 317131f67c2eSMichael Chan __le16 seq_id; 317231f67c2eSMichael Chan __le16 resp_len; 317331f67c2eSMichael Chan u8 unused_0[7]; 317431f67c2eSMichael Chan u8 valid; 317531f67c2eSMichael Chan }; 317631f67c2eSMichael Chan 317778eeadb8SMichael Chan /* hwrm_func_ptp_pin_qcfg_input (size:192b/24B) */ 317878eeadb8SMichael Chan struct hwrm_func_ptp_pin_qcfg_input { 317978eeadb8SMichael Chan __le16 req_type; 318078eeadb8SMichael Chan __le16 cmpl_ring; 318178eeadb8SMichael Chan __le16 seq_id; 318278eeadb8SMichael Chan __le16 target_id; 318378eeadb8SMichael Chan __le64 resp_addr; 318478eeadb8SMichael Chan u8 unused_0[8]; 318578eeadb8SMichael Chan }; 318678eeadb8SMichael Chan 318778eeadb8SMichael Chan /* hwrm_func_ptp_pin_qcfg_output (size:128b/16B) */ 318878eeadb8SMichael Chan struct hwrm_func_ptp_pin_qcfg_output { 318978eeadb8SMichael Chan __le16 error_code; 319078eeadb8SMichael Chan __le16 req_type; 319178eeadb8SMichael Chan __le16 seq_id; 319278eeadb8SMichael Chan __le16 resp_len; 319378eeadb8SMichael Chan u8 num_pins; 319478eeadb8SMichael Chan u8 state; 319578eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_STATE_PIN0_ENABLED 0x1UL 319678eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_STATE_PIN1_ENABLED 0x2UL 319778eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_STATE_PIN2_ENABLED 0x4UL 319878eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_STATE_PIN3_ENABLED 0x8UL 319978eeadb8SMichael Chan u8 pin0_usage; 320078eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN0_USAGE_NONE 0x0UL 320178eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN0_USAGE_PPS_IN 0x1UL 320278eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN0_USAGE_PPS_OUT 0x2UL 320378eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN0_USAGE_SYNC_IN 0x3UL 320478eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN0_USAGE_SYNC_OUT 0x4UL 320578eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN0_USAGE_LAST FUNC_PTP_PIN_QCFG_RESP_PIN0_USAGE_SYNC_OUT 320678eeadb8SMichael Chan u8 pin1_usage; 320778eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN1_USAGE_NONE 0x0UL 320878eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN1_USAGE_PPS_IN 0x1UL 320978eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN1_USAGE_PPS_OUT 0x2UL 321078eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN1_USAGE_SYNC_IN 0x3UL 321178eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN1_USAGE_SYNC_OUT 0x4UL 321278eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN1_USAGE_LAST FUNC_PTP_PIN_QCFG_RESP_PIN1_USAGE_SYNC_OUT 321378eeadb8SMichael Chan u8 pin2_usage; 321478eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_NONE 0x0UL 321578eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_PPS_IN 0x1UL 321678eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_PPS_OUT 0x2UL 321778eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_SYNC_IN 0x3UL 321878eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_SYNC_OUT 0x4UL 321984a911dbSMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_SYNCE_PRIMARY_CLOCK_OUT 0x5UL 322084a911dbSMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_SYNCE_SECONDARY_CLOCK_OUT 0x6UL 322184a911dbSMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_LAST FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_SYNCE_SECONDARY_CLOCK_OUT 322278eeadb8SMichael Chan u8 pin3_usage; 322378eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_NONE 0x0UL 322478eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_PPS_IN 0x1UL 322578eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_PPS_OUT 0x2UL 322678eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_SYNC_IN 0x3UL 322778eeadb8SMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_SYNC_OUT 0x4UL 322884a911dbSMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_SYNCE_PRIMARY_CLOCK_OUT 0x5UL 322984a911dbSMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_SYNCE_SECONDARY_CLOCK_OUT 0x6UL 323084a911dbSMichael Chan #define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_LAST FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_SYNCE_SECONDARY_CLOCK_OUT 323178eeadb8SMichael Chan u8 unused_0; 323278eeadb8SMichael Chan u8 valid; 323378eeadb8SMichael Chan }; 323478eeadb8SMichael Chan 323578eeadb8SMichael Chan /* hwrm_func_ptp_pin_cfg_input (size:256b/32B) */ 323678eeadb8SMichael Chan struct hwrm_func_ptp_pin_cfg_input { 323778eeadb8SMichael Chan __le16 req_type; 323878eeadb8SMichael Chan __le16 cmpl_ring; 323978eeadb8SMichael Chan __le16 seq_id; 324078eeadb8SMichael Chan __le16 target_id; 324178eeadb8SMichael Chan __le64 resp_addr; 324278eeadb8SMichael Chan __le32 enables; 324378eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN0_STATE 0x1UL 324478eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN0_USAGE 0x2UL 324578eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN1_STATE 0x4UL 324678eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN1_USAGE 0x8UL 324778eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN2_STATE 0x10UL 324878eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN2_USAGE 0x20UL 324978eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN3_STATE 0x40UL 325078eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN3_USAGE 0x80UL 325178eeadb8SMichael Chan u8 pin0_state; 325278eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN0_STATE_DISABLED 0x0UL 325378eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN0_STATE_ENABLED 0x1UL 325478eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN0_STATE_LAST FUNC_PTP_PIN_CFG_REQ_PIN0_STATE_ENABLED 325578eeadb8SMichael Chan u8 pin0_usage; 325678eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN0_USAGE_NONE 0x0UL 325778eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN0_USAGE_PPS_IN 0x1UL 325878eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN0_USAGE_PPS_OUT 0x2UL 325978eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN0_USAGE_SYNC_IN 0x3UL 326078eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN0_USAGE_SYNC_OUT 0x4UL 326178eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN0_USAGE_LAST FUNC_PTP_PIN_CFG_REQ_PIN0_USAGE_SYNC_OUT 326278eeadb8SMichael Chan u8 pin1_state; 326378eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN1_STATE_DISABLED 0x0UL 326478eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN1_STATE_ENABLED 0x1UL 326578eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN1_STATE_LAST FUNC_PTP_PIN_CFG_REQ_PIN1_STATE_ENABLED 326678eeadb8SMichael Chan u8 pin1_usage; 326778eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN1_USAGE_NONE 0x0UL 326878eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN1_USAGE_PPS_IN 0x1UL 326978eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN1_USAGE_PPS_OUT 0x2UL 327078eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN1_USAGE_SYNC_IN 0x3UL 327178eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN1_USAGE_SYNC_OUT 0x4UL 327278eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN1_USAGE_LAST FUNC_PTP_PIN_CFG_REQ_PIN1_USAGE_SYNC_OUT 327378eeadb8SMichael Chan u8 pin2_state; 327478eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN2_STATE_DISABLED 0x0UL 327578eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN2_STATE_ENABLED 0x1UL 327678eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN2_STATE_LAST FUNC_PTP_PIN_CFG_REQ_PIN2_STATE_ENABLED 327778eeadb8SMichael Chan u8 pin2_usage; 327878eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_NONE 0x0UL 327978eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_PPS_IN 0x1UL 328078eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_PPS_OUT 0x2UL 328178eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_SYNC_IN 0x3UL 328278eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_SYNC_OUT 0x4UL 328384a911dbSMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_SYNCE_PRIMARY_CLOCK_OUT 0x5UL 328484a911dbSMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_SYNCE_SECONDARY_CLOCK_OUT 0x6UL 328584a911dbSMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_LAST FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_SYNCE_SECONDARY_CLOCK_OUT 328678eeadb8SMichael Chan u8 pin3_state; 328778eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN3_STATE_DISABLED 0x0UL 328878eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN3_STATE_ENABLED 0x1UL 328978eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN3_STATE_LAST FUNC_PTP_PIN_CFG_REQ_PIN3_STATE_ENABLED 329078eeadb8SMichael Chan u8 pin3_usage; 329178eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_NONE 0x0UL 329278eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_PPS_IN 0x1UL 329378eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_PPS_OUT 0x2UL 329478eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_SYNC_IN 0x3UL 329578eeadb8SMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_SYNC_OUT 0x4UL 329684a911dbSMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_SYNCE_PRIMARY_CLOCK_OUT 0x5UL 329784a911dbSMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_SYNCE_SECONDARY_CLOCK_OUT 0x6UL 329884a911dbSMichael Chan #define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_LAST FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_SYNCE_SECONDARY_CLOCK_OUT 329978eeadb8SMichael Chan u8 unused_0[4]; 330078eeadb8SMichael Chan }; 330178eeadb8SMichael Chan 330278eeadb8SMichael Chan /* hwrm_func_ptp_pin_cfg_output (size:128b/16B) */ 330378eeadb8SMichael Chan struct hwrm_func_ptp_pin_cfg_output { 330478eeadb8SMichael Chan __le16 error_code; 330578eeadb8SMichael Chan __le16 req_type; 330678eeadb8SMichael Chan __le16 seq_id; 330778eeadb8SMichael Chan __le16 resp_len; 330878eeadb8SMichael Chan u8 unused_0[7]; 330978eeadb8SMichael Chan u8 valid; 331078eeadb8SMichael Chan }; 331178eeadb8SMichael Chan 33122895c153SMichael Chan /* hwrm_func_ptp_cfg_input (size:384b/48B) */ 331378eeadb8SMichael Chan struct hwrm_func_ptp_cfg_input { 331478eeadb8SMichael Chan __le16 req_type; 331578eeadb8SMichael Chan __le16 cmpl_ring; 331678eeadb8SMichael Chan __le16 seq_id; 331778eeadb8SMichael Chan __le16 target_id; 331878eeadb8SMichael Chan __le64 resp_addr; 331978eeadb8SMichael Chan __le16 enables; 332078eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_ENABLES_PTP_PPS_EVENT 0x1UL 332178eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_ENABLES_PTP_FREQ_ADJ_DLL_SOURCE 0x2UL 332278eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_ENABLES_PTP_FREQ_ADJ_DLL_PHASE 0x4UL 332378eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_ENABLES_PTP_FREQ_ADJ_EXT_PERIOD 0x8UL 332478eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_ENABLES_PTP_FREQ_ADJ_EXT_UP 0x10UL 332578eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_ENABLES_PTP_FREQ_ADJ_EXT_PHASE 0x20UL 33262895c153SMichael Chan #define FUNC_PTP_CFG_REQ_ENABLES_PTP_SET_TIME 0x40UL 332778eeadb8SMichael Chan u8 ptp_pps_event; 332878eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_PTP_PPS_EVENT_INTERNAL 0x1UL 332978eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_PTP_PPS_EVENT_EXTERNAL 0x2UL 333078eeadb8SMichael Chan u8 ptp_freq_adj_dll_source; 333178eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_NONE 0x0UL 333278eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_TSIO_0 0x1UL 333378eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_TSIO_1 0x2UL 333478eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_TSIO_2 0x3UL 333578eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_TSIO_3 0x4UL 333678eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_PORT_0 0x5UL 333778eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_PORT_1 0x6UL 333878eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_PORT_2 0x7UL 333978eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_PORT_3 0x8UL 334078eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_INVALID 0xffUL 334178eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_LAST FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_INVALID 334278eeadb8SMichael Chan u8 ptp_freq_adj_dll_phase; 334378eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_PHASE_NONE 0x0UL 334478eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_PHASE_4K 0x1UL 334578eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_PHASE_8K 0x2UL 334678eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_PHASE_10M 0x3UL 334778eeadb8SMichael Chan #define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_PHASE_LAST FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_PHASE_10M 334878eeadb8SMichael Chan u8 unused_0[3]; 334978eeadb8SMichael Chan __le32 ptp_freq_adj_ext_period; 335078eeadb8SMichael Chan __le32 ptp_freq_adj_ext_up; 335178eeadb8SMichael Chan __le32 ptp_freq_adj_ext_phase_lower; 335278eeadb8SMichael Chan __le32 ptp_freq_adj_ext_phase_upper; 33532895c153SMichael Chan __le64 ptp_set_time; 335478eeadb8SMichael Chan }; 335578eeadb8SMichael Chan 335678eeadb8SMichael Chan /* hwrm_func_ptp_cfg_output (size:128b/16B) */ 335778eeadb8SMichael Chan struct hwrm_func_ptp_cfg_output { 335878eeadb8SMichael Chan __le16 error_code; 335978eeadb8SMichael Chan __le16 req_type; 336078eeadb8SMichael Chan __le16 seq_id; 336178eeadb8SMichael Chan __le16 resp_len; 336278eeadb8SMichael Chan u8 unused_0[7]; 336378eeadb8SMichael Chan u8 valid; 336478eeadb8SMichael Chan }; 336578eeadb8SMichael Chan 336678eeadb8SMichael Chan /* hwrm_func_ptp_ts_query_input (size:192b/24B) */ 336778eeadb8SMichael Chan struct hwrm_func_ptp_ts_query_input { 336878eeadb8SMichael Chan __le16 req_type; 336978eeadb8SMichael Chan __le16 cmpl_ring; 337078eeadb8SMichael Chan __le16 seq_id; 337178eeadb8SMichael Chan __le16 target_id; 337278eeadb8SMichael Chan __le64 resp_addr; 337378eeadb8SMichael Chan __le32 flags; 337478eeadb8SMichael Chan #define FUNC_PTP_TS_QUERY_REQ_FLAGS_PPS_TIME 0x1UL 337578eeadb8SMichael Chan #define FUNC_PTP_TS_QUERY_REQ_FLAGS_PTM_TIME 0x2UL 337678eeadb8SMichael Chan u8 unused_0[4]; 337778eeadb8SMichael Chan }; 337878eeadb8SMichael Chan 337978eeadb8SMichael Chan /* hwrm_func_ptp_ts_query_output (size:320b/40B) */ 338078eeadb8SMichael Chan struct hwrm_func_ptp_ts_query_output { 338178eeadb8SMichael Chan __le16 error_code; 338278eeadb8SMichael Chan __le16 req_type; 338378eeadb8SMichael Chan __le16 seq_id; 338478eeadb8SMichael Chan __le16 resp_len; 338578eeadb8SMichael Chan __le64 pps_event_ts; 338684a911dbSMichael Chan __le64 ptm_local_ts; 338784a911dbSMichael Chan __le64 ptm_system_ts; 338884a911dbSMichael Chan __le32 ptm_link_delay; 338978eeadb8SMichael Chan u8 unused_0[3]; 339078eeadb8SMichael Chan u8 valid; 339178eeadb8SMichael Chan }; 339278eeadb8SMichael Chan 33932895c153SMichael Chan /* hwrm_func_ptp_ext_cfg_input (size:256b/32B) */ 33942895c153SMichael Chan struct hwrm_func_ptp_ext_cfg_input { 33952895c153SMichael Chan __le16 req_type; 33962895c153SMichael Chan __le16 cmpl_ring; 33972895c153SMichael Chan __le16 seq_id; 33982895c153SMichael Chan __le16 target_id; 33992895c153SMichael Chan __le64 resp_addr; 34002895c153SMichael Chan __le16 enables; 34012895c153SMichael Chan #define FUNC_PTP_EXT_CFG_REQ_ENABLES_PHC_MASTER_FID 0x1UL 34022895c153SMichael Chan #define FUNC_PTP_EXT_CFG_REQ_ENABLES_PHC_SEC_FID 0x2UL 34032895c153SMichael Chan #define FUNC_PTP_EXT_CFG_REQ_ENABLES_PHC_SEC_MODE 0x4UL 34042895c153SMichael Chan #define FUNC_PTP_EXT_CFG_REQ_ENABLES_FAILOVER_TIMER 0x8UL 34052895c153SMichael Chan __le16 phc_master_fid; 34062895c153SMichael Chan __le16 phc_sec_fid; 34072895c153SMichael Chan u8 phc_sec_mode; 34082895c153SMichael Chan #define FUNC_PTP_EXT_CFG_REQ_PHC_SEC_MODE_SWITCH 0x0UL 34092895c153SMichael Chan #define FUNC_PTP_EXT_CFG_REQ_PHC_SEC_MODE_ALL 0x1UL 34102895c153SMichael Chan #define FUNC_PTP_EXT_CFG_REQ_PHC_SEC_MODE_PF_ONLY 0x2UL 34112895c153SMichael Chan #define FUNC_PTP_EXT_CFG_REQ_PHC_SEC_MODE_LAST FUNC_PTP_EXT_CFG_REQ_PHC_SEC_MODE_PF_ONLY 34122895c153SMichael Chan u8 unused_0; 34132895c153SMichael Chan __le32 failover_timer; 34142895c153SMichael Chan u8 unused_1[4]; 34152895c153SMichael Chan }; 34162895c153SMichael Chan 34172895c153SMichael Chan /* hwrm_func_ptp_ext_cfg_output (size:128b/16B) */ 34182895c153SMichael Chan struct hwrm_func_ptp_ext_cfg_output { 34192895c153SMichael Chan __le16 error_code; 34202895c153SMichael Chan __le16 req_type; 34212895c153SMichael Chan __le16 seq_id; 34222895c153SMichael Chan __le16 resp_len; 34232895c153SMichael Chan u8 unused_0[7]; 34242895c153SMichael Chan u8 valid; 34252895c153SMichael Chan }; 34262895c153SMichael Chan 34272895c153SMichael Chan /* hwrm_func_ptp_ext_qcfg_input (size:192b/24B) */ 34282895c153SMichael Chan struct hwrm_func_ptp_ext_qcfg_input { 34292895c153SMichael Chan __le16 req_type; 34302895c153SMichael Chan __le16 cmpl_ring; 34312895c153SMichael Chan __le16 seq_id; 34322895c153SMichael Chan __le16 target_id; 34332895c153SMichael Chan __le64 resp_addr; 34342895c153SMichael Chan u8 unused_0[8]; 34352895c153SMichael Chan }; 34362895c153SMichael Chan 34372895c153SMichael Chan /* hwrm_func_ptp_ext_qcfg_output (size:256b/32B) */ 34382895c153SMichael Chan struct hwrm_func_ptp_ext_qcfg_output { 34392895c153SMichael Chan __le16 error_code; 34402895c153SMichael Chan __le16 req_type; 34412895c153SMichael Chan __le16 seq_id; 34422895c153SMichael Chan __le16 resp_len; 34432895c153SMichael Chan __le16 phc_master_fid; 34442895c153SMichael Chan __le16 phc_sec_fid; 34452895c153SMichael Chan __le16 phc_active_fid0; 34462895c153SMichael Chan __le16 phc_active_fid1; 34472895c153SMichael Chan __le32 last_failover_event; 34482895c153SMichael Chan __le16 from_fid; 34492895c153SMichael Chan __le16 to_fid; 34502895c153SMichael Chan u8 unused_0[7]; 34512895c153SMichael Chan u8 valid; 34522895c153SMichael Chan }; 34532895c153SMichael Chan 34542895c153SMichael Chan /* hwrm_func_backing_store_cfg_v2_input (size:448b/56B) */ 34552895c153SMichael Chan struct hwrm_func_backing_store_cfg_v2_input { 34562895c153SMichael Chan __le16 req_type; 34572895c153SMichael Chan __le16 cmpl_ring; 34582895c153SMichael Chan __le16 seq_id; 34592895c153SMichael Chan __le16 target_id; 34602895c153SMichael Chan __le64 resp_addr; 34612895c153SMichael Chan __le16 type; 34622895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_QP 0x0UL 34632895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_SRQ 0x1UL 34642895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_CQ 0x2UL 34652895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_VNIC 0x3UL 34662895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_STAT 0x4UL 34672895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_SP_TQM_RING 0x5UL 34682895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_FP_TQM_RING 0x6UL 34692895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_MRAV 0xeUL 34702895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_TIM 0xfUL 34712895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_TKC 0x13UL 34722895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_RKC 0x14UL 34732895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_MP_TQM_RING 0x15UL 3474ad04cc05SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_SQ_DB_SHADOW 0x16UL 3475ad04cc05SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_RQ_DB_SHADOW 0x17UL 3476ad04cc05SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_SRQ_DB_SHADOW 0x18UL 3477ad04cc05SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_CQ_DB_SHADOW 0x19UL 3478ad04cc05SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_QUIC_TKC 0x1aUL 3479ad04cc05SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_QUIC_RKC 0x1bUL 34802895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_INVALID 0xffffUL 34812895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_LAST FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_INVALID 34822895c153SMichael Chan __le16 instance; 34832895c153SMichael Chan __le32 flags; 34842895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_FLAGS_PREBOOT_MODE 0x1UL 348584a911dbSMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_FLAGS_BS_CFG_ALL_DONE 0x2UL 348684a911dbSMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_FLAGS_BS_EXTEND 0x4UL 34872895c153SMichael Chan __le64 page_dir; 34882895c153SMichael Chan __le32 num_entries; 34892895c153SMichael Chan __le16 entry_size; 34902895c153SMichael Chan u8 page_size_pbl_level; 34912895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_PBL_LEVEL_MASK 0xfUL 34922895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_PBL_LEVEL_SFT 0 34932895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_PBL_LEVEL_LVL_0 0x0UL 34942895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_PBL_LEVEL_LVL_1 0x1UL 34952895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_PBL_LEVEL_LVL_2 0x2UL 34962895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_PBL_LEVEL_LAST FUNC_BACKING_STORE_CFG_V2_REQ_PBL_LEVEL_LVL_2 34972895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_MASK 0xf0UL 34982895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_SFT 4 34992895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_PG_4K (0x0UL << 4) 35002895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_PG_8K (0x1UL << 4) 35012895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_PG_64K (0x2UL << 4) 35022895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_PG_2M (0x3UL << 4) 35032895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_PG_8M (0x4UL << 4) 35042895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_PG_1G (0x5UL << 4) 35052895c153SMichael Chan #define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_LAST FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_PG_1G 35062895c153SMichael Chan u8 subtype_valid_cnt; 35072895c153SMichael Chan __le32 split_entry_0; 35082895c153SMichael Chan __le32 split_entry_1; 35092895c153SMichael Chan __le32 split_entry_2; 35102895c153SMichael Chan __le32 split_entry_3; 35112895c153SMichael Chan }; 35122895c153SMichael Chan 35132895c153SMichael Chan /* hwrm_func_backing_store_cfg_v2_output (size:128b/16B) */ 35142895c153SMichael Chan struct hwrm_func_backing_store_cfg_v2_output { 35152895c153SMichael Chan __le16 error_code; 35162895c153SMichael Chan __le16 req_type; 35172895c153SMichael Chan __le16 seq_id; 35182895c153SMichael Chan __le16 resp_len; 35192895c153SMichael Chan u8 rsvd0[7]; 35202895c153SMichael Chan u8 valid; 35212895c153SMichael Chan }; 35222895c153SMichael Chan 35232895c153SMichael Chan /* hwrm_func_backing_store_qcfg_v2_input (size:192b/24B) */ 35242895c153SMichael Chan struct hwrm_func_backing_store_qcfg_v2_input { 35252895c153SMichael Chan __le16 req_type; 35262895c153SMichael Chan __le16 cmpl_ring; 35272895c153SMichael Chan __le16 seq_id; 35282895c153SMichael Chan __le16 target_id; 35292895c153SMichael Chan __le64 resp_addr; 35302895c153SMichael Chan __le16 type; 35312895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_QP 0x0UL 35322895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_SRQ 0x1UL 35332895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_CQ 0x2UL 35342895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_VNIC 0x3UL 35352895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_STAT 0x4UL 35362895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_SP_TQM_RING 0x5UL 35372895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_FP_TQM_RING 0x6UL 35382895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_MRAV 0xeUL 35392895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_TIM 0xfUL 35402895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_TKC 0x13UL 35412895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_RKC 0x14UL 35422895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_MP_TQM_RING 0x15UL 3543ad04cc05SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_SQ_DB_SHADOW 0x16UL 3544ad04cc05SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_RQ_DB_SHADOW 0x17UL 3545ad04cc05SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_SRQ_DB_SHADOW 0x18UL 3546ad04cc05SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_CQ_DB_SHADOW 0x19UL 3547ad04cc05SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_QUIC_TKC 0x1aUL 3548ad04cc05SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_QUIC_RKC 0x1bUL 35492895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_INVALID 0xffffUL 35502895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_LAST FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_INVALID 35512895c153SMichael Chan __le16 instance; 35522895c153SMichael Chan u8 rsvd[4]; 35532895c153SMichael Chan }; 35542895c153SMichael Chan 35552895c153SMichael Chan /* hwrm_func_backing_store_qcfg_v2_output (size:448b/56B) */ 35562895c153SMichael Chan struct hwrm_func_backing_store_qcfg_v2_output { 35572895c153SMichael Chan __le16 error_code; 35582895c153SMichael Chan __le16 req_type; 35592895c153SMichael Chan __le16 seq_id; 35602895c153SMichael Chan __le16 resp_len; 35612895c153SMichael Chan __le16 type; 35622895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_QP 0x0UL 35632895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_SRQ 0x1UL 35642895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_CQ 0x2UL 35652895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_VNIC 0x3UL 35662895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_STAT 0x4UL 35672895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_SP_TQM_RING 0x5UL 35682895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_FP_TQM_RING 0x6UL 35692895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_MRAV 0xeUL 35702895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_TIM 0xfUL 35712895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_TKC 0x13UL 35722895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_RKC 0x14UL 35732895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_MP_TQM_RING 0x15UL 3574ad04cc05SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_QUIC_TKC 0x1aUL 3575ad04cc05SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_QUIC_RKC 0x1bUL 35762895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_INVALID 0xffffUL 35772895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_LAST FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_INVALID 35782895c153SMichael Chan __le16 instance; 35792895c153SMichael Chan __le32 flags; 35802895c153SMichael Chan __le64 page_dir; 35812895c153SMichael Chan __le32 num_entries; 35822895c153SMichael Chan u8 page_size_pbl_level; 35832895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_PBL_LEVEL_MASK 0xfUL 35842895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_PBL_LEVEL_SFT 0 35852895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_PBL_LEVEL_LVL_0 0x0UL 35862895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_PBL_LEVEL_LVL_1 0x1UL 35872895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_PBL_LEVEL_LVL_2 0x2UL 35882895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_PBL_LEVEL_LAST FUNC_BACKING_STORE_QCFG_V2_RESP_PBL_LEVEL_LVL_2 35892895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_MASK 0xf0UL 35902895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_SFT 4 35912895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_PG_4K (0x0UL << 4) 35922895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_PG_8K (0x1UL << 4) 35932895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_PG_64K (0x2UL << 4) 35942895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_PG_2M (0x3UL << 4) 35952895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_PG_8M (0x4UL << 4) 35962895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_PG_1G (0x5UL << 4) 35972895c153SMichael Chan #define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_LAST FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_PG_1G 35982895c153SMichael Chan u8 subtype_valid_cnt; 35992895c153SMichael Chan u8 rsvd[2]; 36002895c153SMichael Chan __le32 split_entry_0; 36012895c153SMichael Chan __le32 split_entry_1; 36022895c153SMichael Chan __le32 split_entry_2; 36032895c153SMichael Chan __le32 split_entry_3; 36042895c153SMichael Chan u8 rsvd2[7]; 36052895c153SMichael Chan u8 valid; 36062895c153SMichael Chan }; 36072895c153SMichael Chan 36082895c153SMichael Chan /* qpc_split_entries (size:128b/16B) */ 36092895c153SMichael Chan struct qpc_split_entries { 36102895c153SMichael Chan __le32 qp_num_l2_entries; 36112895c153SMichael Chan __le32 qp_num_qp1_entries; 36122895c153SMichael Chan __le32 rsvd[2]; 36132895c153SMichael Chan }; 36142895c153SMichael Chan 36152895c153SMichael Chan /* srq_split_entries (size:128b/16B) */ 36162895c153SMichael Chan struct srq_split_entries { 36172895c153SMichael Chan __le32 srq_num_l2_entries; 36182895c153SMichael Chan __le32 rsvd; 36192895c153SMichael Chan __le32 rsvd2[2]; 36202895c153SMichael Chan }; 36212895c153SMichael Chan 36222895c153SMichael Chan /* cq_split_entries (size:128b/16B) */ 36232895c153SMichael Chan struct cq_split_entries { 36242895c153SMichael Chan __le32 cq_num_l2_entries; 36252895c153SMichael Chan __le32 rsvd; 36262895c153SMichael Chan __le32 rsvd2[2]; 36272895c153SMichael Chan }; 36282895c153SMichael Chan 36292895c153SMichael Chan /* vnic_split_entries (size:128b/16B) */ 36302895c153SMichael Chan struct vnic_split_entries { 36312895c153SMichael Chan __le32 vnic_num_vnic_entries; 36322895c153SMichael Chan __le32 rsvd; 36332895c153SMichael Chan __le32 rsvd2[2]; 36342895c153SMichael Chan }; 36352895c153SMichael Chan 36362895c153SMichael Chan /* mrav_split_entries (size:128b/16B) */ 36372895c153SMichael Chan struct mrav_split_entries { 36382895c153SMichael Chan __le32 mrav_num_av_entries; 36392895c153SMichael Chan __le32 rsvd; 36402895c153SMichael Chan __le32 rsvd2[2]; 36412895c153SMichael Chan }; 36422895c153SMichael Chan 36432895c153SMichael Chan /* hwrm_func_backing_store_qcaps_v2_input (size:192b/24B) */ 36442895c153SMichael Chan struct hwrm_func_backing_store_qcaps_v2_input { 36452895c153SMichael Chan __le16 req_type; 36462895c153SMichael Chan __le16 cmpl_ring; 36472895c153SMichael Chan __le16 seq_id; 36482895c153SMichael Chan __le16 target_id; 36492895c153SMichael Chan __le64 resp_addr; 36502895c153SMichael Chan __le16 type; 36512895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_QP 0x0UL 36522895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_SRQ 0x1UL 36532895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_CQ 0x2UL 36542895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_VNIC 0x3UL 36552895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_STAT 0x4UL 36562895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_SP_TQM_RING 0x5UL 36572895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_FP_TQM_RING 0x6UL 36582895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_MRAV 0xeUL 36592895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_TIM 0xfUL 36602895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_TKC 0x13UL 36612895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_RKC 0x14UL 36622895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_MP_TQM_RING 0x15UL 3663ad04cc05SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_SQ_DB_SHADOW 0x16UL 3664ad04cc05SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_RQ_DB_SHADOW 0x17UL 3665ad04cc05SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_SRQ_DB_SHADOW 0x18UL 3666ad04cc05SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_CQ_DB_SHADOW 0x19UL 3667ad04cc05SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_QUIC_TKC 0x1aUL 3668ad04cc05SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_QUIC_RKC 0x1bUL 36692895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_INVALID 0xffffUL 36702895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_LAST FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_INVALID 36712895c153SMichael Chan u8 rsvd[6]; 36722895c153SMichael Chan }; 36732895c153SMichael Chan 36742895c153SMichael Chan /* hwrm_func_backing_store_qcaps_v2_output (size:448b/56B) */ 36752895c153SMichael Chan struct hwrm_func_backing_store_qcaps_v2_output { 36762895c153SMichael Chan __le16 error_code; 36772895c153SMichael Chan __le16 req_type; 36782895c153SMichael Chan __le16 seq_id; 36792895c153SMichael Chan __le16 resp_len; 36802895c153SMichael Chan __le16 type; 36812895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_QP 0x0UL 36822895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_SRQ 0x1UL 36832895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_CQ 0x2UL 36842895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_VNIC 0x3UL 36852895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_STAT 0x4UL 36862895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_SP_TQM_RING 0x5UL 36872895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_FP_TQM_RING 0x6UL 36882895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_MRAV 0xeUL 36892895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_TIM 0xfUL 36902895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_TKC 0x13UL 36912895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_RKC 0x14UL 36922895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_MP_TQM_RING 0x15UL 3693ad04cc05SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_SQ_DB_SHADOW 0x16UL 3694ad04cc05SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_RQ_DB_SHADOW 0x17UL 3695ad04cc05SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_SRQ_DB_SHADOW 0x18UL 3696ad04cc05SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_CQ_DB_SHADOW 0x19UL 3697ad04cc05SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_QUIC_TKC 0x1aUL 3698ad04cc05SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_QUIC_RKC 0x1bUL 36992895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_INVALID 0xffffUL 37002895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_LAST FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_INVALID 37012895c153SMichael Chan __le16 entry_size; 37022895c153SMichael Chan __le32 flags; 37032895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_RESP_FLAGS_ENABLE_CTX_KIND_INIT 0x1UL 37042895c153SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_RESP_FLAGS_TYPE_VALID 0x2UL 3705ad04cc05SMichael Chan #define FUNC_BACKING_STORE_QCAPS_V2_RESP_FLAGS_DRIVER_MANAGED_MEMORY 0x4UL 37062895c153SMichael Chan __le32 instance_bit_map; 37072895c153SMichael Chan u8 ctx_init_value; 37082895c153SMichael Chan u8 ctx_init_offset; 37092895c153SMichael Chan u8 entry_multiple; 37102895c153SMichael Chan u8 rsvd; 37112895c153SMichael Chan __le32 max_num_entries; 37122895c153SMichael Chan __le32 min_num_entries; 37132895c153SMichael Chan __le16 next_valid_type; 37142895c153SMichael Chan u8 subtype_valid_cnt; 37152895c153SMichael Chan u8 rsvd2; 37162895c153SMichael Chan __le32 split_entry_0; 37172895c153SMichael Chan __le32 split_entry_1; 37182895c153SMichael Chan __le32 split_entry_2; 37192895c153SMichael Chan __le32 split_entry_3; 37202895c153SMichael Chan u8 rsvd3[3]; 37212895c153SMichael Chan u8 valid; 37222895c153SMichael Chan }; 37232895c153SMichael Chan 3724cf1694f0SChandramohan Akula /* hwrm_func_dbr_pacing_qcfg_input (size:128b/16B) */ 3725cf1694f0SChandramohan Akula struct hwrm_func_dbr_pacing_qcfg_input { 3726cf1694f0SChandramohan Akula __le16 req_type; 3727cf1694f0SChandramohan Akula __le16 cmpl_ring; 3728cf1694f0SChandramohan Akula __le16 seq_id; 3729cf1694f0SChandramohan Akula __le16 target_id; 3730cf1694f0SChandramohan Akula __le64 resp_addr; 3731cf1694f0SChandramohan Akula }; 3732cf1694f0SChandramohan Akula 3733cf1694f0SChandramohan Akula /* hwrm_func_dbr_pacing_qcfg_output (size:512b/64B) */ 3734cf1694f0SChandramohan Akula struct hwrm_func_dbr_pacing_qcfg_output { 3735cf1694f0SChandramohan Akula __le16 error_code; 3736cf1694f0SChandramohan Akula __le16 req_type; 3737cf1694f0SChandramohan Akula __le16 seq_id; 3738cf1694f0SChandramohan Akula __le16 resp_len; 3739cf1694f0SChandramohan Akula u8 flags; 3740cf1694f0SChandramohan Akula #define FUNC_DBR_PACING_QCFG_RESP_FLAGS_DBR_NQ_EVENT_ENABLED 0x1UL 3741cf1694f0SChandramohan Akula u8 unused_0[7]; 3742cf1694f0SChandramohan Akula __le32 dbr_stat_db_fifo_reg; 3743cf1694f0SChandramohan Akula #define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_MASK 0x3UL 3744cf1694f0SChandramohan Akula #define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_SFT 0 3745cf1694f0SChandramohan Akula #define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_PCIE_CFG 0x0UL 3746cf1694f0SChandramohan Akula #define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_GRC 0x1UL 3747cf1694f0SChandramohan Akula #define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_BAR0 0x2UL 3748cf1694f0SChandramohan Akula #define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_BAR1 0x3UL 3749cf1694f0SChandramohan Akula #define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_LAST \ 3750cf1694f0SChandramohan Akula FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_BAR1 3751cf1694f0SChandramohan Akula #define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_MASK 0xfffffffcUL 3752cf1694f0SChandramohan Akula #define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SFT 2 3753cf1694f0SChandramohan Akula __le32 dbr_stat_db_fifo_reg_watermark_mask; 3754cf1694f0SChandramohan Akula u8 dbr_stat_db_fifo_reg_watermark_shift; 3755cf1694f0SChandramohan Akula u8 unused_1[3]; 3756cf1694f0SChandramohan Akula __le32 dbr_stat_db_fifo_reg_fifo_room_mask; 3757cf1694f0SChandramohan Akula u8 dbr_stat_db_fifo_reg_fifo_room_shift; 3758cf1694f0SChandramohan Akula u8 unused_2[3]; 3759cf1694f0SChandramohan Akula __le32 dbr_throttling_aeq_arm_reg; 3760cf1694f0SChandramohan Akula #define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_MASK 0x3UL 3761cf1694f0SChandramohan Akula #define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_SFT 0 3762cf1694f0SChandramohan Akula #define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_PCIE_CFG 0x0UL 3763cf1694f0SChandramohan Akula #define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_GRC 0x1UL 3764cf1694f0SChandramohan Akula #define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_BAR0 0x2UL 3765cf1694f0SChandramohan Akula #define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_BAR1 0x3UL 3766cf1694f0SChandramohan Akula #define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_LAST \ 3767cf1694f0SChandramohan Akula FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_BAR1 3768cf1694f0SChandramohan Akula #define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_MASK 0xfffffffcUL 3769cf1694f0SChandramohan Akula #define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SFT 2 3770cf1694f0SChandramohan Akula u8 dbr_throttling_aeq_arm_reg_val; 3771cf1694f0SChandramohan Akula u8 unused_3[7]; 3772cf1694f0SChandramohan Akula __le32 primary_nq_id; 3773cf1694f0SChandramohan Akula __le32 pacing_threshold; 3774cf1694f0SChandramohan Akula u8 unused_4[7]; 3775cf1694f0SChandramohan Akula u8 valid; 3776cf1694f0SChandramohan Akula }; 3777cf1694f0SChandramohan Akula 37786fc92c33SMichael Chan /* hwrm_func_drv_if_change_input (size:192b/24B) */ 37796fc92c33SMichael Chan struct hwrm_func_drv_if_change_input { 37806fc92c33SMichael Chan __le16 req_type; 37816fc92c33SMichael Chan __le16 cmpl_ring; 37826fc92c33SMichael Chan __le16 seq_id; 37836fc92c33SMichael Chan __le16 target_id; 37846fc92c33SMichael Chan __le64 resp_addr; 37856fc92c33SMichael Chan __le32 flags; 37866fc92c33SMichael Chan #define FUNC_DRV_IF_CHANGE_REQ_FLAGS_UP 0x1UL 37876fc92c33SMichael Chan __le32 unused; 37886fc92c33SMichael Chan }; 37896fc92c33SMichael Chan 37906fc92c33SMichael Chan /* hwrm_func_drv_if_change_output (size:128b/16B) */ 37916fc92c33SMichael Chan struct hwrm_func_drv_if_change_output { 37926fc92c33SMichael Chan __le16 error_code; 37936fc92c33SMichael Chan __le16 req_type; 37946fc92c33SMichael Chan __le16 seq_id; 37956fc92c33SMichael Chan __le16 resp_len; 37966fc92c33SMichael Chan __le32 flags; 37976fc92c33SMichael Chan #define FUNC_DRV_IF_CHANGE_RESP_FLAGS_RESC_CHANGE 0x1UL 37983322479eSMichael Chan #define FUNC_DRV_IF_CHANGE_RESP_FLAGS_HOT_FW_RESET_DONE 0x2UL 37996fc92c33SMichael Chan u8 unused_0[3]; 38006fc92c33SMichael Chan u8 valid; 38016fc92c33SMichael Chan }; 38026fc92c33SMichael Chan 3803894aa69aSMichael Chan /* hwrm_port_phy_cfg_input (size:448b/56B) */ 3804c0c050c5SMichael Chan struct hwrm_port_phy_cfg_input { 3805c0c050c5SMichael Chan __le16 req_type; 3806c0c050c5SMichael Chan __le16 cmpl_ring; 3807c0c050c5SMichael Chan __le16 seq_id; 3808c0c050c5SMichael Chan __le16 target_id; 3809c0c050c5SMichael Chan __le64 resp_addr; 3810c0c050c5SMichael Chan __le32 flags; 3811c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_FLAGS_RESET_PHY 0x1UL 381216d663a6SMichael Chan #define PORT_PHY_CFG_REQ_FLAGS_DEPRECATED 0x2UL 3813c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_FLAGS_FORCE 0x4UL 3814c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_FLAGS_RESTART_AUTONEG 0x8UL 381511f15ed3SMichael Chan #define PORT_PHY_CFG_REQ_FLAGS_EEE_ENABLE 0x10UL 381611f15ed3SMichael Chan #define PORT_PHY_CFG_REQ_FLAGS_EEE_DISABLE 0x20UL 381711f15ed3SMichael Chan #define PORT_PHY_CFG_REQ_FLAGS_EEE_TX_LPI_ENABLE 0x40UL 381811f15ed3SMichael Chan #define PORT_PHY_CFG_REQ_FLAGS_EEE_TX_LPI_DISABLE 0x80UL 3819a58a3e68SMichael Chan #define PORT_PHY_CFG_REQ_FLAGS_FEC_AUTONEG_ENABLE 0x100UL 3820a58a3e68SMichael Chan #define PORT_PHY_CFG_REQ_FLAGS_FEC_AUTONEG_DISABLE 0x200UL 3821a58a3e68SMichael Chan #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE74_ENABLE 0x400UL 3822a58a3e68SMichael Chan #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE74_DISABLE 0x800UL 3823a58a3e68SMichael Chan #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE91_ENABLE 0x1000UL 3824a58a3e68SMichael Chan #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE91_DISABLE 0x2000UL 382516d663a6SMichael Chan #define PORT_PHY_CFG_REQ_FLAGS_FORCE_LINK_DWN 0x4000UL 3826bfc6e5fbSMichael Chan #define PORT_PHY_CFG_REQ_FLAGS_FEC_RS544_1XN_ENABLE 0x8000UL 3827bfc6e5fbSMichael Chan #define PORT_PHY_CFG_REQ_FLAGS_FEC_RS544_1XN_DISABLE 0x10000UL 38289d6b648cSMichael Chan #define PORT_PHY_CFG_REQ_FLAGS_FEC_RS544_IEEE_ENABLE 0x20000UL 38299d6b648cSMichael Chan #define PORT_PHY_CFG_REQ_FLAGS_FEC_RS544_IEEE_DISABLE 0x40000UL 38309d6b648cSMichael Chan #define PORT_PHY_CFG_REQ_FLAGS_FEC_RS272_1XN_ENABLE 0x80000UL 38319d6b648cSMichael Chan #define PORT_PHY_CFG_REQ_FLAGS_FEC_RS272_1XN_DISABLE 0x100000UL 38329d6b648cSMichael Chan #define PORT_PHY_CFG_REQ_FLAGS_FEC_RS272_IEEE_ENABLE 0x200000UL 38339d6b648cSMichael Chan #define PORT_PHY_CFG_REQ_FLAGS_FEC_RS272_IEEE_DISABLE 0x400000UL 3834c0c050c5SMichael Chan __le32 enables; 3835c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_ENABLES_AUTO_MODE 0x1UL 3836c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_ENABLES_AUTO_DUPLEX 0x2UL 3837c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_ENABLES_AUTO_PAUSE 0x4UL 3838c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_ENABLES_AUTO_LINK_SPEED 0x8UL 3839c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_ENABLES_AUTO_LINK_SPEED_MASK 0x10UL 3840c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_ENABLES_WIRESPEED 0x20UL 3841c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_ENABLES_LPBK 0x40UL 3842c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_ENABLES_PREEMPHASIS 0x80UL 3843c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_ENABLES_FORCE_PAUSE 0x100UL 384411f15ed3SMichael Chan #define PORT_PHY_CFG_REQ_ENABLES_EEE_LINK_SPEED_MASK 0x200UL 384511f15ed3SMichael Chan #define PORT_PHY_CFG_REQ_ENABLES_TX_LPI_TIMER 0x400UL 3846bfc6e5fbSMichael Chan #define PORT_PHY_CFG_REQ_ENABLES_FORCE_PAM4_LINK_SPEED 0x800UL 3847bfc6e5fbSMichael Chan #define PORT_PHY_CFG_REQ_ENABLES_AUTO_PAM4_LINK_SPEED_MASK 0x1000UL 3848c0c050c5SMichael Chan __le16 port_id; 3849c0c050c5SMichael Chan __le16 force_link_speed; 3850441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_100MB 0x1UL 3851441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_1GB 0xaUL 3852441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_2GB 0x14UL 3853441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_2_5GB 0x19UL 3854441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10GB 0x64UL 3855441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_20GB 0xc8UL 3856441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_25GB 0xfaUL 3857441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_40GB 0x190UL 3858441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_50GB 0x1f4UL 3859441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_100GB 0x3e8UL 3860441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10MB 0xffffUL 3861894aa69aSMichael Chan #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_LAST PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10MB 3862c0c050c5SMichael Chan u8 auto_mode; 3863441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_MODE_NONE 0x0UL 3864441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_MODE_ALL_SPEEDS 0x1UL 3865441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_MODE_ONE_SPEED 0x2UL 3866441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_MODE_ONE_OR_BELOW 0x3UL 3867441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_MODE_SPEED_MASK 0x4UL 3868894aa69aSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_MODE_LAST PORT_PHY_CFG_REQ_AUTO_MODE_SPEED_MASK 3869c0c050c5SMichael Chan u8 auto_duplex; 3870441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_DUPLEX_HALF 0x0UL 3871441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_DUPLEX_FULL 0x1UL 3872441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_DUPLEX_BOTH 0x2UL 3873894aa69aSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_DUPLEX_LAST PORT_PHY_CFG_REQ_AUTO_DUPLEX_BOTH 3874c0c050c5SMichael Chan u8 auto_pause; 3875c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_AUTO_PAUSE_TX 0x1UL 3876c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_AUTO_PAUSE_RX 0x2UL 387711f15ed3SMichael Chan #define PORT_PHY_CFG_REQ_AUTO_PAUSE_AUTONEG_PAUSE 0x4UL 3878c0c050c5SMichael Chan u8 unused_0; 3879c0c050c5SMichael Chan __le16 auto_link_speed; 3880441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_100MB 0x1UL 3881441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_1GB 0xaUL 3882441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_2GB 0x14UL 3883441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_2_5GB 0x19UL 3884441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_10GB 0x64UL 3885441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_20GB 0xc8UL 3886441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_25GB 0xfaUL 3887441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_40GB 0x190UL 3888441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_50GB 0x1f4UL 3889441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_100GB 0x3e8UL 3890441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_10MB 0xffffUL 3891894aa69aSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_LAST PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_10MB 3892c0c050c5SMichael Chan __le16 auto_link_speed_mask; 3893c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100MBHD 0x1UL 3894c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100MB 0x2UL 3895c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_1GBHD 0x4UL 3896c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_1GB 0x8UL 3897c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_2GB 0x10UL 3898c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_2_5GB 0x20UL 3899c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10GB 0x40UL 3900c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_20GB 0x80UL 3901c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_25GB 0x100UL 3902c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_40GB 0x200UL 3903c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_50GB 0x400UL 390411f15ed3SMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100GB 0x800UL 390511f15ed3SMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10MBHD 0x1000UL 390611f15ed3SMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10MB 0x2000UL 3907c0c050c5SMichael Chan u8 wirespeed; 3908441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_WIRESPEED_OFF 0x0UL 3909441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_WIRESPEED_ON 0x1UL 3910894aa69aSMichael Chan #define PORT_PHY_CFG_REQ_WIRESPEED_LAST PORT_PHY_CFG_REQ_WIRESPEED_ON 3911c0c050c5SMichael Chan u8 lpbk; 3912441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_LPBK_NONE 0x0UL 3913441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_LPBK_LOCAL 0x1UL 3914441cabbbSMichael Chan #define PORT_PHY_CFG_REQ_LPBK_REMOTE 0x2UL 39156fc92c33SMichael Chan #define PORT_PHY_CFG_REQ_LPBK_EXTERNAL 0x3UL 39166fc92c33SMichael Chan #define PORT_PHY_CFG_REQ_LPBK_LAST PORT_PHY_CFG_REQ_LPBK_EXTERNAL 3917c0c050c5SMichael Chan u8 force_pause; 3918c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_FORCE_PAUSE_TX 0x1UL 3919c0c050c5SMichael Chan #define PORT_PHY_CFG_REQ_FORCE_PAUSE_RX 0x2UL 3920c0c050c5SMichael Chan u8 unused_1; 3921c0c050c5SMichael Chan __le32 preemphasis; 392211f15ed3SMichael Chan __le16 eee_link_speed_mask; 392311f15ed3SMichael Chan #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD1 0x1UL 392411f15ed3SMichael Chan #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_100MB 0x2UL 392511f15ed3SMichael Chan #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD2 0x4UL 392611f15ed3SMichael Chan #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_1GB 0x8UL 392711f15ed3SMichael Chan #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD3 0x10UL 392811f15ed3SMichael Chan #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD4 0x20UL 392911f15ed3SMichael Chan #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_10GB 0x40UL 3930bfc6e5fbSMichael Chan __le16 force_pam4_link_speed; 3931bfc6e5fbSMichael Chan #define PORT_PHY_CFG_REQ_FORCE_PAM4_LINK_SPEED_50GB 0x1f4UL 3932bfc6e5fbSMichael Chan #define PORT_PHY_CFG_REQ_FORCE_PAM4_LINK_SPEED_100GB 0x3e8UL 3933bfc6e5fbSMichael Chan #define PORT_PHY_CFG_REQ_FORCE_PAM4_LINK_SPEED_200GB 0x7d0UL 3934bfc6e5fbSMichael Chan #define PORT_PHY_CFG_REQ_FORCE_PAM4_LINK_SPEED_LAST PORT_PHY_CFG_REQ_FORCE_PAM4_LINK_SPEED_200GB 393511f15ed3SMichael Chan __le32 tx_lpi_timer; 393611f15ed3SMichael Chan #define PORT_PHY_CFG_REQ_TX_LPI_TIMER_MASK 0xffffffUL 393711f15ed3SMichael Chan #define PORT_PHY_CFG_REQ_TX_LPI_TIMER_SFT 0 3938bfc6e5fbSMichael Chan __le16 auto_link_pam4_speed_mask; 3939bfc6e5fbSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_PAM4_SPEED_MASK_50G 0x1UL 3940bfc6e5fbSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_PAM4_SPEED_MASK_100G 0x2UL 3941bfc6e5fbSMichael Chan #define PORT_PHY_CFG_REQ_AUTO_LINK_PAM4_SPEED_MASK_200G 0x4UL 3942bfc6e5fbSMichael Chan u8 unused_2[2]; 3943c0c050c5SMichael Chan }; 3944c0c050c5SMichael Chan 3945894aa69aSMichael Chan /* hwrm_port_phy_cfg_output (size:128b/16B) */ 3946c0c050c5SMichael Chan struct hwrm_port_phy_cfg_output { 3947c0c050c5SMichael Chan __le16 error_code; 3948c0c050c5SMichael Chan __le16 req_type; 3949c0c050c5SMichael Chan __le16 seq_id; 3950c0c050c5SMichael Chan __le16 resp_len; 3951894aa69aSMichael Chan u8 unused_0[7]; 3952c0c050c5SMichael Chan u8 valid; 3953c0c050c5SMichael Chan }; 3954c0c050c5SMichael Chan 3955d4f52de0SMichael Chan /* hwrm_port_phy_cfg_cmd_err (size:64b/8B) */ 3956d4f52de0SMichael Chan struct hwrm_port_phy_cfg_cmd_err { 3957d4f52de0SMichael Chan u8 code; 3958d4f52de0SMichael Chan #define PORT_PHY_CFG_CMD_ERR_CODE_UNKNOWN 0x0UL 3959d4f52de0SMichael Chan #define PORT_PHY_CFG_CMD_ERR_CODE_ILLEGAL_SPEED 0x1UL 3960d4f52de0SMichael Chan #define PORT_PHY_CFG_CMD_ERR_CODE_RETRY 0x2UL 3961d4f52de0SMichael Chan #define PORT_PHY_CFG_CMD_ERR_CODE_LAST PORT_PHY_CFG_CMD_ERR_CODE_RETRY 3962d4f52de0SMichael Chan u8 unused_0[7]; 3963d4f52de0SMichael Chan }; 3964d4f52de0SMichael Chan 3965894aa69aSMichael Chan /* hwrm_port_phy_qcfg_input (size:192b/24B) */ 3966c0c050c5SMichael Chan struct hwrm_port_phy_qcfg_input { 3967c0c050c5SMichael Chan __le16 req_type; 3968c0c050c5SMichael Chan __le16 cmpl_ring; 3969c0c050c5SMichael Chan __le16 seq_id; 3970c0c050c5SMichael Chan __le16 target_id; 3971c0c050c5SMichael Chan __le64 resp_addr; 3972c0c050c5SMichael Chan __le16 port_id; 3973894aa69aSMichael Chan u8 unused_0[6]; 3974c0c050c5SMichael Chan }; 3975c0c050c5SMichael Chan 397684a911dbSMichael Chan /* hwrm_port_phy_qcfg_output (size:832b/104B) */ 3977c0c050c5SMichael Chan struct hwrm_port_phy_qcfg_output { 3978c0c050c5SMichael Chan __le16 error_code; 3979c0c050c5SMichael Chan __le16 req_type; 3980c0c050c5SMichael Chan __le16 seq_id; 3981c0c050c5SMichael Chan __le16 resp_len; 3982c0c050c5SMichael Chan u8 link; 3983441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_NO_LINK 0x0UL 3984441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_SIGNAL 0x1UL 3985441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_LINK 0x2UL 3986894aa69aSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_LAST PORT_PHY_QCFG_RESP_LINK_LINK 39879d6b648cSMichael Chan u8 active_fec_signal_mode; 39889d6b648cSMichael Chan #define PORT_PHY_QCFG_RESP_SIGNAL_MODE_MASK 0xfUL 39899d6b648cSMichael Chan #define PORT_PHY_QCFG_RESP_SIGNAL_MODE_SFT 0 39909d6b648cSMichael Chan #define PORT_PHY_QCFG_RESP_SIGNAL_MODE_NRZ 0x0UL 39919d6b648cSMichael Chan #define PORT_PHY_QCFG_RESP_SIGNAL_MODE_PAM4 0x1UL 39929d6b648cSMichael Chan #define PORT_PHY_QCFG_RESP_SIGNAL_MODE_LAST PORT_PHY_QCFG_RESP_SIGNAL_MODE_PAM4 39939d6b648cSMichael Chan #define PORT_PHY_QCFG_RESP_ACTIVE_FEC_MASK 0xf0UL 39949d6b648cSMichael Chan #define PORT_PHY_QCFG_RESP_ACTIVE_FEC_SFT 4 39959d6b648cSMichael Chan #define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_NONE_ACTIVE (0x0UL << 4) 39969d6b648cSMichael Chan #define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_CLAUSE74_ACTIVE (0x1UL << 4) 39979d6b648cSMichael Chan #define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_CLAUSE91_ACTIVE (0x2UL << 4) 39989d6b648cSMichael Chan #define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS544_1XN_ACTIVE (0x3UL << 4) 39999d6b648cSMichael Chan #define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS544_IEEE_ACTIVE (0x4UL << 4) 40009d6b648cSMichael Chan #define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS272_1XN_ACTIVE (0x5UL << 4) 40019d6b648cSMichael Chan #define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS272_IEEE_ACTIVE (0x6UL << 4) 40029d6b648cSMichael Chan #define PORT_PHY_QCFG_RESP_ACTIVE_FEC_LAST PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS272_IEEE_ACTIVE 4003c0c050c5SMichael Chan __le16 link_speed; 4004441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_SPEED_100MB 0x1UL 4005441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_SPEED_1GB 0xaUL 4006441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_SPEED_2GB 0x14UL 4007441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_SPEED_2_5GB 0x19UL 4008441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_SPEED_10GB 0x64UL 4009441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_SPEED_20GB 0xc8UL 4010441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_SPEED_25GB 0xfaUL 4011441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_SPEED_40GB 0x190UL 4012441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_SPEED_50GB 0x1f4UL 4013441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_SPEED_100GB 0x3e8UL 401431d357c0SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_SPEED_200GB 0x7d0UL 4015441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_SPEED_10MB 0xffffUL 4016894aa69aSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_LINK_SPEED_10MB 4017acb20054SMichael Chan u8 duplex_cfg; 4018acb20054SMichael Chan #define PORT_PHY_QCFG_RESP_DUPLEX_CFG_HALF 0x0UL 4019acb20054SMichael Chan #define PORT_PHY_QCFG_RESP_DUPLEX_CFG_FULL 0x1UL 4020894aa69aSMichael Chan #define PORT_PHY_QCFG_RESP_DUPLEX_CFG_LAST PORT_PHY_QCFG_RESP_DUPLEX_CFG_FULL 4021c0c050c5SMichael Chan u8 pause; 4022c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_PAUSE_TX 0x1UL 4023c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_PAUSE_RX 0x2UL 4024c0c050c5SMichael Chan __le16 support_speeds; 4025c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100MBHD 0x1UL 4026c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100MB 0x2UL 4027c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_1GBHD 0x4UL 4028c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_1GB 0x8UL 4029c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_2GB 0x10UL 4030c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_2_5GB 0x20UL 4031c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10GB 0x40UL 4032c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_20GB 0x80UL 4033c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_25GB 0x100UL 4034c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_40GB 0x200UL 4035c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_50GB 0x400UL 403611f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100GB 0x800UL 403711f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10MBHD 0x1000UL 403811f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10MB 0x2000UL 4039c0c050c5SMichael Chan __le16 force_link_speed; 4040441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_100MB 0x1UL 4041441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_1GB 0xaUL 4042441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_2GB 0x14UL 4043441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_2_5GB 0x19UL 4044441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_10GB 0x64UL 4045441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_20GB 0xc8UL 4046441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_25GB 0xfaUL 4047441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_40GB 0x190UL 4048441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_50GB 0x1f4UL 4049441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_100GB 0x3e8UL 4050441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_10MB 0xffffUL 4051894aa69aSMichael Chan #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_10MB 4052c0c050c5SMichael Chan u8 auto_mode; 4053441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_MODE_NONE 0x0UL 4054441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_MODE_ALL_SPEEDS 0x1UL 4055441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_MODE_ONE_SPEED 0x2UL 4056441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_MODE_ONE_OR_BELOW 0x3UL 4057441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_MODE_SPEED_MASK 0x4UL 4058894aa69aSMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_MODE_LAST PORT_PHY_QCFG_RESP_AUTO_MODE_SPEED_MASK 4059c0c050c5SMichael Chan u8 auto_pause; 4060c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_PAUSE_TX 0x1UL 4061c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_PAUSE_RX 0x2UL 406211f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_PAUSE_AUTONEG_PAUSE 0x4UL 4063c0c050c5SMichael Chan __le16 auto_link_speed; 4064441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_100MB 0x1UL 4065441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_1GB 0xaUL 4066441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_2GB 0x14UL 4067441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_2_5GB 0x19UL 4068441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_10GB 0x64UL 4069441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_20GB 0xc8UL 4070441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_25GB 0xfaUL 4071441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_40GB 0x190UL 4072441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_50GB 0x1f4UL 4073441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_100GB 0x3e8UL 4074441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_10MB 0xffffUL 4075894aa69aSMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_10MB 4076c0c050c5SMichael Chan __le16 auto_link_speed_mask; 4077c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100MBHD 0x1UL 4078c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100MB 0x2UL 4079c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_1GBHD 0x4UL 4080c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_1GB 0x8UL 4081c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_2GB 0x10UL 4082c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_2_5GB 0x20UL 4083c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10GB 0x40UL 4084c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_20GB 0x80UL 4085c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_25GB 0x100UL 4086c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_40GB 0x200UL 4087c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_50GB 0x400UL 408811f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100GB 0x800UL 408911f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10MBHD 0x1000UL 409011f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10MB 0x2000UL 4091c0c050c5SMichael Chan u8 wirespeed; 4092441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_WIRESPEED_OFF 0x0UL 4093441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_WIRESPEED_ON 0x1UL 4094894aa69aSMichael Chan #define PORT_PHY_QCFG_RESP_WIRESPEED_LAST PORT_PHY_QCFG_RESP_WIRESPEED_ON 4095c0c050c5SMichael Chan u8 lpbk; 4096441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_LPBK_NONE 0x0UL 4097441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_LPBK_LOCAL 0x1UL 4098441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_LPBK_REMOTE 0x2UL 40996fc92c33SMichael Chan #define PORT_PHY_QCFG_RESP_LPBK_EXTERNAL 0x3UL 41006fc92c33SMichael Chan #define PORT_PHY_QCFG_RESP_LPBK_LAST PORT_PHY_QCFG_RESP_LPBK_EXTERNAL 4101c0c050c5SMichael Chan u8 force_pause; 4102c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_FORCE_PAUSE_TX 0x1UL 4103c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_FORCE_PAUSE_RX 0x2UL 410411f15ed3SMichael Chan u8 module_status; 4105441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_MODULE_STATUS_NONE 0x0UL 4106441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_MODULE_STATUS_DISABLETX 0x1UL 4107441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_MODULE_STATUS_WARNINGMSG 0x2UL 4108441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_MODULE_STATUS_PWRDOWN 0x3UL 4109441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_MODULE_STATUS_NOTINSERTED 0x4UL 411041136ab3SMichael Chan #define PORT_PHY_QCFG_RESP_MODULE_STATUS_CURRENTFAULT 0x5UL 4111441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_MODULE_STATUS_NOTAPPLICABLE 0xffUL 4112894aa69aSMichael Chan #define PORT_PHY_QCFG_RESP_MODULE_STATUS_LAST PORT_PHY_QCFG_RESP_MODULE_STATUS_NOTAPPLICABLE 4113c0c050c5SMichael Chan __le32 preemphasis; 4114c0c050c5SMichael Chan u8 phy_maj; 4115c0c050c5SMichael Chan u8 phy_min; 4116c0c050c5SMichael Chan u8 phy_bld; 4117c0c050c5SMichael Chan u8 phy_type; 4118441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_UNKNOWN 0x0UL 4119441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASECR 0x1UL 4120441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR4 0x2UL 4121441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASELR 0x3UL 4122441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASESR 0x4UL 4123441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR2 0x5UL 4124441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKX 0x6UL 4125441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR 0x7UL 4126441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASET 0x8UL 4127441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASETE 0x9UL 4128441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_SGMIIEXTPHY 0xaUL 4129bac9a7e0SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASECR_CA_L 0xbUL 4130bac9a7e0SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASECR_CA_S 0xcUL 4131bac9a7e0SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASECR_CA_N 0xdUL 4132bac9a7e0SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASESR 0xeUL 4133bac9a7e0SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASECR4 0xfUL 4134bac9a7e0SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASESR4 0x10UL 4135bac9a7e0SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASELR4 0x11UL 4136bac9a7e0SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASEER4 0x12UL 4137bac9a7e0SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASESR10 0x13UL 4138bac9a7e0SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASECR4 0x14UL 4139bac9a7e0SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASESR4 0x15UL 4140bac9a7e0SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASELR4 0x16UL 4141bac9a7e0SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASEER4 0x17UL 4142bac9a7e0SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_ACTIVE_CABLE 0x18UL 4143acb20054SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_1G_BASET 0x19UL 4144acb20054SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_1G_BASESX 0x1aUL 4145acb20054SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_1G_BASECX 0x1bUL 414631d357c0SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASECR4 0x1cUL 414731d357c0SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASESR4 0x1dUL 414831d357c0SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASELR4 0x1eUL 414931d357c0SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASEER4 0x1fUL 415021e70778SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_50G_BASECR 0x20UL 415121e70778SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_50G_BASESR 0x21UL 415221e70778SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_50G_BASELR 0x22UL 415321e70778SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_50G_BASEER 0x23UL 415421e70778SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASECR2 0x24UL 415521e70778SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASESR2 0x25UL 415621e70778SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASELR2 0x26UL 415721e70778SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASEER2 0x27UL 415821e70778SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_TYPE_LAST PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASEER2 4159c0c050c5SMichael Chan u8 media_type; 4160441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_UNKNOWN 0x0UL 4161441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_TP 0x1UL 4162441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_DAC 0x2UL 4163441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_FIBRE 0x3UL 4164894aa69aSMichael Chan #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_LAST PORT_PHY_QCFG_RESP_MEDIA_TYPE_FIBRE 416511f15ed3SMichael Chan u8 xcvr_pkg_type; 4166441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_XCVR_INTERNAL 0x1UL 4167441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_XCVR_EXTERNAL 0x2UL 4168894aa69aSMichael Chan #define PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_LAST PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_XCVR_EXTERNAL 416911f15ed3SMichael Chan u8 eee_config_phy_addr; 4170c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_ADDR_MASK 0x1fUL 4171c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_PHY_ADDR_SFT 0 4172894aa69aSMichael Chan #define PORT_PHY_QCFG_RESP_EEE_CONFIG_MASK 0xe0UL 4173894aa69aSMichael Chan #define PORT_PHY_QCFG_RESP_EEE_CONFIG_SFT 5 417411f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_ENABLED 0x20UL 417511f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_ACTIVE 0x40UL 417611f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_TX_LPI 0x80UL 417711f15ed3SMichael Chan u8 parallel_detect; 417811f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_PARALLEL_DETECT 0x1UL 4179c0c050c5SMichael Chan __le16 link_partner_adv_speeds; 4180c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100MBHD 0x1UL 4181c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100MB 0x2UL 4182c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_1GBHD 0x4UL 4183c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_1GB 0x8UL 4184c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_2GB 0x10UL 4185c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_2_5GB 0x20UL 4186c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10GB 0x40UL 4187c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_20GB 0x80UL 4188c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_25GB 0x100UL 4189c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_40GB 0x200UL 4190c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_50GB 0x400UL 419111f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100GB 0x800UL 419211f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10MBHD 0x1000UL 419311f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10MB 0x2000UL 4194c0c050c5SMichael Chan u8 link_partner_adv_auto_mode; 4195441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_NONE 0x0UL 4196441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ALL_SPEEDS 0x1UL 4197441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ONE_SPEED 0x2UL 4198441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ONE_OR_BELOW 0x3UL 4199441cabbbSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_SPEED_MASK 0x4UL 4200894aa69aSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_LAST PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_SPEED_MASK 4201c0c050c5SMichael Chan u8 link_partner_adv_pause; 4202c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_PAUSE_TX 0x1UL 4203c0c050c5SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_PAUSE_RX 0x2UL 420411f15ed3SMichael Chan __le16 adv_eee_link_speed_mask; 420511f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD1 0x1UL 420611f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_100MB 0x2UL 420711f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD2 0x4UL 420811f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_1GB 0x8UL 420911f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD3 0x10UL 421011f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD4 0x20UL 421111f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_10GB 0x40UL 421211f15ed3SMichael Chan __le16 link_partner_adv_eee_link_speed_mask; 421311f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD1 0x1UL 421411f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_100MB 0x2UL 421511f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD2 0x4UL 421611f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_1GB 0x8UL 421711f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD3 0x10UL 421811f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD4 0x20UL 421911f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_10GB 0x40UL 422011f15ed3SMichael Chan __le32 xcvr_identifier_type_tx_lpi_timer; 422111f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_TX_LPI_TIMER_MASK 0xffffffUL 422211f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_TX_LPI_TIMER_SFT 0 422311f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_MASK 0xff000000UL 422411f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_SFT 24 422511f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_UNKNOWN (0x0UL << 24) 422611f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_SFP (0x3UL << 24) 422711f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP (0xcUL << 24) 422811f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFPPLUS (0xdUL << 24) 422911f15ed3SMichael Chan #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP28 (0x11UL << 24) 4230894aa69aSMichael Chan #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_LAST PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP28 4231a58a3e68SMichael Chan __le16 fec_cfg; 4232a58a3e68SMichael Chan #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_NONE_SUPPORTED 0x1UL 4233a58a3e68SMichael Chan #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_AUTONEG_SUPPORTED 0x2UL 4234a58a3e68SMichael Chan #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_AUTONEG_ENABLED 0x4UL 4235a58a3e68SMichael Chan #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE74_SUPPORTED 0x8UL 4236a58a3e68SMichael Chan #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE74_ENABLED 0x10UL 4237a58a3e68SMichael Chan #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE91_SUPPORTED 0x20UL 4238a58a3e68SMichael Chan #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE91_ENABLED 0x40UL 4239bfc6e5fbSMichael Chan #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS544_1XN_SUPPORTED 0x80UL 4240bfc6e5fbSMichael Chan #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS544_1XN_ENABLED 0x100UL 42419d6b648cSMichael Chan #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS544_IEEE_SUPPORTED 0x200UL 42429d6b648cSMichael Chan #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS544_IEEE_ENABLED 0x400UL 42439d6b648cSMichael Chan #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS272_1XN_SUPPORTED 0x800UL 42449d6b648cSMichael Chan #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS272_1XN_ENABLED 0x1000UL 42459d6b648cSMichael Chan #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS272_IEEE_SUPPORTED 0x2000UL 42469d6b648cSMichael Chan #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS272_IEEE_ENABLED 0x4000UL 4247acb20054SMichael Chan u8 duplex_state; 4248acb20054SMichael Chan #define PORT_PHY_QCFG_RESP_DUPLEX_STATE_HALF 0x0UL 4249acb20054SMichael Chan #define PORT_PHY_QCFG_RESP_DUPLEX_STATE_FULL 0x1UL 4250894aa69aSMichael Chan #define PORT_PHY_QCFG_RESP_DUPLEX_STATE_LAST PORT_PHY_QCFG_RESP_DUPLEX_STATE_FULL 4251894aa69aSMichael Chan u8 option_flags; 4252894aa69aSMichael Chan #define PORT_PHY_QCFG_RESP_OPTION_FLAGS_MEDIA_AUTO_DETECT 0x1UL 425316db6323SMichael Chan #define PORT_PHY_QCFG_RESP_OPTION_FLAGS_SIGNAL_MODE_KNOWN 0x2UL 425411f15ed3SMichael Chan char phy_vendor_name[16]; 425511f15ed3SMichael Chan char phy_vendor_partnumber[16]; 4256bfc6e5fbSMichael Chan __le16 support_pam4_speeds; 4257bfc6e5fbSMichael Chan #define PORT_PHY_QCFG_RESP_SUPPORT_PAM4_SPEEDS_50G 0x1UL 4258bfc6e5fbSMichael Chan #define PORT_PHY_QCFG_RESP_SUPPORT_PAM4_SPEEDS_100G 0x2UL 4259bfc6e5fbSMichael Chan #define PORT_PHY_QCFG_RESP_SUPPORT_PAM4_SPEEDS_200G 0x4UL 4260bfc6e5fbSMichael Chan __le16 force_pam4_link_speed; 4261bfc6e5fbSMichael Chan #define PORT_PHY_QCFG_RESP_FORCE_PAM4_LINK_SPEED_50GB 0x1f4UL 4262bfc6e5fbSMichael Chan #define PORT_PHY_QCFG_RESP_FORCE_PAM4_LINK_SPEED_100GB 0x3e8UL 4263bfc6e5fbSMichael Chan #define PORT_PHY_QCFG_RESP_FORCE_PAM4_LINK_SPEED_200GB 0x7d0UL 4264bfc6e5fbSMichael Chan #define PORT_PHY_QCFG_RESP_FORCE_PAM4_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_FORCE_PAM4_LINK_SPEED_200GB 4265bfc6e5fbSMichael Chan __le16 auto_pam4_link_speed_mask; 4266bfc6e5fbSMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_PAM4_LINK_SPEED_MASK_50G 0x1UL 4267bfc6e5fbSMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_PAM4_LINK_SPEED_MASK_100G 0x2UL 4268bfc6e5fbSMichael Chan #define PORT_PHY_QCFG_RESP_AUTO_PAM4_LINK_SPEED_MASK_200G 0x4UL 42699d6b648cSMichael Chan u8 link_partner_pam4_adv_speeds; 4270bfc6e5fbSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_PAM4_ADV_SPEEDS_50GB 0x1UL 4271bfc6e5fbSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_PAM4_ADV_SPEEDS_100GB 0x2UL 4272bfc6e5fbSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_PARTNER_PAM4_ADV_SPEEDS_200GB 0x4UL 427384a911dbSMichael Chan u8 link_down_reason; 427484a911dbSMichael Chan #define PORT_PHY_QCFG_RESP_LINK_DOWN_REASON_RF 0x1UL 427584a911dbSMichael Chan u8 unused_0[7]; 4276c0c050c5SMichael Chan u8 valid; 4277c0c050c5SMichael Chan }; 4278c0c050c5SMichael Chan 42792895c153SMichael Chan /* hwrm_port_mac_cfg_input (size:448b/56B) */ 4280c0c050c5SMichael Chan struct hwrm_port_mac_cfg_input { 4281c0c050c5SMichael Chan __le16 req_type; 4282c0c050c5SMichael Chan __le16 cmpl_ring; 4283c0c050c5SMichael Chan __le16 seq_id; 4284c0c050c5SMichael Chan __le16 target_id; 4285c0c050c5SMichael Chan __le64 resp_addr; 4286c0c050c5SMichael Chan __le32 flags; 4287c0c050c5SMichael Chan #define PORT_MAC_CFG_REQ_FLAGS_MATCH_LINK 0x1UL 4288441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_FLAGS_VLAN_PRI2COS_ENABLE 0x2UL 4289c0c050c5SMichael Chan #define PORT_MAC_CFG_REQ_FLAGS_TUNNEL_PRI2COS_ENABLE 0x4UL 4290c0c050c5SMichael Chan #define PORT_MAC_CFG_REQ_FLAGS_IP_DSCP2COS_ENABLE 0x8UL 429111f15ed3SMichael Chan #define PORT_MAC_CFG_REQ_FLAGS_PTP_RX_TS_CAPTURE_ENABLE 0x10UL 429211f15ed3SMichael Chan #define PORT_MAC_CFG_REQ_FLAGS_PTP_RX_TS_CAPTURE_DISABLE 0x20UL 429311f15ed3SMichael Chan #define PORT_MAC_CFG_REQ_FLAGS_PTP_TX_TS_CAPTURE_ENABLE 0x40UL 429411f15ed3SMichael Chan #define PORT_MAC_CFG_REQ_FLAGS_PTP_TX_TS_CAPTURE_DISABLE 0x80UL 4295a58a3e68SMichael Chan #define PORT_MAC_CFG_REQ_FLAGS_OOB_WOL_ENABLE 0x100UL 4296a58a3e68SMichael Chan #define PORT_MAC_CFG_REQ_FLAGS_OOB_WOL_DISABLE 0x200UL 4297441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_FLAGS_VLAN_PRI2COS_DISABLE 0x400UL 4298441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_FLAGS_TUNNEL_PRI2COS_DISABLE 0x800UL 4299441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_FLAGS_IP_DSCP2COS_DISABLE 0x1000UL 43004a50ddc2SMichael Chan #define PORT_MAC_CFG_REQ_FLAGS_PTP_ONE_STEP_TX_TS 0x2000UL 4301ad04cc05SMichael Chan #define PORT_MAC_CFG_REQ_FLAGS_ALL_RX_TS_CAPTURE_ENABLE 0x4000UL 4302ad04cc05SMichael Chan #define PORT_MAC_CFG_REQ_FLAGS_ALL_RX_TS_CAPTURE_DISABLE 0x8000UL 4303c0c050c5SMichael Chan __le32 enables; 4304c0c050c5SMichael Chan #define PORT_MAC_CFG_REQ_ENABLES_IPG 0x1UL 4305c0c050c5SMichael Chan #define PORT_MAC_CFG_REQ_ENABLES_LPBK 0x2UL 4306441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_ENABLES_VLAN_PRI2COS_MAP_PRI 0x4UL 4307c0c050c5SMichael Chan #define PORT_MAC_CFG_REQ_ENABLES_TUNNEL_PRI2COS_MAP_PRI 0x10UL 4308c0c050c5SMichael Chan #define PORT_MAC_CFG_REQ_ENABLES_DSCP2COS_MAP_PRI 0x20UL 430911f15ed3SMichael Chan #define PORT_MAC_CFG_REQ_ENABLES_RX_TS_CAPTURE_PTP_MSG_TYPE 0x40UL 431011f15ed3SMichael Chan #define PORT_MAC_CFG_REQ_ENABLES_TX_TS_CAPTURE_PTP_MSG_TYPE 0x80UL 4311441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_ENABLES_COS_FIELD_CFG 0x100UL 43124a50ddc2SMichael Chan #define PORT_MAC_CFG_REQ_ENABLES_PTP_FREQ_ADJ_PPB 0x200UL 431378eeadb8SMichael Chan #define PORT_MAC_CFG_REQ_ENABLES_PTP_ADJ_PHASE 0x400UL 4314c0c050c5SMichael Chan __le16 port_id; 4315c0c050c5SMichael Chan u8 ipg; 4316c0c050c5SMichael Chan u8 lpbk; 4317441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_LPBK_NONE 0x0UL 4318441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_LPBK_LOCAL 0x1UL 4319441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_LPBK_REMOTE 0x2UL 4320894aa69aSMichael Chan #define PORT_MAC_CFG_REQ_LPBK_LAST PORT_MAC_CFG_REQ_LPBK_REMOTE 4321441cabbbSMichael Chan u8 vlan_pri2cos_map_pri; 4322441cabbbSMichael Chan u8 reserved1; 4323c0c050c5SMichael Chan u8 tunnel_pri2cos_map_pri; 4324c0c050c5SMichael Chan u8 dscp2pri_map_pri; 432511f15ed3SMichael Chan __le16 rx_ts_capture_ptp_msg_type; 432611f15ed3SMichael Chan __le16 tx_ts_capture_ptp_msg_type; 4327441cabbbSMichael Chan u8 cos_field_cfg; 4328441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_RSVD1 0x1UL 4329441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_MASK 0x6UL 4330441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_SFT 1 4331441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_INNERMOST (0x0UL << 1) 4332441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_OUTER (0x1UL << 1) 4333441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_OUTERMOST (0x2UL << 1) 4334441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_UNSPECIFIED (0x3UL << 1) 4335441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_LAST PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_UNSPECIFIED 4336441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_MASK 0x18UL 4337441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_SFT 3 4338441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_INNERMOST (0x0UL << 3) 4339441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_OUTER (0x1UL << 3) 4340441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_OUTERMOST (0x2UL << 3) 4341441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_UNSPECIFIED (0x3UL << 3) 4342441cabbbSMichael Chan #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 4343441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_DEFAULT_COS_MASK 0xe0UL 4344441cabbbSMichael Chan #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_DEFAULT_COS_SFT 5 4345441cabbbSMichael Chan u8 unused_0[3]; 434678eeadb8SMichael Chan __le32 ptp_freq_adj_ppb; 43472895c153SMichael Chan u8 unused_1[4]; 43482895c153SMichael Chan __le64 ptp_adj_phase; 4349c0c050c5SMichael Chan }; 4350c0c050c5SMichael Chan 4351894aa69aSMichael Chan /* hwrm_port_mac_cfg_output (size:128b/16B) */ 4352c0c050c5SMichael Chan struct hwrm_port_mac_cfg_output { 4353c0c050c5SMichael Chan __le16 error_code; 4354c0c050c5SMichael Chan __le16 req_type; 4355c0c050c5SMichael Chan __le16 seq_id; 4356c0c050c5SMichael Chan __le16 resp_len; 4357c0c050c5SMichael Chan __le16 mru; 4358c0c050c5SMichael Chan __le16 mtu; 4359c0c050c5SMichael Chan u8 ipg; 4360c0c050c5SMichael Chan u8 lpbk; 4361441cabbbSMichael Chan #define PORT_MAC_CFG_RESP_LPBK_NONE 0x0UL 4362441cabbbSMichael Chan #define PORT_MAC_CFG_RESP_LPBK_LOCAL 0x1UL 4363441cabbbSMichael Chan #define PORT_MAC_CFG_RESP_LPBK_REMOTE 0x2UL 4364894aa69aSMichael Chan #define PORT_MAC_CFG_RESP_LPBK_LAST PORT_MAC_CFG_RESP_LPBK_REMOTE 4365c0c050c5SMichael Chan u8 unused_0; 4366c0c050c5SMichael Chan u8 valid; 4367c0c050c5SMichael Chan }; 4368c0c050c5SMichael Chan 4369894aa69aSMichael Chan /* hwrm_port_mac_ptp_qcfg_input (size:192b/24B) */ 4370acb20054SMichael Chan struct hwrm_port_mac_ptp_qcfg_input { 4371acb20054SMichael Chan __le16 req_type; 4372acb20054SMichael Chan __le16 cmpl_ring; 4373acb20054SMichael Chan __le16 seq_id; 4374acb20054SMichael Chan __le16 target_id; 4375acb20054SMichael Chan __le64 resp_addr; 4376acb20054SMichael Chan __le16 port_id; 4377894aa69aSMichael Chan u8 unused_0[6]; 4378acb20054SMichael Chan }; 4379acb20054SMichael Chan 438078eeadb8SMichael Chan /* hwrm_port_mac_ptp_qcfg_output (size:704b/88B) */ 4381acb20054SMichael Chan struct hwrm_port_mac_ptp_qcfg_output { 4382acb20054SMichael Chan __le16 error_code; 4383acb20054SMichael Chan __le16 req_type; 4384acb20054SMichael Chan __le16 seq_id; 4385acb20054SMichael Chan __le16 resp_len; 4386acb20054SMichael Chan u8 flags; 4387acb20054SMichael Chan #define PORT_MAC_PTP_QCFG_RESP_FLAGS_DIRECT_ACCESS 0x1UL 43884a50ddc2SMichael Chan #define PORT_MAC_PTP_QCFG_RESP_FLAGS_ONE_STEP_TX_TS 0x4UL 438941136ab3SMichael Chan #define PORT_MAC_PTP_QCFG_RESP_FLAGS_HWRM_ACCESS 0x8UL 439078eeadb8SMichael Chan #define PORT_MAC_PTP_QCFG_RESP_FLAGS_PARTIAL_DIRECT_ACCESS_REF_CLOCK 0x10UL 43912895c153SMichael Chan #define PORT_MAC_PTP_QCFG_RESP_FLAGS_RTC_CONFIGURED 0x20UL 4392894aa69aSMichael Chan u8 unused_0[3]; 4393acb20054SMichael Chan __le32 rx_ts_reg_off_lower; 4394acb20054SMichael Chan __le32 rx_ts_reg_off_upper; 4395acb20054SMichael Chan __le32 rx_ts_reg_off_seq_id; 4396acb20054SMichael Chan __le32 rx_ts_reg_off_src_id_0; 4397acb20054SMichael Chan __le32 rx_ts_reg_off_src_id_1; 4398acb20054SMichael Chan __le32 rx_ts_reg_off_src_id_2; 4399acb20054SMichael Chan __le32 rx_ts_reg_off_domain_id; 4400acb20054SMichael Chan __le32 rx_ts_reg_off_fifo; 4401acb20054SMichael Chan __le32 rx_ts_reg_off_fifo_adv; 4402acb20054SMichael Chan __le32 rx_ts_reg_off_granularity; 4403acb20054SMichael Chan __le32 tx_ts_reg_off_lower; 4404acb20054SMichael Chan __le32 tx_ts_reg_off_upper; 4405acb20054SMichael Chan __le32 tx_ts_reg_off_seq_id; 4406acb20054SMichael Chan __le32 tx_ts_reg_off_fifo; 4407acb20054SMichael Chan __le32 tx_ts_reg_off_granularity; 440878eeadb8SMichael Chan __le32 ts_ref_clock_reg_lower; 440978eeadb8SMichael Chan __le32 ts_ref_clock_reg_upper; 4410894aa69aSMichael Chan u8 unused_1[7]; 4411acb20054SMichael Chan u8 valid; 4412acb20054SMichael Chan }; 4413acb20054SMichael Chan 44146fc92c33SMichael Chan /* tx_port_stats (size:3264b/408B) */ 44156fc92c33SMichael Chan struct tx_port_stats { 44166fc92c33SMichael Chan __le64 tx_64b_frames; 44176fc92c33SMichael Chan __le64 tx_65b_127b_frames; 44186fc92c33SMichael Chan __le64 tx_128b_255b_frames; 44196fc92c33SMichael Chan __le64 tx_256b_511b_frames; 44206fc92c33SMichael Chan __le64 tx_512b_1023b_frames; 44216fc92c33SMichael Chan __le64 tx_1024b_1518b_frames; 44226fc92c33SMichael Chan __le64 tx_good_vlan_frames; 44236fc92c33SMichael Chan __le64 tx_1519b_2047b_frames; 44246fc92c33SMichael Chan __le64 tx_2048b_4095b_frames; 44256fc92c33SMichael Chan __le64 tx_4096b_9216b_frames; 44266fc92c33SMichael Chan __le64 tx_9217b_16383b_frames; 44276fc92c33SMichael Chan __le64 tx_good_frames; 44286fc92c33SMichael Chan __le64 tx_total_frames; 44296fc92c33SMichael Chan __le64 tx_ucast_frames; 44306fc92c33SMichael Chan __le64 tx_mcast_frames; 44316fc92c33SMichael Chan __le64 tx_bcast_frames; 44326fc92c33SMichael Chan __le64 tx_pause_frames; 44336fc92c33SMichael Chan __le64 tx_pfc_frames; 44346fc92c33SMichael Chan __le64 tx_jabber_frames; 44356fc92c33SMichael Chan __le64 tx_fcs_err_frames; 44366fc92c33SMichael Chan __le64 tx_control_frames; 44376fc92c33SMichael Chan __le64 tx_oversz_frames; 44386fc92c33SMichael Chan __le64 tx_single_dfrl_frames; 44396fc92c33SMichael Chan __le64 tx_multi_dfrl_frames; 44406fc92c33SMichael Chan __le64 tx_single_coll_frames; 44416fc92c33SMichael Chan __le64 tx_multi_coll_frames; 44426fc92c33SMichael Chan __le64 tx_late_coll_frames; 44436fc92c33SMichael Chan __le64 tx_excessive_coll_frames; 44446fc92c33SMichael Chan __le64 tx_frag_frames; 44456fc92c33SMichael Chan __le64 tx_err; 44466fc92c33SMichael Chan __le64 tx_tagged_frames; 44476fc92c33SMichael Chan __le64 tx_dbl_tagged_frames; 44486fc92c33SMichael Chan __le64 tx_runt_frames; 44496fc92c33SMichael Chan __le64 tx_fifo_underruns; 44506fc92c33SMichael Chan __le64 tx_pfc_ena_frames_pri0; 44516fc92c33SMichael Chan __le64 tx_pfc_ena_frames_pri1; 44526fc92c33SMichael Chan __le64 tx_pfc_ena_frames_pri2; 44536fc92c33SMichael Chan __le64 tx_pfc_ena_frames_pri3; 44546fc92c33SMichael Chan __le64 tx_pfc_ena_frames_pri4; 44556fc92c33SMichael Chan __le64 tx_pfc_ena_frames_pri5; 44566fc92c33SMichael Chan __le64 tx_pfc_ena_frames_pri6; 44576fc92c33SMichael Chan __le64 tx_pfc_ena_frames_pri7; 44586fc92c33SMichael Chan __le64 tx_eee_lpi_events; 44596fc92c33SMichael Chan __le64 tx_eee_lpi_duration; 44606fc92c33SMichael Chan __le64 tx_llfc_logical_msgs; 44616fc92c33SMichael Chan __le64 tx_hcfc_msgs; 44626fc92c33SMichael Chan __le64 tx_total_collisions; 44636fc92c33SMichael Chan __le64 tx_bytes; 44646fc92c33SMichael Chan __le64 tx_xthol_frames; 44656fc92c33SMichael Chan __le64 tx_stat_discard; 44666fc92c33SMichael Chan __le64 tx_stat_error; 44676fc92c33SMichael Chan }; 44686fc92c33SMichael Chan 44696fc92c33SMichael Chan /* rx_port_stats (size:4224b/528B) */ 44706fc92c33SMichael Chan struct rx_port_stats { 44716fc92c33SMichael Chan __le64 rx_64b_frames; 44726fc92c33SMichael Chan __le64 rx_65b_127b_frames; 44736fc92c33SMichael Chan __le64 rx_128b_255b_frames; 44746fc92c33SMichael Chan __le64 rx_256b_511b_frames; 44756fc92c33SMichael Chan __le64 rx_512b_1023b_frames; 44766fc92c33SMichael Chan __le64 rx_1024b_1518b_frames; 44776fc92c33SMichael Chan __le64 rx_good_vlan_frames; 44786fc92c33SMichael Chan __le64 rx_1519b_2047b_frames; 44796fc92c33SMichael Chan __le64 rx_2048b_4095b_frames; 44806fc92c33SMichael Chan __le64 rx_4096b_9216b_frames; 44816fc92c33SMichael Chan __le64 rx_9217b_16383b_frames; 44826fc92c33SMichael Chan __le64 rx_total_frames; 44836fc92c33SMichael Chan __le64 rx_ucast_frames; 44846fc92c33SMichael Chan __le64 rx_mcast_frames; 44856fc92c33SMichael Chan __le64 rx_bcast_frames; 44866fc92c33SMichael Chan __le64 rx_fcs_err_frames; 44876fc92c33SMichael Chan __le64 rx_ctrl_frames; 44886fc92c33SMichael Chan __le64 rx_pause_frames; 44896fc92c33SMichael Chan __le64 rx_pfc_frames; 44906fc92c33SMichael Chan __le64 rx_unsupported_opcode_frames; 44916fc92c33SMichael Chan __le64 rx_unsupported_da_pausepfc_frames; 44926fc92c33SMichael Chan __le64 rx_wrong_sa_frames; 44936fc92c33SMichael Chan __le64 rx_align_err_frames; 44946fc92c33SMichael Chan __le64 rx_oor_len_frames; 44956fc92c33SMichael Chan __le64 rx_code_err_frames; 44966fc92c33SMichael Chan __le64 rx_false_carrier_frames; 44976fc92c33SMichael Chan __le64 rx_ovrsz_frames; 44986fc92c33SMichael Chan __le64 rx_jbr_frames; 44996fc92c33SMichael Chan __le64 rx_mtu_err_frames; 45006fc92c33SMichael Chan __le64 rx_match_crc_frames; 45016fc92c33SMichael Chan __le64 rx_promiscuous_frames; 45026fc92c33SMichael Chan __le64 rx_tagged_frames; 45036fc92c33SMichael Chan __le64 rx_double_tagged_frames; 45046fc92c33SMichael Chan __le64 rx_trunc_frames; 45056fc92c33SMichael Chan __le64 rx_good_frames; 45066fc92c33SMichael Chan __le64 rx_pfc_xon2xoff_frames_pri0; 45076fc92c33SMichael Chan __le64 rx_pfc_xon2xoff_frames_pri1; 45086fc92c33SMichael Chan __le64 rx_pfc_xon2xoff_frames_pri2; 45096fc92c33SMichael Chan __le64 rx_pfc_xon2xoff_frames_pri3; 45106fc92c33SMichael Chan __le64 rx_pfc_xon2xoff_frames_pri4; 45116fc92c33SMichael Chan __le64 rx_pfc_xon2xoff_frames_pri5; 45126fc92c33SMichael Chan __le64 rx_pfc_xon2xoff_frames_pri6; 45136fc92c33SMichael Chan __le64 rx_pfc_xon2xoff_frames_pri7; 45146fc92c33SMichael Chan __le64 rx_pfc_ena_frames_pri0; 45156fc92c33SMichael Chan __le64 rx_pfc_ena_frames_pri1; 45166fc92c33SMichael Chan __le64 rx_pfc_ena_frames_pri2; 45176fc92c33SMichael Chan __le64 rx_pfc_ena_frames_pri3; 45186fc92c33SMichael Chan __le64 rx_pfc_ena_frames_pri4; 45196fc92c33SMichael Chan __le64 rx_pfc_ena_frames_pri5; 45206fc92c33SMichael Chan __le64 rx_pfc_ena_frames_pri6; 45216fc92c33SMichael Chan __le64 rx_pfc_ena_frames_pri7; 45226fc92c33SMichael Chan __le64 rx_sch_crc_err_frames; 45236fc92c33SMichael Chan __le64 rx_undrsz_frames; 45246fc92c33SMichael Chan __le64 rx_frag_frames; 45256fc92c33SMichael Chan __le64 rx_eee_lpi_events; 45266fc92c33SMichael Chan __le64 rx_eee_lpi_duration; 45276fc92c33SMichael Chan __le64 rx_llfc_physical_msgs; 45286fc92c33SMichael Chan __le64 rx_llfc_logical_msgs; 45296fc92c33SMichael Chan __le64 rx_llfc_msgs_with_crc_err; 45306fc92c33SMichael Chan __le64 rx_hcfc_msgs; 45316fc92c33SMichael Chan __le64 rx_hcfc_msgs_with_crc_err; 45326fc92c33SMichael Chan __le64 rx_bytes; 45336fc92c33SMichael Chan __le64 rx_runt_bytes; 45346fc92c33SMichael Chan __le64 rx_runt_frames; 45356fc92c33SMichael Chan __le64 rx_stat_discard; 45366fc92c33SMichael Chan __le64 rx_stat_err; 45376fc92c33SMichael Chan }; 45386fc92c33SMichael Chan 4539894aa69aSMichael Chan /* hwrm_port_qstats_input (size:320b/40B) */ 4540c0c050c5SMichael Chan struct hwrm_port_qstats_input { 4541c0c050c5SMichael Chan __le16 req_type; 4542c0c050c5SMichael Chan __le16 cmpl_ring; 4543c0c050c5SMichael Chan __le16 seq_id; 4544c0c050c5SMichael Chan __le16 target_id; 4545c0c050c5SMichael Chan __le64 resp_addr; 4546c0c050c5SMichael Chan __le16 port_id; 4547460c2577SMichael Chan u8 flags; 4548460c2577SMichael Chan #define PORT_QSTATS_REQ_FLAGS_COUNTER_MASK 0x1UL 4549460c2577SMichael Chan u8 unused_0[5]; 4550c0c050c5SMichael Chan __le64 tx_stat_host_addr; 4551c0c050c5SMichael Chan __le64 rx_stat_host_addr; 4552c0c050c5SMichael Chan }; 4553c0c050c5SMichael Chan 4554894aa69aSMichael Chan /* hwrm_port_qstats_output (size:128b/16B) */ 4555c0c050c5SMichael Chan struct hwrm_port_qstats_output { 4556c0c050c5SMichael Chan __le16 error_code; 4557c0c050c5SMichael Chan __le16 req_type; 4558c0c050c5SMichael Chan __le16 seq_id; 4559c0c050c5SMichael Chan __le16 resp_len; 4560c193554eSMichael Chan __le16 tx_stat_size; 4561c193554eSMichael Chan __le16 rx_stat_size; 4562894aa69aSMichael Chan u8 unused_0[3]; 4563c0c050c5SMichael Chan u8 valid; 4564c0c050c5SMichael Chan }; 4565c0c050c5SMichael Chan 45666fc92c33SMichael Chan /* tx_port_stats_ext (size:2048b/256B) */ 45676fc92c33SMichael Chan struct tx_port_stats_ext { 45686fc92c33SMichael Chan __le64 tx_bytes_cos0; 45696fc92c33SMichael Chan __le64 tx_bytes_cos1; 45706fc92c33SMichael Chan __le64 tx_bytes_cos2; 45716fc92c33SMichael Chan __le64 tx_bytes_cos3; 45726fc92c33SMichael Chan __le64 tx_bytes_cos4; 45736fc92c33SMichael Chan __le64 tx_bytes_cos5; 45746fc92c33SMichael Chan __le64 tx_bytes_cos6; 45756fc92c33SMichael Chan __le64 tx_bytes_cos7; 45766fc92c33SMichael Chan __le64 tx_packets_cos0; 45776fc92c33SMichael Chan __le64 tx_packets_cos1; 45786fc92c33SMichael Chan __le64 tx_packets_cos2; 45796fc92c33SMichael Chan __le64 tx_packets_cos3; 45806fc92c33SMichael Chan __le64 tx_packets_cos4; 45816fc92c33SMichael Chan __le64 tx_packets_cos5; 45826fc92c33SMichael Chan __le64 tx_packets_cos6; 45836fc92c33SMichael Chan __le64 tx_packets_cos7; 45846fc92c33SMichael Chan __le64 pfc_pri0_tx_duration_us; 45856fc92c33SMichael Chan __le64 pfc_pri0_tx_transitions; 45866fc92c33SMichael Chan __le64 pfc_pri1_tx_duration_us; 45876fc92c33SMichael Chan __le64 pfc_pri1_tx_transitions; 45886fc92c33SMichael Chan __le64 pfc_pri2_tx_duration_us; 45896fc92c33SMichael Chan __le64 pfc_pri2_tx_transitions; 45906fc92c33SMichael Chan __le64 pfc_pri3_tx_duration_us; 45916fc92c33SMichael Chan __le64 pfc_pri3_tx_transitions; 45926fc92c33SMichael Chan __le64 pfc_pri4_tx_duration_us; 45936fc92c33SMichael Chan __le64 pfc_pri4_tx_transitions; 45946fc92c33SMichael Chan __le64 pfc_pri5_tx_duration_us; 45956fc92c33SMichael Chan __le64 pfc_pri5_tx_transitions; 45966fc92c33SMichael Chan __le64 pfc_pri6_tx_duration_us; 45976fc92c33SMichael Chan __le64 pfc_pri6_tx_transitions; 45986fc92c33SMichael Chan __le64 pfc_pri7_tx_duration_us; 45996fc92c33SMichael Chan __le64 pfc_pri7_tx_transitions; 46006fc92c33SMichael Chan }; 46016fc92c33SMichael Chan 460221e70778SMichael Chan /* rx_port_stats_ext (size:3776b/472B) */ 46036fc92c33SMichael Chan struct rx_port_stats_ext { 46046fc92c33SMichael Chan __le64 link_down_events; 46056fc92c33SMichael Chan __le64 continuous_pause_events; 46066fc92c33SMichael Chan __le64 resume_pause_events; 46076fc92c33SMichael Chan __le64 continuous_roce_pause_events; 46086fc92c33SMichael Chan __le64 resume_roce_pause_events; 46096fc92c33SMichael Chan __le64 rx_bytes_cos0; 46106fc92c33SMichael Chan __le64 rx_bytes_cos1; 46116fc92c33SMichael Chan __le64 rx_bytes_cos2; 46126fc92c33SMichael Chan __le64 rx_bytes_cos3; 46136fc92c33SMichael Chan __le64 rx_bytes_cos4; 46146fc92c33SMichael Chan __le64 rx_bytes_cos5; 46156fc92c33SMichael Chan __le64 rx_bytes_cos6; 46166fc92c33SMichael Chan __le64 rx_bytes_cos7; 46176fc92c33SMichael Chan __le64 rx_packets_cos0; 46186fc92c33SMichael Chan __le64 rx_packets_cos1; 46196fc92c33SMichael Chan __le64 rx_packets_cos2; 46206fc92c33SMichael Chan __le64 rx_packets_cos3; 46216fc92c33SMichael Chan __le64 rx_packets_cos4; 46226fc92c33SMichael Chan __le64 rx_packets_cos5; 46236fc92c33SMichael Chan __le64 rx_packets_cos6; 46246fc92c33SMichael Chan __le64 rx_packets_cos7; 46256fc92c33SMichael Chan __le64 pfc_pri0_rx_duration_us; 46266fc92c33SMichael Chan __le64 pfc_pri0_rx_transitions; 46276fc92c33SMichael Chan __le64 pfc_pri1_rx_duration_us; 46286fc92c33SMichael Chan __le64 pfc_pri1_rx_transitions; 46296fc92c33SMichael Chan __le64 pfc_pri2_rx_duration_us; 46306fc92c33SMichael Chan __le64 pfc_pri2_rx_transitions; 46316fc92c33SMichael Chan __le64 pfc_pri3_rx_duration_us; 46326fc92c33SMichael Chan __le64 pfc_pri3_rx_transitions; 46336fc92c33SMichael Chan __le64 pfc_pri4_rx_duration_us; 46346fc92c33SMichael Chan __le64 pfc_pri4_rx_transitions; 46356fc92c33SMichael Chan __le64 pfc_pri5_rx_duration_us; 46366fc92c33SMichael Chan __le64 pfc_pri5_rx_transitions; 46376fc92c33SMichael Chan __le64 pfc_pri6_rx_duration_us; 46386fc92c33SMichael Chan __le64 pfc_pri6_rx_transitions; 46396fc92c33SMichael Chan __le64 pfc_pri7_rx_duration_us; 46406fc92c33SMichael Chan __le64 pfc_pri7_rx_transitions; 46414a50ddc2SMichael Chan __le64 rx_bits; 46424a50ddc2SMichael Chan __le64 rx_buffer_passed_threshold; 46434a50ddc2SMichael Chan __le64 rx_pcs_symbol_err; 46444a50ddc2SMichael Chan __le64 rx_corrected_bits; 46452792b5b9SMichael Chan __le64 rx_discard_bytes_cos0; 46462792b5b9SMichael Chan __le64 rx_discard_bytes_cos1; 46472792b5b9SMichael Chan __le64 rx_discard_bytes_cos2; 46482792b5b9SMichael Chan __le64 rx_discard_bytes_cos3; 46492792b5b9SMichael Chan __le64 rx_discard_bytes_cos4; 46502792b5b9SMichael Chan __le64 rx_discard_bytes_cos5; 46512792b5b9SMichael Chan __le64 rx_discard_bytes_cos6; 46522792b5b9SMichael Chan __le64 rx_discard_bytes_cos7; 46532792b5b9SMichael Chan __le64 rx_discard_packets_cos0; 46542792b5b9SMichael Chan __le64 rx_discard_packets_cos1; 46552792b5b9SMichael Chan __le64 rx_discard_packets_cos2; 46562792b5b9SMichael Chan __le64 rx_discard_packets_cos3; 46572792b5b9SMichael Chan __le64 rx_discard_packets_cos4; 46582792b5b9SMichael Chan __le64 rx_discard_packets_cos5; 46592792b5b9SMichael Chan __le64 rx_discard_packets_cos6; 46602792b5b9SMichael Chan __le64 rx_discard_packets_cos7; 466121e70778SMichael Chan __le64 rx_fec_corrected_blocks; 466221e70778SMichael Chan __le64 rx_fec_uncorrectable_blocks; 46636fc92c33SMichael Chan }; 46646fc92c33SMichael Chan 4665d4f52de0SMichael Chan /* hwrm_port_qstats_ext_input (size:320b/40B) */ 4666d4f52de0SMichael Chan struct hwrm_port_qstats_ext_input { 4667d4f52de0SMichael Chan __le16 req_type; 4668d4f52de0SMichael Chan __le16 cmpl_ring; 4669d4f52de0SMichael Chan __le16 seq_id; 4670d4f52de0SMichael Chan __le16 target_id; 4671d4f52de0SMichael Chan __le64 resp_addr; 4672d4f52de0SMichael Chan __le16 port_id; 4673d4f52de0SMichael Chan __le16 tx_stat_size; 4674d4f52de0SMichael Chan __le16 rx_stat_size; 4675460c2577SMichael Chan u8 flags; 4676460c2577SMichael Chan #define PORT_QSTATS_EXT_REQ_FLAGS_COUNTER_MASK 0x1UL 4677460c2577SMichael Chan u8 unused_0; 4678d4f52de0SMichael Chan __le64 tx_stat_host_addr; 4679d4f52de0SMichael Chan __le64 rx_stat_host_addr; 4680d4f52de0SMichael Chan }; 4681d4f52de0SMichael Chan 4682d4f52de0SMichael Chan /* hwrm_port_qstats_ext_output (size:128b/16B) */ 4683d4f52de0SMichael Chan struct hwrm_port_qstats_ext_output { 4684d4f52de0SMichael Chan __le16 error_code; 4685d4f52de0SMichael Chan __le16 req_type; 4686d4f52de0SMichael Chan __le16 seq_id; 4687d4f52de0SMichael Chan __le16 resp_len; 4688d4f52de0SMichael Chan __le16 tx_stat_size; 4689d4f52de0SMichael Chan __le16 rx_stat_size; 46906fc92c33SMichael Chan __le16 total_active_cos_queues; 469131d357c0SMichael Chan u8 flags; 469231d357c0SMichael Chan #define PORT_QSTATS_EXT_RESP_FLAGS_CLEAR_ROCE_COUNTERS_SUPPORTED 0x1UL 4693d4f52de0SMichael Chan u8 valid; 4694d4f52de0SMichael Chan }; 4695d4f52de0SMichael Chan 4696894aa69aSMichael Chan /* hwrm_port_lpbk_qstats_input (size:128b/16B) */ 4697c0c050c5SMichael Chan struct hwrm_port_lpbk_qstats_input { 4698c0c050c5SMichael Chan __le16 req_type; 4699c0c050c5SMichael Chan __le16 cmpl_ring; 4700c0c050c5SMichael Chan __le16 seq_id; 4701c0c050c5SMichael Chan __le16 target_id; 4702c0c050c5SMichael Chan __le64 resp_addr; 4703c0c050c5SMichael Chan }; 4704c0c050c5SMichael Chan 4705894aa69aSMichael Chan /* hwrm_port_lpbk_qstats_output (size:768b/96B) */ 4706c0c050c5SMichael Chan struct hwrm_port_lpbk_qstats_output { 4707c0c050c5SMichael Chan __le16 error_code; 4708c0c050c5SMichael Chan __le16 req_type; 4709c0c050c5SMichael Chan __le16 seq_id; 4710c0c050c5SMichael Chan __le16 resp_len; 4711c0c050c5SMichael Chan __le64 lpbk_ucast_frames; 4712c0c050c5SMichael Chan __le64 lpbk_mcast_frames; 4713c0c050c5SMichael Chan __le64 lpbk_bcast_frames; 4714c0c050c5SMichael Chan __le64 lpbk_ucast_bytes; 4715c0c050c5SMichael Chan __le64 lpbk_mcast_bytes; 4716c0c050c5SMichael Chan __le64 lpbk_bcast_bytes; 4717c193554eSMichael Chan __le64 tx_stat_discard; 4718c193554eSMichael Chan __le64 tx_stat_error; 4719c193554eSMichael Chan __le64 rx_stat_discard; 4720c193554eSMichael Chan __le64 rx_stat_error; 4721894aa69aSMichael Chan u8 unused_0[7]; 4722c0c050c5SMichael Chan u8 valid; 4723c0c050c5SMichael Chan }; 4724c0c050c5SMichael Chan 47259d6b648cSMichael Chan /* hwrm_port_ecn_qstats_input (size:256b/32B) */ 47269d6b648cSMichael Chan struct hwrm_port_ecn_qstats_input { 47279d6b648cSMichael Chan __le16 req_type; 47289d6b648cSMichael Chan __le16 cmpl_ring; 47299d6b648cSMichael Chan __le16 seq_id; 47309d6b648cSMichael Chan __le16 target_id; 47319d6b648cSMichael Chan __le64 resp_addr; 47329d6b648cSMichael Chan __le16 port_id; 47339d6b648cSMichael Chan __le16 ecn_stat_buf_size; 47349d6b648cSMichael Chan u8 flags; 47359d6b648cSMichael Chan #define PORT_ECN_QSTATS_REQ_FLAGS_COUNTER_MASK 0x1UL 47369d6b648cSMichael Chan u8 unused_0[3]; 47379d6b648cSMichael Chan __le64 ecn_stat_host_addr; 47389d6b648cSMichael Chan }; 47399d6b648cSMichael Chan 47409d6b648cSMichael Chan /* hwrm_port_ecn_qstats_output (size:128b/16B) */ 47419d6b648cSMichael Chan struct hwrm_port_ecn_qstats_output { 47429d6b648cSMichael Chan __le16 error_code; 47439d6b648cSMichael Chan __le16 req_type; 47449d6b648cSMichael Chan __le16 seq_id; 47459d6b648cSMichael Chan __le16 resp_len; 47469d6b648cSMichael Chan __le16 ecn_stat_buf_size; 47479d6b648cSMichael Chan u8 mark_en; 47489d6b648cSMichael Chan u8 unused_0[4]; 47499d6b648cSMichael Chan u8 valid; 47509d6b648cSMichael Chan }; 47519d6b648cSMichael Chan 47529d6b648cSMichael Chan /* port_stats_ecn (size:512b/64B) */ 47539d6b648cSMichael Chan struct port_stats_ecn { 47549d6b648cSMichael Chan __le64 mark_cnt_cos0; 47559d6b648cSMichael Chan __le64 mark_cnt_cos1; 47569d6b648cSMichael Chan __le64 mark_cnt_cos2; 47579d6b648cSMichael Chan __le64 mark_cnt_cos3; 47589d6b648cSMichael Chan __le64 mark_cnt_cos4; 47599d6b648cSMichael Chan __le64 mark_cnt_cos5; 47609d6b648cSMichael Chan __le64 mark_cnt_cos6; 47619d6b648cSMichael Chan __le64 mark_cnt_cos7; 47629d6b648cSMichael Chan }; 47639d6b648cSMichael Chan 4764894aa69aSMichael Chan /* hwrm_port_clr_stats_input (size:192b/24B) */ 4765c0c050c5SMichael Chan struct hwrm_port_clr_stats_input { 4766c0c050c5SMichael Chan __le16 req_type; 4767c0c050c5SMichael Chan __le16 cmpl_ring; 4768c0c050c5SMichael Chan __le16 seq_id; 4769c0c050c5SMichael Chan __le16 target_id; 4770c0c050c5SMichael Chan __le64 resp_addr; 4771c0c050c5SMichael Chan __le16 port_id; 477231d357c0SMichael Chan u8 flags; 477331d357c0SMichael Chan #define PORT_CLR_STATS_REQ_FLAGS_ROCE_COUNTERS 0x1UL 477431d357c0SMichael Chan u8 unused_0[5]; 4775c0c050c5SMichael Chan }; 4776c0c050c5SMichael Chan 4777894aa69aSMichael Chan /* hwrm_port_clr_stats_output (size:128b/16B) */ 4778c0c050c5SMichael Chan struct hwrm_port_clr_stats_output { 4779c0c050c5SMichael Chan __le16 error_code; 4780c0c050c5SMichael Chan __le16 req_type; 4781c0c050c5SMichael Chan __le16 seq_id; 4782c0c050c5SMichael Chan __le16 resp_len; 4783894aa69aSMichael Chan u8 unused_0[7]; 4784c0c050c5SMichael Chan u8 valid; 4785c0c050c5SMichael Chan }; 4786c0c050c5SMichael Chan 4787894aa69aSMichael Chan /* hwrm_port_lpbk_clr_stats_input (size:128b/16B) */ 4788c0c050c5SMichael Chan struct hwrm_port_lpbk_clr_stats_input { 4789c0c050c5SMichael Chan __le16 req_type; 4790c0c050c5SMichael Chan __le16 cmpl_ring; 4791c0c050c5SMichael Chan __le16 seq_id; 4792c0c050c5SMichael Chan __le16 target_id; 4793c0c050c5SMichael Chan __le64 resp_addr; 4794c0c050c5SMichael Chan }; 4795c0c050c5SMichael Chan 4796894aa69aSMichael Chan /* hwrm_port_lpbk_clr_stats_output (size:128b/16B) */ 4797c0c050c5SMichael Chan struct hwrm_port_lpbk_clr_stats_output { 4798c0c050c5SMichael Chan __le16 error_code; 4799c0c050c5SMichael Chan __le16 req_type; 4800c0c050c5SMichael Chan __le16 seq_id; 4801c0c050c5SMichael Chan __le16 resp_len; 4802894aa69aSMichael Chan u8 unused_0[7]; 4803c0c050c5SMichael Chan u8 valid; 4804c0c050c5SMichael Chan }; 4805c0c050c5SMichael Chan 4806fbfee257SMichael Chan /* hwrm_port_ts_query_input (size:320b/40B) */ 48074a50ddc2SMichael Chan struct hwrm_port_ts_query_input { 48084a50ddc2SMichael Chan __le16 req_type; 48094a50ddc2SMichael Chan __le16 cmpl_ring; 48104a50ddc2SMichael Chan __le16 seq_id; 48114a50ddc2SMichael Chan __le16 target_id; 48124a50ddc2SMichael Chan __le64 resp_addr; 48134a50ddc2SMichael Chan __le32 flags; 48144a50ddc2SMichael Chan #define PORT_TS_QUERY_REQ_FLAGS_PATH 0x1UL 48154a50ddc2SMichael Chan #define PORT_TS_QUERY_REQ_FLAGS_PATH_TX 0x0UL 48164a50ddc2SMichael Chan #define PORT_TS_QUERY_REQ_FLAGS_PATH_RX 0x1UL 48174a50ddc2SMichael Chan #define PORT_TS_QUERY_REQ_FLAGS_PATH_LAST PORT_TS_QUERY_REQ_FLAGS_PATH_RX 48184a50ddc2SMichael Chan #define PORT_TS_QUERY_REQ_FLAGS_CURRENT_TIME 0x2UL 48194a50ddc2SMichael Chan __le16 port_id; 48204a50ddc2SMichael Chan u8 unused_0[2]; 482178eeadb8SMichael Chan __le16 enables; 482278eeadb8SMichael Chan #define PORT_TS_QUERY_REQ_ENABLES_TS_REQ_TIMEOUT 0x1UL 482378eeadb8SMichael Chan #define PORT_TS_QUERY_REQ_ENABLES_PTP_SEQ_ID 0x2UL 4824fbfee257SMichael Chan #define PORT_TS_QUERY_REQ_ENABLES_PTP_HDR_OFFSET 0x4UL 482578eeadb8SMichael Chan __le16 ts_req_timeout; 482678eeadb8SMichael Chan __le32 ptp_seq_id; 4827fbfee257SMichael Chan __le16 ptp_hdr_offset; 4828fbfee257SMichael Chan u8 unused_1[6]; 48294a50ddc2SMichael Chan }; 48304a50ddc2SMichael Chan 48314a50ddc2SMichael Chan /* hwrm_port_ts_query_output (size:192b/24B) */ 48324a50ddc2SMichael Chan struct hwrm_port_ts_query_output { 48334a50ddc2SMichael Chan __le16 error_code; 48344a50ddc2SMichael Chan __le16 req_type; 48354a50ddc2SMichael Chan __le16 seq_id; 48364a50ddc2SMichael Chan __le16 resp_len; 48374a50ddc2SMichael Chan __le64 ptp_msg_ts; 48384a50ddc2SMichael Chan __le16 ptp_msg_seqid; 48394a50ddc2SMichael Chan u8 unused_0[5]; 48404a50ddc2SMichael Chan u8 valid; 48414a50ddc2SMichael Chan }; 48424a50ddc2SMichael Chan 4843894aa69aSMichael Chan /* hwrm_port_phy_qcaps_input (size:192b/24B) */ 484411f15ed3SMichael Chan struct hwrm_port_phy_qcaps_input { 484511f15ed3SMichael Chan __le16 req_type; 484611f15ed3SMichael Chan __le16 cmpl_ring; 484711f15ed3SMichael Chan __le16 seq_id; 484811f15ed3SMichael Chan __le16 target_id; 484911f15ed3SMichael Chan __le64 resp_addr; 485011f15ed3SMichael Chan __le16 port_id; 4851894aa69aSMichael Chan u8 unused_0[6]; 485211f15ed3SMichael Chan }; 485311f15ed3SMichael Chan 4854bfc6e5fbSMichael Chan /* hwrm_port_phy_qcaps_output (size:256b/32B) */ 485511f15ed3SMichael Chan struct hwrm_port_phy_qcaps_output { 485611f15ed3SMichael Chan __le16 error_code; 485711f15ed3SMichael Chan __le16 req_type; 485811f15ed3SMichael Chan __le16 seq_id; 485911f15ed3SMichael Chan __le16 resp_len; 4860acb20054SMichael Chan u8 flags; 4861acb20054SMichael Chan #define PORT_PHY_QCAPS_RESP_FLAGS_EEE_SUPPORTED 0x1UL 48626fc92c33SMichael Chan #define PORT_PHY_QCAPS_RESP_FLAGS_EXTERNAL_LPBK_SUPPORTED 0x2UL 486341136ab3SMichael Chan #define PORT_PHY_QCAPS_RESP_FLAGS_AUTONEG_LPBK_SUPPORTED 0x4UL 486441136ab3SMichael Chan #define PORT_PHY_QCAPS_RESP_FLAGS_SHARED_PHY_CFG_SUPPORTED 0x8UL 4865bfc6e5fbSMichael Chan #define PORT_PHY_QCAPS_RESP_FLAGS_CUMULATIVE_COUNTERS_ON_RESET 0x10UL 48669d6b648cSMichael Chan #define PORT_PHY_QCAPS_RESP_FLAGS_LOCAL_LPBK_NOT_SUPPORTED 0x20UL 486716db6323SMichael Chan #define PORT_PHY_QCAPS_RESP_FLAGS_FW_MANAGED_LINK_DOWN 0x40UL 486831f67c2eSMichael Chan #define PORT_PHY_QCAPS_RESP_FLAGS_NO_FCS 0x80UL 48696a17eb27SMichael Chan u8 port_cnt; 48706a17eb27SMichael Chan #define PORT_PHY_QCAPS_RESP_PORT_CNT_UNKNOWN 0x0UL 48716a17eb27SMichael Chan #define PORT_PHY_QCAPS_RESP_PORT_CNT_1 0x1UL 48726a17eb27SMichael Chan #define PORT_PHY_QCAPS_RESP_PORT_CNT_2 0x2UL 48736a17eb27SMichael Chan #define PORT_PHY_QCAPS_RESP_PORT_CNT_3 0x3UL 48746a17eb27SMichael Chan #define PORT_PHY_QCAPS_RESP_PORT_CNT_4 0x4UL 48752895c153SMichael Chan #define PORT_PHY_QCAPS_RESP_PORT_CNT_12 0xcUL 48762895c153SMichael Chan #define PORT_PHY_QCAPS_RESP_PORT_CNT_LAST PORT_PHY_QCAPS_RESP_PORT_CNT_12 487711f15ed3SMichael Chan __le16 supported_speeds_force_mode; 487811f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100MBHD 0x1UL 487911f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100MB 0x2UL 488011f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_1GBHD 0x4UL 488111f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_1GB 0x8UL 488211f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_2GB 0x10UL 488311f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_2_5GB 0x20UL 488411f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10GB 0x40UL 488511f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_20GB 0x80UL 488611f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_25GB 0x100UL 488711f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_40GB 0x200UL 488811f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_50GB 0x400UL 488911f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100GB 0x800UL 489011f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10MBHD 0x1000UL 489111f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10MB 0x2000UL 489211f15ed3SMichael Chan __le16 supported_speeds_auto_mode; 489311f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100MBHD 0x1UL 489411f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100MB 0x2UL 489511f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_1GBHD 0x4UL 489611f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_1GB 0x8UL 489711f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_2GB 0x10UL 489811f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_2_5GB 0x20UL 489911f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10GB 0x40UL 490011f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_20GB 0x80UL 490111f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_25GB 0x100UL 490211f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_40GB 0x200UL 490311f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_50GB 0x400UL 490411f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100GB 0x800UL 490511f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10MBHD 0x1000UL 490611f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10MB 0x2000UL 490711f15ed3SMichael Chan __le16 supported_speeds_eee_mode; 490811f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD1 0x1UL 490911f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_100MB 0x2UL 491011f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD2 0x4UL 491111f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_1GB 0x8UL 491211f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD3 0x10UL 491311f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD4 0x20UL 491411f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_10GB 0x40UL 491511f15ed3SMichael Chan __le32 tx_lpi_timer_low; 491611f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_LOW_MASK 0xffffffUL 491711f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_LOW_SFT 0 491811f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_RSVD2_MASK 0xff000000UL 491911f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_RSVD2_SFT 24 492011f15ed3SMichael Chan __le32 valid_tx_lpi_timer_high; 492111f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_HIGH_MASK 0xffffffUL 492211f15ed3SMichael Chan #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_HIGH_SFT 0 4923bfc6e5fbSMichael Chan #define PORT_PHY_QCAPS_RESP_RSVD_MASK 0xff000000UL 4924bfc6e5fbSMichael Chan #define PORT_PHY_QCAPS_RESP_RSVD_SFT 24 4925bfc6e5fbSMichael Chan __le16 supported_pam4_speeds_auto_mode; 4926bfc6e5fbSMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_PAM4_SPEEDS_AUTO_MODE_50G 0x1UL 4927bfc6e5fbSMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_PAM4_SPEEDS_AUTO_MODE_100G 0x2UL 4928bfc6e5fbSMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_PAM4_SPEEDS_AUTO_MODE_200G 0x4UL 4929bfc6e5fbSMichael Chan __le16 supported_pam4_speeds_force_mode; 4930bfc6e5fbSMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_PAM4_SPEEDS_FORCE_MODE_50G 0x1UL 4931bfc6e5fbSMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_PAM4_SPEEDS_FORCE_MODE_100G 0x2UL 4932bfc6e5fbSMichael Chan #define PORT_PHY_QCAPS_RESP_SUPPORTED_PAM4_SPEEDS_FORCE_MODE_200G 0x4UL 493321e70778SMichael Chan __le16 flags2; 493421e70778SMichael Chan #define PORT_PHY_QCAPS_RESP_FLAGS2_PAUSE_UNSUPPORTED 0x1UL 493521e70778SMichael Chan #define PORT_PHY_QCAPS_RESP_FLAGS2_PFC_UNSUPPORTED 0x2UL 493684a911dbSMichael Chan #define PORT_PHY_QCAPS_RESP_FLAGS2_BANK_ADDR_SUPPORTED 0x4UL 49372895c153SMichael Chan u8 internal_port_cnt; 4938bfc6e5fbSMichael Chan u8 valid; 493911f15ed3SMichael Chan }; 494011f15ed3SMichael Chan 4941894aa69aSMichael Chan /* hwrm_port_phy_i2c_read_input (size:320b/40B) */ 494242ee18feSAjit Khaparde struct hwrm_port_phy_i2c_read_input { 494342ee18feSAjit Khaparde __le16 req_type; 494442ee18feSAjit Khaparde __le16 cmpl_ring; 494542ee18feSAjit Khaparde __le16 seq_id; 494642ee18feSAjit Khaparde __le16 target_id; 494742ee18feSAjit Khaparde __le64 resp_addr; 494842ee18feSAjit Khaparde __le32 flags; 494942ee18feSAjit Khaparde __le32 enables; 495042ee18feSAjit Khaparde #define PORT_PHY_I2C_READ_REQ_ENABLES_PAGE_OFFSET 0x1UL 495184a911dbSMichael Chan #define PORT_PHY_I2C_READ_REQ_ENABLES_BANK_NUMBER 0x2UL 495242ee18feSAjit Khaparde __le16 port_id; 495342ee18feSAjit Khaparde u8 i2c_slave_addr; 495484a911dbSMichael Chan u8 bank_number; 495542ee18feSAjit Khaparde __le16 page_number; 495642ee18feSAjit Khaparde __le16 page_offset; 495742ee18feSAjit Khaparde u8 data_length; 495842ee18feSAjit Khaparde u8 unused_1[7]; 495942ee18feSAjit Khaparde }; 496042ee18feSAjit Khaparde 4961894aa69aSMichael Chan /* hwrm_port_phy_i2c_read_output (size:640b/80B) */ 496242ee18feSAjit Khaparde struct hwrm_port_phy_i2c_read_output { 496342ee18feSAjit Khaparde __le16 error_code; 496442ee18feSAjit Khaparde __le16 req_type; 496542ee18feSAjit Khaparde __le16 seq_id; 496642ee18feSAjit Khaparde __le16 resp_len; 496742ee18feSAjit Khaparde __le32 data[16]; 4968894aa69aSMichael Chan u8 unused_0[7]; 496942ee18feSAjit Khaparde u8 valid; 497042ee18feSAjit Khaparde }; 497142ee18feSAjit Khaparde 49723322479eSMichael Chan /* hwrm_port_phy_mdio_write_input (size:320b/40B) */ 49733322479eSMichael Chan struct hwrm_port_phy_mdio_write_input { 49743322479eSMichael Chan __le16 req_type; 49753322479eSMichael Chan __le16 cmpl_ring; 49763322479eSMichael Chan __le16 seq_id; 49773322479eSMichael Chan __le16 target_id; 49783322479eSMichael Chan __le64 resp_addr; 49793322479eSMichael Chan __le32 unused_0[2]; 49803322479eSMichael Chan __le16 port_id; 49813322479eSMichael Chan u8 phy_addr; 49823322479eSMichael Chan u8 dev_addr; 49833322479eSMichael Chan __le16 reg_addr; 49843322479eSMichael Chan __le16 reg_data; 49853322479eSMichael Chan u8 cl45_mdio; 49863322479eSMichael Chan u8 unused_1[7]; 49873322479eSMichael Chan }; 49883322479eSMichael Chan 49893322479eSMichael Chan /* hwrm_port_phy_mdio_write_output (size:128b/16B) */ 49903322479eSMichael Chan struct hwrm_port_phy_mdio_write_output { 49913322479eSMichael Chan __le16 error_code; 49923322479eSMichael Chan __le16 req_type; 49933322479eSMichael Chan __le16 seq_id; 49943322479eSMichael Chan __le16 resp_len; 49953322479eSMichael Chan u8 unused_0[7]; 49963322479eSMichael Chan u8 valid; 49973322479eSMichael Chan }; 49983322479eSMichael Chan 49993322479eSMichael Chan /* hwrm_port_phy_mdio_read_input (size:256b/32B) */ 50003322479eSMichael Chan struct hwrm_port_phy_mdio_read_input { 50013322479eSMichael Chan __le16 req_type; 50023322479eSMichael Chan __le16 cmpl_ring; 50033322479eSMichael Chan __le16 seq_id; 50043322479eSMichael Chan __le16 target_id; 50053322479eSMichael Chan __le64 resp_addr; 50063322479eSMichael Chan __le32 unused_0[2]; 50073322479eSMichael Chan __le16 port_id; 50083322479eSMichael Chan u8 phy_addr; 50093322479eSMichael Chan u8 dev_addr; 50103322479eSMichael Chan __le16 reg_addr; 50113322479eSMichael Chan u8 cl45_mdio; 50123322479eSMichael Chan u8 unused_1; 50133322479eSMichael Chan }; 50143322479eSMichael Chan 50153322479eSMichael Chan /* hwrm_port_phy_mdio_read_output (size:128b/16B) */ 50163322479eSMichael Chan struct hwrm_port_phy_mdio_read_output { 50173322479eSMichael Chan __le16 error_code; 50183322479eSMichael Chan __le16 req_type; 50193322479eSMichael Chan __le16 seq_id; 50203322479eSMichael Chan __le16 resp_len; 50213322479eSMichael Chan __le16 reg_data; 50223322479eSMichael Chan u8 unused_0[5]; 50233322479eSMichael Chan u8 valid; 50243322479eSMichael Chan }; 50253322479eSMichael Chan 5026894aa69aSMichael Chan /* hwrm_port_led_cfg_input (size:512b/64B) */ 5027f183886cSMichael Chan struct hwrm_port_led_cfg_input { 5028f183886cSMichael Chan __le16 req_type; 5029f183886cSMichael Chan __le16 cmpl_ring; 5030f183886cSMichael Chan __le16 seq_id; 5031f183886cSMichael Chan __le16 target_id; 5032f183886cSMichael Chan __le64 resp_addr; 5033f183886cSMichael Chan __le32 enables; 5034f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED0_ID 0x1UL 5035f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED0_STATE 0x2UL 5036f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED0_COLOR 0x4UL 5037f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED0_BLINK_ON 0x8UL 5038f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED0_BLINK_OFF 0x10UL 5039f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED0_GROUP_ID 0x20UL 5040f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED1_ID 0x40UL 5041f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED1_STATE 0x80UL 5042f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED1_COLOR 0x100UL 5043f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED1_BLINK_ON 0x200UL 5044f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED1_BLINK_OFF 0x400UL 5045f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED1_GROUP_ID 0x800UL 5046f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED2_ID 0x1000UL 5047f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED2_STATE 0x2000UL 5048f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED2_COLOR 0x4000UL 5049f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED2_BLINK_ON 0x8000UL 5050f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED2_BLINK_OFF 0x10000UL 5051f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED2_GROUP_ID 0x20000UL 5052f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED3_ID 0x40000UL 5053f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED3_STATE 0x80000UL 5054f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED3_COLOR 0x100000UL 5055f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED3_BLINK_ON 0x200000UL 5056f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED3_BLINK_OFF 0x400000UL 5057f183886cSMichael Chan #define PORT_LED_CFG_REQ_ENABLES_LED3_GROUP_ID 0x800000UL 5058f183886cSMichael Chan __le16 port_id; 5059f183886cSMichael Chan u8 num_leds; 5060f183886cSMichael Chan u8 rsvd; 5061f183886cSMichael Chan u8 led0_id; 5062f183886cSMichael Chan u8 led0_state; 5063f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED0_STATE_DEFAULT 0x0UL 5064f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED0_STATE_OFF 0x1UL 5065f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED0_STATE_ON 0x2UL 5066f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED0_STATE_BLINK 0x3UL 5067f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED0_STATE_BLINKALT 0x4UL 5068894aa69aSMichael Chan #define PORT_LED_CFG_REQ_LED0_STATE_LAST PORT_LED_CFG_REQ_LED0_STATE_BLINKALT 5069f183886cSMichael Chan u8 led0_color; 5070f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED0_COLOR_DEFAULT 0x0UL 5071f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED0_COLOR_AMBER 0x1UL 5072f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED0_COLOR_GREEN 0x2UL 5073f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED0_COLOR_GREENAMBER 0x3UL 5074894aa69aSMichael Chan #define PORT_LED_CFG_REQ_LED0_COLOR_LAST PORT_LED_CFG_REQ_LED0_COLOR_GREENAMBER 5075f183886cSMichael Chan u8 unused_0; 5076f183886cSMichael Chan __le16 led0_blink_on; 5077f183886cSMichael Chan __le16 led0_blink_off; 5078f183886cSMichael Chan u8 led0_group_id; 5079f183886cSMichael Chan u8 rsvd0; 5080f183886cSMichael Chan u8 led1_id; 5081f183886cSMichael Chan u8 led1_state; 5082f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED1_STATE_DEFAULT 0x0UL 5083f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED1_STATE_OFF 0x1UL 5084f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED1_STATE_ON 0x2UL 5085f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED1_STATE_BLINK 0x3UL 5086f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED1_STATE_BLINKALT 0x4UL 5087894aa69aSMichael Chan #define PORT_LED_CFG_REQ_LED1_STATE_LAST PORT_LED_CFG_REQ_LED1_STATE_BLINKALT 5088f183886cSMichael Chan u8 led1_color; 5089f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED1_COLOR_DEFAULT 0x0UL 5090f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED1_COLOR_AMBER 0x1UL 5091f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED1_COLOR_GREEN 0x2UL 5092f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED1_COLOR_GREENAMBER 0x3UL 5093894aa69aSMichael Chan #define PORT_LED_CFG_REQ_LED1_COLOR_LAST PORT_LED_CFG_REQ_LED1_COLOR_GREENAMBER 5094f183886cSMichael Chan u8 unused_1; 5095f183886cSMichael Chan __le16 led1_blink_on; 5096f183886cSMichael Chan __le16 led1_blink_off; 5097f183886cSMichael Chan u8 led1_group_id; 5098f183886cSMichael Chan u8 rsvd1; 5099f183886cSMichael Chan u8 led2_id; 5100f183886cSMichael Chan u8 led2_state; 5101f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED2_STATE_DEFAULT 0x0UL 5102f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED2_STATE_OFF 0x1UL 5103f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED2_STATE_ON 0x2UL 5104f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED2_STATE_BLINK 0x3UL 5105f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED2_STATE_BLINKALT 0x4UL 5106894aa69aSMichael Chan #define PORT_LED_CFG_REQ_LED2_STATE_LAST PORT_LED_CFG_REQ_LED2_STATE_BLINKALT 5107f183886cSMichael Chan u8 led2_color; 5108f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED2_COLOR_DEFAULT 0x0UL 5109f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED2_COLOR_AMBER 0x1UL 5110f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED2_COLOR_GREEN 0x2UL 5111f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED2_COLOR_GREENAMBER 0x3UL 5112894aa69aSMichael Chan #define PORT_LED_CFG_REQ_LED2_COLOR_LAST PORT_LED_CFG_REQ_LED2_COLOR_GREENAMBER 5113f183886cSMichael Chan u8 unused_2; 5114f183886cSMichael Chan __le16 led2_blink_on; 5115f183886cSMichael Chan __le16 led2_blink_off; 5116f183886cSMichael Chan u8 led2_group_id; 5117f183886cSMichael Chan u8 rsvd2; 5118f183886cSMichael Chan u8 led3_id; 5119f183886cSMichael Chan u8 led3_state; 5120f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED3_STATE_DEFAULT 0x0UL 5121f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED3_STATE_OFF 0x1UL 5122f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED3_STATE_ON 0x2UL 5123f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED3_STATE_BLINK 0x3UL 5124f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED3_STATE_BLINKALT 0x4UL 5125894aa69aSMichael Chan #define PORT_LED_CFG_REQ_LED3_STATE_LAST PORT_LED_CFG_REQ_LED3_STATE_BLINKALT 5126f183886cSMichael Chan u8 led3_color; 5127f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED3_COLOR_DEFAULT 0x0UL 5128f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED3_COLOR_AMBER 0x1UL 5129f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED3_COLOR_GREEN 0x2UL 5130f183886cSMichael Chan #define PORT_LED_CFG_REQ_LED3_COLOR_GREENAMBER 0x3UL 5131894aa69aSMichael Chan #define PORT_LED_CFG_REQ_LED3_COLOR_LAST PORT_LED_CFG_REQ_LED3_COLOR_GREENAMBER 5132f183886cSMichael Chan u8 unused_3; 5133f183886cSMichael Chan __le16 led3_blink_on; 5134f183886cSMichael Chan __le16 led3_blink_off; 5135f183886cSMichael Chan u8 led3_group_id; 5136f183886cSMichael Chan u8 rsvd3; 5137f183886cSMichael Chan }; 5138f183886cSMichael Chan 5139894aa69aSMichael Chan /* hwrm_port_led_cfg_output (size:128b/16B) */ 5140f183886cSMichael Chan struct hwrm_port_led_cfg_output { 5141f183886cSMichael Chan __le16 error_code; 5142f183886cSMichael Chan __le16 req_type; 5143f183886cSMichael Chan __le16 seq_id; 5144f183886cSMichael Chan __le16 resp_len; 5145894aa69aSMichael Chan u8 unused_0[7]; 5146f183886cSMichael Chan u8 valid; 5147f183886cSMichael Chan }; 5148f183886cSMichael Chan 5149894aa69aSMichael Chan /* hwrm_port_led_qcfg_input (size:192b/24B) */ 5150894aa69aSMichael Chan struct hwrm_port_led_qcfg_input { 5151894aa69aSMichael Chan __le16 req_type; 5152894aa69aSMichael Chan __le16 cmpl_ring; 5153894aa69aSMichael Chan __le16 seq_id; 5154894aa69aSMichael Chan __le16 target_id; 5155894aa69aSMichael Chan __le64 resp_addr; 5156894aa69aSMichael Chan __le16 port_id; 5157894aa69aSMichael Chan u8 unused_0[6]; 5158894aa69aSMichael Chan }; 5159894aa69aSMichael Chan 5160894aa69aSMichael Chan /* hwrm_port_led_qcfg_output (size:448b/56B) */ 5161894aa69aSMichael Chan struct hwrm_port_led_qcfg_output { 5162894aa69aSMichael Chan __le16 error_code; 5163894aa69aSMichael Chan __le16 req_type; 5164894aa69aSMichael Chan __le16 seq_id; 5165894aa69aSMichael Chan __le16 resp_len; 5166894aa69aSMichael Chan u8 num_leds; 5167894aa69aSMichael Chan u8 led0_id; 5168894aa69aSMichael Chan u8 led0_type; 5169894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED0_TYPE_SPEED 0x0UL 5170894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED0_TYPE_ACTIVITY 0x1UL 5171894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED0_TYPE_INVALID 0xffUL 5172894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED0_TYPE_LAST PORT_LED_QCFG_RESP_LED0_TYPE_INVALID 5173894aa69aSMichael Chan u8 led0_state; 5174894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED0_STATE_DEFAULT 0x0UL 5175894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED0_STATE_OFF 0x1UL 5176894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED0_STATE_ON 0x2UL 5177894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED0_STATE_BLINK 0x3UL 5178894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED0_STATE_BLINKALT 0x4UL 5179894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED0_STATE_LAST PORT_LED_QCFG_RESP_LED0_STATE_BLINKALT 5180894aa69aSMichael Chan u8 led0_color; 5181894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED0_COLOR_DEFAULT 0x0UL 5182894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED0_COLOR_AMBER 0x1UL 5183894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED0_COLOR_GREEN 0x2UL 5184894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED0_COLOR_GREENAMBER 0x3UL 5185894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED0_COLOR_LAST PORT_LED_QCFG_RESP_LED0_COLOR_GREENAMBER 5186894aa69aSMichael Chan u8 unused_0; 5187894aa69aSMichael Chan __le16 led0_blink_on; 5188894aa69aSMichael Chan __le16 led0_blink_off; 5189894aa69aSMichael Chan u8 led0_group_id; 5190894aa69aSMichael Chan u8 led1_id; 5191894aa69aSMichael Chan u8 led1_type; 5192894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED1_TYPE_SPEED 0x0UL 5193894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED1_TYPE_ACTIVITY 0x1UL 5194894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED1_TYPE_INVALID 0xffUL 5195894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED1_TYPE_LAST PORT_LED_QCFG_RESP_LED1_TYPE_INVALID 5196894aa69aSMichael Chan u8 led1_state; 5197894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED1_STATE_DEFAULT 0x0UL 5198894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED1_STATE_OFF 0x1UL 5199894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED1_STATE_ON 0x2UL 5200894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED1_STATE_BLINK 0x3UL 5201894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED1_STATE_BLINKALT 0x4UL 5202894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED1_STATE_LAST PORT_LED_QCFG_RESP_LED1_STATE_BLINKALT 5203894aa69aSMichael Chan u8 led1_color; 5204894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED1_COLOR_DEFAULT 0x0UL 5205894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED1_COLOR_AMBER 0x1UL 5206894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED1_COLOR_GREEN 0x2UL 5207894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED1_COLOR_GREENAMBER 0x3UL 5208894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED1_COLOR_LAST PORT_LED_QCFG_RESP_LED1_COLOR_GREENAMBER 5209894aa69aSMichael Chan u8 unused_1; 5210894aa69aSMichael Chan __le16 led1_blink_on; 5211894aa69aSMichael Chan __le16 led1_blink_off; 5212894aa69aSMichael Chan u8 led1_group_id; 5213894aa69aSMichael Chan u8 led2_id; 5214894aa69aSMichael Chan u8 led2_type; 5215894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED2_TYPE_SPEED 0x0UL 5216894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED2_TYPE_ACTIVITY 0x1UL 5217894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED2_TYPE_INVALID 0xffUL 5218894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED2_TYPE_LAST PORT_LED_QCFG_RESP_LED2_TYPE_INVALID 5219894aa69aSMichael Chan u8 led2_state; 5220894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED2_STATE_DEFAULT 0x0UL 5221894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED2_STATE_OFF 0x1UL 5222894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED2_STATE_ON 0x2UL 5223894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED2_STATE_BLINK 0x3UL 5224894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED2_STATE_BLINKALT 0x4UL 5225894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED2_STATE_LAST PORT_LED_QCFG_RESP_LED2_STATE_BLINKALT 5226894aa69aSMichael Chan u8 led2_color; 5227894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED2_COLOR_DEFAULT 0x0UL 5228894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED2_COLOR_AMBER 0x1UL 5229894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED2_COLOR_GREEN 0x2UL 5230894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED2_COLOR_GREENAMBER 0x3UL 5231894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED2_COLOR_LAST PORT_LED_QCFG_RESP_LED2_COLOR_GREENAMBER 5232894aa69aSMichael Chan u8 unused_2; 5233894aa69aSMichael Chan __le16 led2_blink_on; 5234894aa69aSMichael Chan __le16 led2_blink_off; 5235894aa69aSMichael Chan u8 led2_group_id; 5236894aa69aSMichael Chan u8 led3_id; 5237894aa69aSMichael Chan u8 led3_type; 5238894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED3_TYPE_SPEED 0x0UL 5239894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED3_TYPE_ACTIVITY 0x1UL 5240894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED3_TYPE_INVALID 0xffUL 5241894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED3_TYPE_LAST PORT_LED_QCFG_RESP_LED3_TYPE_INVALID 5242894aa69aSMichael Chan u8 led3_state; 5243894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED3_STATE_DEFAULT 0x0UL 5244894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED3_STATE_OFF 0x1UL 5245894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED3_STATE_ON 0x2UL 5246894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED3_STATE_BLINK 0x3UL 5247894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED3_STATE_BLINKALT 0x4UL 5248894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED3_STATE_LAST PORT_LED_QCFG_RESP_LED3_STATE_BLINKALT 5249894aa69aSMichael Chan u8 led3_color; 5250894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED3_COLOR_DEFAULT 0x0UL 5251894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED3_COLOR_AMBER 0x1UL 5252894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED3_COLOR_GREEN 0x2UL 5253894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED3_COLOR_GREENAMBER 0x3UL 5254894aa69aSMichael Chan #define PORT_LED_QCFG_RESP_LED3_COLOR_LAST PORT_LED_QCFG_RESP_LED3_COLOR_GREENAMBER 5255894aa69aSMichael Chan u8 unused_3; 5256894aa69aSMichael Chan __le16 led3_blink_on; 5257894aa69aSMichael Chan __le16 led3_blink_off; 5258894aa69aSMichael Chan u8 led3_group_id; 5259894aa69aSMichael Chan u8 unused_4[6]; 5260894aa69aSMichael Chan u8 valid; 5261894aa69aSMichael Chan }; 5262894aa69aSMichael Chan 5263894aa69aSMichael Chan /* hwrm_port_led_qcaps_input (size:192b/24B) */ 5264f183886cSMichael Chan struct hwrm_port_led_qcaps_input { 5265f183886cSMichael Chan __le16 req_type; 5266f183886cSMichael Chan __le16 cmpl_ring; 5267f183886cSMichael Chan __le16 seq_id; 5268f183886cSMichael Chan __le16 target_id; 5269f183886cSMichael Chan __le64 resp_addr; 5270f183886cSMichael Chan __le16 port_id; 5271894aa69aSMichael Chan u8 unused_0[6]; 5272f183886cSMichael Chan }; 5273f183886cSMichael Chan 5274894aa69aSMichael Chan /* hwrm_port_led_qcaps_output (size:384b/48B) */ 5275f183886cSMichael Chan struct hwrm_port_led_qcaps_output { 5276f183886cSMichael Chan __le16 error_code; 5277f183886cSMichael Chan __le16 req_type; 5278f183886cSMichael Chan __le16 seq_id; 5279f183886cSMichael Chan __le16 resp_len; 5280f183886cSMichael Chan u8 num_leds; 5281894aa69aSMichael Chan u8 unused[3]; 5282f183886cSMichael Chan u8 led0_id; 5283f183886cSMichael Chan u8 led0_type; 5284f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED0_TYPE_SPEED 0x0UL 5285f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED0_TYPE_ACTIVITY 0x1UL 5286f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED0_TYPE_INVALID 0xffUL 5287894aa69aSMichael Chan #define PORT_LED_QCAPS_RESP_LED0_TYPE_LAST PORT_LED_QCAPS_RESP_LED0_TYPE_INVALID 5288f183886cSMichael Chan u8 led0_group_id; 5289894aa69aSMichael Chan u8 unused_0; 5290f183886cSMichael Chan __le16 led0_state_caps; 5291f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_ENABLED 0x1UL 5292f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_OFF_SUPPORTED 0x2UL 5293f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_ON_SUPPORTED 0x4UL 5294f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_BLINK_SUPPORTED 0x8UL 5295f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_BLINK_ALT_SUPPORTED 0x10UL 5296f183886cSMichael Chan __le16 led0_color_caps; 5297f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED0_COLOR_CAPS_RSVD 0x1UL 5298f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED0_COLOR_CAPS_AMBER_SUPPORTED 0x2UL 5299f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED0_COLOR_CAPS_GREEN_SUPPORTED 0x4UL 5300f183886cSMichael Chan u8 led1_id; 5301f183886cSMichael Chan u8 led1_type; 5302f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED1_TYPE_SPEED 0x0UL 5303f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED1_TYPE_ACTIVITY 0x1UL 5304f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED1_TYPE_INVALID 0xffUL 5305894aa69aSMichael Chan #define PORT_LED_QCAPS_RESP_LED1_TYPE_LAST PORT_LED_QCAPS_RESP_LED1_TYPE_INVALID 5306f183886cSMichael Chan u8 led1_group_id; 5307894aa69aSMichael Chan u8 unused_1; 5308f183886cSMichael Chan __le16 led1_state_caps; 5309f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_ENABLED 0x1UL 5310f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_OFF_SUPPORTED 0x2UL 5311f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_ON_SUPPORTED 0x4UL 5312f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_BLINK_SUPPORTED 0x8UL 5313f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_BLINK_ALT_SUPPORTED 0x10UL 5314f183886cSMichael Chan __le16 led1_color_caps; 5315f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED1_COLOR_CAPS_RSVD 0x1UL 5316f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED1_COLOR_CAPS_AMBER_SUPPORTED 0x2UL 5317f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED1_COLOR_CAPS_GREEN_SUPPORTED 0x4UL 5318f183886cSMichael Chan u8 led2_id; 5319f183886cSMichael Chan u8 led2_type; 5320f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED2_TYPE_SPEED 0x0UL 5321f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED2_TYPE_ACTIVITY 0x1UL 5322f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED2_TYPE_INVALID 0xffUL 5323894aa69aSMichael Chan #define PORT_LED_QCAPS_RESP_LED2_TYPE_LAST PORT_LED_QCAPS_RESP_LED2_TYPE_INVALID 5324f183886cSMichael Chan u8 led2_group_id; 5325894aa69aSMichael Chan u8 unused_2; 5326f183886cSMichael Chan __le16 led2_state_caps; 5327f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_ENABLED 0x1UL 5328f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_OFF_SUPPORTED 0x2UL 5329f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_ON_SUPPORTED 0x4UL 5330f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_BLINK_SUPPORTED 0x8UL 5331f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_BLINK_ALT_SUPPORTED 0x10UL 5332f183886cSMichael Chan __le16 led2_color_caps; 5333f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED2_COLOR_CAPS_RSVD 0x1UL 5334f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED2_COLOR_CAPS_AMBER_SUPPORTED 0x2UL 5335f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED2_COLOR_CAPS_GREEN_SUPPORTED 0x4UL 5336f183886cSMichael Chan u8 led3_id; 5337f183886cSMichael Chan u8 led3_type; 5338f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED3_TYPE_SPEED 0x0UL 5339f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED3_TYPE_ACTIVITY 0x1UL 5340f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED3_TYPE_INVALID 0xffUL 5341894aa69aSMichael Chan #define PORT_LED_QCAPS_RESP_LED3_TYPE_LAST PORT_LED_QCAPS_RESP_LED3_TYPE_INVALID 5342f183886cSMichael Chan u8 led3_group_id; 5343894aa69aSMichael Chan u8 unused_3; 5344f183886cSMichael Chan __le16 led3_state_caps; 5345f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_ENABLED 0x1UL 5346f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_OFF_SUPPORTED 0x2UL 5347f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_ON_SUPPORTED 0x4UL 5348f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_BLINK_SUPPORTED 0x8UL 5349f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_BLINK_ALT_SUPPORTED 0x10UL 5350f183886cSMichael Chan __le16 led3_color_caps; 5351f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED3_COLOR_CAPS_RSVD 0x1UL 5352f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED3_COLOR_CAPS_AMBER_SUPPORTED 0x2UL 5353f183886cSMichael Chan #define PORT_LED_QCAPS_RESP_LED3_COLOR_CAPS_GREEN_SUPPORTED 0x4UL 5354894aa69aSMichael Chan u8 unused_4[3]; 5355f183886cSMichael Chan u8 valid; 5356f183886cSMichael Chan }; 5357f183886cSMichael Chan 5358894aa69aSMichael Chan /* hwrm_queue_qportcfg_input (size:192b/24B) */ 5359c0c050c5SMichael Chan struct hwrm_queue_qportcfg_input { 5360c0c050c5SMichael Chan __le16 req_type; 5361c0c050c5SMichael Chan __le16 cmpl_ring; 5362c0c050c5SMichael Chan __le16 seq_id; 5363c0c050c5SMichael Chan __le16 target_id; 5364c0c050c5SMichael Chan __le64 resp_addr; 5365c0c050c5SMichael Chan __le32 flags; 5366c0c050c5SMichael Chan #define QUEUE_QPORTCFG_REQ_FLAGS_PATH 0x1UL 5367441cabbbSMichael Chan #define QUEUE_QPORTCFG_REQ_FLAGS_PATH_TX 0x0UL 5368441cabbbSMichael Chan #define QUEUE_QPORTCFG_REQ_FLAGS_PATH_RX 0x1UL 536911f15ed3SMichael Chan #define QUEUE_QPORTCFG_REQ_FLAGS_PATH_LAST QUEUE_QPORTCFG_REQ_FLAGS_PATH_RX 5370c0c050c5SMichael Chan __le16 port_id; 5371d4f52de0SMichael Chan u8 drv_qmap_cap; 5372d4f52de0SMichael Chan #define QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_DISABLED 0x0UL 5373d4f52de0SMichael Chan #define QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_ENABLED 0x1UL 5374d4f52de0SMichael Chan #define QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_LAST QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_ENABLED 5375d4f52de0SMichael Chan u8 unused_0; 5376c0c050c5SMichael Chan }; 5377c0c050c5SMichael Chan 5378bfc6e5fbSMichael Chan /* hwrm_queue_qportcfg_output (size:1344b/168B) */ 5379c0c050c5SMichael Chan struct hwrm_queue_qportcfg_output { 5380c0c050c5SMichael Chan __le16 error_code; 5381c0c050c5SMichael Chan __le16 req_type; 5382c0c050c5SMichael Chan __le16 seq_id; 5383c0c050c5SMichael Chan __le16 resp_len; 5384c0c050c5SMichael Chan u8 max_configurable_queues; 5385c0c050c5SMichael Chan u8 max_configurable_lossless_queues; 5386c0c050c5SMichael Chan u8 queue_cfg_allowed; 5387441cabbbSMichael Chan u8 queue_cfg_info; 5388441cabbbSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_CFG_INFO_ASYM_CFG 0x1UL 538978eeadb8SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_CFG_INFO_USE_PROFILE_TYPE 0x2UL 5390c0c050c5SMichael Chan u8 queue_pfcenable_cfg_allowed; 5391c0c050c5SMichael Chan u8 queue_pri2cos_cfg_allowed; 5392c0c050c5SMichael Chan u8 queue_cos2bw_cfg_allowed; 5393c0c050c5SMichael Chan u8 queue_id0; 5394c0c050c5SMichael Chan u8 queue_id0_service_profile; 5395441cabbbSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSY 0x0UL 53966fc92c33SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS 0x1UL 5397d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 5398d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 5399d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 5400441cabbbSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_UNKNOWN 0xffUL 5401894aa69aSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_UNKNOWN 5402c0c050c5SMichael Chan u8 queue_id1; 5403c0c050c5SMichael Chan u8 queue_id1_service_profile; 5404441cabbbSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSY 0x0UL 54056fc92c33SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSLESS 0x1UL 5406d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 5407d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 5408d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 5409441cabbbSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_UNKNOWN 0xffUL 5410894aa69aSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_UNKNOWN 5411c0c050c5SMichael Chan u8 queue_id2; 5412c0c050c5SMichael Chan u8 queue_id2_service_profile; 5413441cabbbSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSY 0x0UL 54146fc92c33SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSLESS 0x1UL 5415d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 5416d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 5417d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 5418441cabbbSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_UNKNOWN 0xffUL 5419894aa69aSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_UNKNOWN 5420c0c050c5SMichael Chan u8 queue_id3; 5421c0c050c5SMichael Chan u8 queue_id3_service_profile; 5422441cabbbSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSY 0x0UL 54236fc92c33SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSLESS 0x1UL 5424d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 5425d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 5426d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 5427441cabbbSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_UNKNOWN 0xffUL 5428894aa69aSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_UNKNOWN 5429c0c050c5SMichael Chan u8 queue_id4; 5430c0c050c5SMichael Chan u8 queue_id4_service_profile; 5431441cabbbSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSY 0x0UL 54326fc92c33SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSLESS 0x1UL 5433d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 5434d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 5435d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 5436441cabbbSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_UNKNOWN 0xffUL 5437894aa69aSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_UNKNOWN 5438c0c050c5SMichael Chan u8 queue_id5; 5439c0c050c5SMichael Chan u8 queue_id5_service_profile; 5440441cabbbSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSY 0x0UL 54416fc92c33SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSLESS 0x1UL 5442d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 5443d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 5444d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 5445441cabbbSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_UNKNOWN 0xffUL 5446894aa69aSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_UNKNOWN 5447c0c050c5SMichael Chan u8 queue_id6; 5448c0c050c5SMichael Chan u8 queue_id6_service_profile; 5449441cabbbSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSY 0x0UL 54506fc92c33SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSLESS 0x1UL 5451d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 5452d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 5453d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 5454441cabbbSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_UNKNOWN 0xffUL 5455894aa69aSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_UNKNOWN 5456c0c050c5SMichael Chan u8 queue_id7; 5457c0c050c5SMichael Chan u8 queue_id7_service_profile; 5458441cabbbSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSY 0x0UL 54596fc92c33SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSLESS 0x1UL 5460d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL 5461d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL 5462d4f52de0SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL 5463441cabbbSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_UNKNOWN 0xffUL 5464894aa69aSMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_UNKNOWN 546516db6323SMichael Chan u8 queue_id0_service_profile_type; 546616db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_TYPE_ROCE 0x1UL 546716db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_TYPE_NIC 0x2UL 546816db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_TYPE_CNP 0x4UL 5469bfc6e5fbSMichael Chan char qid0_name[16]; 5470bfc6e5fbSMichael Chan char qid1_name[16]; 5471bfc6e5fbSMichael Chan char qid2_name[16]; 5472bfc6e5fbSMichael Chan char qid3_name[16]; 5473bfc6e5fbSMichael Chan char qid4_name[16]; 5474bfc6e5fbSMichael Chan char qid5_name[16]; 5475bfc6e5fbSMichael Chan char qid6_name[16]; 5476bfc6e5fbSMichael Chan char qid7_name[16]; 547716db6323SMichael Chan u8 queue_id1_service_profile_type; 547816db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_TYPE_ROCE 0x1UL 547916db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_TYPE_NIC 0x2UL 548016db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_TYPE_CNP 0x4UL 548116db6323SMichael Chan u8 queue_id2_service_profile_type; 548216db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_TYPE_ROCE 0x1UL 548316db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_TYPE_NIC 0x2UL 548416db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_TYPE_CNP 0x4UL 548516db6323SMichael Chan u8 queue_id3_service_profile_type; 548616db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_TYPE_ROCE 0x1UL 548716db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_TYPE_NIC 0x2UL 548816db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_TYPE_CNP 0x4UL 548916db6323SMichael Chan u8 queue_id4_service_profile_type; 549016db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_TYPE_ROCE 0x1UL 549116db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_TYPE_NIC 0x2UL 549216db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_TYPE_CNP 0x4UL 549316db6323SMichael Chan u8 queue_id5_service_profile_type; 549416db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_TYPE_ROCE 0x1UL 549516db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_TYPE_NIC 0x2UL 549616db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_TYPE_CNP 0x4UL 549716db6323SMichael Chan u8 queue_id6_service_profile_type; 549816db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_TYPE_ROCE 0x1UL 549916db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_TYPE_NIC 0x2UL 550016db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_TYPE_CNP 0x4UL 550116db6323SMichael Chan u8 queue_id7_service_profile_type; 550216db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_TYPE_ROCE 0x1UL 550316db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_TYPE_NIC 0x2UL 550416db6323SMichael Chan #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_TYPE_CNP 0x4UL 5505bfc6e5fbSMichael Chan u8 valid; 5506bfc6e5fbSMichael Chan }; 5507bfc6e5fbSMichael Chan 5508bfc6e5fbSMichael Chan /* hwrm_queue_qcfg_input (size:192b/24B) */ 5509bfc6e5fbSMichael Chan struct hwrm_queue_qcfg_input { 5510bfc6e5fbSMichael Chan __le16 req_type; 5511bfc6e5fbSMichael Chan __le16 cmpl_ring; 5512bfc6e5fbSMichael Chan __le16 seq_id; 5513bfc6e5fbSMichael Chan __le16 target_id; 5514bfc6e5fbSMichael Chan __le64 resp_addr; 5515bfc6e5fbSMichael Chan __le32 flags; 5516bfc6e5fbSMichael Chan #define QUEUE_QCFG_REQ_FLAGS_PATH 0x1UL 5517bfc6e5fbSMichael Chan #define QUEUE_QCFG_REQ_FLAGS_PATH_TX 0x0UL 5518bfc6e5fbSMichael Chan #define QUEUE_QCFG_REQ_FLAGS_PATH_RX 0x1UL 5519bfc6e5fbSMichael Chan #define QUEUE_QCFG_REQ_FLAGS_PATH_LAST QUEUE_QCFG_REQ_FLAGS_PATH_RX 5520bfc6e5fbSMichael Chan __le32 queue_id; 5521bfc6e5fbSMichael Chan }; 5522bfc6e5fbSMichael Chan 5523bfc6e5fbSMichael Chan /* hwrm_queue_qcfg_output (size:128b/16B) */ 5524bfc6e5fbSMichael Chan struct hwrm_queue_qcfg_output { 5525bfc6e5fbSMichael Chan __le16 error_code; 5526bfc6e5fbSMichael Chan __le16 req_type; 5527bfc6e5fbSMichael Chan __le16 seq_id; 5528bfc6e5fbSMichael Chan __le16 resp_len; 5529bfc6e5fbSMichael Chan __le32 queue_len; 5530bfc6e5fbSMichael Chan u8 service_profile; 5531bfc6e5fbSMichael Chan #define QUEUE_QCFG_RESP_SERVICE_PROFILE_LOSSY 0x0UL 5532bfc6e5fbSMichael Chan #define QUEUE_QCFG_RESP_SERVICE_PROFILE_LOSSLESS 0x1UL 5533bfc6e5fbSMichael Chan #define QUEUE_QCFG_RESP_SERVICE_PROFILE_UNKNOWN 0xffUL 5534bfc6e5fbSMichael Chan #define QUEUE_QCFG_RESP_SERVICE_PROFILE_LAST QUEUE_QCFG_RESP_SERVICE_PROFILE_UNKNOWN 5535bfc6e5fbSMichael Chan u8 queue_cfg_info; 5536bfc6e5fbSMichael Chan #define QUEUE_QCFG_RESP_QUEUE_CFG_INFO_ASYM_CFG 0x1UL 5537bfc6e5fbSMichael Chan u8 unused_0; 5538c0c050c5SMichael Chan u8 valid; 5539c0c050c5SMichael Chan }; 5540c0c050c5SMichael Chan 5541894aa69aSMichael Chan /* hwrm_queue_cfg_input (size:320b/40B) */ 5542c0c050c5SMichael Chan struct hwrm_queue_cfg_input { 5543c0c050c5SMichael Chan __le16 req_type; 5544c0c050c5SMichael Chan __le16 cmpl_ring; 5545c0c050c5SMichael Chan __le16 seq_id; 5546c0c050c5SMichael Chan __le16 target_id; 5547c0c050c5SMichael Chan __le64 resp_addr; 5548c0c050c5SMichael Chan __le32 flags; 5549441cabbbSMichael Chan #define QUEUE_CFG_REQ_FLAGS_PATH_MASK 0x3UL 5550441cabbbSMichael Chan #define QUEUE_CFG_REQ_FLAGS_PATH_SFT 0 5551441cabbbSMichael Chan #define QUEUE_CFG_REQ_FLAGS_PATH_TX 0x0UL 5552441cabbbSMichael Chan #define QUEUE_CFG_REQ_FLAGS_PATH_RX 0x1UL 5553441cabbbSMichael Chan #define QUEUE_CFG_REQ_FLAGS_PATH_BIDIR 0x2UL 5554441cabbbSMichael Chan #define QUEUE_CFG_REQ_FLAGS_PATH_LAST QUEUE_CFG_REQ_FLAGS_PATH_BIDIR 5555c0c050c5SMichael Chan __le32 enables; 5556c0c050c5SMichael Chan #define QUEUE_CFG_REQ_ENABLES_DFLT_LEN 0x1UL 5557c0c050c5SMichael Chan #define QUEUE_CFG_REQ_ENABLES_SERVICE_PROFILE 0x2UL 5558c0c050c5SMichael Chan __le32 queue_id; 5559c0c050c5SMichael Chan __le32 dflt_len; 5560c0c050c5SMichael Chan u8 service_profile; 5561441cabbbSMichael Chan #define QUEUE_CFG_REQ_SERVICE_PROFILE_LOSSY 0x0UL 5562441cabbbSMichael Chan #define QUEUE_CFG_REQ_SERVICE_PROFILE_LOSSLESS 0x1UL 5563441cabbbSMichael Chan #define QUEUE_CFG_REQ_SERVICE_PROFILE_UNKNOWN 0xffUL 5564894aa69aSMichael Chan #define QUEUE_CFG_REQ_SERVICE_PROFILE_LAST QUEUE_CFG_REQ_SERVICE_PROFILE_UNKNOWN 5565c0c050c5SMichael Chan u8 unused_0[7]; 5566c0c050c5SMichael Chan }; 5567c0c050c5SMichael Chan 5568894aa69aSMichael Chan /* hwrm_queue_cfg_output (size:128b/16B) */ 5569c0c050c5SMichael Chan struct hwrm_queue_cfg_output { 5570c0c050c5SMichael Chan __le16 error_code; 5571c0c050c5SMichael Chan __le16 req_type; 5572c0c050c5SMichael Chan __le16 seq_id; 5573c0c050c5SMichael Chan __le16 resp_len; 5574894aa69aSMichael Chan u8 unused_0[7]; 5575c0c050c5SMichael Chan u8 valid; 5576c0c050c5SMichael Chan }; 5577c0c050c5SMichael Chan 5578894aa69aSMichael Chan /* hwrm_queue_pfcenable_qcfg_input (size:192b/24B) */ 557987c374deSMichael Chan struct hwrm_queue_pfcenable_qcfg_input { 558087c374deSMichael Chan __le16 req_type; 558187c374deSMichael Chan __le16 cmpl_ring; 558287c374deSMichael Chan __le16 seq_id; 558387c374deSMichael Chan __le16 target_id; 558487c374deSMichael Chan __le64 resp_addr; 558587c374deSMichael Chan __le16 port_id; 5586894aa69aSMichael Chan u8 unused_0[6]; 558787c374deSMichael Chan }; 558887c374deSMichael Chan 5589894aa69aSMichael Chan /* hwrm_queue_pfcenable_qcfg_output (size:128b/16B) */ 559087c374deSMichael Chan struct hwrm_queue_pfcenable_qcfg_output { 559187c374deSMichael Chan __le16 error_code; 559287c374deSMichael Chan __le16 req_type; 559387c374deSMichael Chan __le16 seq_id; 559487c374deSMichael Chan __le16 resp_len; 559587c374deSMichael Chan __le32 flags; 559687c374deSMichael Chan #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI0_PFC_ENABLED 0x1UL 559787c374deSMichael Chan #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI1_PFC_ENABLED 0x2UL 559887c374deSMichael Chan #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI2_PFC_ENABLED 0x4UL 559987c374deSMichael Chan #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI3_PFC_ENABLED 0x8UL 560087c374deSMichael Chan #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI4_PFC_ENABLED 0x10UL 560187c374deSMichael Chan #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI5_PFC_ENABLED 0x20UL 560287c374deSMichael Chan #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI6_PFC_ENABLED 0x40UL 560387c374deSMichael Chan #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI7_PFC_ENABLED 0x80UL 5604460c2577SMichael Chan #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI0_PFC_WATCHDOG_ENABLED 0x100UL 5605460c2577SMichael Chan #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI1_PFC_WATCHDOG_ENABLED 0x200UL 5606460c2577SMichael Chan #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI2_PFC_WATCHDOG_ENABLED 0x400UL 5607460c2577SMichael Chan #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI3_PFC_WATCHDOG_ENABLED 0x800UL 5608460c2577SMichael Chan #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI4_PFC_WATCHDOG_ENABLED 0x1000UL 5609460c2577SMichael Chan #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI5_PFC_WATCHDOG_ENABLED 0x2000UL 5610460c2577SMichael Chan #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI6_PFC_WATCHDOG_ENABLED 0x4000UL 5611460c2577SMichael Chan #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI7_PFC_WATCHDOG_ENABLED 0x8000UL 5612894aa69aSMichael Chan u8 unused_0[3]; 561387c374deSMichael Chan u8 valid; 561487c374deSMichael Chan }; 561587c374deSMichael Chan 5616894aa69aSMichael Chan /* hwrm_queue_pfcenable_cfg_input (size:192b/24B) */ 5617c0c050c5SMichael Chan struct hwrm_queue_pfcenable_cfg_input { 5618c0c050c5SMichael Chan __le16 req_type; 5619c0c050c5SMichael Chan __le16 cmpl_ring; 5620c0c050c5SMichael Chan __le16 seq_id; 5621c0c050c5SMichael Chan __le16 target_id; 5622c0c050c5SMichael Chan __le64 resp_addr; 5623c193554eSMichael Chan __le32 flags; 5624c193554eSMichael Chan #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI0_PFC_ENABLED 0x1UL 5625c193554eSMichael Chan #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI1_PFC_ENABLED 0x2UL 5626c193554eSMichael Chan #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI2_PFC_ENABLED 0x4UL 5627c193554eSMichael Chan #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI3_PFC_ENABLED 0x8UL 5628c193554eSMichael Chan #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI4_PFC_ENABLED 0x10UL 5629c193554eSMichael Chan #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI5_PFC_ENABLED 0x20UL 5630c193554eSMichael Chan #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI6_PFC_ENABLED 0x40UL 5631c193554eSMichael Chan #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI7_PFC_ENABLED 0x80UL 5632460c2577SMichael Chan #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI0_PFC_WATCHDOG_ENABLED 0x100UL 5633460c2577SMichael Chan #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI1_PFC_WATCHDOG_ENABLED 0x200UL 5634460c2577SMichael Chan #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI2_PFC_WATCHDOG_ENABLED 0x400UL 5635460c2577SMichael Chan #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI3_PFC_WATCHDOG_ENABLED 0x800UL 5636460c2577SMichael Chan #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI4_PFC_WATCHDOG_ENABLED 0x1000UL 5637460c2577SMichael Chan #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI5_PFC_WATCHDOG_ENABLED 0x2000UL 5638460c2577SMichael Chan #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI6_PFC_WATCHDOG_ENABLED 0x4000UL 5639460c2577SMichael Chan #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI7_PFC_WATCHDOG_ENABLED 0x8000UL 5640c0c050c5SMichael Chan __le16 port_id; 5641894aa69aSMichael Chan u8 unused_0[2]; 5642c0c050c5SMichael Chan }; 5643c0c050c5SMichael Chan 5644894aa69aSMichael Chan /* hwrm_queue_pfcenable_cfg_output (size:128b/16B) */ 5645c0c050c5SMichael Chan struct hwrm_queue_pfcenable_cfg_output { 5646c0c050c5SMichael Chan __le16 error_code; 5647c0c050c5SMichael Chan __le16 req_type; 5648c0c050c5SMichael Chan __le16 seq_id; 5649c0c050c5SMichael Chan __le16 resp_len; 5650894aa69aSMichael Chan u8 unused_0[7]; 5651c0c050c5SMichael Chan u8 valid; 5652c0c050c5SMichael Chan }; 5653c0c050c5SMichael Chan 5654894aa69aSMichael Chan /* hwrm_queue_pri2cos_qcfg_input (size:192b/24B) */ 565587c374deSMichael Chan struct hwrm_queue_pri2cos_qcfg_input { 565687c374deSMichael Chan __le16 req_type; 565787c374deSMichael Chan __le16 cmpl_ring; 565887c374deSMichael Chan __le16 seq_id; 565987c374deSMichael Chan __le16 target_id; 566087c374deSMichael Chan __le64 resp_addr; 566187c374deSMichael Chan __le32 flags; 566287c374deSMichael Chan #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH 0x1UL 5663894aa69aSMichael Chan #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_TX 0x0UL 5664894aa69aSMichael Chan #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_RX 0x1UL 566587c374deSMichael Chan #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_LAST QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_RX 566687c374deSMichael Chan #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_IVLAN 0x2UL 566787c374deSMichael Chan u8 port_id; 566887c374deSMichael Chan u8 unused_0[3]; 566987c374deSMichael Chan }; 567087c374deSMichael Chan 5671894aa69aSMichael Chan /* hwrm_queue_pri2cos_qcfg_output (size:192b/24B) */ 567287c374deSMichael Chan struct hwrm_queue_pri2cos_qcfg_output { 567387c374deSMichael Chan __le16 error_code; 567487c374deSMichael Chan __le16 req_type; 567587c374deSMichael Chan __le16 seq_id; 567687c374deSMichael Chan __le16 resp_len; 567787c374deSMichael Chan u8 pri0_cos_queue_id; 567887c374deSMichael Chan u8 pri1_cos_queue_id; 567987c374deSMichael Chan u8 pri2_cos_queue_id; 568087c374deSMichael Chan u8 pri3_cos_queue_id; 568187c374deSMichael Chan u8 pri4_cos_queue_id; 568287c374deSMichael Chan u8 pri5_cos_queue_id; 568387c374deSMichael Chan u8 pri6_cos_queue_id; 568487c374deSMichael Chan u8 pri7_cos_queue_id; 568587c374deSMichael Chan u8 queue_cfg_info; 568687c374deSMichael Chan #define QUEUE_PRI2COS_QCFG_RESP_QUEUE_CFG_INFO_ASYM_CFG 0x1UL 5687894aa69aSMichael Chan u8 unused_0[6]; 568887c374deSMichael Chan u8 valid; 568987c374deSMichael Chan }; 569087c374deSMichael Chan 5691894aa69aSMichael Chan /* hwrm_queue_pri2cos_cfg_input (size:320b/40B) */ 5692c0c050c5SMichael Chan struct hwrm_queue_pri2cos_cfg_input { 5693c0c050c5SMichael Chan __le16 req_type; 5694c0c050c5SMichael Chan __le16 cmpl_ring; 5695c0c050c5SMichael Chan __le16 seq_id; 5696c0c050c5SMichael Chan __le16 target_id; 5697c0c050c5SMichael Chan __le64 resp_addr; 5698c0c050c5SMichael Chan __le32 flags; 5699441cabbbSMichael Chan #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_MASK 0x3UL 5700441cabbbSMichael Chan #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_SFT 0 5701894aa69aSMichael Chan #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_TX 0x0UL 5702894aa69aSMichael Chan #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_RX 0x1UL 5703894aa69aSMichael Chan #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_BIDIR 0x2UL 5704441cabbbSMichael Chan #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_LAST QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_BIDIR 5705441cabbbSMichael Chan #define QUEUE_PRI2COS_CFG_REQ_FLAGS_IVLAN 0x4UL 5706c0c050c5SMichael Chan __le32 enables; 5707441cabbbSMichael Chan #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI0_COS_QUEUE_ID 0x1UL 5708441cabbbSMichael Chan #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI1_COS_QUEUE_ID 0x2UL 5709441cabbbSMichael Chan #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI2_COS_QUEUE_ID 0x4UL 5710441cabbbSMichael Chan #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI3_COS_QUEUE_ID 0x8UL 5711441cabbbSMichael Chan #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI4_COS_QUEUE_ID 0x10UL 5712441cabbbSMichael Chan #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI5_COS_QUEUE_ID 0x20UL 5713441cabbbSMichael Chan #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI6_COS_QUEUE_ID 0x40UL 5714441cabbbSMichael Chan #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI7_COS_QUEUE_ID 0x80UL 5715c0c050c5SMichael Chan u8 port_id; 5716c193554eSMichael Chan u8 pri0_cos_queue_id; 5717c193554eSMichael Chan u8 pri1_cos_queue_id; 5718c193554eSMichael Chan u8 pri2_cos_queue_id; 5719c193554eSMichael Chan u8 pri3_cos_queue_id; 5720c193554eSMichael Chan u8 pri4_cos_queue_id; 5721c193554eSMichael Chan u8 pri5_cos_queue_id; 5722c193554eSMichael Chan u8 pri6_cos_queue_id; 5723c193554eSMichael Chan u8 pri7_cos_queue_id; 5724c0c050c5SMichael Chan u8 unused_0[7]; 5725c0c050c5SMichael Chan }; 5726c0c050c5SMichael Chan 5727894aa69aSMichael Chan /* hwrm_queue_pri2cos_cfg_output (size:128b/16B) */ 5728c0c050c5SMichael Chan struct hwrm_queue_pri2cos_cfg_output { 5729c0c050c5SMichael Chan __le16 error_code; 5730c0c050c5SMichael Chan __le16 req_type; 5731c0c050c5SMichael Chan __le16 seq_id; 5732c0c050c5SMichael Chan __le16 resp_len; 5733894aa69aSMichael Chan u8 unused_0[7]; 5734c0c050c5SMichael Chan u8 valid; 5735c0c050c5SMichael Chan }; 5736c0c050c5SMichael Chan 5737894aa69aSMichael Chan /* hwrm_queue_cos2bw_qcfg_input (size:192b/24B) */ 573887c374deSMichael Chan struct hwrm_queue_cos2bw_qcfg_input { 573987c374deSMichael Chan __le16 req_type; 574087c374deSMichael Chan __le16 cmpl_ring; 574187c374deSMichael Chan __le16 seq_id; 574287c374deSMichael Chan __le16 target_id; 574387c374deSMichael Chan __le64 resp_addr; 574487c374deSMichael Chan __le16 port_id; 5745894aa69aSMichael Chan u8 unused_0[6]; 574687c374deSMichael Chan }; 574787c374deSMichael Chan 5748894aa69aSMichael Chan /* hwrm_queue_cos2bw_qcfg_output (size:896b/112B) */ 574987c374deSMichael Chan struct hwrm_queue_cos2bw_qcfg_output { 575087c374deSMichael Chan __le16 error_code; 575187c374deSMichael Chan __le16 req_type; 575287c374deSMichael Chan __le16 seq_id; 575387c374deSMichael Chan __le16 resp_len; 575487c374deSMichael Chan u8 queue_id0; 575587c374deSMichael Chan u8 unused_0; 575687c374deSMichael Chan __le16 unused_1; 575787c374deSMichael Chan __le32 queue_id0_min_bw; 575887c374deSMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_MASK 0xfffffffUL 575987c374deSMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_SFT 0 5760bac9a7e0SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE 0x10000000UL 5761bac9a7e0SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_BITS (0x0UL << 28) 5762bac9a7e0SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_BYTES (0x1UL << 28) 5763bac9a7e0SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_BYTES 576487c374deSMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 576587c374deSMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_SFT 29 5766bac9a7e0SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 5767bac9a7e0SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 5768bac9a7e0SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 5769bac9a7e0SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 577087c374deSMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 577187c374deSMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 577287c374deSMichael Chan #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 577387c374deSMichael Chan __le32 queue_id0_max_bw; 577487c374deSMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_MASK 0xfffffffUL 577587c374deSMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_SFT 0 5776bac9a7e0SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE 0x10000000UL 5777bac9a7e0SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_BITS (0x0UL << 28) 5778bac9a7e0SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_BYTES (0x1UL << 28) 5779bac9a7e0SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_BYTES 578087c374deSMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 578187c374deSMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_SFT 29 5782bac9a7e0SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 5783bac9a7e0SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 5784bac9a7e0SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 5785bac9a7e0SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 578687c374deSMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 578787c374deSMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 578887c374deSMichael Chan #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 578987c374deSMichael Chan u8 queue_id0_tsa_assign; 579087c374deSMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_SP 0x0UL 579187c374deSMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_ETS 0x1UL 579287c374deSMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_RESERVED_FIRST 0x2UL 579387c374deSMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_RESERVED_LAST 0xffUL 579487c374deSMichael Chan u8 queue_id0_pri_lvl; 579587c374deSMichael Chan u8 queue_id0_bw_weight; 5796ac1b8c97SMichael Chan struct { 5797ac1b8c97SMichael Chan u8 queue_id; 5798ac1b8c97SMichael Chan __le32 queue_id_min_bw; 5799ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_MASK 0xfffffffUL 5800ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_SFT 0 5801ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_SCALE 0x10000000UL 5802ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_SCALE_BITS (0x0UL << 28) 5803ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_SCALE_BYTES (0x1UL << 28) 5804ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_SCALE_BYTES 5805ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 5806ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_SFT 29 5807ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 5808ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 5809ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 5810ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 5811ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 5812ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 5813ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_INVALID 5814ac1b8c97SMichael Chan __le32 queue_id_max_bw; 5815ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_MASK 0xfffffffUL 5816ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_SFT 0 5817ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_SCALE 0x10000000UL 5818ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_SCALE_BITS (0x0UL << 28) 5819ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_SCALE_BYTES (0x1UL << 28) 5820ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_SCALE_BYTES 5821ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 5822ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_SFT 29 5823ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 5824ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 5825ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 5826ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 5827ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 5828ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 5829ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_INVALID 5830ac1b8c97SMichael Chan u8 queue_id_tsa_assign; 5831ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_TSA_ASSIGN_SP 0x0UL 5832ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_TSA_ASSIGN_ETS 0x1UL 5833ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_TSA_ASSIGN_RESERVED_FIRST 0x2UL 5834ac1b8c97SMichael Chan #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_TSA_ASSIGN_RESERVED_LAST 0xffUL 5835ac1b8c97SMichael Chan u8 queue_id_pri_lvl; 5836ac1b8c97SMichael Chan u8 queue_id_bw_weight; 5837ac1b8c97SMichael Chan } __packed cfg[7]; 5838894aa69aSMichael Chan u8 unused_2[4]; 583987c374deSMichael Chan u8 valid; 584087c374deSMichael Chan }; 584187c374deSMichael Chan 5842894aa69aSMichael Chan /* hwrm_queue_cos2bw_cfg_input (size:1024b/128B) */ 5843c0c050c5SMichael Chan struct hwrm_queue_cos2bw_cfg_input { 5844c0c050c5SMichael Chan __le16 req_type; 5845c0c050c5SMichael Chan __le16 cmpl_ring; 5846c0c050c5SMichael Chan __le16 seq_id; 5847c0c050c5SMichael Chan __le16 target_id; 5848c0c050c5SMichael Chan __le64 resp_addr; 5849c0c050c5SMichael Chan __le32 flags; 5850c0c050c5SMichael Chan __le32 enables; 5851c0c050c5SMichael Chan #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID0_VALID 0x1UL 5852c0c050c5SMichael Chan #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID1_VALID 0x2UL 5853c0c050c5SMichael Chan #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID2_VALID 0x4UL 5854c0c050c5SMichael Chan #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID3_VALID 0x8UL 5855c0c050c5SMichael Chan #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID4_VALID 0x10UL 5856c0c050c5SMichael Chan #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID5_VALID 0x20UL 5857c0c050c5SMichael Chan #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID6_VALID 0x40UL 5858c0c050c5SMichael Chan #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID7_VALID 0x80UL 5859c0c050c5SMichael Chan __le16 port_id; 5860c0c050c5SMichael Chan u8 queue_id0; 5861c0c050c5SMichael Chan u8 unused_0; 5862c0c050c5SMichael Chan __le32 queue_id0_min_bw; 5863441cabbbSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_MASK 0xfffffffUL 5864441cabbbSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_SFT 0 5865bac9a7e0SMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE 0x10000000UL 5866bac9a7e0SMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_BITS (0x0UL << 28) 5867bac9a7e0SMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_BYTES (0x1UL << 28) 5868bac9a7e0SMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_BYTES 5869441cabbbSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 5870441cabbbSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_SFT 29 5871bac9a7e0SMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 5872bac9a7e0SMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 5873bac9a7e0SMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 5874bac9a7e0SMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 5875441cabbbSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 5876441cabbbSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 5877441cabbbSMichael Chan #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 5878c0c050c5SMichael Chan __le32 queue_id0_max_bw; 5879441cabbbSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_MASK 0xfffffffUL 5880441cabbbSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_SFT 0 5881bac9a7e0SMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE 0x10000000UL 5882bac9a7e0SMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_BITS (0x0UL << 28) 5883bac9a7e0SMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_BYTES (0x1UL << 28) 5884bac9a7e0SMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_BYTES 5885441cabbbSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 5886441cabbbSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_SFT 29 5887bac9a7e0SMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 5888bac9a7e0SMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 5889bac9a7e0SMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 5890bac9a7e0SMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 5891441cabbbSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 5892441cabbbSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 5893441cabbbSMichael Chan #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 5894c0c050c5SMichael Chan u8 queue_id0_tsa_assign; 5895441cabbbSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_SP 0x0UL 5896441cabbbSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_ETS 0x1UL 5897441cabbbSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_RESERVED_FIRST 0x2UL 5898441cabbbSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_RESERVED_LAST 0xffUL 5899c0c050c5SMichael Chan u8 queue_id0_pri_lvl; 5900c0c050c5SMichael Chan u8 queue_id0_bw_weight; 5901*3d5ecadaSMichael Chan struct { 5902*3d5ecadaSMichael Chan u8 queue_id; 5903*3d5ecadaSMichael Chan __le32 queue_id_min_bw; 5904*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_MASK 0xfffffffUL 5905*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_SFT 0 5906*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_SCALE 0x10000000UL 5907*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_SCALE_BITS (0x0UL << 28) 5908*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_SCALE_BYTES (0x1UL << 28) 5909*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_SCALE_BYTES 5910*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 5911*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_SFT 29 5912*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 5913*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 5914*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 5915*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 5916*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 5917*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 5918*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_INVALID 5919*3d5ecadaSMichael Chan __le32 queue_id_max_bw; 5920*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_MASK 0xfffffffUL 5921*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_SFT 0 5922*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_SCALE 0x10000000UL 5923*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_SCALE_BITS (0x0UL << 28) 5924*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_SCALE_BYTES (0x1UL << 28) 5925*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_SCALE_BYTES 5926*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 5927*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_SFT 29 5928*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 5929*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 5930*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 5931*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 5932*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 5933*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 5934*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_INVALID 5935*3d5ecadaSMichael Chan u8 queue_id_tsa_assign; 5936*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_TSA_ASSIGN_SP 0x0UL 5937*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_TSA_ASSIGN_ETS 0x1UL 5938*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_TSA_ASSIGN_RESERVED_FIRST 0x2UL 5939*3d5ecadaSMichael Chan #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_TSA_ASSIGN_RESERVED_LAST 0xffUL 5940*3d5ecadaSMichael Chan u8 queue_id_pri_lvl; 5941*3d5ecadaSMichael Chan u8 queue_id_bw_weight; 5942*3d5ecadaSMichael Chan } __packed cfg[7]; 5943c0c050c5SMichael Chan u8 unused_1[5]; 5944c0c050c5SMichael Chan }; 5945c0c050c5SMichael Chan 5946894aa69aSMichael Chan /* hwrm_queue_cos2bw_cfg_output (size:128b/16B) */ 5947c0c050c5SMichael Chan struct hwrm_queue_cos2bw_cfg_output { 5948c0c050c5SMichael Chan __le16 error_code; 5949c0c050c5SMichael Chan __le16 req_type; 5950c0c050c5SMichael Chan __le16 seq_id; 5951c0c050c5SMichael Chan __le16 resp_len; 5952894aa69aSMichael Chan u8 unused_0[7]; 5953c0c050c5SMichael Chan u8 valid; 5954c0c050c5SMichael Chan }; 5955c0c050c5SMichael Chan 5956894aa69aSMichael Chan /* hwrm_queue_dscp_qcaps_input (size:192b/24B) */ 5957acb20054SMichael Chan struct hwrm_queue_dscp_qcaps_input { 5958acb20054SMichael Chan __le16 req_type; 5959acb20054SMichael Chan __le16 cmpl_ring; 5960acb20054SMichael Chan __le16 seq_id; 5961acb20054SMichael Chan __le16 target_id; 5962acb20054SMichael Chan __le64 resp_addr; 5963acb20054SMichael Chan u8 port_id; 5964acb20054SMichael Chan u8 unused_0[7]; 5965acb20054SMichael Chan }; 5966acb20054SMichael Chan 5967894aa69aSMichael Chan /* hwrm_queue_dscp_qcaps_output (size:128b/16B) */ 5968acb20054SMichael Chan struct hwrm_queue_dscp_qcaps_output { 5969acb20054SMichael Chan __le16 error_code; 5970acb20054SMichael Chan __le16 req_type; 5971acb20054SMichael Chan __le16 seq_id; 5972acb20054SMichael Chan __le16 resp_len; 5973acb20054SMichael Chan u8 num_dscp_bits; 5974acb20054SMichael Chan u8 unused_0; 5975acb20054SMichael Chan __le16 max_entries; 5976894aa69aSMichael Chan u8 unused_1[3]; 5977acb20054SMichael Chan u8 valid; 5978acb20054SMichael Chan }; 5979acb20054SMichael Chan 5980894aa69aSMichael Chan /* hwrm_queue_dscp2pri_qcfg_input (size:256b/32B) */ 5981acb20054SMichael Chan struct hwrm_queue_dscp2pri_qcfg_input { 5982acb20054SMichael Chan __le16 req_type; 5983acb20054SMichael Chan __le16 cmpl_ring; 5984acb20054SMichael Chan __le16 seq_id; 5985acb20054SMichael Chan __le16 target_id; 5986acb20054SMichael Chan __le64 resp_addr; 5987acb20054SMichael Chan __le64 dest_data_addr; 5988acb20054SMichael Chan u8 port_id; 5989acb20054SMichael Chan u8 unused_0; 5990acb20054SMichael Chan __le16 dest_data_buffer_size; 5991894aa69aSMichael Chan u8 unused_1[4]; 5992acb20054SMichael Chan }; 5993acb20054SMichael Chan 5994894aa69aSMichael Chan /* hwrm_queue_dscp2pri_qcfg_output (size:128b/16B) */ 5995acb20054SMichael Chan struct hwrm_queue_dscp2pri_qcfg_output { 5996acb20054SMichael Chan __le16 error_code; 5997acb20054SMichael Chan __le16 req_type; 5998acb20054SMichael Chan __le16 seq_id; 5999acb20054SMichael Chan __le16 resp_len; 6000acb20054SMichael Chan __le16 entry_cnt; 6001acb20054SMichael Chan u8 default_pri; 6002894aa69aSMichael Chan u8 unused_0[4]; 6003acb20054SMichael Chan u8 valid; 6004acb20054SMichael Chan }; 6005acb20054SMichael Chan 6006894aa69aSMichael Chan /* hwrm_queue_dscp2pri_cfg_input (size:320b/40B) */ 6007acb20054SMichael Chan struct hwrm_queue_dscp2pri_cfg_input { 6008acb20054SMichael Chan __le16 req_type; 6009acb20054SMichael Chan __le16 cmpl_ring; 6010acb20054SMichael Chan __le16 seq_id; 6011acb20054SMichael Chan __le16 target_id; 6012acb20054SMichael Chan __le64 resp_addr; 6013acb20054SMichael Chan __le64 src_data_addr; 6014acb20054SMichael Chan __le32 flags; 6015acb20054SMichael Chan #define QUEUE_DSCP2PRI_CFG_REQ_FLAGS_USE_HW_DEFAULT_PRI 0x1UL 6016acb20054SMichael Chan __le32 enables; 6017acb20054SMichael Chan #define QUEUE_DSCP2PRI_CFG_REQ_ENABLES_DEFAULT_PRI 0x1UL 6018acb20054SMichael Chan u8 port_id; 6019acb20054SMichael Chan u8 default_pri; 6020acb20054SMichael Chan __le16 entry_cnt; 6021894aa69aSMichael Chan u8 unused_0[4]; 6022acb20054SMichael Chan }; 6023acb20054SMichael Chan 6024894aa69aSMichael Chan /* hwrm_queue_dscp2pri_cfg_output (size:128b/16B) */ 6025acb20054SMichael Chan struct hwrm_queue_dscp2pri_cfg_output { 6026acb20054SMichael Chan __le16 error_code; 6027acb20054SMichael Chan __le16 req_type; 6028acb20054SMichael Chan __le16 seq_id; 6029acb20054SMichael Chan __le16 resp_len; 6030894aa69aSMichael Chan u8 unused_0[7]; 6031acb20054SMichael Chan u8 valid; 6032acb20054SMichael Chan }; 6033acb20054SMichael Chan 6034894aa69aSMichael Chan /* hwrm_vnic_alloc_input (size:192b/24B) */ 6035c0c050c5SMichael Chan struct hwrm_vnic_alloc_input { 6036c0c050c5SMichael Chan __le16 req_type; 6037c0c050c5SMichael Chan __le16 cmpl_ring; 6038c0c050c5SMichael Chan __le16 seq_id; 6039c0c050c5SMichael Chan __le16 target_id; 6040c0c050c5SMichael Chan __le64 resp_addr; 6041c0c050c5SMichael Chan __le32 flags; 6042c0c050c5SMichael Chan #define VNIC_ALLOC_REQ_FLAGS_DEFAULT 0x1UL 604316db6323SMichael Chan #define VNIC_ALLOC_REQ_FLAGS_VIRTIO_NET_FID_VALID 0x2UL 604416db6323SMichael Chan __le16 virtio_net_fid; 604516db6323SMichael Chan u8 unused_0[2]; 6046c0c050c5SMichael Chan }; 6047c0c050c5SMichael Chan 6048894aa69aSMichael Chan /* hwrm_vnic_alloc_output (size:128b/16B) */ 6049c0c050c5SMichael Chan struct hwrm_vnic_alloc_output { 6050c0c050c5SMichael Chan __le16 error_code; 6051c0c050c5SMichael Chan __le16 req_type; 6052c0c050c5SMichael Chan __le16 seq_id; 6053c0c050c5SMichael Chan __le16 resp_len; 6054c0c050c5SMichael Chan __le32 vnic_id; 6055894aa69aSMichael Chan u8 unused_0[3]; 6056c0c050c5SMichael Chan u8 valid; 6057c0c050c5SMichael Chan }; 6058c0c050c5SMichael Chan 6059894aa69aSMichael Chan /* hwrm_vnic_free_input (size:192b/24B) */ 6060c0c050c5SMichael Chan struct hwrm_vnic_free_input { 6061c0c050c5SMichael Chan __le16 req_type; 6062c0c050c5SMichael Chan __le16 cmpl_ring; 6063c0c050c5SMichael Chan __le16 seq_id; 6064c0c050c5SMichael Chan __le16 target_id; 6065c0c050c5SMichael Chan __le64 resp_addr; 6066c0c050c5SMichael Chan __le32 vnic_id; 6067894aa69aSMichael Chan u8 unused_0[4]; 6068c0c050c5SMichael Chan }; 6069c0c050c5SMichael Chan 6070894aa69aSMichael Chan /* hwrm_vnic_free_output (size:128b/16B) */ 6071c0c050c5SMichael Chan struct hwrm_vnic_free_output { 6072c0c050c5SMichael Chan __le16 error_code; 6073c0c050c5SMichael Chan __le16 req_type; 6074c0c050c5SMichael Chan __le16 seq_id; 6075c0c050c5SMichael Chan __le16 resp_len; 6076894aa69aSMichael Chan u8 unused_0[7]; 6077c0c050c5SMichael Chan u8 valid; 6078c0c050c5SMichael Chan }; 6079c0c050c5SMichael Chan 608072e0c9f9SMichael Chan /* hwrm_vnic_cfg_input (size:384b/48B) */ 6081c0c050c5SMichael Chan struct hwrm_vnic_cfg_input { 6082c0c050c5SMichael Chan __le16 req_type; 6083c0c050c5SMichael Chan __le16 cmpl_ring; 6084c0c050c5SMichael Chan __le16 seq_id; 6085c0c050c5SMichael Chan __le16 target_id; 6086c0c050c5SMichael Chan __le64 resp_addr; 6087c0c050c5SMichael Chan __le32 flags; 6088c0c050c5SMichael Chan #define VNIC_CFG_REQ_FLAGS_DEFAULT 0x1UL 6089c0c050c5SMichael Chan #define VNIC_CFG_REQ_FLAGS_VLAN_STRIP_MODE 0x2UL 6090c193554eSMichael Chan #define VNIC_CFG_REQ_FLAGS_BD_STALL_MODE 0x4UL 609111f15ed3SMichael Chan #define VNIC_CFG_REQ_FLAGS_ROCE_DUAL_VNIC_MODE 0x8UL 609211f15ed3SMichael Chan #define VNIC_CFG_REQ_FLAGS_ROCE_ONLY_VNIC_MODE 0x10UL 6093441cabbbSMichael Chan #define VNIC_CFG_REQ_FLAGS_RSS_DFLT_CR_MODE 0x20UL 609457922b0aSMichael Chan #define VNIC_CFG_REQ_FLAGS_ROCE_MIRRORING_CAPABLE_VNIC_MODE 0x40UL 6095c0c050c5SMichael Chan __le32 enables; 6096c0c050c5SMichael Chan #define VNIC_CFG_REQ_ENABLES_DFLT_RING_GRP 0x1UL 6097c0c050c5SMichael Chan #define VNIC_CFG_REQ_ENABLES_RSS_RULE 0x2UL 6098c0c050c5SMichael Chan #define VNIC_CFG_REQ_ENABLES_COS_RULE 0x4UL 6099c0c050c5SMichael Chan #define VNIC_CFG_REQ_ENABLES_LB_RULE 0x8UL 6100c0c050c5SMichael Chan #define VNIC_CFG_REQ_ENABLES_MRU 0x10UL 61016fc92c33SMichael Chan #define VNIC_CFG_REQ_ENABLES_DEFAULT_RX_RING_ID 0x20UL 61026fc92c33SMichael Chan #define VNIC_CFG_REQ_ENABLES_DEFAULT_CMPL_RING_ID 0x40UL 610372e0c9f9SMichael Chan #define VNIC_CFG_REQ_ENABLES_QUEUE_ID 0x80UL 6104bfc6e5fbSMichael Chan #define VNIC_CFG_REQ_ENABLES_RX_CSUM_V2_MODE 0x100UL 6105ad04cc05SMichael Chan #define VNIC_CFG_REQ_ENABLES_L2_CQE_MODE 0x200UL 6106c0c050c5SMichael Chan __le16 vnic_id; 6107c0c050c5SMichael Chan __le16 dflt_ring_grp; 6108c0c050c5SMichael Chan __le16 rss_rule; 6109c0c050c5SMichael Chan __le16 cos_rule; 6110c0c050c5SMichael Chan __le16 lb_rule; 6111c0c050c5SMichael Chan __le16 mru; 61126fc92c33SMichael Chan __le16 default_rx_ring_id; 61136fc92c33SMichael Chan __le16 default_cmpl_ring_id; 611472e0c9f9SMichael Chan __le16 queue_id; 6115bfc6e5fbSMichael Chan u8 rx_csum_v2_mode; 6116bfc6e5fbSMichael Chan #define VNIC_CFG_REQ_RX_CSUM_V2_MODE_DEFAULT 0x0UL 6117bfc6e5fbSMichael Chan #define VNIC_CFG_REQ_RX_CSUM_V2_MODE_ALL_OK 0x1UL 6118bfc6e5fbSMichael Chan #define VNIC_CFG_REQ_RX_CSUM_V2_MODE_MAX 0x2UL 6119bfc6e5fbSMichael Chan #define VNIC_CFG_REQ_RX_CSUM_V2_MODE_LAST VNIC_CFG_REQ_RX_CSUM_V2_MODE_MAX 6120ad04cc05SMichael Chan u8 l2_cqe_mode; 6121ad04cc05SMichael Chan #define VNIC_CFG_REQ_L2_CQE_MODE_DEFAULT 0x0UL 6122ad04cc05SMichael Chan #define VNIC_CFG_REQ_L2_CQE_MODE_COMPRESSED 0x1UL 6123ad04cc05SMichael Chan #define VNIC_CFG_REQ_L2_CQE_MODE_MIXED 0x2UL 6124ad04cc05SMichael Chan #define VNIC_CFG_REQ_L2_CQE_MODE_LAST VNIC_CFG_REQ_L2_CQE_MODE_MIXED 6125ad04cc05SMichael Chan u8 unused0[4]; 6126c0c050c5SMichael Chan }; 6127c0c050c5SMichael Chan 6128894aa69aSMichael Chan /* hwrm_vnic_cfg_output (size:128b/16B) */ 6129c0c050c5SMichael Chan struct hwrm_vnic_cfg_output { 6130c0c050c5SMichael Chan __le16 error_code; 6131c0c050c5SMichael Chan __le16 req_type; 6132c0c050c5SMichael Chan __le16 seq_id; 6133c0c050c5SMichael Chan __le16 resp_len; 6134894aa69aSMichael Chan u8 unused_0[7]; 6135c0c050c5SMichael Chan u8 valid; 6136c0c050c5SMichael Chan }; 6137c0c050c5SMichael Chan 6138894aa69aSMichael Chan /* hwrm_vnic_qcaps_input (size:192b/24B) */ 61398fdefd63SMichael Chan struct hwrm_vnic_qcaps_input { 61408fdefd63SMichael Chan __le16 req_type; 61418fdefd63SMichael Chan __le16 cmpl_ring; 61428fdefd63SMichael Chan __le16 seq_id; 61438fdefd63SMichael Chan __le16 target_id; 61448fdefd63SMichael Chan __le64 resp_addr; 61458fdefd63SMichael Chan __le32 enables; 6146894aa69aSMichael Chan u8 unused_0[4]; 61478fdefd63SMichael Chan }; 61488fdefd63SMichael Chan 6149894aa69aSMichael Chan /* hwrm_vnic_qcaps_output (size:192b/24B) */ 61508fdefd63SMichael Chan struct hwrm_vnic_qcaps_output { 61518fdefd63SMichael Chan __le16 error_code; 61528fdefd63SMichael Chan __le16 req_type; 61538fdefd63SMichael Chan __le16 seq_id; 61548fdefd63SMichael Chan __le16 resp_len; 61558fdefd63SMichael Chan __le16 mru; 6156894aa69aSMichael Chan u8 unused_0[2]; 61578fdefd63SMichael Chan __le32 flags; 6158bac9a7e0SMichael Chan #define VNIC_QCAPS_RESP_FLAGS_UNUSED 0x1UL 61598fdefd63SMichael Chan #define VNIC_QCAPS_RESP_FLAGS_VLAN_STRIP_CAP 0x2UL 61608fdefd63SMichael Chan #define VNIC_QCAPS_RESP_FLAGS_BD_STALL_CAP 0x4UL 61618fdefd63SMichael Chan #define VNIC_QCAPS_RESP_FLAGS_ROCE_DUAL_VNIC_CAP 0x8UL 61628fdefd63SMichael Chan #define VNIC_QCAPS_RESP_FLAGS_ROCE_ONLY_VNIC_CAP 0x10UL 61638fdefd63SMichael Chan #define VNIC_QCAPS_RESP_FLAGS_RSS_DFLT_CR_CAP 0x20UL 6164894aa69aSMichael Chan #define VNIC_QCAPS_RESP_FLAGS_ROCE_MIRRORING_CAPABLE_VNIC_CAP 0x40UL 61656fc92c33SMichael Chan #define VNIC_QCAPS_RESP_FLAGS_OUTERMOST_RSS_CAP 0x80UL 616672e0c9f9SMichael Chan #define VNIC_QCAPS_RESP_FLAGS_COS_ASSIGNMENT_CAP 0x100UL 6167bfc6e5fbSMichael Chan #define VNIC_QCAPS_RESP_FLAGS_RX_CMPL_V2_CAP 0x200UL 616816db6323SMichael Chan #define VNIC_QCAPS_RESP_FLAGS_VNIC_STATE_CAP 0x400UL 616916db6323SMichael Chan #define VNIC_QCAPS_RESP_FLAGS_VIRTIO_NET_VNIC_ALLOC_CAP 0x800UL 617031f67c2eSMichael Chan #define VNIC_QCAPS_RESP_FLAGS_METADATA_FORMAT_CAP 0x1000UL 617178eeadb8SMichael Chan #define VNIC_QCAPS_RESP_FLAGS_RSS_STRICT_HASH_TYPE_CAP 0x2000UL 617221e70778SMichael Chan #define VNIC_QCAPS_RESP_FLAGS_RSS_HASH_TYPE_DELTA_CAP 0x4000UL 6173ad04cc05SMichael Chan #define VNIC_QCAPS_RESP_FLAGS_RING_SELECT_MODE_TOEPLITZ_CAP 0x8000UL 6174ad04cc05SMichael Chan #define VNIC_QCAPS_RESP_FLAGS_RING_SELECT_MODE_XOR_CAP 0x10000UL 6175ad04cc05SMichael Chan #define VNIC_QCAPS_RESP_FLAGS_RING_SELECT_MODE_TOEPLITZ_CHKSM_CAP 0x20000UL 617621e70778SMichael Chan #define VNIC_QCAPS_RESP_FLAGS_RSS_IPV6_FLOW_LABEL_CAP 0x40000UL 6177ad04cc05SMichael Chan #define VNIC_QCAPS_RESP_FLAGS_RX_CMPL_V3_CAP 0x80000UL 6178ad04cc05SMichael Chan #define VNIC_QCAPS_RESP_FLAGS_L2_CQE_MODE_CAP 0x100000UL 6179ad04cc05SMichael Chan #define VNIC_QCAPS_RESP_FLAGS_RSS_IPSEC_AH_SPI_IPV4_CAP 0x200000UL 6180ad04cc05SMichael Chan #define VNIC_QCAPS_RESP_FLAGS_RSS_IPSEC_ESP_SPI_IPV4_CAP 0x400000UL 6181ad04cc05SMichael Chan #define VNIC_QCAPS_RESP_FLAGS_RSS_IPSEC_AH_SPI_IPV6_CAP 0x800000UL 6182ad04cc05SMichael Chan #define VNIC_QCAPS_RESP_FLAGS_RSS_IPSEC_ESP_SPI_IPV6_CAP 0x1000000UL 618384a911dbSMichael Chan #define VNIC_QCAPS_RESP_FLAGS_OUTERMOST_RSS_TRUSTED_VF_CAP 0x2000000UL 61844a50ddc2SMichael Chan __le16 max_aggs_supported; 61854a50ddc2SMichael Chan u8 unused_1[5]; 61868fdefd63SMichael Chan u8 valid; 61878fdefd63SMichael Chan }; 61888fdefd63SMichael Chan 6189894aa69aSMichael Chan /* hwrm_vnic_tpa_cfg_input (size:320b/40B) */ 6190c0c050c5SMichael Chan struct hwrm_vnic_tpa_cfg_input { 6191c0c050c5SMichael Chan __le16 req_type; 6192c0c050c5SMichael Chan __le16 cmpl_ring; 6193c0c050c5SMichael Chan __le16 seq_id; 6194c0c050c5SMichael Chan __le16 target_id; 6195c0c050c5SMichael Chan __le64 resp_addr; 6196c0c050c5SMichael Chan __le32 flags; 6197c0c050c5SMichael Chan #define VNIC_TPA_CFG_REQ_FLAGS_TPA 0x1UL 6198c0c050c5SMichael Chan #define VNIC_TPA_CFG_REQ_FLAGS_ENCAP_TPA 0x2UL 6199c0c050c5SMichael Chan #define VNIC_TPA_CFG_REQ_FLAGS_RSC_WND_UPDATE 0x4UL 6200c0c050c5SMichael Chan #define VNIC_TPA_CFG_REQ_FLAGS_GRO 0x8UL 6201c0c050c5SMichael Chan #define VNIC_TPA_CFG_REQ_FLAGS_AGG_WITH_ECN 0x10UL 6202c0c050c5SMichael Chan #define VNIC_TPA_CFG_REQ_FLAGS_AGG_WITH_SAME_GRE_SEQ 0x20UL 6203c0c050c5SMichael Chan #define VNIC_TPA_CFG_REQ_FLAGS_GRO_IPID_CHECK 0x40UL 6204c0c050c5SMichael Chan #define VNIC_TPA_CFG_REQ_FLAGS_GRO_TTL_CHECK 0x80UL 62054a50ddc2SMichael Chan #define VNIC_TPA_CFG_REQ_FLAGS_AGG_PACK_AS_GRO 0x100UL 6206c0c050c5SMichael Chan __le32 enables; 6207c0c050c5SMichael Chan #define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGG_SEGS 0x1UL 6208c0c050c5SMichael Chan #define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGGS 0x2UL 6209c0c050c5SMichael Chan #define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGG_TIMER 0x4UL 6210c0c050c5SMichael Chan #define VNIC_TPA_CFG_REQ_ENABLES_MIN_AGG_LEN 0x8UL 6211c0c050c5SMichael Chan __le16 vnic_id; 6212c0c050c5SMichael Chan __le16 max_agg_segs; 6213441cabbbSMichael Chan #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_1 0x0UL 6214441cabbbSMichael Chan #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_2 0x1UL 6215441cabbbSMichael Chan #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_4 0x2UL 6216441cabbbSMichael Chan #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_8 0x3UL 6217441cabbbSMichael Chan #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_MAX 0x1fUL 6218894aa69aSMichael Chan #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_LAST VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_MAX 6219c0c050c5SMichael Chan __le16 max_aggs; 6220441cabbbSMichael Chan #define VNIC_TPA_CFG_REQ_MAX_AGGS_1 0x0UL 6221441cabbbSMichael Chan #define VNIC_TPA_CFG_REQ_MAX_AGGS_2 0x1UL 6222441cabbbSMichael Chan #define VNIC_TPA_CFG_REQ_MAX_AGGS_4 0x2UL 6223441cabbbSMichael Chan #define VNIC_TPA_CFG_REQ_MAX_AGGS_8 0x3UL 6224441cabbbSMichael Chan #define VNIC_TPA_CFG_REQ_MAX_AGGS_16 0x4UL 6225441cabbbSMichael Chan #define VNIC_TPA_CFG_REQ_MAX_AGGS_MAX 0x7UL 6226894aa69aSMichael Chan #define VNIC_TPA_CFG_REQ_MAX_AGGS_LAST VNIC_TPA_CFG_REQ_MAX_AGGS_MAX 6227894aa69aSMichael Chan u8 unused_0[2]; 6228c0c050c5SMichael Chan __le32 max_agg_timer; 6229c0c050c5SMichael Chan __le32 min_agg_len; 6230c0c050c5SMichael Chan }; 6231c0c050c5SMichael Chan 6232894aa69aSMichael Chan /* hwrm_vnic_tpa_cfg_output (size:128b/16B) */ 6233c0c050c5SMichael Chan struct hwrm_vnic_tpa_cfg_output { 6234c0c050c5SMichael Chan __le16 error_code; 6235c0c050c5SMichael Chan __le16 req_type; 6236c0c050c5SMichael Chan __le16 seq_id; 6237c0c050c5SMichael Chan __le16 resp_len; 6238894aa69aSMichael Chan u8 unused_0[7]; 6239c0c050c5SMichael Chan u8 valid; 6240c0c050c5SMichael Chan }; 6241c0c050c5SMichael Chan 6242894aa69aSMichael Chan /* hwrm_vnic_tpa_qcfg_input (size:192b/24B) */ 6243894aa69aSMichael Chan struct hwrm_vnic_tpa_qcfg_input { 6244894aa69aSMichael Chan __le16 req_type; 6245894aa69aSMichael Chan __le16 cmpl_ring; 6246894aa69aSMichael Chan __le16 seq_id; 6247894aa69aSMichael Chan __le16 target_id; 6248894aa69aSMichael Chan __le64 resp_addr; 6249894aa69aSMichael Chan __le16 vnic_id; 6250894aa69aSMichael Chan u8 unused_0[6]; 6251894aa69aSMichael Chan }; 6252894aa69aSMichael Chan 6253894aa69aSMichael Chan /* hwrm_vnic_tpa_qcfg_output (size:256b/32B) */ 6254894aa69aSMichael Chan struct hwrm_vnic_tpa_qcfg_output { 6255894aa69aSMichael Chan __le16 error_code; 6256894aa69aSMichael Chan __le16 req_type; 6257894aa69aSMichael Chan __le16 seq_id; 6258894aa69aSMichael Chan __le16 resp_len; 6259894aa69aSMichael Chan __le32 flags; 6260894aa69aSMichael Chan #define VNIC_TPA_QCFG_RESP_FLAGS_TPA 0x1UL 6261894aa69aSMichael Chan #define VNIC_TPA_QCFG_RESP_FLAGS_ENCAP_TPA 0x2UL 6262894aa69aSMichael Chan #define VNIC_TPA_QCFG_RESP_FLAGS_RSC_WND_UPDATE 0x4UL 6263894aa69aSMichael Chan #define VNIC_TPA_QCFG_RESP_FLAGS_GRO 0x8UL 6264894aa69aSMichael Chan #define VNIC_TPA_QCFG_RESP_FLAGS_AGG_WITH_ECN 0x10UL 6265894aa69aSMichael Chan #define VNIC_TPA_QCFG_RESP_FLAGS_AGG_WITH_SAME_GRE_SEQ 0x20UL 6266894aa69aSMichael Chan #define VNIC_TPA_QCFG_RESP_FLAGS_GRO_IPID_CHECK 0x40UL 6267894aa69aSMichael Chan #define VNIC_TPA_QCFG_RESP_FLAGS_GRO_TTL_CHECK 0x80UL 6268894aa69aSMichael Chan __le16 max_agg_segs; 6269894aa69aSMichael Chan #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_1 0x0UL 6270894aa69aSMichael Chan #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_2 0x1UL 6271894aa69aSMichael Chan #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_4 0x2UL 6272894aa69aSMichael Chan #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_8 0x3UL 6273894aa69aSMichael Chan #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_MAX 0x1fUL 6274894aa69aSMichael Chan #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_LAST VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_MAX 6275894aa69aSMichael Chan __le16 max_aggs; 6276894aa69aSMichael Chan #define VNIC_TPA_QCFG_RESP_MAX_AGGS_1 0x0UL 6277894aa69aSMichael Chan #define VNIC_TPA_QCFG_RESP_MAX_AGGS_2 0x1UL 6278894aa69aSMichael Chan #define VNIC_TPA_QCFG_RESP_MAX_AGGS_4 0x2UL 6279894aa69aSMichael Chan #define VNIC_TPA_QCFG_RESP_MAX_AGGS_8 0x3UL 6280894aa69aSMichael Chan #define VNIC_TPA_QCFG_RESP_MAX_AGGS_16 0x4UL 6281894aa69aSMichael Chan #define VNIC_TPA_QCFG_RESP_MAX_AGGS_MAX 0x7UL 6282894aa69aSMichael Chan #define VNIC_TPA_QCFG_RESP_MAX_AGGS_LAST VNIC_TPA_QCFG_RESP_MAX_AGGS_MAX 6283894aa69aSMichael Chan __le32 max_agg_timer; 6284894aa69aSMichael Chan __le32 min_agg_len; 6285894aa69aSMichael Chan u8 unused_0[7]; 6286894aa69aSMichael Chan u8 valid; 6287894aa69aSMichael Chan }; 6288894aa69aSMichael Chan 6289894aa69aSMichael Chan /* hwrm_vnic_rss_cfg_input (size:384b/48B) */ 6290c0c050c5SMichael Chan struct hwrm_vnic_rss_cfg_input { 6291c0c050c5SMichael Chan __le16 req_type; 6292c0c050c5SMichael Chan __le16 cmpl_ring; 6293c0c050c5SMichael Chan __le16 seq_id; 6294c0c050c5SMichael Chan __le16 target_id; 6295c0c050c5SMichael Chan __le64 resp_addr; 6296c0c050c5SMichael Chan __le32 hash_type; 6297c0c050c5SMichael Chan #define VNIC_RSS_CFG_REQ_HASH_TYPE_IPV4 0x1UL 6298c0c050c5SMichael Chan #define VNIC_RSS_CFG_REQ_HASH_TYPE_TCP_IPV4 0x2UL 6299c0c050c5SMichael Chan #define VNIC_RSS_CFG_REQ_HASH_TYPE_UDP_IPV4 0x4UL 6300c0c050c5SMichael Chan #define VNIC_RSS_CFG_REQ_HASH_TYPE_IPV6 0x8UL 6301c0c050c5SMichael Chan #define VNIC_RSS_CFG_REQ_HASH_TYPE_TCP_IPV6 0x10UL 6302c0c050c5SMichael Chan #define VNIC_RSS_CFG_REQ_HASH_TYPE_UDP_IPV6 0x20UL 63032895c153SMichael Chan #define VNIC_RSS_CFG_REQ_HASH_TYPE_IPV6_FLOW_LABEL 0x40UL 6304ad04cc05SMichael Chan #define VNIC_RSS_CFG_REQ_HASH_TYPE_AH_SPI_IPV4 0x80UL 6305ad04cc05SMichael Chan #define VNIC_RSS_CFG_REQ_HASH_TYPE_ESP_SPI_IPV4 0x100UL 6306ad04cc05SMichael Chan #define VNIC_RSS_CFG_REQ_HASH_TYPE_AH_SPI_IPV6 0x200UL 6307ad04cc05SMichael Chan #define VNIC_RSS_CFG_REQ_HASH_TYPE_ESP_SPI_IPV6 0x400UL 63086fc92c33SMichael Chan __le16 vnic_id; 63096fc92c33SMichael Chan u8 ring_table_pair_index; 63106fc92c33SMichael Chan u8 hash_mode_flags; 63116fc92c33SMichael Chan #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_DEFAULT 0x1UL 63126fc92c33SMichael Chan #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_INNERMOST_4 0x2UL 63136fc92c33SMichael Chan #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_INNERMOST_2 0x4UL 63146fc92c33SMichael Chan #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_OUTERMOST_4 0x8UL 63156fc92c33SMichael Chan #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_OUTERMOST_2 0x10UL 6316c0c050c5SMichael Chan __le64 ring_grp_tbl_addr; 6317c0c050c5SMichael Chan __le64 hash_key_tbl_addr; 6318c0c050c5SMichael Chan __le16 rss_ctx_idx; 631921e70778SMichael Chan u8 flags; 632021e70778SMichael Chan #define VNIC_RSS_CFG_REQ_FLAGS_HASH_TYPE_INCLUDE 0x1UL 632121e70778SMichael Chan #define VNIC_RSS_CFG_REQ_FLAGS_HASH_TYPE_EXCLUDE 0x2UL 6322ad04cc05SMichael Chan u8 ring_select_mode; 6323ad04cc05SMichael Chan #define VNIC_RSS_CFG_REQ_RING_SELECT_MODE_TOEPLITZ 0x0UL 6324ad04cc05SMichael Chan #define VNIC_RSS_CFG_REQ_RING_SELECT_MODE_XOR 0x1UL 6325ad04cc05SMichael Chan #define VNIC_RSS_CFG_REQ_RING_SELECT_MODE_TOEPLITZ_CHECKSUM 0x2UL 6326ad04cc05SMichael Chan #define VNIC_RSS_CFG_REQ_RING_SELECT_MODE_LAST VNIC_RSS_CFG_REQ_RING_SELECT_MODE_TOEPLITZ_CHECKSUM 632721e70778SMichael Chan u8 unused_1[4]; 6328c0c050c5SMichael Chan }; 6329c0c050c5SMichael Chan 6330894aa69aSMichael Chan /* hwrm_vnic_rss_cfg_output (size:128b/16B) */ 6331c0c050c5SMichael Chan struct hwrm_vnic_rss_cfg_output { 6332c0c050c5SMichael Chan __le16 error_code; 6333c0c050c5SMichael Chan __le16 req_type; 6334c0c050c5SMichael Chan __le16 seq_id; 6335c0c050c5SMichael Chan __le16 resp_len; 6336894aa69aSMichael Chan u8 unused_0[7]; 6337c0c050c5SMichael Chan u8 valid; 6338c0c050c5SMichael Chan }; 6339c0c050c5SMichael Chan 634041136ab3SMichael Chan /* hwrm_vnic_rss_cfg_cmd_err (size:64b/8B) */ 634141136ab3SMichael Chan struct hwrm_vnic_rss_cfg_cmd_err { 634241136ab3SMichael Chan u8 code; 634341136ab3SMichael Chan #define VNIC_RSS_CFG_CMD_ERR_CODE_UNKNOWN 0x0UL 634441136ab3SMichael Chan #define VNIC_RSS_CFG_CMD_ERR_CODE_INTERFACE_NOT_READY 0x1UL 634541136ab3SMichael Chan #define VNIC_RSS_CFG_CMD_ERR_CODE_LAST VNIC_RSS_CFG_CMD_ERR_CODE_INTERFACE_NOT_READY 634641136ab3SMichael Chan u8 unused_0[7]; 634741136ab3SMichael Chan }; 634841136ab3SMichael Chan 634998a4322bSEdwin Peer /* hwrm_vnic_rss_qcfg_input (size:192b/24B) */ 635098a4322bSEdwin Peer struct hwrm_vnic_rss_qcfg_input { 635198a4322bSEdwin Peer __le16 req_type; 635298a4322bSEdwin Peer __le16 cmpl_ring; 635398a4322bSEdwin Peer __le16 seq_id; 635498a4322bSEdwin Peer __le16 target_id; 635598a4322bSEdwin Peer __le64 resp_addr; 635698a4322bSEdwin Peer __le16 rss_ctx_idx; 635798a4322bSEdwin Peer __le16 vnic_id; 635898a4322bSEdwin Peer u8 unused_0[4]; 635998a4322bSEdwin Peer }; 636098a4322bSEdwin Peer 636198a4322bSEdwin Peer /* hwrm_vnic_rss_qcfg_output (size:512b/64B) */ 636298a4322bSEdwin Peer struct hwrm_vnic_rss_qcfg_output { 636398a4322bSEdwin Peer __le16 error_code; 636498a4322bSEdwin Peer __le16 req_type; 636598a4322bSEdwin Peer __le16 seq_id; 636698a4322bSEdwin Peer __le16 resp_len; 636798a4322bSEdwin Peer __le32 hash_type; 636898a4322bSEdwin Peer #define VNIC_RSS_QCFG_RESP_HASH_TYPE_IPV4 0x1UL 636998a4322bSEdwin Peer #define VNIC_RSS_QCFG_RESP_HASH_TYPE_TCP_IPV4 0x2UL 637098a4322bSEdwin Peer #define VNIC_RSS_QCFG_RESP_HASH_TYPE_UDP_IPV4 0x4UL 637198a4322bSEdwin Peer #define VNIC_RSS_QCFG_RESP_HASH_TYPE_IPV6 0x8UL 637298a4322bSEdwin Peer #define VNIC_RSS_QCFG_RESP_HASH_TYPE_TCP_IPV6 0x10UL 637398a4322bSEdwin Peer #define VNIC_RSS_QCFG_RESP_HASH_TYPE_UDP_IPV6 0x20UL 637498a4322bSEdwin Peer #define VNIC_RSS_QCFG_RESP_HASH_TYPE_IPV6_FLOW_LABEL 0x40UL 637598a4322bSEdwin Peer #define VNIC_RSS_QCFG_RESP_HASH_TYPE_AH_SPI_IPV4 0x80UL 637698a4322bSEdwin Peer #define VNIC_RSS_QCFG_RESP_HASH_TYPE_ESP_SPI_IPV4 0x100UL 637798a4322bSEdwin Peer #define VNIC_RSS_QCFG_RESP_HASH_TYPE_AH_SPI_IPV6 0x200UL 637898a4322bSEdwin Peer #define VNIC_RSS_QCFG_RESP_HASH_TYPE_ESP_SPI_IPV6 0x400UL 637998a4322bSEdwin Peer u8 unused_0[4]; 638098a4322bSEdwin Peer __le32 hash_key[10]; 638198a4322bSEdwin Peer u8 hash_mode_flags; 638298a4322bSEdwin Peer #define VNIC_RSS_QCFG_RESP_HASH_MODE_FLAGS_DEFAULT 0x1UL 638398a4322bSEdwin Peer #define VNIC_RSS_QCFG_RESP_HASH_MODE_FLAGS_INNERMOST_4 0x2UL 638498a4322bSEdwin Peer #define VNIC_RSS_QCFG_RESP_HASH_MODE_FLAGS_INNERMOST_2 0x4UL 638598a4322bSEdwin Peer #define VNIC_RSS_QCFG_RESP_HASH_MODE_FLAGS_OUTERMOST_4 0x8UL 638698a4322bSEdwin Peer #define VNIC_RSS_QCFG_RESP_HASH_MODE_FLAGS_OUTERMOST_2 0x10UL 638798a4322bSEdwin Peer u8 ring_select_mode; 638898a4322bSEdwin Peer #define VNIC_RSS_QCFG_RESP_RING_SELECT_MODE_TOEPLITZ 0x0UL 638998a4322bSEdwin Peer #define VNIC_RSS_QCFG_RESP_RING_SELECT_MODE_XOR 0x1UL 639098a4322bSEdwin Peer #define VNIC_RSS_QCFG_RESP_RING_SELECT_MODE_TOEPLITZ_CHECKSUM 0x2UL 639198a4322bSEdwin Peer #define VNIC_RSS_QCFG_RESP_RING_SELECT_MODE_LAST VNIC_RSS_QCFG_RESP_RING_SELECT_MODE_TOEPLITZ_CHECKSUM 639298a4322bSEdwin Peer u8 unused_1[5]; 639398a4322bSEdwin Peer u8 valid; 639498a4322bSEdwin Peer }; 639598a4322bSEdwin Peer 6396894aa69aSMichael Chan /* hwrm_vnic_plcmodes_cfg_input (size:320b/40B) */ 6397c0c050c5SMichael Chan struct hwrm_vnic_plcmodes_cfg_input { 6398c0c050c5SMichael Chan __le16 req_type; 6399c0c050c5SMichael Chan __le16 cmpl_ring; 6400c0c050c5SMichael Chan __le16 seq_id; 6401c0c050c5SMichael Chan __le16 target_id; 6402c0c050c5SMichael Chan __le64 resp_addr; 6403c0c050c5SMichael Chan __le32 flags; 6404c0c050c5SMichael Chan #define VNIC_PLCMODES_CFG_REQ_FLAGS_REGULAR_PLACEMENT 0x1UL 6405c0c050c5SMichael Chan #define VNIC_PLCMODES_CFG_REQ_FLAGS_JUMBO_PLACEMENT 0x2UL 6406c0c050c5SMichael Chan #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_IPV4 0x4UL 6407c0c050c5SMichael Chan #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_IPV6 0x8UL 6408c0c050c5SMichael Chan #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_FCOE 0x10UL 6409c0c050c5SMichael Chan #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_ROCE 0x20UL 6410bfc6e5fbSMichael Chan #define VNIC_PLCMODES_CFG_REQ_FLAGS_VIRTIO_PLACEMENT 0x40UL 6411c0c050c5SMichael Chan __le32 enables; 6412c0c050c5SMichael Chan #define VNIC_PLCMODES_CFG_REQ_ENABLES_JUMBO_THRESH_VALID 0x1UL 6413c0c050c5SMichael Chan #define VNIC_PLCMODES_CFG_REQ_ENABLES_HDS_OFFSET_VALID 0x2UL 6414c0c050c5SMichael Chan #define VNIC_PLCMODES_CFG_REQ_ENABLES_HDS_THRESHOLD_VALID 0x4UL 6415bfc6e5fbSMichael Chan #define VNIC_PLCMODES_CFG_REQ_ENABLES_MAX_BDS_VALID 0x8UL 6416c0c050c5SMichael Chan __le32 vnic_id; 6417c0c050c5SMichael Chan __le16 jumbo_thresh; 6418c0c050c5SMichael Chan __le16 hds_offset; 6419c0c050c5SMichael Chan __le16 hds_threshold; 6420bfc6e5fbSMichael Chan __le16 max_bds; 6421bfc6e5fbSMichael Chan u8 unused_0[4]; 6422c0c050c5SMichael Chan }; 6423c0c050c5SMichael Chan 6424894aa69aSMichael Chan /* hwrm_vnic_plcmodes_cfg_output (size:128b/16B) */ 6425c0c050c5SMichael Chan struct hwrm_vnic_plcmodes_cfg_output { 6426c0c050c5SMichael Chan __le16 error_code; 6427c0c050c5SMichael Chan __le16 req_type; 6428c0c050c5SMichael Chan __le16 seq_id; 6429c0c050c5SMichael Chan __le16 resp_len; 6430894aa69aSMichael Chan u8 unused_0[7]; 6431c0c050c5SMichael Chan u8 valid; 6432c0c050c5SMichael Chan }; 6433c0c050c5SMichael Chan 6434894aa69aSMichael Chan /* hwrm_vnic_rss_cos_lb_ctx_alloc_input (size:128b/16B) */ 6435c0c050c5SMichael Chan struct hwrm_vnic_rss_cos_lb_ctx_alloc_input { 6436c0c050c5SMichael Chan __le16 req_type; 6437c0c050c5SMichael Chan __le16 cmpl_ring; 6438c0c050c5SMichael Chan __le16 seq_id; 6439c0c050c5SMichael Chan __le16 target_id; 6440c0c050c5SMichael Chan __le64 resp_addr; 6441c0c050c5SMichael Chan }; 6442c0c050c5SMichael Chan 6443894aa69aSMichael Chan /* hwrm_vnic_rss_cos_lb_ctx_alloc_output (size:128b/16B) */ 6444c0c050c5SMichael Chan struct hwrm_vnic_rss_cos_lb_ctx_alloc_output { 6445c0c050c5SMichael Chan __le16 error_code; 6446c0c050c5SMichael Chan __le16 req_type; 6447c0c050c5SMichael Chan __le16 seq_id; 6448c0c050c5SMichael Chan __le16 resp_len; 6449c0c050c5SMichael Chan __le16 rss_cos_lb_ctx_id; 6450894aa69aSMichael Chan u8 unused_0[5]; 6451c0c050c5SMichael Chan u8 valid; 6452c0c050c5SMichael Chan }; 6453c0c050c5SMichael Chan 6454894aa69aSMichael Chan /* hwrm_vnic_rss_cos_lb_ctx_free_input (size:192b/24B) */ 6455c0c050c5SMichael Chan struct hwrm_vnic_rss_cos_lb_ctx_free_input { 6456c0c050c5SMichael Chan __le16 req_type; 6457c0c050c5SMichael Chan __le16 cmpl_ring; 6458c0c050c5SMichael Chan __le16 seq_id; 6459c0c050c5SMichael Chan __le16 target_id; 6460c0c050c5SMichael Chan __le64 resp_addr; 6461c0c050c5SMichael Chan __le16 rss_cos_lb_ctx_id; 6462894aa69aSMichael Chan u8 unused_0[6]; 6463c0c050c5SMichael Chan }; 6464c0c050c5SMichael Chan 6465894aa69aSMichael Chan /* hwrm_vnic_rss_cos_lb_ctx_free_output (size:128b/16B) */ 6466c0c050c5SMichael Chan struct hwrm_vnic_rss_cos_lb_ctx_free_output { 6467c0c050c5SMichael Chan __le16 error_code; 6468c0c050c5SMichael Chan __le16 req_type; 6469c0c050c5SMichael Chan __le16 seq_id; 6470c0c050c5SMichael Chan __le16 resp_len; 6471894aa69aSMichael Chan u8 unused_0[7]; 6472c0c050c5SMichael Chan u8 valid; 6473c0c050c5SMichael Chan }; 6474c0c050c5SMichael Chan 64756fc92c33SMichael Chan /* hwrm_ring_alloc_input (size:704b/88B) */ 6476c0c050c5SMichael Chan struct hwrm_ring_alloc_input { 6477c0c050c5SMichael Chan __le16 req_type; 6478c0c050c5SMichael Chan __le16 cmpl_ring; 6479c0c050c5SMichael Chan __le16 seq_id; 6480c0c050c5SMichael Chan __le16 target_id; 6481c0c050c5SMichael Chan __le64 resp_addr; 6482c0c050c5SMichael Chan __le32 enables; 6483441cabbbSMichael Chan #define RING_ALLOC_REQ_ENABLES_RING_ARB_CFG 0x2UL 6484c0c050c5SMichael Chan #define RING_ALLOC_REQ_ENABLES_STAT_CTX_ID_VALID 0x8UL 6485c0c050c5SMichael Chan #define RING_ALLOC_REQ_ENABLES_MAX_BW_VALID 0x20UL 64866fc92c33SMichael Chan #define RING_ALLOC_REQ_ENABLES_RX_RING_ID_VALID 0x40UL 64876fc92c33SMichael Chan #define RING_ALLOC_REQ_ENABLES_NQ_RING_ID_VALID 0x80UL 64886fc92c33SMichael Chan #define RING_ALLOC_REQ_ENABLES_RX_BUF_SIZE_VALID 0x100UL 6489bfc6e5fbSMichael Chan #define RING_ALLOC_REQ_ENABLES_SCHQ_ID 0x200UL 64909d6b648cSMichael Chan #define RING_ALLOC_REQ_ENABLES_MPC_CHNLS_TYPE 0x400UL 6491c0c050c5SMichael Chan u8 ring_type; 6492bac9a7e0SMichael Chan #define RING_ALLOC_REQ_RING_TYPE_L2_CMPL 0x0UL 6493441cabbbSMichael Chan #define RING_ALLOC_REQ_RING_TYPE_TX 0x1UL 6494441cabbbSMichael Chan #define RING_ALLOC_REQ_RING_TYPE_RX 0x2UL 6495bac9a7e0SMichael Chan #define RING_ALLOC_REQ_RING_TYPE_ROCE_CMPL 0x3UL 64966fc92c33SMichael Chan #define RING_ALLOC_REQ_RING_TYPE_RX_AGG 0x4UL 64976fc92c33SMichael Chan #define RING_ALLOC_REQ_RING_TYPE_NQ 0x5UL 64986fc92c33SMichael Chan #define RING_ALLOC_REQ_RING_TYPE_LAST RING_ALLOC_REQ_RING_TYPE_NQ 649921e70778SMichael Chan u8 cmpl_coal_cnt; 650021e70778SMichael Chan #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_OFF 0x0UL 650121e70778SMichael Chan #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_4 0x1UL 650221e70778SMichael Chan #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_8 0x2UL 650321e70778SMichael Chan #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_12 0x3UL 650421e70778SMichael Chan #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_16 0x4UL 650521e70778SMichael Chan #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_24 0x5UL 650621e70778SMichael Chan #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_32 0x6UL 650721e70778SMichael Chan #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_48 0x7UL 650821e70778SMichael Chan #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_64 0x8UL 650921e70778SMichael Chan #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_96 0x9UL 651021e70778SMichael Chan #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_128 0xaUL 651121e70778SMichael Chan #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_192 0xbUL 651221e70778SMichael Chan #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_256 0xcUL 651321e70778SMichael Chan #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_320 0xdUL 651421e70778SMichael Chan #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_384 0xeUL 651521e70778SMichael Chan #define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_MAX 0xfUL 651621e70778SMichael Chan #define RING_ALLOC_REQ_CMPL_COAL_CNT_LAST RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_MAX 651731d357c0SMichael Chan __le16 flags; 651831d357c0SMichael Chan #define RING_ALLOC_REQ_FLAGS_RX_SOP_PAD 0x1UL 6519ad04cc05SMichael Chan #define RING_ALLOC_REQ_FLAGS_DISABLE_CQ_OVERFLOW_DETECTION 0x2UL 6520ad04cc05SMichael Chan #define RING_ALLOC_REQ_FLAGS_NQ_DBR_PACING 0x4UL 652184a911dbSMichael Chan #define RING_ALLOC_REQ_FLAGS_TX_PKT_TS_CMPL_ENABLE 0x8UL 6522c0c050c5SMichael Chan __le64 page_tbl_addr; 6523c0c050c5SMichael Chan __le32 fbo; 6524c0c050c5SMichael Chan u8 page_size; 6525c0c050c5SMichael Chan u8 page_tbl_depth; 6526bfc6e5fbSMichael Chan __le16 schq_id; 6527c0c050c5SMichael Chan __le32 length; 6528c0c050c5SMichael Chan __le16 logical_id; 6529c0c050c5SMichael Chan __le16 cmpl_ring_id; 6530c0c050c5SMichael Chan __le16 queue_id; 65316fc92c33SMichael Chan __le16 rx_buf_size; 65326fc92c33SMichael Chan __le16 rx_ring_id; 65336fc92c33SMichael Chan __le16 nq_ring_id; 6534441cabbbSMichael Chan __le16 ring_arb_cfg; 6535441cabbbSMichael Chan #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_MASK 0xfUL 6536441cabbbSMichael Chan #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_SFT 0 6537894aa69aSMichael Chan #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_SP 0x1UL 6538894aa69aSMichael Chan #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_WFQ 0x2UL 6539441cabbbSMichael Chan #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_LAST RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_WFQ 6540441cabbbSMichael Chan #define RING_ALLOC_REQ_RING_ARB_CFG_RSVD_MASK 0xf0UL 6541441cabbbSMichael Chan #define RING_ALLOC_REQ_RING_ARB_CFG_RSVD_SFT 4 6542441cabbbSMichael Chan #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_PARAM_MASK 0xff00UL 6543441cabbbSMichael Chan #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_PARAM_SFT 8 6544894aa69aSMichael Chan __le16 unused_3; 6545c193554eSMichael Chan __le32 reserved3; 6546c0c050c5SMichael Chan __le32 stat_ctx_id; 6547c193554eSMichael Chan __le32 reserved4; 6548c0c050c5SMichael Chan __le32 max_bw; 6549441cabbbSMichael Chan #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_MASK 0xfffffffUL 6550441cabbbSMichael Chan #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_SFT 0 6551bac9a7e0SMichael Chan #define RING_ALLOC_REQ_MAX_BW_SCALE 0x10000000UL 6552bac9a7e0SMichael Chan #define RING_ALLOC_REQ_MAX_BW_SCALE_BITS (0x0UL << 28) 6553bac9a7e0SMichael Chan #define RING_ALLOC_REQ_MAX_BW_SCALE_BYTES (0x1UL << 28) 6554bac9a7e0SMichael Chan #define RING_ALLOC_REQ_MAX_BW_SCALE_LAST RING_ALLOC_REQ_MAX_BW_SCALE_BYTES 6555441cabbbSMichael Chan #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL 6556441cabbbSMichael Chan #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_SFT 29 6557bac9a7e0SMichael Chan #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29) 6558bac9a7e0SMichael Chan #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29) 6559bac9a7e0SMichael Chan #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29) 6560bac9a7e0SMichael Chan #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29) 6561441cabbbSMichael Chan #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 6562441cabbbSMichael Chan #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29) 6563441cabbbSMichael Chan #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_LAST RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_INVALID 6564c0c050c5SMichael Chan u8 int_mode; 6565441cabbbSMichael Chan #define RING_ALLOC_REQ_INT_MODE_LEGACY 0x0UL 6566441cabbbSMichael Chan #define RING_ALLOC_REQ_INT_MODE_RSVD 0x1UL 6567441cabbbSMichael Chan #define RING_ALLOC_REQ_INT_MODE_MSIX 0x2UL 6568441cabbbSMichael Chan #define RING_ALLOC_REQ_INT_MODE_POLL 0x3UL 6569894aa69aSMichael Chan #define RING_ALLOC_REQ_INT_MODE_LAST RING_ALLOC_REQ_INT_MODE_POLL 65709d6b648cSMichael Chan u8 mpc_chnls_type; 65719d6b648cSMichael Chan #define RING_ALLOC_REQ_MPC_CHNLS_TYPE_TCE 0x0UL 65729d6b648cSMichael Chan #define RING_ALLOC_REQ_MPC_CHNLS_TYPE_RCE 0x1UL 65739d6b648cSMichael Chan #define RING_ALLOC_REQ_MPC_CHNLS_TYPE_TE_CFA 0x2UL 65749d6b648cSMichael Chan #define RING_ALLOC_REQ_MPC_CHNLS_TYPE_RE_CFA 0x3UL 65759d6b648cSMichael Chan #define RING_ALLOC_REQ_MPC_CHNLS_TYPE_PRIMATE 0x4UL 65769d6b648cSMichael Chan #define RING_ALLOC_REQ_MPC_CHNLS_TYPE_LAST RING_ALLOC_REQ_MPC_CHNLS_TYPE_PRIMATE 65779d6b648cSMichael Chan u8 unused_4[2]; 65786fc92c33SMichael Chan __le64 cq_handle; 6579c0c050c5SMichael Chan }; 6580c0c050c5SMichael Chan 6581894aa69aSMichael Chan /* hwrm_ring_alloc_output (size:128b/16B) */ 6582c0c050c5SMichael Chan struct hwrm_ring_alloc_output { 6583c0c050c5SMichael Chan __le16 error_code; 6584c0c050c5SMichael Chan __le16 req_type; 6585c0c050c5SMichael Chan __le16 seq_id; 6586c0c050c5SMichael Chan __le16 resp_len; 6587c0c050c5SMichael Chan __le16 ring_id; 6588c0c050c5SMichael Chan __le16 logical_ring_id; 658916db6323SMichael Chan u8 push_buffer_index; 659016db6323SMichael Chan #define RING_ALLOC_RESP_PUSH_BUFFER_INDEX_PING_BUFFER 0x0UL 659116db6323SMichael Chan #define RING_ALLOC_RESP_PUSH_BUFFER_INDEX_PONG_BUFFER 0x1UL 659216db6323SMichael Chan #define RING_ALLOC_RESP_PUSH_BUFFER_INDEX_LAST RING_ALLOC_RESP_PUSH_BUFFER_INDEX_PONG_BUFFER 659316db6323SMichael Chan u8 unused_0[2]; 6594c0c050c5SMichael Chan u8 valid; 6595c0c050c5SMichael Chan }; 6596c0c050c5SMichael Chan 659731f67c2eSMichael Chan /* hwrm_ring_free_input (size:256b/32B) */ 6598c0c050c5SMichael Chan struct hwrm_ring_free_input { 6599c0c050c5SMichael Chan __le16 req_type; 6600c0c050c5SMichael Chan __le16 cmpl_ring; 6601c0c050c5SMichael Chan __le16 seq_id; 6602c0c050c5SMichael Chan __le16 target_id; 6603c0c050c5SMichael Chan __le64 resp_addr; 6604c0c050c5SMichael Chan u8 ring_type; 6605bac9a7e0SMichael Chan #define RING_FREE_REQ_RING_TYPE_L2_CMPL 0x0UL 6606441cabbbSMichael Chan #define RING_FREE_REQ_RING_TYPE_TX 0x1UL 6607441cabbbSMichael Chan #define RING_FREE_REQ_RING_TYPE_RX 0x2UL 6608bac9a7e0SMichael Chan #define RING_FREE_REQ_RING_TYPE_ROCE_CMPL 0x3UL 66096fc92c33SMichael Chan #define RING_FREE_REQ_RING_TYPE_RX_AGG 0x4UL 66106fc92c33SMichael Chan #define RING_FREE_REQ_RING_TYPE_NQ 0x5UL 66116fc92c33SMichael Chan #define RING_FREE_REQ_RING_TYPE_LAST RING_FREE_REQ_RING_TYPE_NQ 661231f67c2eSMichael Chan u8 flags; 661331f67c2eSMichael Chan #define RING_FREE_REQ_FLAGS_VIRTIO_RING_VALID 0x1UL 661431f67c2eSMichael Chan #define RING_FREE_REQ_FLAGS_LAST RING_FREE_REQ_FLAGS_VIRTIO_RING_VALID 6615c0c050c5SMichael Chan __le16 ring_id; 661631f67c2eSMichael Chan __le32 prod_idx; 661731f67c2eSMichael Chan __le32 opaque; 661831f67c2eSMichael Chan __le32 unused_1; 6619c0c050c5SMichael Chan }; 6620c0c050c5SMichael Chan 6621894aa69aSMichael Chan /* hwrm_ring_free_output (size:128b/16B) */ 6622c0c050c5SMichael Chan struct hwrm_ring_free_output { 6623c0c050c5SMichael Chan __le16 error_code; 6624c0c050c5SMichael Chan __le16 req_type; 6625c0c050c5SMichael Chan __le16 seq_id; 6626c0c050c5SMichael Chan __le16 resp_len; 6627894aa69aSMichael Chan u8 unused_0[7]; 6628c0c050c5SMichael Chan u8 valid; 6629c0c050c5SMichael Chan }; 6630c0c050c5SMichael Chan 66313293ec23SMichael Chan /* hwrm_ring_reset_input (size:192b/24B) */ 66323293ec23SMichael Chan struct hwrm_ring_reset_input { 66333293ec23SMichael Chan __le16 req_type; 66343293ec23SMichael Chan __le16 cmpl_ring; 66353293ec23SMichael Chan __le16 seq_id; 66363293ec23SMichael Chan __le16 target_id; 66373293ec23SMichael Chan __le64 resp_addr; 66383293ec23SMichael Chan u8 ring_type; 66393293ec23SMichael Chan #define RING_RESET_REQ_RING_TYPE_L2_CMPL 0x0UL 66403293ec23SMichael Chan #define RING_RESET_REQ_RING_TYPE_TX 0x1UL 66413293ec23SMichael Chan #define RING_RESET_REQ_RING_TYPE_RX 0x2UL 66423293ec23SMichael Chan #define RING_RESET_REQ_RING_TYPE_ROCE_CMPL 0x3UL 6643bfc6e5fbSMichael Chan #define RING_RESET_REQ_RING_TYPE_RX_RING_GRP 0x6UL 6644bfc6e5fbSMichael Chan #define RING_RESET_REQ_RING_TYPE_LAST RING_RESET_REQ_RING_TYPE_RX_RING_GRP 66453293ec23SMichael Chan u8 unused_0; 66463293ec23SMichael Chan __le16 ring_id; 66473293ec23SMichael Chan u8 unused_1[4]; 66483293ec23SMichael Chan }; 66493293ec23SMichael Chan 66503293ec23SMichael Chan /* hwrm_ring_reset_output (size:128b/16B) */ 66513293ec23SMichael Chan struct hwrm_ring_reset_output { 66523293ec23SMichael Chan __le16 error_code; 66533293ec23SMichael Chan __le16 req_type; 66543293ec23SMichael Chan __le16 seq_id; 66553293ec23SMichael Chan __le16 resp_len; 665616db6323SMichael Chan u8 push_buffer_index; 665716db6323SMichael Chan #define RING_RESET_RESP_PUSH_BUFFER_INDEX_PING_BUFFER 0x0UL 665816db6323SMichael Chan #define RING_RESET_RESP_PUSH_BUFFER_INDEX_PONG_BUFFER 0x1UL 665916db6323SMichael Chan #define RING_RESET_RESP_PUSH_BUFFER_INDEX_LAST RING_RESET_RESP_PUSH_BUFFER_INDEX_PONG_BUFFER 666016db6323SMichael Chan u8 unused_0[3]; 66613293ec23SMichael Chan u8 consumer_idx[3]; 66623293ec23SMichael Chan u8 valid; 66633293ec23SMichael Chan }; 66643293ec23SMichael Chan 66656fc92c33SMichael Chan /* hwrm_ring_aggint_qcaps_input (size:128b/16B) */ 66666fc92c33SMichael Chan struct hwrm_ring_aggint_qcaps_input { 66676fc92c33SMichael Chan __le16 req_type; 66686fc92c33SMichael Chan __le16 cmpl_ring; 66696fc92c33SMichael Chan __le16 seq_id; 66706fc92c33SMichael Chan __le16 target_id; 66716fc92c33SMichael Chan __le64 resp_addr; 66726fc92c33SMichael Chan }; 66736fc92c33SMichael Chan 66746fc92c33SMichael Chan /* hwrm_ring_aggint_qcaps_output (size:384b/48B) */ 66756fc92c33SMichael Chan struct hwrm_ring_aggint_qcaps_output { 66766fc92c33SMichael Chan __le16 error_code; 66776fc92c33SMichael Chan __le16 req_type; 66786fc92c33SMichael Chan __le16 seq_id; 66796fc92c33SMichael Chan __le16 resp_len; 66806fc92c33SMichael Chan __le32 cmpl_params; 66816fc92c33SMichael Chan #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_INT_LAT_TMR_MIN 0x1UL 66826fc92c33SMichael Chan #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_INT_LAT_TMR_MAX 0x2UL 66836fc92c33SMichael Chan #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_TIMER_RESET 0x4UL 66846fc92c33SMichael Chan #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_RING_IDLE 0x8UL 66856fc92c33SMichael Chan #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_NUM_CMPL_DMA_AGGR 0x10UL 66866fc92c33SMichael Chan #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_NUM_CMPL_DMA_AGGR_DURING_INT 0x20UL 66876fc92c33SMichael Chan #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_CMPL_AGGR_DMA_TMR 0x40UL 66886fc92c33SMichael Chan #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_CMPL_AGGR_DMA_TMR_DURING_INT 0x80UL 66896fc92c33SMichael Chan #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_NUM_CMPL_AGGR_INT 0x100UL 66906fc92c33SMichael Chan __le32 nq_params; 66916fc92c33SMichael Chan #define RING_AGGINT_QCAPS_RESP_NQ_PARAMS_INT_LAT_TMR_MIN 0x1UL 66926fc92c33SMichael Chan __le16 num_cmpl_dma_aggr_min; 66936fc92c33SMichael Chan __le16 num_cmpl_dma_aggr_max; 66946fc92c33SMichael Chan __le16 num_cmpl_dma_aggr_during_int_min; 66956fc92c33SMichael Chan __le16 num_cmpl_dma_aggr_during_int_max; 66966fc92c33SMichael Chan __le16 cmpl_aggr_dma_tmr_min; 66976fc92c33SMichael Chan __le16 cmpl_aggr_dma_tmr_max; 66986fc92c33SMichael Chan __le16 cmpl_aggr_dma_tmr_during_int_min; 66996fc92c33SMichael Chan __le16 cmpl_aggr_dma_tmr_during_int_max; 67006fc92c33SMichael Chan __le16 int_lat_tmr_min_min; 67016fc92c33SMichael Chan __le16 int_lat_tmr_min_max; 67026fc92c33SMichael Chan __le16 int_lat_tmr_max_min; 67036fc92c33SMichael Chan __le16 int_lat_tmr_max_max; 67046fc92c33SMichael Chan __le16 num_cmpl_aggr_int_min; 67056fc92c33SMichael Chan __le16 num_cmpl_aggr_int_max; 67066fc92c33SMichael Chan __le16 timer_units; 67076fc92c33SMichael Chan u8 unused_0[1]; 67086fc92c33SMichael Chan u8 valid; 67096fc92c33SMichael Chan }; 67106fc92c33SMichael Chan 6711894aa69aSMichael Chan /* hwrm_ring_cmpl_ring_qaggint_params_input (size:192b/24B) */ 6712c0c050c5SMichael Chan struct hwrm_ring_cmpl_ring_qaggint_params_input { 6713c0c050c5SMichael Chan __le16 req_type; 6714c0c050c5SMichael Chan __le16 cmpl_ring; 6715c0c050c5SMichael Chan __le16 seq_id; 6716c0c050c5SMichael Chan __le16 target_id; 6717c0c050c5SMichael Chan __le64 resp_addr; 6718c0c050c5SMichael Chan __le16 ring_id; 6719460c2577SMichael Chan __le16 flags; 6720460c2577SMichael Chan #define RING_CMPL_RING_QAGGINT_PARAMS_REQ_FLAGS_UNUSED_0_MASK 0x3UL 6721460c2577SMichael Chan #define RING_CMPL_RING_QAGGINT_PARAMS_REQ_FLAGS_UNUSED_0_SFT 0 6722460c2577SMichael Chan #define RING_CMPL_RING_QAGGINT_PARAMS_REQ_FLAGS_IS_NQ 0x4UL 6723460c2577SMichael Chan u8 unused_0[4]; 6724c0c050c5SMichael Chan }; 6725c0c050c5SMichael Chan 6726894aa69aSMichael Chan /* hwrm_ring_cmpl_ring_qaggint_params_output (size:256b/32B) */ 6727c0c050c5SMichael Chan struct hwrm_ring_cmpl_ring_qaggint_params_output { 6728c0c050c5SMichael Chan __le16 error_code; 6729c0c050c5SMichael Chan __le16 req_type; 6730c0c050c5SMichael Chan __le16 seq_id; 6731c0c050c5SMichael Chan __le16 resp_len; 6732c0c050c5SMichael Chan __le16 flags; 6733c0c050c5SMichael Chan #define RING_CMPL_RING_QAGGINT_PARAMS_RESP_FLAGS_TIMER_RESET 0x1UL 6734c0c050c5SMichael Chan #define RING_CMPL_RING_QAGGINT_PARAMS_RESP_FLAGS_RING_IDLE 0x2UL 6735c0c050c5SMichael Chan __le16 num_cmpl_dma_aggr; 6736c0c050c5SMichael Chan __le16 num_cmpl_dma_aggr_during_int; 6737c0c050c5SMichael Chan __le16 cmpl_aggr_dma_tmr; 6738c0c050c5SMichael Chan __le16 cmpl_aggr_dma_tmr_during_int; 6739c0c050c5SMichael Chan __le16 int_lat_tmr_min; 6740c0c050c5SMichael Chan __le16 int_lat_tmr_max; 6741c0c050c5SMichael Chan __le16 num_cmpl_aggr_int; 6742894aa69aSMichael Chan u8 unused_0[7]; 6743c0c050c5SMichael Chan u8 valid; 6744c0c050c5SMichael Chan }; 6745c0c050c5SMichael Chan 6746894aa69aSMichael Chan /* hwrm_ring_cmpl_ring_cfg_aggint_params_input (size:320b/40B) */ 6747c0c050c5SMichael Chan struct hwrm_ring_cmpl_ring_cfg_aggint_params_input { 6748c0c050c5SMichael Chan __le16 req_type; 6749c0c050c5SMichael Chan __le16 cmpl_ring; 6750c0c050c5SMichael Chan __le16 seq_id; 6751c0c050c5SMichael Chan __le16 target_id; 6752c0c050c5SMichael Chan __le64 resp_addr; 6753c0c050c5SMichael Chan __le16 ring_id; 6754c0c050c5SMichael Chan __le16 flags; 6755c0c050c5SMichael Chan #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_FLAGS_TIMER_RESET 0x1UL 6756c0c050c5SMichael Chan #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_FLAGS_RING_IDLE 0x2UL 67576fc92c33SMichael Chan #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_FLAGS_IS_NQ 0x4UL 6758c0c050c5SMichael Chan __le16 num_cmpl_dma_aggr; 6759c0c050c5SMichael Chan __le16 num_cmpl_dma_aggr_during_int; 6760c0c050c5SMichael Chan __le16 cmpl_aggr_dma_tmr; 6761c0c050c5SMichael Chan __le16 cmpl_aggr_dma_tmr_during_int; 6762c0c050c5SMichael Chan __le16 int_lat_tmr_min; 6763c0c050c5SMichael Chan __le16 int_lat_tmr_max; 6764c0c050c5SMichael Chan __le16 num_cmpl_aggr_int; 67656fc92c33SMichael Chan __le16 enables; 67666fc92c33SMichael Chan #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_NUM_CMPL_DMA_AGGR 0x1UL 67676fc92c33SMichael Chan #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_NUM_CMPL_DMA_AGGR_DURING_INT 0x2UL 67686fc92c33SMichael Chan #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_CMPL_AGGR_DMA_TMR 0x4UL 67696fc92c33SMichael Chan #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_INT_LAT_TMR_MIN 0x8UL 67706fc92c33SMichael Chan #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_INT_LAT_TMR_MAX 0x10UL 67716fc92c33SMichael Chan #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_NUM_CMPL_AGGR_INT 0x20UL 67726fc92c33SMichael Chan u8 unused_0[4]; 6773c0c050c5SMichael Chan }; 6774c0c050c5SMichael Chan 6775894aa69aSMichael Chan /* hwrm_ring_cmpl_ring_cfg_aggint_params_output (size:128b/16B) */ 6776c0c050c5SMichael Chan struct hwrm_ring_cmpl_ring_cfg_aggint_params_output { 6777c0c050c5SMichael Chan __le16 error_code; 6778c0c050c5SMichael Chan __le16 req_type; 6779c0c050c5SMichael Chan __le16 seq_id; 6780c0c050c5SMichael Chan __le16 resp_len; 6781894aa69aSMichael Chan u8 unused_0[7]; 6782c0c050c5SMichael Chan u8 valid; 6783c0c050c5SMichael Chan }; 6784c0c050c5SMichael Chan 6785894aa69aSMichael Chan /* hwrm_ring_grp_alloc_input (size:192b/24B) */ 6786c0c050c5SMichael Chan struct hwrm_ring_grp_alloc_input { 6787c0c050c5SMichael Chan __le16 req_type; 6788c0c050c5SMichael Chan __le16 cmpl_ring; 6789c0c050c5SMichael Chan __le16 seq_id; 6790c0c050c5SMichael Chan __le16 target_id; 6791c0c050c5SMichael Chan __le64 resp_addr; 6792c0c050c5SMichael Chan __le16 cr; 6793c0c050c5SMichael Chan __le16 rr; 6794c0c050c5SMichael Chan __le16 ar; 6795c0c050c5SMichael Chan __le16 sc; 6796c0c050c5SMichael Chan }; 6797c0c050c5SMichael Chan 6798894aa69aSMichael Chan /* hwrm_ring_grp_alloc_output (size:128b/16B) */ 6799c0c050c5SMichael Chan struct hwrm_ring_grp_alloc_output { 6800c0c050c5SMichael Chan __le16 error_code; 6801c0c050c5SMichael Chan __le16 req_type; 6802c0c050c5SMichael Chan __le16 seq_id; 6803c0c050c5SMichael Chan __le16 resp_len; 6804c0c050c5SMichael Chan __le32 ring_group_id; 6805894aa69aSMichael Chan u8 unused_0[3]; 6806c0c050c5SMichael Chan u8 valid; 6807c0c050c5SMichael Chan }; 6808c0c050c5SMichael Chan 6809894aa69aSMichael Chan /* hwrm_ring_grp_free_input (size:192b/24B) */ 6810c0c050c5SMichael Chan struct hwrm_ring_grp_free_input { 6811c0c050c5SMichael Chan __le16 req_type; 6812c0c050c5SMichael Chan __le16 cmpl_ring; 6813c0c050c5SMichael Chan __le16 seq_id; 6814c0c050c5SMichael Chan __le16 target_id; 6815c0c050c5SMichael Chan __le64 resp_addr; 6816c0c050c5SMichael Chan __le32 ring_group_id; 6817894aa69aSMichael Chan u8 unused_0[4]; 6818c0c050c5SMichael Chan }; 6819c0c050c5SMichael Chan 6820894aa69aSMichael Chan /* hwrm_ring_grp_free_output (size:128b/16B) */ 6821c0c050c5SMichael Chan struct hwrm_ring_grp_free_output { 6822c0c050c5SMichael Chan __le16 error_code; 6823c0c050c5SMichael Chan __le16 req_type; 6824c0c050c5SMichael Chan __le16 seq_id; 6825c0c050c5SMichael Chan __le16 resp_len; 6826894aa69aSMichael Chan u8 unused_0[7]; 6827c0c050c5SMichael Chan u8 valid; 6828c0c050c5SMichael Chan }; 6829bfc6e5fbSMichael Chan 68303322479eSMichael Chan #define DEFAULT_FLOW_ID 0xFFFFFFFFUL 68313322479eSMichael Chan #define ROCEV1_FLOW_ID 0xFFFFFFFEUL 68323322479eSMichael Chan #define ROCEV2_FLOW_ID 0xFFFFFFFDUL 68333322479eSMichael Chan #define ROCEV2_CNP_FLOW_ID 0xFFFFFFFCUL 6834c0c050c5SMichael Chan 6835894aa69aSMichael Chan /* hwrm_cfa_l2_filter_alloc_input (size:768b/96B) */ 6836c0c050c5SMichael Chan struct hwrm_cfa_l2_filter_alloc_input { 6837c0c050c5SMichael Chan __le16 req_type; 6838c0c050c5SMichael Chan __le16 cmpl_ring; 6839c0c050c5SMichael Chan __le16 seq_id; 6840c0c050c5SMichael Chan __le16 target_id; 6841c0c050c5SMichael Chan __le64 resp_addr; 6842c0c050c5SMichael Chan __le32 flags; 6843c0c050c5SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH 0x1UL 6844894aa69aSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_TX 0x0UL 6845894aa69aSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_RX 0x1UL 684611f15ed3SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_LAST CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_RX 6847c0c050c5SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_LOOPBACK 0x2UL 6848c0c050c5SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_DROP 0x4UL 6849c0c050c5SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_OUTERMOST 0x8UL 685031d357c0SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_MASK 0x30UL 685131d357c0SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_SFT 4 685231d357c0SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_NO_ROCE_L2 (0x0UL << 4) 685331d357c0SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_L2 (0x1UL << 4) 685431d357c0SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_ROCE (0x2UL << 4) 685531d357c0SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_LAST CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_ROCE 68564a50ddc2SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_XDP_DISABLE 0x40UL 68574a50ddc2SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_SOURCE_VALID 0x80UL 6858c0c050c5SMichael Chan __le32 enables; 6859c0c050c5SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_ADDR 0x1UL 6860c0c050c5SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_ADDR_MASK 0x2UL 6861c0c050c5SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_OVLAN 0x4UL 6862c0c050c5SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_OVLAN_MASK 0x8UL 6863c0c050c5SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN 0x10UL 6864c0c050c5SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN_MASK 0x20UL 6865c0c050c5SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_ADDR 0x40UL 6866c0c050c5SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_ADDR_MASK 0x80UL 6867c0c050c5SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_OVLAN 0x100UL 6868c0c050c5SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_OVLAN_MASK 0x200UL 6869c0c050c5SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_IVLAN 0x400UL 6870c0c050c5SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_IVLAN_MASK 0x800UL 6871c0c050c5SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_SRC_TYPE 0x1000UL 6872c0c050c5SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_SRC_ID 0x2000UL 6873c0c050c5SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE 0x4000UL 6874c193554eSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_DST_ID 0x8000UL 6875c0c050c5SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID 0x10000UL 68764a50ddc2SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_NUM_VLANS 0x20000UL 68774a50ddc2SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_NUM_VLANS 0x40000UL 6878c0c050c5SMichael Chan u8 l2_addr[6]; 68794a50ddc2SMichael Chan u8 num_vlans; 68804a50ddc2SMichael Chan u8 t_num_vlans; 6881c0c050c5SMichael Chan u8 l2_addr_mask[6]; 6882c0c050c5SMichael Chan __le16 l2_ovlan; 6883c0c050c5SMichael Chan __le16 l2_ovlan_mask; 6884c0c050c5SMichael Chan __le16 l2_ivlan; 6885c0c050c5SMichael Chan __le16 l2_ivlan_mask; 6886894aa69aSMichael Chan u8 unused_1[2]; 6887c0c050c5SMichael Chan u8 t_l2_addr[6]; 6888894aa69aSMichael Chan u8 unused_2[2]; 6889c0c050c5SMichael Chan u8 t_l2_addr_mask[6]; 6890c0c050c5SMichael Chan __le16 t_l2_ovlan; 6891c0c050c5SMichael Chan __le16 t_l2_ovlan_mask; 6892c0c050c5SMichael Chan __le16 t_l2_ivlan; 6893c0c050c5SMichael Chan __le16 t_l2_ivlan_mask; 6894c0c050c5SMichael Chan u8 src_type; 6895441cabbbSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_NPORT 0x0UL 6896441cabbbSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_PF 0x1UL 6897441cabbbSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_VF 0x2UL 6898441cabbbSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_VNIC 0x3UL 6899441cabbbSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_KONG 0x4UL 6900441cabbbSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_APE 0x5UL 6901441cabbbSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_BONO 0x6UL 6902441cabbbSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_TANG 0x7UL 6903894aa69aSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_LAST CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_TANG 6904894aa69aSMichael Chan u8 unused_3; 6905c0c050c5SMichael Chan __le32 src_id; 6906c0c050c5SMichael Chan u8 tunnel_type; 6907441cabbbSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL 6908441cabbbSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL 6909441cabbbSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE 0x2UL 6910441cabbbSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE 0x3UL 6911441cabbbSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP 0x4UL 6912441cabbbSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL 6913441cabbbSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS 0x6UL 6914441cabbbSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT 0x7UL 6915441cabbbSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE 0x8UL 691657922b0aSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 691731d357c0SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 691831d357c0SMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 69193322479eSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 6920441cabbbSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL 6921894aa69aSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 6922894aa69aSMichael Chan u8 unused_4; 6923c193554eSMichael Chan __le16 dst_id; 6924c0c050c5SMichael Chan __le16 mirror_vnic_id; 6925c0c050c5SMichael Chan u8 pri_hint; 6926441cabbbSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_NO_PREFER 0x0UL 6927441cabbbSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_ABOVE_FILTER 0x1UL 6928441cabbbSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_BELOW_FILTER 0x2UL 6929441cabbbSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_MAX 0x3UL 6930441cabbbSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_MIN 0x4UL 6931894aa69aSMichael Chan #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_LAST CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_MIN 6932894aa69aSMichael Chan u8 unused_5; 6933894aa69aSMichael Chan __le32 unused_6; 6934c0c050c5SMichael Chan __le64 l2_filter_id_hint; 6935c0c050c5SMichael Chan }; 6936c0c050c5SMichael Chan 6937894aa69aSMichael Chan /* hwrm_cfa_l2_filter_alloc_output (size:192b/24B) */ 6938c0c050c5SMichael Chan struct hwrm_cfa_l2_filter_alloc_output { 6939c0c050c5SMichael Chan __le16 error_code; 6940c0c050c5SMichael Chan __le16 req_type; 6941c0c050c5SMichael Chan __le16 seq_id; 6942c0c050c5SMichael Chan __le16 resp_len; 6943c0c050c5SMichael Chan __le64 l2_filter_id; 6944c0c050c5SMichael Chan __le32 flow_id; 69454a50ddc2SMichael Chan #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL 69464a50ddc2SMichael Chan #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_VALUE_SFT 0 69474a50ddc2SMichael Chan #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE 0x40000000UL 69484a50ddc2SMichael Chan #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_INT (0x0UL << 30) 69494a50ddc2SMichael Chan #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT (0x1UL << 30) 69504a50ddc2SMichael Chan #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_LAST CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT 69514a50ddc2SMichael Chan #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR 0x80000000UL 69524a50ddc2SMichael Chan #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_RX (0x0UL << 31) 69534a50ddc2SMichael Chan #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX (0x1UL << 31) 69544a50ddc2SMichael Chan #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_LAST CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX 6955894aa69aSMichael Chan u8 unused_0[3]; 6956c0c050c5SMichael Chan u8 valid; 6957c0c050c5SMichael Chan }; 6958c0c050c5SMichael Chan 6959894aa69aSMichael Chan /* hwrm_cfa_l2_filter_free_input (size:192b/24B) */ 6960c0c050c5SMichael Chan struct hwrm_cfa_l2_filter_free_input { 6961c0c050c5SMichael Chan __le16 req_type; 6962c0c050c5SMichael Chan __le16 cmpl_ring; 6963c0c050c5SMichael Chan __le16 seq_id; 6964c0c050c5SMichael Chan __le16 target_id; 6965c0c050c5SMichael Chan __le64 resp_addr; 6966c0c050c5SMichael Chan __le64 l2_filter_id; 6967c0c050c5SMichael Chan }; 6968c0c050c5SMichael Chan 6969894aa69aSMichael Chan /* hwrm_cfa_l2_filter_free_output (size:128b/16B) */ 6970c0c050c5SMichael Chan struct hwrm_cfa_l2_filter_free_output { 6971c0c050c5SMichael Chan __le16 error_code; 6972c0c050c5SMichael Chan __le16 req_type; 6973c0c050c5SMichael Chan __le16 seq_id; 6974c0c050c5SMichael Chan __le16 resp_len; 6975894aa69aSMichael Chan u8 unused_0[7]; 6976c0c050c5SMichael Chan u8 valid; 6977c0c050c5SMichael Chan }; 6978c0c050c5SMichael Chan 6979894aa69aSMichael Chan /* hwrm_cfa_l2_filter_cfg_input (size:320b/40B) */ 6980c0c050c5SMichael Chan struct hwrm_cfa_l2_filter_cfg_input { 6981c0c050c5SMichael Chan __le16 req_type; 6982c0c050c5SMichael Chan __le16 cmpl_ring; 6983c0c050c5SMichael Chan __le16 seq_id; 6984c0c050c5SMichael Chan __le16 target_id; 6985c0c050c5SMichael Chan __le64 resp_addr; 6986c0c050c5SMichael Chan __le32 flags; 6987c0c050c5SMichael Chan #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH 0x1UL 6988894aa69aSMichael Chan #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_TX 0x0UL 6989894aa69aSMichael Chan #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_RX 0x1UL 699011f15ed3SMichael Chan #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_LAST CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_RX 6991c0c050c5SMichael Chan #define CFA_L2_FILTER_CFG_REQ_FLAGS_DROP 0x2UL 699231d357c0SMichael Chan #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_MASK 0xcUL 699331d357c0SMichael Chan #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_SFT 2 699431d357c0SMichael Chan #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_NO_ROCE_L2 (0x0UL << 2) 699531d357c0SMichael Chan #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_L2 (0x1UL << 2) 699631d357c0SMichael Chan #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_ROCE (0x2UL << 2) 699731d357c0SMichael Chan #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_LAST CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_ROCE 6998c0c050c5SMichael Chan __le32 enables; 6999c193554eSMichael Chan #define CFA_L2_FILTER_CFG_REQ_ENABLES_DST_ID 0x1UL 7000c193554eSMichael Chan #define CFA_L2_FILTER_CFG_REQ_ENABLES_NEW_MIRROR_VNIC_ID 0x2UL 7001c0c050c5SMichael Chan __le64 l2_filter_id; 7002c193554eSMichael Chan __le32 dst_id; 7003c193554eSMichael Chan __le32 new_mirror_vnic_id; 7004c0c050c5SMichael Chan }; 7005c0c050c5SMichael Chan 7006894aa69aSMichael Chan /* hwrm_cfa_l2_filter_cfg_output (size:128b/16B) */ 7007c0c050c5SMichael Chan struct hwrm_cfa_l2_filter_cfg_output { 7008c0c050c5SMichael Chan __le16 error_code; 7009c0c050c5SMichael Chan __le16 req_type; 7010c0c050c5SMichael Chan __le16 seq_id; 7011c0c050c5SMichael Chan __le16 resp_len; 7012894aa69aSMichael Chan u8 unused_0[7]; 7013c0c050c5SMichael Chan u8 valid; 7014c0c050c5SMichael Chan }; 7015c0c050c5SMichael Chan 7016894aa69aSMichael Chan /* hwrm_cfa_l2_set_rx_mask_input (size:448b/56B) */ 7017c0c050c5SMichael Chan struct hwrm_cfa_l2_set_rx_mask_input { 7018c0c050c5SMichael Chan __le16 req_type; 7019c0c050c5SMichael Chan __le16 cmpl_ring; 7020c0c050c5SMichael Chan __le16 seq_id; 7021c0c050c5SMichael Chan __le16 target_id; 7022c0c050c5SMichael Chan __le64 resp_addr; 7023c193554eSMichael Chan __le32 vnic_id; 7024c0c050c5SMichael Chan __le32 mask; 7025c0c050c5SMichael Chan #define CFA_L2_SET_RX_MASK_REQ_MASK_MCAST 0x2UL 7026c0c050c5SMichael Chan #define CFA_L2_SET_RX_MASK_REQ_MASK_ALL_MCAST 0x4UL 7027c0c050c5SMichael Chan #define CFA_L2_SET_RX_MASK_REQ_MASK_BCAST 0x8UL 7028c0c050c5SMichael Chan #define CFA_L2_SET_RX_MASK_REQ_MASK_PROMISCUOUS 0x10UL 7029c0c050c5SMichael Chan #define CFA_L2_SET_RX_MASK_REQ_MASK_OUTERMOST 0x20UL 7030a58a3e68SMichael Chan #define CFA_L2_SET_RX_MASK_REQ_MASK_VLANONLY 0x40UL 7031a58a3e68SMichael Chan #define CFA_L2_SET_RX_MASK_REQ_MASK_VLAN_NONVLAN 0x80UL 7032a58a3e68SMichael Chan #define CFA_L2_SET_RX_MASK_REQ_MASK_ANYVLAN_NONVLAN 0x100UL 7033c0c050c5SMichael Chan __le64 mc_tbl_addr; 7034c0c050c5SMichael Chan __le32 num_mc_entries; 7035894aa69aSMichael Chan u8 unused_0[4]; 7036a58a3e68SMichael Chan __le64 vlan_tag_tbl_addr; 7037a58a3e68SMichael Chan __le32 num_vlan_tags; 7038894aa69aSMichael Chan u8 unused_1[4]; 7039c0c050c5SMichael Chan }; 7040c0c050c5SMichael Chan 7041894aa69aSMichael Chan /* hwrm_cfa_l2_set_rx_mask_output (size:128b/16B) */ 7042c0c050c5SMichael Chan struct hwrm_cfa_l2_set_rx_mask_output { 7043c0c050c5SMichael Chan __le16 error_code; 7044c0c050c5SMichael Chan __le16 req_type; 7045c0c050c5SMichael Chan __le16 seq_id; 7046c0c050c5SMichael Chan __le16 resp_len; 7047894aa69aSMichael Chan u8 unused_0[7]; 7048c0c050c5SMichael Chan u8 valid; 7049c0c050c5SMichael Chan }; 7050c0c050c5SMichael Chan 7051894aa69aSMichael Chan /* hwrm_cfa_l2_set_rx_mask_cmd_err (size:64b/8B) */ 705257922b0aSMichael Chan struct hwrm_cfa_l2_set_rx_mask_cmd_err { 705357922b0aSMichael Chan u8 code; 705457922b0aSMichael Chan #define CFA_L2_SET_RX_MASK_CMD_ERR_CODE_UNKNOWN 0x0UL 705557922b0aSMichael Chan #define CFA_L2_SET_RX_MASK_CMD_ERR_CODE_NTUPLE_FILTER_CONFLICT_ERR 0x1UL 7056894aa69aSMichael Chan #define CFA_L2_SET_RX_MASK_CMD_ERR_CODE_LAST CFA_L2_SET_RX_MASK_CMD_ERR_CODE_NTUPLE_FILTER_CONFLICT_ERR 705757922b0aSMichael Chan u8 unused_0[7]; 705857922b0aSMichael Chan }; 705957922b0aSMichael Chan 7060894aa69aSMichael Chan /* hwrm_cfa_tunnel_filter_alloc_input (size:704b/88B) */ 7061c0c050c5SMichael Chan struct hwrm_cfa_tunnel_filter_alloc_input { 7062c0c050c5SMichael Chan __le16 req_type; 7063c0c050c5SMichael Chan __le16 cmpl_ring; 7064c0c050c5SMichael Chan __le16 seq_id; 7065c0c050c5SMichael Chan __le16 target_id; 7066c0c050c5SMichael Chan __le64 resp_addr; 7067c0c050c5SMichael Chan __le32 flags; 7068c0c050c5SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_FLAGS_LOOPBACK 0x1UL 7069c0c050c5SMichael Chan __le32 enables; 7070c0c050c5SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_FILTER_ID 0x1UL 7071c0c050c5SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_ADDR 0x2UL 7072c0c050c5SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN 0x4UL 7073c0c050c5SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L3_ADDR 0x8UL 7074c0c050c5SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L3_ADDR_TYPE 0x10UL 7075c0c050c5SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_T_L3_ADDR_TYPE 0x20UL 7076c0c050c5SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_T_L3_ADDR 0x40UL 7077c0c050c5SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE 0x80UL 7078c0c050c5SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_VNI 0x100UL 7079c0c050c5SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_DST_VNIC_ID 0x200UL 7080c0c050c5SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID 0x400UL 7081c0c050c5SMichael Chan __le64 l2_filter_id; 7082c0c050c5SMichael Chan u8 l2_addr[6]; 7083c0c050c5SMichael Chan __le16 l2_ivlan; 7084c0c050c5SMichael Chan __le32 l3_addr[4]; 7085c0c050c5SMichael Chan __le32 t_l3_addr[4]; 7086c0c050c5SMichael Chan u8 l3_addr_type; 7087c0c050c5SMichael Chan u8 t_l3_addr_type; 7088c0c050c5SMichael Chan u8 tunnel_type; 7089441cabbbSMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL 7090441cabbbSMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL 7091441cabbbSMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE 0x2UL 7092441cabbbSMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE 0x3UL 7093441cabbbSMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP 0x4UL 7094441cabbbSMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL 7095441cabbbSMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS 0x6UL 7096441cabbbSMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT 0x7UL 7097441cabbbSMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE 0x8UL 709857922b0aSMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 709931d357c0SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 710031d357c0SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 71013322479eSMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 7102441cabbbSMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL 7103894aa69aSMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 7104894aa69aSMichael Chan u8 tunnel_flags; 7105894aa69aSMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_FLAGS_TUN_FLAGS_OAM_CHECKSUM_EXPLHDR 0x1UL 7106894aa69aSMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_FLAGS_TUN_FLAGS_CRITICAL_OPT_S1 0x2UL 7107894aa69aSMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_FLAGS_TUN_FLAGS_EXTHDR_SEQNUM_S0 0x4UL 7108c0c050c5SMichael Chan __le32 vni; 7109c0c050c5SMichael Chan __le32 dst_vnic_id; 7110c0c050c5SMichael Chan __le32 mirror_vnic_id; 7111c0c050c5SMichael Chan }; 7112c0c050c5SMichael Chan 7113894aa69aSMichael Chan /* hwrm_cfa_tunnel_filter_alloc_output (size:192b/24B) */ 7114c0c050c5SMichael Chan struct hwrm_cfa_tunnel_filter_alloc_output { 7115c0c050c5SMichael Chan __le16 error_code; 7116c0c050c5SMichael Chan __le16 req_type; 7117c0c050c5SMichael Chan __le16 seq_id; 7118c0c050c5SMichael Chan __le16 resp_len; 7119c0c050c5SMichael Chan __le64 tunnel_filter_id; 7120c0c050c5SMichael Chan __le32 flow_id; 71214a50ddc2SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL 71224a50ddc2SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_VALUE_SFT 0 71234a50ddc2SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE 0x40000000UL 71244a50ddc2SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_INT (0x0UL << 30) 71254a50ddc2SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT (0x1UL << 30) 71264a50ddc2SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_LAST CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT 71274a50ddc2SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR 0x80000000UL 71284a50ddc2SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_RX (0x0UL << 31) 71294a50ddc2SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX (0x1UL << 31) 71304a50ddc2SMichael Chan #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_LAST CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX 7131894aa69aSMichael Chan u8 unused_0[3]; 7132c0c050c5SMichael Chan u8 valid; 7133c0c050c5SMichael Chan }; 7134c0c050c5SMichael Chan 7135894aa69aSMichael Chan /* hwrm_cfa_tunnel_filter_free_input (size:192b/24B) */ 7136c0c050c5SMichael Chan struct hwrm_cfa_tunnel_filter_free_input { 7137c0c050c5SMichael Chan __le16 req_type; 7138c0c050c5SMichael Chan __le16 cmpl_ring; 7139c0c050c5SMichael Chan __le16 seq_id; 7140c0c050c5SMichael Chan __le16 target_id; 7141c0c050c5SMichael Chan __le64 resp_addr; 7142c0c050c5SMichael Chan __le64 tunnel_filter_id; 7143c0c050c5SMichael Chan }; 7144c0c050c5SMichael Chan 7145894aa69aSMichael Chan /* hwrm_cfa_tunnel_filter_free_output (size:128b/16B) */ 7146c0c050c5SMichael Chan struct hwrm_cfa_tunnel_filter_free_output { 7147c0c050c5SMichael Chan __le16 error_code; 7148c0c050c5SMichael Chan __le16 req_type; 7149c0c050c5SMichael Chan __le16 seq_id; 7150c0c050c5SMichael Chan __le16 resp_len; 7151894aa69aSMichael Chan u8 unused_0[7]; 7152c0c050c5SMichael Chan u8 valid; 7153c0c050c5SMichael Chan }; 7154c0c050c5SMichael Chan 7155894aa69aSMichael Chan /* hwrm_vxlan_ipv4_hdr (size:128b/16B) */ 7156894aa69aSMichael Chan struct hwrm_vxlan_ipv4_hdr { 7157894aa69aSMichael Chan u8 ver_hlen; 7158894aa69aSMichael Chan #define VXLAN_IPV4_HDR_VER_HLEN_HEADER_LENGTH_MASK 0xfUL 7159894aa69aSMichael Chan #define VXLAN_IPV4_HDR_VER_HLEN_HEADER_LENGTH_SFT 0 7160894aa69aSMichael Chan #define VXLAN_IPV4_HDR_VER_HLEN_VERSION_MASK 0xf0UL 7161894aa69aSMichael Chan #define VXLAN_IPV4_HDR_VER_HLEN_VERSION_SFT 4 7162894aa69aSMichael Chan u8 tos; 7163894aa69aSMichael Chan __be16 ip_id; 7164894aa69aSMichael Chan __be16 flags_frag_offset; 7165894aa69aSMichael Chan u8 ttl; 7166894aa69aSMichael Chan u8 protocol; 7167894aa69aSMichael Chan __be32 src_ip_addr; 7168894aa69aSMichael Chan __be32 dest_ip_addr; 7169894aa69aSMichael Chan }; 7170894aa69aSMichael Chan 7171894aa69aSMichael Chan /* hwrm_vxlan_ipv6_hdr (size:320b/40B) */ 7172894aa69aSMichael Chan struct hwrm_vxlan_ipv6_hdr { 7173894aa69aSMichael Chan __be32 ver_tc_flow_label; 7174894aa69aSMichael Chan #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_VER_SFT 0x1cUL 7175894aa69aSMichael Chan #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_VER_MASK 0xf0000000UL 7176894aa69aSMichael Chan #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_TC_SFT 0x14UL 7177894aa69aSMichael Chan #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_TC_MASK 0xff00000UL 7178894aa69aSMichael Chan #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_FLOW_LABEL_SFT 0x0UL 7179894aa69aSMichael Chan #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_FLOW_LABEL_MASK 0xfffffUL 7180894aa69aSMichael Chan #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_LAST VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_FLOW_LABEL_MASK 7181894aa69aSMichael Chan __be16 payload_len; 7182894aa69aSMichael Chan u8 next_hdr; 7183894aa69aSMichael Chan u8 ttl; 7184894aa69aSMichael Chan __be32 src_ip_addr[4]; 7185894aa69aSMichael Chan __be32 dest_ip_addr[4]; 7186894aa69aSMichael Chan }; 7187894aa69aSMichael Chan 718831d357c0SMichael Chan /* hwrm_cfa_encap_data_vxlan (size:640b/80B) */ 7189894aa69aSMichael Chan struct hwrm_cfa_encap_data_vxlan { 7190894aa69aSMichael Chan u8 src_mac_addr[6]; 7191894aa69aSMichael Chan __le16 unused_0; 7192894aa69aSMichael Chan u8 dst_mac_addr[6]; 7193894aa69aSMichael Chan u8 num_vlan_tags; 7194894aa69aSMichael Chan u8 unused_1; 7195894aa69aSMichael Chan __be16 ovlan_tpid; 7196894aa69aSMichael Chan __be16 ovlan_tci; 7197894aa69aSMichael Chan __be16 ivlan_tpid; 7198894aa69aSMichael Chan __be16 ivlan_tci; 7199894aa69aSMichael Chan __le32 l3[10]; 7200894aa69aSMichael Chan #define CFA_ENCAP_DATA_VXLAN_L3_VER_MASK 0xfUL 7201894aa69aSMichael Chan #define CFA_ENCAP_DATA_VXLAN_L3_VER_IPV4 0x4UL 7202894aa69aSMichael Chan #define CFA_ENCAP_DATA_VXLAN_L3_VER_IPV6 0x6UL 7203894aa69aSMichael Chan #define CFA_ENCAP_DATA_VXLAN_L3_LAST CFA_ENCAP_DATA_VXLAN_L3_VER_IPV6 7204894aa69aSMichael Chan __be16 src_port; 7205894aa69aSMichael Chan __be16 dst_port; 7206894aa69aSMichael Chan __be32 vni; 720731d357c0SMichael Chan u8 hdr_rsvd0[3]; 720831d357c0SMichael Chan u8 hdr_rsvd1; 720931d357c0SMichael Chan u8 hdr_flags; 721031d357c0SMichael Chan u8 unused[3]; 7211894aa69aSMichael Chan }; 7212894aa69aSMichael Chan 7213894aa69aSMichael Chan /* hwrm_cfa_encap_record_alloc_input (size:832b/104B) */ 7214c0c050c5SMichael Chan struct hwrm_cfa_encap_record_alloc_input { 7215c0c050c5SMichael Chan __le16 req_type; 7216c0c050c5SMichael Chan __le16 cmpl_ring; 7217c0c050c5SMichael Chan __le16 seq_id; 7218c0c050c5SMichael Chan __le16 target_id; 7219c0c050c5SMichael Chan __le64 resp_addr; 7220c0c050c5SMichael Chan __le32 flags; 7221c0c050c5SMichael Chan #define CFA_ENCAP_RECORD_ALLOC_REQ_FLAGS_LOOPBACK 0x1UL 72223293ec23SMichael Chan #define CFA_ENCAP_RECORD_ALLOC_REQ_FLAGS_EXTERNAL 0x2UL 7223c0c050c5SMichael Chan u8 encap_type; 7224441cabbbSMichael Chan #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN 0x1UL 7225441cabbbSMichael Chan #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_NVGRE 0x2UL 7226441cabbbSMichael Chan #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_L2GRE 0x3UL 7227441cabbbSMichael Chan #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_IPIP 0x4UL 7228441cabbbSMichael Chan #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_GENEVE 0x5UL 7229441cabbbSMichael Chan #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_MPLS 0x6UL 7230441cabbbSMichael Chan #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VLAN 0x7UL 7231441cabbbSMichael Chan #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_IPGRE 0x8UL 723231d357c0SMichael Chan #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN_V4 0x9UL 723331d357c0SMichael Chan #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_IPGRE_V1 0xaUL 723431d357c0SMichael Chan #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_L2_ETYPE 0xbUL 72353293ec23SMichael Chan #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN_GPE_V6 0xcUL 72363293ec23SMichael Chan #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_LAST CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN_GPE_V6 7237894aa69aSMichael Chan u8 unused_0[3]; 7238acb20054SMichael Chan __le32 encap_data[20]; 7239c0c050c5SMichael Chan }; 7240c0c050c5SMichael Chan 7241894aa69aSMichael Chan /* hwrm_cfa_encap_record_alloc_output (size:128b/16B) */ 7242c0c050c5SMichael Chan struct hwrm_cfa_encap_record_alloc_output { 7243c0c050c5SMichael Chan __le16 error_code; 7244c0c050c5SMichael Chan __le16 req_type; 7245c0c050c5SMichael Chan __le16 seq_id; 7246c0c050c5SMichael Chan __le16 resp_len; 7247c193554eSMichael Chan __le32 encap_record_id; 7248894aa69aSMichael Chan u8 unused_0[3]; 7249c0c050c5SMichael Chan u8 valid; 7250c0c050c5SMichael Chan }; 7251c0c050c5SMichael Chan 7252894aa69aSMichael Chan /* hwrm_cfa_encap_record_free_input (size:192b/24B) */ 7253c0c050c5SMichael Chan struct hwrm_cfa_encap_record_free_input { 7254c0c050c5SMichael Chan __le16 req_type; 7255c0c050c5SMichael Chan __le16 cmpl_ring; 7256c0c050c5SMichael Chan __le16 seq_id; 7257c0c050c5SMichael Chan __le16 target_id; 7258c0c050c5SMichael Chan __le64 resp_addr; 7259c193554eSMichael Chan __le32 encap_record_id; 7260894aa69aSMichael Chan u8 unused_0[4]; 7261c0c050c5SMichael Chan }; 7262c0c050c5SMichael Chan 7263894aa69aSMichael Chan /* hwrm_cfa_encap_record_free_output (size:128b/16B) */ 7264c0c050c5SMichael Chan struct hwrm_cfa_encap_record_free_output { 7265c0c050c5SMichael Chan __le16 error_code; 7266c0c050c5SMichael Chan __le16 req_type; 7267c0c050c5SMichael Chan __le16 seq_id; 7268c0c050c5SMichael Chan __le16 resp_len; 7269894aa69aSMichael Chan u8 unused_0[7]; 7270c0c050c5SMichael Chan u8 valid; 7271c0c050c5SMichael Chan }; 7272c0c050c5SMichael Chan 727341136ab3SMichael Chan /* hwrm_cfa_ntuple_filter_alloc_input (size:1024b/128B) */ 7274c0c050c5SMichael Chan struct hwrm_cfa_ntuple_filter_alloc_input { 7275c0c050c5SMichael Chan __le16 req_type; 7276c0c050c5SMichael Chan __le16 cmpl_ring; 7277c0c050c5SMichael Chan __le16 seq_id; 7278c0c050c5SMichael Chan __le16 target_id; 7279c0c050c5SMichael Chan __le64 resp_addr; 7280c0c050c5SMichael Chan __le32 flags; 7281c0c050c5SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_LOOPBACK 0x1UL 7282c0c050c5SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_DROP 0x2UL 7283bac9a7e0SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_METER 0x4UL 72843293ec23SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_DEST_FID 0x8UL 728541136ab3SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_ARP_REPLY 0x10UL 728641136ab3SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_DEST_RFS_RING_IDX 0x20UL 728721e70778SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_NO_L2_CONTEXT 0x40UL 7288c0c050c5SMichael Chan __le32 enables; 7289c0c050c5SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_L2_FILTER_ID 0x1UL 7290c0c050c5SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_ETHERTYPE 0x2UL 7291c0c050c5SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE 0x4UL 7292c0c050c5SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_MACADDR 0x8UL 7293c0c050c5SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_IPADDR_TYPE 0x10UL 7294c0c050c5SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_IPADDR 0x20UL 7295c0c050c5SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_IPADDR_MASK 0x40UL 7296c0c050c5SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_IPADDR 0x80UL 7297c0c050c5SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_IPADDR_MASK 0x100UL 7298c0c050c5SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_IP_PROTOCOL 0x200UL 7299c0c050c5SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_PORT 0x400UL 7300c0c050c5SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_PORT_MASK 0x800UL 7301c0c050c5SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_PORT 0x1000UL 7302c0c050c5SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_PORT_MASK 0x2000UL 7303c0c050c5SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_PRI_HINT 0x4000UL 7304c0c050c5SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_NTUPLE_FILTER_ID 0x8000UL 7305c193554eSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_ID 0x10000UL 7306c0c050c5SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID 0x20000UL 7307c193554eSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_MACADDR 0x40000UL 73084a50ddc2SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_RFS_RING_TBL_IDX 0x80000UL 7309c0c050c5SMichael Chan __le64 l2_filter_id; 7310c0c050c5SMichael Chan u8 src_macaddr[6]; 7311c0c050c5SMichael Chan __be16 ethertype; 7312c193554eSMichael Chan u8 ip_addr_type; 7313441cabbbSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_UNKNOWN 0x0UL 7314441cabbbSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV4 0x4UL 7315441cabbbSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6 0x6UL 7316894aa69aSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_LAST CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6 7317c0c050c5SMichael Chan u8 ip_protocol; 7318441cabbbSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_UNKNOWN 0x0UL 7319acb20054SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_TCP 0x6UL 7320acb20054SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP 0x11UL 732184a911dbSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_ICMP 0x1UL 732284a911dbSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_ICMPV6 0x3aUL 732384a911dbSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_RSVD 0xffUL 732484a911dbSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_LAST CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_RSVD 7325c193554eSMichael Chan __le16 dst_id; 7326c0c050c5SMichael Chan __le16 mirror_vnic_id; 7327c0c050c5SMichael Chan u8 tunnel_type; 7328441cabbbSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL 7329441cabbbSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL 7330441cabbbSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE 0x2UL 7331441cabbbSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE 0x3UL 7332441cabbbSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP 0x4UL 7333441cabbbSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL 7334441cabbbSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS 0x6UL 7335441cabbbSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT 0x7UL 7336441cabbbSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE 0x8UL 733757922b0aSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 733831d357c0SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 733931d357c0SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 73403322479eSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 7341441cabbbSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL 7342894aa69aSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 7343c0c050c5SMichael Chan u8 pri_hint; 7344441cabbbSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_NO_PREFER 0x0UL 7345441cabbbSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_ABOVE 0x1UL 7346441cabbbSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_BELOW 0x2UL 7347441cabbbSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_HIGHEST 0x3UL 7348441cabbbSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_LOWEST 0x4UL 7349894aa69aSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_LAST CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_LOWEST 7350c0c050c5SMichael Chan __be32 src_ipaddr[4]; 7351c0c050c5SMichael Chan __be32 src_ipaddr_mask[4]; 7352c0c050c5SMichael Chan __be32 dst_ipaddr[4]; 7353c0c050c5SMichael Chan __be32 dst_ipaddr_mask[4]; 7354c0c050c5SMichael Chan __be16 src_port; 7355c0c050c5SMichael Chan __be16 src_port_mask; 7356c0c050c5SMichael Chan __be16 dst_port; 7357c0c050c5SMichael Chan __be16 dst_port_mask; 7358c0c050c5SMichael Chan __le64 ntuple_filter_id_hint; 7359c0c050c5SMichael Chan }; 7360c0c050c5SMichael Chan 7361894aa69aSMichael Chan /* hwrm_cfa_ntuple_filter_alloc_output (size:192b/24B) */ 7362c0c050c5SMichael Chan struct hwrm_cfa_ntuple_filter_alloc_output { 7363c0c050c5SMichael Chan __le16 error_code; 7364c0c050c5SMichael Chan __le16 req_type; 7365c0c050c5SMichael Chan __le16 seq_id; 7366c0c050c5SMichael Chan __le16 resp_len; 7367c0c050c5SMichael Chan __le64 ntuple_filter_id; 7368c0c050c5SMichael Chan __le32 flow_id; 73694a50ddc2SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL 73704a50ddc2SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_VALUE_SFT 0 73714a50ddc2SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE 0x40000000UL 73724a50ddc2SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_INT (0x0UL << 30) 73734a50ddc2SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT (0x1UL << 30) 73744a50ddc2SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_LAST CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT 73754a50ddc2SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR 0x80000000UL 73764a50ddc2SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_RX (0x0UL << 31) 73774a50ddc2SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX (0x1UL << 31) 73784a50ddc2SMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_LAST CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX 7379894aa69aSMichael Chan u8 unused_0[3]; 7380c0c050c5SMichael Chan u8 valid; 7381c0c050c5SMichael Chan }; 7382c0c050c5SMichael Chan 7383894aa69aSMichael Chan /* hwrm_cfa_ntuple_filter_alloc_cmd_err (size:64b/8B) */ 738457922b0aSMichael Chan struct hwrm_cfa_ntuple_filter_alloc_cmd_err { 738557922b0aSMichael Chan u8 code; 738657922b0aSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_UNKNOWN 0x0UL 738757922b0aSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_RX_MASK_VLAN_CONFLICT_ERR 0x1UL 7388894aa69aSMichael Chan #define CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_LAST CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_RX_MASK_VLAN_CONFLICT_ERR 738957922b0aSMichael Chan u8 unused_0[7]; 739057922b0aSMichael Chan }; 739157922b0aSMichael Chan 7392894aa69aSMichael Chan /* hwrm_cfa_ntuple_filter_free_input (size:192b/24B) */ 7393c0c050c5SMichael Chan struct hwrm_cfa_ntuple_filter_free_input { 7394c0c050c5SMichael Chan __le16 req_type; 7395c0c050c5SMichael Chan __le16 cmpl_ring; 7396c0c050c5SMichael Chan __le16 seq_id; 7397c0c050c5SMichael Chan __le16 target_id; 7398c0c050c5SMichael Chan __le64 resp_addr; 7399c0c050c5SMichael Chan __le64 ntuple_filter_id; 7400c0c050c5SMichael Chan }; 7401c0c050c5SMichael Chan 7402894aa69aSMichael Chan /* hwrm_cfa_ntuple_filter_free_output (size:128b/16B) */ 7403c0c050c5SMichael Chan struct hwrm_cfa_ntuple_filter_free_output { 7404c0c050c5SMichael Chan __le16 error_code; 7405c0c050c5SMichael Chan __le16 req_type; 7406c0c050c5SMichael Chan __le16 seq_id; 7407c0c050c5SMichael Chan __le16 resp_len; 7408894aa69aSMichael Chan u8 unused_0[7]; 7409c0c050c5SMichael Chan u8 valid; 7410c0c050c5SMichael Chan }; 7411c0c050c5SMichael Chan 7412894aa69aSMichael Chan /* hwrm_cfa_ntuple_filter_cfg_input (size:384b/48B) */ 7413c0c050c5SMichael Chan struct hwrm_cfa_ntuple_filter_cfg_input { 7414c0c050c5SMichael Chan __le16 req_type; 7415c0c050c5SMichael Chan __le16 cmpl_ring; 7416c0c050c5SMichael Chan __le16 seq_id; 7417c0c050c5SMichael Chan __le16 target_id; 7418c0c050c5SMichael Chan __le64 resp_addr; 7419c0c050c5SMichael Chan __le32 enables; 7420c193554eSMichael Chan #define CFA_NTUPLE_FILTER_CFG_REQ_ENABLES_NEW_DST_ID 0x1UL 7421c193554eSMichael Chan #define CFA_NTUPLE_FILTER_CFG_REQ_ENABLES_NEW_MIRROR_VNIC_ID 0x2UL 7422bac9a7e0SMichael Chan #define CFA_NTUPLE_FILTER_CFG_REQ_ENABLES_NEW_METER_INSTANCE_ID 0x4UL 74233293ec23SMichael Chan __le32 flags; 74243293ec23SMichael Chan #define CFA_NTUPLE_FILTER_CFG_REQ_FLAGS_DEST_FID 0x1UL 742541136ab3SMichael Chan #define CFA_NTUPLE_FILTER_CFG_REQ_FLAGS_DEST_RFS_RING_IDX 0x2UL 742621e70778SMichael Chan #define CFA_NTUPLE_FILTER_CFG_REQ_FLAGS_NO_L2_CONTEXT 0x4UL 7427c0c050c5SMichael Chan __le64 ntuple_filter_id; 7428c193554eSMichael Chan __le32 new_dst_id; 7429c0c050c5SMichael Chan __le32 new_mirror_vnic_id; 7430bac9a7e0SMichael Chan __le16 new_meter_instance_id; 7431bac9a7e0SMichael Chan #define CFA_NTUPLE_FILTER_CFG_REQ_NEW_METER_INSTANCE_ID_INVALID 0xffffUL 7432894aa69aSMichael Chan #define CFA_NTUPLE_FILTER_CFG_REQ_NEW_METER_INSTANCE_ID_LAST CFA_NTUPLE_FILTER_CFG_REQ_NEW_METER_INSTANCE_ID_INVALID 7433894aa69aSMichael Chan u8 unused_1[6]; 7434c0c050c5SMichael Chan }; 7435c0c050c5SMichael Chan 7436894aa69aSMichael Chan /* hwrm_cfa_ntuple_filter_cfg_output (size:128b/16B) */ 7437c0c050c5SMichael Chan struct hwrm_cfa_ntuple_filter_cfg_output { 7438c0c050c5SMichael Chan __le16 error_code; 7439c0c050c5SMichael Chan __le16 req_type; 7440c0c050c5SMichael Chan __le16 seq_id; 7441c0c050c5SMichael Chan __le16 resp_len; 7442894aa69aSMichael Chan u8 unused_0[7]; 7443c0c050c5SMichael Chan u8 valid; 7444c0c050c5SMichael Chan }; 7445c0c050c5SMichael Chan 7446894aa69aSMichael Chan /* hwrm_cfa_decap_filter_alloc_input (size:832b/104B) */ 744757922b0aSMichael Chan struct hwrm_cfa_decap_filter_alloc_input { 744857922b0aSMichael Chan __le16 req_type; 744957922b0aSMichael Chan __le16 cmpl_ring; 745057922b0aSMichael Chan __le16 seq_id; 745157922b0aSMichael Chan __le16 target_id; 745257922b0aSMichael Chan __le64 resp_addr; 745357922b0aSMichael Chan __le32 flags; 745457922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_FLAGS_OVS_TUNNEL 0x1UL 745557922b0aSMichael Chan __le32 enables; 745657922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE 0x1UL 745757922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_TUNNEL_ID 0x2UL 745857922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_SRC_MACADDR 0x4UL 745957922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_MACADDR 0x8UL 746057922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_OVLAN_VID 0x10UL 746157922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_IVLAN_VID 0x20UL 746257922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_T_OVLAN_VID 0x40UL 746357922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_T_IVLAN_VID 0x80UL 746457922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_ETHERTYPE 0x100UL 746557922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_SRC_IPADDR 0x200UL 746657922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_IPADDR 0x400UL 746757922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_IPADDR_TYPE 0x800UL 746857922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_IP_PROTOCOL 0x1000UL 746957922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_SRC_PORT 0x2000UL 747057922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_PORT 0x4000UL 747157922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_ID 0x8000UL 747257922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID 0x10000UL 747357922b0aSMichael Chan __be32 tunnel_id; 747457922b0aSMichael Chan u8 tunnel_type; 747557922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL 747657922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL 747757922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE 0x2UL 747857922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE 0x3UL 747957922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP 0x4UL 748057922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL 748157922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS 0x6UL 748257922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT 0x7UL 748357922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE 0x8UL 748457922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 748531d357c0SMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 748631d357c0SMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 74873322479eSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 748857922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL 7489894aa69aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 749057922b0aSMichael Chan u8 unused_0; 749157922b0aSMichael Chan __le16 unused_1; 749257922b0aSMichael Chan u8 src_macaddr[6]; 7493894aa69aSMichael Chan u8 unused_2[2]; 749457922b0aSMichael Chan u8 dst_macaddr[6]; 749557922b0aSMichael Chan __be16 ovlan_vid; 749657922b0aSMichael Chan __be16 ivlan_vid; 749757922b0aSMichael Chan __be16 t_ovlan_vid; 749857922b0aSMichael Chan __be16 t_ivlan_vid; 749957922b0aSMichael Chan __be16 ethertype; 750057922b0aSMichael Chan u8 ip_addr_type; 750157922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_UNKNOWN 0x0UL 750257922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV4 0x4UL 750357922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6 0x6UL 7504894aa69aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_LAST CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6 750557922b0aSMichael Chan u8 ip_protocol; 750657922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_UNKNOWN 0x0UL 750757922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_TCP 0x6UL 750857922b0aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP 0x11UL 7509894aa69aSMichael Chan #define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_LAST CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP 7510894aa69aSMichael Chan __le16 unused_3; 7511894aa69aSMichael Chan __le32 unused_4; 751257922b0aSMichael Chan __be32 src_ipaddr[4]; 751357922b0aSMichael Chan __be32 dst_ipaddr[4]; 751457922b0aSMichael Chan __be16 src_port; 751557922b0aSMichael Chan __be16 dst_port; 751657922b0aSMichael Chan __le16 dst_id; 751757922b0aSMichael Chan __le16 l2_ctxt_ref_id; 751857922b0aSMichael Chan }; 751957922b0aSMichael Chan 7520894aa69aSMichael Chan /* hwrm_cfa_decap_filter_alloc_output (size:128b/16B) */ 752157922b0aSMichael Chan struct hwrm_cfa_decap_filter_alloc_output { 752257922b0aSMichael Chan __le16 error_code; 752357922b0aSMichael Chan __le16 req_type; 752457922b0aSMichael Chan __le16 seq_id; 752557922b0aSMichael Chan __le16 resp_len; 752657922b0aSMichael Chan __le32 decap_filter_id; 7527894aa69aSMichael Chan u8 unused_0[3]; 752857922b0aSMichael Chan u8 valid; 752957922b0aSMichael Chan }; 753057922b0aSMichael Chan 7531894aa69aSMichael Chan /* hwrm_cfa_decap_filter_free_input (size:192b/24B) */ 753257922b0aSMichael Chan struct hwrm_cfa_decap_filter_free_input { 753357922b0aSMichael Chan __le16 req_type; 753457922b0aSMichael Chan __le16 cmpl_ring; 753557922b0aSMichael Chan __le16 seq_id; 753657922b0aSMichael Chan __le16 target_id; 753757922b0aSMichael Chan __le64 resp_addr; 753857922b0aSMichael Chan __le32 decap_filter_id; 7539894aa69aSMichael Chan u8 unused_0[4]; 754057922b0aSMichael Chan }; 754157922b0aSMichael Chan 7542894aa69aSMichael Chan /* hwrm_cfa_decap_filter_free_output (size:128b/16B) */ 754357922b0aSMichael Chan struct hwrm_cfa_decap_filter_free_output { 754457922b0aSMichael Chan __le16 error_code; 754557922b0aSMichael Chan __le16 req_type; 754657922b0aSMichael Chan __le16 seq_id; 754757922b0aSMichael Chan __le16 resp_len; 7548894aa69aSMichael Chan u8 unused_0[7]; 754957922b0aSMichael Chan u8 valid; 755057922b0aSMichael Chan }; 755157922b0aSMichael Chan 7552894aa69aSMichael Chan /* hwrm_cfa_flow_alloc_input (size:1024b/128B) */ 75536a17eb27SMichael Chan struct hwrm_cfa_flow_alloc_input { 75546a17eb27SMichael Chan __le16 req_type; 75556a17eb27SMichael Chan __le16 cmpl_ring; 75566a17eb27SMichael Chan __le16 seq_id; 75576a17eb27SMichael Chan __le16 target_id; 75586a17eb27SMichael Chan __le64 resp_addr; 75596a17eb27SMichael Chan __le16 flags; 75606a17eb27SMichael Chan #define CFA_FLOW_ALLOC_REQ_FLAGS_TUNNEL 0x1UL 75616a17eb27SMichael Chan #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_MASK 0x6UL 75626a17eb27SMichael Chan #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_SFT 1 75636a17eb27SMichael Chan #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_NONE (0x0UL << 1) 75646a17eb27SMichael Chan #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_ONE (0x1UL << 1) 75656a17eb27SMichael Chan #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_TWO (0x2UL << 1) 75666a17eb27SMichael Chan #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_LAST CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_TWO 75676a17eb27SMichael Chan #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_MASK 0x38UL 75686a17eb27SMichael Chan #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_SFT 3 75696a17eb27SMichael Chan #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_L2 (0x0UL << 3) 75706a17eb27SMichael Chan #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_IPV4 (0x1UL << 3) 75716a17eb27SMichael Chan #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_IPV6 (0x2UL << 3) 75726a17eb27SMichael Chan #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_LAST CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_IPV6 757331d357c0SMichael Chan #define CFA_FLOW_ALLOC_REQ_FLAGS_PATH_TX 0x40UL 757431d357c0SMichael Chan #define CFA_FLOW_ALLOC_REQ_FLAGS_PATH_RX 0x80UL 757531d357c0SMichael Chan #define CFA_FLOW_ALLOC_REQ_FLAGS_MATCH_VXLAN_IP_VNI 0x100UL 75763322479eSMichael Chan #define CFA_FLOW_ALLOC_REQ_FLAGS_VHOST_ID_USE_VLAN 0x200UL 75776a17eb27SMichael Chan __le16 src_fid; 75786a17eb27SMichael Chan __le32 tunnel_handle; 75796a17eb27SMichael Chan __le16 action_flags; 75806a17eb27SMichael Chan #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_FWD 0x1UL 75816a17eb27SMichael Chan #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_RECYCLE 0x2UL 75826a17eb27SMichael Chan #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_DROP 0x4UL 75836a17eb27SMichael Chan #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_METER 0x8UL 75846a17eb27SMichael Chan #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_TUNNEL 0x10UL 75856a17eb27SMichael Chan #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NAT_SRC 0x20UL 75866a17eb27SMichael Chan #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NAT_DEST 0x40UL 75876a17eb27SMichael Chan #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NAT_IPV4_ADDRESS 0x80UL 75886a17eb27SMichael Chan #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_L2_HEADER_REWRITE 0x100UL 75896a17eb27SMichael Chan #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_TTL_DECREMENT 0x200UL 759031d357c0SMichael Chan #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_TUNNEL_IP 0x400UL 75913322479eSMichael Chan #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_FLOW_AGING_ENABLED 0x800UL 75923322479eSMichael Chan #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_PRI_HINT 0x1000UL 75934a50ddc2SMichael Chan #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NO_FLOW_COUNTER_ALLOC 0x2000UL 75946a17eb27SMichael Chan __le16 dst_fid; 75956a17eb27SMichael Chan __be16 l2_rewrite_vlan_tpid; 75966a17eb27SMichael Chan __be16 l2_rewrite_vlan_tci; 75976a17eb27SMichael Chan __le16 act_meter_id; 75986a17eb27SMichael Chan __le16 ref_flow_handle; 75996a17eb27SMichael Chan __be16 ethertype; 76006a17eb27SMichael Chan __be16 outer_vlan_tci; 76016a17eb27SMichael Chan __be16 dmac[3]; 76026a17eb27SMichael Chan __be16 inner_vlan_tci; 76036a17eb27SMichael Chan __be16 smac[3]; 76046a17eb27SMichael Chan u8 ip_dst_mask_len; 76056a17eb27SMichael Chan u8 ip_src_mask_len; 76066a17eb27SMichael Chan __be32 ip_dst[4]; 76076a17eb27SMichael Chan __be32 ip_src[4]; 76086a17eb27SMichael Chan __be16 l4_src_port; 76096a17eb27SMichael Chan __be16 l4_src_port_mask; 76106a17eb27SMichael Chan __be16 l4_dst_port; 76116a17eb27SMichael Chan __be16 l4_dst_port_mask; 76126a17eb27SMichael Chan __be32 nat_ip_address[4]; 76136a17eb27SMichael Chan __be16 l2_rewrite_dmac[3]; 76146a17eb27SMichael Chan __be16 nat_port; 76156a17eb27SMichael Chan __be16 l2_rewrite_smac[3]; 76166a17eb27SMichael Chan u8 ip_proto; 761731d357c0SMichael Chan u8 tunnel_type; 761831d357c0SMichael Chan #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL 761931d357c0SMichael Chan #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL 762031d357c0SMichael Chan #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_NVGRE 0x2UL 762131d357c0SMichael Chan #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_L2GRE 0x3UL 762231d357c0SMichael Chan #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_IPIP 0x4UL 762331d357c0SMichael Chan #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL 762431d357c0SMichael Chan #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_MPLS 0x6UL 762531d357c0SMichael Chan #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_STT 0x7UL 762631d357c0SMichael Chan #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_IPGRE 0x8UL 762731d357c0SMichael Chan #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 762831d357c0SMichael Chan #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 762931d357c0SMichael Chan #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 76303322479eSMichael Chan #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 763131d357c0SMichael Chan #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL 763231d357c0SMichael Chan #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_LAST CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 76336a17eb27SMichael Chan }; 76346a17eb27SMichael Chan 763531d357c0SMichael Chan /* hwrm_cfa_flow_alloc_output (size:256b/32B) */ 76366a17eb27SMichael Chan struct hwrm_cfa_flow_alloc_output { 76376a17eb27SMichael Chan __le16 error_code; 76386a17eb27SMichael Chan __le16 req_type; 76396a17eb27SMichael Chan __le16 seq_id; 76406a17eb27SMichael Chan __le16 resp_len; 76416a17eb27SMichael Chan __le16 flow_handle; 764231d357c0SMichael Chan u8 unused_0[2]; 764331d357c0SMichael Chan __le32 flow_id; 76444a50ddc2SMichael Chan #define CFA_FLOW_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL 76454a50ddc2SMichael Chan #define CFA_FLOW_ALLOC_RESP_FLOW_ID_VALUE_SFT 0 76464a50ddc2SMichael Chan #define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE 0x40000000UL 76474a50ddc2SMichael Chan #define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_INT (0x0UL << 30) 76484a50ddc2SMichael Chan #define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_EXT (0x1UL << 30) 76494a50ddc2SMichael Chan #define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_LAST CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_EXT 76504a50ddc2SMichael Chan #define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR 0x80000000UL 76514a50ddc2SMichael Chan #define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_RX (0x0UL << 31) 76524a50ddc2SMichael Chan #define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_TX (0x1UL << 31) 76534a50ddc2SMichael Chan #define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_LAST CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_TX 765431d357c0SMichael Chan __le64 ext_flow_handle; 76553322479eSMichael Chan __le32 flow_counter_id; 76563322479eSMichael Chan u8 unused_1[3]; 76576a17eb27SMichael Chan u8 valid; 76586a17eb27SMichael Chan }; 76596a17eb27SMichael Chan 76602792b5b9SMichael Chan /* hwrm_cfa_flow_alloc_cmd_err (size:64b/8B) */ 76612792b5b9SMichael Chan struct hwrm_cfa_flow_alloc_cmd_err { 76622792b5b9SMichael Chan u8 code; 76632792b5b9SMichael Chan #define CFA_FLOW_ALLOC_CMD_ERR_CODE_UNKNOWN 0x0UL 76642792b5b9SMichael Chan #define CFA_FLOW_ALLOC_CMD_ERR_CODE_L2_CONTEXT_TCAM 0x1UL 76652792b5b9SMichael Chan #define CFA_FLOW_ALLOC_CMD_ERR_CODE_ACTION_RECORD 0x2UL 76662792b5b9SMichael Chan #define CFA_FLOW_ALLOC_CMD_ERR_CODE_FLOW_COUNTER 0x3UL 76672792b5b9SMichael Chan #define CFA_FLOW_ALLOC_CMD_ERR_CODE_WILD_CARD_TCAM 0x4UL 76682792b5b9SMichael Chan #define CFA_FLOW_ALLOC_CMD_ERR_CODE_HASH_COLLISION 0x5UL 76692792b5b9SMichael Chan #define CFA_FLOW_ALLOC_CMD_ERR_CODE_KEY_EXISTS 0x6UL 76702792b5b9SMichael Chan #define CFA_FLOW_ALLOC_CMD_ERR_CODE_FLOW_CTXT_DB 0x7UL 76712792b5b9SMichael Chan #define CFA_FLOW_ALLOC_CMD_ERR_CODE_LAST CFA_FLOW_ALLOC_CMD_ERR_CODE_FLOW_CTXT_DB 76722792b5b9SMichael Chan u8 unused_0[7]; 76732792b5b9SMichael Chan }; 76742792b5b9SMichael Chan 767531d357c0SMichael Chan /* hwrm_cfa_flow_free_input (size:256b/32B) */ 76766a17eb27SMichael Chan struct hwrm_cfa_flow_free_input { 76776a17eb27SMichael Chan __le16 req_type; 76786a17eb27SMichael Chan __le16 cmpl_ring; 76796a17eb27SMichael Chan __le16 seq_id; 76806a17eb27SMichael Chan __le16 target_id; 76816a17eb27SMichael Chan __le64 resp_addr; 76826a17eb27SMichael Chan __le16 flow_handle; 76834a50ddc2SMichael Chan __le16 unused_0; 76844a50ddc2SMichael Chan __le32 flow_counter_id; 768531d357c0SMichael Chan __le64 ext_flow_handle; 76866a17eb27SMichael Chan }; 76876a17eb27SMichael Chan 7688894aa69aSMichael Chan /* hwrm_cfa_flow_free_output (size:256b/32B) */ 76896a17eb27SMichael Chan struct hwrm_cfa_flow_free_output { 76906a17eb27SMichael Chan __le16 error_code; 76916a17eb27SMichael Chan __le16 req_type; 76926a17eb27SMichael Chan __le16 seq_id; 76936a17eb27SMichael Chan __le16 resp_len; 76946a17eb27SMichael Chan __le64 packet; 76956a17eb27SMichael Chan __le64 byte; 7696894aa69aSMichael Chan u8 unused_0[7]; 76976a17eb27SMichael Chan u8 valid; 76986a17eb27SMichael Chan }; 76996a17eb27SMichael Chan 77003322479eSMichael Chan /* hwrm_cfa_flow_info_input (size:256b/32B) */ 77013322479eSMichael Chan struct hwrm_cfa_flow_info_input { 77023322479eSMichael Chan __le16 req_type; 77033322479eSMichael Chan __le16 cmpl_ring; 77043322479eSMichael Chan __le16 seq_id; 77053322479eSMichael Chan __le16 target_id; 77063322479eSMichael Chan __le64 resp_addr; 77073322479eSMichael Chan __le16 flow_handle; 77083322479eSMichael Chan #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_MAX_MASK 0xfffUL 77093322479eSMichael Chan #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_CNP_CNT 0x1000UL 77103322479eSMichael Chan #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_ROCEV1_CNT 0x2000UL 7711ad04cc05SMichael Chan #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_NIC_TX 0x3000UL 77123322479eSMichael Chan #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_ROCEV2_CNT 0x4000UL 77133322479eSMichael Chan #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_DIR_RX 0x8000UL 7714ad04cc05SMichael Chan #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_CNP_CNT_RX 0x9000UL 7715ad04cc05SMichael Chan #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_ROCEV1_CNT_RX 0xa000UL 7716ad04cc05SMichael Chan #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_NIC_RX 0xb000UL 7717ad04cc05SMichael Chan #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_ROCEV2_CNT_RX 0xc000UL 7718ad04cc05SMichael Chan #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_LAST CFA_FLOW_INFO_REQ_FLOW_HANDLE_ROCEV2_CNT_RX 77193322479eSMichael Chan u8 unused_0[6]; 77203322479eSMichael Chan __le64 ext_flow_handle; 77213322479eSMichael Chan }; 77223322479eSMichael Chan 77233293ec23SMichael Chan /* hwrm_cfa_flow_info_output (size:5632b/704B) */ 77243322479eSMichael Chan struct hwrm_cfa_flow_info_output { 77253322479eSMichael Chan __le16 error_code; 77263322479eSMichael Chan __le16 req_type; 77273322479eSMichael Chan __le16 seq_id; 77283322479eSMichael Chan __le16 resp_len; 77293322479eSMichael Chan u8 flags; 77303293ec23SMichael Chan #define CFA_FLOW_INFO_RESP_FLAGS_PATH_TX 0x1UL 77313293ec23SMichael Chan #define CFA_FLOW_INFO_RESP_FLAGS_PATH_RX 0x2UL 77323322479eSMichael Chan u8 profile; 77333322479eSMichael Chan __le16 src_fid; 77343322479eSMichael Chan __le16 dst_fid; 77353322479eSMichael Chan __le16 l2_ctxt_id; 77363322479eSMichael Chan __le64 em_info; 77373322479eSMichael Chan __le64 tcam_info; 77383322479eSMichael Chan __le64 vfp_tcam_info; 77393322479eSMichael Chan __le16 ar_id; 77403322479eSMichael Chan __le16 flow_handle; 77413322479eSMichael Chan __le32 tunnel_handle; 77423322479eSMichael Chan __le16 flow_timer; 77433293ec23SMichael Chan u8 unused_0[6]; 77443293ec23SMichael Chan __le32 flow_key_data[130]; 77453293ec23SMichael Chan __le32 flow_action_info[30]; 77463293ec23SMichael Chan u8 unused_1[7]; 77473322479eSMichael Chan u8 valid; 77483322479eSMichael Chan }; 77493322479eSMichael Chan 775031d357c0SMichael Chan /* hwrm_cfa_flow_stats_input (size:640b/80B) */ 77516a17eb27SMichael Chan struct hwrm_cfa_flow_stats_input { 77526a17eb27SMichael Chan __le16 req_type; 77536a17eb27SMichael Chan __le16 cmpl_ring; 77546a17eb27SMichael Chan __le16 seq_id; 77556a17eb27SMichael Chan __le16 target_id; 77566a17eb27SMichael Chan __le64 resp_addr; 77576a17eb27SMichael Chan __le16 num_flows; 77586a17eb27SMichael Chan __le16 flow_handle_0; 77596a17eb27SMichael Chan __le16 flow_handle_1; 77606a17eb27SMichael Chan __le16 flow_handle_2; 77616a17eb27SMichael Chan __le16 flow_handle_3; 77626a17eb27SMichael Chan __le16 flow_handle_4; 77636a17eb27SMichael Chan __le16 flow_handle_5; 77646a17eb27SMichael Chan __le16 flow_handle_6; 77656a17eb27SMichael Chan __le16 flow_handle_7; 77666a17eb27SMichael Chan __le16 flow_handle_8; 77676a17eb27SMichael Chan __le16 flow_handle_9; 7768894aa69aSMichael Chan u8 unused_0[2]; 776931d357c0SMichael Chan __le32 flow_id_0; 777031d357c0SMichael Chan __le32 flow_id_1; 777131d357c0SMichael Chan __le32 flow_id_2; 777231d357c0SMichael Chan __le32 flow_id_3; 777331d357c0SMichael Chan __le32 flow_id_4; 777431d357c0SMichael Chan __le32 flow_id_5; 777531d357c0SMichael Chan __le32 flow_id_6; 777631d357c0SMichael Chan __le32 flow_id_7; 777731d357c0SMichael Chan __le32 flow_id_8; 777831d357c0SMichael Chan __le32 flow_id_9; 77796a17eb27SMichael Chan }; 77806a17eb27SMichael Chan 7781894aa69aSMichael Chan /* hwrm_cfa_flow_stats_output (size:1408b/176B) */ 77826a17eb27SMichael Chan struct hwrm_cfa_flow_stats_output { 77836a17eb27SMichael Chan __le16 error_code; 77846a17eb27SMichael Chan __le16 req_type; 77856a17eb27SMichael Chan __le16 seq_id; 77866a17eb27SMichael Chan __le16 resp_len; 77876a17eb27SMichael Chan __le64 packet_0; 77886a17eb27SMichael Chan __le64 packet_1; 77896a17eb27SMichael Chan __le64 packet_2; 77906a17eb27SMichael Chan __le64 packet_3; 77916a17eb27SMichael Chan __le64 packet_4; 77926a17eb27SMichael Chan __le64 packet_5; 77936a17eb27SMichael Chan __le64 packet_6; 77946a17eb27SMichael Chan __le64 packet_7; 77956a17eb27SMichael Chan __le64 packet_8; 77966a17eb27SMichael Chan __le64 packet_9; 77976a17eb27SMichael Chan __le64 byte_0; 77986a17eb27SMichael Chan __le64 byte_1; 77996a17eb27SMichael Chan __le64 byte_2; 78006a17eb27SMichael Chan __le64 byte_3; 78016a17eb27SMichael Chan __le64 byte_4; 78026a17eb27SMichael Chan __le64 byte_5; 78036a17eb27SMichael Chan __le64 byte_6; 78046a17eb27SMichael Chan __le64 byte_7; 78056a17eb27SMichael Chan __le64 byte_8; 78066a17eb27SMichael Chan __le64 byte_9; 7807ad04cc05SMichael Chan __le16 flow_hits; 7808ad04cc05SMichael Chan u8 unused_0[5]; 78096a17eb27SMichael Chan u8 valid; 78106a17eb27SMichael Chan }; 78116a17eb27SMichael Chan 7812894aa69aSMichael Chan /* hwrm_cfa_vfr_alloc_input (size:448b/56B) */ 7813acb20054SMichael Chan struct hwrm_cfa_vfr_alloc_input { 7814acb20054SMichael Chan __le16 req_type; 7815acb20054SMichael Chan __le16 cmpl_ring; 7816acb20054SMichael Chan __le16 seq_id; 7817acb20054SMichael Chan __le16 target_id; 7818acb20054SMichael Chan __le64 resp_addr; 7819acb20054SMichael Chan __le16 vf_id; 7820acb20054SMichael Chan __le16 reserved; 7821894aa69aSMichael Chan u8 unused_0[4]; 7822acb20054SMichael Chan char vfr_name[32]; 7823acb20054SMichael Chan }; 7824acb20054SMichael Chan 7825894aa69aSMichael Chan /* hwrm_cfa_vfr_alloc_output (size:128b/16B) */ 7826acb20054SMichael Chan struct hwrm_cfa_vfr_alloc_output { 7827acb20054SMichael Chan __le16 error_code; 7828acb20054SMichael Chan __le16 req_type; 7829acb20054SMichael Chan __le16 seq_id; 7830acb20054SMichael Chan __le16 resp_len; 7831acb20054SMichael Chan __le16 rx_cfa_code; 7832acb20054SMichael Chan __le16 tx_cfa_action; 7833894aa69aSMichael Chan u8 unused_0[3]; 7834acb20054SMichael Chan u8 valid; 7835acb20054SMichael Chan }; 7836acb20054SMichael Chan 78379d6b648cSMichael Chan /* hwrm_cfa_vfr_free_input (size:448b/56B) */ 7838acb20054SMichael Chan struct hwrm_cfa_vfr_free_input { 7839acb20054SMichael Chan __le16 req_type; 7840acb20054SMichael Chan __le16 cmpl_ring; 7841acb20054SMichael Chan __le16 seq_id; 7842acb20054SMichael Chan __le16 target_id; 7843acb20054SMichael Chan __le64 resp_addr; 7844acb20054SMichael Chan char vfr_name[32]; 78459d6b648cSMichael Chan __le16 vf_id; 78469d6b648cSMichael Chan __le16 reserved; 78479d6b648cSMichael Chan u8 unused_0[4]; 7848acb20054SMichael Chan }; 7849acb20054SMichael Chan 7850894aa69aSMichael Chan /* hwrm_cfa_vfr_free_output (size:128b/16B) */ 7851acb20054SMichael Chan struct hwrm_cfa_vfr_free_output { 7852acb20054SMichael Chan __le16 error_code; 7853acb20054SMichael Chan __le16 req_type; 7854acb20054SMichael Chan __le16 seq_id; 7855acb20054SMichael Chan __le16 resp_len; 7856894aa69aSMichael Chan u8 unused_0[7]; 7857acb20054SMichael Chan u8 valid; 7858acb20054SMichael Chan }; 7859acb20054SMichael Chan 78603322479eSMichael Chan /* hwrm_cfa_eem_qcaps_input (size:192b/24B) */ 78613322479eSMichael Chan struct hwrm_cfa_eem_qcaps_input { 78623322479eSMichael Chan __le16 req_type; 78633322479eSMichael Chan __le16 cmpl_ring; 78643322479eSMichael Chan __le16 seq_id; 78653322479eSMichael Chan __le16 target_id; 78663322479eSMichael Chan __le64 resp_addr; 78673322479eSMichael Chan __le32 flags; 78683322479eSMichael Chan #define CFA_EEM_QCAPS_REQ_FLAGS_PATH_TX 0x1UL 78693322479eSMichael Chan #define CFA_EEM_QCAPS_REQ_FLAGS_PATH_RX 0x2UL 78703322479eSMichael Chan #define CFA_EEM_QCAPS_REQ_FLAGS_PREFERRED_OFFLOAD 0x4UL 78713322479eSMichael Chan __le32 unused_0; 78723322479eSMichael Chan }; 78733322479eSMichael Chan 78742792b5b9SMichael Chan /* hwrm_cfa_eem_qcaps_output (size:320b/40B) */ 78753322479eSMichael Chan struct hwrm_cfa_eem_qcaps_output { 78763322479eSMichael Chan __le16 error_code; 78773322479eSMichael Chan __le16 req_type; 78783322479eSMichael Chan __le16 seq_id; 78793322479eSMichael Chan __le16 resp_len; 78803322479eSMichael Chan __le32 flags; 78813322479eSMichael Chan #define CFA_EEM_QCAPS_RESP_FLAGS_PATH_TX 0x1UL 78823322479eSMichael Chan #define CFA_EEM_QCAPS_RESP_FLAGS_PATH_RX 0x2UL 78834a50ddc2SMichael Chan #define CFA_EEM_QCAPS_RESP_FLAGS_CENTRALIZED_MEMORY_MODEL_SUPPORTED 0x4UL 78844a50ddc2SMichael Chan #define CFA_EEM_QCAPS_RESP_FLAGS_DETACHED_CENTRALIZED_MEMORY_MODEL_SUPPORTED 0x8UL 78853322479eSMichael Chan __le32 unused_0; 78863322479eSMichael Chan __le32 supported; 78873322479eSMichael Chan #define CFA_EEM_QCAPS_RESP_SUPPORTED_KEY0_TABLE 0x1UL 78883322479eSMichael Chan #define CFA_EEM_QCAPS_RESP_SUPPORTED_KEY1_TABLE 0x2UL 78893322479eSMichael Chan #define CFA_EEM_QCAPS_RESP_SUPPORTED_EXTERNAL_RECORD_TABLE 0x4UL 78903322479eSMichael Chan #define CFA_EEM_QCAPS_RESP_SUPPORTED_EXTERNAL_FLOW_COUNTERS_TABLE 0x8UL 78912792b5b9SMichael Chan #define CFA_EEM_QCAPS_RESP_SUPPORTED_FID_TABLE 0x10UL 78923322479eSMichael Chan __le32 max_entries_supported; 78933322479eSMichael Chan __le16 key_entry_size; 78943322479eSMichael Chan __le16 record_entry_size; 78953322479eSMichael Chan __le16 efc_entry_size; 78962792b5b9SMichael Chan __le16 fid_entry_size; 78972792b5b9SMichael Chan u8 unused_1[7]; 78983322479eSMichael Chan u8 valid; 78993322479eSMichael Chan }; 79003322479eSMichael Chan 79012792b5b9SMichael Chan /* hwrm_cfa_eem_cfg_input (size:384b/48B) */ 79023322479eSMichael Chan struct hwrm_cfa_eem_cfg_input { 79033322479eSMichael Chan __le16 req_type; 79043322479eSMichael Chan __le16 cmpl_ring; 79053322479eSMichael Chan __le16 seq_id; 79063322479eSMichael Chan __le16 target_id; 79073322479eSMichael Chan __le64 resp_addr; 79083322479eSMichael Chan __le32 flags; 79093322479eSMichael Chan #define CFA_EEM_CFG_REQ_FLAGS_PATH_TX 0x1UL 79103322479eSMichael Chan #define CFA_EEM_CFG_REQ_FLAGS_PATH_RX 0x2UL 79113322479eSMichael Chan #define CFA_EEM_CFG_REQ_FLAGS_PREFERRED_OFFLOAD 0x4UL 79124a50ddc2SMichael Chan #define CFA_EEM_CFG_REQ_FLAGS_SECONDARY_PF 0x8UL 79134a50ddc2SMichael Chan __le16 group_id; 79144a50ddc2SMichael Chan __le16 unused_0; 79153322479eSMichael Chan __le32 num_entries; 79163322479eSMichael Chan __le32 unused_1; 79173322479eSMichael Chan __le16 key0_ctx_id; 79183322479eSMichael Chan __le16 key1_ctx_id; 79193322479eSMichael Chan __le16 record_ctx_id; 79203322479eSMichael Chan __le16 efc_ctx_id; 79212792b5b9SMichael Chan __le16 fid_ctx_id; 79222792b5b9SMichael Chan __le16 unused_2; 79232792b5b9SMichael Chan __le32 unused_3; 79243322479eSMichael Chan }; 79253322479eSMichael Chan 79263322479eSMichael Chan /* hwrm_cfa_eem_cfg_output (size:128b/16B) */ 79273322479eSMichael Chan struct hwrm_cfa_eem_cfg_output { 79283322479eSMichael Chan __le16 error_code; 79293322479eSMichael Chan __le16 req_type; 79303322479eSMichael Chan __le16 seq_id; 79313322479eSMichael Chan __le16 resp_len; 79323322479eSMichael Chan u8 unused_0[7]; 79333322479eSMichael Chan u8 valid; 79343322479eSMichael Chan }; 79353322479eSMichael Chan 79363322479eSMichael Chan /* hwrm_cfa_eem_qcfg_input (size:192b/24B) */ 79373322479eSMichael Chan struct hwrm_cfa_eem_qcfg_input { 79383322479eSMichael Chan __le16 req_type; 79393322479eSMichael Chan __le16 cmpl_ring; 79403322479eSMichael Chan __le16 seq_id; 79413322479eSMichael Chan __le16 target_id; 79423322479eSMichael Chan __le64 resp_addr; 79433322479eSMichael Chan __le32 flags; 79443322479eSMichael Chan #define CFA_EEM_QCFG_REQ_FLAGS_PATH_TX 0x1UL 79453322479eSMichael Chan #define CFA_EEM_QCFG_REQ_FLAGS_PATH_RX 0x2UL 79463322479eSMichael Chan __le32 unused_0; 79473322479eSMichael Chan }; 79483322479eSMichael Chan 79492792b5b9SMichael Chan /* hwrm_cfa_eem_qcfg_output (size:256b/32B) */ 79503322479eSMichael Chan struct hwrm_cfa_eem_qcfg_output { 79513322479eSMichael Chan __le16 error_code; 79523322479eSMichael Chan __le16 req_type; 79533322479eSMichael Chan __le16 seq_id; 79543322479eSMichael Chan __le16 resp_len; 79553322479eSMichael Chan __le32 flags; 79563322479eSMichael Chan #define CFA_EEM_QCFG_RESP_FLAGS_PATH_TX 0x1UL 79573322479eSMichael Chan #define CFA_EEM_QCFG_RESP_FLAGS_PATH_RX 0x2UL 79583322479eSMichael Chan #define CFA_EEM_QCFG_RESP_FLAGS_PREFERRED_OFFLOAD 0x4UL 79593322479eSMichael Chan __le32 num_entries; 79602792b5b9SMichael Chan __le16 key0_ctx_id; 79612792b5b9SMichael Chan __le16 key1_ctx_id; 79622792b5b9SMichael Chan __le16 record_ctx_id; 79632792b5b9SMichael Chan __le16 efc_ctx_id; 79642792b5b9SMichael Chan __le16 fid_ctx_id; 79652792b5b9SMichael Chan u8 unused_2[5]; 79664a50ddc2SMichael Chan u8 valid; 79673322479eSMichael Chan }; 79683322479eSMichael Chan 79693322479eSMichael Chan /* hwrm_cfa_eem_op_input (size:192b/24B) */ 79703322479eSMichael Chan struct hwrm_cfa_eem_op_input { 79713322479eSMichael Chan __le16 req_type; 79723322479eSMichael Chan __le16 cmpl_ring; 79733322479eSMichael Chan __le16 seq_id; 79743322479eSMichael Chan __le16 target_id; 79753322479eSMichael Chan __le64 resp_addr; 79763322479eSMichael Chan __le32 flags; 79773322479eSMichael Chan #define CFA_EEM_OP_REQ_FLAGS_PATH_TX 0x1UL 79783322479eSMichael Chan #define CFA_EEM_OP_REQ_FLAGS_PATH_RX 0x2UL 79793322479eSMichael Chan __le16 unused_0; 79803322479eSMichael Chan __le16 op; 79813322479eSMichael Chan #define CFA_EEM_OP_REQ_OP_RESERVED 0x0UL 79823322479eSMichael Chan #define CFA_EEM_OP_REQ_OP_EEM_DISABLE 0x1UL 79833322479eSMichael Chan #define CFA_EEM_OP_REQ_OP_EEM_ENABLE 0x2UL 79843322479eSMichael Chan #define CFA_EEM_OP_REQ_OP_EEM_CLEANUP 0x3UL 79853322479eSMichael Chan #define CFA_EEM_OP_REQ_OP_LAST CFA_EEM_OP_REQ_OP_EEM_CLEANUP 79863322479eSMichael Chan }; 79873322479eSMichael Chan 79883322479eSMichael Chan /* hwrm_cfa_eem_op_output (size:128b/16B) */ 79893322479eSMichael Chan struct hwrm_cfa_eem_op_output { 79903322479eSMichael Chan __le16 error_code; 79913322479eSMichael Chan __le16 req_type; 79923322479eSMichael Chan __le16 seq_id; 79933322479eSMichael Chan __le16 resp_len; 79943322479eSMichael Chan u8 unused_0[7]; 79953322479eSMichael Chan u8 valid; 79963322479eSMichael Chan }; 79973322479eSMichael Chan 79984a50ddc2SMichael Chan /* hwrm_cfa_adv_flow_mgnt_qcaps_input (size:256b/32B) */ 79994a50ddc2SMichael Chan struct hwrm_cfa_adv_flow_mgnt_qcaps_input { 80004a50ddc2SMichael Chan __le16 req_type; 80014a50ddc2SMichael Chan __le16 cmpl_ring; 80024a50ddc2SMichael Chan __le16 seq_id; 80034a50ddc2SMichael Chan __le16 target_id; 80044a50ddc2SMichael Chan __le64 resp_addr; 80054a50ddc2SMichael Chan __le32 unused_0[4]; 80064a50ddc2SMichael Chan }; 80074a50ddc2SMichael Chan 80084a50ddc2SMichael Chan /* hwrm_cfa_adv_flow_mgnt_qcaps_output (size:128b/16B) */ 80094a50ddc2SMichael Chan struct hwrm_cfa_adv_flow_mgnt_qcaps_output { 80104a50ddc2SMichael Chan __le16 error_code; 80114a50ddc2SMichael Chan __le16 req_type; 80124a50ddc2SMichael Chan __le16 seq_id; 80134a50ddc2SMichael Chan __le16 resp_len; 80144a50ddc2SMichael Chan __le32 flags; 80154a50ddc2SMichael Chan #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_HND_16BIT_SUPPORTED 0x1UL 80164a50ddc2SMichael Chan #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_HND_64BIT_SUPPORTED 0x2UL 80174a50ddc2SMichael Chan #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_BATCH_DELETE_SUPPORTED 0x4UL 80184a50ddc2SMichael Chan #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_RESET_ALL_SUPPORTED 0x8UL 80194a50ddc2SMichael Chan #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_NTUPLE_FLOW_DEST_FUNC_SUPPORTED 0x10UL 80204a50ddc2SMichael Chan #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_TX_EEM_FLOW_SUPPORTED 0x20UL 80214a50ddc2SMichael Chan #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_RX_EEM_FLOW_SUPPORTED 0x40UL 80224a50ddc2SMichael Chan #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_COUNTER_ALLOC_SUPPORTED 0x80UL 80234a50ddc2SMichael Chan #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_RFS_RING_TBL_IDX_SUPPORTED 0x100UL 80244a50ddc2SMichael Chan #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_UNTAGGED_VLAN_SUPPORTED 0x200UL 80254a50ddc2SMichael Chan #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_XDP_SUPPORTED 0x400UL 80264a50ddc2SMichael Chan #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_L2_HEADER_SOURCE_FIELDS_SUPPORTED 0x800UL 802741136ab3SMichael Chan #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_NTUPLE_FLOW_RX_ARP_SUPPORTED 0x1000UL 802841136ab3SMichael Chan #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_RFS_RING_TBL_IDX_V2_SUPPORTED 0x2000UL 802941136ab3SMichael Chan #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_NTUPLE_FLOW_RX_ETHERTYPE_IP_SUPPORTED 0x4000UL 803016db6323SMichael Chan #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_TRUFLOW_CAPABLE 0x8000UL 803116db6323SMichael Chan #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_L2_FILTER_TRAFFIC_TYPE_L2_ROCE_SUPPORTED 0x10000UL 803278eeadb8SMichael Chan #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_LAG_SUPPORTED 0x20000UL 803321e70778SMichael Chan #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_NTUPLE_FLOW_NO_L2CTX_SUPPORTED 0x40000UL 8034ad04cc05SMichael Chan #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_NIC_FLOW_STATS_SUPPORTED 0x80000UL 803584a911dbSMichael Chan #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_NTUPLE_FLOW_RX_EXT_IP_PROTO_SUPPORTED 0x100000UL 80364a50ddc2SMichael Chan u8 unused_0[3]; 80374a50ddc2SMichael Chan u8 valid; 80384a50ddc2SMichael Chan }; 80394a50ddc2SMichael Chan 80402895c153SMichael Chan /* hwrm_tunnel_dst_port_query_input (size:192b/24B) */ 8041c0c050c5SMichael Chan struct hwrm_tunnel_dst_port_query_input { 8042c0c050c5SMichael Chan __le16 req_type; 8043c0c050c5SMichael Chan __le16 cmpl_ring; 8044c0c050c5SMichael Chan __le16 seq_id; 8045c0c050c5SMichael Chan __le16 target_id; 8046c0c050c5SMichael Chan __le64 resp_addr; 8047c0c050c5SMichael Chan u8 tunnel_type; 8048441cabbbSMichael Chan #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN 0x1UL 8049441cabbbSMichael Chan #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_GENEVE 0x5UL 805057922b0aSMichael Chan #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 80516fc92c33SMichael Chan #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 805231d357c0SMichael Chan #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 80533322479eSMichael Chan #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 805484a911dbSMichael Chan #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_CUSTOM_GRE 0xdUL 805584a911dbSMichael Chan #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_ECPRI 0xeUL 805684a911dbSMichael Chan #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_LAST TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_ECPRI 8057c0c050c5SMichael Chan u8 unused_0[7]; 8058c0c050c5SMichael Chan }; 8059c0c050c5SMichael Chan 8060894aa69aSMichael Chan /* hwrm_tunnel_dst_port_query_output (size:128b/16B) */ 8061c0c050c5SMichael Chan struct hwrm_tunnel_dst_port_query_output { 8062c0c050c5SMichael Chan __le16 error_code; 8063c0c050c5SMichael Chan __le16 req_type; 8064c0c050c5SMichael Chan __le16 seq_id; 8065c0c050c5SMichael Chan __le16 resp_len; 8066c0c050c5SMichael Chan __le16 tunnel_dst_port_id; 8067c0c050c5SMichael Chan __be16 tunnel_dst_port_val; 806884a911dbSMichael Chan u8 upar_in_use; 806984a911dbSMichael Chan #define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR0 0x1UL 807084a911dbSMichael Chan #define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR1 0x2UL 807184a911dbSMichael Chan #define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR2 0x4UL 807284a911dbSMichael Chan #define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR3 0x8UL 807384a911dbSMichael Chan #define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR4 0x10UL 807484a911dbSMichael Chan #define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR5 0x20UL 807584a911dbSMichael Chan #define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR6 0x40UL 807684a911dbSMichael Chan #define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR7 0x80UL 807784a911dbSMichael Chan u8 unused_0[2]; 8078c0c050c5SMichael Chan u8 valid; 8079c0c050c5SMichael Chan }; 8080c0c050c5SMichael Chan 8081894aa69aSMichael Chan /* hwrm_tunnel_dst_port_alloc_input (size:192b/24B) */ 8082c0c050c5SMichael Chan struct hwrm_tunnel_dst_port_alloc_input { 8083c0c050c5SMichael Chan __le16 req_type; 8084c0c050c5SMichael Chan __le16 cmpl_ring; 8085c0c050c5SMichael Chan __le16 seq_id; 8086c0c050c5SMichael Chan __le16 target_id; 8087c0c050c5SMichael Chan __le64 resp_addr; 8088c0c050c5SMichael Chan u8 tunnel_type; 8089441cabbbSMichael Chan #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL 8090441cabbbSMichael Chan #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL 809157922b0aSMichael Chan #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 80926fc92c33SMichael Chan #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 809331d357c0SMichael Chan #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 80943322479eSMichael Chan #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 809584a911dbSMichael Chan #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_CUSTOM_GRE 0xdUL 809684a911dbSMichael Chan #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_ECPRI 0xeUL 809784a911dbSMichael Chan #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_LAST TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_ECPRI 8098c0c050c5SMichael Chan u8 unused_0; 8099c0c050c5SMichael Chan __be16 tunnel_dst_port_val; 8100894aa69aSMichael Chan u8 unused_1[4]; 8101c0c050c5SMichael Chan }; 8102c0c050c5SMichael Chan 8103894aa69aSMichael Chan /* hwrm_tunnel_dst_port_alloc_output (size:128b/16B) */ 8104c0c050c5SMichael Chan struct hwrm_tunnel_dst_port_alloc_output { 8105c0c050c5SMichael Chan __le16 error_code; 8106c0c050c5SMichael Chan __le16 req_type; 8107c0c050c5SMichael Chan __le16 seq_id; 8108c0c050c5SMichael Chan __le16 resp_len; 8109c0c050c5SMichael Chan __le16 tunnel_dst_port_id; 811084a911dbSMichael Chan u8 error_info; 811184a911dbSMichael Chan #define TUNNEL_DST_PORT_ALLOC_RESP_ERROR_INFO_SUCCESS 0x0UL 811284a911dbSMichael Chan #define TUNNEL_DST_PORT_ALLOC_RESP_ERROR_INFO_ERR_ALLOCATED 0x1UL 811384a911dbSMichael Chan #define TUNNEL_DST_PORT_ALLOC_RESP_ERROR_INFO_ERR_NO_RESOURCE 0x2UL 811484a911dbSMichael Chan #define TUNNEL_DST_PORT_ALLOC_RESP_ERROR_INFO_LAST TUNNEL_DST_PORT_ALLOC_RESP_ERROR_INFO_ERR_NO_RESOURCE 811584a911dbSMichael Chan u8 upar_in_use; 811684a911dbSMichael Chan #define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR0 0x1UL 811784a911dbSMichael Chan #define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR1 0x2UL 811884a911dbSMichael Chan #define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR2 0x4UL 811984a911dbSMichael Chan #define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR3 0x8UL 812084a911dbSMichael Chan #define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR4 0x10UL 812184a911dbSMichael Chan #define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR5 0x20UL 812284a911dbSMichael Chan #define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR6 0x40UL 812384a911dbSMichael Chan #define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR7 0x80UL 812484a911dbSMichael Chan u8 unused_0[3]; 8125c0c050c5SMichael Chan u8 valid; 8126c0c050c5SMichael Chan }; 8127c0c050c5SMichael Chan 8128894aa69aSMichael Chan /* hwrm_tunnel_dst_port_free_input (size:192b/24B) */ 8129c0c050c5SMichael Chan struct hwrm_tunnel_dst_port_free_input { 8130c0c050c5SMichael Chan __le16 req_type; 8131c0c050c5SMichael Chan __le16 cmpl_ring; 8132c0c050c5SMichael Chan __le16 seq_id; 8133c0c050c5SMichael Chan __le16 target_id; 8134c0c050c5SMichael Chan __le64 resp_addr; 8135c0c050c5SMichael Chan u8 tunnel_type; 8136441cabbbSMichael Chan #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN 0x1UL 8137441cabbbSMichael Chan #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_GENEVE 0x5UL 813857922b0aSMichael Chan #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL 81396fc92c33SMichael Chan #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL 814031d357c0SMichael Chan #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL 81413322479eSMichael Chan #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL 814284a911dbSMichael Chan #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_CUSTOM_GRE 0xdUL 814384a911dbSMichael Chan #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_ECPRI 0xeUL 814484a911dbSMichael Chan #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_LAST TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_ECPRI 8145c0c050c5SMichael Chan u8 unused_0; 8146c0c050c5SMichael Chan __le16 tunnel_dst_port_id; 8147894aa69aSMichael Chan u8 unused_1[4]; 8148c0c050c5SMichael Chan }; 8149c0c050c5SMichael Chan 8150894aa69aSMichael Chan /* hwrm_tunnel_dst_port_free_output (size:128b/16B) */ 8151c0c050c5SMichael Chan struct hwrm_tunnel_dst_port_free_output { 8152c0c050c5SMichael Chan __le16 error_code; 8153c0c050c5SMichael Chan __le16 req_type; 8154c0c050c5SMichael Chan __le16 seq_id; 8155c0c050c5SMichael Chan __le16 resp_len; 815684a911dbSMichael Chan u8 error_info; 815784a911dbSMichael Chan #define TUNNEL_DST_PORT_FREE_RESP_ERROR_INFO_SUCCESS 0x0UL 815884a911dbSMichael Chan #define TUNNEL_DST_PORT_FREE_RESP_ERROR_INFO_ERR_NOT_OWNER 0x1UL 815984a911dbSMichael Chan #define TUNNEL_DST_PORT_FREE_RESP_ERROR_INFO_ERR_NOT_ALLOCATED 0x2UL 816084a911dbSMichael Chan #define TUNNEL_DST_PORT_FREE_RESP_ERROR_INFO_LAST TUNNEL_DST_PORT_FREE_RESP_ERROR_INFO_ERR_NOT_ALLOCATED 816184a911dbSMichael Chan u8 unused_1[6]; 8162c0c050c5SMichael Chan u8 valid; 8163c0c050c5SMichael Chan }; 8164c0c050c5SMichael Chan 8165894aa69aSMichael Chan /* ctx_hw_stats (size:1280b/160B) */ 8166894aa69aSMichael Chan struct ctx_hw_stats { 8167894aa69aSMichael Chan __le64 rx_ucast_pkts; 8168894aa69aSMichael Chan __le64 rx_mcast_pkts; 8169894aa69aSMichael Chan __le64 rx_bcast_pkts; 8170894aa69aSMichael Chan __le64 rx_discard_pkts; 8171bfc6e5fbSMichael Chan __le64 rx_error_pkts; 8172894aa69aSMichael Chan __le64 rx_ucast_bytes; 8173894aa69aSMichael Chan __le64 rx_mcast_bytes; 8174894aa69aSMichael Chan __le64 rx_bcast_bytes; 8175894aa69aSMichael Chan __le64 tx_ucast_pkts; 8176894aa69aSMichael Chan __le64 tx_mcast_pkts; 8177894aa69aSMichael Chan __le64 tx_bcast_pkts; 8178bfc6e5fbSMichael Chan __le64 tx_error_pkts; 8179894aa69aSMichael Chan __le64 tx_discard_pkts; 8180894aa69aSMichael Chan __le64 tx_ucast_bytes; 8181894aa69aSMichael Chan __le64 tx_mcast_bytes; 8182894aa69aSMichael Chan __le64 tx_bcast_bytes; 8183894aa69aSMichael Chan __le64 tpa_pkts; 8184894aa69aSMichael Chan __le64 tpa_bytes; 8185894aa69aSMichael Chan __le64 tpa_events; 8186894aa69aSMichael Chan __le64 tpa_aborts; 8187894aa69aSMichael Chan }; 8188894aa69aSMichael Chan 81899d6b648cSMichael Chan /* ctx_hw_stats_ext (size:1408b/176B) */ 81902792b5b9SMichael Chan struct ctx_hw_stats_ext { 81912792b5b9SMichael Chan __le64 rx_ucast_pkts; 81922792b5b9SMichael Chan __le64 rx_mcast_pkts; 81932792b5b9SMichael Chan __le64 rx_bcast_pkts; 81942792b5b9SMichael Chan __le64 rx_discard_pkts; 8195bfc6e5fbSMichael Chan __le64 rx_error_pkts; 81962792b5b9SMichael Chan __le64 rx_ucast_bytes; 81972792b5b9SMichael Chan __le64 rx_mcast_bytes; 81982792b5b9SMichael Chan __le64 rx_bcast_bytes; 81992792b5b9SMichael Chan __le64 tx_ucast_pkts; 82002792b5b9SMichael Chan __le64 tx_mcast_pkts; 82012792b5b9SMichael Chan __le64 tx_bcast_pkts; 8202bfc6e5fbSMichael Chan __le64 tx_error_pkts; 82032792b5b9SMichael Chan __le64 tx_discard_pkts; 82042792b5b9SMichael Chan __le64 tx_ucast_bytes; 82052792b5b9SMichael Chan __le64 tx_mcast_bytes; 82062792b5b9SMichael Chan __le64 tx_bcast_bytes; 82072792b5b9SMichael Chan __le64 rx_tpa_eligible_pkt; 82082792b5b9SMichael Chan __le64 rx_tpa_eligible_bytes; 82092792b5b9SMichael Chan __le64 rx_tpa_pkt; 82102792b5b9SMichael Chan __le64 rx_tpa_bytes; 82112792b5b9SMichael Chan __le64 rx_tpa_errors; 82129d6b648cSMichael Chan __le64 rx_tpa_events; 82132792b5b9SMichael Chan }; 82142792b5b9SMichael Chan 8215894aa69aSMichael Chan /* hwrm_stat_ctx_alloc_input (size:256b/32B) */ 8216c0c050c5SMichael Chan struct hwrm_stat_ctx_alloc_input { 8217c0c050c5SMichael Chan __le16 req_type; 8218c0c050c5SMichael Chan __le16 cmpl_ring; 8219c0c050c5SMichael Chan __le16 seq_id; 8220c0c050c5SMichael Chan __le16 target_id; 8221c0c050c5SMichael Chan __le64 resp_addr; 8222c0c050c5SMichael Chan __le64 stats_dma_addr; 8223c0c050c5SMichael Chan __le32 update_period_ms; 822487c374deSMichael Chan u8 stat_ctx_flags; 822587c374deSMichael Chan #define STAT_CTX_ALLOC_REQ_STAT_CTX_FLAGS_ROCE 0x1UL 82262792b5b9SMichael Chan u8 unused_0; 82272792b5b9SMichael Chan __le16 stats_dma_length; 8228c0c050c5SMichael Chan }; 8229c0c050c5SMichael Chan 8230894aa69aSMichael Chan /* hwrm_stat_ctx_alloc_output (size:128b/16B) */ 8231c0c050c5SMichael Chan struct hwrm_stat_ctx_alloc_output { 8232c0c050c5SMichael Chan __le16 error_code; 8233c0c050c5SMichael Chan __le16 req_type; 8234c0c050c5SMichael Chan __le16 seq_id; 8235c0c050c5SMichael Chan __le16 resp_len; 8236c0c050c5SMichael Chan __le32 stat_ctx_id; 8237894aa69aSMichael Chan u8 unused_0[3]; 8238c0c050c5SMichael Chan u8 valid; 8239c0c050c5SMichael Chan }; 8240c0c050c5SMichael Chan 8241894aa69aSMichael Chan /* hwrm_stat_ctx_free_input (size:192b/24B) */ 8242c0c050c5SMichael Chan struct hwrm_stat_ctx_free_input { 8243c0c050c5SMichael Chan __le16 req_type; 8244c0c050c5SMichael Chan __le16 cmpl_ring; 8245c0c050c5SMichael Chan __le16 seq_id; 8246c0c050c5SMichael Chan __le16 target_id; 8247c0c050c5SMichael Chan __le64 resp_addr; 8248c0c050c5SMichael Chan __le32 stat_ctx_id; 8249894aa69aSMichael Chan u8 unused_0[4]; 8250c0c050c5SMichael Chan }; 8251c0c050c5SMichael Chan 8252894aa69aSMichael Chan /* hwrm_stat_ctx_free_output (size:128b/16B) */ 8253c0c050c5SMichael Chan struct hwrm_stat_ctx_free_output { 8254c0c050c5SMichael Chan __le16 error_code; 8255c0c050c5SMichael Chan __le16 req_type; 8256c0c050c5SMichael Chan __le16 seq_id; 8257c0c050c5SMichael Chan __le16 resp_len; 8258c0c050c5SMichael Chan __le32 stat_ctx_id; 8259894aa69aSMichael Chan u8 unused_0[3]; 8260c0c050c5SMichael Chan u8 valid; 8261c0c050c5SMichael Chan }; 8262c0c050c5SMichael Chan 8263894aa69aSMichael Chan /* hwrm_stat_ctx_query_input (size:192b/24B) */ 8264c0c050c5SMichael Chan struct hwrm_stat_ctx_query_input { 8265c0c050c5SMichael Chan __le16 req_type; 8266c0c050c5SMichael Chan __le16 cmpl_ring; 8267c0c050c5SMichael Chan __le16 seq_id; 8268c0c050c5SMichael Chan __le16 target_id; 8269c0c050c5SMichael Chan __le64 resp_addr; 8270c0c050c5SMichael Chan __le32 stat_ctx_id; 8271bfc6e5fbSMichael Chan u8 flags; 8272bfc6e5fbSMichael Chan #define STAT_CTX_QUERY_REQ_FLAGS_COUNTER_MASK 0x1UL 8273bfc6e5fbSMichael Chan u8 unused_0[3]; 8274c0c050c5SMichael Chan }; 8275c0c050c5SMichael Chan 8276894aa69aSMichael Chan /* hwrm_stat_ctx_query_output (size:1408b/176B) */ 8277c0c050c5SMichael Chan struct hwrm_stat_ctx_query_output { 8278c0c050c5SMichael Chan __le16 error_code; 8279c0c050c5SMichael Chan __le16 req_type; 8280c0c050c5SMichael Chan __le16 seq_id; 8281c0c050c5SMichael Chan __le16 resp_len; 8282c0c050c5SMichael Chan __le64 tx_ucast_pkts; 8283c0c050c5SMichael Chan __le64 tx_mcast_pkts; 8284c0c050c5SMichael Chan __le64 tx_bcast_pkts; 82859d6b648cSMichael Chan __le64 tx_discard_pkts; 82869d6b648cSMichael Chan __le64 tx_error_pkts; 8287c0c050c5SMichael Chan __le64 tx_ucast_bytes; 8288c0c050c5SMichael Chan __le64 tx_mcast_bytes; 8289c0c050c5SMichael Chan __le64 tx_bcast_bytes; 8290c0c050c5SMichael Chan __le64 rx_ucast_pkts; 8291c0c050c5SMichael Chan __le64 rx_mcast_pkts; 8292c0c050c5SMichael Chan __le64 rx_bcast_pkts; 82939d6b648cSMichael Chan __le64 rx_discard_pkts; 82949d6b648cSMichael Chan __le64 rx_error_pkts; 8295c0c050c5SMichael Chan __le64 rx_ucast_bytes; 8296c0c050c5SMichael Chan __le64 rx_mcast_bytes; 8297c0c050c5SMichael Chan __le64 rx_bcast_bytes; 8298c0c050c5SMichael Chan __le64 rx_agg_pkts; 8299c0c050c5SMichael Chan __le64 rx_agg_bytes; 8300c0c050c5SMichael Chan __le64 rx_agg_events; 8301c0c050c5SMichael Chan __le64 rx_agg_aborts; 8302894aa69aSMichael Chan u8 unused_0[7]; 8303c0c050c5SMichael Chan u8 valid; 8304c0c050c5SMichael Chan }; 8305c0c050c5SMichael Chan 8306bfc6e5fbSMichael Chan /* hwrm_stat_ext_ctx_query_input (size:192b/24B) */ 8307bfc6e5fbSMichael Chan struct hwrm_stat_ext_ctx_query_input { 8308bfc6e5fbSMichael Chan __le16 req_type; 8309bfc6e5fbSMichael Chan __le16 cmpl_ring; 8310bfc6e5fbSMichael Chan __le16 seq_id; 8311bfc6e5fbSMichael Chan __le16 target_id; 8312bfc6e5fbSMichael Chan __le64 resp_addr; 8313bfc6e5fbSMichael Chan __le32 stat_ctx_id; 8314bfc6e5fbSMichael Chan u8 flags; 8315bfc6e5fbSMichael Chan #define STAT_EXT_CTX_QUERY_REQ_FLAGS_COUNTER_MASK 0x1UL 8316bfc6e5fbSMichael Chan u8 unused_0[3]; 8317bfc6e5fbSMichael Chan }; 8318bfc6e5fbSMichael Chan 83199d6b648cSMichael Chan /* hwrm_stat_ext_ctx_query_output (size:1536b/192B) */ 8320bfc6e5fbSMichael Chan struct hwrm_stat_ext_ctx_query_output { 8321bfc6e5fbSMichael Chan __le16 error_code; 8322bfc6e5fbSMichael Chan __le16 req_type; 8323bfc6e5fbSMichael Chan __le16 seq_id; 8324bfc6e5fbSMichael Chan __le16 resp_len; 8325bfc6e5fbSMichael Chan __le64 rx_ucast_pkts; 8326bfc6e5fbSMichael Chan __le64 rx_mcast_pkts; 8327bfc6e5fbSMichael Chan __le64 rx_bcast_pkts; 8328bfc6e5fbSMichael Chan __le64 rx_discard_pkts; 8329bfc6e5fbSMichael Chan __le64 rx_error_pkts; 8330bfc6e5fbSMichael Chan __le64 rx_ucast_bytes; 8331bfc6e5fbSMichael Chan __le64 rx_mcast_bytes; 8332bfc6e5fbSMichael Chan __le64 rx_bcast_bytes; 8333bfc6e5fbSMichael Chan __le64 tx_ucast_pkts; 8334bfc6e5fbSMichael Chan __le64 tx_mcast_pkts; 8335bfc6e5fbSMichael Chan __le64 tx_bcast_pkts; 8336bfc6e5fbSMichael Chan __le64 tx_error_pkts; 8337bfc6e5fbSMichael Chan __le64 tx_discard_pkts; 8338bfc6e5fbSMichael Chan __le64 tx_ucast_bytes; 8339bfc6e5fbSMichael Chan __le64 tx_mcast_bytes; 8340bfc6e5fbSMichael Chan __le64 tx_bcast_bytes; 8341bfc6e5fbSMichael Chan __le64 rx_tpa_eligible_pkt; 8342bfc6e5fbSMichael Chan __le64 rx_tpa_eligible_bytes; 8343bfc6e5fbSMichael Chan __le64 rx_tpa_pkt; 8344bfc6e5fbSMichael Chan __le64 rx_tpa_bytes; 8345bfc6e5fbSMichael Chan __le64 rx_tpa_errors; 83469d6b648cSMichael Chan __le64 rx_tpa_events; 8347bfc6e5fbSMichael Chan u8 unused_0[7]; 8348bfc6e5fbSMichael Chan u8 valid; 8349bfc6e5fbSMichael Chan }; 8350bfc6e5fbSMichael Chan 8351894aa69aSMichael Chan /* hwrm_stat_ctx_clr_stats_input (size:192b/24B) */ 8352c0c050c5SMichael Chan struct hwrm_stat_ctx_clr_stats_input { 8353c0c050c5SMichael Chan __le16 req_type; 8354c0c050c5SMichael Chan __le16 cmpl_ring; 8355c0c050c5SMichael Chan __le16 seq_id; 8356c0c050c5SMichael Chan __le16 target_id; 8357c0c050c5SMichael Chan __le64 resp_addr; 8358c0c050c5SMichael Chan __le32 stat_ctx_id; 8359894aa69aSMichael Chan u8 unused_0[4]; 8360c0c050c5SMichael Chan }; 8361c0c050c5SMichael Chan 8362894aa69aSMichael Chan /* hwrm_stat_ctx_clr_stats_output (size:128b/16B) */ 8363c0c050c5SMichael Chan struct hwrm_stat_ctx_clr_stats_output { 8364c0c050c5SMichael Chan __le16 error_code; 8365c0c050c5SMichael Chan __le16 req_type; 8366c0c050c5SMichael Chan __le16 seq_id; 8367c0c050c5SMichael Chan __le16 resp_len; 836811f15ed3SMichael Chan u8 unused_0[7]; 836911f15ed3SMichael Chan u8 valid; 837011f15ed3SMichael Chan }; 837111f15ed3SMichael Chan 8372d4f52de0SMichael Chan /* hwrm_pcie_qstats_input (size:256b/32B) */ 8373d4f52de0SMichael Chan struct hwrm_pcie_qstats_input { 8374d4f52de0SMichael Chan __le16 req_type; 8375d4f52de0SMichael Chan __le16 cmpl_ring; 8376d4f52de0SMichael Chan __le16 seq_id; 8377d4f52de0SMichael Chan __le16 target_id; 8378d4f52de0SMichael Chan __le64 resp_addr; 8379d4f52de0SMichael Chan __le16 pcie_stat_size; 8380d4f52de0SMichael Chan u8 unused_0[6]; 8381d4f52de0SMichael Chan __le64 pcie_stat_host_addr; 8382d4f52de0SMichael Chan }; 8383d4f52de0SMichael Chan 8384d4f52de0SMichael Chan /* hwrm_pcie_qstats_output (size:128b/16B) */ 8385d4f52de0SMichael Chan struct hwrm_pcie_qstats_output { 8386d4f52de0SMichael Chan __le16 error_code; 8387d4f52de0SMichael Chan __le16 req_type; 8388d4f52de0SMichael Chan __le16 seq_id; 8389d4f52de0SMichael Chan __le16 resp_len; 8390d4f52de0SMichael Chan __le16 pcie_stat_size; 8391d4f52de0SMichael Chan u8 unused_0[5]; 8392d4f52de0SMichael Chan u8 valid; 8393d4f52de0SMichael Chan }; 8394d4f52de0SMichael Chan 8395d4f52de0SMichael Chan /* pcie_ctx_hw_stats (size:768b/96B) */ 8396d4f52de0SMichael Chan struct pcie_ctx_hw_stats { 8397d4f52de0SMichael Chan __le64 pcie_pl_signal_integrity; 8398d4f52de0SMichael Chan __le64 pcie_dl_signal_integrity; 8399d4f52de0SMichael Chan __le64 pcie_tl_signal_integrity; 8400d4f52de0SMichael Chan __le64 pcie_link_integrity; 8401d4f52de0SMichael Chan __le64 pcie_tx_traffic_rate; 8402d4f52de0SMichael Chan __le64 pcie_rx_traffic_rate; 8403d4f52de0SMichael Chan __le64 pcie_tx_dllp_statistics; 8404d4f52de0SMichael Chan __le64 pcie_rx_dllp_statistics; 8405d4f52de0SMichael Chan __le64 pcie_equalization_time; 8406d4f52de0SMichael Chan __le32 pcie_ltssm_histogram[4]; 8407d4f52de0SMichael Chan __le64 pcie_recovery_histogram; 8408d4f52de0SMichael Chan }; 8409d4f52de0SMichael Chan 8410ad04cc05SMichael Chan /* hwrm_stat_generic_qstats_input (size:256b/32B) */ 8411ad04cc05SMichael Chan struct hwrm_stat_generic_qstats_input { 8412ad04cc05SMichael Chan __le16 req_type; 8413ad04cc05SMichael Chan __le16 cmpl_ring; 8414ad04cc05SMichael Chan __le16 seq_id; 8415ad04cc05SMichael Chan __le16 target_id; 8416ad04cc05SMichael Chan __le64 resp_addr; 8417ad04cc05SMichael Chan __le16 generic_stat_size; 8418ad04cc05SMichael Chan u8 flags; 8419ad04cc05SMichael Chan #define STAT_GENERIC_QSTATS_REQ_FLAGS_COUNTER_MASK 0x1UL 8420ad04cc05SMichael Chan u8 unused_0[5]; 8421ad04cc05SMichael Chan __le64 generic_stat_host_addr; 8422ad04cc05SMichael Chan }; 8423ad04cc05SMichael Chan 8424ad04cc05SMichael Chan /* hwrm_stat_generic_qstats_output (size:128b/16B) */ 8425ad04cc05SMichael Chan struct hwrm_stat_generic_qstats_output { 8426ad04cc05SMichael Chan __le16 error_code; 8427ad04cc05SMichael Chan __le16 req_type; 8428ad04cc05SMichael Chan __le16 seq_id; 8429ad04cc05SMichael Chan __le16 resp_len; 8430ad04cc05SMichael Chan __le16 generic_stat_size; 8431ad04cc05SMichael Chan u8 unused_0[5]; 8432ad04cc05SMichael Chan u8 valid; 8433ad04cc05SMichael Chan }; 8434ad04cc05SMichael Chan 8435ad04cc05SMichael Chan /* generic_sw_hw_stats (size:1216b/152B) */ 8436ad04cc05SMichael Chan struct generic_sw_hw_stats { 8437ad04cc05SMichael Chan __le64 pcie_statistics_tx_tlp; 8438ad04cc05SMichael Chan __le64 pcie_statistics_rx_tlp; 8439ad04cc05SMichael Chan __le64 pcie_credit_fc_hdr_posted; 8440ad04cc05SMichael Chan __le64 pcie_credit_fc_hdr_nonposted; 8441ad04cc05SMichael Chan __le64 pcie_credit_fc_hdr_cmpl; 8442ad04cc05SMichael Chan __le64 pcie_credit_fc_data_posted; 8443ad04cc05SMichael Chan __le64 pcie_credit_fc_data_nonposted; 8444ad04cc05SMichael Chan __le64 pcie_credit_fc_data_cmpl; 8445ad04cc05SMichael Chan __le64 pcie_credit_fc_tgt_nonposted; 8446ad04cc05SMichael Chan __le64 pcie_credit_fc_tgt_data_posted; 8447ad04cc05SMichael Chan __le64 pcie_credit_fc_tgt_hdr_posted; 8448ad04cc05SMichael Chan __le64 pcie_credit_fc_cmpl_hdr_posted; 8449ad04cc05SMichael Chan __le64 pcie_credit_fc_cmpl_data_posted; 8450ad04cc05SMichael Chan __le64 pcie_cmpl_longest; 8451ad04cc05SMichael Chan __le64 pcie_cmpl_shortest; 8452ad04cc05SMichael Chan __le64 cache_miss_count_cfcq; 8453ad04cc05SMichael Chan __le64 cache_miss_count_cfcs; 8454ad04cc05SMichael Chan __le64 cache_miss_count_cfcc; 8455ad04cc05SMichael Chan __le64 cache_miss_count_cfcm; 8456ad04cc05SMichael Chan }; 8457ad04cc05SMichael Chan 8458894aa69aSMichael Chan /* hwrm_fw_reset_input (size:192b/24B) */ 8459894aa69aSMichael Chan struct hwrm_fw_reset_input { 8460894aa69aSMichael Chan __le16 req_type; 8461894aa69aSMichael Chan __le16 cmpl_ring; 8462894aa69aSMichael Chan __le16 seq_id; 8463894aa69aSMichael Chan __le16 target_id; 8464894aa69aSMichael Chan __le64 resp_addr; 8465894aa69aSMichael Chan u8 embedded_proc_type; 8466894aa69aSMichael Chan #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_BOOT 0x0UL 8467894aa69aSMichael Chan #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_MGMT 0x1UL 8468894aa69aSMichael Chan #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_NETCTRL 0x2UL 8469894aa69aSMichael Chan #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_ROCE 0x3UL 8470894aa69aSMichael Chan #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_HOST 0x4UL 8471894aa69aSMichael Chan #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_AP 0x5UL 8472894aa69aSMichael Chan #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_CHIP 0x6UL 8473d4f52de0SMichael Chan #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_HOST_RESOURCE_REINIT 0x7UL 847472e0c9f9SMichael Chan #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_IMPACTLESS_ACTIVATION 0x8UL 847572e0c9f9SMichael Chan #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_LAST FW_RESET_REQ_EMBEDDED_PROC_TYPE_IMPACTLESS_ACTIVATION 8476894aa69aSMichael Chan u8 selfrst_status; 8477894aa69aSMichael Chan #define FW_RESET_REQ_SELFRST_STATUS_SELFRSTNONE 0x0UL 8478894aa69aSMichael Chan #define FW_RESET_REQ_SELFRST_STATUS_SELFRSTASAP 0x1UL 8479894aa69aSMichael Chan #define FW_RESET_REQ_SELFRST_STATUS_SELFRSTPCIERST 0x2UL 848031d357c0SMichael Chan #define FW_RESET_REQ_SELFRST_STATUS_SELFRSTIMMEDIATE 0x3UL 848131d357c0SMichael Chan #define FW_RESET_REQ_SELFRST_STATUS_LAST FW_RESET_REQ_SELFRST_STATUS_SELFRSTIMMEDIATE 8482894aa69aSMichael Chan u8 host_idx; 84833322479eSMichael Chan u8 flags; 84843322479eSMichael Chan #define FW_RESET_REQ_FLAGS_RESET_GRACEFUL 0x1UL 8485fbfee257SMichael Chan #define FW_RESET_REQ_FLAGS_FW_ACTIVATION 0x2UL 84863322479eSMichael Chan u8 unused_0[4]; 848757922b0aSMichael Chan }; 848857922b0aSMichael Chan 8489894aa69aSMichael Chan /* hwrm_fw_reset_output (size:128b/16B) */ 8490894aa69aSMichael Chan struct hwrm_fw_reset_output { 8491894aa69aSMichael Chan __le16 error_code; 8492894aa69aSMichael Chan __le16 req_type; 8493894aa69aSMichael Chan __le16 seq_id; 8494894aa69aSMichael Chan __le16 resp_len; 8495894aa69aSMichael Chan u8 selfrst_status; 8496894aa69aSMichael Chan #define FW_RESET_RESP_SELFRST_STATUS_SELFRSTNONE 0x0UL 8497894aa69aSMichael Chan #define FW_RESET_RESP_SELFRST_STATUS_SELFRSTASAP 0x1UL 8498894aa69aSMichael Chan #define FW_RESET_RESP_SELFRST_STATUS_SELFRSTPCIERST 0x2UL 849931d357c0SMichael Chan #define FW_RESET_RESP_SELFRST_STATUS_SELFRSTIMMEDIATE 0x3UL 850031d357c0SMichael Chan #define FW_RESET_RESP_SELFRST_STATUS_LAST FW_RESET_RESP_SELFRST_STATUS_SELFRSTIMMEDIATE 8501894aa69aSMichael Chan u8 unused_0[6]; 8502894aa69aSMichael Chan u8 valid; 850357922b0aSMichael Chan }; 850457922b0aSMichael Chan 8505894aa69aSMichael Chan /* hwrm_fw_qstatus_input (size:192b/24B) */ 8506894aa69aSMichael Chan struct hwrm_fw_qstatus_input { 8507894aa69aSMichael Chan __le16 req_type; 8508894aa69aSMichael Chan __le16 cmpl_ring; 8509894aa69aSMichael Chan __le16 seq_id; 8510894aa69aSMichael Chan __le16 target_id; 8511894aa69aSMichael Chan __le64 resp_addr; 8512894aa69aSMichael Chan u8 embedded_proc_type; 8513894aa69aSMichael Chan #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_BOOT 0x0UL 8514894aa69aSMichael Chan #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_MGMT 0x1UL 8515894aa69aSMichael Chan #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_NETCTRL 0x2UL 8516894aa69aSMichael Chan #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_ROCE 0x3UL 8517894aa69aSMichael Chan #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_HOST 0x4UL 8518894aa69aSMichael Chan #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_AP 0x5UL 8519894aa69aSMichael Chan #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_CHIP 0x6UL 8520894aa69aSMichael Chan #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_LAST FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_CHIP 8521894aa69aSMichael Chan u8 unused_0[7]; 852257922b0aSMichael Chan }; 852357922b0aSMichael Chan 8524894aa69aSMichael Chan /* hwrm_fw_qstatus_output (size:128b/16B) */ 8525894aa69aSMichael Chan struct hwrm_fw_qstatus_output { 8526894aa69aSMichael Chan __le16 error_code; 8527894aa69aSMichael Chan __le16 req_type; 8528894aa69aSMichael Chan __le16 seq_id; 8529894aa69aSMichael Chan __le16 resp_len; 8530894aa69aSMichael Chan u8 selfrst_status; 8531894aa69aSMichael Chan #define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTNONE 0x0UL 8532894aa69aSMichael Chan #define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTASAP 0x1UL 8533894aa69aSMichael Chan #define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTPCIERST 0x2UL 85344a50ddc2SMichael Chan #define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTPOWER 0x3UL 85354a50ddc2SMichael Chan #define FW_QSTATUS_RESP_SELFRST_STATUS_LAST FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTPOWER 853631f67c2eSMichael Chan u8 nvm_option_action_status; 853731f67c2eSMichael Chan #define FW_QSTATUS_RESP_NVM_OPTION_ACTION_STATUS_NVMOPT_ACTION_NONE 0x0UL 853831f67c2eSMichael Chan #define FW_QSTATUS_RESP_NVM_OPTION_ACTION_STATUS_NVMOPT_ACTION_HOTRESET 0x1UL 853931f67c2eSMichael Chan #define FW_QSTATUS_RESP_NVM_OPTION_ACTION_STATUS_NVMOPT_ACTION_WARMBOOT 0x2UL 854031f67c2eSMichael Chan #define FW_QSTATUS_RESP_NVM_OPTION_ACTION_STATUS_NVMOPT_ACTION_COLDBOOT 0x3UL 854131f67c2eSMichael Chan #define FW_QSTATUS_RESP_NVM_OPTION_ACTION_STATUS_LAST FW_QSTATUS_RESP_NVM_OPTION_ACTION_STATUS_NVMOPT_ACTION_COLDBOOT 854231f67c2eSMichael Chan u8 unused_0[5]; 8543894aa69aSMichael Chan u8 valid; 854487c374deSMichael Chan }; 854587c374deSMichael Chan 8546894aa69aSMichael Chan /* hwrm_fw_set_time_input (size:256b/32B) */ 8547894aa69aSMichael Chan struct hwrm_fw_set_time_input { 8548894aa69aSMichael Chan __le16 req_type; 8549894aa69aSMichael Chan __le16 cmpl_ring; 8550894aa69aSMichael Chan __le16 seq_id; 8551894aa69aSMichael Chan __le16 target_id; 8552894aa69aSMichael Chan __le64 resp_addr; 8553894aa69aSMichael Chan __le16 year; 8554894aa69aSMichael Chan #define FW_SET_TIME_REQ_YEAR_UNKNOWN 0x0UL 8555894aa69aSMichael Chan #define FW_SET_TIME_REQ_YEAR_LAST FW_SET_TIME_REQ_YEAR_UNKNOWN 8556894aa69aSMichael Chan u8 month; 8557894aa69aSMichael Chan u8 day; 8558894aa69aSMichael Chan u8 hour; 8559894aa69aSMichael Chan u8 minute; 8560894aa69aSMichael Chan u8 second; 8561894aa69aSMichael Chan u8 unused_0; 8562894aa69aSMichael Chan __le16 millisecond; 8563894aa69aSMichael Chan __le16 zone; 85644a50ddc2SMichael Chan #define FW_SET_TIME_REQ_ZONE_UTC 0 85654a50ddc2SMichael Chan #define FW_SET_TIME_REQ_ZONE_UNKNOWN 65535 8566894aa69aSMichael Chan #define FW_SET_TIME_REQ_ZONE_LAST FW_SET_TIME_REQ_ZONE_UNKNOWN 8567894aa69aSMichael Chan u8 unused_1[4]; 8568894aa69aSMichael Chan }; 8569894aa69aSMichael Chan 8570894aa69aSMichael Chan /* hwrm_fw_set_time_output (size:128b/16B) */ 8571894aa69aSMichael Chan struct hwrm_fw_set_time_output { 8572894aa69aSMichael Chan __le16 error_code; 8573894aa69aSMichael Chan __le16 req_type; 8574894aa69aSMichael Chan __le16 seq_id; 8575894aa69aSMichael Chan __le16 resp_len; 8576894aa69aSMichael Chan u8 unused_0[7]; 8577894aa69aSMichael Chan u8 valid; 8578894aa69aSMichael Chan }; 8579894aa69aSMichael Chan 8580894aa69aSMichael Chan /* hwrm_struct_hdr (size:128b/16B) */ 858187c374deSMichael Chan struct hwrm_struct_hdr { 858287c374deSMichael Chan __le16 struct_id; 858387c374deSMichael Chan #define STRUCT_HDR_STRUCT_ID_LLDP_CFG 0x41bUL 8584f183886cSMichael Chan #define STRUCT_HDR_STRUCT_ID_DCBX_ETS 0x41dUL 8585f183886cSMichael Chan #define STRUCT_HDR_STRUCT_ID_DCBX_PFC 0x41fUL 8586f183886cSMichael Chan #define STRUCT_HDR_STRUCT_ID_DCBX_APP 0x421UL 8587f183886cSMichael Chan #define STRUCT_HDR_STRUCT_ID_DCBX_FEATURE_STATE 0x422UL 8588f183886cSMichael Chan #define STRUCT_HDR_STRUCT_ID_LLDP_GENERIC 0x424UL 8589f183886cSMichael Chan #define STRUCT_HDR_STRUCT_ID_LLDP_DEVICE 0x426UL 85903322479eSMichael Chan #define STRUCT_HDR_STRUCT_ID_POWER_BKUP 0x427UL 85918eb992e8SMichael Chan #define STRUCT_HDR_STRUCT_ID_AFM_OPAQUE 0x1UL 8592f183886cSMichael Chan #define STRUCT_HDR_STRUCT_ID_PORT_DESCRIPTION 0xaUL 85936a17eb27SMichael Chan #define STRUCT_HDR_STRUCT_ID_RSS_V2 0x64UL 859416db6323SMichael Chan #define STRUCT_HDR_STRUCT_ID_MSIX_PER_VF 0xc8UL 859516db6323SMichael Chan #define STRUCT_HDR_STRUCT_ID_LAST STRUCT_HDR_STRUCT_ID_MSIX_PER_VF 859687c374deSMichael Chan __le16 len; 859787c374deSMichael Chan u8 version; 859887c374deSMichael Chan u8 count; 859987c374deSMichael Chan __le16 subtype; 860087c374deSMichael Chan __le16 next_offset; 860187c374deSMichael Chan #define STRUCT_HDR_NEXT_OFFSET_LAST 0x0UL 8602894aa69aSMichael Chan u8 unused_0[6]; 860387c374deSMichael Chan }; 860487c374deSMichael Chan 8605894aa69aSMichael Chan /* hwrm_struct_data_dcbx_app (size:64b/8B) */ 8606f183886cSMichael Chan struct hwrm_struct_data_dcbx_app { 8607f183886cSMichael Chan __be16 protocol_id; 860887c374deSMichael Chan u8 protocol_selector; 8609f183886cSMichael Chan #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_ETHER_TYPE 0x1UL 8610f183886cSMichael Chan #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_TCP_PORT 0x2UL 8611f183886cSMichael Chan #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_UDP_PORT 0x3UL 8612f183886cSMichael Chan #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_TCP_UDP_PORT 0x4UL 8613894aa69aSMichael Chan #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_LAST STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_TCP_UDP_PORT 861487c374deSMichael Chan u8 priority; 861587c374deSMichael Chan u8 valid; 861687c374deSMichael Chan u8 unused_0[3]; 861787c374deSMichael Chan }; 861887c374deSMichael Chan 8619894aa69aSMichael Chan /* hwrm_fw_set_structured_data_input (size:256b/32B) */ 8620894aa69aSMichael Chan struct hwrm_fw_set_structured_data_input { 8621894aa69aSMichael Chan __le16 req_type; 8622894aa69aSMichael Chan __le16 cmpl_ring; 8623894aa69aSMichael Chan __le16 seq_id; 8624894aa69aSMichael Chan __le16 target_id; 8625894aa69aSMichael Chan __le64 resp_addr; 8626894aa69aSMichael Chan __le64 src_data_addr; 8627894aa69aSMichael Chan __le16 data_len; 8628894aa69aSMichael Chan u8 hdr_cnt; 8629894aa69aSMichael Chan u8 unused_0[5]; 8630894aa69aSMichael Chan }; 8631894aa69aSMichael Chan 8632894aa69aSMichael Chan /* hwrm_fw_set_structured_data_output (size:128b/16B) */ 8633894aa69aSMichael Chan struct hwrm_fw_set_structured_data_output { 8634894aa69aSMichael Chan __le16 error_code; 8635894aa69aSMichael Chan __le16 req_type; 8636894aa69aSMichael Chan __le16 seq_id; 8637894aa69aSMichael Chan __le16 resp_len; 8638894aa69aSMichael Chan u8 unused_0[7]; 8639894aa69aSMichael Chan u8 valid; 8640894aa69aSMichael Chan }; 8641894aa69aSMichael Chan 8642894aa69aSMichael Chan /* hwrm_fw_set_structured_data_cmd_err (size:64b/8B) */ 8643894aa69aSMichael Chan struct hwrm_fw_set_structured_data_cmd_err { 8644894aa69aSMichael Chan u8 code; 8645894aa69aSMichael Chan #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_UNKNOWN 0x0UL 8646894aa69aSMichael Chan #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_HDR_CNT 0x1UL 8647894aa69aSMichael Chan #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_FMT 0x2UL 8648894aa69aSMichael Chan #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID 0x3UL 8649894aa69aSMichael Chan #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_LAST FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID 8650894aa69aSMichael Chan u8 unused_0[7]; 8651894aa69aSMichael Chan }; 8652894aa69aSMichael Chan 8653894aa69aSMichael Chan /* hwrm_fw_get_structured_data_input (size:256b/32B) */ 8654894aa69aSMichael Chan struct hwrm_fw_get_structured_data_input { 8655894aa69aSMichael Chan __le16 req_type; 8656894aa69aSMichael Chan __le16 cmpl_ring; 8657894aa69aSMichael Chan __le16 seq_id; 8658894aa69aSMichael Chan __le16 target_id; 8659894aa69aSMichael Chan __le64 resp_addr; 8660894aa69aSMichael Chan __le64 dest_data_addr; 8661894aa69aSMichael Chan __le16 data_len; 8662894aa69aSMichael Chan __le16 structure_id; 8663894aa69aSMichael Chan __le16 subtype; 8664894aa69aSMichael Chan #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_UNUSED 0x0UL 8665894aa69aSMichael Chan #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_ALL 0xffffUL 8666894aa69aSMichael Chan #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_ADMIN 0x100UL 8667894aa69aSMichael Chan #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_PEER 0x101UL 8668894aa69aSMichael Chan #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_OPERATIONAL 0x102UL 8669894aa69aSMichael Chan #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_ADMIN 0x200UL 8670894aa69aSMichael Chan #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_PEER 0x201UL 8671894aa69aSMichael Chan #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_OPERATIONAL 0x202UL 8672894aa69aSMichael Chan #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_HOST_OPERATIONAL 0x300UL 8673894aa69aSMichael Chan #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_LAST FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_HOST_OPERATIONAL 8674894aa69aSMichael Chan u8 count; 8675894aa69aSMichael Chan u8 unused_0; 8676894aa69aSMichael Chan }; 8677894aa69aSMichael Chan 8678894aa69aSMichael Chan /* hwrm_fw_get_structured_data_output (size:128b/16B) */ 8679894aa69aSMichael Chan struct hwrm_fw_get_structured_data_output { 8680894aa69aSMichael Chan __le16 error_code; 8681894aa69aSMichael Chan __le16 req_type; 8682894aa69aSMichael Chan __le16 seq_id; 8683894aa69aSMichael Chan __le16 resp_len; 8684894aa69aSMichael Chan u8 hdr_cnt; 8685894aa69aSMichael Chan u8 unused_0[6]; 8686894aa69aSMichael Chan u8 valid; 8687894aa69aSMichael Chan }; 8688894aa69aSMichael Chan 8689894aa69aSMichael Chan /* hwrm_fw_get_structured_data_cmd_err (size:64b/8B) */ 8690894aa69aSMichael Chan struct hwrm_fw_get_structured_data_cmd_err { 8691894aa69aSMichael Chan u8 code; 8692894aa69aSMichael Chan #define FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_UNKNOWN 0x0UL 8693894aa69aSMichael Chan #define FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID 0x3UL 8694894aa69aSMichael Chan #define FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_LAST FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID 8695894aa69aSMichael Chan u8 unused_0[7]; 8696894aa69aSMichael Chan }; 8697894aa69aSMichael Chan 869821e70778SMichael Chan /* hwrm_fw_livepatch_query_input (size:192b/24B) */ 869921e70778SMichael Chan struct hwrm_fw_livepatch_query_input { 870021e70778SMichael Chan __le16 req_type; 870121e70778SMichael Chan __le16 cmpl_ring; 870221e70778SMichael Chan __le16 seq_id; 870321e70778SMichael Chan __le16 target_id; 870421e70778SMichael Chan __le64 resp_addr; 870521e70778SMichael Chan u8 fw_target; 870621e70778SMichael Chan #define FW_LIVEPATCH_QUERY_REQ_FW_TARGET_COMMON_FW 0x1UL 870721e70778SMichael Chan #define FW_LIVEPATCH_QUERY_REQ_FW_TARGET_SECURE_FW 0x2UL 870821e70778SMichael Chan #define FW_LIVEPATCH_QUERY_REQ_FW_TARGET_LAST FW_LIVEPATCH_QUERY_REQ_FW_TARGET_SECURE_FW 870921e70778SMichael Chan u8 unused_0[7]; 871021e70778SMichael Chan }; 871121e70778SMichael Chan 871221e70778SMichael Chan /* hwrm_fw_livepatch_query_output (size:640b/80B) */ 871321e70778SMichael Chan struct hwrm_fw_livepatch_query_output { 871421e70778SMichael Chan __le16 error_code; 871521e70778SMichael Chan __le16 req_type; 871621e70778SMichael Chan __le16 seq_id; 871721e70778SMichael Chan __le16 resp_len; 871821e70778SMichael Chan char install_ver[32]; 871921e70778SMichael Chan char active_ver[32]; 872021e70778SMichael Chan __le16 status_flags; 872121e70778SMichael Chan #define FW_LIVEPATCH_QUERY_RESP_STATUS_FLAGS_INSTALL 0x1UL 872221e70778SMichael Chan #define FW_LIVEPATCH_QUERY_RESP_STATUS_FLAGS_ACTIVE 0x2UL 872321e70778SMichael Chan u8 unused_0[5]; 872421e70778SMichael Chan u8 valid; 872521e70778SMichael Chan }; 872621e70778SMichael Chan 872721e70778SMichael Chan /* hwrm_fw_livepatch_input (size:256b/32B) */ 872821e70778SMichael Chan struct hwrm_fw_livepatch_input { 872921e70778SMichael Chan __le16 req_type; 873021e70778SMichael Chan __le16 cmpl_ring; 873121e70778SMichael Chan __le16 seq_id; 873221e70778SMichael Chan __le16 target_id; 873321e70778SMichael Chan __le64 resp_addr; 873421e70778SMichael Chan u8 opcode; 873521e70778SMichael Chan #define FW_LIVEPATCH_REQ_OPCODE_ACTIVATE 0x1UL 873621e70778SMichael Chan #define FW_LIVEPATCH_REQ_OPCODE_DEACTIVATE 0x2UL 873721e70778SMichael Chan #define FW_LIVEPATCH_REQ_OPCODE_LAST FW_LIVEPATCH_REQ_OPCODE_DEACTIVATE 873821e70778SMichael Chan u8 fw_target; 873921e70778SMichael Chan #define FW_LIVEPATCH_REQ_FW_TARGET_COMMON_FW 0x1UL 874021e70778SMichael Chan #define FW_LIVEPATCH_REQ_FW_TARGET_SECURE_FW 0x2UL 874121e70778SMichael Chan #define FW_LIVEPATCH_REQ_FW_TARGET_LAST FW_LIVEPATCH_REQ_FW_TARGET_SECURE_FW 874221e70778SMichael Chan u8 loadtype; 874321e70778SMichael Chan #define FW_LIVEPATCH_REQ_LOADTYPE_NVM_INSTALL 0x1UL 874421e70778SMichael Chan #define FW_LIVEPATCH_REQ_LOADTYPE_MEMORY_DIRECT 0x2UL 874521e70778SMichael Chan #define FW_LIVEPATCH_REQ_LOADTYPE_LAST FW_LIVEPATCH_REQ_LOADTYPE_MEMORY_DIRECT 874621e70778SMichael Chan u8 flags; 874721e70778SMichael Chan __le32 patch_len; 874821e70778SMichael Chan __le64 host_addr; 874921e70778SMichael Chan }; 875021e70778SMichael Chan 875121e70778SMichael Chan /* hwrm_fw_livepatch_output (size:128b/16B) */ 875221e70778SMichael Chan struct hwrm_fw_livepatch_output { 875321e70778SMichael Chan __le16 error_code; 875421e70778SMichael Chan __le16 req_type; 875521e70778SMichael Chan __le16 seq_id; 875621e70778SMichael Chan __le16 resp_len; 875721e70778SMichael Chan u8 unused_0[7]; 875821e70778SMichael Chan u8 valid; 875921e70778SMichael Chan }; 876021e70778SMichael Chan 876121e70778SMichael Chan /* hwrm_fw_livepatch_cmd_err (size:64b/8B) */ 876221e70778SMichael Chan struct hwrm_fw_livepatch_cmd_err { 876321e70778SMichael Chan u8 code; 876421e70778SMichael Chan #define FW_LIVEPATCH_CMD_ERR_CODE_UNKNOWN 0x0UL 876521e70778SMichael Chan #define FW_LIVEPATCH_CMD_ERR_CODE_INVALID_OPCODE 0x1UL 876621e70778SMichael Chan #define FW_LIVEPATCH_CMD_ERR_CODE_INVALID_TARGET 0x2UL 876721e70778SMichael Chan #define FW_LIVEPATCH_CMD_ERR_CODE_NOT_SUPPORTED 0x3UL 876821e70778SMichael Chan #define FW_LIVEPATCH_CMD_ERR_CODE_NOT_INSTALLED 0x4UL 876921e70778SMichael Chan #define FW_LIVEPATCH_CMD_ERR_CODE_NOT_PATCHED 0x5UL 877021e70778SMichael Chan #define FW_LIVEPATCH_CMD_ERR_CODE_AUTH_FAIL 0x6UL 877121e70778SMichael Chan #define FW_LIVEPATCH_CMD_ERR_CODE_INVALID_HEADER 0x7UL 877221e70778SMichael Chan #define FW_LIVEPATCH_CMD_ERR_CODE_INVALID_SIZE 0x8UL 877321e70778SMichael Chan #define FW_LIVEPATCH_CMD_ERR_CODE_ALREADY_PATCHED 0x9UL 877421e70778SMichael Chan #define FW_LIVEPATCH_CMD_ERR_CODE_LAST FW_LIVEPATCH_CMD_ERR_CODE_ALREADY_PATCHED 877521e70778SMichael Chan u8 unused_0[7]; 877621e70778SMichael Chan }; 877721e70778SMichael Chan 8778894aa69aSMichael Chan /* hwrm_exec_fwd_resp_input (size:1024b/128B) */ 8779894aa69aSMichael Chan struct hwrm_exec_fwd_resp_input { 8780894aa69aSMichael Chan __le16 req_type; 8781894aa69aSMichael Chan __le16 cmpl_ring; 8782894aa69aSMichael Chan __le16 seq_id; 8783894aa69aSMichael Chan __le16 target_id; 8784894aa69aSMichael Chan __le64 resp_addr; 8785894aa69aSMichael Chan __le32 encap_request[26]; 8786894aa69aSMichael Chan __le16 encap_resp_target_id; 8787894aa69aSMichael Chan u8 unused_0[6]; 8788894aa69aSMichael Chan }; 8789894aa69aSMichael Chan 8790894aa69aSMichael Chan /* hwrm_exec_fwd_resp_output (size:128b/16B) */ 8791894aa69aSMichael Chan struct hwrm_exec_fwd_resp_output { 8792894aa69aSMichael Chan __le16 error_code; 8793894aa69aSMichael Chan __le16 req_type; 8794894aa69aSMichael Chan __le16 seq_id; 8795894aa69aSMichael Chan __le16 resp_len; 8796894aa69aSMichael Chan u8 unused_0[7]; 8797894aa69aSMichael Chan u8 valid; 8798894aa69aSMichael Chan }; 8799894aa69aSMichael Chan 8800894aa69aSMichael Chan /* hwrm_reject_fwd_resp_input (size:1024b/128B) */ 8801894aa69aSMichael Chan struct hwrm_reject_fwd_resp_input { 8802894aa69aSMichael Chan __le16 req_type; 8803894aa69aSMichael Chan __le16 cmpl_ring; 8804894aa69aSMichael Chan __le16 seq_id; 8805894aa69aSMichael Chan __le16 target_id; 8806894aa69aSMichael Chan __le64 resp_addr; 8807894aa69aSMichael Chan __le32 encap_request[26]; 8808894aa69aSMichael Chan __le16 encap_resp_target_id; 8809894aa69aSMichael Chan u8 unused_0[6]; 8810894aa69aSMichael Chan }; 8811894aa69aSMichael Chan 8812894aa69aSMichael Chan /* hwrm_reject_fwd_resp_output (size:128b/16B) */ 8813894aa69aSMichael Chan struct hwrm_reject_fwd_resp_output { 8814894aa69aSMichael Chan __le16 error_code; 8815894aa69aSMichael Chan __le16 req_type; 8816894aa69aSMichael Chan __le16 seq_id; 8817894aa69aSMichael Chan __le16 resp_len; 8818894aa69aSMichael Chan u8 unused_0[7]; 8819894aa69aSMichael Chan u8 valid; 8820894aa69aSMichael Chan }; 8821894aa69aSMichael Chan 8822894aa69aSMichael Chan /* hwrm_fwd_resp_input (size:1024b/128B) */ 8823894aa69aSMichael Chan struct hwrm_fwd_resp_input { 8824894aa69aSMichael Chan __le16 req_type; 8825894aa69aSMichael Chan __le16 cmpl_ring; 8826894aa69aSMichael Chan __le16 seq_id; 8827894aa69aSMichael Chan __le16 target_id; 8828894aa69aSMichael Chan __le64 resp_addr; 8829894aa69aSMichael Chan __le16 encap_resp_target_id; 8830894aa69aSMichael Chan __le16 encap_resp_cmpl_ring; 8831894aa69aSMichael Chan __le16 encap_resp_len; 8832894aa69aSMichael Chan u8 unused_0; 8833894aa69aSMichael Chan u8 unused_1; 8834894aa69aSMichael Chan __le64 encap_resp_addr; 8835894aa69aSMichael Chan __le32 encap_resp[24]; 8836894aa69aSMichael Chan }; 8837894aa69aSMichael Chan 8838894aa69aSMichael Chan /* hwrm_fwd_resp_output (size:128b/16B) */ 8839894aa69aSMichael Chan struct hwrm_fwd_resp_output { 8840894aa69aSMichael Chan __le16 error_code; 8841894aa69aSMichael Chan __le16 req_type; 8842894aa69aSMichael Chan __le16 seq_id; 8843894aa69aSMichael Chan __le16 resp_len; 8844894aa69aSMichael Chan u8 unused_0[7]; 8845894aa69aSMichael Chan u8 valid; 8846894aa69aSMichael Chan }; 8847894aa69aSMichael Chan 8848894aa69aSMichael Chan /* hwrm_fwd_async_event_cmpl_input (size:320b/40B) */ 8849894aa69aSMichael Chan struct hwrm_fwd_async_event_cmpl_input { 8850894aa69aSMichael Chan __le16 req_type; 8851894aa69aSMichael Chan __le16 cmpl_ring; 8852894aa69aSMichael Chan __le16 seq_id; 8853894aa69aSMichael Chan __le16 target_id; 8854894aa69aSMichael Chan __le64 resp_addr; 8855894aa69aSMichael Chan __le16 encap_async_event_target_id; 8856894aa69aSMichael Chan u8 unused_0[6]; 8857894aa69aSMichael Chan __le32 encap_async_event_cmpl[4]; 8858894aa69aSMichael Chan }; 8859894aa69aSMichael Chan 8860894aa69aSMichael Chan /* hwrm_fwd_async_event_cmpl_output (size:128b/16B) */ 8861894aa69aSMichael Chan struct hwrm_fwd_async_event_cmpl_output { 8862894aa69aSMichael Chan __le16 error_code; 8863894aa69aSMichael Chan __le16 req_type; 8864894aa69aSMichael Chan __le16 seq_id; 8865894aa69aSMichael Chan __le16 resp_len; 8866894aa69aSMichael Chan u8 unused_0[7]; 8867894aa69aSMichael Chan u8 valid; 8868894aa69aSMichael Chan }; 8869894aa69aSMichael Chan 8870894aa69aSMichael Chan /* hwrm_temp_monitor_query_input (size:128b/16B) */ 8871894aa69aSMichael Chan struct hwrm_temp_monitor_query_input { 8872894aa69aSMichael Chan __le16 req_type; 8873894aa69aSMichael Chan __le16 cmpl_ring; 8874894aa69aSMichael Chan __le16 seq_id; 8875894aa69aSMichael Chan __le16 target_id; 8876894aa69aSMichael Chan __le64 resp_addr; 8877894aa69aSMichael Chan }; 8878894aa69aSMichael Chan 8879894aa69aSMichael Chan /* hwrm_temp_monitor_query_output (size:128b/16B) */ 8880894aa69aSMichael Chan struct hwrm_temp_monitor_query_output { 8881894aa69aSMichael Chan __le16 error_code; 8882894aa69aSMichael Chan __le16 req_type; 8883894aa69aSMichael Chan __le16 seq_id; 8884894aa69aSMichael Chan __le16 resp_len; 8885894aa69aSMichael Chan u8 temp; 888672e0c9f9SMichael Chan u8 phy_temp; 888772e0c9f9SMichael Chan u8 om_temp; 888872e0c9f9SMichael Chan u8 flags; 888972e0c9f9SMichael Chan #define TEMP_MONITOR_QUERY_RESP_FLAGS_TEMP_NOT_AVAILABLE 0x1UL 889072e0c9f9SMichael Chan #define TEMP_MONITOR_QUERY_RESP_FLAGS_PHY_TEMP_NOT_AVAILABLE 0x2UL 889172e0c9f9SMichael Chan #define TEMP_MONITOR_QUERY_RESP_FLAGS_OM_NOT_PRESENT 0x4UL 889272e0c9f9SMichael Chan #define TEMP_MONITOR_QUERY_RESP_FLAGS_OM_TEMP_NOT_AVAILABLE 0x8UL 889378eeadb8SMichael Chan #define TEMP_MONITOR_QUERY_RESP_FLAGS_EXT_TEMP_FIELDS_AVAILABLE 0x10UL 889478eeadb8SMichael Chan u8 temp2; 889578eeadb8SMichael Chan u8 phy_temp2; 889678eeadb8SMichael Chan u8 om_temp2; 8897894aa69aSMichael Chan u8 valid; 8898894aa69aSMichael Chan }; 8899894aa69aSMichael Chan 8900894aa69aSMichael Chan /* hwrm_wol_filter_alloc_input (size:512b/64B) */ 8901894aa69aSMichael Chan struct hwrm_wol_filter_alloc_input { 8902894aa69aSMichael Chan __le16 req_type; 8903894aa69aSMichael Chan __le16 cmpl_ring; 8904894aa69aSMichael Chan __le16 seq_id; 8905894aa69aSMichael Chan __le16 target_id; 8906894aa69aSMichael Chan __le64 resp_addr; 8907894aa69aSMichael Chan __le32 flags; 8908894aa69aSMichael Chan __le32 enables; 8909894aa69aSMichael Chan #define WOL_FILTER_ALLOC_REQ_ENABLES_MAC_ADDRESS 0x1UL 8910894aa69aSMichael Chan #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_OFFSET 0x2UL 8911894aa69aSMichael Chan #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_BUF_SIZE 0x4UL 8912894aa69aSMichael Chan #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_BUF_ADDR 0x8UL 8913894aa69aSMichael Chan #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_MASK_ADDR 0x10UL 8914894aa69aSMichael Chan #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_MASK_SIZE 0x20UL 8915894aa69aSMichael Chan __le16 port_id; 8916894aa69aSMichael Chan u8 wol_type; 8917894aa69aSMichael Chan #define WOL_FILTER_ALLOC_REQ_WOL_TYPE_MAGICPKT 0x0UL 8918894aa69aSMichael Chan #define WOL_FILTER_ALLOC_REQ_WOL_TYPE_BMP 0x1UL 8919894aa69aSMichael Chan #define WOL_FILTER_ALLOC_REQ_WOL_TYPE_INVALID 0xffUL 8920894aa69aSMichael Chan #define WOL_FILTER_ALLOC_REQ_WOL_TYPE_LAST WOL_FILTER_ALLOC_REQ_WOL_TYPE_INVALID 8921894aa69aSMichael Chan u8 unused_0[5]; 8922894aa69aSMichael Chan u8 mac_address[6]; 8923894aa69aSMichael Chan __le16 pattern_offset; 8924894aa69aSMichael Chan __le16 pattern_buf_size; 8925894aa69aSMichael Chan __le16 pattern_mask_size; 8926894aa69aSMichael Chan u8 unused_1[4]; 8927894aa69aSMichael Chan __le64 pattern_buf_addr; 8928894aa69aSMichael Chan __le64 pattern_mask_addr; 8929894aa69aSMichael Chan }; 8930894aa69aSMichael Chan 8931894aa69aSMichael Chan /* hwrm_wol_filter_alloc_output (size:128b/16B) */ 8932894aa69aSMichael Chan struct hwrm_wol_filter_alloc_output { 8933894aa69aSMichael Chan __le16 error_code; 8934894aa69aSMichael Chan __le16 req_type; 8935894aa69aSMichael Chan __le16 seq_id; 8936894aa69aSMichael Chan __le16 resp_len; 8937894aa69aSMichael Chan u8 wol_filter_id; 8938894aa69aSMichael Chan u8 unused_0[6]; 8939894aa69aSMichael Chan u8 valid; 8940894aa69aSMichael Chan }; 8941894aa69aSMichael Chan 8942894aa69aSMichael Chan /* hwrm_wol_filter_free_input (size:256b/32B) */ 8943894aa69aSMichael Chan struct hwrm_wol_filter_free_input { 8944894aa69aSMichael Chan __le16 req_type; 8945894aa69aSMichael Chan __le16 cmpl_ring; 8946894aa69aSMichael Chan __le16 seq_id; 8947894aa69aSMichael Chan __le16 target_id; 8948894aa69aSMichael Chan __le64 resp_addr; 8949894aa69aSMichael Chan __le32 flags; 8950894aa69aSMichael Chan #define WOL_FILTER_FREE_REQ_FLAGS_FREE_ALL_WOL_FILTERS 0x1UL 8951894aa69aSMichael Chan __le32 enables; 8952894aa69aSMichael Chan #define WOL_FILTER_FREE_REQ_ENABLES_WOL_FILTER_ID 0x1UL 8953894aa69aSMichael Chan __le16 port_id; 8954894aa69aSMichael Chan u8 wol_filter_id; 8955894aa69aSMichael Chan u8 unused_0[5]; 8956894aa69aSMichael Chan }; 8957894aa69aSMichael Chan 8958894aa69aSMichael Chan /* hwrm_wol_filter_free_output (size:128b/16B) */ 8959894aa69aSMichael Chan struct hwrm_wol_filter_free_output { 8960894aa69aSMichael Chan __le16 error_code; 8961894aa69aSMichael Chan __le16 req_type; 8962894aa69aSMichael Chan __le16 seq_id; 8963894aa69aSMichael Chan __le16 resp_len; 8964894aa69aSMichael Chan u8 unused_0[7]; 8965894aa69aSMichael Chan u8 valid; 8966894aa69aSMichael Chan }; 8967894aa69aSMichael Chan 8968894aa69aSMichael Chan /* hwrm_wol_filter_qcfg_input (size:448b/56B) */ 8969894aa69aSMichael Chan struct hwrm_wol_filter_qcfg_input { 8970894aa69aSMichael Chan __le16 req_type; 8971894aa69aSMichael Chan __le16 cmpl_ring; 8972894aa69aSMichael Chan __le16 seq_id; 8973894aa69aSMichael Chan __le16 target_id; 8974894aa69aSMichael Chan __le64 resp_addr; 8975894aa69aSMichael Chan __le16 port_id; 8976894aa69aSMichael Chan __le16 handle; 8977894aa69aSMichael Chan u8 unused_0[4]; 8978894aa69aSMichael Chan __le64 pattern_buf_addr; 8979894aa69aSMichael Chan __le16 pattern_buf_size; 8980894aa69aSMichael Chan u8 unused_1[6]; 8981894aa69aSMichael Chan __le64 pattern_mask_addr; 8982894aa69aSMichael Chan __le16 pattern_mask_size; 8983894aa69aSMichael Chan u8 unused_2[6]; 8984894aa69aSMichael Chan }; 8985894aa69aSMichael Chan 8986894aa69aSMichael Chan /* hwrm_wol_filter_qcfg_output (size:256b/32B) */ 8987894aa69aSMichael Chan struct hwrm_wol_filter_qcfg_output { 8988894aa69aSMichael Chan __le16 error_code; 8989894aa69aSMichael Chan __le16 req_type; 8990894aa69aSMichael Chan __le16 seq_id; 8991894aa69aSMichael Chan __le16 resp_len; 8992894aa69aSMichael Chan __le16 next_handle; 8993894aa69aSMichael Chan u8 wol_filter_id; 8994894aa69aSMichael Chan u8 wol_type; 8995894aa69aSMichael Chan #define WOL_FILTER_QCFG_RESP_WOL_TYPE_MAGICPKT 0x0UL 8996894aa69aSMichael Chan #define WOL_FILTER_QCFG_RESP_WOL_TYPE_BMP 0x1UL 8997894aa69aSMichael Chan #define WOL_FILTER_QCFG_RESP_WOL_TYPE_INVALID 0xffUL 8998894aa69aSMichael Chan #define WOL_FILTER_QCFG_RESP_WOL_TYPE_LAST WOL_FILTER_QCFG_RESP_WOL_TYPE_INVALID 8999894aa69aSMichael Chan __le32 unused_0; 9000894aa69aSMichael Chan u8 mac_address[6]; 9001894aa69aSMichael Chan __le16 pattern_offset; 9002894aa69aSMichael Chan __le16 pattern_size; 9003894aa69aSMichael Chan __le16 pattern_mask_size; 9004894aa69aSMichael Chan u8 unused_1[3]; 9005894aa69aSMichael Chan u8 valid; 9006894aa69aSMichael Chan }; 9007894aa69aSMichael Chan 9008894aa69aSMichael Chan /* hwrm_wol_reason_qcfg_input (size:320b/40B) */ 9009894aa69aSMichael Chan struct hwrm_wol_reason_qcfg_input { 9010894aa69aSMichael Chan __le16 req_type; 9011894aa69aSMichael Chan __le16 cmpl_ring; 9012894aa69aSMichael Chan __le16 seq_id; 9013894aa69aSMichael Chan __le16 target_id; 9014894aa69aSMichael Chan __le64 resp_addr; 9015894aa69aSMichael Chan __le16 port_id; 9016894aa69aSMichael Chan u8 unused_0[6]; 9017894aa69aSMichael Chan __le64 wol_pkt_buf_addr; 9018894aa69aSMichael Chan __le16 wol_pkt_buf_size; 9019894aa69aSMichael Chan u8 unused_1[6]; 9020894aa69aSMichael Chan }; 9021894aa69aSMichael Chan 9022894aa69aSMichael Chan /* hwrm_wol_reason_qcfg_output (size:128b/16B) */ 9023894aa69aSMichael Chan struct hwrm_wol_reason_qcfg_output { 9024894aa69aSMichael Chan __le16 error_code; 9025894aa69aSMichael Chan __le16 req_type; 9026894aa69aSMichael Chan __le16 seq_id; 9027894aa69aSMichael Chan __le16 resp_len; 9028894aa69aSMichael Chan u8 wol_filter_id; 9029894aa69aSMichael Chan u8 wol_reason; 9030894aa69aSMichael Chan #define WOL_REASON_QCFG_RESP_WOL_REASON_MAGICPKT 0x0UL 9031894aa69aSMichael Chan #define WOL_REASON_QCFG_RESP_WOL_REASON_BMP 0x1UL 9032894aa69aSMichael Chan #define WOL_REASON_QCFG_RESP_WOL_REASON_INVALID 0xffUL 9033894aa69aSMichael Chan #define WOL_REASON_QCFG_RESP_WOL_REASON_LAST WOL_REASON_QCFG_RESP_WOL_REASON_INVALID 9034894aa69aSMichael Chan u8 wol_pkt_len; 9035894aa69aSMichael Chan u8 unused_0[4]; 9036894aa69aSMichael Chan u8 valid; 9037894aa69aSMichael Chan }; 9038894aa69aSMichael Chan 9039bfc6e5fbSMichael Chan /* hwrm_dbg_read_direct_input (size:256b/32B) */ 9040bfc6e5fbSMichael Chan struct hwrm_dbg_read_direct_input { 9041bfc6e5fbSMichael Chan __le16 req_type; 9042bfc6e5fbSMichael Chan __le16 cmpl_ring; 9043bfc6e5fbSMichael Chan __le16 seq_id; 9044bfc6e5fbSMichael Chan __le16 target_id; 9045bfc6e5fbSMichael Chan __le64 resp_addr; 9046bfc6e5fbSMichael Chan __le64 host_dest_addr; 9047bfc6e5fbSMichael Chan __le32 read_addr; 9048bfc6e5fbSMichael Chan __le32 read_len32; 9049bfc6e5fbSMichael Chan }; 9050bfc6e5fbSMichael Chan 9051bfc6e5fbSMichael Chan /* hwrm_dbg_read_direct_output (size:128b/16B) */ 9052bfc6e5fbSMichael Chan struct hwrm_dbg_read_direct_output { 9053bfc6e5fbSMichael Chan __le16 error_code; 9054bfc6e5fbSMichael Chan __le16 req_type; 9055bfc6e5fbSMichael Chan __le16 seq_id; 9056bfc6e5fbSMichael Chan __le16 resp_len; 9057bfc6e5fbSMichael Chan __le32 crc32; 9058bfc6e5fbSMichael Chan u8 unused_0[3]; 9059bfc6e5fbSMichael Chan u8 valid; 9060bfc6e5fbSMichael Chan }; 9061bfc6e5fbSMichael Chan 90629d6b648cSMichael Chan /* hwrm_dbg_qcaps_input (size:192b/24B) */ 90639d6b648cSMichael Chan struct hwrm_dbg_qcaps_input { 90649d6b648cSMichael Chan __le16 req_type; 90659d6b648cSMichael Chan __le16 cmpl_ring; 90669d6b648cSMichael Chan __le16 seq_id; 90679d6b648cSMichael Chan __le16 target_id; 90689d6b648cSMichael Chan __le64 resp_addr; 90699d6b648cSMichael Chan __le16 fid; 90709d6b648cSMichael Chan u8 unused_0[6]; 90719d6b648cSMichael Chan }; 90729d6b648cSMichael Chan 90739d6b648cSMichael Chan /* hwrm_dbg_qcaps_output (size:192b/24B) */ 90749d6b648cSMichael Chan struct hwrm_dbg_qcaps_output { 90759d6b648cSMichael Chan __le16 error_code; 90769d6b648cSMichael Chan __le16 req_type; 90779d6b648cSMichael Chan __le16 seq_id; 90789d6b648cSMichael Chan __le16 resp_len; 90799d6b648cSMichael Chan __le16 fid; 90809d6b648cSMichael Chan u8 unused_0[2]; 90819d6b648cSMichael Chan __le32 coredump_component_disable_caps; 90829d6b648cSMichael Chan #define DBG_QCAPS_RESP_COREDUMP_COMPONENT_DISABLE_CAPS_NVRAM 0x1UL 90839d6b648cSMichael Chan __le32 flags; 90849d6b648cSMichael Chan #define DBG_QCAPS_RESP_FLAGS_CRASHDUMP_NVM 0x1UL 90859d6b648cSMichael Chan #define DBG_QCAPS_RESP_FLAGS_CRASHDUMP_HOST_DDR 0x2UL 90869d6b648cSMichael Chan #define DBG_QCAPS_RESP_FLAGS_CRASHDUMP_SOC_DDR 0x4UL 908778eeadb8SMichael Chan #define DBG_QCAPS_RESP_FLAGS_USEQ 0x8UL 90889d6b648cSMichael Chan u8 unused_1[3]; 90899d6b648cSMichael Chan u8 valid; 90909d6b648cSMichael Chan }; 90919d6b648cSMichael Chan 90929d6b648cSMichael Chan /* hwrm_dbg_qcfg_input (size:192b/24B) */ 90939d6b648cSMichael Chan struct hwrm_dbg_qcfg_input { 90949d6b648cSMichael Chan __le16 req_type; 90959d6b648cSMichael Chan __le16 cmpl_ring; 90969d6b648cSMichael Chan __le16 seq_id; 90979d6b648cSMichael Chan __le16 target_id; 90989d6b648cSMichael Chan __le64 resp_addr; 90999d6b648cSMichael Chan __le16 fid; 91009d6b648cSMichael Chan __le16 flags; 91019d6b648cSMichael Chan #define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_MASK 0x3UL 91029d6b648cSMichael Chan #define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_SFT 0 91039d6b648cSMichael Chan #define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_DEST_NVM 0x0UL 91049d6b648cSMichael Chan #define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_DEST_HOST_DDR 0x1UL 91059d6b648cSMichael Chan #define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_DEST_SOC_DDR 0x2UL 91069d6b648cSMichael Chan #define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_LAST DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_DEST_SOC_DDR 91079d6b648cSMichael Chan __le32 coredump_component_disable_flags; 91089d6b648cSMichael Chan #define DBG_QCFG_REQ_COREDUMP_COMPONENT_DISABLE_FLAGS_NVRAM 0x1UL 91099d6b648cSMichael Chan }; 91109d6b648cSMichael Chan 91119d6b648cSMichael Chan /* hwrm_dbg_qcfg_output (size:256b/32B) */ 91129d6b648cSMichael Chan struct hwrm_dbg_qcfg_output { 91139d6b648cSMichael Chan __le16 error_code; 91149d6b648cSMichael Chan __le16 req_type; 91159d6b648cSMichael Chan __le16 seq_id; 91169d6b648cSMichael Chan __le16 resp_len; 91179d6b648cSMichael Chan __le16 fid; 91189d6b648cSMichael Chan u8 unused_0[2]; 91199d6b648cSMichael Chan __le32 coredump_size; 91209d6b648cSMichael Chan __le32 flags; 91219d6b648cSMichael Chan #define DBG_QCFG_RESP_FLAGS_UART_LOG 0x1UL 91229d6b648cSMichael Chan #define DBG_QCFG_RESP_FLAGS_UART_LOG_SECONDARY 0x2UL 91239d6b648cSMichael Chan #define DBG_QCFG_RESP_FLAGS_FW_TRACE 0x4UL 91249d6b648cSMichael Chan #define DBG_QCFG_RESP_FLAGS_FW_TRACE_SECONDARY 0x8UL 91259d6b648cSMichael Chan #define DBG_QCFG_RESP_FLAGS_DEBUG_NOTIFY 0x10UL 91269d6b648cSMichael Chan #define DBG_QCFG_RESP_FLAGS_JTAG_DEBUG 0x20UL 91279d6b648cSMichael Chan __le16 async_cmpl_ring; 91289d6b648cSMichael Chan u8 unused_2[2]; 91299d6b648cSMichael Chan __le32 crashdump_size; 91309d6b648cSMichael Chan u8 unused_3[3]; 91319d6b648cSMichael Chan u8 valid; 91329d6b648cSMichael Chan }; 91339d6b648cSMichael Chan 91342895c153SMichael Chan /* hwrm_dbg_crashdump_medium_cfg_input (size:320b/40B) */ 91352895c153SMichael Chan struct hwrm_dbg_crashdump_medium_cfg_input { 91362895c153SMichael Chan __le16 req_type; 91372895c153SMichael Chan __le16 cmpl_ring; 91382895c153SMichael Chan __le16 seq_id; 91392895c153SMichael Chan __le16 target_id; 91402895c153SMichael Chan __le64 resp_addr; 91412895c153SMichael Chan __le16 output_dest_flags; 91422895c153SMichael Chan #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_TYPE_DDR 0x1UL 91432895c153SMichael Chan __le16 pg_size_lvl; 91442895c153SMichael Chan #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_LVL_MASK 0x3UL 91452895c153SMichael Chan #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_LVL_SFT 0 91462895c153SMichael Chan #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_LVL_LVL_0 0x0UL 91472895c153SMichael Chan #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_LVL_LVL_1 0x1UL 91482895c153SMichael Chan #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_LVL_LVL_2 0x2UL 91492895c153SMichael Chan #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_LVL_LAST DBG_CRASHDUMP_MEDIUM_CFG_REQ_LVL_LVL_2 91502895c153SMichael Chan #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_MASK 0x1cUL 91512895c153SMichael Chan #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_SFT 2 91522895c153SMichael Chan #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_PG_4K (0x0UL << 2) 91532895c153SMichael Chan #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_PG_8K (0x1UL << 2) 91542895c153SMichael Chan #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_PG_64K (0x2UL << 2) 91552895c153SMichael Chan #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_PG_2M (0x3UL << 2) 91562895c153SMichael Chan #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_PG_8M (0x4UL << 2) 91572895c153SMichael Chan #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_PG_1G (0x5UL << 2) 91582895c153SMichael Chan #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_LAST DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_PG_1G 91592895c153SMichael Chan #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_UNUSED11_MASK 0xffe0UL 91602895c153SMichael Chan #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_UNUSED11_SFT 5 91612895c153SMichael Chan __le32 size; 91622895c153SMichael Chan __le32 coredump_component_disable_flags; 91632895c153SMichael Chan #define DBG_CRASHDUMP_MEDIUM_CFG_REQ_NVRAM 0x1UL 91642895c153SMichael Chan __le32 unused_0; 91652895c153SMichael Chan __le64 pbl; 91662895c153SMichael Chan }; 91672895c153SMichael Chan 91682895c153SMichael Chan /* hwrm_dbg_crashdump_medium_cfg_output (size:128b/16B) */ 91692895c153SMichael Chan struct hwrm_dbg_crashdump_medium_cfg_output { 91702895c153SMichael Chan __le16 error_code; 91712895c153SMichael Chan __le16 req_type; 91722895c153SMichael Chan __le16 seq_id; 91732895c153SMichael Chan __le16 resp_len; 91742895c153SMichael Chan u8 unused_1[7]; 91752895c153SMichael Chan u8 valid; 91762895c153SMichael Chan }; 91772895c153SMichael Chan 91786fc92c33SMichael Chan /* coredump_segment_record (size:128b/16B) */ 91796fc92c33SMichael Chan struct coredump_segment_record { 91806fc92c33SMichael Chan __le16 component_id; 91816fc92c33SMichael Chan __le16 segment_id; 91826fc92c33SMichael Chan __le16 max_instances; 91836fc92c33SMichael Chan u8 version_hi; 91846fc92c33SMichael Chan u8 version_low; 91856fc92c33SMichael Chan u8 seg_flags; 91862792b5b9SMichael Chan u8 compress_flags; 91872792b5b9SMichael Chan #define SFLAG_COMPRESSED_ZLIB 0x1UL 9188bfc6e5fbSMichael Chan u8 unused_0[2]; 9189bfc6e5fbSMichael Chan __le32 segment_len; 91906fc92c33SMichael Chan }; 91916fc92c33SMichael Chan 91926fc92c33SMichael Chan /* hwrm_dbg_coredump_list_input (size:256b/32B) */ 91936fc92c33SMichael Chan struct hwrm_dbg_coredump_list_input { 91946fc92c33SMichael Chan __le16 req_type; 91956fc92c33SMichael Chan __le16 cmpl_ring; 91966fc92c33SMichael Chan __le16 seq_id; 91976fc92c33SMichael Chan __le16 target_id; 91986fc92c33SMichael Chan __le64 resp_addr; 91996fc92c33SMichael Chan __le64 host_dest_addr; 92006fc92c33SMichael Chan __le32 host_buf_len; 92016fc92c33SMichael Chan __le16 seq_no; 92024a50ddc2SMichael Chan u8 flags; 92034a50ddc2SMichael Chan #define DBG_COREDUMP_LIST_REQ_FLAGS_CRASHDUMP 0x1UL 92044a50ddc2SMichael Chan u8 unused_0[1]; 92056fc92c33SMichael Chan }; 92066fc92c33SMichael Chan 92076fc92c33SMichael Chan /* hwrm_dbg_coredump_list_output (size:128b/16B) */ 92086fc92c33SMichael Chan struct hwrm_dbg_coredump_list_output { 92096fc92c33SMichael Chan __le16 error_code; 92106fc92c33SMichael Chan __le16 req_type; 92116fc92c33SMichael Chan __le16 seq_id; 92126fc92c33SMichael Chan __le16 resp_len; 92136fc92c33SMichael Chan u8 flags; 92146fc92c33SMichael Chan #define DBG_COREDUMP_LIST_RESP_FLAGS_MORE 0x1UL 92156fc92c33SMichael Chan u8 unused_0; 92166fc92c33SMichael Chan __le16 total_segments; 92176fc92c33SMichael Chan __le16 data_len; 92186fc92c33SMichael Chan u8 unused_1; 92196fc92c33SMichael Chan u8 valid; 92206fc92c33SMichael Chan }; 92216fc92c33SMichael Chan 92226fc92c33SMichael Chan /* hwrm_dbg_coredump_initiate_input (size:256b/32B) */ 92236fc92c33SMichael Chan struct hwrm_dbg_coredump_initiate_input { 92246fc92c33SMichael Chan __le16 req_type; 92256fc92c33SMichael Chan __le16 cmpl_ring; 92266fc92c33SMichael Chan __le16 seq_id; 92276fc92c33SMichael Chan __le16 target_id; 92286fc92c33SMichael Chan __le64 resp_addr; 92296fc92c33SMichael Chan __le16 component_id; 92306fc92c33SMichael Chan __le16 segment_id; 92316fc92c33SMichael Chan __le16 instance; 92326fc92c33SMichael Chan __le16 unused_0; 92336fc92c33SMichael Chan u8 seg_flags; 92346fc92c33SMichael Chan u8 unused_1[7]; 92356fc92c33SMichael Chan }; 92366fc92c33SMichael Chan 92376fc92c33SMichael Chan /* hwrm_dbg_coredump_initiate_output (size:128b/16B) */ 92386fc92c33SMichael Chan struct hwrm_dbg_coredump_initiate_output { 92396fc92c33SMichael Chan __le16 error_code; 92406fc92c33SMichael Chan __le16 req_type; 92416fc92c33SMichael Chan __le16 seq_id; 92426fc92c33SMichael Chan __le16 resp_len; 92436fc92c33SMichael Chan u8 unused_0[7]; 92446fc92c33SMichael Chan u8 valid; 92456fc92c33SMichael Chan }; 92466fc92c33SMichael Chan 92476fc92c33SMichael Chan /* coredump_data_hdr (size:128b/16B) */ 92486fc92c33SMichael Chan struct coredump_data_hdr { 92496fc92c33SMichael Chan __le32 address; 92506fc92c33SMichael Chan __le32 flags_length; 925116db6323SMichael Chan #define COREDUMP_DATA_HDR_FLAGS_LENGTH_ACTUAL_LEN_MASK 0xffffffUL 925216db6323SMichael Chan #define COREDUMP_DATA_HDR_FLAGS_LENGTH_ACTUAL_LEN_SFT 0 925316db6323SMichael Chan #define COREDUMP_DATA_HDR_FLAGS_LENGTH_INDIRECT_ACCESS 0x1000000UL 92546fc92c33SMichael Chan __le32 instance; 92556fc92c33SMichael Chan __le32 next_offset; 92566fc92c33SMichael Chan }; 92576fc92c33SMichael Chan 92586fc92c33SMichael Chan /* hwrm_dbg_coredump_retrieve_input (size:448b/56B) */ 92596fc92c33SMichael Chan struct hwrm_dbg_coredump_retrieve_input { 92606fc92c33SMichael Chan __le16 req_type; 92616fc92c33SMichael Chan __le16 cmpl_ring; 92626fc92c33SMichael Chan __le16 seq_id; 92636fc92c33SMichael Chan __le16 target_id; 92646fc92c33SMichael Chan __le64 resp_addr; 92656fc92c33SMichael Chan __le64 host_dest_addr; 92666fc92c33SMichael Chan __le32 host_buf_len; 92676fc92c33SMichael Chan __le32 unused_0; 92686fc92c33SMichael Chan __le16 component_id; 92696fc92c33SMichael Chan __le16 segment_id; 92706fc92c33SMichael Chan __le16 instance; 92716fc92c33SMichael Chan __le16 unused_1; 92726fc92c33SMichael Chan u8 seg_flags; 92736fc92c33SMichael Chan u8 unused_2; 92746fc92c33SMichael Chan __le16 unused_3; 92756fc92c33SMichael Chan __le32 unused_4; 92766fc92c33SMichael Chan __le32 seq_no; 92776fc92c33SMichael Chan __le32 unused_5; 92786fc92c33SMichael Chan }; 92796fc92c33SMichael Chan 92806fc92c33SMichael Chan /* hwrm_dbg_coredump_retrieve_output (size:128b/16B) */ 92816fc92c33SMichael Chan struct hwrm_dbg_coredump_retrieve_output { 92826fc92c33SMichael Chan __le16 error_code; 92836fc92c33SMichael Chan __le16 req_type; 92846fc92c33SMichael Chan __le16 seq_id; 92856fc92c33SMichael Chan __le16 resp_len; 92866fc92c33SMichael Chan u8 flags; 92876fc92c33SMichael Chan #define DBG_COREDUMP_RETRIEVE_RESP_FLAGS_MORE 0x1UL 92886fc92c33SMichael Chan u8 unused_0; 92896fc92c33SMichael Chan __le16 data_len; 92906fc92c33SMichael Chan u8 unused_1[3]; 92916fc92c33SMichael Chan u8 valid; 92926fc92c33SMichael Chan }; 92936fc92c33SMichael Chan 929431d357c0SMichael Chan /* hwrm_dbg_ring_info_get_input (size:192b/24B) */ 929531d357c0SMichael Chan struct hwrm_dbg_ring_info_get_input { 929631d357c0SMichael Chan __le16 req_type; 929731d357c0SMichael Chan __le16 cmpl_ring; 929831d357c0SMichael Chan __le16 seq_id; 929931d357c0SMichael Chan __le16 target_id; 930031d357c0SMichael Chan __le64 resp_addr; 930131d357c0SMichael Chan u8 ring_type; 930231d357c0SMichael Chan #define DBG_RING_INFO_GET_REQ_RING_TYPE_L2_CMPL 0x0UL 930331d357c0SMichael Chan #define DBG_RING_INFO_GET_REQ_RING_TYPE_TX 0x1UL 930431d357c0SMichael Chan #define DBG_RING_INFO_GET_REQ_RING_TYPE_RX 0x2UL 9305bfc6e5fbSMichael Chan #define DBG_RING_INFO_GET_REQ_RING_TYPE_NQ 0x3UL 9306bfc6e5fbSMichael Chan #define DBG_RING_INFO_GET_REQ_RING_TYPE_LAST DBG_RING_INFO_GET_REQ_RING_TYPE_NQ 930731d357c0SMichael Chan u8 unused_0[3]; 930831d357c0SMichael Chan __le32 fw_ring_id; 930931d357c0SMichael Chan }; 931031d357c0SMichael Chan 931131d357c0SMichael Chan /* hwrm_dbg_ring_info_get_output (size:192b/24B) */ 931231d357c0SMichael Chan struct hwrm_dbg_ring_info_get_output { 931331d357c0SMichael Chan __le16 error_code; 931431d357c0SMichael Chan __le16 req_type; 931531d357c0SMichael Chan __le16 seq_id; 931631d357c0SMichael Chan __le16 resp_len; 931731d357c0SMichael Chan __le32 producer_index; 931831d357c0SMichael Chan __le32 consumer_index; 9319bfc6e5fbSMichael Chan __le32 cag_vector_ctrl; 9320bfc6e5fbSMichael Chan u8 unused_0[3]; 932131d357c0SMichael Chan u8 valid; 932231d357c0SMichael Chan }; 932331d357c0SMichael Chan 9324894aa69aSMichael Chan /* hwrm_nvm_read_input (size:320b/40B) */ 9325894aa69aSMichael Chan struct hwrm_nvm_read_input { 9326894aa69aSMichael Chan __le16 req_type; 9327894aa69aSMichael Chan __le16 cmpl_ring; 9328894aa69aSMichael Chan __le16 seq_id; 9329894aa69aSMichael Chan __le16 target_id; 9330894aa69aSMichael Chan __le64 resp_addr; 9331894aa69aSMichael Chan __le64 host_dest_addr; 9332894aa69aSMichael Chan __le16 dir_idx; 9333894aa69aSMichael Chan u8 unused_0[2]; 9334894aa69aSMichael Chan __le32 offset; 9335894aa69aSMichael Chan __le32 len; 9336894aa69aSMichael Chan u8 unused_1[4]; 9337894aa69aSMichael Chan }; 9338894aa69aSMichael Chan 9339894aa69aSMichael Chan /* hwrm_nvm_read_output (size:128b/16B) */ 9340894aa69aSMichael Chan struct hwrm_nvm_read_output { 9341894aa69aSMichael Chan __le16 error_code; 9342894aa69aSMichael Chan __le16 req_type; 9343894aa69aSMichael Chan __le16 seq_id; 9344894aa69aSMichael Chan __le16 resp_len; 9345894aa69aSMichael Chan u8 unused_0[7]; 9346894aa69aSMichael Chan u8 valid; 9347894aa69aSMichael Chan }; 9348894aa69aSMichael Chan 9349894aa69aSMichael Chan /* hwrm_nvm_get_dir_entries_input (size:192b/24B) */ 9350894aa69aSMichael Chan struct hwrm_nvm_get_dir_entries_input { 9351894aa69aSMichael Chan __le16 req_type; 9352894aa69aSMichael Chan __le16 cmpl_ring; 9353894aa69aSMichael Chan __le16 seq_id; 9354894aa69aSMichael Chan __le16 target_id; 9355894aa69aSMichael Chan __le64 resp_addr; 9356894aa69aSMichael Chan __le64 host_dest_addr; 9357894aa69aSMichael Chan }; 9358894aa69aSMichael Chan 9359894aa69aSMichael Chan /* hwrm_nvm_get_dir_entries_output (size:128b/16B) */ 9360894aa69aSMichael Chan struct hwrm_nvm_get_dir_entries_output { 9361894aa69aSMichael Chan __le16 error_code; 9362894aa69aSMichael Chan __le16 req_type; 9363894aa69aSMichael Chan __le16 seq_id; 9364894aa69aSMichael Chan __le16 resp_len; 9365894aa69aSMichael Chan u8 unused_0[7]; 9366894aa69aSMichael Chan u8 valid; 9367894aa69aSMichael Chan }; 9368894aa69aSMichael Chan 9369894aa69aSMichael Chan /* hwrm_nvm_get_dir_info_input (size:128b/16B) */ 9370894aa69aSMichael Chan struct hwrm_nvm_get_dir_info_input { 9371894aa69aSMichael Chan __le16 req_type; 9372894aa69aSMichael Chan __le16 cmpl_ring; 9373894aa69aSMichael Chan __le16 seq_id; 9374894aa69aSMichael Chan __le16 target_id; 9375894aa69aSMichael Chan __le64 resp_addr; 9376894aa69aSMichael Chan }; 9377894aa69aSMichael Chan 9378894aa69aSMichael Chan /* hwrm_nvm_get_dir_info_output (size:192b/24B) */ 9379894aa69aSMichael Chan struct hwrm_nvm_get_dir_info_output { 9380894aa69aSMichael Chan __le16 error_code; 9381894aa69aSMichael Chan __le16 req_type; 9382894aa69aSMichael Chan __le16 seq_id; 9383894aa69aSMichael Chan __le16 resp_len; 9384894aa69aSMichael Chan __le32 entries; 9385894aa69aSMichael Chan __le32 entry_length; 9386894aa69aSMichael Chan u8 unused_0[7]; 9387894aa69aSMichael Chan u8 valid; 9388894aa69aSMichael Chan }; 9389894aa69aSMichael Chan 9390fbfee257SMichael Chan /* hwrm_nvm_write_input (size:448b/56B) */ 9391894aa69aSMichael Chan struct hwrm_nvm_write_input { 9392894aa69aSMichael Chan __le16 req_type; 9393894aa69aSMichael Chan __le16 cmpl_ring; 9394894aa69aSMichael Chan __le16 seq_id; 9395894aa69aSMichael Chan __le16 target_id; 9396894aa69aSMichael Chan __le64 resp_addr; 9397894aa69aSMichael Chan __le64 host_src_addr; 9398894aa69aSMichael Chan __le16 dir_type; 9399894aa69aSMichael Chan __le16 dir_ordinal; 9400894aa69aSMichael Chan __le16 dir_ext; 9401894aa69aSMichael Chan __le16 dir_attr; 9402894aa69aSMichael Chan __le32 dir_data_length; 9403894aa69aSMichael Chan __le16 option; 9404894aa69aSMichael Chan __le16 flags; 9405894aa69aSMichael Chan #define NVM_WRITE_REQ_FLAGS_KEEP_ORIG_ACTIVE_IMG 0x1UL 9406fbfee257SMichael Chan #define NVM_WRITE_REQ_FLAGS_BATCH_MODE 0x2UL 9407fbfee257SMichael Chan #define NVM_WRITE_REQ_FLAGS_BATCH_LAST 0x4UL 9408894aa69aSMichael Chan __le32 dir_item_length; 9409fbfee257SMichael Chan __le32 offset; 9410fbfee257SMichael Chan __le32 len; 9411894aa69aSMichael Chan __le32 unused_0; 9412894aa69aSMichael Chan }; 9413894aa69aSMichael Chan 9414894aa69aSMichael Chan /* hwrm_nvm_write_output (size:128b/16B) */ 9415894aa69aSMichael Chan struct hwrm_nvm_write_output { 9416894aa69aSMichael Chan __le16 error_code; 9417894aa69aSMichael Chan __le16 req_type; 9418894aa69aSMichael Chan __le16 seq_id; 9419894aa69aSMichael Chan __le16 resp_len; 9420894aa69aSMichael Chan __le32 dir_item_length; 9421894aa69aSMichael Chan __le16 dir_idx; 9422894aa69aSMichael Chan u8 unused_0; 9423894aa69aSMichael Chan u8 valid; 9424894aa69aSMichael Chan }; 9425894aa69aSMichael Chan 9426894aa69aSMichael Chan /* hwrm_nvm_write_cmd_err (size:64b/8B) */ 9427894aa69aSMichael Chan struct hwrm_nvm_write_cmd_err { 9428894aa69aSMichael Chan u8 code; 9429894aa69aSMichael Chan #define NVM_WRITE_CMD_ERR_CODE_UNKNOWN 0x0UL 9430894aa69aSMichael Chan #define NVM_WRITE_CMD_ERR_CODE_FRAG_ERR 0x1UL 9431894aa69aSMichael Chan #define NVM_WRITE_CMD_ERR_CODE_NO_SPACE 0x2UL 9432894aa69aSMichael Chan #define NVM_WRITE_CMD_ERR_CODE_LAST NVM_WRITE_CMD_ERR_CODE_NO_SPACE 9433894aa69aSMichael Chan u8 unused_0[7]; 9434894aa69aSMichael Chan }; 9435894aa69aSMichael Chan 9436894aa69aSMichael Chan /* hwrm_nvm_modify_input (size:320b/40B) */ 9437894aa69aSMichael Chan struct hwrm_nvm_modify_input { 9438894aa69aSMichael Chan __le16 req_type; 9439894aa69aSMichael Chan __le16 cmpl_ring; 9440894aa69aSMichael Chan __le16 seq_id; 9441894aa69aSMichael Chan __le16 target_id; 9442894aa69aSMichael Chan __le64 resp_addr; 9443894aa69aSMichael Chan __le64 host_src_addr; 9444894aa69aSMichael Chan __le16 dir_idx; 9445460c2577SMichael Chan __le16 flags; 9446460c2577SMichael Chan #define NVM_MODIFY_REQ_FLAGS_BATCH_MODE 0x1UL 9447460c2577SMichael Chan #define NVM_MODIFY_REQ_FLAGS_BATCH_LAST 0x2UL 9448894aa69aSMichael Chan __le32 offset; 9449894aa69aSMichael Chan __le32 len; 9450894aa69aSMichael Chan u8 unused_1[4]; 9451894aa69aSMichael Chan }; 9452894aa69aSMichael Chan 9453894aa69aSMichael Chan /* hwrm_nvm_modify_output (size:128b/16B) */ 9454894aa69aSMichael Chan struct hwrm_nvm_modify_output { 9455894aa69aSMichael Chan __le16 error_code; 9456894aa69aSMichael Chan __le16 req_type; 9457894aa69aSMichael Chan __le16 seq_id; 9458894aa69aSMichael Chan __le16 resp_len; 9459894aa69aSMichael Chan u8 unused_0[7]; 9460894aa69aSMichael Chan u8 valid; 9461894aa69aSMichael Chan }; 9462894aa69aSMichael Chan 9463894aa69aSMichael Chan /* hwrm_nvm_find_dir_entry_input (size:256b/32B) */ 9464894aa69aSMichael Chan struct hwrm_nvm_find_dir_entry_input { 9465894aa69aSMichael Chan __le16 req_type; 9466894aa69aSMichael Chan __le16 cmpl_ring; 9467894aa69aSMichael Chan __le16 seq_id; 9468894aa69aSMichael Chan __le16 target_id; 9469894aa69aSMichael Chan __le64 resp_addr; 9470894aa69aSMichael Chan __le32 enables; 9471894aa69aSMichael Chan #define NVM_FIND_DIR_ENTRY_REQ_ENABLES_DIR_IDX_VALID 0x1UL 9472894aa69aSMichael Chan __le16 dir_idx; 9473894aa69aSMichael Chan __le16 dir_type; 9474894aa69aSMichael Chan __le16 dir_ordinal; 9475894aa69aSMichael Chan __le16 dir_ext; 9476894aa69aSMichael Chan u8 opt_ordinal; 9477894aa69aSMichael Chan #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_MASK 0x3UL 9478894aa69aSMichael Chan #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_SFT 0 9479894aa69aSMichael Chan #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_EQ 0x0UL 9480894aa69aSMichael Chan #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_GE 0x1UL 9481894aa69aSMichael Chan #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_GT 0x2UL 9482894aa69aSMichael Chan #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_LAST NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_GT 9483894aa69aSMichael Chan u8 unused_0[3]; 9484894aa69aSMichael Chan }; 9485894aa69aSMichael Chan 9486894aa69aSMichael Chan /* hwrm_nvm_find_dir_entry_output (size:256b/32B) */ 9487894aa69aSMichael Chan struct hwrm_nvm_find_dir_entry_output { 9488894aa69aSMichael Chan __le16 error_code; 9489894aa69aSMichael Chan __le16 req_type; 9490894aa69aSMichael Chan __le16 seq_id; 9491894aa69aSMichael Chan __le16 resp_len; 9492894aa69aSMichael Chan __le32 dir_item_length; 9493894aa69aSMichael Chan __le32 dir_data_length; 9494894aa69aSMichael Chan __le32 fw_ver; 9495894aa69aSMichael Chan __le16 dir_ordinal; 9496894aa69aSMichael Chan __le16 dir_idx; 9497894aa69aSMichael Chan u8 unused_0[7]; 9498894aa69aSMichael Chan u8 valid; 9499894aa69aSMichael Chan }; 9500894aa69aSMichael Chan 9501894aa69aSMichael Chan /* hwrm_nvm_erase_dir_entry_input (size:192b/24B) */ 9502894aa69aSMichael Chan struct hwrm_nvm_erase_dir_entry_input { 9503894aa69aSMichael Chan __le16 req_type; 9504894aa69aSMichael Chan __le16 cmpl_ring; 9505894aa69aSMichael Chan __le16 seq_id; 9506894aa69aSMichael Chan __le16 target_id; 9507894aa69aSMichael Chan __le64 resp_addr; 9508894aa69aSMichael Chan __le16 dir_idx; 9509894aa69aSMichael Chan u8 unused_0[6]; 9510894aa69aSMichael Chan }; 9511894aa69aSMichael Chan 9512894aa69aSMichael Chan /* hwrm_nvm_erase_dir_entry_output (size:128b/16B) */ 9513894aa69aSMichael Chan struct hwrm_nvm_erase_dir_entry_output { 9514894aa69aSMichael Chan __le16 error_code; 9515894aa69aSMichael Chan __le16 req_type; 9516894aa69aSMichael Chan __le16 seq_id; 9517894aa69aSMichael Chan __le16 resp_len; 9518894aa69aSMichael Chan u8 unused_0[7]; 9519894aa69aSMichael Chan u8 valid; 9520894aa69aSMichael Chan }; 9521894aa69aSMichael Chan 9522894aa69aSMichael Chan /* hwrm_nvm_get_dev_info_input (size:128b/16B) */ 9523894aa69aSMichael Chan struct hwrm_nvm_get_dev_info_input { 9524894aa69aSMichael Chan __le16 req_type; 9525894aa69aSMichael Chan __le16 cmpl_ring; 9526894aa69aSMichael Chan __le16 seq_id; 9527894aa69aSMichael Chan __le16 target_id; 9528894aa69aSMichael Chan __le64 resp_addr; 9529894aa69aSMichael Chan }; 9530894aa69aSMichael Chan 9531424174f1SVasundhara Volam /* hwrm_nvm_get_dev_info_output (size:640b/80B) */ 9532894aa69aSMichael Chan struct hwrm_nvm_get_dev_info_output { 9533894aa69aSMichael Chan __le16 error_code; 9534894aa69aSMichael Chan __le16 req_type; 9535894aa69aSMichael Chan __le16 seq_id; 9536894aa69aSMichael Chan __le16 resp_len; 9537894aa69aSMichael Chan __le16 manufacturer_id; 9538894aa69aSMichael Chan __le16 device_id; 9539894aa69aSMichael Chan __le32 sector_size; 9540894aa69aSMichael Chan __le32 nvram_size; 9541894aa69aSMichael Chan __le32 reserved_size; 9542894aa69aSMichael Chan __le32 available_size; 95434a50ddc2SMichael Chan u8 nvm_cfg_ver_maj; 95444a50ddc2SMichael Chan u8 nvm_cfg_ver_min; 95454a50ddc2SMichael Chan u8 nvm_cfg_ver_upd; 9546424174f1SVasundhara Volam u8 flags; 9547424174f1SVasundhara Volam #define NVM_GET_DEV_INFO_RESP_FLAGS_FW_VER_VALID 0x1UL 9548424174f1SVasundhara Volam char pkg_name[16]; 9549424174f1SVasundhara Volam __le16 hwrm_fw_major; 9550424174f1SVasundhara Volam __le16 hwrm_fw_minor; 9551424174f1SVasundhara Volam __le16 hwrm_fw_build; 9552424174f1SVasundhara Volam __le16 hwrm_fw_patch; 9553424174f1SVasundhara Volam __le16 mgmt_fw_major; 9554424174f1SVasundhara Volam __le16 mgmt_fw_minor; 9555424174f1SVasundhara Volam __le16 mgmt_fw_build; 9556424174f1SVasundhara Volam __le16 mgmt_fw_patch; 9557424174f1SVasundhara Volam __le16 roce_fw_major; 9558424174f1SVasundhara Volam __le16 roce_fw_minor; 9559424174f1SVasundhara Volam __le16 roce_fw_build; 9560424174f1SVasundhara Volam __le16 roce_fw_patch; 9561424174f1SVasundhara Volam u8 unused_0[7]; 9562894aa69aSMichael Chan u8 valid; 9563894aa69aSMichael Chan }; 9564894aa69aSMichael Chan 9565894aa69aSMichael Chan /* hwrm_nvm_mod_dir_entry_input (size:256b/32B) */ 9566894aa69aSMichael Chan struct hwrm_nvm_mod_dir_entry_input { 9567894aa69aSMichael Chan __le16 req_type; 9568894aa69aSMichael Chan __le16 cmpl_ring; 9569894aa69aSMichael Chan __le16 seq_id; 9570894aa69aSMichael Chan __le16 target_id; 9571894aa69aSMichael Chan __le64 resp_addr; 9572894aa69aSMichael Chan __le32 enables; 9573894aa69aSMichael Chan #define NVM_MOD_DIR_ENTRY_REQ_ENABLES_CHECKSUM 0x1UL 9574894aa69aSMichael Chan __le16 dir_idx; 9575894aa69aSMichael Chan __le16 dir_ordinal; 9576894aa69aSMichael Chan __le16 dir_ext; 9577894aa69aSMichael Chan __le16 dir_attr; 9578894aa69aSMichael Chan __le32 checksum; 9579894aa69aSMichael Chan }; 9580894aa69aSMichael Chan 9581894aa69aSMichael Chan /* hwrm_nvm_mod_dir_entry_output (size:128b/16B) */ 9582894aa69aSMichael Chan struct hwrm_nvm_mod_dir_entry_output { 9583894aa69aSMichael Chan __le16 error_code; 9584894aa69aSMichael Chan __le16 req_type; 9585894aa69aSMichael Chan __le16 seq_id; 9586894aa69aSMichael Chan __le16 resp_len; 9587894aa69aSMichael Chan u8 unused_0[7]; 9588894aa69aSMichael Chan u8 valid; 9589894aa69aSMichael Chan }; 9590894aa69aSMichael Chan 9591894aa69aSMichael Chan /* hwrm_nvm_verify_update_input (size:192b/24B) */ 9592894aa69aSMichael Chan struct hwrm_nvm_verify_update_input { 9593894aa69aSMichael Chan __le16 req_type; 9594894aa69aSMichael Chan __le16 cmpl_ring; 9595894aa69aSMichael Chan __le16 seq_id; 9596894aa69aSMichael Chan __le16 target_id; 9597894aa69aSMichael Chan __le64 resp_addr; 9598894aa69aSMichael Chan __le16 dir_type; 9599894aa69aSMichael Chan __le16 dir_ordinal; 9600894aa69aSMichael Chan __le16 dir_ext; 9601894aa69aSMichael Chan u8 unused_0[2]; 9602894aa69aSMichael Chan }; 9603894aa69aSMichael Chan 9604894aa69aSMichael Chan /* hwrm_nvm_verify_update_output (size:128b/16B) */ 9605894aa69aSMichael Chan struct hwrm_nvm_verify_update_output { 9606894aa69aSMichael Chan __le16 error_code; 9607894aa69aSMichael Chan __le16 req_type; 9608894aa69aSMichael Chan __le16 seq_id; 9609894aa69aSMichael Chan __le16 resp_len; 9610894aa69aSMichael Chan u8 unused_0[7]; 9611894aa69aSMichael Chan u8 valid; 9612894aa69aSMichael Chan }; 9613894aa69aSMichael Chan 9614894aa69aSMichael Chan /* hwrm_nvm_install_update_input (size:192b/24B) */ 9615894aa69aSMichael Chan struct hwrm_nvm_install_update_input { 9616894aa69aSMichael Chan __le16 req_type; 9617894aa69aSMichael Chan __le16 cmpl_ring; 9618894aa69aSMichael Chan __le16 seq_id; 9619894aa69aSMichael Chan __le16 target_id; 9620894aa69aSMichael Chan __le64 resp_addr; 9621894aa69aSMichael Chan __le32 install_type; 9622894aa69aSMichael Chan #define NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_NORMAL 0x0UL 9623894aa69aSMichael Chan #define NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_ALL 0xffffffffUL 9624894aa69aSMichael Chan #define NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_LAST NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_ALL 9625894aa69aSMichael Chan __le16 flags; 9626894aa69aSMichael Chan #define NVM_INSTALL_UPDATE_REQ_FLAGS_ERASE_UNUSED_SPACE 0x1UL 9627894aa69aSMichael Chan #define NVM_INSTALL_UPDATE_REQ_FLAGS_REMOVE_UNUSED_PKG 0x2UL 9628894aa69aSMichael Chan #define NVM_INSTALL_UPDATE_REQ_FLAGS_ALLOWED_TO_DEFRAG 0x4UL 9629bfc6e5fbSMichael Chan #define NVM_INSTALL_UPDATE_REQ_FLAGS_VERIFY_ONLY 0x8UL 9630894aa69aSMichael Chan u8 unused_0[2]; 9631894aa69aSMichael Chan }; 9632894aa69aSMichael Chan 9633894aa69aSMichael Chan /* hwrm_nvm_install_update_output (size:192b/24B) */ 9634894aa69aSMichael Chan struct hwrm_nvm_install_update_output { 9635894aa69aSMichael Chan __le16 error_code; 9636894aa69aSMichael Chan __le16 req_type; 9637894aa69aSMichael Chan __le16 seq_id; 9638894aa69aSMichael Chan __le16 resp_len; 9639894aa69aSMichael Chan __le64 installed_items; 9640894aa69aSMichael Chan u8 result; 9641894aa69aSMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_SUCCESS 0x0UL 96422895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_FAILURE 0xffUL 96432895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_MALLOC_FAILURE 0xfdUL 96442895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_INDEX_PARAMETER 0xfbUL 96452895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_TYPE_PARAMETER 0xf3UL 96462895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_PREREQUISITE 0xf2UL 96472895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_FILE_HEADER 0xecUL 96482895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_SIGNATURE 0xebUL 96492895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_PROP_STREAM 0xeaUL 96502895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_PROP_LENGTH 0xe9UL 96512895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_MANIFEST 0xe8UL 96522895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_TRAILER 0xe7UL 96532895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_CHECKSUM 0xe6UL 96542895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_ITEM_CHECKSUM 0xe5UL 96552895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_DATA_LENGTH 0xe4UL 96562895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_DIRECTIVE 0xe1UL 96572895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_UNSUPPORTED_CHIP_REV 0xceUL 96582895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_UNSUPPORTED_DEVICE_ID 0xcdUL 96592895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_UNSUPPORTED_SUBSYS_VENDOR 0xccUL 96602895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_UNSUPPORTED_SUBSYS_ID 0xcbUL 96612895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_UNSUPPORTED_PLATFORM 0xc5UL 96622895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_DUPLICATE_ITEM 0xc4UL 96632895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_ZERO_LENGTH_ITEM 0xc3UL 96642895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_INSTALL_CHECKSUM_ERROR 0xb9UL 96652895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_INSTALL_DATA_ERROR 0xb8UL 96662895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_INSTALL_AUTHENTICATION_ERROR 0xb7UL 96672895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_ITEM_NOT_FOUND 0xb0UL 96682895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_ITEM_LOCKED 0xa7UL 96692895c153SMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESULT_LAST NVM_INSTALL_UPDATE_RESP_RESULT_ITEM_LOCKED 9670894aa69aSMichael Chan u8 problem_item; 9671894aa69aSMichael Chan #define NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_NONE 0x0UL 9672894aa69aSMichael Chan #define NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_PACKAGE 0xffUL 9673894aa69aSMichael Chan #define NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_LAST NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_PACKAGE 9674894aa69aSMichael Chan u8 reset_required; 9675894aa69aSMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_NONE 0x0UL 9676894aa69aSMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_PCI 0x1UL 9677894aa69aSMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_POWER 0x2UL 9678894aa69aSMichael Chan #define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_LAST NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_POWER 9679894aa69aSMichael Chan u8 unused_0[4]; 9680894aa69aSMichael Chan u8 valid; 9681894aa69aSMichael Chan }; 9682894aa69aSMichael Chan 9683894aa69aSMichael Chan /* hwrm_nvm_install_update_cmd_err (size:64b/8B) */ 9684894aa69aSMichael Chan struct hwrm_nvm_install_update_cmd_err { 9685894aa69aSMichael Chan u8 code; 9686894aa69aSMichael Chan #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_UNKNOWN 0x0UL 9687894aa69aSMichael Chan #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_FRAG_ERR 0x1UL 9688894aa69aSMichael Chan #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_NO_SPACE 0x2UL 968978eeadb8SMichael Chan #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_ANTI_ROLLBACK 0x3UL 9690ad04cc05SMichael Chan #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_NO_VOLTREG_SUPPORT 0x4UL 9691ad04cc05SMichael Chan #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_LAST NVM_INSTALL_UPDATE_CMD_ERR_CODE_NO_VOLTREG_SUPPORT 9692894aa69aSMichael Chan u8 unused_0[7]; 9693894aa69aSMichael Chan }; 9694894aa69aSMichael Chan 9695894aa69aSMichael Chan /* hwrm_nvm_get_variable_input (size:320b/40B) */ 9696894aa69aSMichael Chan struct hwrm_nvm_get_variable_input { 9697894aa69aSMichael Chan __le16 req_type; 9698894aa69aSMichael Chan __le16 cmpl_ring; 9699894aa69aSMichael Chan __le16 seq_id; 9700894aa69aSMichael Chan __le16 target_id; 9701894aa69aSMichael Chan __le64 resp_addr; 9702894aa69aSMichael Chan __le64 dest_data_addr; 9703894aa69aSMichael Chan __le16 data_len; 9704894aa69aSMichael Chan __le16 option_num; 9705894aa69aSMichael Chan #define NVM_GET_VARIABLE_REQ_OPTION_NUM_RSVD_0 0x0UL 9706894aa69aSMichael Chan #define NVM_GET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF 0xffffUL 9707894aa69aSMichael Chan #define NVM_GET_VARIABLE_REQ_OPTION_NUM_LAST NVM_GET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF 9708894aa69aSMichael Chan __le16 dimensions; 9709894aa69aSMichael Chan __le16 index_0; 9710894aa69aSMichael Chan __le16 index_1; 9711894aa69aSMichael Chan __le16 index_2; 9712894aa69aSMichael Chan __le16 index_3; 9713894aa69aSMichael Chan u8 flags; 9714894aa69aSMichael Chan #define NVM_GET_VARIABLE_REQ_FLAGS_FACTORY_DFLT 0x1UL 9715894aa69aSMichael Chan u8 unused_0; 9716894aa69aSMichael Chan }; 9717894aa69aSMichael Chan 9718894aa69aSMichael Chan /* hwrm_nvm_get_variable_output (size:128b/16B) */ 9719894aa69aSMichael Chan struct hwrm_nvm_get_variable_output { 9720894aa69aSMichael Chan __le16 error_code; 9721894aa69aSMichael Chan __le16 req_type; 9722894aa69aSMichael Chan __le16 seq_id; 9723894aa69aSMichael Chan __le16 resp_len; 9724894aa69aSMichael Chan __le16 data_len; 9725894aa69aSMichael Chan __le16 option_num; 9726894aa69aSMichael Chan #define NVM_GET_VARIABLE_RESP_OPTION_NUM_RSVD_0 0x0UL 9727894aa69aSMichael Chan #define NVM_GET_VARIABLE_RESP_OPTION_NUM_RSVD_FFFF 0xffffUL 9728894aa69aSMichael Chan #define NVM_GET_VARIABLE_RESP_OPTION_NUM_LAST NVM_GET_VARIABLE_RESP_OPTION_NUM_RSVD_FFFF 9729894aa69aSMichael Chan u8 unused_0[3]; 9730894aa69aSMichael Chan u8 valid; 9731894aa69aSMichael Chan }; 9732894aa69aSMichael Chan 9733894aa69aSMichael Chan /* hwrm_nvm_get_variable_cmd_err (size:64b/8B) */ 9734894aa69aSMichael Chan struct hwrm_nvm_get_variable_cmd_err { 9735894aa69aSMichael Chan u8 code; 9736894aa69aSMichael Chan #define NVM_GET_VARIABLE_CMD_ERR_CODE_UNKNOWN 0x0UL 9737894aa69aSMichael Chan #define NVM_GET_VARIABLE_CMD_ERR_CODE_VAR_NOT_EXIST 0x1UL 9738894aa69aSMichael Chan #define NVM_GET_VARIABLE_CMD_ERR_CODE_CORRUPT_VAR 0x2UL 9739894aa69aSMichael Chan #define NVM_GET_VARIABLE_CMD_ERR_CODE_LEN_TOO_SHORT 0x3UL 9740894aa69aSMichael Chan #define NVM_GET_VARIABLE_CMD_ERR_CODE_LAST NVM_GET_VARIABLE_CMD_ERR_CODE_LEN_TOO_SHORT 9741894aa69aSMichael Chan u8 unused_0[7]; 9742894aa69aSMichael Chan }; 9743894aa69aSMichael Chan 9744894aa69aSMichael Chan /* hwrm_nvm_set_variable_input (size:320b/40B) */ 9745894aa69aSMichael Chan struct hwrm_nvm_set_variable_input { 9746894aa69aSMichael Chan __le16 req_type; 9747894aa69aSMichael Chan __le16 cmpl_ring; 9748894aa69aSMichael Chan __le16 seq_id; 9749894aa69aSMichael Chan __le16 target_id; 9750894aa69aSMichael Chan __le64 resp_addr; 9751894aa69aSMichael Chan __le64 src_data_addr; 9752894aa69aSMichael Chan __le16 data_len; 9753894aa69aSMichael Chan __le16 option_num; 9754894aa69aSMichael Chan #define NVM_SET_VARIABLE_REQ_OPTION_NUM_RSVD_0 0x0UL 9755894aa69aSMichael Chan #define NVM_SET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF 0xffffUL 9756894aa69aSMichael Chan #define NVM_SET_VARIABLE_REQ_OPTION_NUM_LAST NVM_SET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF 9757894aa69aSMichael Chan __le16 dimensions; 9758894aa69aSMichael Chan __le16 index_0; 9759894aa69aSMichael Chan __le16 index_1; 9760894aa69aSMichael Chan __le16 index_2; 9761894aa69aSMichael Chan __le16 index_3; 9762894aa69aSMichael Chan u8 flags; 9763894aa69aSMichael Chan #define NVM_SET_VARIABLE_REQ_FLAGS_FORCE_FLUSH 0x1UL 9764894aa69aSMichael Chan #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_MASK 0xeUL 9765894aa69aSMichael Chan #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_SFT 1 9766894aa69aSMichael Chan #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_NONE (0x0UL << 1) 9767894aa69aSMichael Chan #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_HMAC_SHA1 (0x1UL << 1) 97686fc92c33SMichael Chan #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_AES256 (0x2UL << 1) 97696fc92c33SMichael Chan #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_HMAC_SHA1_AUTH (0x3UL << 1) 97706fc92c33SMichael Chan #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_LAST NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_HMAC_SHA1_AUTH 97712792b5b9SMichael Chan #define NVM_SET_VARIABLE_REQ_FLAGS_FLAGS_UNUSED_0_MASK 0x70UL 97722792b5b9SMichael Chan #define NVM_SET_VARIABLE_REQ_FLAGS_FLAGS_UNUSED_0_SFT 4 97732792b5b9SMichael Chan #define NVM_SET_VARIABLE_REQ_FLAGS_FACTORY_DEFAULT 0x80UL 9774894aa69aSMichael Chan u8 unused_0; 9775894aa69aSMichael Chan }; 9776894aa69aSMichael Chan 9777894aa69aSMichael Chan /* hwrm_nvm_set_variable_output (size:128b/16B) */ 9778894aa69aSMichael Chan struct hwrm_nvm_set_variable_output { 9779894aa69aSMichael Chan __le16 error_code; 9780894aa69aSMichael Chan __le16 req_type; 9781894aa69aSMichael Chan __le16 seq_id; 9782894aa69aSMichael Chan __le16 resp_len; 9783894aa69aSMichael Chan u8 unused_0[7]; 9784894aa69aSMichael Chan u8 valid; 9785894aa69aSMichael Chan }; 9786894aa69aSMichael Chan 9787894aa69aSMichael Chan /* hwrm_nvm_set_variable_cmd_err (size:64b/8B) */ 9788894aa69aSMichael Chan struct hwrm_nvm_set_variable_cmd_err { 9789894aa69aSMichael Chan u8 code; 9790894aa69aSMichael Chan #define NVM_SET_VARIABLE_CMD_ERR_CODE_UNKNOWN 0x0UL 9791894aa69aSMichael Chan #define NVM_SET_VARIABLE_CMD_ERR_CODE_VAR_NOT_EXIST 0x1UL 9792894aa69aSMichael Chan #define NVM_SET_VARIABLE_CMD_ERR_CODE_CORRUPT_VAR 0x2UL 9793894aa69aSMichael Chan #define NVM_SET_VARIABLE_CMD_ERR_CODE_LAST NVM_SET_VARIABLE_CMD_ERR_CODE_CORRUPT_VAR 9794894aa69aSMichael Chan u8 unused_0[7]; 9795894aa69aSMichael Chan }; 9796894aa69aSMichael Chan 9797894aa69aSMichael Chan /* hwrm_selftest_qlist_input (size:128b/16B) */ 9798894aa69aSMichael Chan struct hwrm_selftest_qlist_input { 9799894aa69aSMichael Chan __le16 req_type; 9800894aa69aSMichael Chan __le16 cmpl_ring; 9801894aa69aSMichael Chan __le16 seq_id; 9802894aa69aSMichael Chan __le16 target_id; 9803894aa69aSMichael Chan __le64 resp_addr; 9804894aa69aSMichael Chan }; 9805894aa69aSMichael Chan 9806894aa69aSMichael Chan /* hwrm_selftest_qlist_output (size:2240b/280B) */ 9807894aa69aSMichael Chan struct hwrm_selftest_qlist_output { 9808894aa69aSMichael Chan __le16 error_code; 9809894aa69aSMichael Chan __le16 req_type; 9810894aa69aSMichael Chan __le16 seq_id; 9811894aa69aSMichael Chan __le16 resp_len; 9812894aa69aSMichael Chan u8 num_tests; 9813894aa69aSMichael Chan u8 available_tests; 9814894aa69aSMichael Chan #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_NVM_TEST 0x1UL 9815894aa69aSMichael Chan #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_LINK_TEST 0x2UL 9816894aa69aSMichael Chan #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_REGISTER_TEST 0x4UL 9817894aa69aSMichael Chan #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_MEMORY_TEST 0x8UL 9818894aa69aSMichael Chan #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_PCIE_SERDES_TEST 0x10UL 9819894aa69aSMichael Chan #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_ETHERNET_SERDES_TEST 0x20UL 9820894aa69aSMichael Chan u8 offline_tests; 9821894aa69aSMichael Chan #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_NVM_TEST 0x1UL 9822894aa69aSMichael Chan #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_LINK_TEST 0x2UL 9823894aa69aSMichael Chan #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_REGISTER_TEST 0x4UL 9824894aa69aSMichael Chan #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_MEMORY_TEST 0x8UL 9825894aa69aSMichael Chan #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_PCIE_SERDES_TEST 0x10UL 9826894aa69aSMichael Chan #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_ETHERNET_SERDES_TEST 0x20UL 9827894aa69aSMichael Chan u8 unused_0; 9828894aa69aSMichael Chan __le16 test_timeout; 9829894aa69aSMichael Chan u8 unused_1[2]; 9830d3e599c0SKees Cook char test_name[8][32]; 9831bfc6e5fbSMichael Chan u8 eyescope_target_BER_support; 9832bfc6e5fbSMichael Chan #define SELFTEST_QLIST_RESP_EYESCOPE_TARGET_BER_SUPPORT_BER_1E8_SUPPORTED 0x0UL 9833bfc6e5fbSMichael Chan #define SELFTEST_QLIST_RESP_EYESCOPE_TARGET_BER_SUPPORT_BER_1E9_SUPPORTED 0x1UL 9834bfc6e5fbSMichael Chan #define SELFTEST_QLIST_RESP_EYESCOPE_TARGET_BER_SUPPORT_BER_1E10_SUPPORTED 0x2UL 9835bfc6e5fbSMichael Chan #define SELFTEST_QLIST_RESP_EYESCOPE_TARGET_BER_SUPPORT_BER_1E11_SUPPORTED 0x3UL 9836bfc6e5fbSMichael Chan #define SELFTEST_QLIST_RESP_EYESCOPE_TARGET_BER_SUPPORT_BER_1E12_SUPPORTED 0x4UL 9837bfc6e5fbSMichael Chan #define SELFTEST_QLIST_RESP_EYESCOPE_TARGET_BER_SUPPORT_LAST SELFTEST_QLIST_RESP_EYESCOPE_TARGET_BER_SUPPORT_BER_1E12_SUPPORTED 9838bfc6e5fbSMichael Chan u8 unused_2[6]; 9839894aa69aSMichael Chan u8 valid; 9840894aa69aSMichael Chan }; 9841894aa69aSMichael Chan 9842894aa69aSMichael Chan /* hwrm_selftest_exec_input (size:192b/24B) */ 9843894aa69aSMichael Chan struct hwrm_selftest_exec_input { 9844894aa69aSMichael Chan __le16 req_type; 9845894aa69aSMichael Chan __le16 cmpl_ring; 9846894aa69aSMichael Chan __le16 seq_id; 9847894aa69aSMichael Chan __le16 target_id; 9848894aa69aSMichael Chan __le64 resp_addr; 9849894aa69aSMichael Chan u8 flags; 9850894aa69aSMichael Chan #define SELFTEST_EXEC_REQ_FLAGS_NVM_TEST 0x1UL 9851894aa69aSMichael Chan #define SELFTEST_EXEC_REQ_FLAGS_LINK_TEST 0x2UL 9852894aa69aSMichael Chan #define SELFTEST_EXEC_REQ_FLAGS_REGISTER_TEST 0x4UL 9853894aa69aSMichael Chan #define SELFTEST_EXEC_REQ_FLAGS_MEMORY_TEST 0x8UL 9854894aa69aSMichael Chan #define SELFTEST_EXEC_REQ_FLAGS_PCIE_SERDES_TEST 0x10UL 9855894aa69aSMichael Chan #define SELFTEST_EXEC_REQ_FLAGS_ETHERNET_SERDES_TEST 0x20UL 9856d4f52de0SMichael Chan u8 unused_0[7]; 9857894aa69aSMichael Chan }; 9858894aa69aSMichael Chan 9859894aa69aSMichael Chan /* hwrm_selftest_exec_output (size:128b/16B) */ 9860894aa69aSMichael Chan struct hwrm_selftest_exec_output { 9861894aa69aSMichael Chan __le16 error_code; 9862894aa69aSMichael Chan __le16 req_type; 9863894aa69aSMichael Chan __le16 seq_id; 9864894aa69aSMichael Chan __le16 resp_len; 9865894aa69aSMichael Chan u8 requested_tests; 9866894aa69aSMichael Chan #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_NVM_TEST 0x1UL 9867894aa69aSMichael Chan #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_LINK_TEST 0x2UL 9868894aa69aSMichael Chan #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_REGISTER_TEST 0x4UL 9869894aa69aSMichael Chan #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_MEMORY_TEST 0x8UL 9870894aa69aSMichael Chan #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_PCIE_SERDES_TEST 0x10UL 9871894aa69aSMichael Chan #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_ETHERNET_SERDES_TEST 0x20UL 9872894aa69aSMichael Chan u8 test_success; 9873894aa69aSMichael Chan #define SELFTEST_EXEC_RESP_TEST_SUCCESS_NVM_TEST 0x1UL 9874894aa69aSMichael Chan #define SELFTEST_EXEC_RESP_TEST_SUCCESS_LINK_TEST 0x2UL 9875894aa69aSMichael Chan #define SELFTEST_EXEC_RESP_TEST_SUCCESS_REGISTER_TEST 0x4UL 9876894aa69aSMichael Chan #define SELFTEST_EXEC_RESP_TEST_SUCCESS_MEMORY_TEST 0x8UL 9877894aa69aSMichael Chan #define SELFTEST_EXEC_RESP_TEST_SUCCESS_PCIE_SERDES_TEST 0x10UL 9878894aa69aSMichael Chan #define SELFTEST_EXEC_RESP_TEST_SUCCESS_ETHERNET_SERDES_TEST 0x20UL 9879894aa69aSMichael Chan u8 unused_0[5]; 9880894aa69aSMichael Chan u8 valid; 9881894aa69aSMichael Chan }; 9882894aa69aSMichael Chan 9883894aa69aSMichael Chan /* hwrm_selftest_irq_input (size:128b/16B) */ 9884894aa69aSMichael Chan struct hwrm_selftest_irq_input { 9885894aa69aSMichael Chan __le16 req_type; 9886894aa69aSMichael Chan __le16 cmpl_ring; 9887894aa69aSMichael Chan __le16 seq_id; 9888894aa69aSMichael Chan __le16 target_id; 9889894aa69aSMichael Chan __le64 resp_addr; 9890894aa69aSMichael Chan }; 9891894aa69aSMichael Chan 9892894aa69aSMichael Chan /* hwrm_selftest_irq_output (size:128b/16B) */ 9893894aa69aSMichael Chan struct hwrm_selftest_irq_output { 9894894aa69aSMichael Chan __le16 error_code; 9895894aa69aSMichael Chan __le16 req_type; 9896894aa69aSMichael Chan __le16 seq_id; 9897894aa69aSMichael Chan __le16 resp_len; 9898894aa69aSMichael Chan u8 unused_0[7]; 9899894aa69aSMichael Chan u8 valid; 9900894aa69aSMichael Chan }; 9901894aa69aSMichael Chan 9902a9a457f3SSelvin Xavier /* dbc_dbc (size:64b/8B) */ 9903a9a457f3SSelvin Xavier struct dbc_dbc { 9904a9a457f3SSelvin Xavier u32 index; 9905a9a457f3SSelvin Xavier #define DBC_DBC_INDEX_MASK 0xffffffUL 9906a9a457f3SSelvin Xavier #define DBC_DBC_INDEX_SFT 0 9907a9a457f3SSelvin Xavier #define DBC_DBC_EPOCH 0x1000000UL 9908a9a457f3SSelvin Xavier #define DBC_DBC_TOGGLE_MASK 0x6000000UL 9909a9a457f3SSelvin Xavier #define DBC_DBC_TOGGLE_SFT 25 9910a9a457f3SSelvin Xavier u32 type_path_xid; 9911a9a457f3SSelvin Xavier #define DBC_DBC_XID_MASK 0xfffffUL 9912a9a457f3SSelvin Xavier #define DBC_DBC_XID_SFT 0 9913a9a457f3SSelvin Xavier #define DBC_DBC_PATH_MASK 0x3000000UL 9914a9a457f3SSelvin Xavier #define DBC_DBC_PATH_SFT 24 9915a9a457f3SSelvin Xavier #define DBC_DBC_PATH_ROCE (0x0UL << 24) 9916a9a457f3SSelvin Xavier #define DBC_DBC_PATH_L2 (0x1UL << 24) 9917a9a457f3SSelvin Xavier #define DBC_DBC_PATH_ENGINE (0x2UL << 24) 9918a9a457f3SSelvin Xavier #define DBC_DBC_PATH_LAST DBC_DBC_PATH_ENGINE 9919a9a457f3SSelvin Xavier #define DBC_DBC_VALID 0x4000000UL 9920a9a457f3SSelvin Xavier #define DBC_DBC_DEBUG_TRACE 0x8000000UL 9921a9a457f3SSelvin Xavier #define DBC_DBC_TYPE_MASK 0xf0000000UL 9922a9a457f3SSelvin Xavier #define DBC_DBC_TYPE_SFT 28 9923a9a457f3SSelvin Xavier #define DBC_DBC_TYPE_SQ (0x0UL << 28) 9924a9a457f3SSelvin Xavier #define DBC_DBC_TYPE_RQ (0x1UL << 28) 9925a9a457f3SSelvin Xavier #define DBC_DBC_TYPE_SRQ (0x2UL << 28) 9926a9a457f3SSelvin Xavier #define DBC_DBC_TYPE_SRQ_ARM (0x3UL << 28) 9927a9a457f3SSelvin Xavier #define DBC_DBC_TYPE_CQ (0x4UL << 28) 9928a9a457f3SSelvin Xavier #define DBC_DBC_TYPE_CQ_ARMSE (0x5UL << 28) 9929a9a457f3SSelvin Xavier #define DBC_DBC_TYPE_CQ_ARMALL (0x6UL << 28) 9930a9a457f3SSelvin Xavier #define DBC_DBC_TYPE_CQ_ARMENA (0x7UL << 28) 9931a9a457f3SSelvin Xavier #define DBC_DBC_TYPE_SRQ_ARMENA (0x8UL << 28) 9932a9a457f3SSelvin Xavier #define DBC_DBC_TYPE_CQ_CUTOFF_ACK (0x9UL << 28) 9933a9a457f3SSelvin Xavier #define DBC_DBC_TYPE_NQ (0xaUL << 28) 9934a9a457f3SSelvin Xavier #define DBC_DBC_TYPE_NQ_ARM (0xbUL << 28) 9935a9a457f3SSelvin Xavier #define DBC_DBC_TYPE_NQ_MASK (0xeUL << 28) 9936a9a457f3SSelvin Xavier #define DBC_DBC_TYPE_NULL (0xfUL << 28) 9937a9a457f3SSelvin Xavier #define DBC_DBC_TYPE_LAST DBC_DBC_TYPE_NULL 9938a9a457f3SSelvin Xavier }; 9939a9a457f3SSelvin Xavier 9940a9a457f3SSelvin Xavier /* db_push_start (size:64b/8B) */ 9941a9a457f3SSelvin Xavier struct db_push_start { 9942a9a457f3SSelvin Xavier u64 db; 9943a9a457f3SSelvin Xavier #define DB_PUSH_START_DB_INDEX_MASK 0xffffffUL 9944a9a457f3SSelvin Xavier #define DB_PUSH_START_DB_INDEX_SFT 0 9945a9a457f3SSelvin Xavier #define DB_PUSH_START_DB_PI_LO_MASK 0xff000000UL 9946a9a457f3SSelvin Xavier #define DB_PUSH_START_DB_PI_LO_SFT 24 9947a9a457f3SSelvin Xavier #define DB_PUSH_START_DB_XID_MASK 0xfffff00000000ULL 9948a9a457f3SSelvin Xavier #define DB_PUSH_START_DB_XID_SFT 32 9949a9a457f3SSelvin Xavier #define DB_PUSH_START_DB_PI_HI_MASK 0xf0000000000000ULL 9950a9a457f3SSelvin Xavier #define DB_PUSH_START_DB_PI_HI_SFT 52 9951a9a457f3SSelvin Xavier #define DB_PUSH_START_DB_TYPE_MASK 0xf000000000000000ULL 9952a9a457f3SSelvin Xavier #define DB_PUSH_START_DB_TYPE_SFT 60 9953a9a457f3SSelvin Xavier #define DB_PUSH_START_DB_TYPE_PUSH_START (0xcULL << 60) 9954a9a457f3SSelvin Xavier #define DB_PUSH_START_DB_TYPE_PUSH_END (0xdULL << 60) 9955a9a457f3SSelvin Xavier #define DB_PUSH_START_DB_TYPE_LAST DB_PUSH_START_DB_TYPE_PUSH_END 9956a9a457f3SSelvin Xavier }; 9957a9a457f3SSelvin Xavier 9958a9a457f3SSelvin Xavier /* db_push_end (size:64b/8B) */ 9959a9a457f3SSelvin Xavier struct db_push_end { 9960a9a457f3SSelvin Xavier u64 db; 9961a9a457f3SSelvin Xavier #define DB_PUSH_END_DB_INDEX_MASK 0xffffffUL 9962a9a457f3SSelvin Xavier #define DB_PUSH_END_DB_INDEX_SFT 0 9963a9a457f3SSelvin Xavier #define DB_PUSH_END_DB_PI_LO_MASK 0xff000000UL 9964a9a457f3SSelvin Xavier #define DB_PUSH_END_DB_PI_LO_SFT 24 9965a9a457f3SSelvin Xavier #define DB_PUSH_END_DB_XID_MASK 0xfffff00000000ULL 9966a9a457f3SSelvin Xavier #define DB_PUSH_END_DB_XID_SFT 32 9967a9a457f3SSelvin Xavier #define DB_PUSH_END_DB_PI_HI_MASK 0xf0000000000000ULL 9968a9a457f3SSelvin Xavier #define DB_PUSH_END_DB_PI_HI_SFT 52 9969a9a457f3SSelvin Xavier #define DB_PUSH_END_DB_PATH_MASK 0x300000000000000ULL 9970a9a457f3SSelvin Xavier #define DB_PUSH_END_DB_PATH_SFT 56 9971a9a457f3SSelvin Xavier #define DB_PUSH_END_DB_PATH_ROCE (0x0ULL << 56) 9972a9a457f3SSelvin Xavier #define DB_PUSH_END_DB_PATH_L2 (0x1ULL << 56) 9973a9a457f3SSelvin Xavier #define DB_PUSH_END_DB_PATH_ENGINE (0x2ULL << 56) 9974a9a457f3SSelvin Xavier #define DB_PUSH_END_DB_PATH_LAST DB_PUSH_END_DB_PATH_ENGINE 9975a9a457f3SSelvin Xavier #define DB_PUSH_END_DB_DEBUG_TRACE 0x800000000000000ULL 9976a9a457f3SSelvin Xavier #define DB_PUSH_END_DB_TYPE_MASK 0xf000000000000000ULL 9977a9a457f3SSelvin Xavier #define DB_PUSH_END_DB_TYPE_SFT 60 9978a9a457f3SSelvin Xavier #define DB_PUSH_END_DB_TYPE_PUSH_START (0xcULL << 60) 9979a9a457f3SSelvin Xavier #define DB_PUSH_END_DB_TYPE_PUSH_END (0xdULL << 60) 9980a9a457f3SSelvin Xavier #define DB_PUSH_END_DB_TYPE_LAST DB_PUSH_END_DB_TYPE_PUSH_END 9981a9a457f3SSelvin Xavier }; 9982a9a457f3SSelvin Xavier 99839d6b648cSMichael Chan /* db_push_info (size:64b/8B) */ 99849d6b648cSMichael Chan struct db_push_info { 99859d6b648cSMichael Chan u32 push_size_push_index; 99869d6b648cSMichael Chan #define DB_PUSH_INFO_PUSH_INDEX_MASK 0xffffffUL 99879d6b648cSMichael Chan #define DB_PUSH_INFO_PUSH_INDEX_SFT 0 99889d6b648cSMichael Chan #define DB_PUSH_INFO_PUSH_SIZE_MASK 0x1f000000UL 99899d6b648cSMichael Chan #define DB_PUSH_INFO_PUSH_SIZE_SFT 24 99909d6b648cSMichael Chan u32 reserved32; 99919d6b648cSMichael Chan }; 99929d6b648cSMichael Chan 9993460c2577SMichael Chan /* fw_status_reg (size:32b/4B) */ 9994460c2577SMichael Chan struct fw_status_reg { 9995460c2577SMichael Chan u32 fw_status; 9996460c2577SMichael Chan #define FW_STATUS_REG_CODE_MASK 0xffffUL 9997460c2577SMichael Chan #define FW_STATUS_REG_CODE_SFT 0 9998460c2577SMichael Chan #define FW_STATUS_REG_CODE_READY 0x8000UL 9999460c2577SMichael Chan #define FW_STATUS_REG_CODE_LAST FW_STATUS_REG_CODE_READY 10000460c2577SMichael Chan #define FW_STATUS_REG_IMAGE_DEGRADED 0x10000UL 10001460c2577SMichael Chan #define FW_STATUS_REG_RECOVERABLE 0x20000UL 10002460c2577SMichael Chan #define FW_STATUS_REG_CRASHDUMP_ONGOING 0x40000UL 10003460c2577SMichael Chan #define FW_STATUS_REG_CRASHDUMP_COMPLETE 0x80000UL 10004460c2577SMichael Chan #define FW_STATUS_REG_SHUTDOWN 0x100000UL 10005424174f1SVasundhara Volam #define FW_STATUS_REG_CRASHED_NO_MASTER 0x200000UL 1000678eeadb8SMichael Chan #define FW_STATUS_REG_RECOVERING 0x400000UL 1000784a911dbSMichael Chan #define FW_STATUS_REG_MANU_DEBUG_STATUS 0x800000UL 10008460c2577SMichael Chan }; 10009460c2577SMichael Chan 100109d6b648cSMichael Chan /* hcomm_status (size:64b/8B) */ 100119d6b648cSMichael Chan struct hcomm_status { 100129d6b648cSMichael Chan u32 sig_ver; 100139d6b648cSMichael Chan #define HCOMM_STATUS_VER_MASK 0xffUL 100149d6b648cSMichael Chan #define HCOMM_STATUS_VER_SFT 0 100159d6b648cSMichael Chan #define HCOMM_STATUS_VER_LATEST 0x1UL 100169d6b648cSMichael Chan #define HCOMM_STATUS_VER_LAST HCOMM_STATUS_VER_LATEST 100179d6b648cSMichael Chan #define HCOMM_STATUS_SIGNATURE_MASK 0xffffff00UL 100189d6b648cSMichael Chan #define HCOMM_STATUS_SIGNATURE_SFT 8 100199d6b648cSMichael Chan #define HCOMM_STATUS_SIGNATURE_VAL (0x484353UL << 8) 100209d6b648cSMichael Chan #define HCOMM_STATUS_SIGNATURE_LAST HCOMM_STATUS_SIGNATURE_VAL 100219d6b648cSMichael Chan u32 fw_status_loc; 100229d6b648cSMichael Chan #define HCOMM_STATUS_TRUE_ADDR_SPACE_MASK 0x3UL 100239d6b648cSMichael Chan #define HCOMM_STATUS_TRUE_ADDR_SPACE_SFT 0 100249d6b648cSMichael Chan #define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_PCIE_CFG 0x0UL 100259d6b648cSMichael Chan #define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_GRC 0x1UL 100269d6b648cSMichael Chan #define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_BAR0 0x2UL 100279d6b648cSMichael Chan #define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_BAR1 0x3UL 100289d6b648cSMichael Chan #define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_LAST HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_BAR1 100299d6b648cSMichael Chan #define HCOMM_STATUS_TRUE_OFFSET_MASK 0xfffffffcUL 100309d6b648cSMichael Chan #define HCOMM_STATUS_TRUE_OFFSET_SFT 2 100319d6b648cSMichael Chan }; 100329d6b648cSMichael Chan #define HCOMM_STATUS_STRUCT_LOC 0x31001F0UL 100339d6b648cSMichael Chan 10034894aa69aSMichael Chan #endif /* _BNXT_HSI_H_ */ 10035