]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/Library/MpInitLib/X64/MpFuncs.nasm
UefiCpuPkg/MpInitLib: Add EnableExecuteDisable in MP_CPU_EXCHANGE_INFO
[mirror_edk2.git] / UefiCpuPkg / Library / MpInitLib / X64 / MpFuncs.nasm
index 848992ca4484293e1e17ecf7d713ec87facd529e..3c55ffaafecc53b37ba96417b9ea9e43a0000885 100644 (file)
@@ -69,6 +69,19 @@ o32 lgdt       [cs:si]
     mov        si, IdtrLocation\r
 o32 lidt       [cs:si]\r
 \r
+    mov        si, EnableExecuteDisableLocation\r
+    cmp        byte [si], 0\r
+    jz         SkipEnableExecuteDisableBit\r
+\r
+    ;\r
+    ; Enable execute disable bit\r
+    ;\r
+    mov        ecx, 0c0000080h             ; EFER MSR number\r
+    rdmsr                                  ; Read EFER\r
+    bts        eax, 11                     ; Enable Execute Disable Bit\r
+    wrmsr                                  ; Write EFER\r
+\r
+SkipEnableExecuteDisableBit:\r
 \r
     mov        di,  DataSegmentLocation\r
     mov        edi, [di]                   ; Save long mode DS in edi\r