mirror of https://github.com/acidanthera/audk.git
OvmfPkg/ResetVector: add ClearOvmfPageTables macro
Move code to clear the page tables to a nasm macro. No functional change. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Message-Id: <20240301074402.98625-3-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:
parent
fded08e744
commit
52e44713d2
|
@ -45,6 +45,24 @@ BITS 32
|
|||
%define TDX_BSP 1
|
||||
%define TDX_AP 2
|
||||
|
||||
;
|
||||
; For OVMF, build some initial page tables at
|
||||
; PcdOvmfSecPageTablesBase - (PcdOvmfSecPageTablesBase + 0x6000).
|
||||
;
|
||||
; This range should match with PcdOvmfSecPageTablesSize which is
|
||||
; declared in the FDF files.
|
||||
;
|
||||
; At the end of PEI, the pages tables will be rebuilt into a
|
||||
; more permanent location by DxeIpl.
|
||||
;
|
||||
%macro ClearOvmfPageTables 0
|
||||
mov ecx, 6 * 0x1000 / 4
|
||||
xor eax, eax
|
||||
.clearPageTablesMemoryLoop:
|
||||
mov dword[ecx * 4 + PT_ADDR (0) - 4], eax
|
||||
loop .clearPageTablesMemoryLoop
|
||||
%endmacro
|
||||
|
||||
;
|
||||
; Modified: EAX, EBX, ECX, EDX
|
||||
;
|
||||
|
@ -69,22 +87,7 @@ SetCr3ForPageTables64:
|
|||
OneTimeCall GetSevCBitMaskAbove31
|
||||
|
||||
ClearOvmfPageTables:
|
||||
;
|
||||
; For OVMF, build some initial page tables at
|
||||
; PcdOvmfSecPageTablesBase - (PcdOvmfSecPageTablesBase + 0x6000).
|
||||
;
|
||||
; This range should match with PcdOvmfSecPageTablesSize which is
|
||||
; declared in the FDF files.
|
||||
;
|
||||
; At the end of PEI, the pages tables will be rebuilt into a
|
||||
; more permanent location by DxeIpl.
|
||||
;
|
||||
|
||||
mov ecx, 6 * 0x1000 / 4
|
||||
xor eax, eax
|
||||
clearPageTablesMemoryLoop:
|
||||
mov dword[ecx * 4 + PT_ADDR (0) - 4], eax
|
||||
loop clearPageTablesMemoryLoop
|
||||
ClearOvmfPageTables
|
||||
|
||||
;
|
||||
; Top level Page Directory Pointers (1 * 512GB entry)
|
||||
|
|
Loading…
Reference in New Issue