Files
system76-edk2/UefiCpuPkg/SecCore/SecCore.inf
Jiaxin Wu b4d3b77973 UefiCpuPkg/SecCore: Migrate page table to permanent memory
Background:
For arch X64, system will enable the page table in SPI to cover 0-512G
range via CR4.PAE & MSR.LME & CR0.PG & CR3 setting (see ResetVector code).
Existing code doesn't cover the higher address access above 512G before
memory-discovered callback. That will be potential problem if system
access the higher address after the transition from temporary RAM to
permanent MEM RAM.

Solution:
This patch is to migrate page table to permanent memory to map entire physical
address space if CR0.PG is set during temporary RAM Done.

Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Zeng Star <star.zeng@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
2023-05-31 04:48:36 +00:00

85 lines
2.1 KiB
INI

## @file
# SecCore module that implements the SEC phase.
#
# This is the first module taking control of the platform upon power-on/reset.
# It implements the first phase of the security phase. The entry point function is
# _ModuleEntryPoint in PlatformSecLib. The entry point function will switch to
# protected mode, setup flat memory model, enable temporary memory and
# call into SecStartup().
#
# Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = SecCore
MODULE_UNI_FILE = SecCore.uni
FILE_GUID = 1BA0062E-C779-4582-8566-336AE8F78F09
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 EBC
#
[Sources]
SecMain.c
SecMain.h
FindPeiCore.c
SecBist.c
[Sources.IA32]
Ia32/ResetVec.nasmb
[Packages]
MdePkg/MdePkg.dec
MdeModulePkg/MdeModulePkg.dec
UefiCpuPkg/UefiCpuPkg.dec
[LibraryClasses]
BaseMemoryLib
DebugLib
PlatformSecLib
PcdLib
DebugAgentLib
CpuLib
PeCoffGetEntryPointLib
PeCoffExtraActionLib
CpuExceptionHandlerLib
ReportStatusCodeLib
PeiServicesLib
PeiServicesTablePointerLib
HobLib
CpuPageTableLib
[Ppis]
## SOMETIMES_CONSUMES
## PRODUCES
gEfiSecPlatformInformationPpiGuid
## SOMETIMES_CONSUMES
## SOMETIMES_PRODUCES
gEfiSecPlatformInformation2PpiGuid
gEfiTemporaryRamDonePpiGuid ## PRODUCES
## NOTIFY
## SOMETIMES_CONSUMES
gPeiSecPerformancePpiGuid
gEfiPeiCoreFvLocationPpiGuid
## CONSUMES
gRepublishSecPpiPpiGuid
[Guids]
## SOMETIMES_PRODUCES ## HOB
gEfiFirmwarePerformanceGuid
[Pcd]
gUefiCpuPkgTokenSpaceGuid.PcdPeiTemporaryRamStackSize ## CONSUMES
gEfiMdeModulePkgTokenSpaceGuid.PcdMigrateTemporaryRamFirmwareVolumes ## CONSUMES
[UserExtensions.TianoCore."ExtraFiles"]
SecCoreExtra.uni