The patch removes the dep on PcdUse5LevelPageTable. Now the payload inherits the 5-level paging setting from bootloader in IA-32e mode and uses 4-level paging in legacy protected mode. This fix the potential issue when bootloader enables 5-level paging but 64bit payload sets 4-level page table to CR3 resulting CPU exception because PcdUse5LevelPageTable is FALSE. Signed-off-by: Ray Ni <ray.ni@intel.com> Reviewed-by: Guo Dong <guo.dong@intel.com> Cc: Ray Ni <ray.ni@intel.com> Reviewed-by: Maurice Ma <maurice.ma@intel.com> Cc: Benjamin You <benjamin.you@intel.com>
		
			
				
	
	
		
			99 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			INI
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			INI
		
	
	
	
	
	
| ## @file
 | |
| #  This is the first module for UEFI payload.
 | |
| #
 | |
| #  Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
 | |
| #
 | |
| #  SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| #
 | |
| ##
 | |
| 
 | |
| [Defines]
 | |
|   INF_VERSION                    = 0x00010005
 | |
|   BASE_NAME                      = UniversalPayloadEntry
 | |
|   FILE_GUID                      = D4F0F269-1209-4A66-8039-C4D5A700EA4E
 | |
|   MODULE_TYPE                    = SEC
 | |
|   VERSION_STRING                 = 1.0
 | |
| 
 | |
| #
 | |
| # The following information is for reference only and not required by the build tools.
 | |
| #
 | |
| #  VALID_ARCHITECTURES           = IA32 X64
 | |
| #
 | |
| 
 | |
| [Sources]
 | |
|   UniversalPayloadEntry.c
 | |
|   LoadDxeCore.c
 | |
|   MemoryAllocation.c
 | |
|   PrintHob.c
 | |
|   AcpiTable.c
 | |
| 
 | |
| [Sources.Ia32]
 | |
|   X64/VirtualMemory.h
 | |
|   X64/VirtualMemory.c
 | |
|   Ia32/DxeLoadFunc.c
 | |
|   Ia32/IdtVectorAsm.nasm
 | |
| 
 | |
| [Sources.X64]
 | |
|   X64/VirtualMemory.h
 | |
|   X64/VirtualMemory.c
 | |
|   X64/DxeLoadFunc.c
 | |
| 
 | |
| [Packages]
 | |
|   MdePkg/MdePkg.dec
 | |
|   MdeModulePkg/MdeModulePkg.dec
 | |
|   UefiCpuPkg/UefiCpuPkg.dec
 | |
|   UefiPayloadPkg/UefiPayloadPkg.dec
 | |
| 
 | |
| [LibraryClasses]
 | |
|   BaseMemoryLib
 | |
|   DebugLib
 | |
|   BaseLib
 | |
|   SerialPortLib
 | |
|   IoLib
 | |
|   HobLib
 | |
|   PeCoffLib
 | |
|   UefiCpuLib
 | |
| 
 | |
| [Guids]
 | |
|   gEfiMemoryTypeInformationGuid
 | |
|   gEfiFirmwareFileSystem2Guid
 | |
|   gEfiGraphicsInfoHobGuid
 | |
|   gEfiGraphicsDeviceInfoHobGuid
 | |
|   gUefiAcpiBoardInfoGuid
 | |
|   gEfiSmbiosTableGuid
 | |
|   gUefiSerialPortInfoGuid
 | |
|   gUniversalPayloadExtraDataGuid
 | |
|   gPcdDataBaseHobGuid
 | |
|   gUniversalPayloadSmbiosTableGuid
 | |
|   gEfiHobMemoryAllocBspStoreGuid
 | |
|   gUniversalPayloadAcpiTableGuid
 | |
|   gUniversalPayloadPciRootBridgeInfoGuid
 | |
|   gUniversalPayloadSmbios3TableGuid
 | |
|   gEdkiiBootManagerMenuFileGuid
 | |
| 
 | |
| [FeaturePcd.IA32]
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode      ## CONSUMES
 | |
| 
 | |
| [FeaturePcd.X64]
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplBuildPageTables       ## CONSUMES
 | |
| 
 | |
| 
 | |
| [Pcd.IA32,Pcd.X64]
 | |
|   gUefiPayloadPkgTokenSpaceGuid.PcdPcdDriverFile
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable                      ## SOMETIMES_CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask    ## CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdNullPointerDetectionPropertyMask    ## CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdHeapGuardPropertyMask               ## CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdCpuStackGuard                       ## CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdGhcbBase                            ## CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdGhcbSize                            ## CONSUMES
 | |
| 
 | |
|   gUefiPayloadPkgTokenSpaceGuid.PcdPayloadFdMemBase
 | |
|   gUefiPayloadPkgTokenSpaceGuid.PcdPayloadFdMemSize
 | |
|   gUefiPayloadPkgTokenSpaceGuid.PcdSystemMemoryUefiRegionSize
 | |
| 
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack               ## SOMETIMES_CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy ## SOMETIMES_CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdImageProtectionPolicy       ## SOMETIMES_CONSUMES
 | |
| 
 |