summaryrefslogtreecommitdiff
path: root/OvmfPkg/Sec/X64/SecEntry.S
diff options
context:
space:
mode:
Diffstat (limited to 'OvmfPkg/Sec/X64/SecEntry.S')
-rw-r--r--OvmfPkg/Sec/X64/SecEntry.S110
1 files changed, 56 insertions, 54 deletions
diff --git a/OvmfPkg/Sec/X64/SecEntry.S b/OvmfPkg/Sec/X64/SecEntry.S
index de0859bcfb..37354d9f3c 100644
--- a/OvmfPkg/Sec/X64/SecEntry.S
+++ b/OvmfPkg/Sec/X64/SecEntry.S
@@ -1,54 +1,56 @@
-# TITLE SecEntry.asm
-#------------------------------------------------------------------------------
-#*
-#* Copyright (c) 2006 - 2009, 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
-#* 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 <Base.h>
-
-#EXTERN ASM_PFX(SecCoreStartupWithStack)
-
-#
-# SecCore Entry Point
-#
-# Processor is in flat protected mode
-#
-# @param[in] RAX Initial value of the EAX register (BIST: Built-in Self Test)
-# @param[in] DI 'BP': boot-strap processor, or 'AP': application processor
-# @param[in] RBP Pointer to the start of the Boot Firmware Volume
-#
-# @return None This routine does not return
-#
-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.
- #
- movq $BASE_512KB, %rsp
- nop
-
- #
- # Setup parameters and call SecCoreStartupWithStack
- # rcx: BootFirmwareVolumePtr
- # rdx: TopOfCurrentStack
- #
- movq %rbp, %rcx
- movq %rsp, %rdx
- subq $0x20, %rsp
- call ASM_PFX(SecCoreStartupWithStack)
-
+# TITLE SecEntry.asm
+#------------------------------------------------------------------------------
+#*
+#* Copyright (c) 2006 - 2013, 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
+#* 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 <Base.h>
+
+#EXTERN ASM_PFX(SecCoreStartupWithStack)
+
+#
+# SecCore Entry Point
+#
+# Processor is in flat protected mode
+#
+# @param[in] RAX Initial value of the EAX register (BIST: Built-in Self Test)
+# @param[in] DI 'BP': boot-strap processor, or 'AP': application processor
+# @param[in] RBP Pointer to the start of the Boot Firmware Volume
+#
+# @return None This routine does not return
+#
+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.
+ #
+ .set SEC_TOP_OF_STACK, FixedPcdGet32 (PcdOvmfSecPeiTempRamBase) + \
+ FixedPcdGet32 (PcdOvmfSecPeiTempRamSize)
+ movq $SEC_TOP_OF_STACK, %rsp
+ nop
+
+ #
+ # Setup parameters and call SecCoreStartupWithStack
+ # rcx: BootFirmwareVolumePtr
+ # rdx: TopOfCurrentStack
+ #
+ movq %rbp, %rcx
+ movq %rsp, %rdx
+ subq $0x20, %rsp
+ call ASM_PFX(SecCoreStartupWithStack)
+