mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	bnxt_en: Update firmware interface spec to 1.10.1.65.
The main changes include FEC, ECN statistics, HWRM_PORT_PHY_QCFG response size reduction, and a new counter added to ctx_hw_stats_ext struct to support the new 58818 chip. The ctx_hw_stats_ext structure is now the superset supporting the new 58818 chips and the prior P5 chips. Add a new flag to identify the new chip and use constants for the chip specific ring statistics sizes instead of the size of the structure. Because the HWRM_PORT_PHY_QCFG response structure size has shrunk back to 96 bytes, the workaround added earlier to limit the size of this message for forwarding to the VF can be removed. Signed-off-by: Michael Chan <michael.chan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									e622129569
								
							
						
					
					
						commit
						9d6b648c31
					
				
					 5 changed files with 361 additions and 113 deletions
				
			
		| 
						 | 
				
			
			@ -5343,13 +5343,16 @@ static int bnxt_hwrm_vnic_qcaps(struct bnxt *bp)
 | 
			
		|||
		 * VLAN_STRIP_CAP properly.
 | 
			
		||||
		 */
 | 
			
		||||
		if ((flags & VNIC_QCAPS_RESP_FLAGS_VLAN_STRIP_CAP) ||
 | 
			
		||||
		    ((bp->flags & BNXT_FLAG_CHIP_P5) &&
 | 
			
		||||
		    (BNXT_CHIP_P5_THOR(bp) &&
 | 
			
		||||
		     !(bp->fw_cap & BNXT_FW_CAP_EXT_HW_STATS_SUPPORTED)))
 | 
			
		||||
			bp->fw_cap |= BNXT_FW_CAP_VLAN_RX_STRIP;
 | 
			
		||||
		bp->max_tpa_v2 = le16_to_cpu(resp->max_aggs_supported);
 | 
			
		||||
		if (bp->max_tpa_v2)
 | 
			
		||||
			bp->hw_ring_stats_size =
 | 
			
		||||
				sizeof(struct ctx_hw_stats_ext);
 | 
			
		||||
		if (bp->max_tpa_v2) {
 | 
			
		||||
			if (BNXT_CHIP_P5_THOR(bp))
 | 
			
		||||
				bp->hw_ring_stats_size = BNXT_RING_STATS_SIZE_P5;
 | 
			
		||||
			else
 | 
			
		||||
				bp->hw_ring_stats_size = BNXT_RING_STATS_SIZE_P5_SR2;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	mutex_unlock(&bp->hwrm_cmd_lock);
 | 
			
		||||
	return rc;
 | 
			
		||||
| 
						 | 
				
			
			@ -12233,8 +12236,11 @@ static int bnxt_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 | 
			
		|||
	if (rc)
 | 
			
		||||
		goto init_err_pci_clean;
 | 
			
		||||
 | 
			
		||||
	if (BNXT_CHIP_P5(bp))
 | 
			
		||||
	if (BNXT_CHIP_P5(bp)) {
 | 
			
		||||
		bp->flags |= BNXT_FLAG_CHIP_P5;
 | 
			
		||||
		if (BNXT_CHIP_SR2(bp))
 | 
			
		||||
			bp->flags |= BNXT_FLAG_CHIP_SR2;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	rc = bnxt_alloc_rss_indir_tbl(bp);
 | 
			
		||||
	if (rc)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1142,50 +1142,6 @@ struct bnxt_ntuple_filter {
 | 
			
		|||
#define BNXT_FLTR_UPDATE	1
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct hwrm_port_phy_qcfg_output_compat {
 | 
			
		||||
	__le16	error_code;
 | 
			
		||||
	__le16	req_type;
 | 
			
		||||
	__le16	seq_id;
 | 
			
		||||
	__le16	resp_len;
 | 
			
		||||
	u8	link;
 | 
			
		||||
	u8	link_signal_mode;
 | 
			
		||||
	__le16	link_speed;
 | 
			
		||||
	u8	duplex_cfg;
 | 
			
		||||
	u8	pause;
 | 
			
		||||
	__le16	support_speeds;
 | 
			
		||||
	__le16	force_link_speed;
 | 
			
		||||
	u8	auto_mode;
 | 
			
		||||
	u8	auto_pause;
 | 
			
		||||
	__le16	auto_link_speed;
 | 
			
		||||
	__le16	auto_link_speed_mask;
 | 
			
		||||
	u8	wirespeed;
 | 
			
		||||
	u8	lpbk;
 | 
			
		||||
	u8	force_pause;
 | 
			
		||||
	u8	module_status;
 | 
			
		||||
	__le32	preemphasis;
 | 
			
		||||
	u8	phy_maj;
 | 
			
		||||
	u8	phy_min;
 | 
			
		||||
	u8	phy_bld;
 | 
			
		||||
	u8	phy_type;
 | 
			
		||||
	u8	media_type;
 | 
			
		||||
	u8	xcvr_pkg_type;
 | 
			
		||||
	u8	eee_config_phy_addr;
 | 
			
		||||
	u8	parallel_detect;
 | 
			
		||||
	__le16	link_partner_adv_speeds;
 | 
			
		||||
	u8	link_partner_adv_auto_mode;
 | 
			
		||||
	u8	link_partner_adv_pause;
 | 
			
		||||
	__le16	adv_eee_link_speed_mask;
 | 
			
		||||
	__le16	link_partner_adv_eee_link_speed_mask;
 | 
			
		||||
	__le32	xcvr_identifier_type_tx_lpi_timer;
 | 
			
		||||
	__le16	fec_cfg;
 | 
			
		||||
	u8	duplex_state;
 | 
			
		||||
	u8	option_flags;
 | 
			
		||||
	char	phy_vendor_name[16];
 | 
			
		||||
	char	phy_vendor_partnumber[16];
 | 
			
		||||
	u8	unused_0[7];
 | 
			
		||||
	u8	valid;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct bnxt_link_info {
 | 
			
		||||
	u8			phy_type;
 | 
			
		||||
	u8			media_type;
 | 
			
		||||
| 
						 | 
				
			
			@ -1535,6 +1491,8 @@ struct bnxt {
 | 
			
		|||
 | 
			
		||||
	u8			chip_rev;
 | 
			
		||||
 | 
			
		||||
#define CHIP_NUM_58818		0xd818
 | 
			
		||||
 | 
			
		||||
#define BNXT_CHIP_NUM_5730X(chip_num)		\
 | 
			
		||||
	((chip_num) >= CHIP_NUM_57301 &&	\
 | 
			
		||||
	 (chip_num) <= CHIP_NUM_57304)
 | 
			
		||||
| 
						 | 
				
			
			@ -1613,6 +1571,7 @@ struct bnxt {
 | 
			
		|||
					 BNXT_FLAG_ROCEV2_CAP)
 | 
			
		||||
	#define BNXT_FLAG_NO_AGG_RINGS	0x20000
 | 
			
		||||
	#define BNXT_FLAG_RX_PAGE_MODE	0x40000
 | 
			
		||||
	#define BNXT_FLAG_CHIP_SR2	0x80000
 | 
			
		||||
	#define BNXT_FLAG_MULTI_HOST	0x100000
 | 
			
		||||
	#define BNXT_FLAG_DSN_VALID	0x200000
 | 
			
		||||
	#define BNXT_FLAG_DOUBLE_DB	0x400000
 | 
			
		||||
| 
						 | 
				
			
			@ -1638,12 +1597,18 @@ struct bnxt {
 | 
			
		|||
				 (!((bp)->flags & BNXT_FLAG_CHIP_P5) ||	\
 | 
			
		||||
				  (bp)->max_tpa_v2) && !is_kdump_kernel())
 | 
			
		||||
 | 
			
		||||
/* Chip class phase 5 */
 | 
			
		||||
#define BNXT_CHIP_P5(bp)			\
 | 
			
		||||
#define BNXT_CHIP_SR2(bp)			\
 | 
			
		||||
	((bp)->chip_num == CHIP_NUM_58818)
 | 
			
		||||
 | 
			
		||||
#define BNXT_CHIP_P5_THOR(bp)			\
 | 
			
		||||
	((bp)->chip_num == CHIP_NUM_57508 ||	\
 | 
			
		||||
	 (bp)->chip_num == CHIP_NUM_57504 ||	\
 | 
			
		||||
	 (bp)->chip_num == CHIP_NUM_57502)
 | 
			
		||||
 | 
			
		||||
/* Chip class phase 5 */
 | 
			
		||||
#define BNXT_CHIP_P5(bp)			\
 | 
			
		||||
	(BNXT_CHIP_P5_THOR(bp) || BNXT_CHIP_SR2(bp))
 | 
			
		||||
 | 
			
		||||
/* Chip class phase 4.x */
 | 
			
		||||
#define BNXT_CHIP_P4(bp)			\
 | 
			
		||||
	(BNXT_CHIP_NUM_57X1X((bp)->chip_num) ||	\
 | 
			
		||||
| 
						 | 
				
			
			@ -1935,6 +1900,20 @@ struct bnxt {
 | 
			
		|||
	struct device		*hwmon_dev;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define BNXT_NUM_RX_RING_STATS			8
 | 
			
		||||
#define BNXT_NUM_TX_RING_STATS			8
 | 
			
		||||
#define BNXT_NUM_TPA_RING_STATS			4
 | 
			
		||||
#define BNXT_NUM_TPA_RING_STATS_P5		5
 | 
			
		||||
#define BNXT_NUM_TPA_RING_STATS_P5_SR2		6
 | 
			
		||||
 | 
			
		||||
#define BNXT_RING_STATS_SIZE_P5					\
 | 
			
		||||
	((BNXT_NUM_RX_RING_STATS + BNXT_NUM_TX_RING_STATS +	\
 | 
			
		||||
	  BNXT_NUM_TPA_RING_STATS_P5) * 8)
 | 
			
		||||
 | 
			
		||||
#define BNXT_RING_STATS_SIZE_P5_SR2				\
 | 
			
		||||
	((BNXT_NUM_RX_RING_STATS + BNXT_NUM_TX_RING_STATS +	\
 | 
			
		||||
	  BNXT_NUM_TPA_RING_STATS_P5_SR2) * 8)
 | 
			
		||||
 | 
			
		||||
#define BNXT_GET_RING_STATS64(sw, counter)		\
 | 
			
		||||
	(*((sw) + offsetof(struct ctx_hw_stats, counter) / 8))
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -172,6 +172,7 @@ static const char * const bnxt_ring_tpa2_stats_str[] = {
 | 
			
		|||
	"rx_tpa_pkt",
 | 
			
		||||
	"rx_tpa_bytes",
 | 
			
		||||
	"rx_tpa_errors",
 | 
			
		||||
	"rx_tpa_events",
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const char * const bnxt_rx_sw_stats_str[] = {
 | 
			
		||||
| 
						 | 
				
			
			@ -462,9 +463,12 @@ static const struct {
 | 
			
		|||
static int bnxt_get_num_tpa_ring_stats(struct bnxt *bp)
 | 
			
		||||
{
 | 
			
		||||
	if (BNXT_SUPPORTS_TPA(bp)) {
 | 
			
		||||
		if (bp->max_tpa_v2)
 | 
			
		||||
			return ARRAY_SIZE(bnxt_ring_tpa2_stats_str);
 | 
			
		||||
		return ARRAY_SIZE(bnxt_ring_tpa_stats_str);
 | 
			
		||||
		if (bp->max_tpa_v2) {
 | 
			
		||||
			if (BNXT_CHIP_P5_THOR(bp))
 | 
			
		||||
				return BNXT_NUM_TPA_RING_STATS_P5;
 | 
			
		||||
			return BNXT_NUM_TPA_RING_STATS_P5_SR2;
 | 
			
		||||
		}
 | 
			
		||||
		return BNXT_NUM_TPA_RING_STATS;
 | 
			
		||||
	}
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -213,7 +213,10 @@ struct cmd_nums {
 | 
			
		|||
	#define HWRM_PORT_PHY_MDIO_BUS_ACQUIRE            0xb7UL
 | 
			
		||||
	#define HWRM_PORT_PHY_MDIO_BUS_RELEASE            0xb8UL
 | 
			
		||||
	#define HWRM_PORT_QSTATS_EXT_PFC_WD               0xb9UL
 | 
			
		||||
	#define HWRM_PORT_ECN_QSTATS                      0xbaUL
 | 
			
		||||
	#define HWRM_RESERVED7                            0xbaUL
 | 
			
		||||
	#define HWRM_PORT_TX_FIR_CFG                      0xbbUL
 | 
			
		||||
	#define HWRM_PORT_TX_FIR_QCFG                     0xbcUL
 | 
			
		||||
	#define HWRM_PORT_ECN_QSTATS                      0xbdUL
 | 
			
		||||
	#define HWRM_FW_RESET                             0xc0UL
 | 
			
		||||
	#define HWRM_FW_QSTATUS                           0xc1UL
 | 
			
		||||
	#define HWRM_FW_HEALTH_CHECK                      0xc2UL
 | 
			
		||||
| 
						 | 
				
			
			@ -370,6 +373,8 @@ struct cmd_nums {
 | 
			
		|||
	#define HWRM_TF_SESSION_RESC_FLUSH                0x2cfUL
 | 
			
		||||
	#define HWRM_TF_TBL_TYPE_GET                      0x2daUL
 | 
			
		||||
	#define HWRM_TF_TBL_TYPE_SET                      0x2dbUL
 | 
			
		||||
	#define HWRM_TF_CTXT_MEM_ALLOC                    0x2e2UL
 | 
			
		||||
	#define HWRM_TF_CTXT_MEM_FREE                     0x2e3UL
 | 
			
		||||
	#define HWRM_TF_CTXT_MEM_RGTR                     0x2e4UL
 | 
			
		||||
	#define HWRM_TF_CTXT_MEM_UNRGTR                   0x2e5UL
 | 
			
		||||
	#define HWRM_TF_EXT_EM_QCAPS                      0x2e6UL
 | 
			
		||||
| 
						 | 
				
			
			@ -384,6 +389,8 @@ struct cmd_nums {
 | 
			
		|||
	#define HWRM_TF_TCAM_FREE                         0x2fbUL
 | 
			
		||||
	#define HWRM_TF_GLOBAL_CFG_SET                    0x2fcUL
 | 
			
		||||
	#define HWRM_TF_GLOBAL_CFG_GET                    0x2fdUL
 | 
			
		||||
	#define HWRM_TF_IF_TBL_SET                        0x2feUL
 | 
			
		||||
	#define HWRM_TF_IF_TBL_GET                        0x2ffUL
 | 
			
		||||
	#define HWRM_SV                                   0x400UL
 | 
			
		||||
	#define HWRM_DBG_READ_DIRECT                      0xff10UL
 | 
			
		||||
	#define HWRM_DBG_READ_INDIRECT                    0xff11UL
 | 
			
		||||
| 
						 | 
				
			
			@ -447,6 +454,7 @@ struct ret_codes {
 | 
			
		|||
	#define HWRM_ERR_CODE_KEY_ALREADY_EXISTS           0xeUL
 | 
			
		||||
	#define HWRM_ERR_CODE_HWRM_ERROR                   0xfUL
 | 
			
		||||
	#define HWRM_ERR_CODE_BUSY                         0x10UL
 | 
			
		||||
	#define HWRM_ERR_CODE_RESOURCE_LOCKED              0x11UL
 | 
			
		||||
	#define HWRM_ERR_CODE_TLV_ENCAPSULATED_RESPONSE    0x8000UL
 | 
			
		||||
	#define HWRM_ERR_CODE_UNKNOWN_ERR                  0xfffeUL
 | 
			
		||||
	#define HWRM_ERR_CODE_CMD_NOT_SUPPORTED            0xffffUL
 | 
			
		||||
| 
						 | 
				
			
			@ -478,8 +486,8 @@ struct hwrm_err_output {
 | 
			
		|||
#define HWRM_VERSION_MAJOR 1
 | 
			
		||||
#define HWRM_VERSION_MINOR 10
 | 
			
		||||
#define HWRM_VERSION_UPDATE 1
 | 
			
		||||
#define HWRM_VERSION_RSVD 54
 | 
			
		||||
#define HWRM_VERSION_STR "1.10.1.54"
 | 
			
		||||
#define HWRM_VERSION_RSVD 65
 | 
			
		||||
#define HWRM_VERSION_STR "1.10.1.65"
 | 
			
		||||
 | 
			
		||||
/* hwrm_ver_get_input (size:192b/24B) */
 | 
			
		||||
struct hwrm_ver_get_input {
 | 
			
		||||
| 
						 | 
				
			
			@ -675,6 +683,7 @@ struct hwrm_async_event_cmpl {
 | 
			
		|||
	#define ASYNC_EVENT_CMPL_EVENT_ID_PORT_PHY_CFG_CHANGE        0x7UL
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_EVENT_ID_RESET_NOTIFY               0x8UL
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_EVENT_ID_ERROR_RECOVERY             0x9UL
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_EVENT_ID_RING_MONITOR_MSG           0xaUL
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_DRVR_UNLOAD           0x10UL
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_DRVR_LOAD             0x11UL
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_FLR_PROC_CMPLT        0x12UL
 | 
			
		||||
| 
						 | 
				
			
			@ -851,6 +860,32 @@ struct hwrm_async_event_cmpl_error_recovery {
 | 
			
		|||
	#define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_RECOVERY_ENABLED      0x2UL
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* hwrm_async_event_cmpl_ring_monitor_msg (size:128b/16B) */
 | 
			
		||||
struct hwrm_async_event_cmpl_ring_monitor_msg {
 | 
			
		||||
	__le16	type;
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_TYPE_MASK            0x3fUL
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_TYPE_SFT             0
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_TYPE_HWRM_ASYNC_EVENT  0x2eUL
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_TYPE_LAST             ASYNC_EVENT_CMPL_RING_MONITOR_MSG_TYPE_HWRM_ASYNC_EVENT
 | 
			
		||||
	__le16	event_id;
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_ID_RING_MONITOR_MSG 0xaUL
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_ID_LAST            ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_ID_RING_MONITOR_MSG
 | 
			
		||||
	__le32	event_data2;
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_MASK 0xffUL
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_SFT 0
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_TX    0x0UL
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_RX    0x1UL
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_CMPL  0x2UL
 | 
			
		||||
	#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
 | 
			
		||||
	u8	opaque_v;
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_V          0x1UL
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_OPAQUE_MASK 0xfeUL
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_OPAQUE_SFT 1
 | 
			
		||||
	u8	timestamp_lo;
 | 
			
		||||
	__le16	timestamp_hi;
 | 
			
		||||
	__le32	event_data1;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* hwrm_async_event_cmpl_vf_cfg_change (size:128b/16B) */
 | 
			
		||||
struct hwrm_async_event_cmpl_vf_cfg_change {
 | 
			
		||||
	__le16	type;
 | 
			
		||||
| 
						 | 
				
			
			@ -975,6 +1010,28 @@ struct hwrm_async_event_cmpl_eem_cache_flush_done {
 | 
			
		|||
	#define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_DATA1_FID_SFT 0
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* hwrm_async_event_cmpl_deferred_response (size:128b/16B) */
 | 
			
		||||
struct hwrm_async_event_cmpl_deferred_response {
 | 
			
		||||
	__le16	type;
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_TYPE_MASK            0x3fUL
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_TYPE_SFT             0
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_TYPE_HWRM_ASYNC_EVENT  0x2eUL
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_TYPE_LAST             ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_TYPE_HWRM_ASYNC_EVENT
 | 
			
		||||
	__le16	event_id;
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_EVENT_ID_DEFERRED_RESPONSE 0x40UL
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_EVENT_ID_LAST             ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_EVENT_ID_DEFERRED_RESPONSE
 | 
			
		||||
	__le32	event_data2;
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_EVENT_DATA2_SEQ_ID_MASK 0xffffUL
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_EVENT_DATA2_SEQ_ID_SFT 0
 | 
			
		||||
	u8	opaque_v;
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_V          0x1UL
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_OPAQUE_MASK 0xfeUL
 | 
			
		||||
	#define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_OPAQUE_SFT 1
 | 
			
		||||
	u8	timestamp_lo;
 | 
			
		||||
	__le16	timestamp_hi;
 | 
			
		||||
	__le32	event_data1;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* hwrm_func_reset_input (size:192b/24B) */
 | 
			
		||||
struct hwrm_func_reset_input {
 | 
			
		||||
	__le16	req_type;
 | 
			
		||||
| 
						 | 
				
			
			@ -1214,7 +1271,13 @@ struct hwrm_func_qcaps_output {
 | 
			
		|||
	#define FUNC_QCAPS_RESP_FLAGS_EXT_SCHQ_SUPPORTED                         0x40UL
 | 
			
		||||
	#define FUNC_QCAPS_RESP_FLAGS_EXT_PPP_PUSH_MODE_SUPPORTED                0x80UL
 | 
			
		||||
	u8	max_schqs;
 | 
			
		||||
	u8	unused_1[2];
 | 
			
		||||
	u8	mpc_chnls_cap;
 | 
			
		||||
	#define FUNC_QCAPS_RESP_MPC_CHNLS_CAP_TCE         0x1UL
 | 
			
		||||
	#define FUNC_QCAPS_RESP_MPC_CHNLS_CAP_RCE         0x2UL
 | 
			
		||||
	#define FUNC_QCAPS_RESP_MPC_CHNLS_CAP_TE_CFA      0x4UL
 | 
			
		||||
	#define FUNC_QCAPS_RESP_MPC_CHNLS_CAP_RE_CFA      0x8UL
 | 
			
		||||
	#define FUNC_QCAPS_RESP_MPC_CHNLS_CAP_PRIMATE     0x10UL
 | 
			
		||||
	u8	unused_1;
 | 
			
		||||
	u8	valid;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1250,6 +1313,7 @@ struct hwrm_func_qcfg_output {
 | 
			
		|||
	#define FUNC_QCFG_RESP_FLAGS_PREBOOT_LEGACY_L2_RINGS      0x100UL
 | 
			
		||||
	#define FUNC_QCFG_RESP_FLAGS_HOT_RESET_ALLOWED            0x200UL
 | 
			
		||||
	#define FUNC_QCFG_RESP_FLAGS_PPP_PUSH_MODE_ENABLED        0x400UL
 | 
			
		||||
	#define FUNC_QCFG_RESP_FLAGS_RING_MONITOR_ENABLED         0x800UL
 | 
			
		||||
	u8	mac_address[6];
 | 
			
		||||
	__le16	pci_id;
 | 
			
		||||
	__le16	alloc_rsscos_ctx;
 | 
			
		||||
| 
						 | 
				
			
			@ -1341,7 +1405,13 @@ struct hwrm_func_qcfg_output {
 | 
			
		|||
	#define FUNC_QCFG_RESP_SVIF_INFO_SVIF_MASK      0x7fffUL
 | 
			
		||||
	#define FUNC_QCFG_RESP_SVIF_INFO_SVIF_SFT       0
 | 
			
		||||
	#define FUNC_QCFG_RESP_SVIF_INFO_SVIF_VALID     0x8000UL
 | 
			
		||||
	u8	unused_2[7];
 | 
			
		||||
	u8	mpc_chnls;
 | 
			
		||||
	#define FUNC_QCFG_RESP_MPC_CHNLS_TCE_ENABLED         0x1UL
 | 
			
		||||
	#define FUNC_QCFG_RESP_MPC_CHNLS_RCE_ENABLED         0x2UL
 | 
			
		||||
	#define FUNC_QCFG_RESP_MPC_CHNLS_TE_CFA_ENABLED      0x4UL
 | 
			
		||||
	#define FUNC_QCFG_RESP_MPC_CHNLS_RE_CFA_ENABLED      0x8UL
 | 
			
		||||
	#define FUNC_QCFG_RESP_MPC_CHNLS_PRIMATE_ENABLED     0x10UL
 | 
			
		||||
	u8	unused_2[6];
 | 
			
		||||
	u8	valid;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1405,6 +1475,7 @@ struct hwrm_func_cfg_input {
 | 
			
		|||
	#define FUNC_CFG_REQ_ENABLES_ADMIN_LINK_STATE         0x400000UL
 | 
			
		||||
	#define FUNC_CFG_REQ_ENABLES_HOT_RESET_IF_SUPPORT     0x800000UL
 | 
			
		||||
	#define FUNC_CFG_REQ_ENABLES_SCHQ_ID                  0x1000000UL
 | 
			
		||||
	#define FUNC_CFG_REQ_ENABLES_MPC_CHNLS                0x2000000UL
 | 
			
		||||
	__le16	mtu;
 | 
			
		||||
	__le16	mru;
 | 
			
		||||
	__le16	num_rsscos_ctxs;
 | 
			
		||||
| 
						 | 
				
			
			@ -1479,7 +1550,18 @@ struct hwrm_func_cfg_input {
 | 
			
		|||
	#define FUNC_CFG_REQ_OPTIONS_RSVD_SFT                    4
 | 
			
		||||
	__le16	num_mcast_filters;
 | 
			
		||||
	__le16	schq_id;
 | 
			
		||||
	u8	unused_0[6];
 | 
			
		||||
	__le16	mpc_chnls;
 | 
			
		||||
	#define FUNC_CFG_REQ_MPC_CHNLS_TCE_ENABLE          0x1UL
 | 
			
		||||
	#define FUNC_CFG_REQ_MPC_CHNLS_TCE_DISABLE         0x2UL
 | 
			
		||||
	#define FUNC_CFG_REQ_MPC_CHNLS_RCE_ENABLE          0x4UL
 | 
			
		||||
	#define FUNC_CFG_REQ_MPC_CHNLS_RCE_DISABLE         0x8UL
 | 
			
		||||
	#define FUNC_CFG_REQ_MPC_CHNLS_TE_CFA_ENABLE       0x10UL
 | 
			
		||||
	#define FUNC_CFG_REQ_MPC_CHNLS_TE_CFA_DISABLE      0x20UL
 | 
			
		||||
	#define FUNC_CFG_REQ_MPC_CHNLS_RE_CFA_ENABLE       0x40UL
 | 
			
		||||
	#define FUNC_CFG_REQ_MPC_CHNLS_RE_CFA_DISABLE      0x80UL
 | 
			
		||||
	#define FUNC_CFG_REQ_MPC_CHNLS_PRIMATE_ENABLE      0x100UL
 | 
			
		||||
	#define FUNC_CFG_REQ_MPC_CHNLS_PRIMATE_DISABLE     0x200UL
 | 
			
		||||
	u8	unused_0[4];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* hwrm_func_cfg_output (size:128b/16B) */
 | 
			
		||||
| 
						 | 
				
			
			@ -1559,7 +1641,7 @@ struct hwrm_func_qstats_ext_input {
 | 
			
		|||
	u8	unused_1[4];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* hwrm_func_qstats_ext_output (size:1472b/184B) */
 | 
			
		||||
/* hwrm_func_qstats_ext_output (size:1536b/192B) */
 | 
			
		||||
struct hwrm_func_qstats_ext_output {
 | 
			
		||||
	__le16	error_code;
 | 
			
		||||
	__le16	req_type;
 | 
			
		||||
| 
						 | 
				
			
			@ -1586,6 +1668,7 @@ struct hwrm_func_qstats_ext_output {
 | 
			
		|||
	__le64	rx_tpa_pkt;
 | 
			
		||||
	__le64	rx_tpa_bytes;
 | 
			
		||||
	__le64	rx_tpa_errors;
 | 
			
		||||
	__le64	rx_tpa_events;
 | 
			
		||||
	u8	unused_0[7];
 | 
			
		||||
	u8	valid;
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -2412,25 +2495,29 @@ struct hwrm_port_phy_cfg_input {
 | 
			
		|||
	__le16	target_id;
 | 
			
		||||
	__le64	resp_addr;
 | 
			
		||||
	__le32	flags;
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_RESET_PHY                 0x1UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_DEPRECATED                0x2UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FORCE                     0x4UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_RESTART_AUTONEG           0x8UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_EEE_ENABLE                0x10UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_EEE_DISABLE               0x20UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_EEE_TX_LPI_ENABLE         0x40UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_EEE_TX_LPI_DISABLE        0x80UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_AUTONEG_ENABLE        0x100UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_AUTONEG_DISABLE       0x200UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE74_ENABLE       0x400UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE74_DISABLE      0x800UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE91_ENABLE       0x1000UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE91_DISABLE      0x2000UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FORCE_LINK_DWN            0x4000UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_RS544_1XN_ENABLE      0x8000UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_RS544_1XN_DISABLE     0x10000UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_RS544_2XN_ENABLE      0x20000UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_RS544_2XN_DISABLE     0x40000UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_RESET_PHY                  0x1UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_DEPRECATED                 0x2UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FORCE                      0x4UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_RESTART_AUTONEG            0x8UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_EEE_ENABLE                 0x10UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_EEE_DISABLE                0x20UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_EEE_TX_LPI_ENABLE          0x40UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_EEE_TX_LPI_DISABLE         0x80UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_AUTONEG_ENABLE         0x100UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_AUTONEG_DISABLE        0x200UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE74_ENABLE        0x400UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE74_DISABLE       0x800UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE91_ENABLE        0x1000UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE91_DISABLE       0x2000UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FORCE_LINK_DWN             0x4000UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_RS544_1XN_ENABLE       0x8000UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_RS544_1XN_DISABLE      0x10000UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_RS544_IEEE_ENABLE      0x20000UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_RS544_IEEE_DISABLE     0x40000UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_RS272_1XN_ENABLE       0x80000UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_RS272_1XN_DISABLE      0x100000UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_RS272_IEEE_ENABLE      0x200000UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_FLAGS_FEC_RS272_IEEE_DISABLE     0x400000UL
 | 
			
		||||
	__le32	enables;
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_ENABLES_AUTO_MODE                     0x1UL
 | 
			
		||||
	#define PORT_PHY_CFG_REQ_ENABLES_AUTO_DUPLEX                   0x2UL
 | 
			
		||||
| 
						 | 
				
			
			@ -2573,7 +2660,7 @@ struct hwrm_port_phy_qcfg_input {
 | 
			
		|||
	u8	unused_0[6];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* hwrm_port_phy_qcfg_output (size:832b/104B) */
 | 
			
		||||
/* hwrm_port_phy_qcfg_output (size:768b/96B) */
 | 
			
		||||
struct hwrm_port_phy_qcfg_output {
 | 
			
		||||
	__le16	error_code;
 | 
			
		||||
	__le16	req_type;
 | 
			
		||||
| 
						 | 
				
			
			@ -2584,10 +2671,22 @@ struct hwrm_port_phy_qcfg_output {
 | 
			
		|||
	#define PORT_PHY_QCFG_RESP_LINK_SIGNAL  0x1UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_LINK_LINK    0x2UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_LINK_LAST   PORT_PHY_QCFG_RESP_LINK_LINK
 | 
			
		||||
	u8	link_signal_mode;
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_LINK_SIGNAL_MODE_NRZ  0x0UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_LINK_SIGNAL_MODE_PAM4 0x1UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_LINK_SIGNAL_MODE_LAST PORT_PHY_QCFG_RESP_LINK_SIGNAL_MODE_PAM4
 | 
			
		||||
	u8	active_fec_signal_mode;
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_SIGNAL_MODE_MASK                0xfUL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_SIGNAL_MODE_SFT                 0
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_SIGNAL_MODE_NRZ                   0x0UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_SIGNAL_MODE_PAM4                  0x1UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_SIGNAL_MODE_LAST                 PORT_PHY_QCFG_RESP_SIGNAL_MODE_PAM4
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_ACTIVE_FEC_MASK                 0xf0UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_ACTIVE_FEC_SFT                  4
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_NONE_ACTIVE        (0x0UL << 4)
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_CLAUSE74_ACTIVE    (0x1UL << 4)
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_CLAUSE91_ACTIVE    (0x2UL << 4)
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS544_1XN_ACTIVE   (0x3UL << 4)
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS544_IEEE_ACTIVE  (0x4UL << 4)
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS272_1XN_ACTIVE   (0x5UL << 4)
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS272_IEEE_ACTIVE  (0x6UL << 4)
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_ACTIVE_FEC_LAST                  PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS272_IEEE_ACTIVE
 | 
			
		||||
	__le16	link_speed;
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_LINK_SPEED_100MB 0x1UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_LINK_SPEED_1GB   0xaUL
 | 
			
		||||
| 
						 | 
				
			
			@ -2809,21 +2908,21 @@ struct hwrm_port_phy_qcfg_output {
 | 
			
		|||
	#define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP28    (0x11UL << 24)
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_LAST     PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP28
 | 
			
		||||
	__le16	fec_cfg;
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_NONE_SUPPORTED          0x1UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_AUTONEG_SUPPORTED       0x2UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_AUTONEG_ENABLED         0x4UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE74_SUPPORTED      0x8UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE74_ENABLED        0x10UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE91_SUPPORTED      0x20UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE91_ENABLED        0x40UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS544_1XN_SUPPORTED     0x80UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS544_1XN_ENABLED       0x100UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS544_2XN_SUPPORTED     0x200UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS544_2XN_ENABLED       0x400UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE74_ACTIVE         0x800UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE91_ACTIVE         0x1000UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS544_1XN_ACTIVE        0x2000UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS544_2XN_ACTIVE        0x4000UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_NONE_SUPPORTED           0x1UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_AUTONEG_SUPPORTED        0x2UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_AUTONEG_ENABLED          0x4UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE74_SUPPORTED       0x8UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE74_ENABLED         0x10UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE91_SUPPORTED       0x20UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE91_ENABLED         0x40UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS544_1XN_SUPPORTED      0x80UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS544_1XN_ENABLED        0x100UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS544_IEEE_SUPPORTED     0x200UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS544_IEEE_ENABLED       0x400UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS272_1XN_SUPPORTED      0x800UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS272_1XN_ENABLED        0x1000UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS272_IEEE_SUPPORTED     0x2000UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS272_IEEE_ENABLED       0x4000UL
 | 
			
		||||
	u8	duplex_state;
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_DUPLEX_STATE_HALF 0x0UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_DUPLEX_STATE_FULL 0x1UL
 | 
			
		||||
| 
						 | 
				
			
			@ -2845,11 +2944,10 @@ struct hwrm_port_phy_qcfg_output {
 | 
			
		|||
	#define PORT_PHY_QCFG_RESP_AUTO_PAM4_LINK_SPEED_MASK_50G      0x1UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_AUTO_PAM4_LINK_SPEED_MASK_100G     0x2UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_AUTO_PAM4_LINK_SPEED_MASK_200G     0x4UL
 | 
			
		||||
	__le16	link_partner_pam4_adv_speeds;
 | 
			
		||||
	u8	link_partner_pam4_adv_speeds;
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_PAM4_ADV_SPEEDS_50GB      0x1UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_PAM4_ADV_SPEEDS_100GB     0x2UL
 | 
			
		||||
	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_PAM4_ADV_SPEEDS_200GB     0x4UL
 | 
			
		||||
	u8	unused_0[7];
 | 
			
		||||
	u8	valid;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -3293,6 +3391,47 @@ struct hwrm_port_lpbk_qstats_output {
 | 
			
		|||
	u8	valid;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* hwrm_port_ecn_qstats_input (size:256b/32B) */
 | 
			
		||||
struct hwrm_port_ecn_qstats_input {
 | 
			
		||||
	__le16	req_type;
 | 
			
		||||
	__le16	cmpl_ring;
 | 
			
		||||
	__le16	seq_id;
 | 
			
		||||
	__le16	target_id;
 | 
			
		||||
	__le64	resp_addr;
 | 
			
		||||
	__le16	port_id;
 | 
			
		||||
	__le16	ecn_stat_buf_size;
 | 
			
		||||
	u8	flags;
 | 
			
		||||
	#define PORT_ECN_QSTATS_REQ_FLAGS_UNUSED       0x0UL
 | 
			
		||||
	#define PORT_ECN_QSTATS_REQ_FLAGS_COUNTER_MASK 0x1UL
 | 
			
		||||
	#define PORT_ECN_QSTATS_REQ_FLAGS_LAST        PORT_ECN_QSTATS_REQ_FLAGS_COUNTER_MASK
 | 
			
		||||
	u8	unused_0[3];
 | 
			
		||||
	__le64	ecn_stat_host_addr;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* hwrm_port_ecn_qstats_output (size:128b/16B) */
 | 
			
		||||
struct hwrm_port_ecn_qstats_output {
 | 
			
		||||
	__le16	error_code;
 | 
			
		||||
	__le16	req_type;
 | 
			
		||||
	__le16	seq_id;
 | 
			
		||||
	__le16	resp_len;
 | 
			
		||||
	__le16	ecn_stat_buf_size;
 | 
			
		||||
	u8	mark_en;
 | 
			
		||||
	u8	unused_0[4];
 | 
			
		||||
	u8	valid;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* port_stats_ecn (size:512b/64B) */
 | 
			
		||||
struct port_stats_ecn {
 | 
			
		||||
	__le64	mark_cnt_cos0;
 | 
			
		||||
	__le64	mark_cnt_cos1;
 | 
			
		||||
	__le64	mark_cnt_cos2;
 | 
			
		||||
	__le64	mark_cnt_cos3;
 | 
			
		||||
	__le64	mark_cnt_cos4;
 | 
			
		||||
	__le64	mark_cnt_cos5;
 | 
			
		||||
	__le64	mark_cnt_cos6;
 | 
			
		||||
	__le64	mark_cnt_cos7;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* hwrm_port_clr_stats_input (size:192b/24B) */
 | 
			
		||||
struct hwrm_port_clr_stats_input {
 | 
			
		||||
	__le16	req_type;
 | 
			
		||||
| 
						 | 
				
			
			@ -3387,8 +3526,9 @@ struct hwrm_port_phy_qcaps_output {
 | 
			
		|||
	#define PORT_PHY_QCAPS_RESP_FLAGS_AUTONEG_LPBK_SUPPORTED           0x4UL
 | 
			
		||||
	#define PORT_PHY_QCAPS_RESP_FLAGS_SHARED_PHY_CFG_SUPPORTED         0x8UL
 | 
			
		||||
	#define PORT_PHY_QCAPS_RESP_FLAGS_CUMULATIVE_COUNTERS_ON_RESET     0x10UL
 | 
			
		||||
	#define PORT_PHY_QCAPS_RESP_FLAGS_RSVD1_MASK                       0xe0UL
 | 
			
		||||
	#define PORT_PHY_QCAPS_RESP_FLAGS_RSVD1_SFT                        5
 | 
			
		||||
	#define PORT_PHY_QCAPS_RESP_FLAGS_LOCAL_LPBK_NOT_SUPPORTED         0x20UL
 | 
			
		||||
	#define PORT_PHY_QCAPS_RESP_FLAGS_RSVD1_MASK                       0xc0UL
 | 
			
		||||
	#define PORT_PHY_QCAPS_RESP_FLAGS_RSVD1_SFT                        6
 | 
			
		||||
	u8	port_cnt;
 | 
			
		||||
	#define PORT_PHY_QCAPS_RESP_PORT_CNT_UNKNOWN 0x0UL
 | 
			
		||||
	#define PORT_PHY_QCAPS_RESP_PORT_CNT_1       0x1UL
 | 
			
		||||
| 
						 | 
				
			
			@ -5365,6 +5505,7 @@ struct hwrm_ring_alloc_input {
 | 
			
		|||
	#define RING_ALLOC_REQ_ENABLES_NQ_RING_ID_VALID      0x80UL
 | 
			
		||||
	#define RING_ALLOC_REQ_ENABLES_RX_BUF_SIZE_VALID     0x100UL
 | 
			
		||||
	#define RING_ALLOC_REQ_ENABLES_SCHQ_ID               0x200UL
 | 
			
		||||
	#define RING_ALLOC_REQ_ENABLES_MPC_CHNLS_TYPE        0x400UL
 | 
			
		||||
	u8	ring_type;
 | 
			
		||||
	#define RING_ALLOC_REQ_RING_TYPE_L2_CMPL   0x0UL
 | 
			
		||||
	#define RING_ALLOC_REQ_RING_TYPE_TX        0x1UL
 | 
			
		||||
| 
						 | 
				
			
			@ -5424,7 +5565,14 @@ struct hwrm_ring_alloc_input {
 | 
			
		|||
	#define RING_ALLOC_REQ_INT_MODE_MSIX   0x2UL
 | 
			
		||||
	#define RING_ALLOC_REQ_INT_MODE_POLL   0x3UL
 | 
			
		||||
	#define RING_ALLOC_REQ_INT_MODE_LAST  RING_ALLOC_REQ_INT_MODE_POLL
 | 
			
		||||
	u8	unused_4[3];
 | 
			
		||||
	u8	mpc_chnls_type;
 | 
			
		||||
	#define RING_ALLOC_REQ_MPC_CHNLS_TYPE_TCE     0x0UL
 | 
			
		||||
	#define RING_ALLOC_REQ_MPC_CHNLS_TYPE_RCE     0x1UL
 | 
			
		||||
	#define RING_ALLOC_REQ_MPC_CHNLS_TYPE_TE_CFA  0x2UL
 | 
			
		||||
	#define RING_ALLOC_REQ_MPC_CHNLS_TYPE_RE_CFA  0x3UL
 | 
			
		||||
	#define RING_ALLOC_REQ_MPC_CHNLS_TYPE_PRIMATE 0x4UL
 | 
			
		||||
	#define RING_ALLOC_REQ_MPC_CHNLS_TYPE_LAST   RING_ALLOC_REQ_MPC_CHNLS_TYPE_PRIMATE
 | 
			
		||||
	u8	unused_4[2];
 | 
			
		||||
	__le64	cq_handle;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -6661,7 +6809,7 @@ struct hwrm_cfa_vfr_alloc_output {
 | 
			
		|||
	u8	valid;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* hwrm_cfa_vfr_free_input (size:384b/48B) */
 | 
			
		||||
/* hwrm_cfa_vfr_free_input (size:448b/56B) */
 | 
			
		||||
struct hwrm_cfa_vfr_free_input {
 | 
			
		||||
	__le16	req_type;
 | 
			
		||||
	__le16	cmpl_ring;
 | 
			
		||||
| 
						 | 
				
			
			@ -6669,6 +6817,9 @@ struct hwrm_cfa_vfr_free_input {
 | 
			
		|||
	__le16	target_id;
 | 
			
		||||
	__le64	resp_addr;
 | 
			
		||||
	char	vfr_name[32];
 | 
			
		||||
	__le16	vf_id;
 | 
			
		||||
	__le16	reserved;
 | 
			
		||||
	u8	unused_0[4];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* hwrm_cfa_vfr_free_output (size:128b/16B) */
 | 
			
		||||
| 
						 | 
				
			
			@ -6970,7 +7121,7 @@ struct ctx_hw_stats {
 | 
			
		|||
	__le64	tpa_aborts;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* ctx_hw_stats_ext (size:1344b/168B) */
 | 
			
		||||
/* ctx_hw_stats_ext (size:1408b/176B) */
 | 
			
		||||
struct ctx_hw_stats_ext {
 | 
			
		||||
	__le64	rx_ucast_pkts;
 | 
			
		||||
	__le64	rx_mcast_pkts;
 | 
			
		||||
| 
						 | 
				
			
			@ -6993,6 +7144,7 @@ struct ctx_hw_stats_ext {
 | 
			
		|||
	__le64	rx_tpa_pkt;
 | 
			
		||||
	__le64	rx_tpa_bytes;
 | 
			
		||||
	__le64	rx_tpa_errors;
 | 
			
		||||
	__le64	rx_tpa_events;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* hwrm_stat_ctx_alloc_input (size:256b/32B) */
 | 
			
		||||
| 
						 | 
				
			
			@ -7065,16 +7217,16 @@ struct hwrm_stat_ctx_query_output {
 | 
			
		|||
	__le64	tx_ucast_pkts;
 | 
			
		||||
	__le64	tx_mcast_pkts;
 | 
			
		||||
	__le64	tx_bcast_pkts;
 | 
			
		||||
	__le64	tx_err_pkts;
 | 
			
		||||
	__le64	tx_drop_pkts;
 | 
			
		||||
	__le64	tx_discard_pkts;
 | 
			
		||||
	__le64	tx_error_pkts;
 | 
			
		||||
	__le64	tx_ucast_bytes;
 | 
			
		||||
	__le64	tx_mcast_bytes;
 | 
			
		||||
	__le64	tx_bcast_bytes;
 | 
			
		||||
	__le64	rx_ucast_pkts;
 | 
			
		||||
	__le64	rx_mcast_pkts;
 | 
			
		||||
	__le64	rx_bcast_pkts;
 | 
			
		||||
	__le64	rx_err_pkts;
 | 
			
		||||
	__le64	rx_drop_pkts;
 | 
			
		||||
	__le64	rx_discard_pkts;
 | 
			
		||||
	__le64	rx_error_pkts;
 | 
			
		||||
	__le64	rx_ucast_bytes;
 | 
			
		||||
	__le64	rx_mcast_bytes;
 | 
			
		||||
	__le64	rx_bcast_bytes;
 | 
			
		||||
| 
						 | 
				
			
			@ -7099,7 +7251,7 @@ struct hwrm_stat_ext_ctx_query_input {
 | 
			
		|||
	u8	unused_0[3];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* hwrm_stat_ext_ctx_query_output (size:1472b/184B) */
 | 
			
		||||
/* hwrm_stat_ext_ctx_query_output (size:1536b/192B) */
 | 
			
		||||
struct hwrm_stat_ext_ctx_query_output {
 | 
			
		||||
	__le16	error_code;
 | 
			
		||||
	__le16	req_type;
 | 
			
		||||
| 
						 | 
				
			
			@ -7126,6 +7278,7 @@ struct hwrm_stat_ext_ctx_query_output {
 | 
			
		|||
	__le64	rx_tpa_pkt;
 | 
			
		||||
	__le64	rx_tpa_bytes;
 | 
			
		||||
	__le64	rx_tpa_errors;
 | 
			
		||||
	__le64	rx_tpa_events;
 | 
			
		||||
	u8	unused_0[7];
 | 
			
		||||
	u8	valid;
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -7702,6 +7855,77 @@ struct hwrm_dbg_read_direct_output {
 | 
			
		|||
	u8	valid;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* hwrm_dbg_qcaps_input (size:192b/24B) */
 | 
			
		||||
struct hwrm_dbg_qcaps_input {
 | 
			
		||||
	__le16	req_type;
 | 
			
		||||
	__le16	cmpl_ring;
 | 
			
		||||
	__le16	seq_id;
 | 
			
		||||
	__le16	target_id;
 | 
			
		||||
	__le64	resp_addr;
 | 
			
		||||
	__le16	fid;
 | 
			
		||||
	u8	unused_0[6];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* hwrm_dbg_qcaps_output (size:192b/24B) */
 | 
			
		||||
struct hwrm_dbg_qcaps_output {
 | 
			
		||||
	__le16	error_code;
 | 
			
		||||
	__le16	req_type;
 | 
			
		||||
	__le16	seq_id;
 | 
			
		||||
	__le16	resp_len;
 | 
			
		||||
	__le16	fid;
 | 
			
		||||
	u8	unused_0[2];
 | 
			
		||||
	__le32	coredump_component_disable_caps;
 | 
			
		||||
	#define DBG_QCAPS_RESP_COREDUMP_COMPONENT_DISABLE_CAPS_NVRAM     0x1UL
 | 
			
		||||
	__le32	flags;
 | 
			
		||||
	#define DBG_QCAPS_RESP_FLAGS_CRASHDUMP_NVM          0x1UL
 | 
			
		||||
	#define DBG_QCAPS_RESP_FLAGS_CRASHDUMP_HOST_DDR     0x2UL
 | 
			
		||||
	#define DBG_QCAPS_RESP_FLAGS_CRASHDUMP_SOC_DDR      0x4UL
 | 
			
		||||
	u8	unused_1[3];
 | 
			
		||||
	u8	valid;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* hwrm_dbg_qcfg_input (size:192b/24B) */
 | 
			
		||||
struct hwrm_dbg_qcfg_input {
 | 
			
		||||
	__le16	req_type;
 | 
			
		||||
	__le16	cmpl_ring;
 | 
			
		||||
	__le16	seq_id;
 | 
			
		||||
	__le16	target_id;
 | 
			
		||||
	__le64	resp_addr;
 | 
			
		||||
	__le16	fid;
 | 
			
		||||
	__le16	flags;
 | 
			
		||||
	#define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_MASK         0x3UL
 | 
			
		||||
	#define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_SFT          0
 | 
			
		||||
	#define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_DEST_NVM       0x0UL
 | 
			
		||||
	#define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_DEST_HOST_DDR  0x1UL
 | 
			
		||||
	#define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_DEST_SOC_DDR   0x2UL
 | 
			
		||||
	#define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_LAST          DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_DEST_SOC_DDR
 | 
			
		||||
	__le32	coredump_component_disable_flags;
 | 
			
		||||
	#define DBG_QCFG_REQ_COREDUMP_COMPONENT_DISABLE_FLAGS_NVRAM     0x1UL
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* hwrm_dbg_qcfg_output (size:256b/32B) */
 | 
			
		||||
struct hwrm_dbg_qcfg_output {
 | 
			
		||||
	__le16	error_code;
 | 
			
		||||
	__le16	req_type;
 | 
			
		||||
	__le16	seq_id;
 | 
			
		||||
	__le16	resp_len;
 | 
			
		||||
	__le16	fid;
 | 
			
		||||
	u8	unused_0[2];
 | 
			
		||||
	__le32	coredump_size;
 | 
			
		||||
	__le32	flags;
 | 
			
		||||
	#define DBG_QCFG_RESP_FLAGS_UART_LOG               0x1UL
 | 
			
		||||
	#define DBG_QCFG_RESP_FLAGS_UART_LOG_SECONDARY     0x2UL
 | 
			
		||||
	#define DBG_QCFG_RESP_FLAGS_FW_TRACE               0x4UL
 | 
			
		||||
	#define DBG_QCFG_RESP_FLAGS_FW_TRACE_SECONDARY     0x8UL
 | 
			
		||||
	#define DBG_QCFG_RESP_FLAGS_DEBUG_NOTIFY           0x10UL
 | 
			
		||||
	#define DBG_QCFG_RESP_FLAGS_JTAG_DEBUG             0x20UL
 | 
			
		||||
	__le16	async_cmpl_ring;
 | 
			
		||||
	u8	unused_2[2];
 | 
			
		||||
	__le32	crashdump_size;
 | 
			
		||||
	u8	unused_3[3];
 | 
			
		||||
	u8	valid;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* coredump_segment_record (size:128b/16B) */
 | 
			
		||||
struct coredump_segment_record {
 | 
			
		||||
	__le16	component_id;
 | 
			
		||||
| 
						 | 
				
			
			@ -8381,6 +8605,16 @@ struct hwrm_selftest_irq_output {
 | 
			
		|||
	u8	valid;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* db_push_info (size:64b/8B) */
 | 
			
		||||
struct db_push_info {
 | 
			
		||||
	u32	push_size_push_index;
 | 
			
		||||
	#define DB_PUSH_INFO_PUSH_INDEX_MASK 0xffffffUL
 | 
			
		||||
	#define DB_PUSH_INFO_PUSH_INDEX_SFT 0
 | 
			
		||||
	#define DB_PUSH_INFO_PUSH_SIZE_MASK 0x1f000000UL
 | 
			
		||||
	#define DB_PUSH_INFO_PUSH_SIZE_SFT  24
 | 
			
		||||
	u32	reserved32;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* fw_status_reg (size:32b/4B) */
 | 
			
		||||
struct fw_status_reg {
 | 
			
		||||
	u32	fw_status;
 | 
			
		||||
| 
						 | 
				
			
			@ -8395,4 +8629,29 @@ struct fw_status_reg {
 | 
			
		|||
	#define FW_STATUS_REG_SHUTDOWN               0x100000UL
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* hcomm_status (size:64b/8B) */
 | 
			
		||||
struct hcomm_status {
 | 
			
		||||
	u32	sig_ver;
 | 
			
		||||
	#define HCOMM_STATUS_VER_MASK      0xffUL
 | 
			
		||||
	#define HCOMM_STATUS_VER_SFT       0
 | 
			
		||||
	#define HCOMM_STATUS_VER_LATEST      0x1UL
 | 
			
		||||
	#define HCOMM_STATUS_VER_LAST       HCOMM_STATUS_VER_LATEST
 | 
			
		||||
	#define HCOMM_STATUS_SIGNATURE_MASK 0xffffff00UL
 | 
			
		||||
	#define HCOMM_STATUS_SIGNATURE_SFT 8
 | 
			
		||||
	#define HCOMM_STATUS_SIGNATURE_VAL   (0x484353UL << 8)
 | 
			
		||||
	#define HCOMM_STATUS_SIGNATURE_LAST HCOMM_STATUS_SIGNATURE_VAL
 | 
			
		||||
	u32	fw_status_loc;
 | 
			
		||||
	#define HCOMM_STATUS_TRUE_ADDR_SPACE_MASK    0x3UL
 | 
			
		||||
	#define HCOMM_STATUS_TRUE_ADDR_SPACE_SFT     0
 | 
			
		||||
	#define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_PCIE_CFG  0x0UL
 | 
			
		||||
	#define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_GRC       0x1UL
 | 
			
		||||
	#define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_BAR0      0x2UL
 | 
			
		||||
	#define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_BAR1      0x3UL
 | 
			
		||||
	#define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_LAST     HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_BAR1
 | 
			
		||||
	#define HCOMM_STATUS_TRUE_OFFSET_MASK        0xfffffffcUL
 | 
			
		||||
	#define HCOMM_STATUS_TRUE_OFFSET_SFT         2
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define HCOMM_STATUS_STRUCT_LOC 0x31001F0UL
 | 
			
		||||
 | 
			
		||||
#endif /* _BNXT_HSI_H_ */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1029,7 +1029,7 @@ static int bnxt_vf_set_link(struct bnxt *bp, struct bnxt_vf_info *vf)
 | 
			
		|||
		rc = bnxt_hwrm_exec_fwd_resp(
 | 
			
		||||
			bp, vf, sizeof(struct hwrm_port_phy_qcfg_input));
 | 
			
		||||
	} else {
 | 
			
		||||
		struct hwrm_port_phy_qcfg_output_compat phy_qcfg_resp = {0};
 | 
			
		||||
		struct hwrm_port_phy_qcfg_output phy_qcfg_resp = {0};
 | 
			
		||||
		struct hwrm_port_phy_qcfg_input *phy_qcfg_req;
 | 
			
		||||
 | 
			
		||||
		phy_qcfg_req =
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue