]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.S
OvmfPkg LoadLinuxLib: Use kernel's EFI entry point where available
[mirror_edk2.git] / OvmfPkg / Library / LoadLinuxLib / X64 / JumpToKernel.S
index edc6e7bd707dd107a0b37b32b721c4166562eea6..056e3c013f8ed1199d3b0d878ab604473dd7393c 100644 (file)
@@ -13,6 +13,7 @@
 #------------------------------------------------------------------------------\r
 \r
 ASM_GLOBAL ASM_PFX(JumpToKernel)\r
+ASM_GLOBAL ASM_PFX(JumpToUefiKernel)\r
 \r
 #------------------------------------------------------------------------------\r
 # VOID\r
@@ -67,3 +68,24 @@ ASM_PFX(JumpToKernel):
     ret\r
 .code64\r
 \r
+#------------------------------------------------------------------------------\r
+# VOID\r
+# EFIAPI\r
+# JumpToUefiKernel (\r
+#   EFI_HANDLE ImageHandle,        // rcx\r
+#   EFI_SYSTEM_TABLE *SystemTable, // rdx\r
+#   VOID *KernelBootParams,        // r8\r
+#   VOID *KernelStart              // r9\r
+#   );\r
+#------------------------------------------------------------------------------\r
+ASM_PFX(JumpToUefiKernel):\r
+    movq    %rcx, %rdi\r
+    movq    %rdx, %rsi\r
+    movq    %r8, %rdx\r
+    xor     %rax, %rax\r
+    movl    0x264(%r8), %eax\r
+    addq    %rax, %r9\r
+    addq    $0x200, %r9\r
+    callq   %r9\r
+    ret\r
+\r