summaryrefslogtreecommitdiff
path: root/IntelFsp2Pkg/FspSecCore/Ia32/FspApiEntryI.nasm
diff options
context:
space:
mode:
authorHongbin1 Zhang <hongbin1.zhang@intel.com>2022-07-19 10:09:15 -0700
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2022-07-20 02:15:55 +0000
commit48249243777882d7d89ca0b86c89e355b5f941f3 (patch)
treec61522dd610a2c7c0c0694c47e4017349c4f2b6c /IntelFsp2Pkg/FspSecCore/Ia32/FspApiEntryI.nasm
parent24eac4caf31afae48349af44588a52783c1819b8 (diff)
downloadedk2-48249243777882d7d89ca0b86c89e355b5f941f3.zip
edk2-48249243777882d7d89ca0b86c89e355b5f941f3.tar.gz
edk2-48249243777882d7d89ca0b86c89e355b5f941f3.tar.bz2
IntelFsp2Pkg/FspSecCore: Add FSP-I API for SMM support.
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3993 Add FSP-I API entry point for SMM support. Also update 64bit API entry code to assign ApiIdx to RAX to avoid confusion. Cc: Nate DeSimone <nathaniel.l.desimone@intel.com> Cc: Star Zeng <star.zeng@intel.com> Signed-off-by: Chasel Chiu <chasel.chiu@intel.com> Signed-off-by: Hongbin1 Zhang <hongbin1.zhang@intel.com> Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Diffstat (limited to 'IntelFsp2Pkg/FspSecCore/Ia32/FspApiEntryI.nasm')
-rw-r--r--IntelFsp2Pkg/FspSecCore/Ia32/FspApiEntryI.nasm44
1 files changed, 44 insertions, 0 deletions
diff --git a/IntelFsp2Pkg/FspSecCore/Ia32/FspApiEntryI.nasm b/IntelFsp2Pkg/FspSecCore/Ia32/FspApiEntryI.nasm
new file mode 100644
index 0000000..e9365d6
--- /dev/null
+++ b/IntelFsp2Pkg/FspSecCore/Ia32/FspApiEntryI.nasm
@@ -0,0 +1,44 @@
+;; @file
+; Provide FSP API entry points.
+;
+; Copyright (c) 2022, Intel Corporation. All rights reserved.<BR>
+; SPDX-License-Identifier: BSD-2-Clause-Patent
+;;
+
+ SECTION .text
+
+;
+; Following functions will be provided in C
+;
+extern ASM_PFX(FspApiCommon)
+
+;----------------------------------------------------------------------------
+; FspApiCommonContinue API
+;
+; This is the FSP API common entry point to resume the FSP execution
+;
+;----------------------------------------------------------------------------
+global ASM_PFX(FspApiCommonContinue)
+ASM_PFX(FspApiCommonContinue):
+ jmp $
+
+;----------------------------------------------------------------------------
+; FspSmmInit API
+;
+; This FSP API will notify the FSP about the different phases in the boot
+; process
+;
+;----------------------------------------------------------------------------
+global ASM_PFX(FspSmmInitApi)
+ASM_PFX(FspSmmInitApi):
+ mov eax, 7 ; FSP_API_INDEX.FspSmmInitApiIndex
+ jmp ASM_PFX(FspApiCommon)
+
+;----------------------------------------------------------------------------
+; Module Entrypoint API
+;----------------------------------------------------------------------------
+global ASM_PFX(_ModuleEntryPoint)
+ASM_PFX(_ModuleEntryPoint):
+ jmp $
+ ; Add reference to APIs so that it will not be optimized by compiler
+ jmp ASM_PFX(FspSmmInitApi)