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

Reply via email to