Re: [edk2] [PATCH v4 14/14] CorebootModulePkg/SecCore: Remove .S files for IA32 arch

2019-04-01 Thread Ma, Maurice
Looks good to me!
Reviewed-by: Maurice Ma 

Thanks
Maurice

> -Original Message-
> From: Zhang, Shenglei
> Sent: Monday, April 1, 2019 1:30
> To: edk2-devel@lists.01.org
> Cc: Ma, Maurice ; Agyeman, Prince
> ; You, Benjamin 
> Subject: [PATCH v4 14/14] CorebootModulePkg/SecCore: Remove .S files for
> IA32 arch
> 
> .nasm file has been added for X86 arch. .S assembly code is not required any
> more.
> https://bugzilla.tianocore.org/show_bug.cgi?id=1594
> 
> Cc: Maurice Ma 
> Cc: Prince Agyeman 
> Cc: Benjamin You 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Shenglei Zhang 
> ---
>  CorebootModulePkg/SecCore/Ia32/SecEntry.S | 74 -
>  CorebootModulePkg/SecCore/Ia32/Stack.S| 78 ---
>  2 files changed, 152 deletions(-)
>  delete mode 100644 CorebootModulePkg/SecCore/Ia32/SecEntry.S
>  delete mode 100644 CorebootModulePkg/SecCore/Ia32/Stack.S
> 
> diff --git a/CorebootModulePkg/SecCore/Ia32/SecEntry.S
> b/CorebootModulePkg/SecCore/Ia32/SecEntry.S
> deleted file mode 100644
> index 3a3f76ed6b..00
> --- a/CorebootModulePkg/SecCore/Ia32/SecEntry.S
> +++ /dev/null
> @@ -1,74 +0,0 @@
> -#--
> -#
> -# Copyright (c) 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.
> -#
> -# Module Name:
> -#
> -#  SecEntry.S
> -#
> -# Abstract:
> -#
> -#  This is the code that begins in protected mode.
> -#   It will transfer the control to pei core.
> -#
> -#--
> -
> -ASM_GLOBAL  ASM_PFX(SecStartup)
> -
> -# Pcds
> -ASM_GLOBAL  ASM_PFX(PcdGet32 (PcdPayloadFdMemBase))
> -
> -#
> -# SecCore Entry Point
> -#
> -# Processor is in flat protected mode
> -#
> -# @param[in]  EAX   Initial value of the EAX register (BIST: Built-in Self 
> Test)
> -# @param[in]  DI'BP': boot-strap processor, or 'AP': application 
> processor
> -# @param[in]  EBP   Pointer to the start of the Boot Firmware Volume
> -#
> -# @return None  This routine does not return
> -#
> -ASM_GLOBAL ASM_PFX(_ModuleEntryPoint)
> -ASM_PFX(_ModuleEntryPoint):
> -  #
> -  # Disable all the interrupts
> -  #
> -  cli
> -
> -  #
> -  # Construct the temporary memory at 0x8, length 0x1
> -  #
> -  movl $(BASE_512KB + SIZE_64KB), %esp
> -
> -  #
> -  # Pass BFV into the PEI Core
> -  #
> -  pushl ASM_PFX(PcdGet32 (PcdPayloadFdMemBase))
> -
> -  #
> -  # Pass stack base into the PEI Core
> -  #
> -  pushl $BASE_512KB
> -
> -  #
> -  # Pass stack size into the PEI Core
> -  #
> -  pushl $SIZE_64KB
> -
> -  #
> -  # Pass Control into the PEI Core
> -  #
> -  call SecStartup
> -
> -  #
> -  # Never return to here
> -  #
> -  jmp .
> diff --git a/CorebootModulePkg/SecCore/Ia32/Stack.S
> b/CorebootModulePkg/SecCore/Ia32/Stack.S
> deleted file mode 100644
> index 6a8e0e4b15..00
> --- a/CorebootModulePkg/SecCore/Ia32/Stack.S
> +++ /dev/null
> @@ -1,78 +0,0 @@
> -#--
> -#
> -# Copyright (c) 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.
> -#
> -# Abstract:
> -#
> -#   Switch the stack from temporary memory to permanent memory.
> -#
> -#--
> -
> -
> -#--
> -# VOID
> -# EFIAPI
> -# SecSwitchStack (
> -#   UINT32   TemporaryMemoryBase,
> -#   UINT32   PermenentMemoryBase
> -#   )#
> -#--
> -ASM_GLOBAL ASM_PFX (SecSwitchStack)
> -ASM_PFX(SecSwitchStack):
> -#
> -# Save standard registers so they can be used to change stack
> -#
> -pushl %eax
> -pushl %ebx
> -pushl %ecx
> -pushl %edx
> -
> -#
> -# !!CAUTION!! this function address's is pushed into stack after
> -# migration of whole temporary memory, so need save it to permanent
> -# memory at first!
> -#
> -movl  20(%esp), %ebx # Save the first parameter
> -movl 

