On Wed, Oct 22, 2014 at 11:32 AM, Laszlo Ersek <[email protected]> wrote: > 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.
Unfortunately, ConvertMasmToNasm.py is not smart enough to handle this. I did make the script collapse things like: X64/SecEntry.asm X64/SecEntry.S into: X64/SecEntry.nasm I'd like to leave the commit created by the script intact, but I could add a separate commit to clean this up. -Jordan >> [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 ------------------------------------------------------------------------------ _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
