## @file\r
# Sec Core for FSP\r
#\r
-# Copyright (c) 2016 - 2019, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2016 - 2021, Intel Corporation. All rights reserved.<BR>\r
#\r
# SPDX-License-Identifier: BSD-2-Clause-Patent\r
#\r
gIntelFsp2PkgTokenSpaceGuid.PcdFspTemporaryRamSize ## CONSUMES\r
gIntelFsp2PkgTokenSpaceGuid.PcdFspHeapSizePercentage ## CONSUMES\r
gIntelFsp2PkgTokenSpaceGuid.PcdFspMaxInterruptSupported ## CONSUMES\r
+ gIntelFsp2PkgTokenSpaceGuid.PcdFspPrivateTemporaryRamSize ## CONSUMES\r
\r
[Ppis]\r
gEfiTemporaryRamSupportPpiGuid ## PRODUCES\r
/** @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
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
## @file\r
# Provides driver and definitions to build fsp in EDKII bios.\r
#\r
-# Copyright (c) 2014 - 2019, 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
# Maximal Interrupt supported in IDT table.\r
#\r
gIntelFsp2PkgTokenSpaceGuid.PcdFspMaxInterruptSupported | 34| UINT8|0x10000005\r
+ #\r
+ # Allows FSP-M to reserve a section of Temporary RAM for implementation specific use.\r
+ # Reduces the amount of memory available for the PeiCore heap.\r
+ #\r
+ gIntelFsp2PkgTokenSpaceGuid.PcdFspPrivateTemporaryRamSize |0x00000000|UINT32|0x10000006\r
\r
[PcdsFixedAtBuild,PcdsDynamic,PcdsDynamicEx]\r
gIntelFsp2PkgTokenSpaceGuid.PcdFspReservedMemoryLength |0x00100000|UINT32|0x46530000\r