From patchwork Tue Sep 26 02:49:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 131902 X-Patchwork-Delegate: ferruh.yigit@amd.com 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 6C5324263C; Tue, 26 Sep 2023 04:50:58 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 47A46402E7; Tue, 26 Sep 2023 04:50:38 +0200 (CEST) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2109.outbound.protection.outlook.com [40.107.243.109]) by mails.dpdk.org (Postfix) with ESMTP id 220D0402CF for ; Tue, 26 Sep 2023 04:50:36 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cclVXez0Xdm1rKwVo2T1X01zbY94kqyzaGKpLElAnlyZ2XzGGIObgpF8tdbKNghp+AtIe5uF2ZAfDto7O8v6n6oE1+c2IxHE9AcD9Z6tcpox5lE8VoDj+LciT9nE07yTe/UjX2T9Qux5tSmC/pY1koXP/yLqJEXg1RsTkmxYAb1fTCU6q8UEt4WaydVJsjDveypEv3cb8gqoMhes5cvq4IReYrJ0/oFVcBGGWsPox4Qjgy+6Y7XRiUJfd6mOmx6Ht6+StrGM2ea/FK/qGy0ttvEm24kvmYOOMFbbAp55f1GzcI57LJgCBRPEdEkob9V7wSfa8tdIK80/lv6TXo/PdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=NhkER6wdfzk+E1+OhT2DC5KbrJ+a5GgYCLZBblWA3rU=; b=AyxmC5VnZwoJgOxTHKHyvYOxKTaiB1PZkF8hVFAJjTzw53cB4Dp05KPnDH4nxeb3L4pIg+92cEu9lVXVDP83kSEY/6lTbkRx94+b7SdvBCJUv9baYPPF/ko1+zdxrNRYN9OtFRPCYGBNs+WGJwJv18gwqohISp41ZTWr1X1d1jC3hbO3BY/tJuIjonJqvmBXl1jXJ5mMxbp1PTj6ds0ymLYcUxYPUbJgAKkb1YcHxEqY+ELSIKcEeqa9CEpKCL8eXwS5X4eWrYR7B5sDokUWanuuIud9tSxVbiSvAnI7+R0teHC0bVSwNSycmUsECGLc7Coh3w0fgNa0NwYZxQB2FA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NhkER6wdfzk+E1+OhT2DC5KbrJ+a5GgYCLZBblWA3rU=; b=STBxgo4Vkbck8rlPXlf2f3tE7EYZsPbKYiXDkT3MnVgzH/O+Z9Zz34CPD58UYGqbMp5MGO5Qgkrt6Q2IS5JsHKG6gEW0Wus3erKW3a58no97lFED+4fHWoYK37bUhXqZDFwRevC6kv7UZwTAfcSVWS20KuCl6aHrSWBlZggTcWA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from PH0PR13MB5568.namprd13.prod.outlook.com (2603:10b6:510:12b::16) by SA3PR13MB6516.namprd13.prod.outlook.com (2603:10b6:806:39c::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.27; Tue, 26 Sep 2023 02:50:34 +0000 Received: from PH0PR13MB5568.namprd13.prod.outlook.com ([fe80::b070:92e1:931e:fee7]) by PH0PR13MB5568.namprd13.prod.outlook.com ([fe80::b070:92e1:931e:fee7%4]) with mapi id 15.20.6792.026; Tue, 26 Sep 2023 02:50:34 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Shihong Wang , Chang Miao , Chaoyong He Subject: [PATCH v2 03/10] net/nfp: add mailbox to support IPsec offload Date: Tue, 26 Sep 2023 10:49:52 +0800 Message-Id: <20230926024959.207098-4-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230926024959.207098-1-chaoyong.he@corigine.com> References: <20230925060644.1458598-1-chaoyong.he@corigine.com> <20230926024959.207098-1-chaoyong.he@corigine.com> X-ClientProxiedBy: BYAPR05CA0020.namprd05.prod.outlook.com (2603:10b6:a03:c0::33) To PH0PR13MB5568.namprd13.prod.outlook.com (2603:10b6:510:12b::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR13MB5568:EE_|SA3PR13MB6516:EE_ X-MS-Office365-Filtering-Correlation-Id: 788c8150-226a-4f83-2704-08dbbe3b5b1f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: sMjAKwsR6JmU0hyWHzewECAwTKKpT5aa5YVdQezz9sPKfoE6Jn6Pk67Blx+0AW+2lunP+7Av87vWf8/GU+KYGxBOjljY3/6hD00E359zPXcFRI/wjMD3o/vSniUK5mpBLpWCKlpBfX2tj3wr9mUNCcFBOpRKg8xt+hWBLHBZTg3KzG1VAmy+z4Zj4gXCI6L5gy1bHlpk7foAUeaaJkNeMyZ+RYesfQWjzWAgcu5z7Lda4HFXTKNVP6wsEnJgIrEVdWrzAQGGvjNllTNCHA2f4HdCAK1iIm5X3qg11qg5Kv/o7m+vcFDt+KUqCnYUpZK2l0WMQex3aWvVElWj/ieIbeMwZYyyGdLPcCQaa8WfYeBYtZBk46IFClnzS/6CdG0MXayOQivZylHy/zWgN7m2is2w5TAZA8caHFLsNSB6q6phEejexPe1H7E0IjaL1jytxnlaubUk9h6tuTeNEPuRSUtXs/khJ7lgRMnv20TVVZs3bKjJZRDoN4tKzz5/7sT297DA8VEIQIDln1IJQ3x0hWyyFC4u3LM02NkK7HyROGvGnfhKcaHeu5kHnNXd8GKFqNhtiey3RJdVlXauCXqJmKXVoK4jX0M3RiRuKiRAu8M1FWroFSvJXG3dhb1kMuVWcj8xOBN9jGEYeHKpbGaPb80y0su5L3o+5mnwt0b41y4= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR13MB5568.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(39830400003)(136003)(366004)(346002)(396003)(376002)(230922051799003)(1800799009)(451199024)(186009)(4326008)(83380400001)(2616005)(6486002)(6506007)(52116002)(478600001)(6666004)(86362001)(36756003)(38100700002)(1076003)(26005)(66476007)(8936002)(66556008)(6916009)(6512007)(2906002)(15650500001)(38350700002)(66946007)(41300700001)(107886003)(316002)(44832011)(8676002)(5660300002)(54906003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: dYwIGal6aiOU6trAdvSTBKHLJq5hrFJl4eDu4D/XkLp9vWnt5qw5UB6ftm0gIrEYPoR65R2H0n+7hKtNlMD+fyzuY6jKULNGCsFbbofH2JEGQ/WLZ5BrGvpgzrx4c7mXJFKOSq2wsTNlCozaEYUywOLAeQVlMk6b3znd/KAD95LU1IJ9i2P6+PSARYJPTeeW011o38Re7bufRex135HGicSJJEZ2PQUyIg+iDauud6WfTUH85yUNEowo5fZCwB9aWEvT0ft6ZfmVVZ8CDomOpLk9c7KdIiBW2H4z5igzBeTqGTq7NVmH6pt19Yc0Vun/+dulLxMdvEfN86plQ724iyN6RzzbLHj/WbcwDU7GNWEeSlJEulKIQIvFwNOlYWLubm2CRboBkbHd/0ZWz0qkH2SJWBPuc2f44Et3+GM5HSF0Gt3ccJbLRN1pkXg6HMjFd0o8AsTBFcpzIOXo3M3it5yaKWzlRYwKMnQ0oGWlqfd1feWelYXG+BvqulWvym9hC9t46DyM9XWl/Rd8rfKhG8ieabCB0F+I3B/bh5pM2xc/6+X/MNJvbg5sMalHtA77NxMQkX0y3xWGgjz3HDiqX97ABs6kurbcJrL8wTw79x+X6ei0v9MPwdSqc9zg4EX6md6KXQwMOweZX4p0qsz3k9QJ1ar8M0Gf1y/MojxsQlYyouhP3LAzUJa71jFJ7jSWrTatb6jd6ZMD5oZXNHLyQmYnVUHIjO7MDevGF6DgWWvWFUaciqWoE3yYfcTwfyTfoO25b2nv3rGwZvqwPEx0nIjudZnNKOHpJQOpJwzJbFoQnJXIdTC0Kzw/mAOB7DziS2XGtjVKZgorhX54hIt5fYOOMFPAWfEYQgUgIp4bK7IztFRtRSK2i3S8ZAEdJKeki8t57N1d627wN2jSJrqlirT4zBBcJNbJeHphTM8n6xm6v2d+rhn7W5YZge7ykkhsOvgEchjiF792snEJM5oJOcefr2axUPTpFli2lkYy0a/S5N8GWxp1fTBrHu5YBaiT997t+7gdZwcgZTJlodmmEBMdoLy/oxEVTVZCdOOXkRANvnmjSGm6R4XOwRtU+3hkIeE0J0C5G4jwgAPLy19NPfg6VF5g3iORUXQ9sCmpDkWTUep/JrnzOdK0g1pPi7uQPGx33GRvLiwEMW5l3TQrR/JaUCZAiv1W8zpBijRURvp+IOuT8Yq3wEyZ3cR4jmt9tyzkxP50+i469Y2pv14D4/+Q412fvt7FUVHf8luxPm/DWintz4qFQnNln0/nV7hboownkd7ZIVkOUm+oNIP/5Qwe+mfoY5iQkNVUMcHsf610AZyy/l2naM9gZSot6RgaGFvSE120VMiYtTbvFNZp1ASZkuqgRARfAP1fbJqBQLDb0nt6Y8Q7ovwYcCVOlHDa5T6QmzpVtAw4cKvqlSXG4DWTrk8ZqK/a/fMFZZFo6Z8kn244lF2Qu6P0KGQVsGkjlBy6PAzLvNqREVg/M2a/YnD7a53S12SPZJWt02aTlrAD4wcqEUfP9fJNLQkg1sI/05cixn4dSLsAuSlTHFM7KArmCAziyi4C9AxqqoFjGjm6mWmYfOX3P3rsRT8XutkuPVDrTyBBHqA9ma+BtbPDLQ== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 788c8150-226a-4f83-2704-08dbbe3b5b1f X-MS-Exchange-CrossTenant-AuthSource: PH0PR13MB5568.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Sep 2023 02:50:34.7129 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4wrp3bvHaGYwSuxOegaLvIapkP9s1bE90uXDaBE7Lbc5ZPYRbqmsEsLT1R5CBlKrdYTGGSOcfxNuAhdQhc/brk6K7ltyPNknczK5xyjTYVo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR13MB6516 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 From: Shihong Wang Add general use per-vNIC mailbox area and use it for IPsec SA offload support and get Rx/Tx packet statistics. Signed-off-by: Shihong Wang Signed-off-by: Chang Miao Reviewed-by: Chaoyong He --- drivers/net/nfp/nfp_common.c | 41 ++++++++++++++++++++++++++++++++++++ drivers/net/nfp/nfp_common.h | 1 + drivers/net/nfp/nfp_ctrl.h | 6 ++++++ 3 files changed, 48 insertions(+) diff --git a/drivers/net/nfp/nfp_common.c b/drivers/net/nfp/nfp_common.c index 40027dbdfc..31dab3ae9b 100644 --- a/drivers/net/nfp/nfp_common.c +++ b/drivers/net/nfp/nfp_common.c @@ -320,6 +320,47 @@ nfp_net_ext_reconfig(struct nfp_net_hw *hw, uint32_t ctrl_ext, uint32_t update) return 0; } +/** + * Reconfigure the firmware via the mailbox + * + * @param hw + * Device to reconfigure + * @param mbox_cmd + * The value for the mailbox command + * + * @return + * - (0) if OK to reconfigure by the mailbox. + * - (-EIO) if I/O err and fail to reconfigure by the mailbox + */ +int +nfp_net_mbox_reconfig(struct nfp_net_hw *hw, + uint32_t mbox_cmd) +{ + int ret; + uint32_t mbox; + + mbox = hw->tlv_caps.mbox_off; + + rte_spinlock_lock(&hw->reconfig_lock); + + nn_cfg_writeq(hw, mbox + NFP_NET_CFG_MBOX_SIMPLE_CMD, mbox_cmd); + nn_cfg_writel(hw, NFP_NET_CFG_UPDATE, NFP_NET_CFG_UPDATE_MBOX); + + rte_wmb(); + + ret = __nfp_net_reconfig(hw, NFP_NET_CFG_UPDATE_MBOX); + + rte_spinlock_unlock(&hw->reconfig_lock); + + if (ret != 0) { + PMD_DRV_LOG(ERR, "Error nft net mailbox reconfig: mbox=%#08x update=%#08x", + mbox_cmd, NFP_NET_CFG_UPDATE_MBOX); + return -EIO; + } + + return nn_cfg_readl(hw, mbox + NFP_NET_CFG_MBOX_SIMPLE_RET); +} + /* * Configure an Ethernet device. This function must be invoked first * before any other function in the Ethernet API. This function can diff --git a/drivers/net/nfp/nfp_common.h b/drivers/net/nfp/nfp_common.h index 4a19c18466..64f0af94c1 100644 --- a/drivers/net/nfp/nfp_common.h +++ b/drivers/net/nfp/nfp_common.h @@ -335,6 +335,7 @@ nfp_qcp_queue_offset(const struct nfp_dev_info *dev_info, /* Prototypes for common NFP functions */ int nfp_net_reconfig(struct nfp_net_hw *hw, uint32_t ctrl, uint32_t update); int nfp_net_ext_reconfig(struct nfp_net_hw *hw, uint32_t ctrl_ext, uint32_t update); +int nfp_net_mbox_reconfig(struct nfp_net_hw *hw, uint32_t mbox_cmd); int nfp_net_configure(struct rte_eth_dev *dev); int nfp_net_common_init(struct rte_pci_device *pci_dev, struct nfp_net_hw *hw); void nfp_net_log_device_information(const struct nfp_net_hw *hw); diff --git a/drivers/net/nfp/nfp_ctrl.h b/drivers/net/nfp/nfp_ctrl.h index 80a4196bea..d539846d02 100644 --- a/drivers/net/nfp/nfp_ctrl.h +++ b/drivers/net/nfp/nfp_ctrl.h @@ -123,6 +123,7 @@ #define NFP_NET_CFG_UPDATE_IRQMOD (0x1 << 8) /* IRQ mod change */ #define NFP_NET_CFG_UPDATE_VXLAN (0x1 << 9) /* VXLAN port change */ #define NFP_NET_CFG_UPDATE_MACADDR (0x1 << 11) /* MAC address change */ +#define NFP_NET_CFG_UPDATE_MBOX (0x1 << 12) /**< Mailbox update */ #define NFP_NET_CFG_UPDATE_ERR (0x1U << 31) /* A error occurred */ #define NFP_NET_CFG_TXRS_ENABLE 0x0008 #define NFP_NET_CFG_RXRS_ENABLE 0x0010 @@ -447,6 +448,11 @@ struct nfp_net_fw_ver { #define NFP_NET_CFG_MBOX_BASE 0x1800 #define NFP_NET_CFG_MBOX_VAL 0x1808 #define NFP_NET_CFG_MBOX_VAL_MAX_SZ 0x1F8 +#define NFP_NET_CFG_MBOX_SIMPLE_CMD 0x0 +#define NFP_NET_CFG_MBOX_SIMPLE_RET 0x4 +#define NFP_NET_CFG_MBOX_SIMPLE_VAL 0x8 + +#define NFP_NET_CFG_MBOX_CMD_IPSEC 3 /* * TLV capabilities