public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH] OvmfPkg/Sec: Clear the Cache Disable flag in the CR0 register
@ 2019-02-18 10:10 Jordan Justen
  2019-02-18 12:17 ` Laszlo Ersek
  2019-02-18 13:23 ` Laszlo Ersek
  0 siblings, 2 replies; 9+ messages in thread
From: Jordan Justen @ 2019-02-18 10:10 UTC (permalink / raw)
  To: edk2-devel
  Cc: Jordan Justen, Peter Fang, Maurice Ma, Laszlo Ersek,
	Ard Biesheuvel, Anthony Perard, Julien Grall

Clear the CD (Cache Disable) flag in the CR0 register. When the VM
implements the CD flag, this can substantially decrease the time it
takes to decompress the firmware volumes.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Tested-by: Peter Fang <peter.fang@intel.com>
Cc: Peter Fang <peter.fang@intel.com>
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Anthony Perard <anthony.perard@citrix.com>
Cc: Julien Grall <julien.grall@linaro.org>
---
 OvmfPkg/Sec/Ia32/SecEntry.nasm | 8 +++++++-
 OvmfPkg/Sec/X64/SecEntry.nasm  | 8 +++++++-
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/OvmfPkg/Sec/Ia32/SecEntry.nasm b/OvmfPkg/Sec/Ia32/SecEntry.nasm
index 03501969eb..fc7f47385a 100644
--- a/OvmfPkg/Sec/Ia32/SecEntry.nasm
+++ b/OvmfPkg/Sec/Ia32/SecEntry.nasm
@@ -40,6 +40,13 @@ extern ASM_PFX(SecCoreStartupWithStack)
 global ASM_PFX(_ModuleEntryPoint)
 ASM_PFX(_ModuleEntryPoint):
 
+    ;
+    ; Clear the CD (Cache Disable) flag in the CR0 register.
+    ;
+    mov     eax, cr0
+    and     eax, ~(1 << 30)
+    mov     cr0, eax
+
     ;
     ; Fill the temporary RAM with the initial stack value.
     ; The loop below will seed the heap as well, but that's harmless.
@@ -71,4 +78,3 @@ ASM_PFX(_ModuleEntryPoint):
     push    eax
     push    ebp
     call    ASM_PFX(SecCoreStartupWithStack)
-
diff --git a/OvmfPkg/Sec/X64/SecEntry.nasm b/OvmfPkg/Sec/X64/SecEntry.nasm
index d76adcffd8..7471b3a3e3 100644
--- a/OvmfPkg/Sec/X64/SecEntry.nasm
+++ b/OvmfPkg/Sec/X64/SecEntry.nasm
@@ -41,6 +41,13 @@ extern ASM_PFX(SecCoreStartupWithStack)
 global ASM_PFX(_ModuleEntryPoint)
 ASM_PFX(_ModuleEntryPoint):
 
+    ;
+    ; Clear the CD (Cache Disable) flag in the CR0 register.
+    ;
+    mov     rax, cr0
+    and     eax, ~(1 << 30)
+    mov     cr0, rax
+
     ;
     ; Fill the temporary RAM with the initial stack value.
     ; The loop below will seed the heap as well, but that's harmless.
@@ -72,4 +79,3 @@ ASM_PFX(_ModuleEntryPoint):
     mov     rdx, rsp
     sub     rsp, 0x20
     call    ASM_PFX(SecCoreStartupWithStack)
-
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2019-02-20  9:47 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-18 10:10 [PATCH] OvmfPkg/Sec: Clear the Cache Disable flag in the CR0 register Jordan Justen
2019-02-18 12:17 ` Laszlo Ersek
2019-02-19 19:45   ` Jordan Justen
     [not found]     ` <A8BCA9AAD7459841B9233774078C8C06020CEBFF@ORSMSX112.amr.corp.intel.com>
2019-02-20  9:37       ` Laszlo Ersek
2019-02-18 13:23 ` Laszlo Ersek
2019-02-19 19:51   ` Andrew Fish
2019-02-20  9:46     ` Laszlo Ersek
2019-02-19 19:59   ` Jordan Justen
2019-02-20  9:44     ` Laszlo Ersek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox