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 4E9DA45681; Mon, 22 Jul 2024 14:01:00 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1CE7E402F0; Mon, 22 Jul 2024 13:59:39 +0200 (CEST) Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11012009.outbound.protection.outlook.com [52.101.66.9]) by mails.dpdk.org (Postfix) with ESMTP id 11FAC402E7 for ; Mon, 22 Jul 2024 13:59:33 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ir365IM24HstIzpl0bnn3jMUhuwbrHori7t/ROLDCpuTs1OXm0yk0pCuDYy6LTSlQfJaPDSAX64/Ru0OSS8MCWmZ9LHRzh6p2Ic/p5sCkwh+i9mGN1xGtSmiB18NFKqer0xRHgDgXJbR1S6ckMuntcL1StGDWdb95o81uvuxACwwriMLvcMLnpnLV6u8jf0kXu6gEj/TjF6PmyUTP5k+LEdlMGSjsWqPjkGJn96iuU03yMwpxb5SR29dCPObddkRnq3PFDa5x5KGl5GnA0KGuOpq7+EvFQwVa+md/oIcy9TojsZeHzPTd13PA+JN58wc8tA/CKLxWBx4e4y9mEdm+g== 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=PWUoMrkduhZmZKmC2LcLjnnDGF7Cw0n146YYyjYBPBI=; b=rbCPwsTXRN/wWLet3HM+S2Z5ISyhh8rtGeVdtqFseuK7y4DYHKSS9wOw8IgTT8x65M+7rp94HahfbMZWIQa1XG0Xtpq2Yq26AQFv9Q+NgZAx3xbU6d/ogcjU7HDL5ACpijQugCHpfR7lxfnxH7pIqSEp90mzrf+EoX+2S8To/jSWYzLIzb/hqO2iHiBSxvd/Xa8zg9ju/k58qBGreRVA1+fOnue5/M5StHWRlmat+VnJYlC+0YxNTcmLbCbncxMcpfEZh6D36y9S/pqiU3+Ebl2pUndBVnQtHtls/ZwjmTwe9tCiqpGrKt41drmIFYXoKa06jOJ9hg51h7taGQeJGg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PWUoMrkduhZmZKmC2LcLjnnDGF7Cw0n146YYyjYBPBI=; b=Fh3ESwtyUh0TJE2j8mvk/hRHhxF4SDmX4rUbxP5UQ9WhrR6b9JEYBHCKPCcUNxjnlW2RQATqyMgJD7aB4lMe2NDHY73cKWghrVitms5ykanhOuaOEfZSqrLBufcWUD66vadyInJna/7Mjbz7x5ARk51YEx1EdqWFb7v/0zMSLOQ= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AS8SPR01MB0024.eurprd04.prod.outlook.com (2603:10a6:20b:3d0::24) by AM8PR04MB7970.eurprd04.prod.outlook.com (2603:10a6:20b:24f::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.29; Mon, 22 Jul 2024 11:59:31 +0000 Received: from AS8SPR01MB0024.eurprd04.prod.outlook.com ([fe80::c634:479e:8f8a:a325]) by AS8SPR01MB0024.eurprd04.prod.outlook.com ([fe80::c634:479e:8f8a:a325%7]) with mapi id 15.20.7784.017; Mon, 22 Jul 2024 11:59:31 +0000 From: Gagandeep Singh To: dev@dpdk.org, Wathsala Vithanage , Bruce Richardson , Sachin Saxena Subject: [v2 16/30] dma/dpaa: add workaround for ERR050757 Date: Mon, 22 Jul 2024 17:28:29 +0530 Message-Id: <20240722115843.1830105-17-g.singh@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240722115843.1830105-1-g.singh@nxp.com> References: <20240719100126.1150373-1-g.singh@nxp.com> <20240722115843.1830105-1-g.singh@nxp.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SI2PR02CA0025.apcprd02.prod.outlook.com (2603:1096:4:195::21) To AS8SPR01MB0024.eurprd04.prod.outlook.com (2603:10a6:20b:3d0::24) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8SPR01MB0024:EE_|AM8PR04MB7970:EE_ X-MS-Office365-Filtering-Correlation-Id: 2e6fed2e-ea4b-4349-ffc7-08dcaa45beea X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|366016|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?DaSZmKHW+aLQcVXE9cAG/hVaIBZTUvoy9OS4qk5vVy2zX9SXnTHkrAag8b38?= =?us-ascii?Q?2oowRfPhtRRQKisfaGCKGfUtK6GzDxpDOsZTd9YQhKrTosY85nm7IJtz/Gb4?= =?us-ascii?Q?37Izd+v6CSsxt666nU7BxLU/Jcz2JWtFJ1fwRo2L6Y0uyJDfh7TNAzFfIu3f?= =?us-ascii?Q?VfppdbCWNDiMWN813E9j2FBXV8pEEkrC4CJI0irhOnoqAWB2tAgHZe6FVb5z?= =?us-ascii?Q?jYB54QgtffT62iwuVMexeiRhIvSmfNTAMKJdgcyvqQ6mQrlFC6pBPqxxsTlJ?= =?us-ascii?Q?aHdlsMHM1F6J/6x7DD2Bg8jvacRVp8BgR0POfzJPVAP0IOCzpnHbG9GpQtcI?= =?us-ascii?Q?aV54gAMVwcWjH6Q1DYGHE/SGkU0k7WCecAcim/oJANbsdjNxVseglaCmSc/5?= =?us-ascii?Q?kJXyS6NhltDdohdweHqPEFMgjHvbJzcQrD1Dx4HfRp86OU1zsDgCZTG3jG1P?= =?us-ascii?Q?IFPL3rhifRn8inRIEdVLW/N4N172Ir9ISzPRKQDxuROjjs8zpQ69fvrNZlQQ?= =?us-ascii?Q?MME9Jveu8Vnchvp8zcKg7DYh9NoKzQVb0DZE449CPPljdH8OcfmA0udvhCfH?= =?us-ascii?Q?OSEX1d+S+K13enI+RGE2Kua7bRx4QUCCqsWH7Ssyb8j6dSaw5O8NLClkm8ru?= =?us-ascii?Q?FBY4qDmyCpv8lctoO0eTCJOJ9IGwJrXn7ic08oAGq3FieliT/4/HIbmY9xP8?= =?us-ascii?Q?qNN98Nn5PMQLPFBDEJP7mI/clFNASsvNFFE/jq55tJ9b2sH+wtPx4J9o7rcA?= =?us-ascii?Q?NUJKn1ivrWsix/we3GuWW6USmydAbNPkq+Sd9ZUDdpbO54XdsgsJ8tQQrNq7?= =?us-ascii?Q?sKFiKUzwqZGrLzGee3ikJjHvAxkkAYHUSuE8gb10S36D5S/2V+9nIToFxLU6?= =?us-ascii?Q?R2f0w7TYApEluAudwTQUqqQCrsU+WIo2cfs7aYhAVB2GlZRhbsnOJ/4e+PD7?= =?us-ascii?Q?7isMcw5z0sm3Lp7gO7Av2WWmjWzr/Bi/2Yz2yaDe/OZ93qR2LazLipQ7zqMy?= =?us-ascii?Q?kqiMHCclRZTtbw8ZKd2u1CoelbBoX3fdaedrAD8TtpDwYKkdsQbopEn7cix1?= =?us-ascii?Q?yYqx4O+Z0EQUkbiRjFSZo+rnAnigDQw5LnBd4RarUEKqLu14cY+qf7rYMElQ?= =?us-ascii?Q?mvU5YXSNkdNyP8TUCdkLFbVd7NCbCi2lgiXS2h7eO5BOvy1kcHJVGW6xMRgs?= =?us-ascii?Q?Pww+tRPf4VF/MtTO4BThSU9IvEVMCOjI9kW0z7boXR/I/eWVHoGzi9Ax6gH7?= =?us-ascii?Q?bTTW6IMjQoKR7d+ZbUavmcB+EQqG11Oz3h568qfsxcQ4xX51KjJN+7Uq0Em2?= =?us-ascii?Q?bJ6yGTgsGMHpuKG48SQnfHOCR5bbN6H2rpB4KbEyscyhhbfR9t8XDWLLeLIo?= =?us-ascii?Q?ga5ixZhC9fA+I9lVgtty9B2lAdnAzzbV/NrcT6fIBD9ieOsF5A=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8SPR01MB0024.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(52116014)(376014)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Ka3qpMEALr6597FxAtzE8hKHlQckokK+unVJmNWbooExw99ffAWRT6vLDht2?= =?us-ascii?Q?g3dkRBOTEFAbbA79FXlSCXNneZ9dOMXcAos3KEOi/ZuwZXHv9UBWyYV8/nPQ?= =?us-ascii?Q?/nRHDeWdG5nzFQfOagFOazLvH+eRh99ZyufD75iwbwKnrEWGJSTx6H3EkuJw?= =?us-ascii?Q?WReXDckkWY9QD/TYiE9VX1CdnGEWRRFXFWQGSaz1/I/CMA4LYOgM5yijvayx?= =?us-ascii?Q?Zw9YJgKKzGis6dpMNtJmonIC4LuIUcmiTEPnyMMfBmr7bSBHia8ydbruKF5z?= =?us-ascii?Q?XFk+Hiaoc3FaHYWBAGixhS/dycAuduSEkL6+eb1xiBuNltp2uJYP2UUeQ26c?= =?us-ascii?Q?PLqKbmjmnkHemX3JpZM3el4qpa4qI+1f/HnMSSpeHRvNRPGPs/ZjExiEl2JW?= =?us-ascii?Q?XUWOwg3uY+WKdg2FZqd1dvK2mnATl245PhIsOVkfPBAIpbB3JWWvA/Pp1te4?= =?us-ascii?Q?ufJdTkTaZM3fke/BQE1tmz+++ZY7UATzTSm+H/kN+MzBcQfDrKu8QkO9oPw/?= =?us-ascii?Q?csDNntnKt+nO9Gy7VFdfBpdkVJwZaj/idhR8EQbBiP4mudELdJsRW75cN9hZ?= =?us-ascii?Q?6n7F6NcYofpRv0YU8ztemyz/AfWaOs8b8BySyDEqCMyYxIFSk33j/Bvtuyv6?= =?us-ascii?Q?4vhI7a7FSU/CC4m1kjhGQl2efVB7XMWaTY4rDojVAAZptSioMNibmkHmZ6uv?= =?us-ascii?Q?UXobum5jHT+1ZmJdUNgFHgkae1HHHvjYooJ3ZJkyY/YUa0Co9gX1cbiWjRjv?= =?us-ascii?Q?1Md5i/3t8qunzgordwDfSr7YD9ICA3toGpN9Jk3jqaRhVyKuFPJngivRImez?= =?us-ascii?Q?ZseggCb4/iRgiYtdXjn/+nYkTjXlrCY9HCqtpPWsMqkVJMqeJlbdjmDuJQ3d?= =?us-ascii?Q?fsd/FspBw5vy34cMA6ZRmNPzvns6tJnto4sn7P9wCtRBGD0d/Ao8z+0fLWhi?= =?us-ascii?Q?hXn3wXWE9zcBMsXjElFaXpM8uwFtVazxyi2oqUo4DRRLKmSZTHrW/sP96CZC?= =?us-ascii?Q?Fybqu9145yh6Y9eLaYALE+8dtWmKw/8UpFOapU0AaAuGE1kFy1JIspxEFScV?= =?us-ascii?Q?Ts6kM9nnM0qSlKtvs7HoUPBVE8czeaz/PzNOHkWsElG74Ik1n5gMPBOdgC8S?= =?us-ascii?Q?YZ02UbxET9FYVKsdnFBwa3K1OuRs5kHuvz98LYAJi7BxPs1RcHUkRz/DcmSu?= =?us-ascii?Q?LEs5796WpGcEoT+Zl2IOXe3c10Yt0QYkFjlLvPHVXfNfFneCxwGBavhSIW8K?= =?us-ascii?Q?uhp6AwJZqls5+DDioUtaYXyKUQTGTVo2f61oHI3FupBVWXTRea3hTdpe9uDM?= =?us-ascii?Q?UKaSctz9HXiNihQlB9cVMbsoDCZGW1q62saHCbnSM8ppmL70zu3w/iXwAYl9?= =?us-ascii?Q?DWHN/X+OBAaEaQjFRp5tR3pMgx/f3CKLdwrGg2ab5wTHbv/E4ladrFCe9IKW?= =?us-ascii?Q?yQnHYYgLesWaGzIMaH0YmaQ1zRD1M7GaXBPIdL37bfAb4uyoVmTF0j3qSutA?= =?us-ascii?Q?V1oywCNzNc0RNMiYFbYYGonNPHMpa69H2lF8fLYyXWYUqp6pbz9jpCXE/B/I?= =?us-ascii?Q?VXAziW/UlqlLtqB7U/HOkM/w3mmkxXKND41jiEmD?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2e6fed2e-ea4b-4349-ffc7-08dcaa45beea X-MS-Exchange-CrossTenant-AuthSource: AS8SPR01MB0024.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2024 11:59:31.4309 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 84Lf85JYn7DFPEWj2nuTHhBUWsSvkCl0UoagMiRYYKmMzVz2L0ogoP4tAM26EFou X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR04MB7970 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 ERR050757 on LS104x indicates: For outbound PCIe read transactions, a completion buffer is used to store the PCIe completions till the data is passed back to the initiator. At most 16 outstanding transactions are allowed and maximum read request is 256 bytes. The completion buffer size inside the controller needs to be at least 4KB, but the PCIe controller has 3 KB of buffer. In case the size of pending outbound read transactions of more than 3KB, the PCIe controller may drop the incoming completions without notifying the initiator of the transaction, leaving transactions unfinished. All subsequent outbound reads to PCIe are blocked permanently. To avoid qDMA hang as it keeps waiting for data that was silently dropped, set stride mode for qDMA Signed-off-by: Gagandeep Singh --- config/arm/meson.build | 3 ++- doc/guides/dmadevs/dpaa.rst | 2 ++ drivers/dma/dpaa/dpaa_qdma.c | 18 ++++++++++++++++++ drivers/dma/dpaa/dpaa_qdma.h | 5 +++++ 4 files changed, 27 insertions(+), 1 deletion(-) diff --git a/config/arm/meson.build b/config/arm/meson.build index 012935d5d7..f81e466318 100644 --- a/config/arm/meson.build +++ b/config/arm/meson.build @@ -468,7 +468,8 @@ soc_dpaa = { ['RTE_MACHINE', '"dpaa"'], ['RTE_LIBRTE_DPAA2_USE_PHYS_IOVA', false], ['RTE_MAX_LCORE', 16], - ['RTE_MAX_NUMA_NODES', 1] + ['RTE_MAX_NUMA_NODES', 1], + ['RTE_DMA_DPAA_ERRATA_ERR050757', true] ], 'numa': false } diff --git a/doc/guides/dmadevs/dpaa.rst b/doc/guides/dmadevs/dpaa.rst index f99bfc6087..746919ec6b 100644 --- a/doc/guides/dmadevs/dpaa.rst +++ b/doc/guides/dmadevs/dpaa.rst @@ -42,6 +42,8 @@ Compilation For builds using ``meson`` and ``ninja``, the driver will be built when the target platform is dpaa-based. No additional compilation steps are necessary. +- ``RTE_DMA_DPAA_ERRATA_ERR050757`` - enable software workaround for Errata-A050757 + Initialization -------------- diff --git a/drivers/dma/dpaa/dpaa_qdma.c b/drivers/dma/dpaa/dpaa_qdma.c index bb6b54e583..a21279293c 100644 --- a/drivers/dma/dpaa/dpaa_qdma.c +++ b/drivers/dma/dpaa/dpaa_qdma.c @@ -159,6 +159,10 @@ fsl_qdma_comp_fill_memcpy(struct fsl_qdma_comp *fsl_comp, dma_addr_t dst, dma_addr_t src, u32 len) { struct fsl_qdma_format *csgf_src, *csgf_dest; +#ifdef RTE_DMA_DPAA_ERRATA_ERR050757 + struct fsl_qdma_sdf *sdf; + u32 cfg = 0; +#endif /* Note: command table (fsl_comp->virt_addr) is getting filled * directly in cmd descriptors of queues while enqueuing the descriptor @@ -171,6 +175,20 @@ fsl_qdma_comp_fill_memcpy(struct fsl_qdma_comp *fsl_comp, csgf_src = (struct fsl_qdma_format *)fsl_comp->virt_addr + 2; csgf_dest = (struct fsl_qdma_format *)fsl_comp->virt_addr + 3; +#ifdef RTE_DMA_DPAA_ERRATA_ERR050757 + sdf = (struct fsl_qdma_sdf *)fsl_comp->desc_virt_addr; + sdf->cmd = rte_cpu_to_le_32(FSL_QDMA_CMD_RWTTYPE << + FSL_QDMA_CMD_RWTTYPE_OFFSET); + if (len > FSL_QDMA_CMD_SSS_DISTANCE) { + sdf->cmd |= rte_cpu_to_le_32(FSL_QDMA_CMD_SSEN); + cfg |= rte_cpu_to_le_32(FSL_QDMA_CMD_SSS_STRIDE << + FSL_QDMA_CFG_SSS_OFFSET | + FSL_QDMA_CMD_SSS_DISTANCE); + sdf->cfg = cfg; + } else + sdf->cfg = 0; +#endif + /* Status notification is enqueued to status queue. */ qdma_desc_addr_set64(csgf_src, src); qdma_csgf_set_len(csgf_src, len); diff --git a/drivers/dma/dpaa/dpaa_qdma.h b/drivers/dma/dpaa/dpaa_qdma.h index 2092fb39f5..361f88856b 100644 --- a/drivers/dma/dpaa/dpaa_qdma.h +++ b/drivers/dma/dpaa/dpaa_qdma.h @@ -81,6 +81,11 @@ #define FSL_QDMA_CMD_RWTTYPE_OFFSET 28 #define FSL_QDMA_CMD_LWC_OFFSET 16 +#define FSL_QDMA_CMD_SSEN BIT(19) +#define FSL_QDMA_CFG_SSS_OFFSET 12 +#define FSL_QDMA_CMD_SSS_STRIDE 128 +#define FSL_QDMA_CMD_SSS_DISTANCE 128 + #define QDMA_CCDF_STATUS 20 #define QDMA_CCDF_OFFSET 20 #define QDMA_CCDF_MASK GENMASK(28, 20) -- 2.25.1