From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.1284.1689086256208468876 for ; Tue, 11 Jul 2023 07:37:36 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: nishant.sharma@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 306D71FB; Tue, 11 Jul 2023 07:38:18 -0700 (PDT) Received: from usa.arm.com (iss-desktop02.cambridge.arm.com [10.1.196.79]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 1288B3F740; Tue, 11 Jul 2023 07:37:34 -0700 (PDT) From: "Nishant Sharma" To: devel@edk2.groups.io Cc: Ard Biesheuvel , Sami Mujawar , Thomas Abraham , Sayanta Pattanayak , Achin Gupta Subject: [edk2-platforms][PATCH V1 20/20] StandaloneMmPkg: Add support for MM requests as FF-A direct messages Date: Tue, 11 Jul 2023 15:36:58 +0100 Message-Id: <20230711143658.781597-21-nishant.sharma@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230711143658.781597-1-nishant.sharma@arm.com> References: <20230711143658.781597-1-nishant.sharma@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Achin Gupta This patch adds support for correctly receiving a request for a Standalome MM driver service using the MM communication protocol packaged as an FF-A direct request message. Signed-off-by: Achin Gupta Signed-off-by: Nishant Sharma --- StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/StandaloneMmCoreE= ntryPoint.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/Stand= aloneMmCoreEntryPoint.c b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPo= int/Arm/StandaloneMmCoreEntryPoint.c index a763bf8509b2..e0987cba21f9 100644 --- a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/StandaloneMm= CoreEntryPoint.c +++ b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/StandaloneMm= CoreEntryPoint.c @@ -198,6 +198,8 @@ DelegatedEventLoop ( BOOLEAN FfaEnabled; EFI_STATUS Status; UINTN SvcStatus; + UINT16 SenderPartId; + UINT16 ReceiverPartId; =20 while (TRUE) { ArmCallSvc (EventCompleteSvcArgs); @@ -214,9 +216,12 @@ DelegatedEventLoop ( =20 FfaEnabled =3D FixedPcdGet32 (PcdFfaEnable !=3D 0); if (FfaEnabled) { + SenderPartId =3D EventCompleteSvcArgs->Arg1 >> 16; + ReceiverPartId =3D EventCompleteSvcArgs->Arg1 & 0xffff; Status =3D CpuDriverEntryPoint ( EventCompleteSvcArgs->Arg0, - EventCompleteSvcArgs->Arg6, + // Assume CPU number 0 + 0, EventCompleteSvcArgs->Arg3 ); if (EFI_ERROR (Status)) { @@ -266,7 +271,7 @@ DelegatedEventLoop ( =20 if (FfaEnabled) { EventCompleteSvcArgs->Arg0 =3D ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP= ; - EventCompleteSvcArgs->Arg1 =3D 0; + EventCompleteSvcArgs->Arg1 =3D ReceiverPartId << 16 | SenderPartId= ; EventCompleteSvcArgs->Arg2 =3D 0; EventCompleteSvcArgs->Arg3 =3D ARM_SVC_ID_SP_EVENT_COMPLETE; EventCompleteSvcArgs->Arg4 =3D SvcStatus; --=20 2.34.1