RFC: https://bugzilla.tianocore.org/show_bug.cgi?id=3429
In Tdx all CPUs "reset" to run on 32-bit protected mode with flat descriptor (paging disabled). Main32 entry point is added in UefiCpuPkg/ResetVector/Vtf0/Main.asm so that Main.asm can support the 32-bit protected mode. Init32.asm is the 32-bit initialization code. It is a null stub in UefiCpuPkg. The actual initialization can be implemented in the platform (OvmfPkg/ResetVector/Ia32/Init32.asm is the example.) Cc: Eric Dong <eric.d...@intel.com> Cc: Ray Ni <ray...@intel.com> Cc: Jiewen Yao <jiewen....@intel.com> Signed-off-by: Min Xu <min.m...@intel.com> --- UefiCpuPkg/ResetVector/Vtf0/Ia32/Init32.asm | 13 +++++++++++++ UefiCpuPkg/ResetVector/Vtf0/Main.asm | 14 ++++++++++++++ UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb | 2 +- 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 UefiCpuPkg/ResetVector/Vtf0/Ia32/Init32.asm diff --git a/UefiCpuPkg/ResetVector/Vtf0/Ia32/Init32.asm b/UefiCpuPkg/ResetVector/Vtf0/Ia32/Init32.asm new file mode 100644 index 000000000000..0cdae4a4a84a --- /dev/null +++ b/UefiCpuPkg/ResetVector/Vtf0/Ia32/Init32.asm @@ -0,0 +1,13 @@ +;------------------------------------------------------------------------------ +; @file +; 32-bit initialization code. +; Copyright (c) 2021, Intel Corporation. All rights reserved.<BR> +; SPDX-License-Identifier: BSD-2-Clause-Patent +; +;------------------------------------------------------------------------------ + +BITS 32 + +Init32: + nop + OneTimeCallRet Init32 diff --git a/UefiCpuPkg/ResetVector/Vtf0/Main.asm b/UefiCpuPkg/ResetVector/Vtf0/Main.asm index 19d08482f831..4920c6937e1b 100644 --- a/UefiCpuPkg/ResetVector/Vtf0/Main.asm +++ b/UefiCpuPkg/ResetVector/Vtf0/Main.asm @@ -36,6 +36,20 @@ Main16: BITS 32 +%ifdef ARCH_X64 + + jmp SearchBfv + +; +; Entry point of Main32 +; +Main32: + + OneTimeCall Init32 + +%endif + +SearchBfv: ; ; Search for the Boot Firmware Volume (BFV) ; diff --git a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb index 493738c79c1c..6493b9863c48 100644 --- a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb +++ b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb @@ -51,7 +51,7 @@ %include "Ia32/SearchForSecEntry.asm" %ifdef ARCH_X64 -%include "Ia32/Flat32ToFlat64.asm" +%include "Ia32/Init32.asm" %include "Ia32/PageTables64.asm" %endif -- 2.29.2.windows.2 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#78059): https://edk2.groups.io/g/devel/message/78059 Mute This Topic: https://groups.io/mt/84373829/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-