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 665D245A68; Tue, 22 Oct 2024 20:28:55 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5727A4029B; Tue, 22 Oct 2024 20:28:55 +0200 (CEST) Received: from egress-ip11a.ess.de.barracuda.com (egress-ip11a.ess.de.barracuda.com [18.184.203.234]) by mails.dpdk.org (Postfix) with ESMTP id E2CB040272 for ; Tue, 22 Oct 2024 20:28:51 +0200 (CEST) Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02lp2043.outbound.protection.outlook.com [104.47.11.43]) by mx-outbound15-54.eu-central-1a.ess.aws.cudaops.com (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 22 Oct 2024 18:28:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LOsX/DVKg7jQ/ZCL3PBjcg53TtU2DhDuDG1ROa+DoqIPg/CMvTojuSL9yz63t3k9wj1ogp9Ta8SsrIJ8TaaOdNEUB0hwe9Hk2CKhzl3PfzZIzPchCsc8v5k9aig0c77wq8ZQtcdlTuT7/3ksVx6MeE/zw4MaVx15BHxK9TWOXDaj6Hcfp+J1qHyfUqACw/Wla9JM171k2m/jl0e/dYyNedf5VWdzDWZSWdL7QmsIuMSESomWZFPn5utPZ3LgvccA3p9frR+ZlxmEUJfAi0xoPn8KVCVRGCZRCajxcx7SG+uFaaxhOPKVQNVHlquC3W4tMPN8/ZwL3gDcqwQeQBdQQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=UeQ6Wt7Nlb+v70USlrisDhMZzqaHjeWleB73pXIzkPI=; b=pppAoHzG2ujU1XIId8irw12Xqn8+k0Wl8nYgFPycL74J2XLH7/DO8q23DktoIw3oWj7mINaxK/elNlgdoZIUQvAG1Q2PzTio2/Qx666uGSUuzXD+zbutCRHGGOJt6u9wu5IG/7SwBb3IaEDaWZHw1nuxub5nMJq8+bpGWq5/QN9rEjjLWy8Un0Lg81nkt4GThBr+MyY2dQySPQzWE+EYjqQPl78z3T5BI1QQ1APxNIh/BJZPBxtR5ACDsc0klKC+1MUQVeII1aOUJwasa1rk553ssLAeKokE5b8nT6VPebNNsy1Cq6TIE4ACDcLcEzMy757qT/iiXggDKPpC9lGmNg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 178.72.21.4) smtp.rcpttodomain=dpdk.org smtp.mailfrom=napatech.com; dmarc=fail (p=reject sp=reject pct=100) action=oreject header.from=napatech.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=napatech.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UeQ6Wt7Nlb+v70USlrisDhMZzqaHjeWleB73pXIzkPI=; b=RJx50I71J2D9ggtTytXSy131eQ+wFOGszmpwNUSfMRfZbACHzTrX2u/7L6pVwH/UKdc4yVcyf119xrqCXMzxnkYwWFofspXKKii6rXnC6w5Dk+yH1RM1z2GBZasiystiOcuNI0xbSqDD/8v1U1Jd9cFyY/qKf9V1ZJndDuhZyKU= Received: from DB9PR06CA0012.eurprd06.prod.outlook.com (2603:10a6:10:1db::17) by AM7P190MB0694.EURP190.PROD.OUTLOOK.COM (2603:10a6:20b:11e::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8069.28; Tue, 22 Oct 2024 16:56:51 +0000 Received: from DU2PEPF0001E9C2.eurprd03.prod.outlook.com (2603:10a6:10:1db:cafe::12) by DB9PR06CA0012.outlook.office365.com (2603:10a6:10:1db::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8093.16 via Frontend Transport; Tue, 22 Oct 2024 16:56:51 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 178.72.21.4) smtp.mailfrom=napatech.com; dkim=none (message not signed) header.d=none;dmarc=fail action=oreject header.from=napatech.com; Received-SPF: Fail (protection.outlook.com: domain of napatech.com does not designate 178.72.21.4 as permitted sender) receiver=protection.outlook.com; client-ip=178.72.21.4; helo=localhost.localdomain; Received: from localhost.localdomain (178.72.21.4) by DU2PEPF0001E9C2.mail.protection.outlook.com (10.167.8.71) with Microsoft SMTP Server id 15.20.8093.14 via Frontend Transport; Tue, 22 Oct 2024 16:56:50 +0000 From: Serhii Iliushyk To: dev@dpdk.org Cc: mko-plv@napatech.com, sil-plv@napatech.com, ckm@napatech.com, andrew.rybchenko@oktetlabs.ru, ferruh.yigit@amd.com, stephen@networkplumber.org, Oleksandr Kolomeiets Subject: [PATCH v2 49/73] net/ntnic: add Tx CPY module Date: Tue, 22 Oct 2024 18:55:06 +0200 Message-ID: <20241022165541.3186140-50-sil-plv@napatech.com> X-Mailer: git-send-email 2.45.0 In-Reply-To: <20241022165541.3186140-1-sil-plv@napatech.com> References: <20241021210527.2075431-1-sil-plv@napatech.com> <20241022165541.3186140-1-sil-plv@napatech.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PEPF0001E9C2:EE_|AM7P190MB0694:EE_ Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: eff70087-42d0-4990-60a1-08dcf2ba865f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|36860700013|376014|82310400026|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?q0YeL2OoPm/JmRNxrokw8rrqd/ejCww0nwC6bXEHUTVjLGi6eSlVqj7IB/6O?= =?us-ascii?Q?wl0CZG2kaK1963akdVgQrm8G9agzVb2LG5GN3bZF4artQvQdMo/GVHgdp3/X?= =?us-ascii?Q?RFKHMnupME4ss8HBBydQV+QC5WOhSco6NmffY7r/+iQp+dZGXRfLaXHeDNJX?= =?us-ascii?Q?Ebyz5cc3msyQ/Yr3FEUwBP/hohmCE4dl+UVZIOIVa4rQRzkTPTOvUmVMX2aT?= =?us-ascii?Q?Pbf2OJdusduX6qWkbVKL+0nafPwNKU4EkLCTVWYykEw9W6lhhPPN2pGe3a8d?= =?us-ascii?Q?DHtJ8byFGpnp1fMPlc/AGrw7yLOpWx6R2KupX39ATq3t0f0ewaTI/dFWRzMi?= =?us-ascii?Q?gHqSuDT2/Fm4SC/rDZmJi3jpiO2wwRS69ud0VWGXpoGa5c/PyGBKtMMbMxIz?= =?us-ascii?Q?XJs5/43++V1Im/t8ebumvyhXBvteIJ2Ckz2wFpHNCtmtN2nDI2/tgGCofD8o?= =?us-ascii?Q?If6nTZfINo1kJQrU/70t21yHL2tJpKsYoOGp5xzX4ZDHbDjUT90/b7Kl4Lpn?= =?us-ascii?Q?6kN4DqAQTnwjmsF1y5x75gq6HtN6dVMLQEJ9Y316zrJXt4MzbkA11GK+uO5B?= =?us-ascii?Q?Z4JZsTLYQboE85M+3ih17MMdH0Le6xRTvM2t0MeoyivVfj1rP+SEtXh8qoSs?= =?us-ascii?Q?bfmX0KAi8XEzr0IXrdlog46Q8a8Y2Ycv/tmbbRAUOjOhGPmZBsUSfdIxdEi7?= =?us-ascii?Q?/lPZENh+AoIMFAX61BNU7E8o8TlXHGh4fd6aBmn0Egl+sSVMC6k6xGVqiSOI?= =?us-ascii?Q?bH/YMl5UKDavfRc4ZdjQpdYIDdPdSyWT/1BB4holT2+tApcimVF8MTXV6QPr?= =?us-ascii?Q?Seq9a2GEtBJV0kW5P0J0sOqZCmoTqee8r/QoeyaFwtOXqC7U7OozJtn6ron5?= =?us-ascii?Q?H5FoM/pSHBA+BbKH1Kt3YQ6yovtumX3LsT03hBMOMg2NoS7MOywJ05PzP8u6?= =?us-ascii?Q?/JZdWhJiPgTeSgQhvXLePo+7hyBGn66Eb0Bijgz36p0TAMG5z4eeC/IM0Hqf?= =?us-ascii?Q?HkBqvlXb6CQgPEqvolNm86mIX6gyh6xrEmeYTKwGEfl4f+bikJgByGcDy45B?= =?us-ascii?Q?nKmk+7m/OicL/LwwcQ5ZPSuGS3fXHK3e17QMdUUuTP9tjVR6NheS4w5YYhwr?= =?us-ascii?Q?a2SGiQ6b0CmpdhJvyzLLJeV4nAQAU7G3VDuLs31rOHYWxmb/Ts8uB4yKYwdE?= =?us-ascii?Q?BHSTG0TBRGfox7K5ArQdct6E73Il4gRzKPMdxMprx2dki5Gn6Wn9EXnDk6b7?= =?us-ascii?Q?0V+Jg0q+P7GUdLlvLpVDfiWM9DyuRA+F7u3AcYDtIJykWODayJmZb0YFufxD?= =?us-ascii?Q?2W+7/PAe26i1rhsGhbGQAugVbdZy8xTRTF6IwVQ+Kg/Eq4lECDRlfpl26tav?= =?us-ascii?Q?pRh4Dn0TbZgB+NUT+x93RclT3GGuG8hUVSz9YnvcOs+4aYwZIA=3D=3D?= X-Forefront-Antispam-Report: CIP:178.72.21.4; CTRY:DK; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:localhost.localdomain; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: IFbHtJeI0dpso+R+nkdoLrxHOMWzNqw6kNhJWs7Hv18YcXJFifvSkkX3bR4Xn3qXL+6BOZ8xhf+nJG8I5ftzLo5cdpN5tDYRZmGYyHyLOQ+NL1KZyLMSZ/9kqCGYP/OUbGePEgUzjQutIpx3AaJW91ctfVtcafNFZau2fktFnBsBFzN9U85cZ74Q2nCx9vCQKnQ99a2zUai9vy+5OVb6o5+prnOUAX0V3LtI+uLhPWTs+HdWMqLR3xvzyaPXua5B2LCyQ7MtUf1Uvr0xjCeXUMvnXdRpPV/G7tCCKCWLjIlWYGfGVCSms1E8C9a3lpLVMJowNGW/vG77Gdr22ICUvstsE2EdVUk/MWNsUN6AAhtNNRqfn3DocZzmucp/HNJALmhnH5ZTgP7NxdLPrG3e60SId3ESvZHYj9ViNYGmnOQNPkrhywUZhFmv+LBcZyfdP3lkjnP3VJ0OL02a34pqAgfmgqcKjfUtnsZu71HAEeIkFHeSUMli/QSFc5jcURzW9s2s+XZ8+ftE+AAkh4NevXjmVQuadxzYO81OXvv+zsRmBeMu6LdbsnNMkRSnw2tuzc6eo8UlWB1tSZqujTA0IhlJokSbi5GIcb2kbilwzanp86x0pQ9bjjwkQisRqhHJp7KlOTS6SYcLFHU3HWK7/6HbKJhL/I0a9U6iBX3VnzY= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Oct 2024 16:56:50.7472 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: eff70087-42d0-4990-60a1-08dcf2ba865f X-MS-Exchange-CrossTenant-Id: c4540d0b-728a-4233-9da5-9ea30c7ec3ed X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c4540d0b-728a-4233-9da5-9ea30c7ec3ed; Ip=[178.72.21.4]; Helo=[localhost.localdomain] X-MS-Exchange-CrossTenant-AuthSource: DU2PEPF0001E9C2.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7P190MB0694 X-OriginatorOrg: napatech.com X-BESS-ID: 1729621730-303894-12660-17478-1 X-BESS-VER: 2019.1_20241018.1852 X-BESS-Apparent-Source-IP: 104.47.11.43 X-BESS-Parts: H4sIAAAAAAACA4uuVkqtKFGyUioBkjpK+cVKVoYGBmYmQGYGUDQ1Oc0iJTUt1c ggyczIwNQgOTnVItHc1Nw00dLM0MDYWKk2FgC7oYpCQgAAAA== X-BESS-Outbound-Spam-Score: 0.00 X-BESS-Outbound-Spam-Report: Code version 3.2, rules version 3.2.2.259903 [from cloudscan10-0.eu-central-1a.ess.aws.cudaops.com] Rule breakdown below pts rule name description ---- ---------------------- -------------------------------- 0.00 BSF_BESS_OUTBOUND META: BESS Outbound X-BESS-Outbound-Spam-Status: SCORE=0.00 using account:ESS113687 scores of KILL_LEVEL=7.0 tests=BSF_BESS_OUTBOUND X-BESS-BRTS-Status: 1 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: Oleksandr Kolomeiets The TX Copy module writes data to packet fields based on the lookup performed by the FLM module. This is used for NAT and can support other actions based on the RTE action MODIFY_FIELD. Signed-off-by: Oleksandr Kolomeiets --- .../supported/nthw_fpga_9563_055_049_0000.c | 204 +++++++++++++++++- .../ntnic/nthw/supported/nthw_fpga_mod_defs.h | 3 +- 2 files changed, 205 insertions(+), 2 deletions(-) diff --git a/drivers/net/ntnic/nthw/supported/nthw_fpga_9563_055_049_0000.c b/drivers/net/ntnic/nthw/supported/nthw_fpga_9563_055_049_0000.c index 0f69f89527..60fd748ea2 100644 --- a/drivers/net/ntnic/nthw/supported/nthw_fpga_9563_055_049_0000.c +++ b/drivers/net/ntnic/nthw/supported/nthw_fpga_9563_055_049_0000.c @@ -270,6 +270,207 @@ static nthw_fpga_register_init_s cat_registers[] = { { CAT_RCK_DATA, 3, 32, NTHW_FPGA_REG_TYPE_WO, 0, 32, cat_rck_data_fields }, }; +static nthw_fpga_field_init_s cpy_packet_reader0_ctrl_fields[] = { + { CPY_PACKET_READER0_CTRL_ADR, 4, 0, 0x0000 }, + { CPY_PACKET_READER0_CTRL_CNT, 16, 16, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_packet_reader0_data_fields[] = { + { CPY_PACKET_READER0_DATA_DYN, 5, 10, 0x0000 }, + { CPY_PACKET_READER0_DATA_OFS, 10, 0, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer0_ctrl_fields[] = { + { CPY_WRITER0_CTRL_ADR, 4, 0, 0x0000 }, + { CPY_WRITER0_CTRL_CNT, 16, 16, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer0_data_fields[] = { + { CPY_WRITER0_DATA_DYN, 5, 17, 0x0000 }, { CPY_WRITER0_DATA_LEN, 5, 22, 0x0000 }, + { CPY_WRITER0_DATA_MASK_POINTER, 4, 27, 0x0000 }, { CPY_WRITER0_DATA_OFS, 14, 3, 0x0000 }, + { CPY_WRITER0_DATA_READER_SELECT, 3, 0, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer0_mask_ctrl_fields[] = { + { CPY_WRITER0_MASK_CTRL_ADR, 4, 0, 0x0000 }, + { CPY_WRITER0_MASK_CTRL_CNT, 16, 16, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer0_mask_data_fields[] = { + { CPY_WRITER0_MASK_DATA_BYTE_MASK, 16, 0, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer1_ctrl_fields[] = { + { CPY_WRITER1_CTRL_ADR, 4, 0, 0x0000 }, + { CPY_WRITER1_CTRL_CNT, 16, 16, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer1_data_fields[] = { + { CPY_WRITER1_DATA_DYN, 5, 17, 0x0000 }, { CPY_WRITER1_DATA_LEN, 5, 22, 0x0000 }, + { CPY_WRITER1_DATA_MASK_POINTER, 4, 27, 0x0000 }, { CPY_WRITER1_DATA_OFS, 14, 3, 0x0000 }, + { CPY_WRITER1_DATA_READER_SELECT, 3, 0, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer1_mask_ctrl_fields[] = { + { CPY_WRITER1_MASK_CTRL_ADR, 4, 0, 0x0000 }, + { CPY_WRITER1_MASK_CTRL_CNT, 16, 16, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer1_mask_data_fields[] = { + { CPY_WRITER1_MASK_DATA_BYTE_MASK, 16, 0, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer2_ctrl_fields[] = { + { CPY_WRITER2_CTRL_ADR, 4, 0, 0x0000 }, + { CPY_WRITER2_CTRL_CNT, 16, 16, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer2_data_fields[] = { + { CPY_WRITER2_DATA_DYN, 5, 17, 0x0000 }, { CPY_WRITER2_DATA_LEN, 5, 22, 0x0000 }, + { CPY_WRITER2_DATA_MASK_POINTER, 4, 27, 0x0000 }, { CPY_WRITER2_DATA_OFS, 14, 3, 0x0000 }, + { CPY_WRITER2_DATA_READER_SELECT, 3, 0, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer2_mask_ctrl_fields[] = { + { CPY_WRITER2_MASK_CTRL_ADR, 4, 0, 0x0000 }, + { CPY_WRITER2_MASK_CTRL_CNT, 16, 16, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer2_mask_data_fields[] = { + { CPY_WRITER2_MASK_DATA_BYTE_MASK, 16, 0, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer3_ctrl_fields[] = { + { CPY_WRITER3_CTRL_ADR, 4, 0, 0x0000 }, + { CPY_WRITER3_CTRL_CNT, 16, 16, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer3_data_fields[] = { + { CPY_WRITER3_DATA_DYN, 5, 17, 0x0000 }, { CPY_WRITER3_DATA_LEN, 5, 22, 0x0000 }, + { CPY_WRITER3_DATA_MASK_POINTER, 4, 27, 0x0000 }, { CPY_WRITER3_DATA_OFS, 14, 3, 0x0000 }, + { CPY_WRITER3_DATA_READER_SELECT, 3, 0, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer3_mask_ctrl_fields[] = { + { CPY_WRITER3_MASK_CTRL_ADR, 4, 0, 0x0000 }, + { CPY_WRITER3_MASK_CTRL_CNT, 16, 16, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer3_mask_data_fields[] = { + { CPY_WRITER3_MASK_DATA_BYTE_MASK, 16, 0, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer4_ctrl_fields[] = { + { CPY_WRITER4_CTRL_ADR, 4, 0, 0x0000 }, + { CPY_WRITER4_CTRL_CNT, 16, 16, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer4_data_fields[] = { + { CPY_WRITER4_DATA_DYN, 5, 17, 0x0000 }, { CPY_WRITER4_DATA_LEN, 5, 22, 0x0000 }, + { CPY_WRITER4_DATA_MASK_POINTER, 4, 27, 0x0000 }, { CPY_WRITER4_DATA_OFS, 14, 3, 0x0000 }, + { CPY_WRITER4_DATA_READER_SELECT, 3, 0, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer4_mask_ctrl_fields[] = { + { CPY_WRITER4_MASK_CTRL_ADR, 4, 0, 0x0000 }, + { CPY_WRITER4_MASK_CTRL_CNT, 16, 16, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer4_mask_data_fields[] = { + { CPY_WRITER4_MASK_DATA_BYTE_MASK, 16, 0, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer5_ctrl_fields[] = { + { CPY_WRITER5_CTRL_ADR, 4, 0, 0x0000 }, + { CPY_WRITER5_CTRL_CNT, 16, 16, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer5_data_fields[] = { + { CPY_WRITER5_DATA_DYN, 5, 17, 0x0000 }, { CPY_WRITER5_DATA_LEN, 5, 22, 0x0000 }, + { CPY_WRITER5_DATA_MASK_POINTER, 4, 27, 0x0000 }, { CPY_WRITER5_DATA_OFS, 14, 3, 0x0000 }, + { CPY_WRITER5_DATA_READER_SELECT, 3, 0, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer5_mask_ctrl_fields[] = { + { CPY_WRITER5_MASK_CTRL_ADR, 4, 0, 0x0000 }, + { CPY_WRITER5_MASK_CTRL_CNT, 16, 16, 0x0000 }, +}; + +static nthw_fpga_field_init_s cpy_writer5_mask_data_fields[] = { + { CPY_WRITER5_MASK_DATA_BYTE_MASK, 16, 0, 0x0000 }, +}; + +static nthw_fpga_register_init_s cpy_registers[] = { + { + CPY_PACKET_READER0_CTRL, 24, 32, NTHW_FPGA_REG_TYPE_WO, 0, 2, + cpy_packet_reader0_ctrl_fields + }, + { + CPY_PACKET_READER0_DATA, 25, 15, NTHW_FPGA_REG_TYPE_WO, 0, 2, + cpy_packet_reader0_data_fields + }, + { CPY_WRITER0_CTRL, 0, 32, NTHW_FPGA_REG_TYPE_WO, 0, 2, cpy_writer0_ctrl_fields }, + { CPY_WRITER0_DATA, 1, 31, NTHW_FPGA_REG_TYPE_WO, 0, 5, cpy_writer0_data_fields }, + { + CPY_WRITER0_MASK_CTRL, 2, 32, NTHW_FPGA_REG_TYPE_WO, 0, 2, + cpy_writer0_mask_ctrl_fields + }, + { + CPY_WRITER0_MASK_DATA, 3, 16, NTHW_FPGA_REG_TYPE_WO, 0, 1, + cpy_writer0_mask_data_fields + }, + { CPY_WRITER1_CTRL, 4, 32, NTHW_FPGA_REG_TYPE_WO, 0, 2, cpy_writer1_ctrl_fields }, + { CPY_WRITER1_DATA, 5, 31, NTHW_FPGA_REG_TYPE_WO, 0, 5, cpy_writer1_data_fields }, + { + CPY_WRITER1_MASK_CTRL, 6, 32, NTHW_FPGA_REG_TYPE_WO, 0, 2, + cpy_writer1_mask_ctrl_fields + }, + { + CPY_WRITER1_MASK_DATA, 7, 16, NTHW_FPGA_REG_TYPE_WO, 0, 1, + cpy_writer1_mask_data_fields + }, + { CPY_WRITER2_CTRL, 8, 32, NTHW_FPGA_REG_TYPE_WO, 0, 2, cpy_writer2_ctrl_fields }, + { CPY_WRITER2_DATA, 9, 31, NTHW_FPGA_REG_TYPE_WO, 0, 5, cpy_writer2_data_fields }, + { + CPY_WRITER2_MASK_CTRL, 10, 32, NTHW_FPGA_REG_TYPE_WO, 0, 2, + cpy_writer2_mask_ctrl_fields + }, + { + CPY_WRITER2_MASK_DATA, 11, 16, NTHW_FPGA_REG_TYPE_WO, 0, 1, + cpy_writer2_mask_data_fields + }, + { CPY_WRITER3_CTRL, 12, 32, NTHW_FPGA_REG_TYPE_WO, 0, 2, cpy_writer3_ctrl_fields }, + { CPY_WRITER3_DATA, 13, 31, NTHW_FPGA_REG_TYPE_WO, 0, 5, cpy_writer3_data_fields }, + { + CPY_WRITER3_MASK_CTRL, 14, 32, NTHW_FPGA_REG_TYPE_WO, 0, 2, + cpy_writer3_mask_ctrl_fields + }, + { + CPY_WRITER3_MASK_DATA, 15, 16, NTHW_FPGA_REG_TYPE_WO, 0, 1, + cpy_writer3_mask_data_fields + }, + { CPY_WRITER4_CTRL, 16, 32, NTHW_FPGA_REG_TYPE_WO, 0, 2, cpy_writer4_ctrl_fields }, + { CPY_WRITER4_DATA, 17, 31, NTHW_FPGA_REG_TYPE_WO, 0, 5, cpy_writer4_data_fields }, + { + CPY_WRITER4_MASK_CTRL, 18, 32, NTHW_FPGA_REG_TYPE_WO, 0, 2, + cpy_writer4_mask_ctrl_fields + }, + { + CPY_WRITER4_MASK_DATA, 19, 16, NTHW_FPGA_REG_TYPE_WO, 0, 1, + cpy_writer4_mask_data_fields + }, + { CPY_WRITER5_CTRL, 20, 32, NTHW_FPGA_REG_TYPE_WO, 0, 2, cpy_writer5_ctrl_fields }, + { CPY_WRITER5_DATA, 21, 31, NTHW_FPGA_REG_TYPE_WO, 0, 5, cpy_writer5_data_fields }, + { + CPY_WRITER5_MASK_CTRL, 22, 32, NTHW_FPGA_REG_TYPE_WO, 0, 2, + cpy_writer5_mask_ctrl_fields + }, + { + CPY_WRITER5_MASK_DATA, 23, 16, NTHW_FPGA_REG_TYPE_WO, 0, 1, + cpy_writer5_mask_data_fields + }, +}; + static nthw_fpga_field_init_s csu_rcp_ctrl_fields[] = { { CSU_RCP_CTRL_ADR, 4, 0, 0x0000 }, { CSU_RCP_CTRL_CNT, 16, 16, 0x0000 }, @@ -2279,6 +2480,7 @@ static nthw_fpga_module_init_s fpga_modules[] = { { MOD_RPP_LR, 0, MOD_RPP_LR, 0, 2, NTHW_FPGA_BUS_TYPE_RAB1, 2304, 4, rpp_lr_registers }, { MOD_RST9563, 0, MOD_RST9563, 0, 5, NTHW_FPGA_BUS_TYPE_RAB0, 1024, 5, rst9563_registers }, { MOD_SLC_LR, 0, MOD_SLC, 0, 2, NTHW_FPGA_BUS_TYPE_RAB1, 2048, 2, slc_registers }, + { MOD_TX_CPY, 0, MOD_CPY, 0, 4, NTHW_FPGA_BUS_TYPE_RAB1, 9216, 26, cpy_registers }, }; static nthw_fpga_prod_param_s product_parameters[] = { @@ -2437,5 +2639,5 @@ static nthw_fpga_prod_param_s product_parameters[] = { }; nthw_fpga_prod_init_s nthw_fpga_9563_055_049_0000 = { - 200, 9563, 55, 49, 0, 0, 1726740521, 152, product_parameters, 32, fpga_modules, + 200, 9563, 55, 49, 0, 0, 1726740521, 152, product_parameters, 33, fpga_modules, }; diff --git a/drivers/net/ntnic/nthw/supported/nthw_fpga_mod_defs.h b/drivers/net/ntnic/nthw/supported/nthw_fpga_mod_defs.h index 865dd6a084..0ab5ae0310 100644 --- a/drivers/net/ntnic/nthw/supported/nthw_fpga_mod_defs.h +++ b/drivers/net/ntnic/nthw/supported/nthw_fpga_mod_defs.h @@ -15,6 +15,7 @@ #define MOD_UNKNOWN (0L)/* Unknown/uninitialized - keep this as the first element */ #define MOD_CAT (0x30b447c2UL) +#define MOD_CPY (0x1ddc186fUL) #define MOD_CSU (0x3f470787UL) #define MOD_DBS (0x80b29727UL) #define MOD_FLM (0xe7ba53a4UL) @@ -46,7 +47,7 @@ #define MOD_TX_CPY (0x60acf217UL) #define MOD_TX_INS (0x59afa100UL) #define MOD_TX_RPL (0x1095dfbbUL) -#define MOD_IDX_COUNT (33) +#define MOD_IDX_COUNT (34) /* aliases - only aliases go below this point */ #endif /* _NTHW_FPGA_MOD_DEFS_H_ */ -- 2.45.0