You've already forked slimbootloader
mirror of
https://github.com/Dasharo/slimbootloader.git
synced 2026-03-06 15:26:20 -08:00
9193a72864
This will allow OsLoader payload to boot to 64-bit kernel entry point. If CPU supports 64-bit mode and a kernel image has 64-bit entry point, OsLoader will switch to 64-bit long mode and jump to the 64-bit entry point. Otherwise, continue to boot to 32-bit entry point. - Ported necessary code from EDK2 VitualMemory.c in MdeModulePkg - Moved PagingLib from BootloaderCorePkg to BootloaderCommonPkg - Removed unused FlushCacheLine - TBD: 64-bit IDT Next step is to support 64-bit Payload. - 32-bit compatible mode - 64-bit CryptoLib - etc. Signed-off-by: Aiden Park <aiden.park@intel.com>
39 lines
1.1 KiB
NASM
39 lines
1.1 KiB
NASM
;------------------------------------------------------------------------------
|
|
;
|
|
; Copyright (c) 2006 - 2020, Intel Corporation. All rights reserved.<BR>
|
|
;
|
|
; SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
;
|
|
;------------------------------------------------------------------------------
|
|
|
|
SECTION .text
|
|
|
|
;------------------------------------------------------------------------------
|
|
; VOID
|
|
; EFIAPI
|
|
; JumpToKernel (
|
|
; VOID *KernelStart,
|
|
; VOID *KernelBootParams
|
|
; );
|
|
;------------------------------------------------------------------------------
|
|
global ASM_PFX(JumpToKernel)
|
|
ASM_PFX(JumpToKernel):
|
|
mov esi, [esp + 8]
|
|
call DWORD [esp + 4]
|
|
ret
|
|
|
|
;------------------------------------------------------------------------------
|
|
; VOID
|
|
; EFIAPI
|
|
; JumpToKernel64 (
|
|
; VOID *KernelStart,
|
|
; VOID *KernelBootParams
|
|
; );
|
|
;------------------------------------------------------------------------------
|
|
global ASM_PFX(JumpToKernel64)
|
|
ASM_PFX(JumpToKernel64):
|
|
DB 0x67, 0x48 ; 32-bit address size, 64-bit operand size
|
|
mov esi, edx ; mov esi, rdx
|
|
call ecx
|
|
hlt
|