From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0C0DD42C0C; Fri, 2 Jun 2023 06:12:25 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 87FF7406B8; Fri, 2 Jun 2023 06:12:24 +0200 (CEST) Received: from mail-ua1-f49.google.com (mail-ua1-f49.google.com [209.85.222.49]) by mails.dpdk.org (Postfix) with ESMTP id B472D40693 for ; Fri, 2 Jun 2023 06:12:22 +0200 (CEST) Received: by mail-ua1-f49.google.com with SMTP id a1e0cc1a2514c-789d36c830cso165896241.2 for ; Thu, 01 Jun 2023 21:12:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1685679142; x=1688271142; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=vZH6Jj3VEVFYgRuVLzwpAVl315NVYzFof77m9eBMbvU=; b=HiLmESBTEYdrq2Pph+g756KPCZX1SPJVIUVSqDyU+mu4ZnKyszDUHsSRhArIePD/UN tGuVemVl0wKCx3gdKW3sqWSBsjbBKVoYYHMcPs7vkUpX90TMwTIt/Uqtf48StgdzVbhy Z9V4wXEr+RFqoORz9tiGzwiTeRWnBJOkoOFxL5Td+1m8Lu/wLckHm502jzGyAZoawgqp h606OkKhftxgWqi+dvYYgFrSz2AH7ecGMdj3aIBogFLKe3tm7tczL1LdNQ21hCTXzV/h L39ivyq25NV4GqLC+EYJ9/UOcwDaCuU7pNHwuEwb0zNQ9zyUR+B98JY5xGWX7p8B1RmV afxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685679142; x=1688271142; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vZH6Jj3VEVFYgRuVLzwpAVl315NVYzFof77m9eBMbvU=; b=EuqHW2Nljjht+dP5GuHIZVcxzxJr/yNc7c4FWnk7SwnyUMD2LIJXQbZwtH87ihCyOt WYPMcjpw5Gn0cMKkENH5gGjRnRmu95EDmUnzqabRfOrA5agUa/QQqn4r6XwYTOv41E2U 8SSGIVw5fhxPYEZjbiM60pSCX4CjVAmRzumdsxQOWa13KxR07NXSoSwlsBksFcX0BOaL P0HcdCrDOMmojrqG+xvA2HsfPFiPXIoPMWq+ZRu1IA8mdkXIdh0dcNky5mwuBiOJI+NM 8wKhgQmDTVULJao08Wnm1JPlI+oq2SoK2NENtoyDnFkvuyYnBdv9qNANlVgt8fAfwnR2 QTaA== X-Gm-Message-State: AC+VfDwSown0XJJpVR6dUb0wpl2QgA0IZ+yDUndk5kouQ/gDP3vKLho3 gFVJy8MEFbDcRzdugn75bwh2dJoNoOcYMoU8DkDvYv6zfAqkdJ0k X-Google-Smtp-Source: ACHHUZ4R2N9EqUUsw3aEiYXGaf9/a+uq1UE1awEQBRha8rJnboRg3qfSDwLkp3cG14vJJddFA69HDHLfgSIscUPoYcA= X-Received: by 2002:a05:6102:303c:b0:42c:3baa:b0d4 with SMTP id v28-20020a056102303c00b0042c3baab0d4mr5305605vsa.9.1685679141620; Thu, 01 Jun 2023 21:12:21 -0700 (PDT) MIME-Version: 1.0 References: <20230518000111.71360-1-julien_dpdk@jaube.fr> <20230601102141.56932-1-julien_dpdk@jaube.fr> In-Reply-To: <20230601102141.56932-1-julien_dpdk@jaube.fr> From: Jerin Jacob Date: Fri, 2 Jun 2023 09:41:55 +0530 Message-ID: Subject: Re: [PATCH v3] net/bnx2x : add experimental 2.5Gbps support for BCM578xx. To: Julien Aube Cc: dev@dpdk.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On Thu, Jun 1, 2023 at 3:51=E2=80=AFPM Julien Aube w= rote: > > - add support for 2500baseX_Full in addition to 1000baseT_Full. > For 2.5Gbps speed, HSGMII mode shall be enabled in the serdes. > - add the possibility to support SC connectors on SFP (GPON are mostly SC= ) > - change the initialisation time from 60ms to 1800ms (for xPON-Based SFP) > > This has been tested with GPON's ONU SFP but requires a specific > firmware configuration described in the documentation. > > Signed-off-by: Julien Aube Please fix the following Wrong headline format: net/bnx2x : add experimental 2.5Gbps support for BCM578xx. Contributor name/email mismatch with .mailmap: Julien Aube is unknown in .mailmap > --- > doc/guides/nics/bnx2x.rst | 4 ++++ > drivers/net/bnx2x/elink.c | 19 +++++++++++++++++-- > 2 files changed, 21 insertions(+), 2 deletions(-) > > diff --git a/doc/guides/nics/bnx2x.rst b/doc/guides/nics/bnx2x.rst > index 788a6dac08..f19784db2c 100644 > --- a/doc/guides/nics/bnx2x.rst > +++ b/doc/guides/nics/bnx2x.rst > @@ -22,6 +22,7 @@ BNX2X PMD has support for: > - Promiscuous mode > - Port hardware statistics > - SR-IOV VF > +- Experimental 2.5Gbps support > > Non-supported Features > ---------------------- > @@ -72,6 +73,9 @@ Prerequisites > `linux-firmware git repository `_ > to get the required firmware. > > +- 2.5Gbps speed currently require that the firmware's nvm configuration = number 7 / 35 (first port) and 36 (second port) are set to 0x70 > + for 1G/2.5G/10G support . This can be done for EFI or DOS using EDIAG = tool from Broadcom. > + > Pre-Installation Configuration > ------------------------------ > > diff --git a/drivers/net/bnx2x/elink.c b/drivers/net/bnx2x/elink.c > index 43fbf04ece..2c81f85b96 100644 > --- a/drivers/net/bnx2x/elink.c > +++ b/drivers/net/bnx2x/elink.c > @@ -867,6 +867,7 @@ typedef elink_status_t (*read_sfp_module_eeprom_func_= p)(struct elink_phy *phy, > > #define ELINK_SFP_EEPROM_CON_TYPE_ADDR 0x2 > #define ELINK_SFP_EEPROM_CON_TYPE_VAL_UNKNOWN 0x0 > + #define ELINK_SFP_EEPROM_CON_TYPE_VAL_SC 0x1 > #define ELINK_SFP_EEPROM_CON_TYPE_VAL_LC 0x7 > #define ELINK_SFP_EEPROM_CON_TYPE_VAL_COPPER 0x21 > #define ELINK_SFP_EEPROM_CON_TYPE_VAL_RJ45 0x22 > @@ -5069,6 +5070,15 @@ static void elink_warpcore_set_sgmii_speed(struct = elink_phy *phy, > 0x1000); > ELINK_DEBUG_P0(sc, "set SGMII AUTONEG"); > } else { > + /* Note that 2.5G works only when used with 1G advertisement */ > + if (fiber_mode && phy->req_line_speed =3D=3D SPEED_2500 &= & > + (phy->speed_cap_mask & > + (PORT_HW_CFG_SPEED_CAPABILITY_D0_1G | > + PORT_HW_CFG_SPEED_CAPABILITY_D0_2_5G))) { > + elink_cl45_write(sc, phy, MDIO_WC_DEVAD, > + MDIO_WC_REG_SERDESDIGITAL_MISC1, 0x6010); > + } > + > elink_cl45_read(sc, phy, MDIO_WC_DEVAD, > MDIO_WC_REG_COMBO_IEEE0_MIICTRL, &val16); > val16 &=3D 0xcebf; > @@ -5079,6 +5089,7 @@ static void elink_warpcore_set_sgmii_speed(struct e= link_phy *phy, > val16 |=3D 0x2000; > break; > case ELINK_SPEED_1000: > + case ELINK_SPEED_2500: > val16 |=3D 0x0040; > break; > default: > @@ -9138,6 +9149,7 @@ static elink_status_t elink_get_edc_mode(struct eli= nk_phy *phy, > break; > } > case ELINK_SFP_EEPROM_CON_TYPE_VAL_UNKNOWN: > + case ELINK_SFP_EEPROM_CON_TYPE_VAL_SC: > case ELINK_SFP_EEPROM_CON_TYPE_VAL_LC: > case ELINK_SFP_EEPROM_CON_TYPE_VAL_RJ45: > check_limiting_mode =3D 1; > @@ -9151,7 +9163,8 @@ static elink_status_t elink_get_edc_mode(struct eli= nk_phy *phy, > (val[ELINK_SFP_EEPROM_1G_COMP_CODE_ADDR] !=3D 0)) { > ELINK_DEBUG_P0(sc, "1G SFP module detected"); > phy->media_type =3D ELINK_ETH_PHY_SFP_1G_FIBER; > - if (phy->req_line_speed !=3D ELINK_SPEED_1000) { > + if (phy->req_line_speed !=3D ELINK_SPEED_1000 && > + phy->req_line_speed !=3D ELINK_SPEED_2500) { > uint8_t gport =3D params->port; > phy->req_line_speed =3D ELINK_SPEED_1000; > if (!CHIP_IS_E1x(sc)) { > @@ -9324,7 +9337,7 @@ static elink_status_t elink_wait_for_sfp_module_ini= tialized( > * some phys type ( e.g. JDSU ) > */ > > - for (timeout =3D 0; timeout < 60; timeout++) { > + for (timeout =3D 0; timeout < 1800; timeout++) { > if (phy->type =3D=3D PORT_HW_CFG_XGXS_EXT_PHY_TYPE_DIRECT= ) > rc =3D elink_warpcore_read_sfp_module_eeprom( > phy, params, ELINK_I2C_DEV_ADDR_A0, 1, 1,= &val, > @@ -12614,6 +12627,7 @@ static const struct elink_phy phy_warpcore =3D { > ELINK_SUPPORTED_100baseT_Half | > ELINK_SUPPORTED_100baseT_Full | > ELINK_SUPPORTED_1000baseT_Full | > + ELINK_SUPPORTED_2500baseX_Full | > ELINK_SUPPORTED_1000baseKX_Full | > ELINK_SUPPORTED_10000baseT_Full | > ELINK_SUPPORTED_10000baseKR_Full | > @@ -13156,6 +13170,7 @@ static elink_status_t elink_populate_int_phy(stru= ct bnx2x_softc *sc, > break; > case PORT_HW_CFG_NET_SERDES_IF_SFI: > phy->supported &=3D (ELINK_SUPPORTED_1000baseT_Fu= ll | > + ELINK_SUPPORTED_2500baseX_Full= | > ELINK_SUPPORTED_10000baseT_Ful= l | > ELINK_SUPPORTED_FIBRE | > ELINK_SUPPORTED_Pause | > -- > 2.30.2 >