From patchwork Thu Jul 15 13:53:27 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tomasz Duszynski X-Patchwork-Id: 95883 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 57294A0A0C; Thu, 15 Jul 2021 15:53:46 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1F3D24121B; Thu, 15 Jul 2021 15:53:46 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id D623740143 for ; Thu, 15 Jul 2021 15:53:44 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 16FDp9Lt020151; Thu, 15 Jul 2021 06:53:41 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=pfpt0220; bh=orbVrBTzt0BRL+fu7oVYvNmCoBKGDyei2Py5yIp8BlE=; b=Nw0TnXaj2aM5LocP4NiGobD4KvR1FaphzZkXpCU+jI4nEcnXU3JPYm+FnfkyjOto+lMn 3gZdkC+Uvmm3cRXZLa7IaVXyzPZU+W5F3zdynp/MFYtF/3neCoO1x+GY6FUxCRCYvZA1 VpJC1Fd5vk3cPTVPA2BrXujCWXuWUzTP2OOHrwrJ8xFL5ScDNi8Cv31jru7UFos3/N3B KC7/c1XYMVossYWIYr9j/k9mY5Yr2YefFsE5uSOTZ6HmWVSIxLVy6wKnT1sFma7lyZoU IzCNLDHwMKLcl2e0w+NxhXxMe8Qlck4bI2Q7JGfViCrL6H+8wi94qji4V2D5z8e0o+ss kA== Received: from dc5-exch02.marvell.com ([199.233.59.182]) by mx0a-0016f401.pphosted.com with ESMTP id 39tggc176s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Thu, 15 Jul 2021 06:53:41 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Thu, 15 Jul 2021 06:53:40 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.18 via Frontend Transport; Thu, 15 Jul 2021 06:53:40 -0700 Received: from localhost.localdomain (unknown [10.28.34.39]) by maili.marvell.com (Postfix) with ESMTP id DF00D3F7081; Thu, 15 Jul 2021 06:53:37 -0700 (PDT) From: Tomasz Duszynski To: , Nithin Dabilpuram , Kiran Kumar K , Sunil Kumar Kori , Satha Rao , Ray Kinsella CC: , Tomasz Duszynski Date: Thu, 15 Jul 2021 08:53:27 -0500 Message-ID: <20210715135330.2541009-2-tduszynski@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210715135330.2541009-1-tduszynski@marvell.com> References: <20210715135330.2541009-1-tduszynski@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: 9OYzk8qefqBXR7YjnaaqZpLUkQWUGHlb X-Proofpoint-ORIG-GUID: 9OYzk8qefqBXR7YjnaaqZpLUkQWUGHlb X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391, 18.0.790 definitions=2021-07-15_07:2021-07-14, 2021-07-15 signatures=0 Subject: [dpdk-dev] [PATCH 1/4] common/cnxk: support reading BPHY CGX/RPM FEC 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 Sender: "dev" Before setting FEC for specific LMAC one needs to know which type is actually supported because it generally differs between modes LMAC operates in (SGMII, SFI, etc.). Signed-off-by: Tomasz Duszynski --- drivers/common/cnxk/roc_bphy_cgx.c | 25 +++++++++++++++++++++++++ drivers/common/cnxk/roc_bphy_cgx.h | 3 +++ drivers/common/cnxk/roc_bphy_cgx_priv.h | 4 ++++ drivers/common/cnxk/version.map | 1 + 4 files changed, 33 insertions(+) diff --git a/drivers/common/cnxk/roc_bphy_cgx.c b/drivers/common/cnxk/roc_bphy_cgx.c index 056a3db47f..467b67686b 100644 --- a/drivers/common/cnxk/roc_bphy_cgx.c +++ b/drivers/common/cnxk/roc_bphy_cgx.c @@ -395,3 +395,28 @@ roc_bphy_cgx_ptp_rx_disable(struct roc_bphy_cgx *roc_cgx, unsigned int lmac) { return roc_bphy_cgx_ptp_rx_ena_dis(roc_cgx, lmac, false); } + +int +roc_bphy_cgx_fec_supported_get(struct roc_bphy_cgx *roc_cgx, unsigned int lmac, + enum roc_bphy_cgx_eth_link_fec *fec) +{ + uint64_t scr1, scr0; + int ret; + + if (!roc_cgx || !fec) + return -EINVAL; + + if (!roc_bphy_cgx_lmac_exists(roc_cgx, lmac)) + return -EINVAL; + + scr1 = FIELD_PREP(SCR1_ETH_CMD_ID, ETH_CMD_GET_SUPPORTED_FEC); + + ret = roc_bphy_cgx_intf_req(roc_cgx, lmac, scr1, &scr0); + if (ret) + return ret; + + scr0 = FIELD_GET(SCR0_ETH_FEC_TYPES_S_FEC, scr0); + *fec = (enum roc_bphy_cgx_eth_link_fec)scr0; + + return 0; +} diff --git a/drivers/common/cnxk/roc_bphy_cgx.h b/drivers/common/cnxk/roc_bphy_cgx.h index 49c35a1e63..9439f88b34 100644 --- a/drivers/common/cnxk/roc_bphy_cgx.h +++ b/drivers/common/cnxk/roc_bphy_cgx.h @@ -115,6 +115,9 @@ __roc_api int roc_bphy_cgx_ptp_rx_enable(struct roc_bphy_cgx *roc_cgx, unsigned int lmac); __roc_api int roc_bphy_cgx_ptp_rx_disable(struct roc_bphy_cgx *roc_cgx, unsigned int lmac); +__roc_api int roc_bphy_cgx_fec_supported_get(struct roc_bphy_cgx *roc_cgx, + unsigned int lmac, + enum roc_bphy_cgx_eth_link_fec *fec); #endif /* _ROC_BPHY_CGX_H_ */ diff --git a/drivers/common/cnxk/roc_bphy_cgx_priv.h b/drivers/common/cnxk/roc_bphy_cgx_priv.h index 71a277fffd..93aa43ef5a 100644 --- a/drivers/common/cnxk/roc_bphy_cgx_priv.h +++ b/drivers/common/cnxk/roc_bphy_cgx_priv.h @@ -66,6 +66,7 @@ enum eth_cmd_id { ETH_CMD_INTERNAL_LBK = 7, ETH_CMD_MODE_CHANGE = 11, /* hot plug support */ ETH_CMD_INTF_SHUTDOWN = 12, + ETH_CMD_GET_SUPPORTED_FEC = 18, ETH_CMD_SET_PTP_MODE = 34, }; @@ -109,6 +110,9 @@ enum eth_cmd_own { #define SCR0_ETH_LNK_STS_S_LMAC_TYPE GENMASK_ULL(35, 28) #define SCR0_ETH_LNK_STS_S_MODE GENMASK_ULL(43, 36) +/* struct eth_fec_types_s */ +#define SCR0_ETH_FEC_TYPES_S_FEC GENMASK_ULL(10, 9) + /* scratchx(1) CSR used for non-secure SW->ATF communication * This CSR acts as a command register */ diff --git a/drivers/common/cnxk/version.map b/drivers/common/cnxk/version.map index e3af48c02e..3b9b283b6e 100644 --- a/drivers/common/cnxk/version.map +++ b/drivers/common/cnxk/version.map @@ -24,6 +24,7 @@ INTERNAL { roc_ae_fpm_put; roc_bphy_cgx_dev_fini; roc_bphy_cgx_dev_init; + roc_bphy_cgx_fec_supported_get; roc_bphy_cgx_get_linkinfo; roc_bphy_cgx_intlbk_disable; roc_bphy_cgx_intlbk_enable; From patchwork Thu Jul 15 13:53:28 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tomasz Duszynski X-Patchwork-Id: 95885 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C5127A0A0C; Thu, 15 Jul 2021 15:53:58 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 510A741244; Thu, 15 Jul 2021 15:53:51 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 2120D4122E for ; Thu, 15 Jul 2021 15:53:48 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 16FDpY9K022886; Thu, 15 Jul 2021 06:53:45 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=pfpt0220; bh=ZJwq4SsjjD8NgTUpjjWLuOWmMrodLajQa35IxUliFpo=; b=KbsPFRw8Fwg4lrN/HrUzt9JS8z3hc4MhQbfxrEEtL2dDrTa8J4RaWKNHF4JPBdIea1p3 SDcLQFJRLJd+o8S0AFUez87nO/k5C2e+UukNyI7y6AVUzB+mIIkAVnNhn5Nm4b0VlEc6 N81j/iN21IBuZXm6f8NJHCbmsbrqAnXS+0st/3bW4kyjRKI2lbpOzmk6s2nmVRFn2ShZ k7l3f7LSh4uXV85F71wXKwp/OuWcmcQkD2EuzBHdl7PupolkV4VNUpDNbBJZF0dHN9V+ JB1RRmFccGotA6/w41HRewbvyhlgkydhRdeJpdsCU1hu37uZ4hB6BNGfZk2I8dvAffuK Mg== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0b-0016f401.pphosted.com with ESMTP id 39t95sjknw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Thu, 15 Jul 2021 06:53:45 -0700 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Thu, 15 Jul 2021 06:53:42 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.18 via Frontend Transport; Thu, 15 Jul 2021 06:53:42 -0700 Received: from localhost.localdomain (unknown [10.28.34.39]) by maili.marvell.com (Postfix) with ESMTP id AF2363F707E; Thu, 15 Jul 2021 06:53:40 -0700 (PDT) From: Tomasz Duszynski To: , Nithin Dabilpuram , Kiran Kumar K , Sunil Kumar Kori , Satha Rao , Ray Kinsella CC: , Tomasz Duszynski Date: Thu, 15 Jul 2021 08:53:28 -0500 Message-ID: <20210715135330.2541009-3-tduszynski@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210715135330.2541009-1-tduszynski@marvell.com> References: <20210715135330.2541009-1-tduszynski@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: TOlwn3CSq0MkGvQXTEGi0we8qwGnYNJ- X-Proofpoint-ORIG-GUID: TOlwn3CSq0MkGvQXTEGi0we8qwGnYNJ- X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391, 18.0.790 definitions=2021-07-15_07:2021-07-14, 2021-07-15 signatures=0 Subject: [dpdk-dev] [PATCH 2/4] common/cnxk: support setting BPHY CGX/RPM FEC 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 Sender: "dev" Add support for setting FEC for a given LMAC. Signed-off-by: Tomasz Duszynski --- drivers/common/cnxk/roc_bphy_cgx.c | 18 ++++++++++++++++++ drivers/common/cnxk/roc_bphy_cgx.h | 3 +++ drivers/common/cnxk/roc_bphy_cgx_priv.h | 4 ++++ drivers/common/cnxk/version.map | 1 + 4 files changed, 26 insertions(+) diff --git a/drivers/common/cnxk/roc_bphy_cgx.c b/drivers/common/cnxk/roc_bphy_cgx.c index 467b67686b..9e53fe238e 100644 --- a/drivers/common/cnxk/roc_bphy_cgx.c +++ b/drivers/common/cnxk/roc_bphy_cgx.c @@ -396,6 +396,24 @@ roc_bphy_cgx_ptp_rx_disable(struct roc_bphy_cgx *roc_cgx, unsigned int lmac) return roc_bphy_cgx_ptp_rx_ena_dis(roc_cgx, lmac, false); } +int +roc_bphy_cgx_fec_set(struct roc_bphy_cgx *roc_cgx, unsigned int lmac, + enum roc_bphy_cgx_eth_link_fec fec) +{ + uint64_t scr1, scr0; + + if (!roc_cgx) + return -EINVAL; + + if (!roc_bphy_cgx_lmac_exists(roc_cgx, lmac)) + return -EINVAL; + + scr1 = FIELD_PREP(SCR1_ETH_CMD_ID, ETH_CMD_SET_FEC) | + FIELD_PREP(SCR1_ETH_SET_FEC_ARGS, fec); + + return roc_bphy_cgx_intf_req(roc_cgx, lmac, scr1, &scr0); +} + int roc_bphy_cgx_fec_supported_get(struct roc_bphy_cgx *roc_cgx, unsigned int lmac, enum roc_bphy_cgx_eth_link_fec *fec) diff --git a/drivers/common/cnxk/roc_bphy_cgx.h b/drivers/common/cnxk/roc_bphy_cgx.h index 9439f88b34..d522d4e202 100644 --- a/drivers/common/cnxk/roc_bphy_cgx.h +++ b/drivers/common/cnxk/roc_bphy_cgx.h @@ -115,6 +115,9 @@ __roc_api int roc_bphy_cgx_ptp_rx_enable(struct roc_bphy_cgx *roc_cgx, unsigned int lmac); __roc_api int roc_bphy_cgx_ptp_rx_disable(struct roc_bphy_cgx *roc_cgx, unsigned int lmac); +__roc_api int roc_bphy_cgx_fec_set(struct roc_bphy_cgx *roc_cgx, + unsigned int lmac, + enum roc_bphy_cgx_eth_link_fec fec); __roc_api int roc_bphy_cgx_fec_supported_get(struct roc_bphy_cgx *roc_cgx, unsigned int lmac, enum roc_bphy_cgx_eth_link_fec *fec); diff --git a/drivers/common/cnxk/roc_bphy_cgx_priv.h b/drivers/common/cnxk/roc_bphy_cgx_priv.h index 93aa43ef5a..e45a13ef09 100644 --- a/drivers/common/cnxk/roc_bphy_cgx_priv.h +++ b/drivers/common/cnxk/roc_bphy_cgx_priv.h @@ -67,6 +67,7 @@ enum eth_cmd_id { ETH_CMD_MODE_CHANGE = 11, /* hot plug support */ ETH_CMD_INTF_SHUTDOWN = 12, ETH_CMD_GET_SUPPORTED_FEC = 18, + ETH_CMD_SET_FEC = 19, ETH_CMD_SET_PTP_MODE = 34, }; @@ -130,6 +131,9 @@ enum eth_cmd_own { #define SCR1_ETH_MODE_CHANGE_ARGS_PORT GENMASK_ULL(21, 14) #define SCR1_ETH_MODE_CHANGE_ARGS_MODE GENMASK_ULL(63, 22) +/* struct eth_set_fec_args */ +#define SCR1_ETH_SET_FEC_ARGS GENMASK_ULL(9, 8) + #define SCR1_OWN_STATUS GENMASK_ULL(1, 0) #endif /* _ROC_BPHY_CGX_PRIV_H_ */ diff --git a/drivers/common/cnxk/version.map b/drivers/common/cnxk/version.map index 3b9b283b6e..738c77eaed 100644 --- a/drivers/common/cnxk/version.map +++ b/drivers/common/cnxk/version.map @@ -24,6 +24,7 @@ INTERNAL { roc_ae_fpm_put; roc_bphy_cgx_dev_fini; roc_bphy_cgx_dev_init; + roc_bphy_cgx_fec_set; roc_bphy_cgx_fec_supported_get; roc_bphy_cgx_get_linkinfo; roc_bphy_cgx_intlbk_disable; From patchwork Thu Jul 15 13:53:29 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tomasz Duszynski X-Patchwork-Id: 95884 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A8A7CA0A0C; Thu, 15 Jul 2021 15:53:52 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 308044123B; Thu, 15 Jul 2021 15:53:48 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id E36024122D for ; Thu, 15 Jul 2021 15:53:46 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 16FDp9Lu020151 for ; Thu, 15 Jul 2021 06:53:46 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=pfpt0220; bh=vN5eOSLKTnSY9/Wse5TNlAXA7eTXcPuxqeByOFE0C6o=; b=bSY8PGaqznddysI4VrMROX+VJA+qZgevjWkrkxyXhkAqTKw3TJBaBP899xgNBCTljbyH Te6djCUV90NVk1x+vh6DzW/CZYfpEBRc3XI/YY2SAjtRcL1F2Uk2+DCv002m8wVChcsx 9ndyVilfUH8zH2OjnBZUSMKrQuhY5fivV+HehBnW/PtRxKGT1BwYMl/kTS7zxBwJZTnw yfY6taCJASHKzJTOOp8pkxIZQU54TvgHV4RinPTGiQ/ucjLip+s5V2FUfJtZvyeHraFs T6VbhnSjmFvMDnZsLLfVntbqEnhVSAtVAqxMVVwVGV+AqPFQibSclXxJhzlrAD3BWAuE 0g== Received: from dc5-exch02.marvell.com ([199.233.59.182]) by mx0a-0016f401.pphosted.com with ESMTP id 39tggc1774-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Thu, 15 Jul 2021 06:53:46 -0700 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Thu, 15 Jul 2021 06:53:44 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.18 via Frontend Transport; Thu, 15 Jul 2021 06:53:44 -0700 Received: from localhost.localdomain (unknown [10.28.34.39]) by maili.marvell.com (Postfix) with ESMTP id 7EC743F7081; Thu, 15 Jul 2021 06:53:43 -0700 (PDT) From: Tomasz Duszynski To: , Jakub Palider , Tomasz Duszynski CC: Date: Thu, 15 Jul 2021 08:53:29 -0500 Message-ID: <20210715135330.2541009-4-tduszynski@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210715135330.2541009-1-tduszynski@marvell.com> References: <20210715135330.2541009-1-tduszynski@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: qB9oT26Qn8f-KZ9TdHlqr0fJ6JrRlkTE X-Proofpoint-ORIG-GUID: qB9oT26Qn8f-KZ9TdHlqr0fJ6JrRlkTE X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391, 18.0.790 definitions=2021-07-15_07:2021-07-14, 2021-07-15 signatures=0 Subject: [dpdk-dev] [PATCH 3/4] raw/cnxk_bphy: support reading FEC 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 Sender: "dev" Allow one to retrieve supported FEC setting for specific LMAC. Signed-off-by: Tomasz Duszynski --- drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c | 9 +++++++++ drivers/raw/cnxk_bphy/cnxk_bphy_cgx_test.c | 23 ++++++++++++++++++++++ drivers/raw/cnxk_bphy/rte_pmd_bphy.h | 1 + 3 files changed, 33 insertions(+) diff --git a/drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c b/drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c index 3da2244146..693a9cd2d5 100644 --- a/drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c +++ b/drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c @@ -62,6 +62,7 @@ cnxk_bphy_cgx_process_buf(struct cnxk_bphy_cgx *cgx, unsigned int queue, struct cnxk_bphy_cgx_msg_link_info *link_info; struct roc_bphy_cgx_link_info rlink_info; struct roc_bphy_cgx_link_mode rlink_mode; + enum roc_bphy_cgx_eth_link_fec *fec; unsigned int lmac = qp->lmac; void *rsp = NULL; int ret; @@ -122,6 +123,14 @@ cnxk_bphy_cgx_process_buf(struct cnxk_bphy_cgx *cgx, unsigned int queue, case CNXK_BPHY_CGX_MSG_TYPE_STOP_RXTX: ret = roc_bphy_cgx_stop_rxtx(cgx->rcgx, lmac); break; + case CNXK_BPHY_CGX_MSG_TYPE_GET_SUPPORTED_FEC: + fec = rte_zmalloc(NULL, sizeof(*fec), 0); + if (!fec) + return -ENOMEM; + + ret = roc_bphy_cgx_fec_supported_get(cgx->rcgx, lmac, fec); + rsp = fec; + break; default: return -EINVAL; } diff --git a/drivers/raw/cnxk_bphy/cnxk_bphy_cgx_test.c b/drivers/raw/cnxk_bphy/cnxk_bphy_cgx_test.c index cb4dd4b221..cd3e6b2e97 100644 --- a/drivers/raw/cnxk_bphy/cnxk_bphy_cgx_test.c +++ b/drivers/raw/cnxk_bphy/cnxk_bphy_cgx_test.c @@ -87,6 +87,22 @@ cnxk_bphy_cgx_link_cond(uint16_t dev_id, unsigned int queue, int cond) return -ETIMEDOUT; } +static int +cnxk_bphy_cgx_get_supported_fec(uint16_t dev_id, unsigned int queue, + enum cnxk_bphy_cgx_eth_link_fec *fec) +{ + struct cnxk_bphy_cgx_msg msg = { + .type = CNXK_BPHY_CGX_MSG_TYPE_GET_SUPPORTED_FEC, + }; + int ret; + + ret = cnxk_bphy_cgx_enq_msg(dev_id, queue, &msg); + if (ret) + return ret; + + return cnxk_bphy_cgx_deq_msg(dev_id, queue, (void **)&fec); +} + int cnxk_bphy_cgx_dev_selftest(uint16_t dev_id) { @@ -103,6 +119,7 @@ cnxk_bphy_cgx_dev_selftest(uint16_t dev_id) for (i = 0; i < queues; i++) { struct cnxk_bphy_cgx_msg_set_link_state link_state; + enum cnxk_bphy_cgx_eth_link_fec fec; struct cnxk_bphy_cgx_msg msg; unsigned int descs; @@ -198,6 +215,12 @@ cnxk_bphy_cgx_dev_selftest(uint16_t dev_id) break; } ret = 0; + + ret = cnxk_bphy_cgx_get_supported_fec(dev_id, i, &fec); + if (ret) { + RTE_LOG(ERR, PMD, "Failed to get supported FEC\n"); + break; + } } rte_rawdev_stop(dev_id); diff --git a/drivers/raw/cnxk_bphy/rte_pmd_bphy.h b/drivers/raw/cnxk_bphy/rte_pmd_bphy.h index f3387f38e3..0737964149 100644 --- a/drivers/raw/cnxk_bphy/rte_pmd_bphy.h +++ b/drivers/raw/cnxk_bphy/rte_pmd_bphy.h @@ -17,6 +17,7 @@ enum cnxk_bphy_cgx_msg_type { CNXK_BPHY_CGX_MSG_TYPE_SET_LINK_STATE, CNXK_BPHY_CGX_MSG_TYPE_START_RXTX, CNXK_BPHY_CGX_MSG_TYPE_STOP_RXTX, + CNXK_BPHY_CGX_MSG_TYPE_GET_SUPPORTED_FEC, }; enum cnxk_bphy_cgx_eth_link_speed { From patchwork Thu Jul 15 13:53:30 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tomasz Duszynski X-Patchwork-Id: 95886 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C231FA0A0C; Thu, 15 Jul 2021 15:54:04 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7630141253; Thu, 15 Jul 2021 15:53:52 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id BC2754122E for ; Thu, 15 Jul 2021 15:53:48 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 16FDpPq3020204 for ; Thu, 15 Jul 2021 06:53:47 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=pfpt0220; bh=eFcu1UaQGwtqf6dBtHDiIaxSXg/6ugc1EbQTBtEwMwQ=; b=XNQSghQyzbKTHwcFqN+V/AcpDpI8DfI4nYAGVfTvJg9ReA9j1JgXUmIeIJttwx6VsE+m XpXiipt+aH/AvPOsabzcqOfN9a1ydIvmn3LnS6fzIARWo+p/Y6rG1grovERZ0fxUuozg ZNZhYNWx8tL/s+rPICrBXH/TqRNTSUTrNlaXEScAhg3BYbF0ZiNoea7lZdC2ySyLEhhd su0njuUViZA4bSHoPFuHrj3hQU/h88bDFrwFdr9jySHnqBq9/QDwjL3P3nF2p86JwvOr FN1oA/ekXBKDfdqpijNZix51Hm2WWlKnDpiN69o6203lkeYc3ayf8OGQ2XMu1zEUeJMO VA== Received: from dc5-exch02.marvell.com ([199.233.59.182]) by mx0a-0016f401.pphosted.com with ESMTP id 39tggc1776-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Thu, 15 Jul 2021 06:53:47 -0700 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Thu, 15 Jul 2021 06:53:46 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.18 via Frontend Transport; Thu, 15 Jul 2021 06:53:46 -0700 Received: from localhost.localdomain (unknown [10.28.34.39]) by maili.marvell.com (Postfix) with ESMTP id 4DAB93F7082; Thu, 15 Jul 2021 06:53:45 -0700 (PDT) From: Tomasz Duszynski To: , Jakub Palider , Tomasz Duszynski CC: Date: Thu, 15 Jul 2021 08:53:30 -0500 Message-ID: <20210715135330.2541009-5-tduszynski@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210715135330.2541009-1-tduszynski@marvell.com> References: <20210715135330.2541009-1-tduszynski@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: bEjZNEj05Ez0Z31W0pnIlsjZ4EYFGwiX X-Proofpoint-ORIG-GUID: bEjZNEj05Ez0Z31W0pnIlsjZ4EYFGwiX X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391, 18.0.790 definitions=2021-07-15_07:2021-07-14, 2021-07-15 signatures=0 Subject: [dpdk-dev] [PATCH 4/4] raw/cnxk_bphy: support setting FEC 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 Sender: "dev" Add support for setting FEC for a given LMAC. Signed-off-by: Tomasz Duszynski --- drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c | 4 ++++ drivers/raw/cnxk_bphy/cnxk_bphy_cgx_test.c | 19 +++++++++++++++++++ drivers/raw/cnxk_bphy/rte_pmd_bphy.h | 1 + 3 files changed, 24 insertions(+) diff --git a/drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c b/drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c index 693a9cd2d5..ade45ab741 100644 --- a/drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c +++ b/drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c @@ -131,6 +131,10 @@ cnxk_bphy_cgx_process_buf(struct cnxk_bphy_cgx *cgx, unsigned int queue, ret = roc_bphy_cgx_fec_supported_get(cgx->rcgx, lmac, fec); rsp = fec; break; + case CNXK_BPHY_CGX_MSG_TYPE_SET_FEC: + fec = msg->data; + ret = roc_bphy_cgx_fec_set(cgx->rcgx, lmac, *fec); + break; default: return -EINVAL; } diff --git a/drivers/raw/cnxk_bphy/cnxk_bphy_cgx_test.c b/drivers/raw/cnxk_bphy/cnxk_bphy_cgx_test.c index cd3e6b2e97..d96e98661f 100644 --- a/drivers/raw/cnxk_bphy/cnxk_bphy_cgx_test.c +++ b/drivers/raw/cnxk_bphy/cnxk_bphy_cgx_test.c @@ -221,6 +221,25 @@ cnxk_bphy_cgx_dev_selftest(uint16_t dev_id) RTE_LOG(ERR, PMD, "Failed to get supported FEC\n"); break; } + + /* set supported fec */ + msg.type = CNXK_BPHY_CGX_MSG_TYPE_SET_FEC; + msg.data = &fec; + ret = cnxk_bphy_cgx_enq_msg(dev_id, i, &msg); + if (ret) { + RTE_LOG(ERR, PMD, "Failed to set FEC to %d\n", fec); + break; + } + + /* disable fec */ + fec = CNXK_BPHY_CGX_ETH_LINK_FEC_NONE; + msg.type = CNXK_BPHY_CGX_MSG_TYPE_SET_FEC; + msg.data = &fec; + ret = cnxk_bphy_cgx_enq_msg(dev_id, i, &msg); + if (ret) { + RTE_LOG(ERR, PMD, "Failed to disable FEC\n"); + break; + } } rte_rawdev_stop(dev_id); diff --git a/drivers/raw/cnxk_bphy/rte_pmd_bphy.h b/drivers/raw/cnxk_bphy/rte_pmd_bphy.h index 0737964149..d459c3a862 100644 --- a/drivers/raw/cnxk_bphy/rte_pmd_bphy.h +++ b/drivers/raw/cnxk_bphy/rte_pmd_bphy.h @@ -18,6 +18,7 @@ enum cnxk_bphy_cgx_msg_type { CNXK_BPHY_CGX_MSG_TYPE_START_RXTX, CNXK_BPHY_CGX_MSG_TYPE_STOP_RXTX, CNXK_BPHY_CGX_MSG_TYPE_GET_SUPPORTED_FEC, + CNXK_BPHY_CGX_MSG_TYPE_SET_FEC, }; enum cnxk_bphy_cgx_eth_link_speed {