summaryrefslogtreecommitdiff
path: root/OvmfPkg/Library/LoadLinuxLib
diff options
context:
space:
mode:
authorjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>2013-01-28 16:55:22 +0000
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>2013-01-28 16:55:22 +0000
commitf940fea8b1c914082bd86238068c3561c2ecd540 (patch)
tree4ead13dea838403d135c4d7d69bb25c7dc94ceab /OvmfPkg/Library/LoadLinuxLib
parent29874a8c6015deff95e90e64fb9321bdc7b32a99 (diff)
Revert "OvmfPkg: LoadLinuxLib: Use kernel's EFI entry point where available"
This reverts commit r14053. This change depends on changes to the kernel which are not yet finalized/upstream. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14110 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'OvmfPkg/Library/LoadLinuxLib')
-rw-r--r--OvmfPkg/Library/LoadLinuxLib/Ia32/JumpToKernel.S19
-rw-r--r--OvmfPkg/Library/LoadLinuxLib/Ia32/JumpToKernel.asm21
-rw-r--r--OvmfPkg/Library/LoadLinuxLib/Linux.c16
-rw-r--r--OvmfPkg/Library/LoadLinuxLib/LoadLinuxLib.h11
-rw-r--r--OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.S22
-rw-r--r--OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.asm24
6 files changed, 7 insertions, 106 deletions
diff --git a/OvmfPkg/Library/LoadLinuxLib/Ia32/JumpToKernel.S b/OvmfPkg/Library/LoadLinuxLib/Ia32/JumpToKernel.S
index f7440f74c..b8cd4ca51 100644
--- a/OvmfPkg/Library/LoadLinuxLib/Ia32/JumpToKernel.S
+++ b/OvmfPkg/Library/LoadLinuxLib/Ia32/JumpToKernel.S
@@ -1,6 +1,6 @@
#------------------------------------------------------------------------------
#
-# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
@@ -13,7 +13,6 @@
#------------------------------------------------------------------------------
ASM_GLOBAL ASM_PFX(JumpToKernel)
-ASM_GLOBAL ASM_PFX(JumpToUefiKernel)
#------------------------------------------------------------------------------
# VOID
@@ -28,19 +27,3 @@ ASM_PFX(JumpToKernel):
calll 0x4(%esp)
ret
-#------------------------------------------------------------------------------
-# VOID
-# EFIAPI
-# JumpToUefiKernel (
-# EFI_HANDLE ImageHandle,
-# EFI_SYSTEM_TABLE *SystemTable,
-# VOID *KernelBootParams,
-# VOID *KernelStart
-# );
-#------------------------------------------------------------------------------
-ASM_PFX(JumpToUefiKernel):
- movl 0xc(%esp), %eax
- movl 0x264(%eax), %eax
- addl 0x10(%esp), %eax
- jmp %eax
-
diff --git a/OvmfPkg/Library/LoadLinuxLib/Ia32/JumpToKernel.asm b/OvmfPkg/Library/LoadLinuxLib/Ia32/JumpToKernel.asm
index 21d0c4e72..a8f3965f9 100644
--- a/OvmfPkg/Library/LoadLinuxLib/Ia32/JumpToKernel.asm
+++ b/OvmfPkg/Library/LoadLinuxLib/Ia32/JumpToKernel.asm
@@ -1,6 +1,6 @@
;------------------------------------------------------------------------------
;
-; Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
+; Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
;
; This program and the accompanying materials
; are licensed and made available under the terms and conditions of the BSD License
@@ -32,23 +32,4 @@ JumpToKernel PROC
JumpToKernel ENDP
-;------------------------------------------------------------------------------
-; VOID
-; EFIAPI
-; JumpToUefiKernel (
-; EFI_HANDLE ImageHandle,
-; EFI_SYSTEM_TABLE *SystemTable,
-; VOID *KernelBootParams,
-; VOID *KernelStart
-; );
-;------------------------------------------------------------------------------
-JumpToUefiKernel PROC
-
- mov eax, [esp + 12]
- mov eax, [eax + 264h]
- add eax, [esp + 16]
- jmp eax
-
-JumpToUefiKernel ENDP
-
END
diff --git a/OvmfPkg/Library/LoadLinuxLib/Linux.c b/OvmfPkg/Library/LoadLinuxLib/Linux.c
index 862698a39..1da5507ff 100644
--- a/OvmfPkg/Library/LoadLinuxLib/Linux.c
+++ b/OvmfPkg/Library/LoadLinuxLib/Linux.c
@@ -604,11 +604,14 @@ SetupGraphics (
STATIC
EFI_STATUS
SetupLinuxBootParams (
+ IN VOID *Kernel,
IN OUT struct boot_params *Bp
)
{
SetupGraphics (Bp);
+ Bp->hdr.code32_start = (UINT32)(UINTN) Kernel;
+
SetupLinuxMemmap (Bp);
return EFI_SUCCESS;
@@ -641,18 +644,7 @@ LoadLinux (
InitLinuxDescriptorTables ();
- Bp->hdr.code32_start = (UINT32)(UINTN) Kernel;
- if (Bp->hdr.version >= 0x20b && Bp->hdr.handover_offset &&
- (Bp->hdr.load_flags & (sizeof(long) >> 1))) {
- DEBUG ((EFI_D_INFO, "Jumping to kernel EFI handover point at ofs %x\n", Bp->hdr.handover_offset));
-
- DisableInterrupts ();
- JumpToUefiKernel ((VOID*) gImageHandle, (VOID*) gST, KernelSetup, Kernel);
- }
- //
- // Old kernels without EFI handover protocol
- //
- SetupLinuxBootParams (KernelSetup);
+ SetupLinuxBootParams (Kernel, (struct boot_params*) KernelSetup);
DEBUG ((EFI_D_INFO, "Jumping to kernel\n"));
DisableInterrupts ();
diff --git a/OvmfPkg/Library/LoadLinuxLib/LoadLinuxLib.h b/OvmfPkg/Library/LoadLinuxLib/LoadLinuxLib.h
index 045cbf9b2..f86979726 100644
--- a/OvmfPkg/Library/LoadLinuxLib/LoadLinuxLib.h
+++ b/OvmfPkg/Library/LoadLinuxLib/LoadLinuxLib.h
@@ -1,7 +1,7 @@
/** @file
Boot UEFI Linux.
- Copyright (c) 2008 - 2013, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2008 - 2011, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -37,15 +37,6 @@ JumpToKernel (
);
VOID
-EFIAPI
-JumpToUefiKernel (
- EFI_HANDLE ImageHandle,
- EFI_SYSTEM_TABLE *SystemTable,
- VOID *KernelBootParams,
- VOID *KernelStart
- );
-
-VOID
InitLinuxDescriptorTables (
VOID
);
diff --git a/OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.S b/OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.S
index 06d0a1f55..edc6e7bd7 100644
--- a/OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.S
+++ b/OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.S
@@ -13,7 +13,6 @@
#------------------------------------------------------------------------------
ASM_GLOBAL ASM_PFX(JumpToKernel)
-ASM_GLOBAL ASM_PFX(JumpToUefiKernel)
#------------------------------------------------------------------------------
# VOID
@@ -68,24 +67,3 @@ ASM_PFX(JumpToKernel):
ret
.code64
-#------------------------------------------------------------------------------
-# VOID
-# EFIAPI
-# JumpToUefiKernel (
-# EFI_HANDLE ImageHandle,
-# EFI_SYSTEM_TABLE *SystemTable,
-# VOID *KernelBootParams,
-# VOID *KernelStart
-# );
-#------------------------------------------------------------------------------
-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
-
diff --git a/OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.asm b/OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.asm
index fc07eab68..bcf6260e1 100644
--- a/OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.asm
+++ b/OvmfPkg/Library/LoadLinuxLib/X64/JumpToKernel.asm
@@ -68,28 +68,4 @@ JumpToKernel PROC
JumpToKernel ENDP
-;------------------------------------------------------------------------------
-; VOID
-; EFIAPI
-; JumpToUefiKernel (
-; EFI_HANDLE ImageHandle, // rcx
-; EFI_SYSTEM_TABLE *SystemTable, // rdx
-; VOID *KernelBootParams // r8
-; VOID *KernelStart, // r9
-; );
-;------------------------------------------------------------------------------
-JumpToUefiKernel PROC
-
- mov rdi, rcx
- mov rsi, rdx
- mov rdx, r8
- xor rax, rax
- mov eax, [r8 + 264h]
- add r9, rax
- add r9, 200h
- call r9
- ret
-
-JumpToUefiKernel ENDP
-
END