RFC: https://bugzilla.tianocore.org/show_bug.cgi?id=3429
Init32.asm is the entry point of doing the 32-bit protected mode initialization. Here ReloadFlat32 is called. After that InitTdx is called to do Tdx initialization if it is Tdx guests. In the future if SEV has something to initialize, InitSev (for example) can be called in Init32. Cc: Ard Biesheuvel <[email protected]> Cc: Jordan Justen <[email protected]> Cc: Brijesh Singh <[email protected]> Cc: Erdem Aktas <[email protected]> Cc: James Bottomley <[email protected]> Cc: Jiewen Yao <[email protected]> Cc: Tom Lendacky <[email protected]> Signed-off-by: Min Xu <[email protected]> --- OvmfPkg/ResetVector/Ia32/Init32.asm | 32 +++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 OvmfPkg/ResetVector/Ia32/Init32.asm diff --git a/OvmfPkg/ResetVector/Ia32/Init32.asm b/OvmfPkg/ResetVector/Ia32/Init32.asm new file mode 100644 index 000000000000..fb78f6856f0a --- /dev/null +++ b/OvmfPkg/ResetVector/Ia32/Init32.asm @@ -0,0 +1,32 @@ +;------------------------------------------------------------------------------ +; @file +; 32-bit initialization code +; +; Copyright (c) 2021, Intel Corporation. All rights reserved.<BR> +; SPDX-License-Identifier: BSD-2-Clause-Patent +; +;------------------------------------------------------------------------------ + +BITS 32 + +; +; Modified: EAX, EBX, ECX, EDX, EBP, EDI, ESP +; +Init32: + ; + ; Save EBX in EBP because EBX will be changed in ReloadFlat32 + ; + mov ebp, ebx + + ; + ; First load the GDT and jump to Flat32 mode + ; + OneTimeCall ReloadFlat32 + + ; + ; Initialization of Tdx + ; + OneTimeCall InitTdx + + OneTimeCallRet Init32 + -- 2.29.2.windows.2 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#78198): https://edk2.groups.io/g/devel/message/78198 Mute This Topic: https://groups.io/mt/84476066/21656 Group Owner: [email protected] Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
