]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EmulatorPkg/Win/Host/WinHost.c
EmulatorPkg: Add persistent memory in EmuThunkPpi
[mirror_edk2.git] / EmulatorPkg / Win / Host / WinHost.c
index 084cd4cbd7ec4a7a06802fb51c4312c7bba285eb..19199c648c1532207ec26542a3afb14f8113c751 100644 (file)
@@ -450,6 +450,7 @@ Returns:
   UINTN                SystemAffinityMask;\r
   INT32                LowBit;\r
   UINTN                ResetJumpCode;\r
+  EMU_THUNK_PPI        *SecEmuThunkPpi;\r
 \r
   //\r
   // Enable the privilege so that RTC driver can successfully run SetTime()\r
@@ -491,7 +492,15 @@ Returns:
   //\r
   // PPIs pased into PEI_CORE\r
   //\r
-  AddThunkPpi (EFI_PEI_PPI_DESCRIPTOR_PPI, &gEmuThunkPpiGuid, &mSecEmuThunkPpi);\r
+  SecEmuThunkPpi = AllocateZeroPool (sizeof (EMU_THUNK_PPI) + FixedPcdGet32 (PcdPersistentMemorySize));\r
+  if (SecEmuThunkPpi == NULL) {\r
+    SecPrint ("ERROR : Can not allocate memory for SecEmuThunkPpi.  Exiting.\n");\r
+    exit (1);\r
+  }\r
+\r
+  CopyMem (SecEmuThunkPpi, &mSecEmuThunkPpi, sizeof (EMU_THUNK_PPI));\r
+  SecEmuThunkPpi->PersistentMemorySize = FixedPcdGet32 (PcdPersistentMemorySize);\r
+  AddThunkPpi (EFI_PEI_PPI_DESCRIPTOR_PPI, &gEmuThunkPpiGuid, SecEmuThunkPpi);\r
   AddThunkPpi (EFI_PEI_PPI_DESCRIPTOR_PPI, &gEfiPeiReset2PpiGuid, &mEmuReset2Ppi);\r
 \r
   //\r