mirror of https://github.com/acidanthera/audk.git
MdeModulePkg: Add PcdDxeIplBuildPageTables for DxeIpl X64 to optionally not rebuild the page tables.
signed-off-by: andrewfish reviewed-by: rsun3 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12016 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
c4c085a2a6
commit
e47f0da408
|
@ -90,6 +90,9 @@
|
|||
[FeaturePcd.IA32]
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
|
||||
|
||||
[FeaturePcd.X64]
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplBuildPageTables
|
||||
|
||||
[FeaturePcd]
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportUefiDecompress
|
||||
|
||||
|
|
|
@ -52,10 +52,12 @@ HandOffToDxeCore (
|
|||
TopOfStack = (VOID *) ((UINTN) BaseOfStack + EFI_SIZE_TO_PAGES (STACK_SIZE) * EFI_PAGE_SIZE - CPU_STACK_ALIGNMENT);
|
||||
TopOfStack = ALIGN_POINTER (TopOfStack, CPU_STACK_ALIGNMENT);
|
||||
|
||||
if (FeaturePcdGet (PcdDxeIplBuildPageTables)) {
|
||||
//
|
||||
// Create page table and save PageMapLevel4 to CR3
|
||||
//
|
||||
PageTables = CreateIdentityMappingPageTables ();
|
||||
}
|
||||
|
||||
//
|
||||
// End of PEI phase signal
|
||||
|
@ -63,7 +65,9 @@ HandOffToDxeCore (
|
|||
Status = PeiServicesInstallPpi (&gEndOfPeiSignalPpi);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
if (FeaturePcdGet (PcdDxeIplBuildPageTables)) {
|
||||
AsmWriteCr3 (PageTables);
|
||||
}
|
||||
|
||||
//
|
||||
// Update the contents of BSP stack HOB to reflect the real stack info passed to DxeCore.
|
||||
|
|
|
@ -364,6 +364,12 @@
|
|||
#
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode|TRUE|BOOLEAN|0x0001003b
|
||||
|
||||
##
|
||||
# This feature flag specifies whether DxeIpl should rebuild page tables. This flag only
|
||||
# makes sense in the case where the DxeIpl and the DxeCore are both X64.
|
||||
#
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplBuildPageTables|TRUE|BOOLEAN|0x0001003c
|
||||
|
||||
[PcdsFixedAtBuild]
|
||||
## Dynamic type PCD can be registered callback function for Pcd setting action.
|
||||
# PcdMaxPeiPcdCallBackNumberPerPcdEntry indicate maximum number of callback function
|
||||
|
|
Loading…
Reference in New Issue