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 0ADAAA04E7; Mon, 2 Nov 2020 03:43:24 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 98CA75A0F; Mon, 2 Nov 2020 03:43:22 +0100 (CET) Received: from mail-pg1-f195.google.com (mail-pg1-f195.google.com [209.85.215.195]) by dpdk.org (Postfix) with ESMTP id 8638F594B for ; Mon, 2 Nov 2020 03:43:21 +0100 (CET) Received: by mail-pg1-f195.google.com with SMTP id i26so9518170pgl.5 for ; Sun, 01 Nov 2020 18:43:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:subject:date:message-id:mime-version; bh=YwkZinR1PxsdJjHXQe+9ULgSpYqtEXH1kn3VPGm6b3Q=; b=WylrKw1Y1xC/OKBDqJJ8KwPycotwypaEa4fBDb2HJ/182siLS7aYBofNzsGJ5uTJF+ nkgAwd/gDp0Aa4aNXZ9XIx0Db+XqHs0sP6KBfXnj6O4HFx7JwuvJxVauQ6FPjijwELDv SfljIAmw+TNoSkb0d7qTQe2BYi1iktmFlwjKQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version; bh=YwkZinR1PxsdJjHXQe+9ULgSpYqtEXH1kn3VPGm6b3Q=; b=CztZkKdE9g0HLDq4HgzP71Katl6qDExrOV/LlNCwWMLhipPuMPlxQY/jNX+FcCUoU2 cCHZ596B4nKdrHwZ8AB8XzyvEj98LX8frH6FcmfsbRd5DCK+MzZEW+yVy5fBoMyFyEd+ Z2Nn2gxav4i5qpxrDhqF2JrzFN8vZVOJcX1QGOcIqRIpUxM5KYbRxqk2wHo8LtGf0tTj 3L0tTBWH9AJaFPjwTn2irwPOm78CwSvS41eABENigx6twbOiUCQwvI5xZGx7eUgH4QYO k9PAJbGyIQnFjPsMynWm/rrksDhsX+L/IiUEAryucjIGte5voapYHM1CReh5Ls3wk3fW Dh+g== X-Gm-Message-State: AOAM533WyHOHbBeyOLGu0RDwRz0zbgNj+Uqv7we1hAd3YOQLiLAm6UC9 5/7ZtA5mx547OoT+IY5HH9OiTBv/fT/bVpNMoZOeg9j0dmVDCaVYipWxZSuduL6HwTKp6fa15Uu +XC7HMeK4FBiI2t0oml7I18RiaoAyjw+Km4nToM/jz0/FnTUQqTReLugM/6FczvnEPg== X-Google-Smtp-Source: ABdhPJz8EbVcI7l4KUvxr/ho52c/onttQLeHamiore8VuwfR4Sff7dK7znyIVQhSRjVkdlh2uEsHxA== X-Received: by 2002:a17:90a:ac06:: with SMTP id o6mr15473267pjq.49.1604284999275; Sun, 01 Nov 2020 18:43:19 -0800 (PST) Received: from localhost.localdomain ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id 10sm10433827pjt.50.2020.11.01.18.43.18 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 01 Nov 2020 18:43:18 -0800 (PST) From: Ajit Khaparde To: dev@dpdk.org Date: Sun, 1 Nov 2020 18:43:16 -0800 Message-Id: <20201102024316.78661-1-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.21.1 (Apple Git-122.3) MIME-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 8bit X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: [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" 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 --- 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)