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 94D04A04DD; Tue, 20 Oct 2020 11:21:28 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 84A17C856; Tue, 20 Oct 2020 11:14:25 +0200 (CEST) Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [148.163.129.52]) by dpdk.org (Postfix) with ESMTP id 73BE5C7EC for ; Tue, 20 Oct 2020 11:14:07 +0200 (CEST) Received: from mx1-us1.ppe-hosted.com (unknown [10.7.65.64]) by dispatch1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTP id 019306007B for ; Tue, 20 Oct 2020 09:14:06 +0000 (UTC) Received: from us4-mdac16-44.ut7.mdlocal (unknown [10.7.64.25]) by mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTP id 00A9F2009B for ; Tue, 20 Oct 2020 09:14:06 +0000 (UTC) X-Virus-Scanned: Proofpoint Essentials engine Received: from mx1-us1.ppe-hosted.com (unknown [10.7.66.41]) by mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTPS id 7F58F22004D for ; Tue, 20 Oct 2020 09:14:05 +0000 (UTC) Received: from webmail.solarflare.com (uk.solarflare.com [193.34.186.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTPS id 334374C0060 for ; Tue, 20 Oct 2020 09:14:05 +0000 (UTC) Received: from ukex01.SolarFlarecom.com (10.17.10.4) by ukex01.SolarFlarecom.com (10.17.10.4) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 20 Oct 2020 10:13:59 +0100 Received: from opal.uk.solarflarecom.com (10.17.10.1) by ukex01.SolarFlarecom.com (10.17.10.4) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Tue, 20 Oct 2020 10:13:59 +0100 Received: from ukv-loginhost.uk.solarflarecom.com (ukv-loginhost.uk.solarflarecom.com [10.17.10.39]) by opal.uk.solarflarecom.com (8.13.8/8.13.8) with ESMTP id 09K9DxZL028312; Tue, 20 Oct 2020 10:13:59 +0100 Received: from ukv-loginhost.uk.solarflarecom.com (localhost [127.0.0.1]) by ukv-loginhost.uk.solarflarecom.com (Postfix) with ESMTP id E2D0A1613BE; Tue, 20 Oct 2020 10:13:58 +0100 (BST) From: Andrew Rybchenko To: CC: Ivan Malov Date: Tue, 20 Oct 2020 10:12:42 +0100 Message-ID: <1603185222-14831-3-git-send-email-arybchenko@solarflare.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1603185222-14831-1-git-send-email-arybchenko@solarflare.com> References: <1603183709-23420-1-git-send-email-arybchenko@solarflare.com> <1603185222-14831-1-git-send-email-arybchenko@solarflare.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-AS-Product-Ver: SMEX-12.5.0.1300-8.6.1012-25736.003 X-TM-AS-Result: No-3.189700-8.000000-10 X-TMASE-MatchedRID: FLoUJm/U+M3IVeuQnVnkwONI3Mct2lzaWw/S0HB7eoNm9YF/kMfubVsl /aNichJzn1jRdwXXFJxlk+8lAsWWM0WSfdP0PEqZnFVnNmvv47tLXPA26IG0hN9RlPzeVuQQk4Z Foyo7DXj5ZsqO5ZgLGfZQEJE/IcGkKBrAiA/1x+VlpwNsTvdlKdxWLypmYlZzwCTIeJgMBBsqYJ zZpmg4uEdmWxcr+6zRuC2c3pw4Rj8fE8yM4pjsDwtuKBGekqUpm+MB6kaZ2g5qv9PWBGeyEpw+e N+dP0Z1qY1XYzJyk9/ABZBg3rnX3ReR30l28EAf8dtXG167hkt5xA6DQh0dZynF4zf9ILSuT5Ge gwhIlUnkA8OrYHdwDGfYlY/yoV/0Up6EHOb2+c7kHZDO53QSwuPlwCWV27Nr X-TM-AS-User-Approved-Sender: Yes X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10-3.189700-8.000000 X-TMASE-Version: SMEX-12.5.0.1300-8.6.1012-25736.003 X-MDID: 1603185246-rZ5K9fQG30IX X-PPE-DISP: 1603185246;rZ5K9fQG30IX Subject: [dpdk-dev] [PATCH v2 02/62] common/sfc_efx/base: indicate support for MAE 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" From: Ivan Malov Riverhead boards maintain support for MAE, a low-level Match-Action Engine. The feature is documented in SF-122526-TC. The new field will help client drivers to test NIC support for MAE status. Signed-off-by: Ivan Malov Signed-off-by: Andrew Rybchenko Reviewed-by: Andy Moreton --- drivers/common/sfc_efx/base/ef10_nic.c | 15 +++++++++++++++ drivers/common/sfc_efx/base/efx.h | 2 ++ drivers/common/sfc_efx/base/efx_check.h | 6 ++++++ drivers/common/sfc_efx/base/siena_nic.c | 2 ++ drivers/common/sfc_efx/efsys.h | 2 ++ 5 files changed, 27 insertions(+) diff --git a/drivers/common/sfc_efx/base/ef10_nic.c b/drivers/common/sfc_efx/base/ef10_nic.c index df7db6a803..68414d9fa9 100644 --- a/drivers/common/sfc_efx/base/ef10_nic.c +++ b/drivers/common/sfc_efx/base/ef10_nic.c @@ -1421,8 +1421,23 @@ ef10_get_datapath_caps( else encp->enc_filter_action_mark_max = 0; +#if EFSYS_OPT_MAE + /* + * Indicate support for MAE. + * MAE is supported by Riverhead boards starting with R2, + * and it is required that FW is built with MAE support, too. + */ + if (CAP_FLAGS3(req, MAE_SUPPORTED)) + encp->enc_mae_supported = B_TRUE; + else + encp->enc_mae_supported = B_FALSE; +#else + encp->enc_mae_supported = B_FALSE; +#endif /* EFSYS_OPT_MAE */ + #undef CAP_FLAGS1 #undef CAP_FLAGS2 +#undef CAP_FLAGS3 return (0); diff --git a/drivers/common/sfc_efx/base/efx.h b/drivers/common/sfc_efx/base/efx.h index bd1ac303b1..9947882d26 100644 --- a/drivers/common/sfc_efx/base/efx.h +++ b/drivers/common/sfc_efx/base/efx.h @@ -1593,6 +1593,8 @@ typedef struct efx_nic_cfg_s { uint32_t enc_mac_stats_nstats; boolean_t enc_fec_counters; boolean_t enc_hlb_counters; + /* NIC support for Match-Action Engine (MAE). */ + boolean_t enc_mae_supported; /* Firmware support for "FLAG" and "MARK" filter actions */ boolean_t enc_filter_action_flag_supported; boolean_t enc_filter_action_mark_supported; diff --git a/drivers/common/sfc_efx/base/efx_check.h b/drivers/common/sfc_efx/base/efx_check.h index 8f42d87a04..078e5b9811 100644 --- a/drivers/common/sfc_efx/base/efx_check.h +++ b/drivers/common/sfc_efx/base/efx_check.h @@ -401,4 +401,10 @@ # endif #endif /* EFSYS_OPT_DESC_PROXY */ +#if EFSYS_OPT_MAE +# if !EFSYS_OPT_RIVERHEAD +# error "MAE requires RIVERHEAD" +# endif +#endif /* EFSYS_OPT_MAE */ + #endif /* _SYS_EFX_CHECK_H */ diff --git a/drivers/common/sfc_efx/base/siena_nic.c b/drivers/common/sfc_efx/base/siena_nic.c index 4137c1e245..e2af0ff3dc 100644 --- a/drivers/common/sfc_efx/base/siena_nic.c +++ b/drivers/common/sfc_efx/base/siena_nic.c @@ -196,6 +196,8 @@ siena_board_cfg( encp->enc_filter_action_mark_supported = B_FALSE; encp->enc_filter_action_mark_max = 0; + encp->enc_mae_supported = B_FALSE; + return (0); fail2: diff --git a/drivers/common/sfc_efx/efsys.h b/drivers/common/sfc_efx/efsys.h index f7d5f8a060..8636e73b68 100644 --- a/drivers/common/sfc_efx/efsys.h +++ b/drivers/common/sfc_efx/efsys.h @@ -167,6 +167,8 @@ prefetch_read_once(const volatile void *addr) #define EFSYS_OPT_DESC_PROXY 0 +#define EFSYS_OPT_MAE 0 + /* ID */ typedef struct __efsys_identifier_s efsys_identifier_t; -- 2.17.1