[edk2] [PATCH v4 14/14] CorebootModulePkg/SecCore: Remove .S files for IA32 arch

2019-04-01 Thread Shenglei Zhang
.nasm file has been added for X86 arch. .S assembly code
is not required any more.
https://bugzilla.tianocore.org/show_bug.cgi?id=1594

Cc: Maurice Ma 
Cc: Prince Agyeman 
Cc: Benjamin You 
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Shenglei Zhang 
---
 CorebootModulePkg/SecCore/Ia32/SecEntry.S | 74 -
 CorebootModulePkg/SecCore/Ia32/Stack.S| 78 ---
 2 files changed, 152 deletions(-)
 delete mode 100644 CorebootModulePkg/SecCore/Ia32/SecEntry.S
 delete mode 100644 CorebootModulePkg/SecCore/Ia32/Stack.S

diff --git a/CorebootModulePkg/SecCore/Ia32/SecEntry.S 
b/CorebootModulePkg/SecCore/Ia32/SecEntry.S
deleted file mode 100644
index 3a3f76ed6b..00
--- a/CorebootModulePkg/SecCore/Ia32/SecEntry.S
+++ /dev/null
@@ -1,74 +0,0 @@
-#--
-#
-# Copyright (c) 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.
-#
-# Module Name:
-#
-#  SecEntry.S
-#
-# Abstract:
-#
-#  This is the code that begins in protected mode.
-#   It will transfer the control to pei core.
-#
-#--
-
-ASM_GLOBAL  ASM_PFX(SecStartup)
-
-# Pcds
-ASM_GLOBAL  ASM_PFX(PcdGet32 (PcdPayloadFdMemBase))
-
-#
-# SecCore Entry Point
-#
-# Processor is in flat protected mode
-#
-# @param[in]  EAX   Initial value of the EAX register (BIST: Built-in Self 
Test)
-# @param[in]  DI'BP': boot-strap processor, or 'AP': application processor
-# @param[in]  EBP   Pointer to the start of the Boot Firmware Volume
-#
-# @return None  This routine does not return
-#
-ASM_GLOBAL ASM_PFX(_ModuleEntryPoint)
-ASM_PFX(_ModuleEntryPoint):
-  #
-  # Disable all the interrupts
-  #
-  cli
-  
-  #
-  # Construct the temporary memory at 0x8, length 0x1
-  #
-  movl $(BASE_512KB + SIZE_64KB), %esp
-
-  #
-  # Pass BFV into the PEI Core
-  #
-  pushl ASM_PFX(PcdGet32 (PcdPayloadFdMemBase))
-  
-  #
-  # Pass stack base into the PEI Core
-  #
-  pushl $BASE_512KB
-
-  #
-  # Pass stack size into the PEI Core
-  #
-  pushl $SIZE_64KB
-
-  #
-  # Pass Control into the PEI Core
-  #
-  call SecStartup
-  
-  #
-  # Never return to here
-  #
-  jmp .
diff --git a/CorebootModulePkg/SecCore/Ia32/Stack.S 
b/CorebootModulePkg/SecCore/Ia32/Stack.S
deleted file mode 100644
index 6a8e0e4b15..00
--- a/CorebootModulePkg/SecCore/Ia32/Stack.S
+++ /dev/null
@@ -1,78 +0,0 @@
-#--
-#
-# Copyright (c) 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.
-#
-# Abstract:
-#
-#   Switch the stack from temporary memory to permanent memory.
-#
-#--
-
-
-#--
-# VOID
-# EFIAPI
-# SecSwitchStack (
-#   UINT32   TemporaryMemoryBase,
-#   UINT32   PermenentMemoryBase
-#   )#
-#--
-ASM_GLOBAL ASM_PFX (SecSwitchStack)
-ASM_PFX(SecSwitchStack):
-#
-# Save standard registers so they can be used to change stack
-#
-pushl %eax
-pushl %ebx
-pushl %ecx
-pushl %edx
-
-#
-# !!CAUTION!! this function address's is pushed into stack after
-# migration of whole temporary memory, so need save it to permanent
-# memory at first!
-#
-movl  20(%esp), %ebx # Save the first parameter
-movl  24(%esp), %ecx # Save the second parameter
-
-#
-# Save this function's return address into permanent memory at first.
-# Then, Fixup the esp point to permanent memory
-#
-movl  %esp, %eax
-subl  %ebx, %eax
-addl  %ecx, %eax
-movl  0(%esp), %edx  # copy pushed register's value to permanent 
memory
-movl  %edx, 0(%eax)
-movl  4(%esp), %edx
-movl  %edx, 4(%eax)
-movl  8(%esp), %edx
-movl  %edx, 8(%eax)
-movl  12(%esp), %edx
-movl  %edx, 12(%eax)
-movl  16(%esp), %edx# Update this function's return address into 
permanent