On 10/18/14 20:25, Jordan Justen wrote: > The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert > X64/SecEntry.asm to X64/SecEntry.nasm > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Jordan Justen <[email protected]> > --- > OvmfPkg/Sec/SecMain.inf | 6 +-- > OvmfPkg/Sec/X64/SecEntry.S | 56 > ------------------------- > OvmfPkg/Sec/X64/{SecEntry.asm => SecEntry.nasm} | 18 ++++---- > 3 files changed, 11 insertions(+), 69 deletions(-) > delete mode 100644 OvmfPkg/Sec/X64/SecEntry.S > rename OvmfPkg/Sec/X64/{SecEntry.asm => SecEntry.nasm} (81%) > > diff --git a/OvmfPkg/Sec/SecMain.inf b/OvmfPkg/Sec/SecMain.inf > index e823796..4ac431b 100644 > --- a/OvmfPkg/Sec/SecMain.inf > +++ b/OvmfPkg/Sec/SecMain.inf > @@ -36,9 +36,9 @@ > Ia32/SecEntry.nasm| GCC > > [Sources.X64] > - X64/SecEntry.asm | MSFT > - X64/SecEntry.asm | INTEL > - X64/SecEntry.S | GCC > + X64/SecEntry.nasm | MSFT > + X64/SecEntry.nasm | INTEL > + X64/SecEntry.nasm | GCC
Liming's remark applies. > > [Packages] > MdePkg/MdePkg.dec > diff --git a/OvmfPkg/Sec/X64/SecEntry.S b/OvmfPkg/Sec/X64/SecEntry.S > deleted file mode 100644 > index 37354d9..0000000 > --- a/OvmfPkg/Sec/X64/SecEntry.S > +++ /dev/null > @@ -1,56 +0,0 @@ > -# 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) > - > 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 4135208..f40427a 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.<BR> > @@ -18,9 +17,10 @@ > > #include <Base.h> > > -.code > +DEFAULT REL Okay, so this is hardwired in "ConvertMasmToNasm.py", and according to the nasm documentation, it selects RIP-relative addressing. > +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 > With Liming's notes for the INF: Reviewed-by: Laszlo Ersek <[email protected]> ------------------------------------------------------------------------------ _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
