[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Z4THNzvTUecR8QUp@mev-dev.igk.intel.com>
Date: Mon, 13 Jan 2025 08:56:39 +0100
From: Michal Swiatkowski <michal.swiatkowski@...ux.intel.com>
To: Michael Chan <michael.chan@...adcom.com>
Cc: davem@...emloft.net, netdev@...r.kernel.org, edumazet@...gle.com,
kuba@...nel.org, pabeni@...hat.com, andrew+netdev@...n.ch,
pavan.chebbi@...adcom.com, andrew.gospodarek@...adcom.com,
somnath.kotur@...adcom.com
Subject: Re: [PATCH net-next 01/10] bnxt_en: Set NAPR 1.2 support when
registering with firmware
On Sun, Jan 12, 2025 at 10:39:18PM -0800, Michael Chan wrote:
> NPAR 1.2 adds a transparent VLAN tag for all packets between the NIC
> and the switch. Because of that, RX VLAN acceleration cannot be
> supported for any additional host configured VLANs. The driver has
> to acknowledge that it can support no RX VLAN acceleration and
> set the NPAR 1.2 supported flag when registering with the FW.
> Otherwise, the FW call will fail and the driver will abort on these
> NPAR 1.2 NICs with this error:
>
> bnxt_en 0000:26:00.0 (unnamed net_device) (uninitialized): hwrm req_type 0x1d seq id 0xb error 0x2
>
> Reviewed-by: Somnath Kotur <somnath.kotur@...adcom.com>
> Signed-off-by: Michael Chan <michael.chan@...adcom.com>
> ---
> drivers/net/ethernet/broadcom/bnxt/bnxt.c | 5 +++++
> drivers/net/ethernet/broadcom/bnxt/bnxt.h | 1 +
> 2 files changed, 6 insertions(+)
>
> diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
> index 884d42db5554..8527788bed91 100644
> --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
> +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
> @@ -5537,6 +5537,8 @@ int bnxt_hwrm_func_drv_rgtr(struct bnxt *bp, unsigned long *bmap, int bmap_size,
> if (bp->fw_cap & BNXT_FW_CAP_ERROR_RECOVERY)
> flags |= FUNC_DRV_RGTR_REQ_FLAGS_ERROR_RECOVERY_SUPPORT |
> FUNC_DRV_RGTR_REQ_FLAGS_MASTER_SUPPORT;
> + if (bp->fw_cap & BNXT_FW_CAP_NPAR_1_2)
> + flags |= FUNC_DRV_RGTR_REQ_FLAGS_NPAR_1_2_SUPPORT;
> req->flags = cpu_to_le32(flags);
> req->ver_maj_8b = DRV_VER_MAJ;
> req->ver_min_8b = DRV_VER_MIN;
> @@ -8338,6 +8340,7 @@ static int bnxt_hwrm_func_qcfg(struct bnxt *bp)
>
> switch (resp->port_partition_type) {
> case FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_0:
> + case FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_2:
> case FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_5:
> case FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR2_0:
> bp->port_partition_type = resp->port_partition_type;
> @@ -9502,6 +9505,8 @@ static int __bnxt_hwrm_func_qcaps(struct bnxt *bp)
> bp->fw_cap |= BNXT_FW_CAP_HOT_RESET_IF;
> if (BNXT_PF(bp) && (flags_ext & FUNC_QCAPS_RESP_FLAGS_EXT_FW_LIVEPATCH_SUPPORTED))
> bp->fw_cap |= BNXT_FW_CAP_LIVEPATCH;
> + if (flags_ext & FUNC_QCAPS_RESP_FLAGS_EXT_NPAR_1_2_SUPPORTED)
> + bp->fw_cap |= BNXT_FW_CAP_NPAR_1_2;
> if (BNXT_PF(bp) && (flags_ext & FUNC_QCAPS_RESP_FLAGS_EXT_DFLT_VLAN_TPID_PCP_SUPPORTED))
> bp->fw_cap |= BNXT_FW_CAP_DFLT_VLAN_TPID_PCP;
> if (flags_ext & FUNC_QCAPS_RESP_FLAGS_EXT_BS_V2_SUPPORTED)
> diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.h b/drivers/net/ethernet/broadcom/bnxt/bnxt.h
> index 094c9e95b463..a634ad76177d 100644
> --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.h
> +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.h
> @@ -2488,6 +2488,7 @@ struct bnxt {
> #define BNXT_FW_CAP_CFA_RFS_RING_TBL_IDX_V3 BIT_ULL(39)
> #define BNXT_FW_CAP_VNIC_RE_FLUSH BIT_ULL(40)
> #define BNXT_FW_CAP_SW_MAX_RESOURCE_LIMITS BIT_ULL(41)
> + #define BNXT_FW_CAP_NPAR_1_2 BIT_ULL(42)
>
> u32 fw_dbg_cap;
>
> --
> 2.30.1
Reviewed-by: Michal Swiatkowski <michal.swiatkowski@...ux.intel.com>
Powered by blists - more mailing lists