projects
/
mirror_edk2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
UefiCpuPkg/PiSmmCpuDxeSmm: patch "gSmbase" with PatchInstructionX86()
[mirror_edk2.git]
/
UefiCpuPkg
/
PiSmmCpuDxeSmm
/
Ia32
/
SmiEntry.nasm
diff --git
a/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiEntry.nasm
b/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiEntry.nasm
index a8324a7f4a841e964c41be2dc2ad9cb9a4d6467f..e6e29128e64eb9ebb40094f632e75f259091e33b 100644
(file)
--- a/
UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiEntry.nasm
+++ b/
UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiEntry.nasm
@@
-46,7
+46,7
@@
global ASM_PFX(gcSmiHandlerTemplate)
global ASM_PFX(gcSmiHandlerSize)
\r
global ASM_PFX(gSmiCr3)
\r
global ASM_PFX(gSmiStack)
\r
global ASM_PFX(gcSmiHandlerSize)
\r
global ASM_PFX(gSmiCr3)
\r
global ASM_PFX(gSmiStack)
\r
-global ASM_PFX(gSmbase)
\r
+global ASM_PFX(g
Patch
Smbase)
\r
global ASM_PFX(mXdSupported)
\r
extern ASM_PFX(gSmiHandlerIdtr)
\r
\r
global ASM_PFX(mXdSupported)
\r
extern ASM_PFX(gSmiHandlerIdtr)
\r
\r
@@
-65,8
+65,8
@@
_SmiEntryPoint:
o32 lgdt [cs:bx] ; lgdt fword ptr cs:[bx]
\r
mov ax, PROTECT_MODE_CS
\r
mov [cs:bx-0x2],ax
\r
o32 lgdt [cs:bx] ; lgdt fword ptr cs:[bx]
\r
mov ax, PROTECT_MODE_CS
\r
mov [cs:bx-0x2],ax
\r
- DB 0x66, 0xbf ; mov edi, SMBASE
\r
-ASM_PFX(g
Smbase): DD 0
\r
+ mov edi, strict dword 0 ; source operand will be patched
\r
+ASM_PFX(g
PatchSmbase):
\r
lea eax, [edi + (@32bit - _SmiEntryPoint) + 0x8000]
\r
mov [cs:bx-0x6],eax
\r
mov ebx, cr0
\r
lea eax, [edi + (@32bit - _SmiEntryPoint) + 0x8000]
\r
mov [cs:bx-0x6],eax
\r
mov ebx, cr0
\r