diff --git a/OvmfPkg/Sec/SecMain.inf b/OvmfPkg/Sec/SecMain.inf
index 66ab83353e..fce99fb74c 100644
--- a/OvmfPkg/Sec/SecMain.inf
+++ b/OvmfPkg/Sec/SecMain.inf
@@ -34,9 +34,7 @@
Ia32/SecEntry.nasm
[Sources.X64]
- X64/SecEntry.asm | MSFT
- X64/SecEntry.asm | INTEL
- X64/SecEntry.S | GCC
+ X64/SecEntry.nasm
[Packages]
MdePkg/MdePkg.dec
diff --git a/OvmfPkg/Sec/X64/SecEntry.S b/OvmfPkg/Sec/X64/SecEntry.S
deleted file mode 100644
index 37354d9f3c..0000000000
--- a/OvmfPkg/Sec/X64/SecEntry.S
+++ /dev/null
@@ -1,56 +0,0 @@
-# TITLE SecEntry.asm
-#------------------------------------------------------------------------------
-#*
-#* Copyright (c) 2006 - 2013, 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
-
-#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)
-
diff --git a/OvmfPkg/Sec/X64/SecEntry.asm b/OvmfPkg/Sec/X64/SecEntry.nasm
similarity index 81%
rename from OvmfPkg/Sec/X64/SecEntry.asm
rename to OvmfPkg/Sec/X64/SecEntry.nasm
index 4135208a3a..f40427aa8e 100644
--- a/OvmfPkg/Sec/X64/SecEntry.asm
+++ b/OvmfPkg/Sec/X64/SecEntry.nasm
@@ -1,4 +1,3 @@
- TITLE SecEntry.asm
;------------------------------------------------------------------------------
;*
;* Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.
@@ -18,9 +17,10 @@
#include
-.code
+DEFAULT REL
+SECTION .text
-EXTERN SecCoreStartupWithStack:PROC
+extern ASM_PFX(SecCoreStartupWithStack)
;
; SecCore Entry Point
@@ -33,12 +33,13 @@ EXTERN SecCoreStartupWithStack:PROC
;
; @return None This routine does not return
;
-_ModuleEntryPoint PROC PUBLIC
+global ASM_PFX(_ModuleEntryPoint)
+ASM_PFX(_ModuleEntryPoint):
;
; Load temporary RAM stack based on PCDs
;
- SEC_TOP_OF_STACK EQU (FixedPcdGet32 (PcdOvmfSecPeiTempRamBase) + \
+ %define SEC_TOP_OF_STACK (FixedPcdGet32 (PcdOvmfSecPeiTempRamBase) + \
FixedPcdGet32 (PcdOvmfSecPeiTempRamSize))
mov rsp, SEC_TOP_OF_STACK
nop
@@ -50,9 +51,6 @@ _ModuleEntryPoint PROC PUBLIC
;
mov rcx, rbp
mov rdx, rsp
- sub rsp, 20h
- call SecCoreStartupWithStack
+ sub rsp, 0x20
+ call ASM_PFX(SecCoreStartupWithStack)
-_ModuleEntryPoint ENDP
-
-END