From ad8ae98d2fa2f9e2bb1ecd7941fb1b7ccda9fa6f Mon Sep 17 00:00:00 2001 From: Jordan Justen Date: Fri, 31 Oct 2014 20:54:31 +0000 Subject: OvmfPkg LoadLinuxLib: Convert X64/JumpToKernel.asm to NASM The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert X64/JumpToKernel.asm to X64/JumpToKernel.nasm Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen Reviewed-by: Laszlo Ersek git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16288 6f19259b-4bc3-4df7-8a09-765794883524 --- OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.S | 91 ------------------------- 1 file changed, 91 deletions(-) delete mode 100644 OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.S (limited to 'OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.S') diff --git a/OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.S b/OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.S deleted file mode 100644 index 056e3c013..000000000 --- a/OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.S +++ /dev/null @@ -1,91 +0,0 @@ -#------------------------------------------------------------------------------ -# -# Copyright (c) 2006 - 2013, 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) -ASM_GLOBAL ASM_PFX(JumpToUefiKernel) - -#------------------------------------------------------------------------------ -# VOID -# EFIAPI -# JumpToKernel ( -# VOID *KernelStart, // %rcx -# VOID *KernelBootParams // %rdx -# ); -#------------------------------------------------------------------------------ -ASM_PFX(JumpToKernel): - - // Set up for executing kernel. BP in %esi, entry point on the stack - // (64-bit when the 'ret' will use it as 32-bit, but we're little-endian) - movq %rdx, %rsi - pushq %rcx - - // Jump into the compatibility mode CS - pushq $0x10 - leaq 1f(%rip), %rax - pushq %rax - .byte 0x48, 0xcb // retfq - -1: // Now in compatibility mode -.code32 - movl $0x18, %eax - movl %eax, %ds - movl %eax, %es - movl %eax, %fs - movl %eax, %gs - movl %eax, %ss - - // Disable paging - movl %cr0, %eax - btcl $31, %eax - movl %eax, %cr0 - - // Disable long mode in EFER - movl $0x0c0000080, %ecx - rdmsr - btcl $8, %eax - wrmsr - - // Disable PAE - movl %cr4, %eax - btcl $5, %eax - movl %eax, %cr4 - - // Zero registers and 'return' to kernel - xorl %ebp, %ebp - xorl %edi, %edi - xorl %ebx, %ebx - ret -.code64 - -#------------------------------------------------------------------------------ -# VOID -# EFIAPI -# JumpToUefiKernel ( -# EFI_HANDLE ImageHandle, // rcx -# EFI_SYSTEM_TABLE *SystemTable, // rdx -# VOID *KernelBootParams, // r8 -# VOID *KernelStart // r9 -# ); -#------------------------------------------------------------------------------ -ASM_PFX(JumpToUefiKernel): - movq %rcx, %rdi - movq %rdx, %rsi - movq %r8, %rdx - xor %rax, %rax - movl 0x264(%r8), %eax - addq %rax, %r9 - addq $0x200, %r9 - callq %r9 - ret - -- cgit v1.2.3