]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Sec/Ia32/SecEntry.S
OvmfPkg QemuFwCfgLib: Convert X64/IoLibExAsm.asm to NASM
[mirror_edk2.git] / OvmfPkg / Sec / Ia32 / SecEntry.S
index 50ba5aa99ef823a910dd2b965e9270de42a3a838..0771a874494af904af665b20388ee0a49e04f856 100644 (file)
@@ -1,62 +1,59 @@
-#
-# ConvertAsm.py: Automatically generated from SecEntry.asm
-#
-#      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
-#
-#
-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.
-    #
-    movl    $INITIAL_TOP_OF_STACK, %eax 
-    movl    %eax, %esp
-    nop
-
-    #
-    # Call into C code
-    #
-    pushl   %eax
-    pushl   %edi
-    pushl   %esi
-    pushl   %ebp
-    call    ASM_PFX(SecCoreStartupWithStack)
-
-
-#END
-
+#      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]  EAX   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]  EBP   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 RAM stack based on PCDs\r
+    #\r
+    .set    SEC_TOP_OF_STACK, FixedPcdGet32 (PcdOvmfSecPeiTempRamBase) + \\r
+                              FixedPcdGet32 (PcdOvmfSecPeiTempRamSize)\r
+    movl    $SEC_TOP_OF_STACK, %eax\r
+    movl    %eax, %esp\r
+    nop\r
+\r
+    #\r
+    # Setup parameters and call SecCoreStartupWithStack\r
+    #   [esp]   return address for call\r
+    #   [esp+4] BootFirmwareVolumePtr\r
+    #   [esp+8] TopOfCurrentStack\r
+    #\r
+    pushl   %eax\r
+    pushl   %ebp\r
+    call    ASM_PFX(SecCoreStartupWithStack)\r
+\r
+\r
+#END\r
+\r