ArmPkg: ArmStandaloneMmCoreEntryPoint: Support 18 register DIRECT_REQ2
This change added the support for using 18 registers when FF-A DIRECT_REQ2 is used to communicate with MM core. This change was tested on QEMU SBSA and booted to Windows. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
This commit is contained in:
parent
8d03c42d38
commit
8baa1c5120
|
@ -726,10 +726,20 @@ SetEventCompleteSvcArgs (
|
|||
EventCompleteSvcArgs->Arg0 = ARM_FID_FFA_MSG_SEND_DIRECT_RESP2;
|
||||
|
||||
if (FfaMsgInfo->ServiceType == ServiceTypeMisc) {
|
||||
EventCompleteSvcArgs->Arg4 = mMiscMmCommunicateBuffer->DirectMsgArgs.Arg0;
|
||||
EventCompleteSvcArgs->Arg5 = mMiscMmCommunicateBuffer->DirectMsgArgs.Arg1;
|
||||
EventCompleteSvcArgs->Arg6 = mMiscMmCommunicateBuffer->DirectMsgArgs.Arg2;
|
||||
EventCompleteSvcArgs->Arg7 = mMiscMmCommunicateBuffer->DirectMsgArgs.Arg3;
|
||||
EventCompleteSvcArgs->Arg4 = mMiscMmCommunicateBuffer->DirectMsgArgs.Arg0;
|
||||
EventCompleteSvcArgs->Arg5 = mMiscMmCommunicateBuffer->DirectMsgArgs.Arg1;
|
||||
EventCompleteSvcArgs->Arg6 = mMiscMmCommunicateBuffer->DirectMsgArgs.Arg2;
|
||||
EventCompleteSvcArgs->Arg7 = mMiscMmCommunicateBuffer->DirectMsgArgs.Arg3;
|
||||
EventCompleteSvcArgs->Arg8 = mMiscMmCommunicateBuffer->DirectMsgArgs.Arg4;
|
||||
EventCompleteSvcArgs->Arg9 = mMiscMmCommunicateBuffer->DirectMsgArgs.Arg5;
|
||||
EventCompleteSvcArgs->Arg10 = mMiscMmCommunicateBuffer->DirectMsgArgs.Arg6;
|
||||
EventCompleteSvcArgs->Arg11 = mMiscMmCommunicateBuffer->DirectMsgArgs.Arg7;
|
||||
EventCompleteSvcArgs->Arg12 = mMiscMmCommunicateBuffer->DirectMsgArgs.Arg8;
|
||||
EventCompleteSvcArgs->Arg13 = mMiscMmCommunicateBuffer->DirectMsgArgs.Arg9;
|
||||
EventCompleteSvcArgs->Arg14 = mMiscMmCommunicateBuffer->DirectMsgArgs.Arg10;
|
||||
EventCompleteSvcArgs->Arg15 = mMiscMmCommunicateBuffer->DirectMsgArgs.Arg11;
|
||||
EventCompleteSvcArgs->Arg16 = mMiscMmCommunicateBuffer->DirectMsgArgs.Arg12;
|
||||
EventCompleteSvcArgs->Arg17 = mMiscMmCommunicateBuffer->DirectMsgArgs.Arg13;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -767,11 +777,22 @@ InitializeMiscMmCommunicateBuffer (
|
|||
{
|
||||
ZeroMem (Buffer, sizeof (MISC_MM_COMMUNICATE_BUFFER));
|
||||
|
||||
Buffer->MessageLength = sizeof (DIRECT_MSG_ARGS);
|
||||
Buffer->DirectMsgArgs.Arg0 = EventSvcArgs->Arg4;
|
||||
Buffer->DirectMsgArgs.Arg1 = EventSvcArgs->Arg5;
|
||||
Buffer->DirectMsgArgs.Arg2 = EventSvcArgs->Arg6;
|
||||
Buffer->DirectMsgArgs.Arg3 = EventSvcArgs->Arg7;
|
||||
Buffer->MessageLength = sizeof (DIRECT_MSG_ARGS);
|
||||
Buffer->DirectMsgArgs.Arg0 = EventSvcArgs->Arg4;
|
||||
Buffer->DirectMsgArgs.Arg1 = EventSvcArgs->Arg5;
|
||||
Buffer->DirectMsgArgs.Arg2 = EventSvcArgs->Arg6;
|
||||
Buffer->DirectMsgArgs.Arg3 = EventSvcArgs->Arg7;
|
||||
Buffer->DirectMsgArgs.Arg4 = EventSvcArgs->Arg8;
|
||||
Buffer->DirectMsgArgs.Arg5 = EventSvcArgs->Arg9;
|
||||
Buffer->DirectMsgArgs.Arg6 = EventSvcArgs->Arg10;
|
||||
Buffer->DirectMsgArgs.Arg7 = EventSvcArgs->Arg11;
|
||||
Buffer->DirectMsgArgs.Arg8 = EventSvcArgs->Arg12;
|
||||
Buffer->DirectMsgArgs.Arg9 = EventSvcArgs->Arg13;
|
||||
Buffer->DirectMsgArgs.Arg10 = EventSvcArgs->Arg14;
|
||||
Buffer->DirectMsgArgs.Arg11 = EventSvcArgs->Arg15;
|
||||
Buffer->DirectMsgArgs.Arg12 = EventSvcArgs->Arg16;
|
||||
Buffer->DirectMsgArgs.Arg13 = EventSvcArgs->Arg17;
|
||||
|
||||
CopyGuid (&Buffer->HeaderGuid, ServiceGuid);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue