EFI_STATUS\r
EFIAPI\r
MmCommunication2Communicate (\r
- IN CONST EFI_MM_COMMUNICATION2_PROTOCOL *This,\r
- IN OUT VOID *CommBufferPhysical,\r
- IN OUT VOID *CommBufferVirtual,\r
- IN OUT UINTN *CommSize OPTIONAL\r
+ IN CONST EFI_MM_COMMUNICATION2_PROTOCOL *This,\r
+ IN OUT VOID *CommBufferPhysical,\r
+ IN OUT VOID *CommBufferVirtual,\r
+ IN OUT UINTN *CommSize OPTIONAL\r
)\r
{\r
- EFI_MM_COMMUNICATE_HEADER *CommunicateHeader;\r
- ARM_SMC_ARGS CommunicateSmcArgs;\r
- EFI_STATUS Status;\r
- UINTN BufferSize;\r
+ EFI_MM_COMMUNICATE_HEADER *CommunicateHeader;\r
+ ARM_SMC_ARGS CommunicateSmcArgs;\r
+ EFI_STATUS Status;\r
+ UINTN BufferSize;\r
\r
- Status = EFI_ACCESS_DENIED;\r
+ Status = EFI_ACCESS_DENIED;\r
BufferSize = 0;\r
\r
ZeroMem (&CommunicateSmcArgs, sizeof (ARM_SMC_ARGS));\r
// This case can be used by the consumer of this driver to find out the\r
// max size that can be used for allocating CommBuffer.\r
if ((*CommSize == 0) ||\r
- (*CommSize > mNsCommBuffMemRegion.Length)) {\r
+ (*CommSize > mNsCommBuffMemRegion.Length))\r
+ {\r
*CommSize = mNsCommBuffMemRegion.Length;\r
return EFI_BAD_BUFFER_SIZE;\r
}\r
+\r
//\r
// CommSize must match MessageLength + sizeof (EFI_MM_COMMUNICATE_HEADER);\r
//\r
if (*CommSize != BufferSize) {\r
- return EFI_INVALID_PARAMETER;\r
+ return EFI_INVALID_PARAMETER;\r
}\r
}\r
\r
// environment then return the expected size.\r
//\r
if ((BufferSize == 0) ||\r
- (BufferSize > mNsCommBuffMemRegion.Length)) {\r
+ (BufferSize > mNsCommBuffMemRegion.Length))\r
+ {\r
CommunicateHeader->MessageLength = mNsCommBuffMemRegion.Length -\r
sizeof (CommunicateHeader->HeaderGuid) -\r
sizeof (CommunicateHeader->MessageLength);\r
ArmCallSmc (&CommunicateSmcArgs);\r
\r
switch (CommunicateSmcArgs.Arg0) {\r
- case ARM_SMC_MM_RET_SUCCESS:\r
- ZeroMem (CommBufferVirtual, BufferSize);\r
- // On successful return, the size of data being returned is inferred from\r
- // MessageLength + Header.\r
- CommunicateHeader = (EFI_MM_COMMUNICATE_HEADER *)mNsCommBuffMemRegion.VirtualBase;\r
- BufferSize = CommunicateHeader->MessageLength +\r
- sizeof (CommunicateHeader->HeaderGuid) +\r
- sizeof (CommunicateHeader->MessageLength);\r
-\r
- CopyMem (\r
- CommBufferVirtual,\r
- (VOID *)mNsCommBuffMemRegion.VirtualBase,\r
- BufferSize\r
- );\r
- Status = EFI_SUCCESS;\r
- break;\r
-\r
- case ARM_SMC_MM_RET_INVALID_PARAMS:\r
- Status = EFI_INVALID_PARAMETER;\r
- break;\r
-\r
- case ARM_SMC_MM_RET_DENIED:\r
- Status = EFI_ACCESS_DENIED;\r
- break;\r
-\r
- case ARM_SMC_MM_RET_NO_MEMORY:\r
- // Unexpected error since the CommSize was checked for zero length\r
- // prior to issuing the SMC\r
- Status = EFI_OUT_OF_RESOURCES;\r
- ASSERT (0);\r
- break;\r
-\r
- default:\r
- Status = EFI_ACCESS_DENIED;\r
- ASSERT (0);\r
+ case ARM_SMC_MM_RET_SUCCESS:\r
+ ZeroMem (CommBufferVirtual, BufferSize);\r
+ // On successful return, the size of data being returned is inferred from\r
+ // MessageLength + Header.\r
+ CommunicateHeader = (EFI_MM_COMMUNICATE_HEADER *)mNsCommBuffMemRegion.VirtualBase;\r
+ BufferSize = CommunicateHeader->MessageLength +\r
+ sizeof (CommunicateHeader->HeaderGuid) +\r
+ sizeof (CommunicateHeader->MessageLength);\r
+\r
+ CopyMem (\r
+ CommBufferVirtual,\r
+ (VOID *)mNsCommBuffMemRegion.VirtualBase,\r
+ BufferSize\r
+ );\r
+ Status = EFI_SUCCESS;\r
+ break;\r
+\r
+ case ARM_SMC_MM_RET_INVALID_PARAMS:\r
+ Status = EFI_INVALID_PARAMETER;\r
+ break;\r
+\r
+ case ARM_SMC_MM_RET_DENIED:\r
+ Status = EFI_ACCESS_DENIED;\r
+ break;\r
+\r
+ case ARM_SMC_MM_RET_NO_MEMORY:\r
+ // Unexpected error since the CommSize was checked for zero length\r
+ // prior to issuing the SMC\r
+ Status = EFI_OUT_OF_RESOURCES;\r
+ ASSERT (0);\r
+ break;\r
+\r
+ default:\r
+ Status = EFI_ACCESS_DENIED;\r
+ ASSERT (0);\r
}\r
\r
return Status;\r
EFIAPI\r
NotifySetVirtualAddressMap (\r
IN EFI_EVENT Event,\r
- IN VOID *Context\r
+ IN VOID *Context\r
)\r
{\r
EFI_STATUS Status;\r
(VOID **)&mNsCommBuffMemRegion.VirtualBase\r
);\r
if (EFI_ERROR (Status)) {\r
- DEBUG ((DEBUG_ERROR, "NotifySetVirtualAddressMap():"\r
- " Unable to convert MM runtime pointer. Status:0x%r\n", Status));\r
+ DEBUG ((\r
+ DEBUG_ERROR,\r
+ "NotifySetVirtualAddressMap():"\r
+ " Unable to convert MM runtime pointer. Status:0x%r\n",\r
+ Status\r
+ ));\r
}\r
-\r
}\r
\r
STATIC\r
EFI_STATUS\r
-GetMmCompatibility ()\r
+GetMmCompatibility (\r
+ )\r
{\r
- EFI_STATUS Status;\r
- UINT32 MmVersion;\r
- ARM_SMC_ARGS MmVersionArgs;\r
+ EFI_STATUS Status;\r
+ UINT32 MmVersion;\r
+ ARM_SMC_ARGS MmVersionArgs;\r
\r
// MM_VERSION uses SMC32 calling conventions\r
MmVersionArgs.Arg0 = ARM_SMC_ID_MM_VERSION_AARCH32;\r
\r
MmVersion = MmVersionArgs.Arg0;\r
\r
- if ((MM_MAJOR_VER(MmVersion) == MM_CALLER_MAJOR_VER) &&\r
- (MM_MINOR_VER(MmVersion) >= MM_CALLER_MINOR_VER)) {\r
- DEBUG ((DEBUG_INFO, "MM Version: Major=0x%x, Minor=0x%x\n",\r
- MM_MAJOR_VER(MmVersion), MM_MINOR_VER(MmVersion)));\r
+ if ((MM_MAJOR_VER (MmVersion) == MM_CALLER_MAJOR_VER) &&\r
+ (MM_MINOR_VER (MmVersion) >= MM_CALLER_MINOR_VER))\r
+ {\r
+ DEBUG ((\r
+ DEBUG_INFO,\r
+ "MM Version: Major=0x%x, Minor=0x%x\n",\r
+ MM_MAJOR_VER (MmVersion),\r
+ MM_MINOR_VER (MmVersion)\r
+ ));\r
Status = EFI_SUCCESS;\r
} else {\r
- DEBUG ((DEBUG_ERROR, "Incompatible MM Versions.\n Current Version: Major=0x%x, Minor=0x%x.\n Expected: Major=0x%x, Minor>=0x%x.\n",\r
- MM_MAJOR_VER(MmVersion), MM_MINOR_VER(MmVersion), MM_CALLER_MAJOR_VER, MM_CALLER_MINOR_VER));\r
+ DEBUG ((\r
+ DEBUG_ERROR,\r
+ "Incompatible MM Versions.\n Current Version: Major=0x%x, Minor=0x%x.\n Expected: Major=0x%x, Minor>=0x%x.\n",\r
+ MM_MAJOR_VER (MmVersion),\r
+ MM_MINOR_VER (MmVersion),\r
+ MM_CALLER_MAJOR_VER,\r
+ MM_CALLER_MINOR_VER\r
+ ));\r
Status = EFI_UNSUPPORTED;\r
}\r
\r
return Status;\r
}\r
\r
-STATIC EFI_GUID* CONST mGuidedEventGuid[] = {\r
+STATIC EFI_GUID *CONST mGuidedEventGuid[] = {\r
&gEfiEndOfDxeEventGroupGuid,\r
&gEfiEventExitBootServicesGuid,\r
&gEfiEventReadyToBootGuid,\r
};\r
\r
-STATIC EFI_EVENT mGuidedEvent[ARRAY_SIZE (mGuidedEventGuid)];\r
+STATIC EFI_EVENT mGuidedEvent[ARRAY_SIZE (mGuidedEventGuid)];\r
\r
/**\r
Event notification that is fired when GUIDed Event Group is signaled.\r
IN VOID *Context\r
)\r
{\r
- EFI_MM_COMMUNICATE_HEADER Header;\r
- UINTN Size;\r
+ EFI_MM_COMMUNICATE_HEADER Header;\r
+ UINTN Size;\r
\r
//\r
// Use Guid to initialize EFI_SMM_COMMUNICATE_HEADER structure\r
//\r
CopyGuid (&Header.HeaderGuid, Context);\r
Header.MessageLength = 1;\r
- Header.Data[0] = 0;\r
+ Header.Data[0] = 0;\r
\r
Size = sizeof (Header);\r
MmCommunication2Communicate (&mMmCommunication2, &Header, &Header, &Size);\r
EFI_STATUS\r
EFIAPI\r
MmCommunication2Initialize (\r
- IN EFI_HANDLE ImageHandle,\r
+ IN EFI_HANDLE ImageHandle,\r
IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
- EFI_STATUS Status;\r
- UINTN Index;\r
+ EFI_STATUS Status;\r
+ UINTN Index;\r
\r
// Check if we can make the MM call\r
Status = GetMmCompatibility ();\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
goto ReturnErrorStatus;\r
}\r
\r
mNsCommBuffMemRegion.PhysicalBase = PcdGet64 (PcdMmBufferBase);\r
// During boot , Virtual and Physical are same\r
mNsCommBuffMemRegion.VirtualBase = mNsCommBuffMemRegion.PhysicalBase;\r
- mNsCommBuffMemRegion.Length = PcdGet64 (PcdMmBufferSize);\r
+ mNsCommBuffMemRegion.Length = PcdGet64 (PcdMmBufferSize);\r
\r
ASSERT (mNsCommBuffMemRegion.PhysicalBase != 0);\r
\r
EFI_MEMORY_RUNTIME\r
);\r
if (EFI_ERROR (Status)) {\r
- DEBUG ((DEBUG_ERROR, "MmCommunicateInitialize: "\r
- "Failed to add MM-NS Buffer Memory Space\n"));\r
+ DEBUG ((\r
+ DEBUG_ERROR,\r
+ "MmCommunicateInitialize: "\r
+ "Failed to add MM-NS Buffer Memory Space\n"\r
+ ));\r
goto ReturnErrorStatus;\r
}\r
\r
EFI_MEMORY_WB | EFI_MEMORY_XP | EFI_MEMORY_RUNTIME\r
);\r
if (EFI_ERROR (Status)) {\r
- DEBUG ((DEBUG_ERROR, "MmCommunicateInitialize: "\r
- "Failed to set MM-NS Buffer Memory attributes\n"));\r
+ DEBUG ((\r
+ DEBUG_ERROR,\r
+ "MmCommunicateInitialize: "\r
+ "Failed to set MM-NS Buffer Memory attributes\n"\r
+ ));\r
goto CleanAddedMemorySpace;\r
}\r
\r
EFI_NATIVE_INTERFACE,\r
&mMmCommunication2\r
);\r
- if (EFI_ERROR(Status)) {\r
- DEBUG ((DEBUG_ERROR, "MmCommunicationInitialize: "\r
- "Failed to install MM communication protocol\n"));\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((\r
+ DEBUG_ERROR,\r
+ "MmCommunicationInitialize: "\r
+ "Failed to install MM communication protocol\n"\r
+ ));\r
goto CleanAddedMemorySpace;\r
}\r
\r
ASSERT_EFI_ERROR (Status);\r
\r
for (Index = 0; Index < ARRAY_SIZE (mGuidedEventGuid); Index++) {\r
- Status = gBS->CreateEventEx (EVT_NOTIFY_SIGNAL, TPL_CALLBACK,\r
- MmGuidedEventNotify, mGuidedEventGuid[Index],\r
- mGuidedEventGuid[Index], &mGuidedEvent[Index]);\r
+ Status = gBS->CreateEventEx (\r
+ EVT_NOTIFY_SIGNAL,\r
+ TPL_CALLBACK,\r
+ MmGuidedEventNotify,\r
+ mGuidedEventGuid[Index],\r
+ mGuidedEventGuid[Index],\r
+ &mGuidedEvent[Index]\r
+ );\r
ASSERT_EFI_ERROR (Status);\r
if (EFI_ERROR (Status)) {\r
while (Index-- > 0) {\r
gBS->CloseEvent (mGuidedEvent[Index]);\r
}\r
+\r
goto UninstallProtocol;\r
}\r
}\r
+\r
return EFI_SUCCESS;\r
\r
UninstallProtocol:\r