MpInitLib: Allocate code buffer for PEI phase

Today's implementation assumes PEI phase runs at 32bit so
the execution-disable feature is not applicable.
It's not always TRUE.
The patch allocates 32bit&64bit code buffer for PEI phase as well.

Signed-off-by: Ray Ni <ray.ni@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
This commit is contained in:
Ray Ni
2022-05-07 17:10:49 +08:00
committed by mergify[bot]
parent e7abb94d1f
commit 54aeed7e00
4 changed files with 13 additions and 8 deletions

View File

@@ -299,14 +299,19 @@ GetWakeupBuffer (
@retval 0 Cannot find free memory below 4GB.
**/
UINTN
GetModeTransitionBuffer (
AllocateCodeBuffer (
IN UINTN BufferSize
)
{
//
// PEI phase doesn't need to do such transition. So simply return 0.
//
return 0;
EFI_STATUS Status;
EFI_PHYSICAL_ADDRESS Address;
Status = PeiServicesAllocatePages (EfiBootServicesCode, EFI_SIZE_TO_PAGES (BufferSize), &Address);
if (EFI_ERROR (Status)) {
Address = 0;
}
return (UINTN)Address;
}
/**