]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFsp2Pkg/FspSecCore/SecMain.c
IntelFsp2Pkg: Support FSP private temporary memory.
[mirror_edk2.git] / IntelFsp2Pkg / FspSecCore / SecMain.c
index c8de52e1d5f7d23d010089fd41a1c3fdf86b4ad6..540571187af171648272ffc49b11444b506cf7f6 100644 (file)
@@ -1,6 +1,6 @@
 /** @file\r
 \r
-  Copyright (c) 2014 - 2020, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2014 - 2021, Intel Corporation. All rights reserved.<BR>\r
   SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
@@ -150,15 +150,18 @@ SecStartup (
   SecCoreData.BootFirmwareVolumeBase = BootFirmwareVolume;\r
   SecCoreData.BootFirmwareVolumeSize = (UINT32)((EFI_FIRMWARE_VOLUME_HEADER *)BootFirmwareVolume)->FvLength;\r
 \r
-  SecCoreData.TemporaryRamBase       = (VOID*)(UINTN) TempRamBase;\r
+  //\r
+  // Support FSP reserved temporary memory from the whole temporary memory provided by bootloader.\r
+  // FSP reserved temporary memory will not be given to PeiCore.\r
+  //\r
+  SecCoreData.TemporaryRamBase       = (UINT8 *)(UINTN) TempRamBase  + PcdGet32 (PcdFspPrivateTemporaryRamSize);\r
+  SecCoreData.TemporaryRamSize       = SizeOfRam - PcdGet32 (PcdFspPrivateTemporaryRamSize);\r
   if (PcdGet8 (PcdFspHeapSizePercentage) == 0) {\r
-    SecCoreData.TemporaryRamSize       = SizeOfRam; // stack size that is going to be copied to the permanent memory\r
     SecCoreData.PeiTemporaryRamBase    = SecCoreData.TemporaryRamBase;\r
     SecCoreData.PeiTemporaryRamSize    = SecCoreData.TemporaryRamSize;\r
     SecCoreData.StackBase              = (VOID *)GetFspEntryStack(); // Share the same boot loader stack\r
     SecCoreData.StackSize              = 0;\r
   } else {\r
-    SecCoreData.TemporaryRamSize       = SizeOfRam;\r
     SecCoreData.PeiTemporaryRamBase    = SecCoreData.TemporaryRamBase;\r
     SecCoreData.PeiTemporaryRamSize    = SecCoreData.TemporaryRamSize * PcdGet8 (PcdFspHeapSizePercentage) / 100;\r
     SecCoreData.StackBase              = (VOID*)(UINTN)((UINTN)SecCoreData.TemporaryRamBase + SecCoreData.PeiTemporaryRamSize);\r