-# TITLE SecEntry.asm\r
-#------------------------------------------------------------------------------\r
-#*\r
-#* Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>\r
-#* This program and the accompanying materials\r
-#* are licensed and made available under the terms and conditions of the BSD License\r
-#* which accompanies this distribution. The full text of the license may be found at\r
-#* http://opensource.org/licenses/bsd-license.php\r
-#*\r
-#* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-#* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-#*\r
-#* CpuAsm.asm\r
-#*\r
-#* Abstract:\r
-#*\r
-#------------------------------------------------------------------------------\r
-\r
-\r
-#include <Base.h>\r
-\r
-#EXTERN ASM_PFX(SecCoreStartupWithStack)\r
-\r
-#\r
-# SecCore Entry Point\r
-#\r
-# Processor is in flat protected mode\r
-#\r
-# @param[in] RAX Initial value of the EAX register (BIST: Built-in Self Test)\r
-# @param[in] DI 'BP': boot-strap processor, or 'AP': application processor\r
-# @param[in] RBP Pointer to the start of the Boot Firmware Volume\r
-#\r
-# @return None This routine does not return\r
-#\r
-ASM_GLOBAL ASM_PFX(_ModuleEntryPoint)\r
-ASM_PFX(_ModuleEntryPoint):\r
-\r
- #\r
- # Load temporary stack top at very low memory. The C code\r
- # can reload to a better address.\r
- #\r
- .set SEC_TOP_OF_STACK, FixedPcdGet32 (PcdOvmfSecPeiTempRamBase) + \\r
- FixedPcdGet32 (PcdOvmfSecPeiTempRamSize)\r
- movq $SEC_TOP_OF_STACK, %rsp \r
- nop\r
-\r
- #\r
- # Setup parameters and call SecCoreStartupWithStack\r
- # rcx: BootFirmwareVolumePtr\r
- # rdx: TopOfCurrentStack\r
- #\r
- movq %rbp, %rcx\r
- movq %rsp, %rdx\r
- subq $0x20, %rsp\r
- call ASM_PFX(SecCoreStartupWithStack)\r
-\r