# TITLE SecEntry.asm #------------------------------------------------------------------------------ #* #* Copyright 2006 - 2009, 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. #* #* CpuAsm.asm #* #* Abstract: #* #------------------------------------------------------------------------------ #include "SecMain.h" #EXTERN ASM_PFX(SecCoreStartupWithStack) # # SecCore Entry Point # # Processor is in flat protected mode # # @param ESI Pointer to SEC Core Entry Point (this function) # @param EDI Pointer to PEI Core Entry Point # @param EBP Pointer to the start of the Boot Firmware Volume # # @return None # # .intel_syntax ASM_GLOBAL ASM_PFX(_ModuleEntryPoint) ASM_PFX(_ModuleEntryPoint): # # Load temporary stack top at very low memory. The C code # can reload to a better address. # mov %rsp, INITIAL_TOP_OF_STACK nop # # Setup parameters and call SecCoreStartupWithStack # rcx: BootFirmwareVolumePtr # rdx: SecCoreEntryPoint # r8: PeiCoreEntryPoint # r9: TopOfCurrentStack # mov %rcx, %rbp mov %rdx, %rsi mov %r8, %rdi mov %r9, %rsp call ASM_PFX(SecCoreStartupWithStack)