From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0AA7CA04E7; Tue, 3 Nov 2020 01:25:09 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E5C604CA6; Tue, 3 Nov 2020 01:25:07 +0100 (CET) Received: from mail-ot1-f66.google.com (mail-ot1-f66.google.com [209.85.210.66]) by dpdk.org (Postfix) with ESMTP id 75BE94C8B for ; Tue, 3 Nov 2020 01:25:05 +0100 (CET) Received: by mail-ot1-f66.google.com with SMTP id y22so3921417oti.10 for ; Mon, 02 Nov 2020 16:25:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=nRRddcH0EmYpBxYh0Cx1oicti6tsB5A6uccyx1M3fmM=; b=BjfScUt6279cLXrNRiHTC30Mp9ROsZiA1BCjy2j4wSrbc5P0XyEkOiqy70yqN2xzk0 RlYWhZUDI8adhw3qE4YJGzVTPNtRi+Em2wWKUxlOs4U0P4WOK8yPZrUjVMN1EcV/rDJY qD+UHMm4Kzd7eh0xm/chwITNLqHUIDJksJ8iE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=nRRddcH0EmYpBxYh0Cx1oicti6tsB5A6uccyx1M3fmM=; b=JgOrM/9/QajWWzdZRxg8DV0hm6iEwCTfwIWbugu+eHol7CVzL+hlkjBZuPjttj69f/ NVsXF3BFd0jAfKEk5LduR4vQ2ca8Dp7GGJggcDuAFAXbu+Nj1tQhK7rqZlzYd0EcqVQB Do0rlCAngKbGlFYCnFZmrpjBQkA79CHsvFEp9Po01NXddnVMQp3/Kidjv6OT25HJnTvZ tqIqC5PXXa+OztyuAcFR70/85+iCcfzt85PfO1tl74wKTE8kGB6Uhy3fkbnky5LJ8jpa MuCAvVZzashGkiVQ6fu8CXQMzSg7ZzvJG9vgmVPVwRi70kzeJ9M3cHQDJRj2zszwnlA0 zFdA== X-Gm-Message-State: AOAM530e9QCEnbh7wHr8XBlC7XtZ/TX8jRA5NrN9bkZKoHMIrOrGjBhr sUvsQNAAYxY8BbKi4wz+C8zUB6X6XNGOpKXOzk+IMblw2+hSx6KQ X-Google-Smtp-Source: ABdhPJwYZdn+QAyB8TBdpqQ6G/mVrst7mXG2plvg1klhy46GRfrRtKDncpiIL8t3kPGG6Y4dI93d7pxN1B9bNW6/nXw= X-Received: by 2002:a9d:6317:: with SMTP id q23mr12886658otk.95.1604363103519; Mon, 02 Nov 2020 16:25:03 -0800 (PST) MIME-Version: 1.0 References: <20201102024316.78661-1-ajit.khaparde@broadcom.com> In-Reply-To: <20201102024316.78661-1-ajit.khaparde@broadcom.com> From: Ajit Khaparde Date: Mon, 2 Nov 2020 16:24:47 -0800 Message-ID: To: dpdk-dev Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] [PATCH] net/bnxt: fix PAM4 link negotiation X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Sun, Nov 1, 2020 at 6:43 PM Ajit Khaparde wrote: > In some instances link was not coming up if PAM4 signaling is enabled. > Added check to disable autoneg if FW indicates auto speeds are zero. > Use default auto speeds if PAM4 auto speeds is not set. > Added a fix for forced link setting. > > Fixes: c23f9ded0391 ("net/bnxt: support 200G PAM4 link") > > Signed-off-by: Ajit Khaparde > Applied to dpdk-next-net-brcm. Thanks > --- > drivers/net/bnxt/bnxt_ethdev.c | 4 ++++ > drivers/net/bnxt/bnxt_hwrm.c | 22 ++++++++++++++++++++-- > 2 files changed, 24 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/bnxt/bnxt_ethdev.c > b/drivers/net/bnxt/bnxt_ethdev.c > index 21ea370bf5..70edf824bc 100644 > --- a/drivers/net/bnxt/bnxt_ethdev.c > +++ b/drivers/net/bnxt/bnxt_ethdev.c > @@ -845,6 +845,10 @@ uint32_t bnxt_get_speed_capabilities(struct bnxt *bp) > uint32_t link_speed = bp->link_info->support_speeds; > uint32_t speed_capa = 0; > > + /* If PAM4 is configured, use PAM4 supported speed */ > + if (link_speed == 0 && bp->link_info->support_pam4_speeds > 0) > + link_speed = bp->link_info->support_pam4_speeds; > + > if (link_speed & HWRM_PORT_PHY_QCFG_OUTPUT_LINK_SPEED_100MB) > speed_capa |= ETH_LINK_SPEED_100M; > if (link_speed & HWRM_PORT_PHY_QCFG_OUTPUT_SUPPORT_SPEEDS_100MBHD) > diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c > index 84702125cc..24c33185b4 100644 > --- a/drivers/net/bnxt/bnxt_hwrm.c > +++ b/drivers/net/bnxt/bnxt_hwrm.c > @@ -1272,9 +1272,10 @@ static int bnxt_hwrm_port_phy_cfg(struct bnxt *bp, > struct bnxt_link_info *conf) > > HWRM_PORT_PHY_CFG_IN_EN_FORCE_PAM4_LINK_SPEED; > req.force_pam4_link_speed = > rte_cpu_to_le_16(conf->link_speed); > - } > - req.force_link_speed = > + } else { > + req.force_link_speed = > rte_cpu_to_le_16(conf->link_speed); > + } > } > /* AutoNeg - Advertise speeds specified. */ > if (conf->auto_link_speed_mask && > @@ -1370,6 +1371,11 @@ static int bnxt_hwrm_port_phy_qcfg(struct bnxt *bp, > link_info->link_speed, link_info->auto_mode, > link_info->auto_link_speed, > link_info->auto_link_speed_mask, > link_info->support_speeds, > link_info->force_link_speed); > + PMD_DRV_LOG(DEBUG, "Link > Signal:%d,PAM::Auto:%x,Support:%x,Force:%x\n", > + link_info->link_signal_mode, > + link_info->auto_pam4_link_speeds, > + link_info->support_pam4_speeds, > + link_info->force_pam4_link_speed); > return rc; > } > > @@ -3071,6 +3077,12 @@ int bnxt_set_hwrm_link_config(struct bnxt *bp, bool > link_up) > autoneg = 0; > } > > + /* No auto speeds and no auto_pam4_link. Disable autoneg */ > + if (bp->link_info->auto_link_speed == 0 && > + bp->link_info->link_signal_mode && > + bp->link_info->auto_pam4_link_speeds == 0) > + autoneg = 0; > + > speed = bnxt_parse_eth_link_speed(dev_conf->link_speeds, > bp->link_info->link_signal_mode); > link_req.phy_flags = HWRM_PORT_PHY_CFG_INPUT_FLAGS_RESET_PHY; > @@ -3116,6 +3128,12 @@ int bnxt_set_hwrm_link_config(struct bnxt *bp, bool > link_up) > link_req.link_speed = > bp->link_info->force_link_speed; > else > link_req.link_speed = > bp->link_info->auto_link_speed; > + /* Auto PAM4 link speed is zero, but auto_link_speed is not > + * zero. Use the auto_link_speed. > + */ > + if (bp->link_info->auto_link_speed != 0 && > + bp->link_info->auto_pam4_link_speeds == 0) > + link_req.link_speed = > bp->link_info->auto_link_speed; > } > link_req.duplex = > bnxt_parse_eth_link_duplex(dev_conf->link_speeds); > link_req.auto_pause = bp->link_info->auto_pause; > -- > 2.21.1 (Apple Git-122.3) > >