]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/Library/MpInitLib/X64/MpFuncs.nasm
UefiCpuPkg/MpInitLib: Fix potential issue when IDT table is at above 4G
[mirror_edk2.git] / UefiCpuPkg / Library / MpInitLib / X64 / MpFuncs.nasm
index 1daaa72b1e58eb5ce435eb29e67c969d9a710a5d..cd95b03da8455594f52f8a1de4a3ea08ef100b88 100644 (file)
@@ -64,9 +64,6 @@ BITS 16
     mov        si, MP_CPU_EXCHANGE_INFO_FIELD (GdtrProfile)\r
 o32 lgdt       [cs:si]\r
 \r
-    mov        si, MP_CPU_EXCHANGE_INFO_FIELD (IdtrProfile)\r
-o32 lidt       [cs:si]\r
-\r
     ;\r
     ; Switch to protected mode\r
     ;\r
@@ -154,6 +151,11 @@ BITS 64
 \r
 LongModeStart:\r
     mov        esi, ebx\r
+\r
+    ; Set IDT table at the start of 64 bit code\r
+    lea        edi, [esi + MP_CPU_EXCHANGE_INFO_FIELD (IdtrProfile)]\r
+    lidt       [edi]\r
+\r
     lea        edi, [esi + MP_CPU_EXCHANGE_INFO_FIELD (InitFlag)]\r
     cmp        qword [edi], 1       ; ApInitConfig\r
     jnz        GetApicId\r