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:
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user