]> git.proxmox.com Git - mirror_edk2.git/commitdiff
PeiInstallPeiMemory should only be called one time.
authorklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 12 Mar 2009 07:43:02 +0000 (07:43 +0000)
committerklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 12 Mar 2009 07:43:02 +0000 (07:43 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7867 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Core/Pei/Memory/MemoryServices.c

index 22e04cd46abcfba014978a49c7e471b094ae6861..02e83a18fc8543af6f393c9f4519991beeeb8b48 100644 (file)
@@ -89,6 +89,17 @@ PeiInstallPeiMemory (
   DEBUG ((EFI_D_INFO, "PeiInstallPeiMemory MemoryBegin 0x%LX, MemoryLength 0x%LX\n", MemoryBegin, MemoryLength));\r
   PrivateData = PEI_CORE_INSTANCE_FROM_PS_THIS (PeiServices);\r
 \r
+  //\r
+  // PEI_SERVICE.InstallPeiMemory should only be called one time during whole PEI phase.\r
+  // If it is invoked more than one time, ASSERT information is given for developer debugging in debug tip and\r
+  // simply return EFI_SUCESS in release tip to ignore it.\r
+  // \r
+  if (PrivateData->PeiMemoryInstalled) {\r
+    DEBUG ((EFI_D_ERROR, "ERROR: PeiInstallPeiMemory is called more than once!\n"));\r
+    ASSERT (PrivateData->PeiMemoryInstalled);\r
+    return EFI_SUCCESS;\r
+  }\r
+  \r
   PrivateData->PhysicalMemoryBegin   = MemoryBegin;\r
   PrivateData->PhysicalMemoryLength  = MemoryLength;\r
   PrivateData->FreePhysicalMemoryTop = MemoryBegin + MemoryLength;\r