IntelFsp2WrapperPkg: BaseFspWrapperApiLib support for X64

REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3893
Add Execute64BitCode to execute 64bit code from long mode directly
in PEI 64bit.

Cc: Chasel Chiu <chasel.chiu@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Ashraf Ali S <ashraf.ali.s@intel.com>
Signed-off-by: Ted Kuo <ted.kuo@intel.com>
Reviewed-by: Chasel Chiu <chasel.chiu@intel.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
This commit is contained in:
Ted Kuo
2022-04-15 01:37:42 -07:00
committed by mergify[bot]
parent 4a6ed7e46a
commit 86a2f3c439
3 changed files with 104 additions and 10 deletions

View File

@@ -1,7 +1,7 @@
/** @file
Execute 32-bit code in Protected Mode.
Copyright (c) 2014 - 2016, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2014 - 2022, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -49,3 +49,24 @@ Execute32BitCode (
return Status;
}
/**
Wrapper for a thunk to transition from compatibility mode to long mode to execute 64-bit code and then transit back to
compatibility mode.
@param[in] Function The 64bit code entry to be executed.
@param[in] Param1 The first parameter to pass to 64bit code.
@param[in] Param2 The second parameter to pass to 64bit code.
@return EFI_STATUS.
**/
EFI_STATUS
Execute64BitCode (
IN UINT64 Function,
IN UINT64 Param1,
IN UINT64 Param2
)
{
return EFI_UNSUPPORTED;
}