From 3c0a051fa2bc443cee65d25fda74771f47cbb8eb Mon Sep 17 00:00:00 2001 From: jljusten Date: Fri, 2 Nov 2012 18:27:55 +0000 Subject: OvmfPkg: Add LoadLinuxLib library implementation This code is based on efilinux's bzimage support. git://git.kernel.org/pub/scm/boot/efilinux/efilinux.git Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen Reviewed-by: Laszlo Ersek Reviewed-by: Matt Fleming git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13922 6f19259b-4bc3-4df7-8a09-765794883524 --- OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.S | 30 ++++++++++++++++++++ OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.asm | 34 +++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.S create mode 100644 OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.asm (limited to 'OvmfPkg/Library/LoadLinuxLib/X64') diff --git a/OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.S b/OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.S new file mode 100644 index 0000000000..9ae755b067 --- /dev/null +++ b/OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.S @@ -0,0 +1,30 @@ +#------------------------------------------------------------------------------ +# +# Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.
+# +# This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php. +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +#------------------------------------------------------------------------------ + +ASM_GLOBAL ASM_PFX(JumpToKernel) + +#------------------------------------------------------------------------------ +# VOID +# EFIAPI +# JumpToKernel ( +# VOID *KernelStart, // %rcx +# VOID *KernelBootParams // %rdx +# ); +#------------------------------------------------------------------------------ +ASM_PFX(JumpToKernel): + movq %rdx, %rsi + addq $0x200, %rcx + callq %rcx + ret + diff --git a/OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.asm b/OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.asm new file mode 100644 index 0000000000..ed53321c23 --- /dev/null +++ b/OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.asm @@ -0,0 +1,34 @@ +;------------------------------------------------------------------------------ +; +; Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.
+; +; This program and the accompanying materials +; are licensed and made available under the terms and conditions of the BSD License +; which accompanies this distribution. The full text of the license may be found at +; http://opensource.org/licenses/bsd-license.php. +; +; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +; +;------------------------------------------------------------------------------ + + .code + +;------------------------------------------------------------------------------ +; VOID +; EFIAPI +; JumpToKernel ( +; VOID *KernelStart, // rcx +; VOID *KernelBootParams // rdx +; ); +;------------------------------------------------------------------------------ +JumpToKernel PROC + + mov rsi, rdx + add rcx, 200h + call rcx + ret + +JumpToKernel ENDP + +END -- cgit v1.2.3