OvmfPkg/ResetVector: split TDX BSP workflow

Create a separate control flow for TDX BSP.

TdxPostBuildPageTables will now only be called when running in TDX
mode, so the TDX check in that function is not needed any more.

No functional change.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20240301074402.98625-5-kraxel@redhat.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Oliver Steffen <osteffen@redhat.com>
Cc: Michael Roth <michael.roth@amd.com>
Cc: Erdem Aktas <erdemaktas@google.com>
Cc: Min Xu <min.m.xu@intel.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
[lersek@redhat.com: turn the "Cc:" message headers from Gerd's on-list
 posting into "Cc:" tags in the commit message, in order to pacify
 "PatchCheck.py"]
This commit is contained in:
Gerd Hoffmann 2024-03-01 08:43:56 +01:00 committed by mergify[bot]
parent 4329b5b0cd
commit b7a97bfac5
2 changed files with 10 additions and 9 deletions

View File

@ -197,11 +197,7 @@ NotTdx:
; Set byte[TDX_WORK_AREA_PGTBL_READY] to 1
;
TdxPostBuildPageTables:
cmp byte[WORK_AREA_GUEST_TYPE], VM_GUEST_TDX
jne ExitTdxPostBuildPageTables
mov byte[TDX_WORK_AREA_PGTBL_READY], 1
ExitTdxPostBuildPageTables:
OneTimeCallRet TdxPostBuildPageTables
;

View File

@ -112,7 +112,7 @@ SetCr3ForPageTables64:
; is set.
OneTimeCall CheckTdxFeaturesBeforeBuildPagetables
cmp eax, TDX_BSP
je ClearOvmfPageTables
je TdxBspInit
cmp eax, TDX_AP
je SetCr3
@ -124,16 +124,21 @@ SetCr3ForPageTables64:
; the page table build below.
OneTimeCall GetSevCBitMaskAbove31
ClearOvmfPageTables:
ClearOvmfPageTables
CreatePageTables4Level edx
; Clear the C-bit from the GHCB page if the SEV-ES is enabled.
OneTimeCall SevClearPageEncMaskForGhcbPage
jmp SetCr3
; TDX will do some PostBuildPages task, such as setting
; byte[TDX_WORK_AREA_PGTBL_READY].
OneTimeCall TdxPostBuildPageTables
TdxBspInit:
;
; TDX BSP workflow
;
ClearOvmfPageTables
CreatePageTables4Level 0
OneTimeCall TdxPostBuildPageTables
jmp SetCr3
SetCr3:
;