From nobody Fri Jul 24 23:30:11 2026 Received: from BYAPR05CU005.outbound.protection.outlook.com (mail-westusazon11010004.outbound.protection.outlook.com [52.101.85.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EB75038C2A0 for ; Wed, 22 Jul 2026 09:40:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.85.4 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784713235; cv=fail; b=JE0UDHMsK2ybBDsp23GWZzZB5dgRq/7QvX61yAJD5kDzyoFYozoaQY+x0XEx9xqrMn4ggLZ5m38lr3qbmCRyRty/TlWlPA1Io+CnEqInFIhM9dDeEIQwG8P2zDgFmD3FZSXZHp5hH8mh36k9ql9t3dAte3wzvqFDEMt3tsFBJ2g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784713235; c=relaxed/simple; bh=keP/y+5tEalxTE4JoTyrhCMjWzVVSc9BJQQ8HWHmmfg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=ozsJno4nW9SUrRMh8Gx7KrdnC1GdaVTTY3/0uRrU1/Y+DexJXjRZ1KIV80CD67nvNmwc9DFmWGBWabivWx2SY2B7Aq/i9OL0LEyBT+dWkUkWhSjKbpVj3QvSskIlRHZnUIjit5u2T0oo4s8GDygCREAalz1oBWUQripYCZCYjXA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com; spf=pass smtp.mailfrom=altera.com; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b=vL7hzkPa; arc=fail smtp.client-ip=52.101.85.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=altera.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b="vL7hzkPa" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JDPbV+2L/1txOi6iWLgcN06nJhFoNF+HcDACP494G2MVtqmXwNKtoDlhAew90SlQdqk5uu6C0n/x/rxQfq80PTnLcug1WM1jg+fF8I22skwuxPbouFZ3e9/13NWaXZz6z4FvmYMrtSGwncC0VRBgPrTwFyFzhFOVZx/pVSv0kk9i9BQfGphQcruV7T1acvlO+ChPOu8BzbR8bi2Scy/qv1BMJu+6P7kFd+yE5k+PHkX0QlZfY6QtDFmJvLMLeQrf3Y6WKz6o8KNDNiHnvKOxyYDUtq/WHhf1dbBz/zmxPsu7SaiMTyR1MkLl7qf6ubn8es6IBwaZl1zxdjYwkDqe8g== 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=NhYnf36RT4sPsLORX78YhJPbGltqYnC9EUG60NjTyBg=; b=KwAp5wINoU0gBj0i60ock/yxpX0gCymid1nxBJVkltVSIWOQ0TQeOrV30fLsXz19gM7Mqb566yyuzcy/lwdLIZ4GWXq5hfbQp9riZdNFrv1fHdBdy0q7uB8lIV2TTa+ei50BAn6lnt29b19HdrbBjJ+Pu/f0why+s82PG1Sf28A/unK/kEPsL9u3jcBCJcXVXyW64mKm/V0wmIv2eQjpSmjZXby61zj4eCroBvXiFyc1h0SH5xSMIhzK4RAy3BnEeTPU0YJ4FOGQFRzdEvV4wQ/03pFQPK4eRViVOK3c+Fptscbp2RKie0mnA0z4uTxcB1AxFr3Zn3chtfIca756xw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=altera.com; dmarc=pass action=none header.from=altera.com; dkim=pass header.d=altera.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=altera.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NhYnf36RT4sPsLORX78YhJPbGltqYnC9EUG60NjTyBg=; b=vL7hzkPaBpk+4Iu6Mz/zBF51wN9Uk0u4Ov652/FFzcyWhYGybL5WJbYvuqVre+YpyFPB+390hJn6ti7Od0ImsJf802IUZ7k9Zy3BmMeU8RctRVytAEWbuPfxzb1JD30oONo3fjQ/hRpc1Bjq50FrsQNXzMvmNRJu/Bx1r84V4A4t97S6/3Q7D2vvNP+2VCRgR7gFXrPCcmP5ZQr9sKn4mMTcXUaNJJcl2LsK+4WwV7Lvi4HFfTTXTh5f4tgs05kVlzAoN98LEA30EMclquktlsrj5u+cyHITQ4TSJXeswhvMq6GEeTH8Tz+nDF6rL/Xtt0Y3L6+qXy4fUx4PHWsuzQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=altera.com; Received: from DM8PR03MB6230.namprd03.prod.outlook.com (2603:10b6:8:3c::13) by IA1PR03MB8045.namprd03.prod.outlook.com (2603:10b6:208:595::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.10; Wed, 22 Jul 2026 09:40:29 +0000 Received: from DM8PR03MB6230.namprd03.prod.outlook.com ([fe80::abad:9d80:7a13:9542]) by DM8PR03MB6230.namprd03.prod.outlook.com ([fe80::abad:9d80:7a13:9542%3]) with mapi id 15.21.0245.009; Wed, 22 Jul 2026 09:40:29 +0000 From: Adrian Ng Ho Yin To: Dinh Nguyen , linux-kernel@vger.kernel.org Cc: Adrian Ng Ho Yin Subject: [PATCH v2 1/5] arm64: dts: socfpga: agilex5: add FPGA manager and region nodes Date: Wed, 22 Jul 2026 17:33:49 +0800 Message-ID: X-Mailer: git-send-email 2.49.GIT In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI1PR02CA0050.apcprd02.prod.outlook.com (2603:1096:4:1f5::12) To DM8PR03MB6230.namprd03.prod.outlook.com (2603:10b6:8:3c::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM8PR03MB6230:EE_|IA1PR03MB8045:EE_ X-MS-Office365-Filtering-Correlation-Id: 4803af2f-be88-45f7-0874-08dee7d543ef X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|376014|1800799024|366016|6133799003|56012099006|10067099003|11063799006|55112099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: xg0M0hRNB2SsGK8aqCRP2K/dW3F5h2OgbmPA0dTPCWlTQrO5NHqFTwgSvTCUH2V1hxCJNs1f1dtClzf90p+HQoj69hrMvDjSX0WcrVTHBBcda2gRChb+JR4OucYBy0iDX0DTACON9yOsBsszqWHOMZAd+KgYHY7PVdLVTDpsXuZw5CQzsQ9mPzllSQ/2iHY2Bb8m/qlr5Nt/V/WfiaruwSQKo6poYch/MU+j4oX2bdFXIVL+/S/wGmuQFQw3xONRWvqc4MPgMNdYjWBoN9K968AbhEa128JPLesyCyDy5183/N/AgDjl0QI54HJ2SNCONHAdgSQ3tVR7SN98s29dm/xqGingqZbP4aNs98ZqnjEFZXBNrA0n/kAhLqpiBAr2vMvJVN7UCeKZmE6Jq3EUYEqWbZeJeSJF0vn1xyezhJZ2ZqdniFLdhADMST18C5TYHMMVID1EWYXmRAuUP6Wt/h7usVZ+Y3Ff8Y+tuM6wX1ZCXRq7nkGTIRkUZXo3CE3oN1/UkTmUT1/DP9bz0MfClmeusBC40sMU1bQ5CA8UYxkwAu2mVyr4uKnkiiczHMP/OrOjznXuORN4PEAqtNQvSAzWMuDgeg8T8EXqht8JkqH/9JoLKRhm6I1eyhFLT/2WWDUOmAVvxH38+niye/JoQ0tgPPOL7OLGthTvW52gts4= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM8PR03MB6230.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(376014)(1800799024)(366016)(6133799003)(56012099006)(10067099003)(11063799006)(55112099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?4ORTlq/FtHorAhm5YP9mwlb2zw1gdBcPcZ7C/EcnpOvgveFYz3ktrrrCoutZ?= =?us-ascii?Q?ne74upeHzBZ9uGoxkME5LwX3sf0Wg3b/Gk5fVC9glop0BY9mntS5lB//Xfix?= =?us-ascii?Q?gTCP80wI4472FV81A1gqn/JjyDwkP754lrg5OX8HkyynMigpMgMYPats0Rke?= =?us-ascii?Q?rbaIP3mDXiTkpGjMjSLuP/qmjAdxRzi215aU/JUXRMg66OIKj0sceVdU9y9l?= =?us-ascii?Q?jbWbkPGNSnGcm/uyxHw4O9icEK3ULC7s9uL6YJv12gRzUdsUH2uGA3Fmny2u?= =?us-ascii?Q?1TJFb2AQOhrX1B/Oyob3xUuasUxMtqfuJpn2WF8TbGzfaYIgsN+CzR5Nikdl?= =?us-ascii?Q?itmcT4P/3nHmnW8EEVXLnKyeo6U/78mGLLcd7PNT5N2r0GRINrhcHdN0wAQS?= =?us-ascii?Q?yAjyxUknQpaAQsLMhQinpKmkZ0T9Z+qf7+Kl68n4UsQ9mqkwM5LMlocYA8WP?= =?us-ascii?Q?XQZHZCUoO+9TLMGlWyFpl+PmaU+oytmI3oqRkZTWlmDixJnK4z8uSXRdjkYX?= =?us-ascii?Q?+fsBTdse5/ml3NwFa0SSEmxq/QzVjwSTGWIuhHkJ83hDAjOzW+2HYa6dCZu8?= =?us-ascii?Q?haFGCcD/tvt+BFbXeOT1rwLPhwImjDW3ujjgRTx8DL1Rt+ko9WWwn5t1rqUM?= =?us-ascii?Q?6yRGOhZE7MQ9DcdDCmLatCGWKQg/X/kB3vX1g6PkanSjOH+MttO4+XvXdZHK?= =?us-ascii?Q?4KTUuaf1VYKL3y+897rywVxrQUV0Fms+81Y0RhYbDO0/tVrxpou4rqQQFJd0?= =?us-ascii?Q?Y3T08MtYH4MBE/T8KOi3H+KAeA05/y2OjRnPfc1Ei6VhPAqKH2ApsRZYMwiY?= =?us-ascii?Q?zkyJ+JLIUemuAGmfcMWFak9ZxEANeuwM60lofiFhxvoPSx8zZ8ODpA6UBSPz?= =?us-ascii?Q?kcbV0Mg8e6tQ6F0T2uoK2RK+tNE0kFlHjBSkVttx0Dgn1tRTEN9pjVh8oY+1?= =?us-ascii?Q?ubxUOHr99rP9SuPPkAcuxUV9LelB3GV5Axj8iNhZGqUevwAJtCcP1OmaZJCj?= =?us-ascii?Q?h0oXU3IowB4/35DHfrI/OV2R8Di+7f0aJ3/KSdbUq1OEBuSqAKeP+R5jiDQ+?= =?us-ascii?Q?Qy5rnPVDHPmbeLXEs+WqUtYj1NpTzsLLtckYpAQyNRJ7gPTumjNJR0tIl7qD?= =?us-ascii?Q?V31CfKv9JXzd5k5h46YkouVoOW9mioicIZmmigYCsEInJznvm+wCNPKo9lw6?= =?us-ascii?Q?tBbERnLnnYOyrYMvUgkR03o5B821VUDnmkU0C7691JQGbZhKGoth0hbari2q?= =?us-ascii?Q?7LMNCIPwSYWnnJvGDVARLa58GSoHffTK9EUXk8M18U2R/i0HrQo6tDlJs+6c?= =?us-ascii?Q?oAosQoNkObc/JZ34HWJUzJtC5f38CsqrdWNvviS8ml3HUKtAQmx70Oi2l12l?= =?us-ascii?Q?NOn41oIVTwZiw7ZGbkn5MWAm8bOewMYd+IBshLUitH+TvliMQDaMMeWsp3u2?= =?us-ascii?Q?6Oul+gCB0beMLkoOg1uVGJm/sSpnQQ/D8s5Sn2E3iMlg71rVoZzTvahZL5LK?= =?us-ascii?Q?hyLsIxZvL3uV1HExUAhbpliDTyIp66f1W9XsYsuEsq/xxYY6tD0qqHHsuBdM?= =?us-ascii?Q?y0Y7EzyvJUUKVPoBFUMUbrwQz0e1rQbV/8hM+8Nfs7i9Soz+Ae/0PGunLqSR?= =?us-ascii?Q?wfsX4NQOPUAjVW+H1OQAT3tzxBkq/OIF4NuDyRUve4J4YvXeLG6icpRkFQdq?= =?us-ascii?Q?rfizZgGUCdddyearlNVch07GTkaSb6dJBlHjjyrZWDy7Yl/RIo+5HEGSfTH8?= =?us-ascii?Q?TLfHQNzqSb06avbXkNq27do8CLt7puY=3D?= X-OriginatorOrg: altera.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4803af2f-be88-45f7-0874-08dee7d543ef X-MS-Exchange-CrossTenant-AuthSource: DM8PR03MB6230.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2026 09:40:29.0747 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fbd72e03-d4a5-4110-adce-614d51f2077a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: AtcmY4UFxOo5SEFO9SxJsaMJp/Lsh2nzL0eWEgR7k0MBBaX0mE8U5uTAnDoYOJIRWLPcqnRsrOQP5yElfGbldZw3ndPJeKOR7vuYTwLMhic= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR03MB8045 Content-Type: text/plain; charset="utf-8" Add the fpga-mgr child node under the svc firmware node and a fpga-region node to enable FPGA configuration and partial reconfiguration on Agilex5. Also enable the SMMU by removing the disabled status from the smmu node, which is required for the svc driver to allocate DMA buffers within the SDM-accessible address range. Signed-off-by: Adrian Ng Ho Yin --- arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi b/arch/arm64/bo= ot/dts/intel/socfpga_agilex5.dtsi index 02e62d954e94..1cd9773a1500 100644 --- a/arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi +++ b/arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi @@ -85,9 +85,20 @@ svc { method =3D "smc"; memory-region =3D <&service_reserved>; iommus =3D <&smmu 10>; + + fpga_mgr: fpga-mgr { + compatible =3D "intel,agilex-soc-fpga-mgr"; + }; }; }; =20 + fpga-region { + compatible =3D "fpga-region"; + #address-cells =3D <0x2>; + #size-cells =3D <0x2>; + fpga-mgr =3D <&fpga_mgr>; + }; + psci { compatible =3D "arm,psci-0.2"; method =3D "smc"; @@ -385,7 +396,6 @@ smmu: iommu@16000000 { interrupt-names =3D "eventq", "gerror", "priq"; dma-coherent; #iommu-cells =3D <1>; - status =3D "disabled"; }; =20 spi0: spi@10da4000 { --=20 2.49.GIT From nobody Fri Jul 24 23:30:11 2026 Received: from BYAPR05CU005.outbound.protection.outlook.com (mail-westusazon11010004.outbound.protection.outlook.com [52.101.85.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 20B7247DD42 for ; Wed, 22 Jul 2026 09:40:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.85.4 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784713237; cv=fail; b=dbwujvVsKIq5JMoEbjVgVWmJL/B+UnYv+aN3BV33T43zXHZDCtU1zOGYRdoCjA6uavoi1wQUfXVtoyiOBK31Xt/kd3JKhzncC4Soh7759F6vUTNdRIWlRs9i0T9cWp6hPVq2n/EwygsRyYWcnN+BfKcYrSnGGnIgWnrKdYQZmuk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784713237; c=relaxed/simple; bh=xFde5x7ZFRUSjNmRBJyIHimRQG/qhaSUzx4Vwa+nAtc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=RE0nuJZ6/k5FCWNZrK60EkJcw7Iv8mped5cgpBYf1sUq+VV8p7SWldSNNN1az+PP9ZSAJiqQqycI2syHGbsemkyz14Ev0IfoXZheKV3d/ev8nHYiqvEYoewxiTZAw8jNPyCSP4vCmpl9GRqT54LTCXocLof3jClsoKCmF5qosA0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com; spf=pass smtp.mailfrom=altera.com; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b=BCrkLZlg; arc=fail smtp.client-ip=52.101.85.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=altera.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b="BCrkLZlg" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=S1YQHudCxsogZq0BgT5cp4q90tK77VZIKH6+tX2OscNmRwlRnWPnWHcueCcAv2JpeMYgGv2DYiWhmGAyK0tzKEVnmOuUg7FMXKGdAq01/HEfKa0s//OOu1LmwY0f5B588NEWTw1uYhIL2bCppGG/r8cIBhyhpgLmcHlAMiHml/VOAQjzIv1+y9f7sH90FASvl9QvjCarEE3FPKIT+tvK8NatsIMyNx/NLs4AwTdERu8Jl9WPRQn5HdU+wOco/hK8QaL5ORfk84HCog4kfiQ0nX+syhVPbNVnn6ssHR0jFCHnwpdfhconh8monumNymWMuOVLh+WFN2K4yW9TiirDdg== 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=WP4rN9zMAAhqj5VFzl0s9j0WTK5dhAknN+Tsf/YXCcM=; b=MjhBFfpmBE1DJalXvThMQ5F05aAJcbic9Ik7Ic3xdPqap7EjrYrikEasuv42n8eeGqsmRU9OhUifQesd+eUSFLOJO60wnwSpRLK3mIXtkYAVW1eO7dGGh31wvkh/uQgbu8GNsVYavdw6eATMmHrTy4Sc53PzBSySQx3rsNmz1yoRjb6+447K489CuCQm7R/pQ0kPxiL/AUPHDIl0rAKgtHyY0gJi/PQ+hIacShQZfFdVHLGqTmhQ1/mSnRQnEj0SgfAMFX/qTsM4aScCHOlXztMvpMCaLJCSBxXe4p/cCEAWzveMSFue1WPl3PTROUPRl0mEX967b9xkF2BO9u9Nlw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=altera.com; dmarc=pass action=none header.from=altera.com; dkim=pass header.d=altera.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=altera.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WP4rN9zMAAhqj5VFzl0s9j0WTK5dhAknN+Tsf/YXCcM=; b=BCrkLZlgGecgeMO3N4LDQuI0UCAEksxLC6uPJqj/3fvvgW4sPJpP9bj3SVVyFF/1MXnMwv5xigZ8Kk0MLRq77WRp/EcdIZmD7G5LaropN/AWoP0p5j8mClPTZG5wFUl0ktCj2zlinFgRdcdN7z7dMVVyueLJ/i1vtqQq8tFzkxnnJLD4g1/lGdv+KG/FTnzZAxL74QL0mTENUjSgPj1VFWKVqwPQnsfOJ8RtBURy7EKQ+meTb29LPx9AhiT7+jz7c3U2vPxoPEh/I8GIAwPgZN22imZIl8X1Y3TOrlzvuu5gVrpLr7O6fV3jKgs5hGCwpLS11QzbxB8WJqAirL64eA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=altera.com; Received: from DM8PR03MB6230.namprd03.prod.outlook.com (2603:10b6:8:3c::13) by IA1PR03MB8045.namprd03.prod.outlook.com (2603:10b6:208:595::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.10; Wed, 22 Jul 2026 09:40:30 +0000 Received: from DM8PR03MB6230.namprd03.prod.outlook.com ([fe80::abad:9d80:7a13:9542]) by DM8PR03MB6230.namprd03.prod.outlook.com ([fe80::abad:9d80:7a13:9542%3]) with mapi id 15.21.0245.009; Wed, 22 Jul 2026 09:40:30 +0000 From: Adrian Ng Ho Yin To: Dinh Nguyen , linux-kernel@vger.kernel.org Cc: Adrian Ng Ho Yin Subject: [PATCH v2 2/5] firmware: stratix10-svc: Add SMC call for SDM address remapper configuration Date: Wed, 22 Jul 2026 17:33:50 +0800 Message-ID: <1059b3859cbe5932abd68faa608d3d1393ddbe1c.1784712583.git.adrian.ho.yin.ng@altera.com> X-Mailer: git-send-email 2.49.GIT In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI1PR02CA0050.apcprd02.prod.outlook.com (2603:1096:4:1f5::12) To DM8PR03MB6230.namprd03.prod.outlook.com (2603:10b6:8:3c::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM8PR03MB6230:EE_|IA1PR03MB8045:EE_ X-MS-Office365-Filtering-Correlation-Id: d08d92ec-df12-4033-084a-08dee7d54509 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|376014|1800799024|366016|56012099006|10067099003|11063799006|55112099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: ijuP2fzicCCYoICBYrohcte0BAUOfSIYOiMJktEP0KEg6wH7NzAxnOUvb0u20DAwFho4WZxAbUtyDkLfzK78YizAp19XXAyjn7fBQ/yexpMwiMM7mJnp6hwJsRpaouGJ4emW3ioPSFOEjB3eSplNiece6gUpFs3E7J522bOE3l9Me1wmSGvoeX942XXH6jVc3janYCQwAeRR7pnfN0cOm0dY9qVMV8Q4JepSnWVJEtFKaPcE6aALe8kDVGblVTl8vWQj6TLGIoxzmRAh8bfPDhovrGr3EKypwv3PyjcvXuHvj/HOjLXfe+E24gVaA9dihWYmsFmTq4UImRbfOLrJzwmB2Z1Pi/qX0GQ/6yhkNiFWxmu3Ocd+pu2Ui7W4HNGgl+rzKaDNYaGhLWi8naqF0+mkRZVuzscZc7JJL/J8hUkkO5OmoDupKWETxZfgO6qUF3grtqKb0aiCu7/en9HIqer9dKPWYZvJDBqTJexQSti9Q4rzx+tty3EjJEDd/cbJDiyO+KE9jzqWITehw0e49t9PzRtBrz7tSE0MZiBnswXOs89U4ruwj+JWc7HgJwqHjg20idQcTuMSpLOypvrfFY98Axf6YTtydn7Xbf+rCl67Q4DxGpT/D0sjGvYLBdpsCSHF03sHISw0xHSPg386sKDzjFp2mWmU804Onp/5nQU= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM8PR03MB6230.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(376014)(1800799024)(366016)(56012099006)(10067099003)(11063799006)(55112099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?gyEtGIZ1omKvnS8nM7jKknmIALlTJdhkRy9jBiLm/rLvl7LLL1MiwHWMGCP2?= =?us-ascii?Q?ppzCpvYhnZewTC8jjk7gkTaHLrZvLRAOPdmYS19G+bIDfF8234wfLTBeEudj?= =?us-ascii?Q?DMog7iZsr2N1x40i1uAiXciH5V2+sTYsagoK7N9I1ZBruVE90StnGipTHSk0?= =?us-ascii?Q?zZie1cZYprm5LBF7JG5zvE/pF7Ckjc/Dp4QRdG5H3nMYD+AGhNyeRbrBcGsK?= =?us-ascii?Q?FQwTa70DPG0WzlJYi7GAD5W22MaqDukc8/AqQBIRJmICVOuNkcPAWEbLY9G+?= =?us-ascii?Q?VFWcPTyq0tKGa5uwNF0By+HtwXD8/4/3+MxF7X2I+iMDhOkoxTSt7K0b61vG?= =?us-ascii?Q?g63j4HoZCAunIrck7lN+luCVoHKjKgDwXcD4Kr4PuxRVjaX1o54dexSUFro+?= =?us-ascii?Q?rfAwuM8cdc30/PnaUf5Kwdz5FaOX+joAfdKjDiXVz/r4PyrrNTNllJw4L1Ng?= =?us-ascii?Q?1Y0tYa1PxKKz1B2PkSJbpMyuLF/teqRreukZOn+a2VbBheLfOFyfYWh1xk7O?= =?us-ascii?Q?yjD61tLi7STB9SDnM7geCCGOBQxVf0FB7JF4rOgvRwxX9EfT3YkU1d1cT4jX?= =?us-ascii?Q?y/gdg/TCyckLYNI/hNoPT9+4YQO1OsQGgUJb2UietKCP3jqKm4ySLV7KVAb7?= =?us-ascii?Q?xJoNSVa/lNlqVvw0e5+uOq9FMMA7NHUpfxDp8pBU26bV/ZlVIMUoS5LV462Z?= =?us-ascii?Q?NCjUZ1jVPgyXKnSkuGr4Hx5GEpKpuPlaEPkOZOL6dIQvT0WW3hVLxMA5sa/F?= =?us-ascii?Q?A9SvbDI42AY/K5ObFPAV/FRRZzxi0op78jCk3NBZQs3PBRym3PrPr3Nb0w3l?= =?us-ascii?Q?XFwkuhIRpaR0oU3WrXyTKCO02wI68tN8zVAtLLl4kdc+pR36aP9oCZ2DyErA?= =?us-ascii?Q?vybIpnLndhim2cUGoS2YtAPekUF/T4AUiuwqN+R8yKdv+m9QOWrLpkjx1GAN?= =?us-ascii?Q?R+UsbSwI+piJ1NhvkLmokHv69EK6B0nAutIzsHELLLLuLKK10KKQgLmWnMNm?= =?us-ascii?Q?RMAOGjf3FlopQ8y3Wsy2xFWLn1U3k66oaZzmid5zGp1qSSlGvM/jrLIze/oB?= =?us-ascii?Q?MbiuDEIICfkSbD57SEHjPPOURHNTR6T+BTuX4dyz35hdP2J9E919Z98ZnemV?= =?us-ascii?Q?QF6CMq+tkMqF75XsYbfbAwVnfo+Rmjn76yGgdbj7xVbTF3k9uDlC2+Z7jhuO?= =?us-ascii?Q?IOneee+ZA1Una4fQUn3ay+isCgcJDrUgczk84uiuStmOMA58zhV4JYmoqKEX?= =?us-ascii?Q?m3LDlhohiz3Drytq1BPY1c3VEpJku8U8DIo1iHQeu6zfQ9vie1uCxoinQ5jM?= =?us-ascii?Q?fid3B177DxdmqYn9pWFDFHS/EdZx3xfYOP148vQWCSn+35BhukOgDZLU24e/?= =?us-ascii?Q?z7FXD6YO8h60m+om0IS3BR3KUddkVKM+DRfA6zIp8rOMbL4yoMqGTT8XNeId?= =?us-ascii?Q?LweIqdDHPLo7kDp8hfmAa3BZhxghxWQY6/g1Hu/+u115TL9E5kymXSv6L5Gt?= =?us-ascii?Q?EMBdVCoZ0+abrZS/6OXyC/U93EGkuzLLMJbabb+96E+eZ4bx2ntcGN3kcAby?= =?us-ascii?Q?+p0+QfwZCh6seXzFsSgQuNvLbrZnznFIWOx+tCmDoBsjD5nNvpC9FQ/GWeJ5?= =?us-ascii?Q?sghxLwpHqMpOH5qHsKaVtzzvRX8Zq6Et0OfJSW+UMcopGsINr63XjzDqSOyl?= =?us-ascii?Q?Kwr5HXMw2gPmO8AKZRWO0DvYKqCjeBSU4vtOKxCpzcHM5HUIKCL0eG3tzQM1?= =?us-ascii?Q?WYfrepBXqSTHm8gyaSGnJ6oX9AlzhW0=3D?= X-OriginatorOrg: altera.com X-MS-Exchange-CrossTenant-Network-Message-Id: d08d92ec-df12-4033-084a-08dee7d54509 X-MS-Exchange-CrossTenant-AuthSource: DM8PR03MB6230.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2026 09:40:30.6663 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fbd72e03-d4a5-4110-adce-614d51f2077a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: j1WDOGNfXV8C2A4ILrVXmK0KIErz95/kzzRkTHoMcO/KBv4nXnLFVDz7xLuEzWPCr/l+SGiu741nQMi1SEh4ftYVmZQoj7zd55Axyoe/ewU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR03MB8045 Content-Type: text/plain; charset="utf-8" Add INTEL_SIP_SMC_SDM_REMAPPER_CONFIG, a new synchronous SMC that configures the SDM hardware address remapper introduced in Agilex5 REV B. The remapper must be bypassed when the SMMU is active to avoid conflicts with IOMMU address translation and keep behaviour consistent across all Agilex5 revisions. Signed-off-by: Adrian Ng Ho Yin --- include/linux/firmware/intel/stratix10-smc.h | 23 ++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/include/linux/firmware/intel/stratix10-smc.h b/include/linux/f= irmware/intel/stratix10-smc.h index 9116512169dc..daa693699c97 100644 --- a/include/linux/firmware/intel/stratix10-smc.h +++ b/include/linux/firmware/intel/stratix10-smc.h @@ -746,4 +746,27 @@ INTEL_SIP_SMC_FAST_CALL_VAL(INTEL_SIP_SMC_FUNCID_FPGA_= CONFIG_COMPLETED_WRITE) #define INTEL_SIP_SMC_ASYNC_FUNC_ID_RSU_NOTIFY (0xEC) #define INTEL_SIP_SMC_ASYNC_RSU_NOTIFY \ INTEL_SIP_SMC_ASYNC_VAL(INTEL_SIP_SMC_ASYNC_FUNC_ID_RSU_NOTIFY) + +/** + * Request INTEL_SIP_SMC_SDM_REMAPPER_CONFIG + * + * Sync call to configure the SDM address remapper. On Agilex5, the remapp= er + * must be bypassed when the SMMU is active to avoid conflicts with IOMMU + * address translation. + * + * Call register usage: + * a0: INTEL_SIP_SMC_SDM_REMAPPER_CONFIG + * a1: INTEL_SIP_SMC_SDM_REMAPPER_ENABLE or INTEL_SIP_SMC_SDM_REMAPPER_BYP= ASS + * a2-7: not used + * + * Return status: + * a0: INTEL_SIP_SMC_STATUS_OK + * a1-3: not used + */ +#define INTEL_SIP_SMC_FUNCID_SDM_REMAPPER_CONFIG 513 +#define INTEL_SIP_SMC_SDM_REMAPPER_CONFIG \ + INTEL_SIP_SMC_FAST_CALL_VAL(INTEL_SIP_SMC_FUNCID_SDM_REMAPPER_CONFIG) +#define INTEL_SIP_SMC_SDM_REMAPPER_ENABLE 0 +#define INTEL_SIP_SMC_SDM_REMAPPER_BYPASS 1 + #endif --=20 2.49.GIT From nobody Fri Jul 24 23:30:11 2026 Received: from BYAPR05CU005.outbound.protection.outlook.com (mail-westusazon11010004.outbound.protection.outlook.com [52.101.85.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E7F4248A2D9 for ; Wed, 22 Jul 2026 09:40:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.85.4 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784713240; cv=fail; b=pl/V4DyIAxRMv349uuh3UsEgO1BhCWfUeqtZBb804clWjUom1C5xTQxzJvC1brAxYVrwRsAGf49D2zs2+vmQu4OyKtQ8GOp+z9Z4dawcFoHCOt31iQYkcX26Wibfbqp78lUc9vWPDFdOvKRn6Eyzu2otbsHxcZ/8gPOK4o5JzNg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784713240; c=relaxed/simple; bh=UiVoW3aC6OH/SzRJ8EfzwVL3dylyUywAu4A8/Lubv9E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=ilbVw+B+KCNIUckNA7qHNn0VXRa8pSDHlqGApI7EAG0D+OUbrgVHSL3JHP5JrGx0YTg4xR+wUrgfNnVHspqUGK0xH5YpmuXKEqX7oEXXn6jD+zNz1Mnh4jOA6W4WpSUwFDNIu7tlYGUeKzFvuqMruapyQe0UTg5yMZxOqnmRhKU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com; spf=pass smtp.mailfrom=altera.com; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b=tNtqBbyR; arc=fail smtp.client-ip=52.101.85.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=altera.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b="tNtqBbyR" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ClD/URCu2ENDgA02BH+jGRxQGObPaijU/JabPjUp5idTybPT/6cnySwiadYFE+vnlacxWa8beLn57lXQ42Ujyh6SK92RcQ1UZ3ItKu3um5EIZXzd3JUw4vHbS38hH8EmI7/G29xbixhp5A65UTjK1MaSVMn74nD0Iyg/HNYwpFR71JC6msz9MT2Niev6Q/N4nN0rVI0BG0WJQk/WPnOsQwlUAgaDC9LLQViPdYWPfEeCxsqIdmKCOzp4p8p55Kk/QeXl1sEZ7E3Ht8IqCFJ/yz5UCHLDih6n0a/3ESIS2yb4c3t22krQmtO6hpbKw1fHe6BFxS1Qj9Ks4U5dY4Bbmg== 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=pYDW0hV+uiLRPqjniZG+03u+gSc2hb+D9c4CwYz1EbQ=; b=p8mglBPoxevu/RGtrE0n7FkvOgN1ZPnBzFrfijXMpLgJDa4dOSKrg44D6oPue3epbB9hzMpF8qbQ7qB1eKCVsP+f55y2enXjNAI8Gc4K++Ug+rvsH/k2Vfx6JdX6xyrBKPrxw13uFR2pUpnL1X3asCsZ58ut1aoJhncoKD9zlLd0hRsYsYMLJ6rcZVGUU4s+gyxJQVbgp8UvUTw4gEg1Waq2FDYF/PU2uMLcH7+i4hCy1BVj7P++tVfhPx/GP+yLsiynFihdCyhLDZ0djrO88QX0XnQaaIP8ENmc2/MxvO98F0t84thr7U8QTAP0gnjPK66GNb69bSDX8AJOAc/5GA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=altera.com; dmarc=pass action=none header.from=altera.com; dkim=pass header.d=altera.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=altera.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pYDW0hV+uiLRPqjniZG+03u+gSc2hb+D9c4CwYz1EbQ=; b=tNtqBbyRi9pznajR7NqAZaW5q0i/+LeLbp3VXTYlmYjVarbiyd2MITr4aaLun8igf649s0xXF6HktpZacaNZ0UDnN/Vzl/o8wGs6ud6xGJCHBtRuklM95r6JmaSzKZHbQAM9l5KdYR+fTdAQkCQ2J8ZB4w0eLlQqmPZwQ1C57xuHTWtb86uJLxzVWIL6dQEbFINb/fMdYwJ8vkPQgvqs84R4s5K6NKMAtfWU1/8tevmISgW7pi7/V6E5iMgI5bnlTzQV+l6foBg8fc6bj4BR4ykedauXoKS6Cvu0FDu3Y9afcwQ7Pb2nkOZvZWzz1XinQdQn1bJ57frowPA1zeXGfQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=altera.com; Received: from DM8PR03MB6230.namprd03.prod.outlook.com (2603:10b6:8:3c::13) by IA1PR03MB8045.namprd03.prod.outlook.com (2603:10b6:208:595::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.10; Wed, 22 Jul 2026 09:40:32 +0000 Received: from DM8PR03MB6230.namprd03.prod.outlook.com ([fe80::abad:9d80:7a13:9542]) by DM8PR03MB6230.namprd03.prod.outlook.com ([fe80::abad:9d80:7a13:9542%3]) with mapi id 15.21.0245.009; Wed, 22 Jul 2026 09:40:32 +0000 From: Adrian Ng Ho Yin To: Dinh Nguyen , linux-kernel@vger.kernel.org Cc: Adrian Ng Ho Yin Subject: [PATCH v2 3/5] firmware: stratix10-svc: fix list corruption in stratix10_svc_free_memory Date: Wed, 22 Jul 2026 17:33:51 +0800 Message-ID: <728586aafb602977ff0c5f6e21322530bbb75c12.1784712583.git.adrian.ho.yin.ng@altera.com> X-Mailer: git-send-email 2.49.GIT In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI1PR02CA0050.apcprd02.prod.outlook.com (2603:1096:4:1f5::12) To DM8PR03MB6230.namprd03.prod.outlook.com (2603:10b6:8:3c::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM8PR03MB6230:EE_|IA1PR03MB8045:EE_ X-MS-Office365-Filtering-Correlation-Id: 0c75a518-55ab-43f2-c039-08dee7d545f3 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|376014|1800799024|366016|56012099006|10067099003|11063799006|55112099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: Ce9qzzLkphpbEkZfOWsEmvnVAXaEvBvLMuCbL8YYgK24CWDb5WK7jRWVFS4oyZRkqSvc/WWSWla9EYAb9o1EHJr345bL8p+y6YZMRDIIQ/JgooofjfuK9MUm/bQVPah/egKPOZ4JbR64XqdQBlte3j/c4B4Xo3bnfNvZV7RCtwFSgPGAq8IWwLSlr1/oavMeZDFTSNTR5H1fzoeozo92VUkmleao2VKLp9wSfcwNZEoTDIsHnl+M7TrpmyvGdUxn70c+PFXBYvQ1++qVNgINds9QUtb2gF4jICBuolwBahnStlynH1DOd6W478fZimvPuE38vTuxjEzyOTp7t/N180kf9JcXJdGcvc+q1lUEU76vZXpFLqOB3ZiFIVSxVOA05gOWemx1ZqTWuccEM5nXAr1+ANfuqUKU2ksuRZjiJPv5zPiKiMv6vzjxKOvLWMTdr/wuPmjSoz9LiPXvNCnUzdusiEzoZfg9snT9chArefF2jFmuOEQbjgThsv/MM791Jo4EW9vlSNYUTwBDnYqgoGAS8wsEJfH8fHIPsAildO7lQ6AqzVf9SALxT5PjC29j8ZFfHzBS7OHbeDUsBq4vMV7sbkRcexMLyr8m/Nwofr9yX3Kjipy9X+AoWE/Thua5yXEE9gq8QBDfGBU1o29T6uE5IveYuYRgWPY6v2AjKkQ= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM8PR03MB6230.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(376014)(1800799024)(366016)(56012099006)(10067099003)(11063799006)(55112099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?TuWhJcNQw/4mVVOUaPhh6YJzzsBKOCR+6w6uISQVde9PukKgfzYLUSDog6oR?= =?us-ascii?Q?wIYrUs9a7Zy8FlI5PAwYAjq88A9Bh4XO0xsTLTu2xJdTK+QvriFnySEz6t2M?= =?us-ascii?Q?/55AgFXgg717gp0iDCbKynCceKilklY+jcS21bUil8CzPxOCWHeMEKBNfOu1?= =?us-ascii?Q?D7+LEdrDM9uVj6bTCT6PV76Bdj6jwE+XnuieRb/emSefjkjCwftKBfX3PvaM?= =?us-ascii?Q?RZTrVrfF1iInvHbaqZRqFHFFBQzPINIMx1UoNBhDmdOgk2Zg21A0OgTC2QjV?= =?us-ascii?Q?BmbIlrL7tkXw4hHDx2NKNqEjySjQGgrksjyx3QQytc/qfL0LnQfWhygiss5B?= =?us-ascii?Q?eutsxGw7OK6OJ1DcVD58yrm558eNj0UxS5ybNB86KgwkfOK72UiaYBvCmlil?= =?us-ascii?Q?l8NJuisjGzfGteGrPmOTVTEgEs4m7d/B4bKTDZU35JdYG34/QPuzCfUtJ1DD?= =?us-ascii?Q?L8sbAFBuBBIC+2yAO1BoOfUA6SXu8tl2ki/b2mQ5gVMcOTiBvFqflBkfrAT3?= =?us-ascii?Q?ovCbSXIjN9Tg7mWnxvexVWNyv4wr9Wvg7goTEpz/XDO7K6/MQF+zL7/gmv4s?= =?us-ascii?Q?A3Alxu+ep20o1N092ijvMhCcUXBF0ODYGcYshM8L/nr/e/jGktU07zOgrQHG?= =?us-ascii?Q?wtXCwlVO7syMjlDgI5yMZSNJAcMUMDDMSxwnglYhmUvtye2FK63zW59tj0Cn?= =?us-ascii?Q?FTGjLOckyMX1hJGDhT35h9aJ8hnFGo9UmzjVtmj7gJvyAN8Oy+Ll2ke5SJLH?= =?us-ascii?Q?qlU4orOwbpck61TUq9LcRL9dfEXMFCVQWh8b6FOOyD8R+SHB/gCmS7LePkEk?= =?us-ascii?Q?NvvbXsoI+p0G/fvWhVfCFDj4kQ7FN9D5aC/5pmOCBPD13kpWJT1IKaRkzTih?= =?us-ascii?Q?eozInNXx7EtQgNMSgOlsX+v19yxku6949dpp/SZtJN4MiPPkMrE/fjEPo8ao?= =?us-ascii?Q?LNTYNSctfsXY3gc0cohZsOo68BtyjwvFaUs0LdKW9kI9/5+qfgwlr/EqFLRJ?= =?us-ascii?Q?EkHdmwrPwenhyLhV8BwthvbEHAxMhspmwvX+jTTfCYh6bnYs8ov2nJi3iDm0?= =?us-ascii?Q?kFHD8PyME+bMKsDnyzbWNLYe4T5mNrEQowM/89EoG7rsjvUgalICx/8l8cFF?= =?us-ascii?Q?oZ5yncqv03DZlbsdBJV9HD5COlyJ2o/Z9s7AMBnOt1wLgIyqVCIt/PS5aygF?= =?us-ascii?Q?g+5HNF28b9/KXzRsjI5kNVukls5EhFa4P/F81Bgq0uqkg+krq5uWUoOh6h50?= =?us-ascii?Q?g8j0YVgdVIRsi4DbcMeULMPCFVMfGEB+xGik05NE1ud5hSF5Vlg+w/hpYFQJ?= =?us-ascii?Q?IRcz9XYMNwXAK2CEd1Z7NlZaZimfS/zNHa6DCpHc4JtchohyWEKLoDm7rBsS?= =?us-ascii?Q?S+g9zkJUeiOPyyzgywj+JHAsXx5OVLAOrNgjJSeB4TKij9ddtukM+5ab7cDh?= =?us-ascii?Q?vYVk7au01LNpWRMeRkp86raPr14RubVRT2gwJwZFS87VzGksrQ0SSnXznh0o?= =?us-ascii?Q?aa4NzJhJLVO9LfPrbjjxPXGD8oS28GcZQnv/dirC8mmf4neopy0zaqurjL6K?= =?us-ascii?Q?eIaQU/fBAXLg/49kakSL5YxlspwdyrdqzZeFZvoGa/9aEymXr3rVQpZ7Uto+?= =?us-ascii?Q?OMvO/MUxXaGBlythg7Q6SIuxfKPJN6Et9o6fAX45zpOW1uVACJRLLg1Fqejd?= =?us-ascii?Q?Pn1/VGra1F9UFBFI825/7gLaBrQ/unAO1HmrknhVgtW/9Po37xejwwbemIsu?= =?us-ascii?Q?Sv7whKYHiBAYwaxxH/ZtbsLhjhoARAU=3D?= X-OriginatorOrg: altera.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0c75a518-55ab-43f2-c039-08dee7d545f3 X-MS-Exchange-CrossTenant-AuthSource: DM8PR03MB6230.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2026 09:40:32.1716 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fbd72e03-d4a5-4110-adce-614d51f2077a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: dpdTA9wTgCddFbxyW9mxJrrlNg0UsQZids7f0CSUKOoDHdSNL+pKeYzEW8+PCPD6xha7SsAnPsz3eQVY8CUJZlQjT/MeWgKvOlfqfZ8PCsM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR03MB8045 Content-Type: text/plain; charset="utf-8" When no matching buffer is found, the fallthrough path calls list_del(&svc_data_mem), corrupting the list head. Replace it with dev_warn() to report the spurious free address. hile here, refactor the loop to use an inverted condition with continue to reduce nesting. Add braces in svc_pa_to_va() for consistency, and fix a stale "physical address" comment to "address" since paddr is not strictly a physical address. Fixes: 5a0793ac66ac ("firmware: stratix10-svc: fix a missing check on list = iterator") Signed-off-by: Adrian Ng Ho Yin --- drivers/firmware/stratix10-svc.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/drivers/firmware/stratix10-svc.c b/drivers/firmware/stratix10-= svc.c index 00e134e663c8..20ab90a4584f 100644 --- a/drivers/firmware/stratix10-svc.c +++ b/drivers/firmware/stratix10-svc.c @@ -318,11 +318,12 @@ static void *svc_pa_to_va(unsigned long addr) =20 pr_debug("claim back P-addr=3D0x%016x\n", (unsigned int)addr); guard(mutex)(&svc_mem_lock); - list_for_each_entry(pmem, &svc_data_mem, node) + list_for_each_entry(pmem, &svc_data_mem, node) { if (pmem->paddr =3D=3D addr) return pmem->vaddr; + } =20 - /* physical address is not found */ + /* address is not found */ return NULL; } =20 @@ -1880,19 +1881,23 @@ EXPORT_SYMBOL_GPL(stratix10_svc_allocate_memory); */ void stratix10_svc_free_memory(struct stratix10_svc_chan *chan, void *kadd= r) { + struct stratix10_svc_controller *ctrl =3D chan->ctrl; struct stratix10_svc_data_mem *pmem; + guard(mutex)(&svc_mem_lock); =20 - list_for_each_entry(pmem, &svc_data_mem, node) - if (pmem->vaddr =3D=3D kaddr) { - gen_pool_free(chan->ctrl->genpool, - (unsigned long)kaddr, pmem->size); - pmem->vaddr =3D NULL; - list_del(&pmem->node); - return; - } + list_for_each_entry(pmem, &svc_data_mem, node) { + if (pmem->vaddr !=3D kaddr) + continue; + + gen_pool_free(chan->ctrl->genpool, + (unsigned long)kaddr, pmem->size); + pmem->vaddr =3D NULL; + list_del(&pmem->node); + return; + } =20 - list_del(&svc_data_mem); + dev_warn(ctrl->dev, "free of unknown buffer %p\n", kaddr); } EXPORT_SYMBOL_GPL(stratix10_svc_free_memory); =20 --=20 2.49.GIT From nobody Fri Jul 24 23:30:11 2026 Received: from BYAPR05CU005.outbound.protection.outlook.com (mail-westusazon11010004.outbound.protection.outlook.com [52.101.85.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B64394963A6 for ; Wed, 22 Jul 2026 09:40:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.85.4 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784713242; cv=fail; b=WxhJ+wjS1gKPvitQ/9lOf/OT74NROlruq65n51ftKrm+EDui6qeszH5TJ48sF9l+jdGna4e7BrdEpQ0UL2TWCsnqtQf0uzBhS1+y3Ejm+Wnz5nqQ3vjS1+vMVMoOgE68v5nCk8ugri1hrr9oKswCGUCzwaZ17SfjLHZja3Ravp8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784713242; c=relaxed/simple; bh=2ms6It0TGUAWmau4f+oZ0emLPE4tSXTQKH95KtwVSRY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=M6/IN0iBkY22waN9WC8lrgYZku27STIHqqflvrjvogE6aom2gDiiS9A9H+KxdgQs6k3FftjQwe/tpPJH8m0CoVMLZ5Yjn70LBcfi2InRSwtbDDoVzpkXk07P1xrVVTdVdzF/gynK8G4EKkyYL5TjURYI5V3xz6NcKSuAAKwA0Vo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com; spf=pass smtp.mailfrom=altera.com; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b=MQ44/Qm+; arc=fail smtp.client-ip=52.101.85.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=altera.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b="MQ44/Qm+" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cm7J+jypm4sPuOBabVqXghIPuKHKuwG6jXZ9xAOJ04SHrwd0l4YjnkFGzNlP5KMueL3FzX8PareskjkSQTrBxJlfgV/KWKBaKXGZn3XhT9oIqwApZTvb8iKmYZuvHTwFZ0s9DCDMvozjRpSEY1ZFQq3PTT2VITwwYx+gbK9nc7gtNFW+N06PGggtkAAnZ7KjsjfGYtEQ2f9sf05VSVlvBgMOHslHfhq7KwH8qPtnBL+QOfMgHkfE7hfta0Q4bZn94A0qfIIwDxOXe2nJozfDMZVZoW/z6IFy8Cq64fyQp18TgNNcTtF27GQS+pLNbVxQaKzgkETEI5J5qgHzYcDycQ== 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=OqlgYW7sE3Np6C9ps+EdUm7emTu2ZSiUz7WkKZQCXpQ=; b=FzJ0nlSKXKv5MTy4gw39CaJoOXLq43cNrcQQyjmdr3zkmP2vFm9ovS56jLgsqQpWqKdH6RHnHdZCEQS/GUsKHj24ub5QWOUZhDe3zZzXOlKykYh2F0O64FDQwPLCGCrOXAttGlB+Jt9yfIN9IqaxH9f/cxMmGP61WW8eLuhjKaPaqGfIaQfdwpbSw5WVOE/Anlc9T9T4JvBq8h+FjUnGv1CnCCreEtl1bJ7MkGN3taGmpt45REuQRIy7MjwW5os77kjMKQ36L5B64NsAzm2tTvGrcclBxHKUyi+jxlOmrr6+LQ+iJw51AE78OPVg3IPz1DeNa29lxmQ+iebTKwrQqA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=altera.com; dmarc=pass action=none header.from=altera.com; dkim=pass header.d=altera.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=altera.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OqlgYW7sE3Np6C9ps+EdUm7emTu2ZSiUz7WkKZQCXpQ=; b=MQ44/Qm+oVP6hlEdQw2DMdi8idu4Y8yFw4M0rnfk8f1O2E6Xkvamv/V3Ztn2WbN7OsHZm6RpK3nXwtZmrDl53Zdb6BJSkC3PeeWTutCOENN+ufUjfZOTbdk81vl1j6lorJCeLtHYIZpJBf76M7c3dqGkOQyOdYWyXtPyqs6oX7J7vMSqDpxEi6USFAmKSM6ON333B52zFcIhD+AH6nbJWzbkwf0Mlu8ulK266Uuxd6a7hi+1NxLg5kMbMUwAEkoyYYfvwuonvme1QibQVd3EMCZtSsSYei6UNHFWXnLOhyMpsYgenn3lp0uzUpNQ0fKGs2Pf05bwjVGVN7rlyo6cWQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=altera.com; Received: from DM8PR03MB6230.namprd03.prod.outlook.com (2603:10b6:8:3c::13) by IA1PR03MB8045.namprd03.prod.outlook.com (2603:10b6:208:595::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.10; Wed, 22 Jul 2026 09:40:33 +0000 Received: from DM8PR03MB6230.namprd03.prod.outlook.com ([fe80::abad:9d80:7a13:9542]) by DM8PR03MB6230.namprd03.prod.outlook.com ([fe80::abad:9d80:7a13:9542%3]) with mapi id 15.21.0245.009; Wed, 22 Jul 2026 09:40:33 +0000 From: Adrian Ng Ho Yin To: Dinh Nguyen , linux-kernel@vger.kernel.org Cc: Adrian Ng Ho Yin Subject: [PATCH v2 4/5] firmware: stratix10-svc: add DMA coherent memory allocation for SMMU-enabled platforms Date: Wed, 22 Jul 2026 17:33:52 +0800 Message-ID: X-Mailer: git-send-email 2.49.GIT In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI1PR02CA0050.apcprd02.prod.outlook.com (2603:1096:4:1f5::12) To DM8PR03MB6230.namprd03.prod.outlook.com (2603:10b6:8:3c::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM8PR03MB6230:EE_|IA1PR03MB8045:EE_ X-MS-Office365-Filtering-Correlation-Id: ccae02ee-e8fe-4504-6beb-08dee7d546e0 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|376014|1800799024|366016|6133799003|56012099006|10067099003|11063799006|55112099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: wKO5Ksh6VJ0KQDYnBjjJwd9Y5iKkgdzPuuH09VOb/4UIpADc7wqtFLDp3nVGQE19qwV5VpQWUOWp5dnuWDvg39x2A4N8Ldr1qO1efGCcUdqg3c6zaLeTHrzqCXT1SfrC2SUJ6fFWoPba1fEQ+8m34Gr7Jon/ecqn4yyGHa0RCw+xA4PRcTDOUPThtm3fQXdATCriM6k3IoRDMVZtmtHe7XlJQWEJvLUha0GvBibAMxKhQeiKcaJn/5Cc7lAKG63U8SLOtv+3Xl43PGAYnA/s2yrzINH/VMIilEBiBjUp34726SDLANfFOXXcI0jXiK91fHBP1YX/YJygWcUd27U5DnQl6Hme+H0TL484FrE3Ca439J02xxAYPOvoSVH8dbkbL21OHpe+xDYLoPRCfwYIdBOoZwIeC0ytVD81ZLg9drAgF1EMyLEhR4XGdqbfgdZ+qTxMGRf7BLQQhgRZZ5osTUpqNc/VQcxHyq+nM3waSVb/Tlq4wssMrmbRpGgUi46NQlwYUOM+eZN5xzbqS2jQiy55ICDn1U11Eq2cunpRGuk8YANJr+fadc3GxPYlyzy1RJo02h0OlfusMLy46SzUZpBdWAn4I15tdW1whkHyrlZuoXW5GeNYSfSjZrhHMWt3oFR7Bi0ypCDIl1IkweOWAi2R06FoDOpcYYwQQM/aWqM= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM8PR03MB6230.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(376014)(1800799024)(366016)(6133799003)(56012099006)(10067099003)(11063799006)(55112099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?rT8WldK2vESYOqzPktfinNhA4Q+Y10/3/eVMYFyA/X0ZGroj+olg2+p3Buuq?= =?us-ascii?Q?gnJycjEaU56NRTrMqqcv3bpY2qRkDoK+j6D1d1iHymGJh7bw21RSrMzvaOcu?= =?us-ascii?Q?SfUaKo1FWri7obcUR2P2SG/GcEYiQHQdzD4/K13skfLViLgTfxRb0MOB/rdQ?= =?us-ascii?Q?KncDUnLnckmU6GHDrekuuZXEPDCUE9hJ9MKMY1Qgl6SDNMjypsz0cDVg7wHY?= =?us-ascii?Q?HP52BwEnMvr4shsioERGm7e4fJx+EoYCqqRSrqNkYeCeILe1DoMBvLX7dLYw?= =?us-ascii?Q?X1D+edw9CSt0AFDtKKHKogpcu09ixk4du/iLlEEKd8iB/SNDS78z9IjiuFfW?= =?us-ascii?Q?glG0Eau08hdvHy8EqiuLr4XzzWZ48OCv8/HsGk9I3RgkoemKyjyeruwurpXC?= =?us-ascii?Q?EUAPRa93e3DKkSXoUhp/qwxQSE6cD6MbxFA1sI0Bi7ghZ1G8Oo6sb4sH8R5s?= =?us-ascii?Q?sew3YHkY0h+c1WIs+I6GQfi2ZI82xE79QngVpgWdm6R02t3fs6fXgifuTAcT?= =?us-ascii?Q?Tka7I/Wrj7uwfokhFKK+FB5qer8XrmqWH6ziAXc0nyGScxh69g6PWdJkj3m7?= =?us-ascii?Q?mJ8sPu4R4eco1FMfrKz2+OSkPgjACSYU2dAyP4uKXC292e6NnMn9KMm9xipr?= =?us-ascii?Q?nqGteD7M3q9s166RJcu3OStsVVe/oAPY1ytVA2vcOZdD80K/GP1snmkvCTuU?= =?us-ascii?Q?8SYyDVzdLk+sSSx+8FHKO+2Be0uGaeGrj5sHkqKHI1Y1r1bS/IY+Yk0ULsKr?= =?us-ascii?Q?MZ8pYLnb2XnM79cJewZgFpe+9YMxtuUULtMzoga6HWs5BCxa7arqEyu71Mws?= =?us-ascii?Q?KkKbI3XWx24Qh294A5zIHNIO0Ma3l9cEsLP3c31qwkqTmkVaK2bZcsJH2qJ6?= =?us-ascii?Q?C1w0dHt0Fn2n065OAHsD3FrLX8Y9ADtuHuTzuyAZiulPKL2750M1cv/uSiZy?= =?us-ascii?Q?vEljiMEADq1YxOYK3v7E096emeACglC0E1V/YdQrUwcmId/eMhah+whkivlu?= =?us-ascii?Q?ZILFSwOgWee4g3M67CWpwsCFARkH3NbSGfpWzAj6OvYulNZaUCN6rZ8JrTpI?= =?us-ascii?Q?WvhzKGcKw5t3fgmgbPXK1cJ44V5zztEAyHydTaxqPIU4yU2PCbAz6xt3Zx0z?= =?us-ascii?Q?jB4cl1ljqPXaZ1Vh/oytZ2kNp/Zg773cSrD4nOp3pw53g6dBuPaZJ2lvZ2/R?= =?us-ascii?Q?LqhSDQlhFb736kwJMGmfHG1t78ct7AyLlHWAb5GjWyT4MoYWaZnH0uFiLzvo?= =?us-ascii?Q?u6yTRxcjx+BCvRYusNWLkbGGfbiQY0kWqYFzIeLUo7Re4X8Z2nc57l7Vp49l?= =?us-ascii?Q?Zoob+DvfH0DnD59clEC23R38RlWQnUXiNUFD7n4ToGe3gcVUzVuwBc5P/21S?= =?us-ascii?Q?/hrZN7A3fgWaoxS6/Z2IC2Op+DN1J9inV5TUak2YM53k2tN5rSCuGPJJ24xj?= =?us-ascii?Q?o2bvcH+QPPffppDOZ1Nuie7+FVN3qUbUkQuEFB/MOaWORAg0f77GTZzn/TaA?= =?us-ascii?Q?q184VhjvdHbRzuT+ZgCHnJ0IUqypCmEGgDNJr8gOikKqzlFFPOqEhjL5BPjc?= =?us-ascii?Q?UeTqCzKsa+9wPeohH4vNIvEBSyt9TsQfEe+aiTjspcwYVMLOVcnw8P5dSgTF?= =?us-ascii?Q?QDF65Y8A1cqCZeoPRKxovS5rbCAl7fnOXwUaEm2QF1IfQ6Mh5EBrib4EyLYa?= =?us-ascii?Q?sZ5z5H1+853rA+9jhT9+2xxV2q0nbg9mD1tTct0VsDtpsMMiFgfqFER1D8lA?= =?us-ascii?Q?1VAd3NSTuYDhRhwc3WhJ8UA/TbP9c8M=3D?= X-OriginatorOrg: altera.com X-MS-Exchange-CrossTenant-Network-Message-Id: ccae02ee-e8fe-4504-6beb-08dee7d546e0 X-MS-Exchange-CrossTenant-AuthSource: DM8PR03MB6230.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2026 09:40:33.7192 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fbd72e03-d4a5-4110-adce-614d51f2077a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /YIoArxKhlrANMyN/8CWAadngmU6cLuqM10mpyUSSjyM6lNchowNkYjPgmO4W0xhc3+pljmdQpaiOLWbR53CrEICNGZoMTi6ZHBYvCqZKsg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR03MB8045 Content-Type: text/plain; charset="utf-8" On Agilex5, DDR starts at 0x8000_0000 which is outside the SDM's addressable range. When SMMU is active, the driver must allocate DMA-coherent buffers and pass IOVAs (not physical addresses) to ATF. Add SVC_SDM_DMA_ADDR_BITS (29) and SVC_SDM_DMA_ADDR_OFFSET (0x8000_0000) to constrain IOVAs to the 0-512 MB window the SDM can reach and to satisfy ATF's address range check respectively. Extend struct stratix10_svc_data_mem with dma_addr to hold the raw IOVA for teardown, and struct stratix10_svc_controller with use_dma_mem and dma_addr_offset to select the DMA path at runtime. Add svc_setup_dma_memory() to set the 29-bit DMA mask. Update stratix10_svc_allocate_memory() and stratix10_svc_free_memory() with a dma_alloc_coherent()/dma_free_coherent() branch, and adjust svc_thread_cmd_data_claim() to reapply dma_addr_offset when resolving ATF completion addresses back to virtual addresses. Both new controller fields default to zero so existing gen_pool platforms are unaffected. Signed-off-by: Adrian Ng Ho Yin --- drivers/firmware/stratix10-svc.c | 164 +++++++++++++++++++++++++------ 1 file changed, 133 insertions(+), 31 deletions(-) diff --git a/drivers/firmware/stratix10-svc.c b/drivers/firmware/stratix10-= svc.c index 20ab90a4584f..4a2071d57399 100644 --- a/drivers/firmware/stratix10-svc.c +++ b/drivers/firmware/stratix10-svc.c @@ -7,7 +7,9 @@ #include #include #include +#include #include +#include #include #include #include @@ -43,6 +45,23 @@ #define FPGA_CONFIG_STATUS_TIMEOUT_SEC 30 #define BYTE_TO_WORD_SIZE 4 =20 +/* + * SVC_SDM_DMA_ADDR_BITS - constrains the IOVA allocated by + * dma_alloc_coherent() to 29 bits (0x0000_0000 - 0x1FFF_FFFF) + * when SMMU is active on Agilex5. The SDM accesses these buffers + * via the SMMU using IOVAs, so the 29-bit limit keeps IOVAs within + * the SDM's addressable window. + * + * SVC_SDM_DMA_ADDR_OFFSET - ATF on Agilex5 distinguishes + * SMMU-mapped buffers from direct physical addresses by the + * presence of this offset. The driver adds it to the IOVA before + * passing the address to ATF via SMC; ATF strips it, translates + * the remaining IOVA through the SMMU, and the SDM accesses the + * underlying physical memory. + */ +#define SVC_SDM_DMA_ADDR_BITS 29 +#define SVC_SDM_DMA_ADDR_OFFSET 0x80000000UL + /* stratix10 service layer clients */ #define STRATIX10_RSU "stratix10-rsu" =20 @@ -133,18 +152,25 @@ struct stratix10_svc_sh_memory { /** * struct stratix10_svc_data_mem - service memory structure * @vaddr: virtual address - * @paddr: physical address + * @paddr: address passed to ATF via SMC and echoed back in completion + * notifications; used as the lookup key in svc_pa_to_va(). + * On the SMMU path this is (IOVA + %SVC_SDM_DMA_ADDR_OFFSET); + * on the gen_pool path this equals the raw physical address. * @size: size of memory + * @dma_addr: IOVA returned by dma_alloc_coherent(); used to free the + * mapping via dma_free_coherent() on the SMMU path. * @node: link list head node * * This struct is used in a list that keeps track of buffers which have * been allocated or freed from the memory pool. Service layer driver also - * uses this struct to transfer physical address to virtual address. + * uses this struct to map the address returned by ATF back to a virtual + * address. */ struct stratix10_svc_data_mem { void *vaddr; phys_addr_t paddr; size_t size; + dma_addr_t dma_addr; struct list_head node; }; =20 @@ -277,6 +303,15 @@ struct stratix10_svc_chan { * @svc: manages the list of client svc drivers * @sdm_lock: only allows a single command single response to SDM * @actrl: async control structure + * @use_dma_mem: when true, buffers are allocated via dma_alloc_coherent() + * instead of the ATF reserved-memory gen_pool. + * @dma_addr_offset: value added to the DMA address (IOVA) before passing = it + * to ATF via SMC. ATF uses this offset to distinguish + * SMMU-mapped buffers from direct physical addresses; it + * strips the offset, translates the remaining IOVA thro= ugh + * the SMMU, and the SDM accesses the underlying memory. + * Set to %SVC_SDM_DMA_ADDR_OFFSET on Agilex5 when SMMU = is + * active; zero otherwise. * @chans: array of service channels * * This struct is used to create communication channels for service client= s, to @@ -293,6 +328,8 @@ struct stratix10_svc_controller { struct stratix10_svc *svc; struct mutex sdm_lock; struct stratix10_async_ctrl actrl; + bool use_dma_mem; + unsigned long dma_addr_offset; struct stratix10_svc_chan chans[] __counted_by(num_chans); }; =20 @@ -356,12 +393,18 @@ static void svc_thread_cmd_data_claim(struct stratix1= 0_svc_controller *ctrl, complete(&ctrl->complete_status); break; } - cb_data->status =3D BIT(SVC_STATUS_BUFFER_DONE); - cb_data->kaddr1 =3D svc_pa_to_va(res.a1); - cb_data->kaddr2 =3D (res.a2) ? - svc_pa_to_va(res.a2) : NULL; - cb_data->kaddr3 =3D (res.a3) ? - svc_pa_to_va(res.a3) : NULL; + cb_data->status =3D BIT(SVC_STATUS_BUFFER_DONE); + /* + * The firmware COMPLETED_WRITE response returns the + * raw IOVA (without dma_addr_offset). Add it back to + * match the key stored in pmem->paddr at allocation + * time. dma_addr_offset is zero on non-SMMU paths. + */ + cb_data->kaddr1 =3D svc_pa_to_va(res.a1 + ctrl->dma_addr_offset); + cb_data->kaddr2 =3D (res.a2) ? + svc_pa_to_va(res.a2 + ctrl->dma_addr_offset) : NULL; + cb_data->kaddr3 =3D (res.a3) ? + svc_pa_to_va(res.a3 + ctrl->dma_addr_offset) : NULL; p_data->chan->scl->receive_cb(p_data->chan->scl, cb_data); } else { @@ -982,6 +1025,38 @@ svc_create_memory_pool(struct platform_device *pdev, return genpool; } =20 +/** + * svc_setup_dma_memory() - configure the device for dynamic DMA allocation + * @pdev: pointer to service layer device + * + * Called instead of svc_get_sh_memory() + svc_create_memory_pool() when + * the device is behind an SMMU. Sets a 29-bit coherent DMA mask so that + * every subsequent dma_alloc_coherent() call yields an IOVA within the + * first 512MB (0x0000_0000 - 0x1FFF_FFFF). The driver then adds + * %SVC_SDM_DMA_ADDR_OFFSET to the IOVA before passing it to ATF; ATF + * strips the offset and uses the SMMU to translate the IOVA to the + * underlying physical memory for SDM access. + * + * Return: 0 on success, or a negative error code on failure. + */ +static int svc_setup_dma_memory(struct platform_device *pdev) +{ + struct device *dev =3D &pdev->dev; + int ret; + + ret =3D dma_set_mask_and_coherent(dev, DMA_BIT_MASK(SVC_SDM_DMA_ADDR_BITS= )); + if (ret) { + dev_err(dev, + "failed to set %u-bit DMA mask: %d\n", + SVC_SDM_DMA_ADDR_BITS, ret); + return ret; + } + + dev_info(dev, + "SMMU enabled: using dynamic DMA allocation (IOVA range 0-512MB)\n"); + return 0; +} + /** * svc_smccc_smc() - secure monitor call between normal and secure world * @a0: argument passed in registers 0 @@ -1843,32 +1918,52 @@ EXPORT_SYMBOL_GPL(stratix10_svc_done); void *stratix10_svc_allocate_memory(struct stratix10_svc_chan *chan, size_t size) { + struct stratix10_svc_controller *ctrl =3D chan->ctrl; struct stratix10_svc_data_mem *pmem; - unsigned long va; - phys_addr_t pa; - struct gen_pool *genpool =3D chan->ctrl->genpool; - size_t s =3D roundup(size, 1 << genpool->min_alloc_order); + struct gen_pool *genpool; + dma_addr_t dma_addr; + size_t s; + void *va; =20 - pmem =3D devm_kzalloc(chan->ctrl->dev, sizeof(*pmem), GFP_KERNEL); - if (!pmem) - return ERR_PTR(-ENOMEM); + if (ctrl->use_dma_mem) { + pmem =3D kzalloc_obj(*pmem, GFP_KERNEL); + if (!pmem) + return ERR_PTR(-ENOMEM); =20 - guard(mutex)(&svc_mem_lock); - va =3D gen_pool_alloc(genpool, s); - if (!va) - return ERR_PTR(-ENOMEM); + va =3D dma_alloc_coherent(ctrl->dev, size, &dma_addr, GFP_KERNEL); + if (!va) { + kfree(pmem); + return ERR_PTR(-ENOMEM); + } + + pmem->vaddr =3D va; + pmem->paddr =3D dma_addr + ctrl->dma_addr_offset; + pmem->dma_addr =3D dma_addr; + pmem->size =3D size; + } else { + genpool =3D ctrl->genpool; + s =3D roundup(size, 1 << genpool->min_alloc_order); =20 - memset((void *)va, 0, s); - pa =3D gen_pool_virt_to_phys(genpool, va); + pmem =3D devm_kzalloc(ctrl->dev, sizeof(*pmem), GFP_KERNEL); + if (!pmem) + return ERR_PTR(-ENOMEM); =20 - pmem->vaddr =3D (void *)va; - pmem->paddr =3D pa; - pmem->size =3D s; + va =3D (void *)gen_pool_alloc(genpool, s); + if (!va) + return ERR_PTR(-ENOMEM); + + memset(va, 0, s); + pmem->vaddr =3D va; + pmem->paddr =3D gen_pool_virt_to_phys(genpool, (unsigned long)va); + pmem->size =3D s; + } + + guard(mutex)(&svc_mem_lock); list_add_tail(&pmem->node, &svc_data_mem); - pr_debug("%s: %s: va=3D%p, pa=3D0x%016x\n", __func__, - chan->name, pmem->vaddr, (unsigned int)pmem->paddr); + pr_debug("%s: %s: va=3D%p, addr=3D0x%016llx\n", __func__, + chan->name, pmem->vaddr, (unsigned long long)pmem->paddr); =20 - return (void *)va; + return va; } EXPORT_SYMBOL_GPL(stratix10_svc_allocate_memory); =20 @@ -1890,10 +1985,17 @@ void stratix10_svc_free_memory(struct stratix10_svc= _chan *chan, void *kaddr) if (pmem->vaddr !=3D kaddr) continue; =20 - gen_pool_free(chan->ctrl->genpool, - (unsigned long)kaddr, pmem->size); - pmem->vaddr =3D NULL; - list_del(&pmem->node); + if (ctrl->use_dma_mem) { + dma_free_coherent(ctrl->dev, pmem->size, + pmem->vaddr, pmem->dma_addr); + list_del(&pmem->node); + kfree(pmem); + } else { + gen_pool_free(ctrl->genpool, + (unsigned long)kaddr, pmem->size); + pmem->vaddr =3D NULL; + list_del(&pmem->node); + } return; } =20 --=20 2.49.GIT From nobody Fri Jul 24 23:30:11 2026 Received: from BYAPR05CU005.outbound.protection.outlook.com (mail-westusazon11010004.outbound.protection.outlook.com [52.101.85.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D94A1320CD1 for ; Wed, 22 Jul 2026 09:40:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.85.4 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784713244; cv=fail; b=j0fmEYH+a1Lw54rmiqn+3xI+h5aj2oA1695DgJ/OVgaAOgCwFfaeBGcvSbafMnE90Ok10UEWOjtA5EQMaGCBN7joFfIrdn72ERafXefHpf8cP2dvB7Rk3t6IOxVpzS4WSK4dDzhU5/JVoxKiBd0x7h40nF7KnDMkdRUTxpVJ7L4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784713244; c=relaxed/simple; bh=+umdA7EocoyQVnRariRMNmBgQ4A8vNtsyiypj6BfBho=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=CC7/3PUvD4bACpQkUaiMDJZ8CqTX9Utfo2yfKCDYpssDoEjBk8L6cvWMJF4YmwfeExnn1nfAHY97+D+W1xD6JOkBmwEHT9wogg8rwWsMeBdcV4fwF/QZmb+FGW9TOVzSlk6nScNfc9PD1gtf2121ZfxTn1PGWEDgeweiqQ7Wm5Y= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com; spf=pass smtp.mailfrom=altera.com; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b=lb6vhe+p; arc=fail smtp.client-ip=52.101.85.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=altera.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b="lb6vhe+p" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XE0OtiEjdJlqMoacwgiPK1kJraAjktRT01j+riIqTElgYOzIHzzdAzrtMfdIVZhVPMdOI+X4oCKLAfbkBMEcxofr3OhcaQfxcvo76cZvawWMN35oKlCED2Zf5Jv1cBbWbRtswM52XeLWshKD1bKpO6XJ0RYaGejGNImrsWDhrjazUw91Yhby/9eCWCUwZ/uamqPgeA5xAEBj4rzk05G13lJoELzT0h0KGZEpiBb46G9jHKBvqIjon5lHmUWlWbN9DwHDm8C64+LuLt1R/cG6jskO4TobDo01qr6HTEgBsd7bmGAu/BoOEv9saQtHmJAYao5clek/bzSeNuFHB4/TiA== 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=aOuxXZy9YD+qhhItzLVD5XWld5rC5iGQRL1ptAmrYbc=; b=GeOV2tlcom8FfKVTi9I95cl1EhsChRyDminKxuhIkAfynvlEf335NvGAxCykKT4KHbmR/6dN4UAYVE+ybJK5WxZNSX3FwR+x8F6aR+EwdT092qX+bw5J+iAyAw+zhtiFHudQ6/sLK7iF0F2udlOSlwkhU8PWEiZ+xoTh7hDmaoVUzXwSBy67CAhLU7bBSNH8ndbUuFmHu59jvSTrVfpismHN9WcMxKyUZRHzXGM75luCccQn71Hdmr20lkAjc1WW+klCaRJ6t7PUrdc0BBi0jH/oBqq9/59fnCZjvuuHi/g0akLx61fsFvZHLySt1eRlALNpw+LDkzzGwIwDEDvmtw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=altera.com; dmarc=pass action=none header.from=altera.com; dkim=pass header.d=altera.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=altera.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aOuxXZy9YD+qhhItzLVD5XWld5rC5iGQRL1ptAmrYbc=; b=lb6vhe+pt8IPQ7RfdyqhH9qHM7ZNSGd9RkTdNAktt3M4ZPPjU58u1N4Q8Eh7U+E8Bzc/Qbq85gs6cEwhJlBSVv0uc7Mex3fqw+MN2qrPsRQKU8myhRuhN8V6R4lDcKp1YyshpqT9Z9z4jTIfhyPblufqznR2jcAjIsM9eU7hKP/R3alGJUYV9aBiPyMz78wQSkDboroDUGqrSJY1AEIhEOhsge2G7qGdOP7g27fdUmCH26pMGixMqpjZwHBdEMLpk5z9E9lFmcOcSURuAQTQUa9G/LAvKPNm91vfIY0IRwIADbixL5UtXRv12xVtwL4GQ1lVU21GrJnPBn9SCY9MNQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=altera.com; Received: from DM8PR03MB6230.namprd03.prod.outlook.com (2603:10b6:8:3c::13) by IA1PR03MB8045.namprd03.prod.outlook.com (2603:10b6:208:595::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.10; Wed, 22 Jul 2026 09:40:35 +0000 Received: from DM8PR03MB6230.namprd03.prod.outlook.com ([fe80::abad:9d80:7a13:9542]) by DM8PR03MB6230.namprd03.prod.outlook.com ([fe80::abad:9d80:7a13:9542%3]) with mapi id 15.21.0245.009; Wed, 22 Jul 2026 09:40:35 +0000 From: Adrian Ng Ho Yin To: Dinh Nguyen , linux-kernel@vger.kernel.org Cc: Adrian Ng Ho Yin Subject: [PATCH v2 5/5] firmware: stratix10-svc: enable Agilex5 SMMU support in probe Date: Wed, 22 Jul 2026 17:33:53 +0800 Message-ID: <3d501c0e349132c97f32f424b925c1ae3e21eac3.1784712583.git.adrian.ho.yin.ng@altera.com> X-Mailer: git-send-email 2.49.GIT In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI1PR02CA0050.apcprd02.prod.outlook.com (2603:1096:4:1f5::12) To DM8PR03MB6230.namprd03.prod.outlook.com (2603:10b6:8:3c::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM8PR03MB6230:EE_|IA1PR03MB8045:EE_ X-MS-Office365-Filtering-Correlation-Id: ffed9443-0c34-4fa2-f07b-08dee7d547c6 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|376014|1800799024|366016|6133799003|56012099006|10067099003|11063799006|5023799004|55112099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: jF2shkQaQ8dUYm6Eng+wuJNdG6u6+9a/o+XDph+JccdyzrtCRa8EJo2nWRKRBWxzF2Y9m3ZwgkIdy76DJR6twY0lfsmBPF1rOIigE7Q9X55ZGctxXaQtDZvL2ArSoQiT5nSWnynYp9tXg5wCxMJe4wzwEKwCyAFRNGW11KyQf/HbqAo4HhRvrbl4p2By+c6gw15rcP9F/d7bRraUkgl8NjYQpyF2010McdjwLN32NT+S+OmKQ+2Zbjf64/WEt8qLYYgvDJiHUvFGvxM1phuJ0+djqFrVxIgJkXIyIEKpGuJ4+ODcpG6QvEWHS1HY5kAMH+SNjkrdYTuqzVzHaIWAO6yO6hnS1an7cR5+JLne2iiXd9CcdqMIHqXuO0r9kaQA4sGA7QKJ5GrD3hw2yq/XZt0Jl4jl1GJ2znBp3xhotQDUwzKi0q85zMMVDxS5C7cSSM6g6cnlipWOQjKp2Aejb/A+DlRJ8lA97cvwvS+9O55KOUvyMbAn6Rt/bi2/K3A7BGlvmf6cceeCO7JeKQoZH4tMSOkJovhg1DfDw6Hqxbs4ER3GsiK7B1eg/pShsbYiNwb3Ma3WTeKz/eBgkjzTgV3BmqKEsVxlvj8CU5+REZXgGSZJzFd21GC7pmrHjyUe7IAMVAh6eIeCKCUaPA5s/esLiLrwBpIpX9EHA+siP0g= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM8PR03MB6230.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(376014)(1800799024)(366016)(6133799003)(56012099006)(10067099003)(11063799006)(5023799004)(55112099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?E/H4+8XkITyWFivZ+nsTidlsO6XEaiFzppDvkS+0Ug+2dAdKvCvd+hcsXvIQ?= =?us-ascii?Q?bnk3Qphx1oVPATm5ASY7MwfEe6f6SUDFZmri1UenhWzGGv7miQsEAbk/A6ve?= =?us-ascii?Q?68yNJ0ZX+gjgRAIok4bD2fIk6AReg0CHMoNsjXfbEMXewjWLUlFFFD6+mnnh?= =?us-ascii?Q?GzUeUfTCmOR5l33VsmtrF2ehKfCjLaQ2N5oRCHCQE9OKFUkDh3yz7nllcYlA?= =?us-ascii?Q?KDpiPADNNvJd+rkDj8xclJPiRaGAsPrdsH2apk9lRdq0Hkq0OGL192423s7/?= =?us-ascii?Q?RjFWRfAgTWxvaJGm/rnz2vPWVSD5JVbGiVPEB1UxvN+t8ELRyzxmYHLpGjvv?= =?us-ascii?Q?0eqk1RZWVwiBcXlMT718/NB2kE2P07A3NLQV7QBKov496vUW+tN1bt8CsYf8?= =?us-ascii?Q?g64m5neh5WK6LyKvPS15vyXwX+G0IOi/kzGIY196CmGrtC3okEH6E/cPXyGy?= =?us-ascii?Q?agmbp8EXXl7cx2BF8FH8Tqroy0rk4UauH1toBYvc7NWZiPlB5RTyvebwXnw5?= =?us-ascii?Q?z6MT2C5zcj6dLVQHUCns3hv4VtaWKxZl88FMb+frr1LjnLaoX0T1gXzGg1IE?= =?us-ascii?Q?GXV00s3mold8OsWE6CqPusP4l00EqSfUVl8jeLEf0D5aqE0CeZfKEX5uNH8o?= =?us-ascii?Q?aDexfk6v2mms84kT8NnetxrTZwtsvD62fsEHvwnKEGVxr+xANAUiKDrOjPPT?= =?us-ascii?Q?Kz7nb43nbumf6I7SW+fyhZ99d9nyPbuNFegazJsPkvt7D40zXG44iXExg+VX?= =?us-ascii?Q?yW03GOi7KTTm8CEWBHHFP/IHtN5Kg9zOehcfJf8OEyFW7Cr2vzfSQVvIXIWI?= =?us-ascii?Q?VnTTkPAuchEdxOZ07jRL6OOehtTXM3V8RtUeJhRwyg9mUBZLnw0q5IPz5BVS?= =?us-ascii?Q?JbAJK4tKaKGbZ8KHR1qPUht29Ap9bnfTwD6MRG6EEmzP2DcK+NuW+BwnKa2K?= =?us-ascii?Q?Y3J7Nrw04O8kdY9+tj9AqXYCYTP+qS8737fXWvi4jdX2MRhjbyv+Z/miaRw0?= =?us-ascii?Q?cMmgV2I1rTwp7uvfvarhyjRcO6qe3CqSGMyz5PQYLQQoGHZ+WqMubO3MNb3g?= =?us-ascii?Q?AbyVLmZz/lMjf9efw5jXxvsJzT7puciuq7ZbxBfuyFtQzK172vMtHY2roTOa?= =?us-ascii?Q?aDQqiA7xWukvd8EeoF8z2oNW0op3vY8iG5/HCx+aOYiJdYS+9siS77EDTRmO?= =?us-ascii?Q?mO+SgMb2h2BWypMD+WMSUOXHdyEqkeaCg2oMq9PllGJMwcwgaBMYKuWV5U2L?= =?us-ascii?Q?2+hbb6NpXJkBAP+PFQwVvNjPoTlZLbGvnZrjQi/E+arqRqV3yG2c4yRNcgpA?= =?us-ascii?Q?fSIHjASoIvr/UFzkZs+Z12kMBYcckStkGKjBNEHK6bHtouUuWWHQpC+YNnq8?= =?us-ascii?Q?/JYXvXaHf0t+JIYEp0toaY0zIA+Txn3PJWp/PrKDLxRe+ui1yv/fa8YoCmsn?= =?us-ascii?Q?ko6PMsLICJWa/CE/Vb4VzAWuTlBN2Q5fqhZ3xrn274x4EdYRtZfFlF6u7b6e?= =?us-ascii?Q?8ykiH/dTCAS/R8Ik4iuyE2ma2waXb7ut2FDWZSposKNzVJvaZ2+uVNVCoY97?= =?us-ascii?Q?RTUppvMn+5aTNmTueteeVz+qvLa8qMknExO3Ix+DZuqKrxnXg9SdrNOZAgV7?= =?us-ascii?Q?G4fk6WQ0wCcLnQupaRPfjhurJ+GfTWncsD5pT6zv4iyzZtYhQbrywKqIFgdx?= =?us-ascii?Q?RpHD0KhdDFD6/y2JlnshCwUip81TZSKvUSdwvZ8QGeoywlqjD+arX/hI/2ZM?= =?us-ascii?Q?Ll/w0AEjY8p/GhzagaXjKe7mnrBP6Sw=3D?= X-OriginatorOrg: altera.com X-MS-Exchange-CrossTenant-Network-Message-Id: ffed9443-0c34-4fa2-f07b-08dee7d547c6 X-MS-Exchange-CrossTenant-AuthSource: DM8PR03MB6230.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2026 09:40:35.2560 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fbd72e03-d4a5-4110-adce-614d51f2077a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: jwLvNGXdBcwxr1Jw8Ls1cGFFWatOOf4XsTyYzatEYX1XbNdSGXh98WJXmYPKGwLX/tXHbzB5RAgrjb8D6sqooyZzZtl+G1eiE8HZ+07dgZk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR03MB8045 Content-Type: text/plain; charset="utf-8" Wire up the Agilex5-specific path in stratix10_svc_drv_probe(): Add intel,agilex5-svc to the of_device_id match table with SVC_FLAG_USE_DMA_MEM set in .data. The flag is read at probe via of_device_get_match_data() to select the DMA coherent path without hardcoding a compatible string check in the probe function. On Agilex5, DDR starts at 0x8000_0000 which is outside the SDM's addressable range, making the SMMU mandatory. Fail probe with -ENODEV if no IOMMU domain is attached to the device. Issue INTEL_SIP_SMC_SDM_REMAPPER_CONFIG/BYPASS to disable the hardware address remapper present in Agilex5 REV B. Without this, the remapper adds an extra offset on top of the SMMU IOVA translation, producing an incorrect address. Bypassing it keeps behaviour consistent across all Agilex5 silicon revisions. Register svc_data_mem_cleanup() as a devm action on the DMA path to free any buffers leaked by service clients on driver unbind. Guard err_destroy_pool against NULL genpool for the early-exit DMA path. Signed-off-by: Adrian Ng Ho Yin --- drivers/firmware/stratix10-svc.c | 86 +++++++++++++++++++++++++++----- 1 file changed, 74 insertions(+), 12 deletions(-) diff --git a/drivers/firmware/stratix10-svc.c b/drivers/firmware/stratix10-= svc.c index 4a2071d57399..4b96e795ffd0 100644 --- a/drivers/firmware/stratix10-svc.c +++ b/drivers/firmware/stratix10-svc.c @@ -62,6 +62,9 @@ #define SVC_SDM_DMA_ADDR_BITS 29 #define SVC_SDM_DMA_ADDR_OFFSET 0x80000000UL =20 +/* Per-compatible feature flags stored in of_device_id.data */ +#define SVC_FLAG_USE_DMA_MEM BIT(0) + /* stratix10 service layer clients */ #define STRATIX10_RSU "stratix10-rsu" =20 @@ -2006,6 +2009,7 @@ EXPORT_SYMBOL_GPL(stratix10_svc_free_memory); static const struct of_device_id stratix10_svc_drv_match[] =3D { {.compatible =3D "intel,stratix10-svc"}, {.compatible =3D "intel,agilex-svc"}, + {.compatible =3D "intel,agilex5-svc", .data =3D (void *)SVC_FLAG_USE_DMA_= MEM}, {}, }; =20 @@ -2016,13 +2020,39 @@ static const char * const chan_names[SVC_NUM_CHANNE= L] =3D { SVC_CLIENT_HWMON }; =20 +static void svc_data_mem_cleanup(void *data) +{ + struct stratix10_svc_controller *ctrl =3D data; + struct stratix10_svc_data_mem *pmem, *tmp; + + guard(mutex)(&svc_mem_lock); + + list_for_each_entry_safe(pmem, tmp, &svc_data_mem, node) { + dev_warn(ctrl->dev, "leaked svc buffer %p, freeing on unbind\n", + pmem->vaddr); + if (ctrl->use_dma_mem) { + dma_free_coherent(ctrl->dev, pmem->size, + pmem->vaddr, pmem->dma_addr); + list_del(&pmem->node); + kfree(pmem); + } else { + gen_pool_free(ctrl->genpool, + (unsigned long)pmem->vaddr, pmem->size); + pmem->vaddr =3D NULL; + list_del(&pmem->node); + } + } +} + static int stratix10_svc_drv_probe(struct platform_device *pdev) { struct device *dev =3D &pdev->dev; struct stratix10_svc_controller *controller; - struct gen_pool *genpool; + struct gen_pool *genpool =3D NULL; struct stratix10_svc_sh_memory *sh_memory; struct stratix10_svc *svc =3D NULL; + struct arm_smccc_res res; + bool use_dma_mem =3D false; =20 svc_invoke_fn *invoke_fn; size_t fifo_size; @@ -2033,18 +2063,41 @@ static int stratix10_svc_drv_probe(struct platform_= device *pdev) if (IS_ERR(invoke_fn)) return -EINVAL; =20 - sh_memory =3D devm_kzalloc(dev, sizeof(*sh_memory), GFP_KERNEL); - if (!sh_memory) - return -ENOMEM; + use_dma_mem =3D ((unsigned long)of_device_get_match_data(dev) & + SVC_FLAG_USE_DMA_MEM); =20 - sh_memory->invoke_fn =3D invoke_fn; - ret =3D svc_get_sh_memory(pdev, sh_memory); - if (ret) - return ret; + if (use_dma_mem) { + if (!iommu_get_domain_for_dev(dev)) { + dev_err(dev, + "SMMU is required for agilex5-svc but no IOMMU domain found\n"); + dev_err(dev, + "Ensure the SMMU node is enabled in the device tree and 'iommus' is se= t for this node\n"); + return -ENODEV; + } =20 - genpool =3D svc_create_memory_pool(pdev, sh_memory); - if (IS_ERR(genpool)) - return PTR_ERR(genpool); + invoke_fn(INTEL_SIP_SMC_SDM_REMAPPER_CONFIG, + INTEL_SIP_SMC_SDM_REMAPPER_BYPASS, + 0, 0, 0, 0, 0, 0, &res); + } + + if (use_dma_mem) { + ret =3D svc_setup_dma_memory(pdev); + if (ret) + return ret; + } else { + sh_memory =3D devm_kzalloc(dev, sizeof(*sh_memory), GFP_KERNEL); + if (!sh_memory) + return -ENOMEM; + + sh_memory->invoke_fn =3D invoke_fn; + ret =3D svc_get_sh_memory(pdev, sh_memory); + if (ret) + return ret; + + genpool =3D svc_create_memory_pool(pdev, sh_memory); + if (IS_ERR(genpool)) + return PTR_ERR(genpool); + } =20 /* allocate service controller and supporting channel */ controller =3D devm_kzalloc(dev, struct_size(controller, chans, SVC_NUM_C= HANNEL), @@ -2059,9 +2112,17 @@ static int stratix10_svc_drv_probe(struct platform_d= evice *pdev) controller->num_active_client =3D 0; controller->genpool =3D genpool; controller->invoke_fn =3D invoke_fn; + controller->use_dma_mem =3D use_dma_mem; + controller->dma_addr_offset =3D use_dma_mem ? SVC_SDM_DMA_ADDR_OFFSET : 0; INIT_LIST_HEAD(&controller->node); init_completion(&controller->complete_status); =20 + if (use_dma_mem) { + ret =3D devm_add_action_or_reset(dev, svc_data_mem_cleanup, controller); + if (ret) + goto err_destroy_pool; + } + ret =3D stratix10_svc_async_init(controller); if (ret) { dev_dbg(dev, "Intel Service Layer Driver: Error on stratix10_svc_async_i= nit %d\n", @@ -2129,7 +2190,8 @@ static int stratix10_svc_drv_probe(struct platform_de= vice *pdev) kfifo_free(&controller->chans[i].svc_fifo); stratix10_svc_async_exit(controller); err_destroy_pool: - gen_pool_destroy(genpool); + if (genpool) + gen_pool_destroy(genpool); =20 return ret; } --=20 2.49.GIT