From nobody Fri Oct 2 13:10:16 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011065.outbound.protection.outlook.com [40.93.194.65]) (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 7A12319E968 for ; Fri, 31 Jul 2026 07:44:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.65 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785483864; cv=fail; b=aboh7+0zNqIyss0yf5PfN4RQLamNY+RQTX+gMdXDBPbOfoH7RA/U2AkpUZ1iWjr06YT94ud/GXoUuEQr1BFMYD9xhiob9euLxyfd1PFWzWpsf3wZfOP4soUbPKI7Hx/eRhbpnw5rOoC/VnKYWwKBP6hZ94XBHR92CxeM28DjpJI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785483864; c=relaxed/simple; bh=kfpDMhB6+uS/iHlB28+4VLy8fqKESdwRhEqY7UmJk/g=; h=From:To:Cc:Subject:Date:Message-ID:Content-Type:MIME-Version; b=bS8v0zu1RV9Pjtgu7TGNZ8ztbnmBvoDMKUicq1OvA9wfXq1Bh1oAJkXwmj4A7bT2tJ/16Mr08vV1UG7+5kUZJsCJiRLh8eFDlXXcsY+r52jpfp9mw32rdLSWenkxPzLfmh06GtllMdx0v3o32B4iFg8nBvx8hV/Qslcgqdw5vYc= 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=kmGkCvwp; arc=fail smtp.client-ip=40.93.194.65 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="kmGkCvwp" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fW430WSdNhv4pNF0S6rlQlUISxo+QdI1prSxgBP0op4s7obXUyC8Ip9dAvFNIQvlRAOkcnWr4ovd5W+R9Q+nhGarprNu1cktmlS2x+ps1dUvAtD/LqNO20lQmxeMqbq03Bc/+cGPH2ROjK5Beu8BiollW73mISxuekMPNYvfLruZXnOIkvy97AQWSBlY5JvqmF04qCZ7Xdd8MAsu8ahCmw4RVsm1rmt0V8DGwFV8LkkCUQywBxPR4F9wYFYTr4SWh4VDTfr9JAjzrSydPdURX7eBP+fEDo5sqo4lLT6uOI3Fox7mLEr3BNBU5QUzj5/FdvgupQMHt6iSQh+9J8eQow== 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=ucDlxpZltu4spE3bE33YeYs67ru/hOygw1nmILJMD6E=; b=yz7UhhffIxMRmYVEXXlxKVzhSCZqTltitTc4cu3BN36UjMohpYD0jXzcC6yCX9jIosSaEmzS112NtV6lECzXgTlc/ug+IH/hoqlAA7Oce/PH+8bySzjT+QhLgmwnLl7DI627lgqW2y+tAKStXl3L3CKIewClTlebId/xyWeIHcyngzUyemijhXqyHeYmUc7SwqVFBdCLiQwbipyL1UFtylIEnO3Xydo4z5kequZp43BjInh94RW3qwgd8akuizi9UjJwBwulClPkHynv/yVqoL+z+P/jZqsopT8rZqQUBgpz2j+0wKiPsgbCZ920pf+foKpwpbJXhruYkThumIa/6w== 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=ucDlxpZltu4spE3bE33YeYs67ru/hOygw1nmILJMD6E=; b=kmGkCvwpBRnIzj8NnjWwJgqMWdaOvLmjwtUx168Kd+Fbf8CPvvKRfwoes2tl+8GZLWQjdm4V6PlP4kDSJ6fdLCpfaUoc9hr9Nzy2IOwfZDYfodjKzj8rEBkP5JOUJpbCzO2bV8Mhhompt2LX2gSOJrOodCUUu7LEH+HVEo6iTfoFTjkISvKQEwN6sbGFNJOCGbtLBgwUajntAO8Eb11PzB7AiU5grBqMD5Y1Tnlo082jOIp70l/L/xL6fy9llpYeVSy1NCrJkNhscH8dHpoxjeA7wVtPH/UVpYIvlyqvSPE9ghnwBb7Q98SY5ZetYYZFMgh8bPnvtnfSUG8Kdtyyig== 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 IA3PR03MB8408.namprd03.prod.outlook.com (2603:10b6:208:546::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.15; Fri, 31 Jul 2026 07:44:19 +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.0270.015; Fri, 31 Jul 2026 07:44:19 +0000 From: Adrian Ng Ho Yin To: Dinh Nguyen , linux-kernel@vger.kernel.org Cc: Adrian Ng Ho Yin Subject: [PATCH] firmware: stratix10-svc: extend support for async generic mailbox command Date: Fri, 31 Jul 2026 15:37:55 +0800 Message-ID: <0c79a42e4083f3e969b3ec1198ef06bd3ee32da2.1785483276.git.adrian.ho.yin.ng@altera.com> X-Mailer: git-send-email 2.49.GIT Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BY3PR05CA0041.namprd05.prod.outlook.com (2603:10b6:a03:39b::16) 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_|IA3PR03MB8408:EE_ X-MS-Office365-Filtering-Correlation-Id: a20a0f44-a43d-4141-94a9-08deeed78655 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|23010399003|376014|55112099003|18002099003|3023799007|10067099003|11063799006|56012099006|6133799003; X-Microsoft-Antispam-Message-Info: 3mLzVWlgW3NUz7VxaWBwnNv6VEjgHpzeGQ+d0S8hu3PVfXMJ5/LvzFb2tQpEXCYFgpJrKUoFI3brVWo3W5RxtJvgjZQoUHw4TM2RKYMBq46DrAYC1xMz4gSRDUPl/WAp3HV/nne6Ti/DtdblKdUBqehFz+WlDa4b8dsTLZsbQM8Qq21RSLnrgY1eWBSSIIx4B3onVUxXEpB0sgou/IKpthI758uoWtiyVcy99Aoyffup8OBzvS8LQsmIGUbuKqam3uJgAe6bXk+EG1yhtNWZzoL9UFpe+UxjwaZz2pSgtMSeKECLZD3+DN2p8asVkSTS9ggT5YjPgjqprMpAXxb+z3RfwUpt9naCq6Uj+Acqn0sAgcldx9w/C+F2oWXHEHNnlPqbUc9wY7xJcYSeGSHdZ157M+nLbzAsDgt1uL7u5jbPyq89HrNBpqS3dz7V2d1pLZfLxcea3sOFngMAU77W9JXtnAxVRpm20b7C9QEg9sCPFckdNwEt2KcVNxDevH6H7ZjeB1p6i3363bo3op9bgQ0mMca2/0FtYt7Aibfm61nSA2vd3Alq132gYIXw/5AdlX4O1tnfrNn8McVGMGZKNmdSiqyOumuWMrONKKVWZekNUeQ2KZqfzjGpUSFwPDe7M1p3zHFhTdM1WfpVqgxsM2TA2eLpAsAWKdbWU6kBw+I= 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)(366016)(1800799024)(23010399003)(376014)(55112099003)(18002099003)(3023799007)(10067099003)(11063799006)(56012099006)(6133799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?V1tjeXz3xq2H+kv0mbLiKZWaUUN4zZBIjQHfl9ZtYnxR9JWfICbGyR09UzEK?= =?us-ascii?Q?pMi+kPtZ03yPKm1fXesNFxKTxa8Te0Dwxqqe4rHnAHSatKiRilHQhhcsqNMU?= =?us-ascii?Q?9Q3A90cBzICT6GWWEQaHN2czXIUQTKLdtsC6kI61YYb9dELF77bX1CE1FRNR?= =?us-ascii?Q?//PVKN9+fWQkzBrX+mmFzzb1FYb5qviBQL0oVvVFi7YOsN3YDgAzsKGRM1E8?= =?us-ascii?Q?8v8nFxhsOQXcBZRtx4BjJ5r5UYEngn14pw0Pxti4oCAiSCqtD8gHq8YxRpCL?= =?us-ascii?Q?ZGAnqDeLivcDypqoPU4kxrK8ngEo8LvF7mGPCT5nW9pI+YzopPp2+8nOBdqv?= =?us-ascii?Q?dn4EgZm0R3lVJ24yhIQhmlNFVZLdkE4KeqvbuQOxb/3JpMODjxb0cQ5HDbTN?= =?us-ascii?Q?e8yDHr73TkBgJ+pZUULlCZQedwqzspJdwVWIT5Rkc/dLhzvXT81gXHmj8FWm?= =?us-ascii?Q?wXzN+sHNQ3+4VZyayQytTdk6qyAPno4t6xrDPJ5A3IQTt0HGoL3mdV0Ho5+X?= =?us-ascii?Q?QJ80H0BaQ/o9I0KS14sEkqVhEW1t5tOv4oueMuBnbJmbazjX8eGCE9Q74URd?= =?us-ascii?Q?KNLrd/hpl7w/Upkd3lW0cmZZVu4sMrhqwZu1bgA6y/okctvKD1tTgcKP9n0i?= =?us-ascii?Q?iHenOMNXWKA5xt0aMwCEvyVm9rbTNSuwz2grr5Ub/beMCrLu+hrZ0O5jf5Jx?= =?us-ascii?Q?xZpev7mlcFIFg9ts5MWI37CUEgncp606nMb9JGxYgfFJdvgXCWTFZ+wlHCHB?= =?us-ascii?Q?hAW2StkqyC9fj/brls8yx2CnfNK5ZOCRTNYgg+5rW6xUBxI5KMLGUBXwgP8O?= =?us-ascii?Q?teFQXlfeyB/c8VHZjioqsX/SeKcfV0MQnZXWf8nOyzHHVv82+1v8nScNA/cR?= =?us-ascii?Q?0EHOcWump/ayqjWdKy2whtGrZB0SB742cHMTTtXxaNQnGvPxuKIKdQSO1GMb?= =?us-ascii?Q?abNqrVxCuqfDvNJA2p9Xd8HnRtHRMSfhAv/T8GpEjLp0412KF/80lo+oGOtA?= =?us-ascii?Q?k7WZ4B6nSLMVKTpNbNFtNJwPnafixwTnhjT5R0VPX9JsMa7VBd11rd4TGawO?= =?us-ascii?Q?calACzo+1Vo1EZ5MFK1hAKoOGlkoMbLDs1oCVxfUB5cqaZLhigxGFhGMr+JV?= =?us-ascii?Q?5HsO23A7k9ZlsNiJNLOzKljk6bpnKt1cSTpoEPb6mySfbenOIXDS4qg8iGNB?= =?us-ascii?Q?pspe8UfLf9hqXt5jE8VZ2qKhWuDag1k/C1IycdP/jyi8Q7nNWMQBLCN1HVLY?= =?us-ascii?Q?3okdf48QXYmqHfDnr+OgZwesnV53zn5mVWLaA/au7YHHb24RhJqWAjoKKc4g?= =?us-ascii?Q?Q/YEhifDimdTgHdRWXR67fCo+Vk0QpHGOOQeewuCvuKJ5PY+NcZ6sHKv1NiH?= =?us-ascii?Q?d2v+HUU6ARZdJGV0QPQZKn1BxtcWAJZwA/MroicTWGjP7Gq7AMpPvXmy1/dq?= =?us-ascii?Q?qb10HKzRiRVZxSwACz1ohVXMEDsC0QL756n0p5BKE4fLPHaKBFqnRnQUjV5a?= =?us-ascii?Q?crvsvhqXYLRJ+APk9YW0vuffEqa700MHqFNGitXSq6PtAvl7qb81QyI+AQH1?= =?us-ascii?Q?hPQ568ZwM7vxZnRb1DN2elA+X16qQD5jsizMXF7C+DY3DJTMTck+AsJ1V7GX?= =?us-ascii?Q?ob+E825+paTIj9eQ/6CXqauA96qwZBF1zS7RZ6HgkYqVgfgbvkRcRlT6mJrU?= =?us-ascii?Q?T7G+H49MofBT2n85Ri8vtkStwuLfMzrQcIB1hklZ/3IwpZRqi7wU2qKF3EhI?= =?us-ascii?Q?GaQE3EtrJXYFFygNve2zspUPsGFd5DY=3D?= X-OriginatorOrg: altera.com X-MS-Exchange-CrossTenant-Network-Message-Id: a20a0f44-a43d-4141-94a9-08deeed78655 X-MS-Exchange-CrossTenant-AuthSource: DM8PR03MB6230.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jul 2026 07:44:19.1519 (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: itiDroS7UQpjFonR9vW2eO5U6I+IImn3SUx16Yhu6e6kc8Duw0JSJ4Fz7h00/el748cENGOJ9QKwyQAQO94JLkBjUHG5O35FaG0r+tfTuqw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR03MB8408 Content-Type: text/plain; charset="utf-8" Add INTEL_SIP_SMC_ASYNC_MBOX_SEND (function ID 0xEE) to send a generic mailbox command to the SDM via the async SMC interface. Handle the new COMMAND_MBOX_SEND_CMD in stratix10_svc_async_send() by resolving input and output payload virtual addresses to their physical counterparts and populating SMC argument registers a2-a6. Also handle the response in stratix10_svc_async_prepare_response() by forwarding the SDM return code via kaddr1. Signed-off-by: Adrian Ng Ho Yin --- Note: This patch depends on the Agilex5 SVC enablement series: "[PATCH v2 0/5] Add Agilex5 support in SVC driver and FPGA configuration and partial reconfiguration support for Agilex5" (Message-ID: ) drivers/firmware/stratix10-svc.c | 28 +++++++++++++++++++- include/linux/firmware/intel/stratix10-smc.h | 22 +++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/drivers/firmware/stratix10-svc.c b/drivers/firmware/stratix10-= svc.c index 5e20057ee344..6db3c68155b1 100644 --- a/drivers/firmware/stratix10-svc.c +++ b/drivers/firmware/stratix10-svc.c @@ -1329,6 +1329,29 @@ int stratix10_svc_async_send(struct stratix10_svc_ch= an *chan, void *msg, args.a0 =3D INTEL_SIP_SMC_ASYNC_RSU_NOTIFY; args.a2 =3D p_msg->arg[0]; break; + case COMMAND_MBOX_SEND_CMD: { + struct stratix10_svc_data_mem *p_mem; + + args.a0 =3D INTEL_SIP_SMC_ASYNC_MBOX_SEND; + args.a2 =3D p_msg->arg[0]; + + guard(mutex)(&svc_mem_lock); + list_for_each_entry(p_mem, &svc_data_mem, node) + if (p_mem->vaddr =3D=3D p_msg->payload) { + args.a3 =3D (unsigned long)p_mem->paddr; + args.a4 =3D p_msg->payload_length; + break; + } + if (p_msg->payload_output) { + list_for_each_entry(p_mem, &svc_data_mem, node) + if (p_mem->vaddr =3D=3D p_msg->payload_output) { + args.a5 =3D (unsigned long)p_mem->paddr; + args.a6 =3D p_msg->payload_length_output; + break; + } + } + break; + } default: dev_err(ctrl->dev, "Invalid command ,%d\n", p_msg->command); ret =3D -EINVAL; @@ -1422,9 +1445,12 @@ static int stratix10_svc_async_prepare_response(stru= ct stratix10_svc_chan *chan, */ data->kaddr1 =3D (void *)&handle->res; break; + case COMMAND_MBOX_SEND_CMD: + data->kaddr1 =3D (void *)&handle->res.a2; + break; =20 default: - dev_alert(ctrl->dev, "Invalid command\n ,%d", p_msg->command); + dev_alert(ctrl->dev, "Invalid command ,%d", p_msg->command); return -ENOENT; } dev_dbg(ctrl->dev, "Async message completed transaction_id 0x%02x\n", diff --git a/include/linux/firmware/intel/stratix10-smc.h b/include/linux/f= irmware/intel/stratix10-smc.h index 9224974fffc4..0fc70409c9f6 100644 --- a/include/linux/firmware/intel/stratix10-smc.h +++ b/include/linux/firmware/intel/stratix10-smc.h @@ -752,4 +752,26 @@ 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_ASYNC_MBOX_SEND + * Async call to send a generic mailbox command to the SDM. + * Call register usage: + * a0 INTEL_SIP_SMC_ASYNC_MBOX_SEND + * a1 transaction job id + * a2 mailbox command + * a3 physical address of command buffer + * a4 size of command buffer + * a5 physical address of response buffer + * a6 size of response buffer + * a7-a17 not used + * + * Return status: + * a0 INTEL_SIP_SMC_STATUS_OK, INTEL_SIP_SMC_STATUS_REJECTED + * or INTEL_SIP_SMC_STATUS_BUSY + * a1-a17 not used + */ +#define INTEL_SIP_SMC_ASYNC_FUNC_ID_MBOX_SEND (0xEE) +#define INTEL_SIP_SMC_ASYNC_MBOX_SEND \ + INTEL_SIP_SMC_ASYNC_VAL(INTEL_SIP_SMC_ASYNC_FUNC_ID_MBOX_SEND) #endif --=20 2.49.GIT