public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-platforms] [PATCH 0/5] Added GCC5 build support
@ 2019-05-15 17:35 Agyeman, Prince
  2019-05-15 17:35 ` [edk2-platforms] [PATCH 1/5] MinPlatformPkg: " Agyeman, Prince
                   ` (4 more replies)
  0 siblings, 5 replies; 18+ messages in thread
From: Agyeman, Prince @ 2019-05-15 17:35 UTC (permalink / raw)
  To: devel
  Cc: Prince Agyeman, Michael Kubacki, Michael D Kinney, Nate DeSimone,
	Liming Gao, Ankit Sinha

From: Prince Agyeman <prince.agyeman@intel.com>

This patch series adds GCC 5 build support to
ClevoOpenBoardPkg and KabylakeOpenBoardPkg

Cc: Michael Kubacki <michael.a.kubacki@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Ankit Sinha <ankit.sinha@intel.com>

Prince Agyeman (5):
  MinPlatformPkg: Added GCC5 build support
  KabylakeSiliconPkg: Casting functions to EFIAPI
  KabylakeOpenBoardPkg: Added GCC5 build support
  ClevoOpenBoardPkg: Added GCC5 build support
  Intel/Readme.md: Updated readme with linux build instructions

 .../N1xxWU/OpenBoardPkgBuildOption.dsc             |   2 +
 Platform/Intel/ClevoOpenBoardPkg/OpenBoardPkg.dec  |   4 +-
 .../KabylakeRvp3/OpenBoardPkgBuildOption.dsc       |  12 +-
 .../Intel/KabylakeOpenBoardPkg/OpenBoardPkg.dec    |  14 +-
 .../Ia32/PeiCoreEntry.S                            | 123 --------
 .../Ia32/{PeiCoreEntry.asm => PeiCoreEntry.nasm}   |  52 ++-
 .../SecFspWrapperPlatformSecLib/Ia32/SecEntry.S    | 348 ---------------------
 .../Ia32/{SecEntry.asm => SecEntry.nasm}           | 138 ++++----
 .../SecFspWrapperPlatformSecLib/Ia32/Stack.S       |  73 -----
 .../Ia32/{Stack.asm => Stack.nasm}                 |  45 ++-
 .../SecFspWrapperPlatformSecLib.inf                |  18 +-
 .../MinPlatformPkg/Include/Fdf/RuleInclude.fdf     |  19 +-
 .../Tools/Fsp/RebaseAndPatchFspBinBaseAddress.py   |   2 +-
 .../MinPlatformPkg/Tools/PatchFv/PatchBinFv.py     |  16 +-
 .../MinPlatformPkg/Tools/PatchFv/RebaseBinFv.py    |  23 +-
 Platform/Intel/Readme.md                           |  31 +-
 Platform/Intel/build_bios.py                       |  25 +-
 .../Pch/PchInit/Smm/PchInitSmm.h                   |  11 +-
 .../Pch/PchInit/Smm/PchPcieSmm.c                   |  11 +-
 .../Pch/PchSmiDispatcher/Smm/PchSmm.h              |  12 +-
 .../Pch/PchSmiDispatcher/Smm/PchSmmCore.c          |  12 +-
 21 files changed, 197 insertions(+), 794 deletions(-)
 delete mode 100644 Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/PeiCoreEntry.S
 rename Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/{PeiCoreEntry.asm => PeiCoreEntry.nasm} (59%)
 delete mode 100644 Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/SecEntry.S
 rename Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/{SecEntry.asm => SecEntry.nasm} (69%)
 delete mode 100644 Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/Stack.S
 rename Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/{Stack.asm => Stack.nasm} (50%)

-- 
2.7.4


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [edk2-platforms] [PATCH 1/5] MinPlatformPkg: Added GCC5 build support
  2019-05-15 17:35 [edk2-platforms] [PATCH 0/5] Added GCC5 build support Agyeman, Prince
@ 2019-05-15 17:35 ` Agyeman, Prince
  2019-05-18  0:42   ` [edk2-devel] " Kubacki, Michael A
  2019-05-18  0:43   ` Nate DeSimone
  2019-05-15 17:35 ` [edk2-platforms] [PATCH 2/5] KabylakeSiliconPkg: Casting functions to EFIAPI Agyeman, Prince
                   ` (3 subsequent siblings)
  4 siblings, 2 replies; 18+ messages in thread
From: Agyeman, Prince @ 2019-05-15 17:35 UTC (permalink / raw)
  To: devel
  Cc: Prince Agyeman, Michael Kubacki, Michael D Kinney, Nate DeSimone,
	Liming Gao, Ankit Sinha

From: Prince Agyeman <prince.agyeman@intel.com>

Fixes:
* Replacing .asm and .S with nasm in SecFspWrapperPlatformSecLib
for cross-platform build support
* Modified RuleInclude.fdf
* Modified python files to be OS independent

Gcc build was tested on Ubuntu 16.04.5 LTS with gcc version 5.4.0,
nasm version 2.11.08

Cc: Michael Kubacki <michael.a.kubacki@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Ankit Sinha <ankit.sinha@intel.com>

TianoCore Contribution Agreement 1.1
Signed-off-by: Prince Agyeman <prince.agyeman@intel.com>
---
 .../Ia32/PeiCoreEntry.S                            | 123 --------
 .../Ia32/{PeiCoreEntry.asm => PeiCoreEntry.nasm}   |  52 ++-
 .../SecFspWrapperPlatformSecLib/Ia32/SecEntry.S    | 348 ---------------------
 .../Ia32/{SecEntry.asm => SecEntry.nasm}           | 138 ++++----
 .../SecFspWrapperPlatformSecLib/Ia32/Stack.S       |  73 -----
 .../Ia32/{Stack.asm => Stack.nasm}                 |  45 ++-
 .../SecFspWrapperPlatformSecLib.inf                |  18 +-
 .../MinPlatformPkg/Include/Fdf/RuleInclude.fdf     |  19 +-
 .../Tools/Fsp/RebaseAndPatchFspBinBaseAddress.py   |   2 +-
 .../MinPlatformPkg/Tools/PatchFv/PatchBinFv.py     |  16 +-
 .../MinPlatformPkg/Tools/PatchFv/RebaseBinFv.py    |  23 +-
 Platform/Intel/build_bios.py                       |  25 +-
 12 files changed, 152 insertions(+), 730 deletions(-)
 delete mode 100644 Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/PeiCoreEntry.S
 rename Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/{PeiCoreEntry.asm => PeiCoreEntry.nasm} (59%)
 delete mode 100644 Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/SecEntry.S
 rename Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/{SecEntry.asm => SecEntry.nasm} (69%)
 delete mode 100644 Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/Stack.S
 rename Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/{Stack.asm => Stack.nasm} (50%)

diff --git a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/PeiCoreEntry.S b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/PeiCoreEntry.S
deleted file mode 100644
index 8923577..0000000
--- a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/PeiCoreEntry.S
+++ /dev/null
@@ -1,123 +0,0 @@
-## @file
-# Find and call SecStartup
-#
-# Copyright (c) 2017, 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 that 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.
-#
-##
-
-ASM_GLOBAL ASM_PFX(CallPeiCoreEntryPoint)
-ASM_PFX(CallPeiCoreEntryPoint):
-  #
-  # Obtain the hob list pointer
-  #
-  movl    0x4(%esp), %eax
-  #
-  # Obtain the stack information
-  #   ECX: start of range
-  #   EDX: end of range
-  #
-  movl    0x8(%esp), %ecx
-  movl    0xC(%esp), %edx
-
-  #
-  # Platform init
-  #
-  pushal
-  pushl %edx
-  pushl %ecx
-  pushl %eax
-  call  ASM_PFX(PlatformInit)
-  popl  %eax
-  popl  %eax
-  popl  %eax
-  popal
-
-  #
-  # Set stack top pointer
-  #
-  movl    %edx, %esp
-
-  #
-  # Push the hob list pointer
-  #
-  pushl   %eax
-
-  #
-  # Save the value
-  #   ECX: start of range
-  #   EDX: end of range
-  #
-  movl    %esp, %ebp
-  pushl   %ecx
-  pushl   %edx
-
-  #
-  # Push processor count to stack first, then BIST status (AP then BSP)
-  #
-  movl    $1, %eax
-  cpuid
-  shr     $16, %ebx
-  andl    $0x000000FF, %ebx
-  cmp     $1, %bl
-  jae     PushProcessorCount
-
-  #
-  # Some processors report 0 logical processors.  Effectively 0 = 1.
-  # So we fix up the processor count
-  #
-  inc     %ebx
-
-PushProcessorCount:
-  pushl   %ebx
-
-  #
-  # We need to implement a long-term solution for BIST capture.  For now, we just copy BSP BIST
-  # for all processor threads
-  #
-  xorl    %ecx, %ecx
-  movb    %bl, %cl
-PushBist:
-  movd    %mm0, %eax
-  pushl   %eax
-  loop    PushBist
-
-  # Save Time-Stamp Counter
-  movd  %mm5, %eax
-  pushl %eax
-
-  movd  %mm6, %eax
-  pushl %eax
-
-  #
-  # Pass entry point of the PEI core
-  #
-  movl    $0xFFFFFFE0, %edi
-  pushl   %ds:(%edi)
-
-  #
-  # Pass BFV into the PEI Core
-  #
-  movl    $0xFFFFFFFC, %edi
-  pushl   %ds:(%edi)
-
-  #
-  # Pass stack size into the PEI Core
-  #
-  movl    -4(%ebp), %ecx
-  movl    -8(%ebp), %edx
-  pushl   %ecx       # RamBase
-
-  subl    %ecx, %edx
-  pushl   %edx       # RamSize
-
-  #
-  # Pass Control into the PEI Core
-  #
-  call ASM_PFX(SecStartup)
diff --git a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/PeiCoreEntry.asm b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/PeiCoreEntry.nasm
similarity index 59%
rename from Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/PeiCoreEntry.asm
rename to Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/PeiCoreEntry.nasm
index d4703dc..5c5b788 100644
--- a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/PeiCoreEntry.asm
+++ b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/PeiCoreEntry.nasm
@@ -1,27 +1,25 @@
-;; @file
-; Find and call SecStartup
+;------------------------------------------------------------------------------
 ;
-; Copyright (c) 2017, 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 that accompanies this distribution.
-; The full text of the license may be found at
-; http://opensource.org/licenses/bsd-license.php.
+; Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
+; SPDX-License-Identifier: BSD-2-Clause-Patent
 ;
-; 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:
 ;
-;;
-
+;  PeiCoreEntry.nasm
+;
+; Abstract:
+;
+;   Find and call SecStartup
+;
+;------------------------------------------------------------------------------
 
-.686p
-.xmm
-.model flat, c
-.code
+SECTION .text
 
-EXTRN   SecStartup:NEAR
-EXTRN   PlatformInit:NEAR
+extern ASM_PFX(SecStartup)
+extern ASM_PFX(PlatformInit)
 
-CallPeiCoreEntryPoint   PROC PUBLIC
+global ASM_PFX(CallPeiCoreEntryPoint)
+ASM_PFX(CallPeiCoreEntryPoint):
   ;
   ; Obtain the hob list pointer
   ;
@@ -32,7 +30,7 @@ CallPeiCoreEntryPoint   PROC PUBLIC
   ;   EDX: end of range
   ;
   mov     ecx, [esp+8]
-  mov     edx, [esp+0Ch]
+  mov     edx, [esp+0xC]
 
   ;
   ; Platform init
@@ -41,7 +39,7 @@ CallPeiCoreEntryPoint   PROC PUBLIC
   push edx
   push ecx
   push eax
-  call PlatformInit
+  call ASM_PFX(PlatformInit)
   pop  eax
   pop  eax
   pop  eax
@@ -72,7 +70,7 @@ CallPeiCoreEntryPoint   PROC PUBLIC
   mov     eax, 1
   cpuid
   shr     ebx, 16
-  and     ebx, 0000000FFh
+  and     ebx, 0xFF
   cmp     bl, 1
   jae     PushProcessorCount
 
@@ -106,14 +104,14 @@ PushBist:
   ;
   ; Pass entry point of the PEI core
   ;
-  mov     edi, 0FFFFFFE0h
-  push    DWORD PTR ds:[edi]
+  mov     edi, 0xFFFFFFE0
+  push    DWORD [edi]
 
   ;
   ; Pass BFV into the PEI Core
   ;
-  mov     edi, 0FFFFFFFCh
-  push    DWORD PTR ds:[edi]
+  mov     edi, 0xFFFFFFFC
+  push    DWORD [edi]
 
   ;
   ; Pass stack size into the PEI Core
@@ -128,7 +126,5 @@ PushBist:
   ;
   ; Pass Control into the PEI Core
   ;
-  call SecStartup
-CallPeiCoreEntryPoint   ENDP
+  call ASM_PFX(SecStartup)
 
-END
diff --git a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/SecEntry.S b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/SecEntry.S
deleted file mode 100644
index 396e7a4..0000000
--- a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/SecEntry.S
+++ /dev/null
@@ -1,348 +0,0 @@
-## @file
-# This is the code that goes from real-mode to protected mode.
-# It consumes the reset vector, calls TempRamInit API from FSP binary.
-#
-# Copyright (c) 2017, 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 that 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.
-#
-##
-
-#include "Fsp.h"
-
-ASM_GLOBAL    ASM_PFX(_gPcd_FixedAtBuild_PcdFsptBaseAddress)
-ASM_GLOBAL    ASM_PFX(_gPcd_FixedAtBuild_PcdFspTemporaryRamSize)
-
-ASM_GLOBAL ASM_PFX(_TEXT_REALMODE)
-ASM_PFX(_TEXT_REALMODE):
-#----------------------------------------------------------------------------
-#
-# Procedure:    _ModuleEntryPoint
-#
-# Input:        None
-#
-# Output:       None
-#
-# Destroys:     Assume all registers
-#
-# Description:
-#
-#   Transition to non-paged flat-model protected mode from a
-#   hard-coded GDT that provides exactly two descriptors.
-#   This is a bare bones transition to protected mode only
-#   used for a while in PEI and possibly DXE.
-#
-#   After enabling protected mode, a far jump is executed to
-#   transfer to PEI using the newly loaded GDT.
-#
-# Return:       None
-#
-#  MMX Usage:
-#              MM0 = BIST State
-#              MM5 = Save time-stamp counter value high32bit
-#              MM6 = Save time-stamp counter value low32bit.
-#
-#----------------------------------------------------------------------------
-
-ASM_GLOBAL ASM_PFX(_ModuleEntryPoint)
-ASM_PFX(_ModuleEntryPoint):
-  fninit                                # clear any pending Floating point exceptions
-  #
-  # Store the BIST value in mm0
-  #
-  movd    %eax, %mm0
-  cli
-
-  #
-  # Check INIT# is asserted by port 0xCF9
-  #
-  mov     $0x0CF9, %dx
-  in      %dx, %al
-  cmp     $0x04, %al
-  jnz     NotWarmStart
-
-  #
-  # @note Issue warm reset, since if CPU only reset is issued not all MSRs are restored to their defaults
-  #
-  movw    $0x0CF9, %dx
-  movb    $0x06, %al
-  out     %al, %dx
-
-  #
-  # Save time-stamp counter value
-  # rdtsc load 64bit time-stamp counter to EDX:EAX
-  #
-  rdtsc
-  movd    %edx, %mm5
-  movd    %ecx, %mm6
-
-  #
-  # Load the GDT table in GdtDesc
-  #
-  movl    $GdtDesc, %esi
-  .byte   0x66
-  lgdt    %cs:(%si)
-
-  #
-  # Transition to 16 bit protected mode
-  #
-  movl    %cr0, %eax                 # Get control register 0
-  orl     $0x00000003, %eax          # Set PE bit (bit #0) & MP bit (bit #1)
-  movl    %eax, %cr0                 # Activate protected mode
-
-  movl    %cr4, %eax                 # Get control register 4
-  orl     $0x00000600, %eax          # Set OSFXSR bit (bit #9) & OSXMMEXCPT bit (bit #10)
-  movl    %eax, %cr4
-
-  #
-  # Now we're in 16 bit protected mode
-  # Set up the selectors for 32 bit protected mode entry
-  #
-  mov     $SYS_DATA_SEL, %ax
-  mov     %ax, %ds
-  mov     %ax, %es
-  mov     %ax, %fs
-  mov     %ax, %gs
-  mov     %ax, %ss
-
-  #
-  # Transition to Flat 32 bit protected mode
-  # The jump to a far pointer causes the transition to 32 bit mode
-  #
-  movl    $ProtectedModeEntryLinearAddress, %esi
-  jmp     *%cs:(%si)
-
-ASM_GLOBAL ASM_PFX(_TEXT_PROTECTED_MODE)
-ASM_PFX(_TEXT_PROTECTED_MODE):
-
-#----------------------------------------------------------------------------
-#
-# Procedure:    ProtectedModeEntryPoint
-#
-# Input:        None
-#
-# Output:       None
-#
-# Destroys:     Assume all registers
-#
-# Description:
-#
-# This function handles:
-#   Call two basic APIs from FSP binary
-#   Initializes stack with some early data (BIST, PEI entry, etc)
-#
-# Return:       None
-#
-#----------------------------------------------------------------------------
-
-ASM_GLOBAL ASM_PFX(ProtectedModeEntryPoint)
-ASM_PFX(ProtectedModeEntryPoint):
-
-  # Find the fsp info header
-  movl PcdGet32(PcdFsptBaseAddress), %edi
-
-  movl FVH_SIGINATURE_OFFSET(%edi), %eax
-  cmp  $FVH_SIGINATURE_VALID_VALUE, %eax
-  jnz  FspHeaderNotFound
-
-  xorl %eax, %eax
-  movw FVH_EXTHEADER_OFFSET_OFFSET(%edi), %ax
-  cmp  $0x00, %ax
-  jnz  FspFvExtHeaderExist
-
-  xorl %eax, %eax
-  movw FVH_HEADER_LENGTH_OFFSET(%edi), %ax   # Bypass Fv Header
-  addl %eax, %edi
-  jmp  FspCheckFfsHeader
-
-FspFvExtHeaderExist:
-  addl %eax, %edi
-  movl FVH_EXTHEADER_SIZE_OFFSET(%edi), %eax  # Bypass Ext Fv Header
-  addl %eax, %edi
-
-  # Round up to 8 byte alignment
-  movl %edi, %eax
-  andb $0x07, %al
-  jz FspCheckFfsHeader
-
-  and  $0xFFFFFFF8, %edi
-  add  $0x08, %edi
-
-FspCheckFfsHeader:
-  # Check the ffs guid
-  movl (%edi), %eax
-  cmp  $FSP_HEADER_GUID_DWORD1, %eax
-  jnz  FspHeaderNotFound
-
-  movl 0x4(%edi), %eax
-  cmp  $FSP_HEADER_GUID_DWORD2, %eax
-  jnz  FspHeaderNotFound
-
-  movl 0x08(%edi), %eax
-  cmp  $FSP_HEADER_GUID_DWORD3, %eax
-  jnz  FspHeaderNotFound
-
-  movl 0x0c(%edi), %eax
-  cmp  $FSP_HEADER_GUID_DWORD4, %eax
-  jnz  FspHeaderNotFound
-
-  add  $FFS_HEADER_SIZE_VALUE, %edi        # Bypass the ffs header
-
-  # Check the section type as raw section
-  movb SECTION_HEADER_TYPE_OFFSET(%edi), %al
-  cmp  $0x19, %al
-  jnz  FspHeaderNotFound
-
-  addl $RAW_SECTION_HEADER_SIZE_VALUE, %edi  # Bypass the section header
-  jmp  FspHeaderFound
-
-FspHeaderNotFound:
-  jmp  .
-
-FspHeaderFound:
-  # Get the fsp TempRamInit Api address
-  movl FSP_HEADER_IMAGEBASE_OFFSET(%edi), %eax
-  addl FSP_HEADER_TEMPRAMINIT_OFFSET(%edi), %eax
-
-  # Setup the hardcode stack
-  movl $TempRamInitStack, %esp
-
-  # Call the fsp TempRamInit Api
-  jmp  *%eax
-
-TempRamInitDone:
-  cmp  $0x8000000E, %eax   #Check if EFI_NOT_FOUND returned. Error code for Microcode Update not found.
-  je   CallSecFspInit      #If microcode not found, don't hang, but continue.
-
-  cmp  $0x0, %eax
-  jnz  FspApiFailed
-
-  #   ECX: start of range
-  #   EDX: end of range
-CallSecFspInit:
-  subl    PcdGet32 (PcdFspTemporaryRamSize), %edx # TemporaryRam for FSP
-  xorl    %eax, %eax
-  movl    %edx, %esp
-
-  # Align the stack at DWORD
-  addl  $3, %esp
-  andl  $0xFFFFFFFC, %esp
-
-  pushl   %edx
-  pushl   %ecx
-  pushl   %eax # zero - no hob list yet
-  call    ASM_PFX(CallPeiCoreEntryPoint)
-
-FspApiFailed:
-  jmp .
-
-.align 0x10
-TempRamInitStack:
-    .long  TempRamInitDone
-    .long  FsptUpdDataPtr
-
-#
-# ROM-based Global-Descriptor Table for the Tiano PEI Phase
-#
-.align 0x10
-
-#
-# GDT[0]: 0x00: Null entry, never used.
-#
-.equ NULL_SEL,             . - GdtBase    # Selector [0]
-GdtBase:
-BootGdtTable: 
-    .long  0
-    .long  0
-
-#
-# Linear data segment descriptor
-#
-.equ LINEAR_SEL,           . - GdtBase     # Selector [0x8]
-    .word  0xFFFF                          # limit 0xFFFFF
-    .word  0                               # base 0
-    .byte  0
-    .byte  0x92                            # present, ring 0, data, expand-up, writable
-    .byte  0xCF                            # page-granular, 32-bit
-    .byte  0
-
-#
-# Linear code segment descriptor
-#
-.equ LINEAR_CODE_SEL,      . - GdtBase     # Selector [0x10]
-    .word  0xFFFF                          # limit 0xFFFFF
-    .word  0                               # base 0
-    .byte  0
-    .byte  0x9B                            # present, ring 0, data, expand-up, not-writable
-    .byte  0xCF                            # page-granular, 32-bit
-    .byte  0
-#
-# System data segment descriptor
-#
-.equ SYS_DATA_SEL,         . - GdtBase     # Selector [0x18]
-    .word  0xFFFF                          # limit 0xFFFFF
-    .word  0                               # base 0
-    .byte  0
-    .byte  0x93                            # present, ring 0, data, expand-up, not-writable
-    .byte  0xCF                            # page-granular, 32-bit
-    .byte  0
-
-#
-# System code segment descriptor
-#
-.equ SYS_CODE_SEL,         . - GdtBase     # Selector [0x20]
-    .word  0xFFFF                          # limit 0xFFFFF
-    .word  0                               # base 0
-    .byte  0
-    .byte  0x9A                            # present, ring 0, data, expand-up, writable
-    .byte  0xCF                            # page-granular, 32-bit
-    .byte  0
-#
-# Spare segment descriptor
-#
-.equ SYS16_CODE_SEL,       . - GdtBase     # Selector [0x28]
-    .word  0xFFFF                          # limit 0xFFFFF
-    .word  0                               # base 0
-    .byte  0x0E                            # Changed from F000 to E000.
-    .byte  0x9B                            # present, ring 0, code, expand-up, writable
-    .byte  0x00                            # byte-granular, 16-bit
-    .byte  0
-#
-# Spare segment descriptor
-#
-.equ SYS16_DATA_SEL,       . - GdtBase     # Selector [0x30]
-    .word  0xFFFF                          # limit 0xFFFF
-    .word  0                               # base 0
-    .byte  0
-    .byte  0x93                            # present, ring 0, data, expand-up, not-writable
-    .byte  0x00                            # byte-granular, 16-bit
-    .byte  0
-
-#
-# Spare segment descriptor
-#
-.equ SPARE5_SEL,           . - GdtBase     # Selector [0x38]
-    .word  0                               # limit 0
-    .word  0                               # base 0
-    .byte  0
-    .byte  0                               # present, ring 0, data, expand-up, writable
-    .byte  0                               # page-granular, 32-bit
-    .byte  0
-.equ GDT_SIZE,             . - BootGdtTable    # Size, in bytes
-
-#
-# GDT Descriptor
-#
-GdtDesc:                                # GDT descriptor
-    .word  GDT_SIZE - 1                    # GDT limit
-    .long  BootGdtTable                    # GDT base address
-
-ASM_PFX(ProtectedModeEntryLinearAddress):
-ProtectedModeEntryLinearOffset:
-  .long      ProtectedModeEntryPoint       # Offset of our 32 bit code
-  .word      LINEAR_CODE_SEL
diff --git a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/SecEntry.asm b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/SecEntry.nasm
similarity index 69%
rename from Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/SecEntry.asm
rename to Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/SecEntry.nasm
index 7b82cba..7f6d771 100644
--- a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/SecEntry.asm
+++ b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/SecEntry.nasm
@@ -1,34 +1,28 @@
-;; @file
-; This is the code that goes from real-mode to protected mode.
-; It consumes the reset vector, calls TempRamInit API from FSP binary.
+;------------------------------------------------------------------------------
 ;
-; Copyright (c) 2017, 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 that accompanies this distribution.
-; The full text of the license may be found at
-; http://opensource.org/licenses/bsd-license.php.
+; Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
+; SPDX-License-Identifier: BSD-2-Clause-Patent
+; Module Name:
 ;
-; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+;  SecEntry.nasm
 ;
-;;
+; Abstract:
+;
+;  This is the code that goes from real-mode to protected mode.
+;  It consumes the reset vector, calls TempRamInit API from FSP binary.
+;
+;------------------------------------------------------------------------------
 
 #include "Fsp.h"
 
-.686p
-.xmm
-.model small, c
-
-EXTRN   CallPeiCoreEntryPoint:NEAR
-EXTRN   BoardBeforeTempRamInit:NEAR
-EXTRN   FsptUpdDataPtr:FAR
+SECTION .text
 
+extern   ASM_PFX(CallPeiCoreEntryPoint)
+extern   ASM_PFX(FsptUpdDataPtr)
+extern   ASM_PFX(BoardBeforeTempRamInit)
 ; Pcds
-EXTRN   PcdGet32 (PcdFsptBaseAddress):DWORD
-EXTRN   PcdGet32(PcdFspTemporaryRamSize):DWORD
-
-_TEXT_REALMODE      SEGMENT PARA PUBLIC USE16 'CODE'
-                    ASSUME  CS:_TEXT_REALMODE, DS:_TEXT_REALMODE
+extern   ASM_PFX(PcdGet32 (PcdFspTemporaryRamSize))
+extern   ASM_PFX(PcdGet32 (PcdFsptBaseAddress))
 
 ;----------------------------------------------------------------------------
 ;
@@ -59,8 +53,10 @@ _TEXT_REALMODE      SEGMENT PARA PUBLIC USE16 'CODE'
 ;
 ;----------------------------------------------------------------------------
 
+BITS 16
 align 4
-_ModuleEntryPoint PROC NEAR C PUBLIC
+global ASM_PFX(_ModuleEntryPoint)
+ASM_PFX(_ModuleEntryPoint):
   fninit                                ; clear any pending Floating point exceptions
   ;
   ; Store the BIST value in mm0
@@ -76,6 +72,7 @@ _ModuleEntryPoint PROC NEAR C PUBLIC
   cmp al, 04h
   jnz NotWarmStart
 
+
   ;
   ; @note Issue warm reset, since if CPU only reset is issued not all MSRs are restored to their defaults
   ;
@@ -84,7 +81,6 @@ _ModuleEntryPoint PROC NEAR C PUBLIC
   out dx, al
 
 NotWarmStart:
-
   ;
   ; Save time-stamp counter value
   ; rdtsc load 64bit time-stamp counter to EDX:EAX
@@ -96,9 +92,9 @@ NotWarmStart:
   ;
   ; Load the GDT table in GdtDesc
   ;
-  mov     esi,  OFFSET GdtDesc
+  mov     esi,  GdtDesc
   DB      66h
-  lgdt    fword ptr cs:[si]
+  lgdt    [cs:si]
 
   ;
   ; Transition to 16 bit protected mode
@@ -126,14 +122,8 @@ NotWarmStart:
   ; Transition to Flat 32 bit protected mode
   ; The jump to a far pointer causes the transition to 32 bit mode
   ;
-  mov esi, offset ProtectedModeEntryLinearAddress
-  jmp     fword ptr cs:[si]
-
-_ModuleEntryPoint   ENDP
-_TEXT_REALMODE      ENDS
-
-_TEXT_PROTECTED_MODE      SEGMENT PARA PUBLIC USE32 'CODE'
-                          ASSUME  CS:_TEXT_PROTECTED_MODE, DS:_TEXT_PROTECTED_MODE
+  mov esi, ProtectedModeEntryLinearAddress
+  jmp   dword far  [cs:si]
 
 ;----------------------------------------------------------------------------
 ;
@@ -155,69 +145,69 @@ _TEXT_PROTECTED_MODE      SEGMENT PARA PUBLIC USE32 'CODE'
 ;
 ;----------------------------------------------------------------------------
 
+BITS 32
 align 4
-ProtectedModeEntryPoint PROC NEAR PUBLIC
-
-        ;
-        ; Early board hooks
-        ;
-        mov     esp, BoardBeforeTempRamInitRet
-        jmp     BoardBeforeTempRamInit
+ProtectedModeEntryPoint:
+  ;
+  ; Early board hooks
+  ;
+  mov     esp, BoardBeforeTempRamInitRet
+  jmp     ASM_PFX(BoardBeforeTempRamInit)
 
 BoardBeforeTempRamInitRet:
 
   ; Find the fsp info header
-  mov  edi, PcdGet32 (PcdFsptBaseAddress)
+  mov  edi, [ASM_PFX(PcdGet32 (PcdFsptBaseAddress))]
 
-  mov  eax, dword ptr [edi + FVH_SIGINATURE_OFFSET]
+  mov  eax, dword [edi + FVH_SIGINATURE_OFFSET]
   cmp  eax, FVH_SIGINATURE_VALID_VALUE
   jnz  FspHeaderNotFound
 
   xor  eax, eax
-  mov  ax, word ptr [edi + FVH_EXTHEADER_OFFSET_OFFSET]
+  mov  ax, word [edi + FVH_EXTHEADER_OFFSET_OFFSET]
   cmp  ax, 0
   jnz  FspFvExtHeaderExist
 
   xor  eax, eax
-  mov  ax, word ptr [edi + FVH_HEADER_LENGTH_OFFSET]   ; Bypass Fv Header
+  mov  ax, word [edi + FVH_HEADER_LENGTH_OFFSET]   ; Bypass Fv Header
   add  edi, eax
   jmp  FspCheckFfsHeader
 
 FspFvExtHeaderExist:
   add  edi, eax
-  mov  eax, dword ptr [edi + FVH_EXTHEADER_SIZE_OFFSET]  ; Bypass Ext Fv Header
+  mov  eax, dword [edi + FVH_EXTHEADER_SIZE_OFFSET]  ; Bypass Ext Fv Header
   add  edi, eax
 
   ; Round up to 8 byte alignment
   mov  eax, edi
   and  al,  07h
-  jz FspCheckFfsHeader
+  jz   FspCheckFfsHeader
 
   and  edi, 0FFFFFFF8h
   add  edi, 08h
 
 FspCheckFfsHeader:
   ; Check the ffs guid
-  mov  eax, dword ptr [edi]
+  mov  eax, dword [edi]
   cmp  eax, FSP_HEADER_GUID_DWORD1
-  jnz FspHeaderNotFound
+  jnz  FspHeaderNotFound
 
-  mov  eax, dword ptr [edi + 4]
+  mov  eax, dword [edi + 4]
   cmp  eax, FSP_HEADER_GUID_DWORD2
-  jnz FspHeaderNotFound
+  jnz  FspHeaderNotFound
 
-  mov  eax, dword ptr [edi + 8]
+  mov  eax, dword [edi + 8]
   cmp  eax, FSP_HEADER_GUID_DWORD3
-  jnz FspHeaderNotFound
+  jnz  FspHeaderNotFound
 
-  mov  eax, dword ptr [edi + 0Ch]
+  mov  eax, dword [edi + 0Ch]
   cmp  eax, FSP_HEADER_GUID_DWORD4
-  jnz FspHeaderNotFound
+  jnz  FspHeaderNotFound
 
   add  edi, FFS_HEADER_SIZE_VALUE       ; Bypass the ffs header
 
   ; Check the section type as raw section
-  mov  al, byte ptr [edi + SECTION_HEADER_TYPE_OFFSET]
+  mov  al, byte [edi + SECTION_HEADER_TYPE_OFFSET]
   cmp  al, 019h
   jnz FspHeaderNotFound
 
@@ -229,11 +219,11 @@ FspHeaderNotFound:
 
 FspHeaderFound:
   ; Get the fsp TempRamInit Api address
-  mov eax, dword ptr [edi + FSP_HEADER_IMAGEBASE_OFFSET]
-  add eax, dword ptr [edi + FSP_HEADER_TEMPRAMINIT_OFFSET]
+  mov eax, dword [edi + FSP_HEADER_IMAGEBASE_OFFSET]
+  add eax, dword [edi + FSP_HEADER_TEMPRAMINIT_OFFSET]
 
   ; Setup the hardcode stack
-  mov esp, OFFSET TempRamInitStack
+  mov esp, TempRamInitStack
 
   ; Call the fsp TempRamInit Api
   jmp eax
@@ -248,7 +238,7 @@ TempRamInitDone:
   ;   ECX: start of range
   ;   EDX: end of range
 CallSecFspInit:
-  sub     edx, PcdGet32 (PcdFspTemporaryRamSize) ; TemporaryRam for FSP
+  sub     edx, [ASM_PFX(PcdGet32 (PcdFspTemporaryRamSize))] ; TemporaryRam for FSP
   xor     eax, eax
   mov     esp, edx
 
@@ -259,30 +249,29 @@ CallSecFspInit:
   push    edx
   push    ecx
   push    eax ; zero - no hob list yet
-  call    CallPeiCoreEntryPoint
+  call    ASM_PFX(CallPeiCoreEntryPoint)
 
 FspApiFailed:
   jmp $
 
 align 10h
 TempRamInitStack:
-    DD  OFFSET TempRamInitDone
-    DD  OFFSET FsptUpdDataPtr ; TempRamInitParams
-
-ProtectedModeEntryPoint ENDP
+    DD  TempRamInitDone
+    DD  ASM_PFX(FsptUpdDataPtr); TempRamInitParams
 
 ;
 ; ROM-based Global-Descriptor Table for the Tiano PEI Phase
 ;
 align 16
-PUBLIC  BootGdtTable
+global  ASM_PFX(BootGdtTable)
 
 ;
 ; GDT[0]: 0x00: Null entry, never used.
 ;
 NULL_SEL            EQU $ - GDT_BASE    ; Selector [0]
 GDT_BASE:
-BootGdtTable        DD  0
+ASM_PFX(BootGdtTable):
+                    DD  0
                     DD  0
 ;
 ; Linear data segment descriptor
@@ -356,20 +345,17 @@ SPARE5_SEL          EQU $ - GDT_BASE    ; Selector [0x38]
     DB  0                               ; present, ring 0, data, expand-up, writable
     DB  0                               ; page-granular, 32-bit
     DB  0
-GDT_SIZE            EQU $ - BootGdtTable    ; Size, in bytes
+GDT_SIZE            EQU $ - GDT_BASE    ; Size, in bytes
 
 ;
 ; GDT Descriptor
 ;
 GdtDesc:                                ; GDT descriptor
     DW  GDT_SIZE - 1                    ; GDT limit
-    DD  OFFSET BootGdtTable             ; GDT base address
+    DD  GDT_BASE                        ; GDT base address
 
 
-ProtectedModeEntryLinearAddress   LABEL   FWORD
-ProtectedModeEntryLinearOffset    LABEL   DWORD
-  DD      OFFSET ProtectedModeEntryPoint  ; Offset of our 32 bit code
+ProtectedModeEntryLinearAddress:
+ProtectedModeEntryLinear:
+  DD      ProtectedModeEntryPoint  ; Offset of our 32 bit code
   DW      LINEAR_CODE_SEL
-
-_TEXT_PROTECTED_MODE    ENDS
-END
diff --git a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/Stack.S b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/Stack.S
deleted file mode 100644
index e0eb80a..0000000
--- a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/Stack.S
+++ /dev/null
@@ -1,73 +0,0 @@
-## @file
-# Switch the stack from temporary memory to permenent memory.
-#
-# Copyright (c) 2017, 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 that 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.
-#
-##
-
-#------------------------------------------------------------------------------
-# VOID
-# EFIAPI
-# SecSwitchStack (
-#   UINT32   TemporaryMemoryBase,
-#   UINT32   PermanentMemoryBase
-#   )
-#------------------------------------------------------------------------------
-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 memory
-    movl  %edx, 16(%eax)
-    movl  %eax, %esp            # From now, esp is pointed to permanent memory
-
-    #
-    # Fixup the ebp point to permanent memory
-    #
-    movl  %ebp, %eax
-    subl  %ebx, %eax
-    addl  %ecx, %eax
-    movl  %eax, %ebp            # From now, ebp is pointed to permanent memory
-
-    popl  %edx
-    popl  %ecx
-    popl  %ebx
-    popl  %eax
-    ret
-
diff --git a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/Stack.asm b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/Stack.nasm
similarity index 50%
rename from Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/Stack.asm
rename to Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/Stack.nasm
index 27ae218..635699c 100644
--- a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/Stack.asm
+++ b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/Stack.nasm
@@ -1,20 +1,14 @@
-;; @file
-; Switch the stack from temporary memory to permenent memory.
+;------------------------------------------------------------------------------
 ;
-; Copyright (c) 2017, 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 that accompanies this distribution.
-; The full text of the license may be found at
-; http://opensource.org/licenses/bsd-license.php.
+; Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
+; SPDX-License-Identifier: BSD-2-Clause-Patent
+; Abstract:
 ;
-; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+;   Switch the stack from temporary memory to permenent memory.
 ;
-;;
+;------------------------------------------------------------------------------
 
-    .586p
-    .model  flat,C
-    .code
+    SECTION .text
 
 ;------------------------------------------------------------------------------
 ; VOID
@@ -24,7 +18,8 @@
 ;   UINT32   PermanentMemoryBase
 ;   );
 ;------------------------------------------------------------------------------
-SecSwitchStack   PROC
+global ASM_PFX(SecSwitchStack)
+ASM_PFX(SecSwitchStack):
     ;
     ; Save three register: eax, ebx, ecx
     ;
@@ -49,16 +44,16 @@ SecSwitchStack   PROC
     mov   eax, esp
     sub   eax, ebx
     add   eax, ecx
-    mov   edx, dword ptr [esp]         ; copy pushed register's value to permanent memory
-    mov   dword ptr [eax], edx
-    mov   edx, dword ptr [esp + 4]
-    mov   dword ptr [eax + 4], edx
-    mov   edx, dword ptr [esp + 8]
-    mov   dword ptr [eax + 8], edx
-    mov   edx, dword ptr [esp + 12]
-    mov   dword ptr [eax + 12], edx
-    mov   edx, dword ptr [esp + 16]    ; Update this function's return address into permanent memory
-    mov   dword ptr [eax + 16], edx
+    mov   edx, dword [esp]         ; copy pushed register's value to permanent memory
+    mov   dword [eax], edx
+    mov   edx, dword [esp + 4]
+    mov   dword [eax + 4], edx
+    mov   edx, dword [esp + 8]
+    mov   dword [eax + 8], edx
+    mov   edx, dword [esp + 12]
+    mov   dword [eax + 12], edx
+    mov   edx, dword [esp + 16]    ; Update this function's return address into permanent memory
+    mov   dword [eax + 16], edx
     mov   esp, eax                     ; From now, esp is pointed to permanent memory
 
     ;
@@ -74,6 +69,4 @@ SecSwitchStack   PROC
     pop   ebx
     pop   eax
     ret
-SecSwitchStack   ENDP
 
-    END
diff --git a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/SecFspWrapperPlatformSecLib.inf b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/SecFspWrapperPlatformSecLib.inf
index 9c13357..5309d97 100644
--- a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/SecFspWrapperPlatformSecLib.inf
+++ b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/SecFspWrapperPlatformSecLib.inf
@@ -1,15 +1,10 @@
 ## @file
 #  Provide FSP wrapper platform sec related function.
 #
-# Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
+#  Copyright (c) 2017 - 2018, 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
+#  SPDX-License-Identifier: BSD-2-Clause-Patent
 #
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #
 ##
 
@@ -48,13 +43,10 @@
   PlatformInit.c
 
 [Sources.IA32]
-  Ia32/SecEntry.asm
-  Ia32/PeiCoreEntry.asm
-  Ia32/Stack.asm
+  Ia32/SecEntry.nasm
+  Ia32/PeiCoreEntry.nasm
+  Ia32/Stack.nasm
   Ia32/Fsp.h
-  Ia32/SecEntry.S
-  Ia32/PeiCoreEntry.S
-  Ia32/Stack.S
 
 ################################################################################
 #
diff --git a/Platform/Intel/MinPlatformPkg/Include/Fdf/RuleInclude.fdf b/Platform/Intel/MinPlatformPkg/Include/Fdf/RuleInclude.fdf
index 1b20442..90a4b27 100644
--- a/Platform/Intel/MinPlatformPkg/Include/Fdf/RuleInclude.fdf
+++ b/Platform/Intel/MinPlatformPkg/Include/Fdf/RuleInclude.fdf
@@ -1,15 +1,9 @@
 ## @file
 #  FDF file of Platform.
 #
-# Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2017 - 2019, 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.
+#    SPDX-License-Identifier: BSD-2-Clause-Patent
 #
 ##
 
@@ -51,6 +45,15 @@
      VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
   }
 
+
+[Rule.Common.PEIM]
+  FILE PEIM = $(NAMED_GUID)               {
+     PEI_DEPEX PEI_DEPEX Optional        $(INF_OUTPUT)/$(MODULE_NAME).depex
+     TE        TE                        $(INF_OUTPUT)/$(MODULE_NAME).efi
+     UI        STRING="$(MODULE_NAME)" Optional
+     VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
+}
+
 [Rule.Common.PEIM.BINARY]
   FILE PEIM = $(NAMED_GUID) {
     PEI_DEPEX PEI_DEPEX Optional      |.depex
diff --git a/Platform/Intel/MinPlatformPkg/Tools/Fsp/RebaseAndPatchFspBinBaseAddress.py b/Platform/Intel/MinPlatformPkg/Tools/Fsp/RebaseAndPatchFspBinBaseAddress.py
index 496b977..167a0e0 100644
--- a/Platform/Intel/MinPlatformPkg/Tools/Fsp/RebaseAndPatchFspBinBaseAddress.py
+++ b/Platform/Intel/MinPlatformPkg/Tools/Fsp/RebaseAndPatchFspBinBaseAddress.py
@@ -76,7 +76,7 @@ file.close()
 pythontool = 'python'
 if 'PYTHON_HOME' in os.environ:
     pythontool = os.environ['PYTHON_HOME'] + os.sep + 'python'
-Process = subprocess.Popen(pythontool + " " + splitFspBinPath + " info -f" + fspBinFilePath, stdout=subprocess.PIPE)
+Process = subprocess.Popen([pythontool, splitFspBinPath, "info","-f",fspBinFilePath], stdout=subprocess.PIPE)
 Output = Process.communicate()[0]
 FsptInfo = Output.rsplit("FSP_M", 1);
 for line in FsptInfo[1].split("\n"):
diff --git a/Platform/Intel/MinPlatformPkg/Tools/PatchFv/PatchBinFv.py b/Platform/Intel/MinPlatformPkg/Tools/PatchFv/PatchBinFv.py
index e1facd1..b98c951 100644
--- a/Platform/Intel/MinPlatformPkg/Tools/PatchFv/PatchBinFv.py
+++ b/Platform/Intel/MinPlatformPkg/Tools/PatchFv/PatchBinFv.py
@@ -1,13 +1,7 @@
 ## @ PatchBinFv.py
 #
-# Copyright (c) 2017, 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 that 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.
+# Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>
+# SPDX-License-Identifier: BSD-2-Clause-Patent
 #
 ##
 
@@ -113,7 +107,7 @@ class FileChecker:
         return
 
     def ProcessFvInf(self, fvName):
-        sourceFileName = os.path.join(self.sourceRoot,fvName+"\\"+self.target+"\\"+fvName+".inf")
+        sourceFileName = os.path.join(self.sourceRoot,fvName,self.target,fvName+".inf")
         print "\nprocessing - " + sourceFileName
         fileGuid = self.GetInfFileGuid (sourceFileName)
         print "FV NAME GUID - " + fileGuid
@@ -143,7 +137,7 @@ class FileChecker:
         self.PrintPcdList(self.InfPcdList)
 
     def PatchFv(self, fvName):
-        sourceFileName = os.path.join(self.sourceRoot,fvName+"\\"+self.target+"\\"+fvName+".fv")
+        sourceFileName = os.path.join(self.sourceRoot,fvName,self.target,fvName+".Fv")
         print "patching - " + sourceFileName
 
         try :
@@ -167,7 +161,7 @@ class FileChecker:
                     print "  [" + hex(offset) + "] " + binascii.hexlify(data[offset:offset+2]) + " <= " + binascii.hexlify(h)
                     data[offset:offset+2] = h
                 elif (cmp (pcd[4], "UINT32") == 0):
-                    l = struct.pack("L", int(pcd[3],16))
+                    l = struct.pack("I", int(pcd[3],16))
                     print "  [" + hex(offset) + "] " + binascii.hexlify(data[offset:offset+4]) + " <= " + binascii.hexlify(l)
                     data[offset:offset+4] = l
                 elif (cmp (pcd[4], "UINT64") == 0):
diff --git a/Platform/Intel/MinPlatformPkg/Tools/PatchFv/RebaseBinFv.py b/Platform/Intel/MinPlatformPkg/Tools/PatchFv/RebaseBinFv.py
index 4d194b3..149630e 100644
--- a/Platform/Intel/MinPlatformPkg/Tools/PatchFv/RebaseBinFv.py
+++ b/Platform/Intel/MinPlatformPkg/Tools/PatchFv/RebaseBinFv.py
@@ -1,15 +1,8 @@
 ## @ PatchBinFv.py
 #
-# Copyright (c) 2017, 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 that accompanies this distribution.
-# The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
+# Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>
+# SPDX-License-Identifier: BSD-2-Clause-Patent
 #
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-##
 
 import os
 import re
@@ -547,7 +540,7 @@ class FileChecker:
         print "PCD: " + pcd[0] + "|" + pcd[3] + " <== " + pcd[1] + "(" + pcd[2] + ")"
 
     def RebaseFv(self, fvName, rebasePcd):
-        sourceFileName = os.path.join(self.sourceRoot,fvName+"\\"+self.target+"\\"+fvName+".fv")
+        sourceFileName = os.path.join(self.sourceRoot,fvName,self.target,fvName+".Fv")
         print "rebasing(FV) - " + sourceFileName
 
         try :
@@ -623,7 +616,7 @@ class FileChecker:
             if not line:
                 break
 
-            newline = line[:-1]
+            newline = line[:-1].replace('\r','')
 
             if (cmp (newline, TargetPkg) == 0):
                 FoundPkg = True
@@ -651,7 +644,7 @@ class FileChecker:
     def GetOldFvBase (self, fvName, PcdName):
         ParseBase = False
         Value = ""
-        fileName = os.path.join(self.sourceRoot,fvName+"\\"+self.target+"\\"+fvName+".inf")
+        fileName = os.path.join(self.sourceRoot,fvName,self.target,fvName+".inf")
         try :
             file = open(fileName)
         except Exception:
@@ -663,7 +656,7 @@ class FileChecker:
                 if not line:
                     break
 
-                newline = line[:-1]
+                newline = line[:-1].replace('\r','')
 
                 if cmp (newline, "") == 0:
                     continue
@@ -687,7 +680,7 @@ class FileChecker:
         return Value
 
     def SetNewFvBase (self, fvName, PcdName, OldFvBase, NewFvBase):
-        fileName = os.path.join(self.sourceRoot,fvName+"\\"+self.target+"\\"+fvName+".inf")
+        fileName = os.path.join(self.sourceRoot,fvName,self.target,fvName+".inf")
         print "update - " + fileName
         try :
             file = open(fileName, "r")
@@ -704,7 +697,7 @@ class FileChecker:
                 if not line:
                     break
 
-                newline = line[:-1]
+                newline = line[:-1].strip()
 
                 if cmp (newline, "") == 0:
                     continue
diff --git a/Platform/Intel/build_bios.py b/Platform/Intel/build_bios.py
index a4ea093..c0ab7c6 100644
--- a/Platform/Intel/build_bios.py
+++ b/Platform/Intel/build_bios.py
@@ -139,9 +139,14 @@ def pre_build(build_config, build_type="DEBUG", silent=False, toolchain=None):
         if os.environ.get("PYTHONPATH") is not None:
             config["PYTHON_HOME"] = os.environ.get("PYTHONPATH")
         else:
-            print("PYTHONPATH environment variable is not found")
+            print("PYTHON_HOME environment variable is not found")
             sys.exit(1)
 
+    if os.environ.get("PYTHON_HOME") is None or \
+       not os.path.exists(os.environ.get("PYTHON_HOME")):
+        print("PYTHON_HOME environment variable is not found")
+        sys.exit(1)
+
     # if python is installed, disable the binary base tools.
     # python is installed if this code is running :)
     if config.get("PYTHON_HOME") is not None:
@@ -151,18 +156,18 @@ def pre_build(build_config, build_type="DEBUG", silent=False, toolchain=None):
     # Run edk setup and  update config
     if os.name == 'nt':
         edk2_setup_cmd = [os.path.join(config["EFI_SOURCE"], "edksetup"),
-                        "Rebuild"]
+                          "Rebuild"]
 
         if config.get("EDK_SETUP_OPTION") and \
-        config["EDK_SETUP_OPTION"] != " ":
+           config["EDK_SETUP_OPTION"] != " ":
             edk2_setup_cmd.append(config["EDK_SETUP_OPTION"])
 
         _, _, result, return_code = execute_script(edk2_setup_cmd,
-                                                config,
-                                                collect_env=True,
-                                                shell=True)
+                                                   config,
+                                                   collect_env=True,
+                                                   shell=True)
         if return_code == 0 and result is not None and isinstance(result,
-                                                                dict):
+                                                                  dict):
             config.update(result)
 
     # nmake BaseTools source
@@ -355,7 +360,11 @@ def build(config):
         command.append("-D")
         command.append("MAX_SOCKET=" + config["MAX_SOCKET"])
 
-    _, _, _, exit_code = execute_script(command, config)
+    shell = True
+    if os.name == "posix":
+        shell = False
+
+    _, _, _, exit_code = execute_script(command, config, shell=shell)
     if exit_code != 0:
         build_failed(config)
 
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [edk2-platforms] [PATCH 2/5] KabylakeSiliconPkg: Casting functions to EFIAPI
  2019-05-15 17:35 [edk2-platforms] [PATCH 0/5] Added GCC5 build support Agyeman, Prince
  2019-05-15 17:35 ` [edk2-platforms] [PATCH 1/5] MinPlatformPkg: " Agyeman, Prince
@ 2019-05-15 17:35 ` Agyeman, Prince
  2019-05-18  0:37   ` [edk2-devel] " Kubacki, Michael A
                     ` (2 more replies)
  2019-05-15 17:35 ` [edk2-platforms] [PATCH 3/5] KabylakeOpenBoardPkg: Added GCC5 build support Agyeman, Prince
                   ` (2 subsequent siblings)
  4 siblings, 3 replies; 18+ messages in thread
From: Agyeman, Prince @ 2019-05-15 17:35 UTC (permalink / raw)
  To: devel
  Cc: Prince Agyeman, Michael Kubacki, Michael D Kinney, Nate DeSimone,
	Liming Gao, Ankit Sinha

From: Prince Agyeman <prince.agyeman@intel.com>

This fixes the calling convension issues in gcc

Gcc build was tested on Ubuntu 16.04.5 LTS
with gcc version 5.4.0, nasm version 2.11.08

Cc: Michael Kubacki <michael.a.kubacki@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Ankit Sinha <ankit.sinha@intel.com>

Signed-off-by: Prince Agyeman <prince.agyeman@intel.com>
---
 .../Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchInitSmm.h    | 11 +++--------
 .../Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchPcieSmm.c    | 11 +++--------
 .../KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmm.h     | 12 ++++--------
 .../KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmmCore.c | 12 ++++--------
 4 files changed, 14 insertions(+), 32 deletions(-)

diff --git a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchInitSmm.h b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchInitSmm.h
index 58ef567..666340e 100644
--- a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchInitSmm.h
+++ b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchInitSmm.h
@@ -1,14 +1,8 @@
 /** @file
   Header file for PCH Init SMM Handler
 
-Copyright (c) 2017, 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 that 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.
+Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 
@@ -211,6 +205,7 @@ PchPcieLinkEqHandlerFunction (
 
 **/
 VOID
+EFIAPI
 PchPcieIoTrapSmiCallback (
   IN     EFI_HANDLE                     DispatchHandle,
   IN     EFI_SMM_IO_TRAP_CONTEXT        *CallbackContext,
diff --git a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchPcieSmm.c b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchPcieSmm.c
index b4234f6..847fbfb 100644
--- a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchPcieSmm.c
+++ b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchPcieSmm.c
@@ -1,14 +1,8 @@
 /** @file
   PCH Pcie SMM Driver Entry
 
-Copyright (c) 2017, 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 that 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.
+Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 #include "PchInitSmm.h"
@@ -244,6 +238,7 @@ PchPciePmIoTrapSmiCallback (
 
 **/
 VOID
+EFIAPI
 PchPcieIoTrapSmiCallback (
   IN  EFI_HANDLE                            DispatchHandle,
   IN  EFI_SMM_IO_TRAP_CONTEXT                *CallbackContext,
diff --git a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmm.h b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmm.h
index 3eebdc1..a9f0664 100644
--- a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmm.h
+++ b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmm.h
@@ -1,14 +1,8 @@
 /** @file
   Prototypes and defines for the PCH SMM Dispatcher.
 
-Copyright (c) 2017, 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 that 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.
+Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 #ifndef PCH_SMM_H
@@ -516,6 +510,7 @@ typedef struct {
                                   registered and the SMI source has been enabled.
 **/
 EFI_STATUS
+EFIAPI
 PchSmmCoreRegister (
   IN  PCH_SMM_GENERIC_PROTOCOL                          *This,
   IN  EFI_SMM_HANDLER_ENTRY_POINT2                      DispatchFunction,
@@ -536,6 +531,7 @@ PchSmmCoreRegister (
   @retval EFI_INVALID_PARAMETER   Handle is invalid.
 **/
 EFI_STATUS
+EFIAPI
 PchSmmCoreUnRegister (
   IN  PCH_SMM_GENERIC_PROTOCOL                         *This,
   IN  EFI_HANDLE                                       *DispatchHandle
diff --git a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmmCore.c b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmmCore.c
index 77f0561..cb3bfba 100644
--- a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmmCore.c
+++ b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmmCore.c
@@ -2,14 +2,8 @@
   This driver is responsible for the registration of child drivers
   and the abstraction of the PCH SMI sources.
 
-Copyright (c) 2017, 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 that 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.
+Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 #include "PchSmm.h"
@@ -331,6 +325,7 @@ SmiInputValueDuplicateCheck (
                                   registered and the SMI source has been enabled.
 **/
 EFI_STATUS
+EFIAPI
 PchSmmCoreRegister (
   IN  PCH_SMM_GENERIC_PROTOCOL                          *This,
   IN  EFI_SMM_HANDLER_ENTRY_POINT2                      DispatchFunction,
@@ -602,6 +597,7 @@ Error:
   @retval EFI_INVALID_PARAMETER   Handle is invalid.
 **/
 EFI_STATUS
+EFIAPI
 PchSmmCoreUnRegister (
   IN PCH_SMM_GENERIC_PROTOCOL                           *This,
   IN EFI_HANDLE                                         *DispatchHandle
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [edk2-platforms] [PATCH 3/5] KabylakeOpenBoardPkg: Added GCC5 build support
  2019-05-15 17:35 [edk2-platforms] [PATCH 0/5] Added GCC5 build support Agyeman, Prince
  2019-05-15 17:35 ` [edk2-platforms] [PATCH 1/5] MinPlatformPkg: " Agyeman, Prince
  2019-05-15 17:35 ` [edk2-platforms] [PATCH 2/5] KabylakeSiliconPkg: Casting functions to EFIAPI Agyeman, Prince
@ 2019-05-15 17:35 ` Agyeman, Prince
  2019-05-18  0:55   ` [edk2-devel] " Nate DeSimone
                     ` (2 more replies)
  2019-05-15 17:35 ` [edk2-platforms] [PATCH 4/5] ClevoOpenBoardPkg: " Agyeman, Prince
  2019-05-15 17:35 ` [edk2-platforms] [PATCH 5/5] Intel/Readme.md: Updated readme with linux build instructions Agyeman, Prince
  4 siblings, 3 replies; 18+ messages in thread
From: Agyeman, Prince @ 2019-05-15 17:35 UTC (permalink / raw)
  To: devel; +Cc: Prince Agyeman

From: Prince Agyeman <prince.agyeman@intel.com>

Fixed:
* Include file paths in dec
* Gcc build options

Gcc build was tested on Ubuntu 16.04.5 LTS
with gcc version 5.4.0, nasm version 2.11.08

Signed-off-by: Prince Agyeman <prince.agyeman@intel.com>
---
 .../KabylakeRvp3/OpenBoardPkgBuildOption.dsc               | 12 ++++--------
 Platform/Intel/KabylakeOpenBoardPkg/OpenBoardPkg.dec       | 14 ++++----------
 2 files changed, 8 insertions(+), 18 deletions(-)

diff --git a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkgBuildOption.dsc b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkgBuildOption.dsc
index 318b057..19d81f7 100644
--- a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkgBuildOption.dsc
+++ b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkgBuildOption.dsc
@@ -1,15 +1,9 @@
 ## @file
 # platform build option configuration file.
 #
-# Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2017 - 2019, 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.
+#    SPDX-License-Identifier: BSD-2-Clause-Patent
 #
 ##
 
@@ -108,6 +102,7 @@ DEFINE DSC_PLTPKG_FEATURE_BUILD_OPTIONS = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(
 # For IA32 Specific Build Flag
 #
 GCC:   *_*_IA32_PP_FLAGS      = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
+GCC:   *_*_IA32_CC_FLAGS      = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) -D PI_SPECIFICATION_VERSION=0x00010015 -DASF_PEI -Wno-unused -Wl,--allow-multiple-definition
 MSFT:  *_*_IA32_ASM_FLAGS     = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
 MSFT:  *_*_IA32_CC_FLAGS      = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS) -D PI_SPECIFICATION_VERSION=0x00010015 -DASF_PEI
 MSFT:  *_*_IA32_VFRPP_FLAGS   = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS)
@@ -130,6 +125,7 @@ MSFT:  *_*_IA32_ASLCC_FLAGS   = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_D
 # For X64 Specific Build Flag
 #
 GCC:   *_*_X64_PP_FLAGS       = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
+GCC:   *_*_X64_CC_FLAGS       = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) -D PI_SPECIFICATION_VERSION=0x00010015 -Wno-unused -Wl,--allow-multiple-definition
 MSFT:  *_*_X64_ASM_FLAGS      = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
 MSFT:  *_*_X64_CC_FLAGS       = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS) -D PI_SPECIFICATION_VERSION=0x00010015
 MSFT:  *_*_X64_VFRPP_FLAGS    = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS)
diff --git a/Platform/Intel/KabylakeOpenBoardPkg/OpenBoardPkg.dec b/Platform/Intel/KabylakeOpenBoardPkg/OpenBoardPkg.dec
index d0fdb10..ddd8b40 100644
--- a/Platform/Intel/KabylakeOpenBoardPkg/OpenBoardPkg.dec
+++ b/Platform/Intel/KabylakeOpenBoardPkg/OpenBoardPkg.dec
@@ -5,15 +5,9 @@
 # INF files to generate AutoGen.c and AutoGen.h files
 # for the build infrastructure.
 #
-# Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2017 - 2019, 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.
+#    SPDX-License-Identifier: BSD-2-Clause-Patent
 #
 ##
 
@@ -26,8 +20,8 @@ PACKAGE_GUID = 0A8BA6E8-C8AC-4AC1-87AC-52772FA6AE5E
 
 [Includes]
 Include
-KabylakeRvp3\Include
-Features\Tbt\Include
+KabylakeRvp3/Include
+Features/Tbt/Include
 
 [Guids]
 
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [edk2-platforms] [PATCH 4/5] ClevoOpenBoardPkg: Added GCC5 build support
  2019-05-15 17:35 [edk2-platforms] [PATCH 0/5] Added GCC5 build support Agyeman, Prince
                   ` (2 preceding siblings ...)
  2019-05-15 17:35 ` [edk2-platforms] [PATCH 3/5] KabylakeOpenBoardPkg: Added GCC5 build support Agyeman, Prince
@ 2019-05-15 17:35 ` Agyeman, Prince
  2019-05-18  0:56   ` [edk2-devel] " Nate DeSimone
  2019-05-18  1:02   ` Kubacki, Michael A
  2019-05-15 17:35 ` [edk2-platforms] [PATCH 5/5] Intel/Readme.md: Updated readme with linux build instructions Agyeman, Prince
  4 siblings, 2 replies; 18+ messages in thread
From: Agyeman, Prince @ 2019-05-15 17:35 UTC (permalink / raw)
  To: devel; +Cc: Prince Agyeman

From: Prince Agyeman <prince.agyeman@intel.com>

Fixes:
* include file paths
* gcc build options

Gcc build was tested on Ubuntu 16.04.5 LTS
with gcc version 5.4.0, nasm version 2.11.08

Signed-off-by: Prince Agyeman <prince.agyeman@intel.com>
---
 Platform/Intel/ClevoOpenBoardPkg/N1xxWU/OpenBoardPkgBuildOption.dsc | 2 ++
 Platform/Intel/ClevoOpenBoardPkg/OpenBoardPkg.dec                   | 4 ++--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/Platform/Intel/ClevoOpenBoardPkg/N1xxWU/OpenBoardPkgBuildOption.dsc b/Platform/Intel/ClevoOpenBoardPkg/N1xxWU/OpenBoardPkgBuildOption.dsc
index 92c7571..8d91d90 100644
--- a/Platform/Intel/ClevoOpenBoardPkg/N1xxWU/OpenBoardPkgBuildOption.dsc
+++ b/Platform/Intel/ClevoOpenBoardPkg/N1xxWU/OpenBoardPkgBuildOption.dsc
@@ -108,6 +108,7 @@ DEFINE DSC_PLTPKG_FEATURE_BUILD_OPTIONS = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(
 # For IA32 Specific Build Flag
 #
 GCC:   *_*_IA32_PP_FLAGS      = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
+GCC:   *_*_IA32_CC_FLAGS       = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) -D PI_SPECIFICATION_VERSION=0x00010015 -Wno-unused -Wl,--allow-multiple-definition
 MSFT:  *_*_IA32_ASM_FLAGS     = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
 MSFT:  *_*_IA32_CC_FLAGS      = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS) -D PI_SPECIFICATION_VERSION=0x00010015 -DASF_PEI
 MSFT:  *_*_IA32_VFRPP_FLAGS   = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS)
@@ -130,6 +131,7 @@ MSFT:  *_*_IA32_ASLCC_FLAGS   = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_D
 # For X64 Specific Build Flag
 #
 GCC:   *_*_X64_PP_FLAGS       = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
+GCC:   *_*_X64_CC_FLAGS       = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) -D PI_SPECIFICATION_VERSION=0x00010015 -Wno-unused -Wl,--allow-multiple-definition
 MSFT:  *_*_X64_ASM_FLAGS      = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
 MSFT:  *_*_X64_CC_FLAGS       = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS) -D PI_SPECIFICATION_VERSION=0x00010015
 MSFT:  *_*_X64_VFRPP_FLAGS    = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS)
diff --git a/Platform/Intel/ClevoOpenBoardPkg/OpenBoardPkg.dec b/Platform/Intel/ClevoOpenBoardPkg/OpenBoardPkg.dec
index aa457e6..f1d29f7 100644
--- a/Platform/Intel/ClevoOpenBoardPkg/OpenBoardPkg.dec
+++ b/Platform/Intel/ClevoOpenBoardPkg/OpenBoardPkg.dec
@@ -24,8 +24,8 @@ PACKAGE_GUID      = D04CCA80-5F71-478D-9A26-72BC751D0106
 
 [Includes]
 Include
-N1xxWU\Include
-Features\Tbt\Include
+N1xxWU/Include
+Features/Tbt/Include
 
 [Guids]
 gBoardModuleTokenSpaceGuid            =  {0x72d1fff7, 0xa42a, 0x4219, {0xb9, 0x95, 0x5a, 0x67, 0x53, 0x6e, 0xa4, 0x2a}}
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [edk2-platforms] [PATCH 5/5] Intel/Readme.md: Updated readme with linux build instructions
  2019-05-15 17:35 [edk2-platforms] [PATCH 0/5] Added GCC5 build support Agyeman, Prince
                   ` (3 preceding siblings ...)
  2019-05-15 17:35 ` [edk2-platforms] [PATCH 4/5] ClevoOpenBoardPkg: " Agyeman, Prince
@ 2019-05-15 17:35 ` Agyeman, Prince
  2019-05-18  0:58   ` [edk2-devel] " Nate DeSimone
  2019-05-18  1:19   ` Kubacki, Michael A
  4 siblings, 2 replies; 18+ messages in thread
From: Agyeman, Prince @ 2019-05-15 17:35 UTC (permalink / raw)
  To: devel; +Cc: Prince Agyeman

From: Prince Agyeman <prince.agyeman@intel.com>

Signed-off-by: Prince Agyeman <prince.agyeman@intel.com>
---
 Platform/Intel/Readme.md | 31 +++++++++++++++++++------------
 1 file changed, 19 insertions(+), 12 deletions(-)

diff --git a/Platform/Intel/Readme.md b/Platform/Intel/Readme.md
index fbf7351..972a1b0 100644
--- a/Platform/Intel/Readme.md
+++ b/Platform/Intel/Readme.md
@@ -107,9 +107,13 @@ return back to the minimum platform caller.
 
 **Building with the python script**
 
-1. Open command window, go to the workspace directory, e.g. c:\Kabylake.
-2. Type "cd edk2-platforms\Platform\Intel
-3. Type "python build_bios.py -p REPLACE_WITH_BOARD_NAME"
+1. Open command window, go to the workspace directory, e.g. c:\Kabylake or ~/Kabylake in the case of a linux OS
+2. If using a linux OS
+   * Type "cd edk2"
+   * Type "source edksetup.sh"
+   * Type "cd ../" to go back to the workspace directory
+3. Type "cd edk2-platforms/Platform/Intel
+4. Type "python build_bios.py -p REPLACE_WITH_BOARD_NAME"
 
 * build_bios.py arguments:
 
@@ -132,18 +136,19 @@ return back to the minimum platform caller.
   |                                                             |
 
 * For more information on build options
-  * ``Type "python build_bios.py -h"``
+  * Type "python build_bios.py -h"
 
 * Note
-  * ``Python 2.7.16 and Python 3.7.3 compatible``
-  * ``These python build scripts have been tested on Windows due to`` [cross-platform limitations](#Known-limitations)
+  * Python 2.7.16 and Python 3.7.3 compatible
+  * This python build script has been tested on Windows 10 and Ubuntu 16.04.5 LTS
+  * See [cross-platform limitations](#Known-limitations)
 
 * Configuration Files
-  * ``The edk2-platforms\Platform\Intel\build.cfg file contains the default settings used by build_bios.py``
-  * ``The default settings are under the DEFAULT_CONFIG section``
-  * ``Each board can have a settings file that will override the edk2-platforms\Platform\Intel\build.cfg settings``
-  * ``An example of a board specific settings:``
-    * ``edk2-platforms\Platform\Intel\KabylakeOpenBoardPkg\KabylakeRvp3\build_config.cfg``
+  * The edk2-platforms\Platform\Intel\build.cfg file contains the default settings used by build_bios.py
+  * The default settings are under the DEFAULT_CONFIG section
+  * Each board can have a settings file that will override the edk2-platforms\Platform\Intel\build.cfg settings
+  * An example of a board specific settings:
+    * edk2-platforms\Platform\Intel\KabylakeOpenBoardPkg\KabylakeRvp3\build_config.cfg
 
 * Workspace view of the build scripts
   * <pre>
@@ -212,8 +217,10 @@ Users can also flash the UEFI firmware image to the highest area of the flash re
 
 ### **Known limitations**
 
-* All firmware projects can only build on Windows with the validated configuration below.
+* All firmware projects can build on Windows with the validated configuration below.
   * Cross-platform build support is work-in-progress.
+* KabylakeOpenBoardPkg and ClevoOpenBoardPkg can build on Ubuntu 16.04.5 LTS
+with gcc version 5.4.0 and nasm version 2.11.08 with the build_bios.py script
 
 **KabylakeOpenBoardPkg**
 1. This firmware project has only been tested on the Intel KabylakeRvp3 board.
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [edk2-devel] [edk2-platforms] [PATCH 2/5] KabylakeSiliconPkg: Casting functions to EFIAPI
  2019-05-15 17:35 ` [edk2-platforms] [PATCH 2/5] KabylakeSiliconPkg: Casting functions to EFIAPI Agyeman, Prince
@ 2019-05-18  0:37   ` Kubacki, Michael A
  2019-05-18  0:55   ` Nate DeSimone
  2019-05-21  2:19   ` Chiu, Chasel
  2 siblings, 0 replies; 18+ messages in thread
From: Kubacki, Michael A @ 2019-05-18  0:37 UTC (permalink / raw)
  To: devel@edk2.groups.io, Agyeman, Prince
  Cc: Kinney, Michael D, Desimone, Nathaniel L, Gao, Liming,
	Sinha, Ankit

The commit message subject line is too long.

For V2 of the series, please check the patch with PatchCheck.py before sending.

> -----Original Message-----
> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> Agyeman, Prince
> Sent: Wednesday, May 15, 2019 10:36 AM
> To: devel@edk2.groups.io
> Cc: Agyeman, Prince <prince.agyeman@intel.com>; Kubacki, Michael A
> <michael.a.kubacki@intel.com>; Kinney, Michael D
> <michael.d.kinney@intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone@intel.com>; Gao, Liming <liming.gao@intel.com>;
> Sinha, Ankit <ankit.sinha@intel.com>
> Subject: [edk2-devel] [edk2-platforms] [PATCH 2/5] KabylakeSiliconPkg:
> Casting functions to EFIAPI
> 
> From: Prince Agyeman <prince.agyeman@intel.com>
> 
> This fixes the calling convension issues in gcc
> 
> Gcc build was tested on Ubuntu 16.04.5 LTS with gcc version 5.4.0, nasm
> version 2.11.08
> 
> Cc: Michael Kubacki <michael.a.kubacki@intel.com>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Ankit Sinha <ankit.sinha@intel.com>
> 
> Signed-off-by: Prince Agyeman <prince.agyeman@intel.com>
> ---
>  .../Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchInitSmm.h    | 11 +++-------
> -
>  .../Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchPcieSmm.c    | 11 +++------
> --
>  .../KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmm.h     | 12 ++++--
> ------
>  .../KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmmCore.c | 12
> ++++--------
>  4 files changed, 14 insertions(+), 32 deletions(-)
> 
> diff --git a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchInitSmm.h
> b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchInitSmm.h
> index 58ef567..666340e 100644
> --- a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchInitSmm.h
> +++ b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchInitSmm.h
> @@ -1,14 +1,8 @@
>  /** @file
>    Header file for PCH Init SMM Handler
> 
> -Copyright (c) 2017, 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 that 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.
> +Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>
> +SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>  **/
> 
> @@ -211,6 +205,7 @@ PchPcieLinkEqHandlerFunction (
> 
>  **/
>  VOID
> +EFIAPI
>  PchPcieIoTrapSmiCallback (
>    IN     EFI_HANDLE                     DispatchHandle,
>    IN     EFI_SMM_IO_TRAP_CONTEXT        *CallbackContext,
> diff --git a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchPcieSmm.c
> b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchPcieSmm.c
> index b4234f6..847fbfb 100644
> --- a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchPcieSmm.c
> +++ b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchPcieSmm.c
> @@ -1,14 +1,8 @@
>  /** @file
>    PCH Pcie SMM Driver Entry
> 
> -Copyright (c) 2017, 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 that 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.
> +Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>
> +SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>  **/
>  #include "PchInitSmm.h"
> @@ -244,6 +238,7 @@ PchPciePmIoTrapSmiCallback (
> 
>  **/
>  VOID
> +EFIAPI
>  PchPcieIoTrapSmiCallback (
>    IN  EFI_HANDLE                            DispatchHandle,
>    IN  EFI_SMM_IO_TRAP_CONTEXT                *CallbackContext,
> diff --git
> a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmm.h
> b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmm.h
> index 3eebdc1..a9f0664 100644
> ---
> a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmm.h
> +++
> b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmm.h
> @@ -1,14 +1,8 @@
>  /** @file
>    Prototypes and defines for the PCH SMM Dispatcher.
> 
> -Copyright (c) 2017, 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 that 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.
> +Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>
> +SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>  **/
>  #ifndef PCH_SMM_H
> @@ -516,6 +510,7 @@ typedef struct {
>                                    registered and the SMI source has been enabled.
>  **/
>  EFI_STATUS
> +EFIAPI
>  PchSmmCoreRegister (
>    IN  PCH_SMM_GENERIC_PROTOCOL                          *This,
>    IN  EFI_SMM_HANDLER_ENTRY_POINT2                      DispatchFunction,
> @@ -536,6 +531,7 @@ PchSmmCoreRegister (
>    @retval EFI_INVALID_PARAMETER   Handle is invalid.
>  **/
>  EFI_STATUS
> +EFIAPI
>  PchSmmCoreUnRegister (
>    IN  PCH_SMM_GENERIC_PROTOCOL                         *This,
>    IN  EFI_HANDLE                                       *DispatchHandle
> diff --git
> a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmmCor
> e.c
> b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmmCor
> e.c
> index 77f0561..cb3bfba 100644
> ---
> a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmmCor
> e.c
> +++
> b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmmCo
> +++ re.c
> @@ -2,14 +2,8 @@
>    This driver is responsible for the registration of child drivers
>    and the abstraction of the PCH SMI sources.
> 
> -Copyright (c) 2017, 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 that 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.
> +Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>
> +SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>  **/
>  #include "PchSmm.h"
> @@ -331,6 +325,7 @@ SmiInputValueDuplicateCheck (
>                                    registered and the SMI source has been enabled.
>  **/
>  EFI_STATUS
> +EFIAPI
>  PchSmmCoreRegister (
>    IN  PCH_SMM_GENERIC_PROTOCOL                          *This,
>    IN  EFI_SMM_HANDLER_ENTRY_POINT2                      DispatchFunction,
> @@ -602,6 +597,7 @@ Error:
>    @retval EFI_INVALID_PARAMETER   Handle is invalid.
>  **/
>  EFI_STATUS
> +EFIAPI
>  PchSmmCoreUnRegister (
>    IN PCH_SMM_GENERIC_PROTOCOL                           *This,
>    IN EFI_HANDLE                                         *DispatchHandle
> --
> 2.7.4
> 
> 
> 


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [edk2-devel] [edk2-platforms] [PATCH 1/5] MinPlatformPkg: Added GCC5 build support
  2019-05-15 17:35 ` [edk2-platforms] [PATCH 1/5] MinPlatformPkg: " Agyeman, Prince
@ 2019-05-18  0:42   ` Kubacki, Michael A
  2019-05-18  0:43   ` Nate DeSimone
  1 sibling, 0 replies; 18+ messages in thread
From: Kubacki, Michael A @ 2019-05-18  0:42 UTC (permalink / raw)
  To: devel@edk2.groups.io, Agyeman, Prince
  Cc: Kinney, Michael D, Desimone, Nathaniel L, Gao, Liming,
	Sinha, Ankit

In RuleInclude.fdf this declares a duplicate Rule.Common.PEIM rule.

In this case, was there a particular reason to move from PE32 to TE? 
---
The Contributed-under tag is missing but no longer needed as V2 will be
based after the license change.

Thanks,
Michael

> -----Original Message-----
> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> Agyeman, Prince
> Sent: Wednesday, May 15, 2019 10:36 AM
> To: devel@edk2.groups.io
> Cc: Agyeman, Prince <prince.agyeman@intel.com>; Kubacki, Michael A
> <michael.a.kubacki@intel.com>; Kinney, Michael D
> <michael.d.kinney@intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone@intel.com>; Gao, Liming <liming.gao@intel.com>;
> Sinha, Ankit <ankit.sinha@intel.com>
> Subject: [edk2-devel] [edk2-platforms] [PATCH 1/5] MinPlatformPkg: Added
> GCC5 build support
> 
> From: Prince Agyeman <prince.agyeman@intel.com>
> 
> Fixes:
> * Replacing .asm and .S with nasm in SecFspWrapperPlatformSecLib for
> cross-platform build support
> * Modified RuleInclude.fdf
> * Modified python files to be OS independent
> 
> Gcc build was tested on Ubuntu 16.04.5 LTS with gcc version 5.4.0, nasm
> version 2.11.08
> 
> Cc: Michael Kubacki <michael.a.kubacki@intel.com>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Ankit Sinha <ankit.sinha@intel.com>
> 
> TianoCore Contribution Agreement 1.1
> Signed-off-by: Prince Agyeman <prince.agyeman@intel.com>
> ---
>  .../Ia32/PeiCoreEntry.S                            | 123 --------
>  .../Ia32/{PeiCoreEntry.asm => PeiCoreEntry.nasm}   |  52 ++-
>  .../SecFspWrapperPlatformSecLib/Ia32/SecEntry.S    | 348 ---------------------
>  .../Ia32/{SecEntry.asm => SecEntry.nasm}           | 138 ++++----
>  .../SecFspWrapperPlatformSecLib/Ia32/Stack.S       |  73 -----
>  .../Ia32/{Stack.asm => Stack.nasm}                 |  45 ++-
>  .../SecFspWrapperPlatformSecLib.inf                |  18 +-
>  .../MinPlatformPkg/Include/Fdf/RuleInclude.fdf     |  19 +-
>  .../Tools/Fsp/RebaseAndPatchFspBinBaseAddress.py   |   2 +-
>  .../MinPlatformPkg/Tools/PatchFv/PatchBinFv.py     |  16 +-
>  .../MinPlatformPkg/Tools/PatchFv/RebaseBinFv.py    |  23 +-
>  Platform/Intel/build_bios.py                       |  25 +-
>  12 files changed, 152 insertions(+), 730 deletions(-)  delete mode 100644
> Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfor
> mSecLib/Ia32/PeiCoreEntry.S
>  rename
> Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfor
> mSecLib/Ia32/{PeiCoreEntry.asm => PeiCoreEntry.nasm} (59%)  delete mode
> 100644
> Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfor
> mSecLib/Ia32/SecEntry.S
>  rename
> Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfor
> mSecLib/Ia32/{SecEntry.asm => SecEntry.nasm} (69%)  delete mode 100644
> Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfor
> mSecLib/Ia32/Stack.S
>  rename
> Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfor
> mSecLib/Ia32/{Stack.asm => Stack.nasm} (50%)
> 
> diff --git
> a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfo
> rmSecLib/Ia32/PeiCoreEntry.S
> b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfo
> rmSecLib/Ia32/PeiCoreEntry.S
> deleted file mode 100644
> index 8923577..0000000
> ---
> a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfo
> rmSecLib/Ia32/PeiCoreEntry.S
> +++ /dev/null
> @@ -1,123 +0,0 @@
> -## @file
> -# Find and call SecStartup
> -#
> -# Copyright (c) 2017, 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 that 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.
> -#
> -##
> -
> -ASM_GLOBAL ASM_PFX(CallPeiCoreEntryPoint)
> -ASM_PFX(CallPeiCoreEntryPoint):
> -  #
> -  # Obtain the hob list pointer
> -  #
> -  movl    0x4(%esp), %eax
> -  #
> -  # Obtain the stack information
> -  #   ECX: start of range
> -  #   EDX: end of range
> -  #
> -  movl    0x8(%esp), %ecx
> -  movl    0xC(%esp), %edx
> -
> -  #
> -  # Platform init
> -  #
> -  pushal
> -  pushl %edx
> -  pushl %ecx
> -  pushl %eax
> -  call  ASM_PFX(PlatformInit)
> -  popl  %eax
> -  popl  %eax
> -  popl  %eax
> -  popal
> -
> -  #
> -  # Set stack top pointer
> -  #
> -  movl    %edx, %esp
> -
> -  #
> -  # Push the hob list pointer
> -  #
> -  pushl   %eax
> -
> -  #
> -  # Save the value
> -  #   ECX: start of range
> -  #   EDX: end of range
> -  #
> -  movl    %esp, %ebp
> -  pushl   %ecx
> -  pushl   %edx
> -
> -  #
> -  # Push processor count to stack first, then BIST status (AP then BSP)
> -  #
> -  movl    $1, %eax
> -  cpuid
> -  shr     $16, %ebx
> -  andl    $0x000000FF, %ebx
> -  cmp     $1, %bl
> -  jae     PushProcessorCount
> -
> -  #
> -  # Some processors report 0 logical processors.  Effectively 0 = 1.
> -  # So we fix up the processor count
> -  #
> -  inc     %ebx
> -
> -PushProcessorCount:
> -  pushl   %ebx
> -
> -  #
> -  # We need to implement a long-term solution for BIST capture.  For now,
> we just copy BSP BIST
> -  # for all processor threads
> -  #
> -  xorl    %ecx, %ecx
> -  movb    %bl, %cl
> -PushBist:
> -  movd    %mm0, %eax
> -  pushl   %eax
> -  loop    PushBist
> -
> -  # Save Time-Stamp Counter
> -  movd  %mm5, %eax
> -  pushl %eax
> -
> -  movd  %mm6, %eax
> -  pushl %eax
> -
> -  #
> -  # Pass entry point of the PEI core
> -  #
> -  movl    $0xFFFFFFE0, %edi
> -  pushl   %ds:(%edi)
> -
> -  #
> -  # Pass BFV into the PEI Core
> -  #
> -  movl    $0xFFFFFFFC, %edi
> -  pushl   %ds:(%edi)
> -
> -  #
> -  # Pass stack size into the PEI Core
> -  #
> -  movl    -4(%ebp), %ecx
> -  movl    -8(%ebp), %edx
> -  pushl   %ecx       # RamBase
> -
> -  subl    %ecx, %edx
> -  pushl   %edx       # RamSize
> -
> -  #
> -  # Pass Control into the PEI Core
> -  #
> -  call ASM_PFX(SecStartup)
> diff --git
> a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfo
> rmSecLib/Ia32/PeiCoreEntry.asm
> b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfo
> rmSecLib/Ia32/PeiCoreEntry.nasm
> similarity index 59%
> rename from
> Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfor
> mSecLib/Ia32/PeiCoreEntry.asm
> rename to
> Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfor
> mSecLib/Ia32/PeiCoreEntry.nasm
> index d4703dc..5c5b788 100644
> ---
> a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfo
> rmSecLib/Ia32/PeiCoreEntry.asm
> +++
> b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlat
> +++ formSecLib/Ia32/PeiCoreEntry.nasm
> @@ -1,27 +1,25 @@
> -;; @file
> -; Find and call SecStartup
> +;----------------------------------------------------------------------
> +--------
>  ;
> -; Copyright (c) 2017, 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 that accompanies this
> distribution.
> -; The full text of the license may be found at -;
> http://opensource.org/licenses/bsd-license.php.
> +; Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> ;
> +SPDX-License-Identifier: BSD-2-Clause-Patent
>  ;
> -; 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:
>  ;
> -;;
> -
> +;  PeiCoreEntry.nasm
> +;
> +; Abstract:
> +;
> +;   Find and call SecStartup
> +;
> +;----------------------------------------------------------------------
> +--------
> 
> -.686p
> -.xmm
> -.model flat, c
> -.code
> +SECTION .text
> 
> -EXTRN   SecStartup:NEAR
> -EXTRN   PlatformInit:NEAR
> +extern ASM_PFX(SecStartup)
> +extern ASM_PFX(PlatformInit)
> 
> -CallPeiCoreEntryPoint   PROC PUBLIC
> +global ASM_PFX(CallPeiCoreEntryPoint)
> +ASM_PFX(CallPeiCoreEntryPoint):
>    ;
>    ; Obtain the hob list pointer
>    ;
> @@ -32,7 +30,7 @@ CallPeiCoreEntryPoint   PROC PUBLIC
>    ;   EDX: end of range
>    ;
>    mov     ecx, [esp+8]
> -  mov     edx, [esp+0Ch]
> +  mov     edx, [esp+0xC]
> 
>    ;
>    ; Platform init
> @@ -41,7 +39,7 @@ CallPeiCoreEntryPoint   PROC PUBLIC
>    push edx
>    push ecx
>    push eax
> -  call PlatformInit
> +  call ASM_PFX(PlatformInit)
>    pop  eax
>    pop  eax
>    pop  eax
> @@ -72,7 +70,7 @@ CallPeiCoreEntryPoint   PROC PUBLIC
>    mov     eax, 1
>    cpuid
>    shr     ebx, 16
> -  and     ebx, 0000000FFh
> +  and     ebx, 0xFF
>    cmp     bl, 1
>    jae     PushProcessorCount
> 
> @@ -106,14 +104,14 @@ PushBist:
>    ;
>    ; Pass entry point of the PEI core
>    ;
> -  mov     edi, 0FFFFFFE0h
> -  push    DWORD PTR ds:[edi]
> +  mov     edi, 0xFFFFFFE0
> +  push    DWORD [edi]
> 
>    ;
>    ; Pass BFV into the PEI Core
>    ;
> -  mov     edi, 0FFFFFFFCh
> -  push    DWORD PTR ds:[edi]
> +  mov     edi, 0xFFFFFFFC
> +  push    DWORD [edi]
> 
>    ;
>    ; Pass stack size into the PEI Core
> @@ -128,7 +126,5 @@ PushBist:
>    ;
>    ; Pass Control into the PEI Core
>    ;
> -  call SecStartup
> -CallPeiCoreEntryPoint   ENDP
> +  call ASM_PFX(SecStartup)
> 
> -END
> diff --git
> a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfo
> rmSecLib/Ia32/SecEntry.S
> b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfo
> rmSecLib/Ia32/SecEntry.S
> deleted file mode 100644
> index 396e7a4..0000000
> ---
> a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfo
> rmSecLib/Ia32/SecEntry.S
> +++ /dev/null
> @@ -1,348 +0,0 @@
> -## @file
> -# This is the code that goes from real-mode to protected mode.
> -# It consumes the reset vector, calls TempRamInit API from FSP binary.
> -#
> -# Copyright (c) 2017, 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 that 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.
> -#
> -##
> -
> -#include "Fsp.h"
> -
> -ASM_GLOBAL    ASM_PFX(_gPcd_FixedAtBuild_PcdFsptBaseAddress)
> -ASM_GLOBAL    ASM_PFX(_gPcd_FixedAtBuild_PcdFspTemporaryRamSize)
> -
> -ASM_GLOBAL ASM_PFX(_TEXT_REALMODE)
> -ASM_PFX(_TEXT_REALMODE):
> -#----------------------------------------------------------------------------
> -#
> -# Procedure:    _ModuleEntryPoint
> -#
> -# Input:        None
> -#
> -# Output:       None
> -#
> -# Destroys:     Assume all registers
> -#
> -# Description:
> -#
> -#   Transition to non-paged flat-model protected mode from a
> -#   hard-coded GDT that provides exactly two descriptors.
> -#   This is a bare bones transition to protected mode only
> -#   used for a while in PEI and possibly DXE.
> -#
> -#   After enabling protected mode, a far jump is executed to
> -#   transfer to PEI using the newly loaded GDT.
> -#
> -# Return:       None
> -#
> -#  MMX Usage:
> -#              MM0 = BIST State
> -#              MM5 = Save time-stamp counter value high32bit
> -#              MM6 = Save time-stamp counter value low32bit.
> -#
> -#----------------------------------------------------------------------------
> -
> -ASM_GLOBAL ASM_PFX(_ModuleEntryPoint)
> -ASM_PFX(_ModuleEntryPoint):
> -  fninit                                # clear any pending Floating point exceptions
> -  #
> -  # Store the BIST value in mm0
> -  #
> -  movd    %eax, %mm0
> -  cli
> -
> -  #
> -  # Check INIT# is asserted by port 0xCF9
> -  #
> -  mov     $0x0CF9, %dx
> -  in      %dx, %al
> -  cmp     $0x04, %al
> -  jnz     NotWarmStart
> -
> -  #
> -  # @note Issue warm reset, since if CPU only reset is issued not all MSRs are
> restored to their defaults
> -  #
> -  movw    $0x0CF9, %dx
> -  movb    $0x06, %al
> -  out     %al, %dx
> -
> -  #
> -  # Save time-stamp counter value
> -  # rdtsc load 64bit time-stamp counter to EDX:EAX
> -  #
> -  rdtsc
> -  movd    %edx, %mm5
> -  movd    %ecx, %mm6
> -
> -  #
> -  # Load the GDT table in GdtDesc
> -  #
> -  movl    $GdtDesc, %esi
> -  .byte   0x66
> -  lgdt    %cs:(%si)
> -
> -  #
> -  # Transition to 16 bit protected mode
> -  #
> -  movl    %cr0, %eax                 # Get control register 0
> -  orl     $0x00000003, %eax          # Set PE bit (bit #0) & MP bit (bit #1)
> -  movl    %eax, %cr0                 # Activate protected mode
> -
> -  movl    %cr4, %eax                 # Get control register 4
> -  orl     $0x00000600, %eax          # Set OSFXSR bit (bit #9) & OSXMMEXCPT bit
> (bit #10)
> -  movl    %eax, %cr4
> -
> -  #
> -  # Now we're in 16 bit protected mode
> -  # Set up the selectors for 32 bit protected mode entry
> -  #
> -  mov     $SYS_DATA_SEL, %ax
> -  mov     %ax, %ds
> -  mov     %ax, %es
> -  mov     %ax, %fs
> -  mov     %ax, %gs
> -  mov     %ax, %ss
> -
> -  #
> -  # Transition to Flat 32 bit protected mode
> -  # The jump to a far pointer causes the transition to 32 bit mode
> -  #
> -  movl    $ProtectedModeEntryLinearAddress, %esi
> -  jmp     *%cs:(%si)
> -
> -ASM_GLOBAL ASM_PFX(_TEXT_PROTECTED_MODE)
> -ASM_PFX(_TEXT_PROTECTED_MODE):
> -
> -#----------------------------------------------------------------------------
> -#
> -# Procedure:    ProtectedModeEntryPoint
> -#
> -# Input:        None
> -#
> -# Output:       None
> -#
> -# Destroys:     Assume all registers
> -#
> -# Description:
> -#
> -# This function handles:
> -#   Call two basic APIs from FSP binary
> -#   Initializes stack with some early data (BIST, PEI entry, etc)
> -#
> -# Return:       None
> -#
> -#----------------------------------------------------------------------------
> -
> -ASM_GLOBAL ASM_PFX(ProtectedModeEntryPoint)
> -ASM_PFX(ProtectedModeEntryPoint):
> -
> -  # Find the fsp info header
> -  movl PcdGet32(PcdFsptBaseAddress), %edi
> -
> -  movl FVH_SIGINATURE_OFFSET(%edi), %eax
> -  cmp  $FVH_SIGINATURE_VALID_VALUE, %eax
> -  jnz  FspHeaderNotFound
> -
> -  xorl %eax, %eax
> -  movw FVH_EXTHEADER_OFFSET_OFFSET(%edi), %ax
> -  cmp  $0x00, %ax
> -  jnz  FspFvExtHeaderExist
> -
> -  xorl %eax, %eax
> -  movw FVH_HEADER_LENGTH_OFFSET(%edi), %ax   # Bypass Fv Header
> -  addl %eax, %edi
> -  jmp  FspCheckFfsHeader
> -
> -FspFvExtHeaderExist:
> -  addl %eax, %edi
> -  movl FVH_EXTHEADER_SIZE_OFFSET(%edi), %eax  # Bypass Ext Fv Header
> -  addl %eax, %edi
> -
> -  # Round up to 8 byte alignment
> -  movl %edi, %eax
> -  andb $0x07, %al
> -  jz FspCheckFfsHeader
> -
> -  and  $0xFFFFFFF8, %edi
> -  add  $0x08, %edi
> -
> -FspCheckFfsHeader:
> -  # Check the ffs guid
> -  movl (%edi), %eax
> -  cmp  $FSP_HEADER_GUID_DWORD1, %eax
> -  jnz  FspHeaderNotFound
> -
> -  movl 0x4(%edi), %eax
> -  cmp  $FSP_HEADER_GUID_DWORD2, %eax
> -  jnz  FspHeaderNotFound
> -
> -  movl 0x08(%edi), %eax
> -  cmp  $FSP_HEADER_GUID_DWORD3, %eax
> -  jnz  FspHeaderNotFound
> -
> -  movl 0x0c(%edi), %eax
> -  cmp  $FSP_HEADER_GUID_DWORD4, %eax
> -  jnz  FspHeaderNotFound
> -
> -  add  $FFS_HEADER_SIZE_VALUE, %edi        # Bypass the ffs header
> -
> -  # Check the section type as raw section
> -  movb SECTION_HEADER_TYPE_OFFSET(%edi), %al
> -  cmp  $0x19, %al
> -  jnz  FspHeaderNotFound
> -
> -  addl $RAW_SECTION_HEADER_SIZE_VALUE, %edi  # Bypass the section
> header
> -  jmp  FspHeaderFound
> -
> -FspHeaderNotFound:
> -  jmp  .
> -
> -FspHeaderFound:
> -  # Get the fsp TempRamInit Api address
> -  movl FSP_HEADER_IMAGEBASE_OFFSET(%edi), %eax
> -  addl FSP_HEADER_TEMPRAMINIT_OFFSET(%edi), %eax
> -
> -  # Setup the hardcode stack
> -  movl $TempRamInitStack, %esp
> -
> -  # Call the fsp TempRamInit Api
> -  jmp  *%eax
> -
> -TempRamInitDone:
> -  cmp  $0x8000000E, %eax   #Check if EFI_NOT_FOUND returned. Error code
> for Microcode Update not found.
> -  je   CallSecFspInit      #If microcode not found, don't hang, but continue.
> -
> -  cmp  $0x0, %eax
> -  jnz  FspApiFailed
> -
> -  #   ECX: start of range
> -  #   EDX: end of range
> -CallSecFspInit:
> -  subl    PcdGet32 (PcdFspTemporaryRamSize), %edx # TemporaryRam for
> FSP
> -  xorl    %eax, %eax
> -  movl    %edx, %esp
> -
> -  # Align the stack at DWORD
> -  addl  $3, %esp
> -  andl  $0xFFFFFFFC, %esp
> -
> -  pushl   %edx
> -  pushl   %ecx
> -  pushl   %eax # zero - no hob list yet
> -  call    ASM_PFX(CallPeiCoreEntryPoint)
> -
> -FspApiFailed:
> -  jmp .
> -
> -.align 0x10
> -TempRamInitStack:
> -    .long  TempRamInitDone
> -    .long  FsptUpdDataPtr
> -
> -#
> -# ROM-based Global-Descriptor Table for the Tiano PEI Phase -# -.align 0x10
> -
> -#
> -# GDT[0]: 0x00: Null entry, never used.
> -#
> -.equ NULL_SEL,             . - GdtBase    # Selector [0]
> -GdtBase:
> -BootGdtTable:
> -    .long  0
> -    .long  0
> -
> -#
> -# Linear data segment descriptor
> -#
> -.equ LINEAR_SEL,           . - GdtBase     # Selector [0x8]
> -    .word  0xFFFF                          # limit 0xFFFFF
> -    .word  0                               # base 0
> -    .byte  0
> -    .byte  0x92                            # present, ring 0, data, expand-up, writable
> -    .byte  0xCF                            # page-granular, 32-bit
> -    .byte  0
> -
> -#
> -# Linear code segment descriptor
> -#
> -.equ LINEAR_CODE_SEL,      . - GdtBase     # Selector [0x10]
> -    .word  0xFFFF                          # limit 0xFFFFF
> -    .word  0                               # base 0
> -    .byte  0
> -    .byte  0x9B                            # present, ring 0, data, expand-up, not-writable
> -    .byte  0xCF                            # page-granular, 32-bit
> -    .byte  0
> -#
> -# System data segment descriptor
> -#
> -.equ SYS_DATA_SEL,         . - GdtBase     # Selector [0x18]
> -    .word  0xFFFF                          # limit 0xFFFFF
> -    .word  0                               # base 0
> -    .byte  0
> -    .byte  0x93                            # present, ring 0, data, expand-up, not-writable
> -    .byte  0xCF                            # page-granular, 32-bit
> -    .byte  0
> -
> -#
> -# System code segment descriptor
> -#
> -.equ SYS_CODE_SEL,         . - GdtBase     # Selector [0x20]
> -    .word  0xFFFF                          # limit 0xFFFFF
> -    .word  0                               # base 0
> -    .byte  0
> -    .byte  0x9A                            # present, ring 0, data, expand-up, writable
> -    .byte  0xCF                            # page-granular, 32-bit
> -    .byte  0
> -#
> -# Spare segment descriptor
> -#
> -.equ SYS16_CODE_SEL,       . - GdtBase     # Selector [0x28]
> -    .word  0xFFFF                          # limit 0xFFFFF
> -    .word  0                               # base 0
> -    .byte  0x0E                            # Changed from F000 to E000.
> -    .byte  0x9B                            # present, ring 0, code, expand-up, writable
> -    .byte  0x00                            # byte-granular, 16-bit
> -    .byte  0
> -#
> -# Spare segment descriptor
> -#
> -.equ SYS16_DATA_SEL,       . - GdtBase     # Selector [0x30]
> -    .word  0xFFFF                          # limit 0xFFFF
> -    .word  0                               # base 0
> -    .byte  0
> -    .byte  0x93                            # present, ring 0, data, expand-up, not-writable
> -    .byte  0x00                            # byte-granular, 16-bit
> -    .byte  0
> -
> -#
> -# Spare segment descriptor
> -#
> -.equ SPARE5_SEL,           . - GdtBase     # Selector [0x38]
> -    .word  0                               # limit 0
> -    .word  0                               # base 0
> -    .byte  0
> -    .byte  0                               # present, ring 0, data, expand-up, writable
> -    .byte  0                               # page-granular, 32-bit
> -    .byte  0
> -.equ GDT_SIZE,             . - BootGdtTable    # Size, in bytes
> -
> -#
> -# GDT Descriptor
> -#
> -GdtDesc:                                # GDT descriptor
> -    .word  GDT_SIZE - 1                    # GDT limit
> -    .long  BootGdtTable                    # GDT base address
> -
> -ASM_PFX(ProtectedModeEntryLinearAddress):
> -ProtectedModeEntryLinearOffset:
> -  .long      ProtectedModeEntryPoint       # Offset of our 32 bit code
> -  .word      LINEAR_CODE_SEL
> diff --git
> a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfo
> rmSecLib/Ia32/SecEntry.asm
> b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfo
> rmSecLib/Ia32/SecEntry.nasm
> similarity index 69%
> rename from
> Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfor
> mSecLib/Ia32/SecEntry.asm
> rename to
> Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfor
> mSecLib/Ia32/SecEntry.nasm
> index 7b82cba..7f6d771 100644
> ---
> a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfo
> rmSecLib/Ia32/SecEntry.asm
> +++
> b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlat
> +++ formSecLib/Ia32/SecEntry.nasm
> @@ -1,34 +1,28 @@
> -;; @file
> -; This is the code that goes from real-mode to protected mode.
> -; It consumes the reset vector, calls TempRamInit API from FSP binary.
> +;----------------------------------------------------------------------
> +--------
>  ;
> -; Copyright (c) 2017, 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 that accompanies this
> distribution.
> -; The full text of the license may be found at -;
> http://opensource.org/licenses/bsd-license.php.
> +; Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> ;
> +SPDX-License-Identifier: BSD-2-Clause-Patent ; Module Name:
>  ;
> -; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS, -; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND,
> EITHER EXPRESS OR IMPLIED.
> +;  SecEntry.nasm
>  ;
> -;;
> +; Abstract:
> +;
> +;  This is the code that goes from real-mode to protected mode.
> +;  It consumes the reset vector, calls TempRamInit API from FSP binary.
> +;
> +;----------------------------------------------------------------------
> +--------
> 
>  #include "Fsp.h"
> 
> -.686p
> -.xmm
> -.model small, c
> -
> -EXTRN   CallPeiCoreEntryPoint:NEAR
> -EXTRN   BoardBeforeTempRamInit:NEAR
> -EXTRN   FsptUpdDataPtr:FAR
> +SECTION .text
> 
> +extern   ASM_PFX(CallPeiCoreEntryPoint)
> +extern   ASM_PFX(FsptUpdDataPtr)
> +extern   ASM_PFX(BoardBeforeTempRamInit)
>  ; Pcds
> -EXTRN   PcdGet32 (PcdFsptBaseAddress):DWORD
> -EXTRN   PcdGet32(PcdFspTemporaryRamSize):DWORD
> -
> -_TEXT_REALMODE      SEGMENT PARA PUBLIC USE16 'CODE'
> -                    ASSUME  CS:_TEXT_REALMODE, DS:_TEXT_REALMODE
> +extern   ASM_PFX(PcdGet32 (PcdFspTemporaryRamSize))
> +extern   ASM_PFX(PcdGet32 (PcdFsptBaseAddress))
> 
>  ;----------------------------------------------------------------------------
>  ;
> @@ -59,8 +53,10 @@ _TEXT_REALMODE      SEGMENT PARA PUBLIC USE16
> 'CODE'
>  ;
>  ;----------------------------------------------------------------------------
> 
> +BITS 16
>  align 4
> -_ModuleEntryPoint PROC NEAR C PUBLIC
> +global ASM_PFX(_ModuleEntryPoint)
> +ASM_PFX(_ModuleEntryPoint):
>    fninit                                ; clear any pending Floating point exceptions
>    ;
>    ; Store the BIST value in mm0
> @@ -76,6 +72,7 @@ _ModuleEntryPoint PROC NEAR C PUBLIC
>    cmp al, 04h
>    jnz NotWarmStart
> 
> +
>    ;
>    ; @note Issue warm reset, since if CPU only reset is issued not all MSRs are
> restored to their defaults
>    ;
> @@ -84,7 +81,6 @@ _ModuleEntryPoint PROC NEAR C PUBLIC
>    out dx, al
> 
>  NotWarmStart:
> -
>    ;
>    ; Save time-stamp counter value
>    ; rdtsc load 64bit time-stamp counter to EDX:EAX @@ -96,9 +92,9 @@
> NotWarmStart:
>    ;
>    ; Load the GDT table in GdtDesc
>    ;
> -  mov     esi,  OFFSET GdtDesc
> +  mov     esi,  GdtDesc
>    DB      66h
> -  lgdt    fword ptr cs:[si]
> +  lgdt    [cs:si]
> 
>    ;
>    ; Transition to 16 bit protected mode @@ -126,14 +122,8 @@
> NotWarmStart:
>    ; Transition to Flat 32 bit protected mode
>    ; The jump to a far pointer causes the transition to 32 bit mode
>    ;
> -  mov esi, offset ProtectedModeEntryLinearAddress
> -  jmp     fword ptr cs:[si]
> -
> -_ModuleEntryPoint   ENDP
> -_TEXT_REALMODE      ENDS
> -
> -_TEXT_PROTECTED_MODE      SEGMENT PARA PUBLIC USE32 'CODE'
> -                          ASSUME  CS:_TEXT_PROTECTED_MODE,
> DS:_TEXT_PROTECTED_MODE
> +  mov esi, ProtectedModeEntryLinearAddress
> +  jmp   dword far  [cs:si]
> 
>  ;----------------------------------------------------------------------------
>  ;
> @@ -155,69 +145,69 @@ _TEXT_PROTECTED_MODE      SEGMENT PARA
> PUBLIC USE32 'CODE'
>  ;
>  ;----------------------------------------------------------------------------
> 
> +BITS 32
>  align 4
> -ProtectedModeEntryPoint PROC NEAR PUBLIC
> -
> -        ;
> -        ; Early board hooks
> -        ;
> -        mov     esp, BoardBeforeTempRamInitRet
> -        jmp     BoardBeforeTempRamInit
> +ProtectedModeEntryPoint:
> +  ;
> +  ; Early board hooks
> +  ;
> +  mov     esp, BoardBeforeTempRamInitRet
> +  jmp     ASM_PFX(BoardBeforeTempRamInit)
> 
>  BoardBeforeTempRamInitRet:
> 
>    ; Find the fsp info header
> -  mov  edi, PcdGet32 (PcdFsptBaseAddress)
> +  mov  edi, [ASM_PFX(PcdGet32 (PcdFsptBaseAddress))]
> 
> -  mov  eax, dword ptr [edi + FVH_SIGINATURE_OFFSET]
> +  mov  eax, dword [edi + FVH_SIGINATURE_OFFSET]
>    cmp  eax, FVH_SIGINATURE_VALID_VALUE
>    jnz  FspHeaderNotFound
> 
>    xor  eax, eax
> -  mov  ax, word ptr [edi + FVH_EXTHEADER_OFFSET_OFFSET]
> +  mov  ax, word [edi + FVH_EXTHEADER_OFFSET_OFFSET]
>    cmp  ax, 0
>    jnz  FspFvExtHeaderExist
> 
>    xor  eax, eax
> -  mov  ax, word ptr [edi + FVH_HEADER_LENGTH_OFFSET]   ; Bypass Fv
> Header
> +  mov  ax, word [edi + FVH_HEADER_LENGTH_OFFSET]   ; Bypass Fv Header
>    add  edi, eax
>    jmp  FspCheckFfsHeader
> 
>  FspFvExtHeaderExist:
>    add  edi, eax
> -  mov  eax, dword ptr [edi + FVH_EXTHEADER_SIZE_OFFSET]  ; Bypass Ext Fv
> Header
> +  mov  eax, dword [edi + FVH_EXTHEADER_SIZE_OFFSET]  ; Bypass Ext Fv
> + Header
>    add  edi, eax
> 
>    ; Round up to 8 byte alignment
>    mov  eax, edi
>    and  al,  07h
> -  jz FspCheckFfsHeader
> +  jz   FspCheckFfsHeader
> 
>    and  edi, 0FFFFFFF8h
>    add  edi, 08h
> 
>  FspCheckFfsHeader:
>    ; Check the ffs guid
> -  mov  eax, dword ptr [edi]
> +  mov  eax, dword [edi]
>    cmp  eax, FSP_HEADER_GUID_DWORD1
> -  jnz FspHeaderNotFound
> +  jnz  FspHeaderNotFound
> 
> -  mov  eax, dword ptr [edi + 4]
> +  mov  eax, dword [edi + 4]
>    cmp  eax, FSP_HEADER_GUID_DWORD2
> -  jnz FspHeaderNotFound
> +  jnz  FspHeaderNotFound
> 
> -  mov  eax, dword ptr [edi + 8]
> +  mov  eax, dword [edi + 8]
>    cmp  eax, FSP_HEADER_GUID_DWORD3
> -  jnz FspHeaderNotFound
> +  jnz  FspHeaderNotFound
> 
> -  mov  eax, dword ptr [edi + 0Ch]
> +  mov  eax, dword [edi + 0Ch]
>    cmp  eax, FSP_HEADER_GUID_DWORD4
> -  jnz FspHeaderNotFound
> +  jnz  FspHeaderNotFound
> 
>    add  edi, FFS_HEADER_SIZE_VALUE       ; Bypass the ffs header
> 
>    ; Check the section type as raw section
> -  mov  al, byte ptr [edi + SECTION_HEADER_TYPE_OFFSET]
> +  mov  al, byte [edi + SECTION_HEADER_TYPE_OFFSET]
>    cmp  al, 019h
>    jnz FspHeaderNotFound
> 
> @@ -229,11 +219,11 @@ FspHeaderNotFound:
> 
>  FspHeaderFound:
>    ; Get the fsp TempRamInit Api address
> -  mov eax, dword ptr [edi + FSP_HEADER_IMAGEBASE_OFFSET]
> -  add eax, dword ptr [edi + FSP_HEADER_TEMPRAMINIT_OFFSET]
> +  mov eax, dword [edi + FSP_HEADER_IMAGEBASE_OFFSET]  add eax,
> dword
> + [edi + FSP_HEADER_TEMPRAMINIT_OFFSET]
> 
>    ; Setup the hardcode stack
> -  mov esp, OFFSET TempRamInitStack
> +  mov esp, TempRamInitStack
> 
>    ; Call the fsp TempRamInit Api
>    jmp eax
> @@ -248,7 +238,7 @@ TempRamInitDone:
>    ;   ECX: start of range
>    ;   EDX: end of range
>  CallSecFspInit:
> -  sub     edx, PcdGet32 (PcdFspTemporaryRamSize) ; TemporaryRam for FSP
> +  sub     edx, [ASM_PFX(PcdGet32 (PcdFspTemporaryRamSize))] ;
> TemporaryRam for FSP
>    xor     eax, eax
>    mov     esp, edx
> 
> @@ -259,30 +249,29 @@ CallSecFspInit:
>    push    edx
>    push    ecx
>    push    eax ; zero - no hob list yet
> -  call    CallPeiCoreEntryPoint
> +  call    ASM_PFX(CallPeiCoreEntryPoint)
> 
>  FspApiFailed:
>    jmp $
> 
>  align 10h
>  TempRamInitStack:
> -    DD  OFFSET TempRamInitDone
> -    DD  OFFSET FsptUpdDataPtr ; TempRamInitParams
> -
> -ProtectedModeEntryPoint ENDP
> +    DD  TempRamInitDone
> +    DD  ASM_PFX(FsptUpdDataPtr); TempRamInitParams
> 
>  ;
>  ; ROM-based Global-Descriptor Table for the Tiano PEI Phase  ;  align 16 -
> PUBLIC  BootGdtTable
> +global  ASM_PFX(BootGdtTable)
> 
>  ;
>  ; GDT[0]: 0x00: Null entry, never used.
>  ;
>  NULL_SEL            EQU $ - GDT_BASE    ; Selector [0]
>  GDT_BASE:
> -BootGdtTable        DD  0
> +ASM_PFX(BootGdtTable):
> +                    DD  0
>                      DD  0
>  ;
>  ; Linear data segment descriptor
> @@ -356,20 +345,17 @@ SPARE5_SEL          EQU $ - GDT_BASE    ; Selector
> [0x38]
>      DB  0                               ; present, ring 0, data, expand-up, writable
>      DB  0                               ; page-granular, 32-bit
>      DB  0
> -GDT_SIZE            EQU $ - BootGdtTable    ; Size, in bytes
> +GDT_SIZE            EQU $ - GDT_BASE    ; Size, in bytes
> 
>  ;
>  ; GDT Descriptor
>  ;
>  GdtDesc:                                ; GDT descriptor
>      DW  GDT_SIZE - 1                    ; GDT limit
> -    DD  OFFSET BootGdtTable             ; GDT base address
> +    DD  GDT_BASE                        ; GDT base address
> 
> 
> -ProtectedModeEntryLinearAddress   LABEL   FWORD
> -ProtectedModeEntryLinearOffset    LABEL   DWORD
> -  DD      OFFSET ProtectedModeEntryPoint  ; Offset of our 32 bit code
> +ProtectedModeEntryLinearAddress:
> +ProtectedModeEntryLinear:
> +  DD      ProtectedModeEntryPoint  ; Offset of our 32 bit code
>    DW      LINEAR_CODE_SEL
> -
> -_TEXT_PROTECTED_MODE    ENDS
> -END
> diff --git
> a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfo
> rmSecLib/Ia32/Stack.S
> b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfo
> rmSecLib/Ia32/Stack.S
> deleted file mode 100644
> index e0eb80a..0000000
> ---
> a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfo
> rmSecLib/Ia32/Stack.S
> +++ /dev/null
> @@ -1,73 +0,0 @@
> -## @file
> -# Switch the stack from temporary memory to permenent memory.
> -#
> -# Copyright (c) 2017, 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 that 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.
> -#
> -##
> -
> -#------------------------------------------------------------------------------
> -# VOID
> -# EFIAPI
> -# SecSwitchStack (
> -#   UINT32   TemporaryMemoryBase,
> -#   UINT32   PermanentMemoryBase
> -#   )
> -#------------------------------------------------------------------------------
> -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 memory
> -    movl  %edx, 16(%eax)
> -    movl  %eax, %esp            # From now, esp is pointed to permanent
> memory
> -
> -    #
> -    # Fixup the ebp point to permanent memory
> -    #
> -    movl  %ebp, %eax
> -    subl  %ebx, %eax
> -    addl  %ecx, %eax
> -    movl  %eax, %ebp            # From now, ebp is pointed to permanent
> memory
> -
> -    popl  %edx
> -    popl  %ecx
> -    popl  %ebx
> -    popl  %eax
> -    ret
> -
> diff --git
> a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfo
> rmSecLib/Ia32/Stack.asm
> b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfo
> rmSecLib/Ia32/Stack.nasm
> similarity index 50%
> rename from
> Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfor
> mSecLib/Ia32/Stack.asm
> rename to
> Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfor
> mSecLib/Ia32/Stack.nasm
> index 27ae218..635699c 100644
> ---
> a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfo
> rmSecLib/Ia32/Stack.asm
> +++
> b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlat
> +++ formSecLib/Ia32/Stack.nasm
> @@ -1,20 +1,14 @@
> -;; @file
> -; Switch the stack from temporary memory to permenent memory.
> +;----------------------------------------------------------------------
> +--------
>  ;
> -; Copyright (c) 2017, 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 that accompanies this
> distribution.
> -; The full text of the license may be found at -;
> http://opensource.org/licenses/bsd-license.php.
> +; Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> ;
> +SPDX-License-Identifier: BSD-2-Clause-Patent ; Abstract:
>  ;
> -; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS, -; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND,
> EITHER EXPRESS OR IMPLIED.
> +;   Switch the stack from temporary memory to permenent memory.
>  ;
> -;;
> +;----------------------------------------------------------------------
> +--------
> 
> -    .586p
> -    .model  flat,C
> -    .code
> +    SECTION .text
> 
>  ;------------------------------------------------------------------------------
>  ; VOID
> @@ -24,7 +18,8 @@
>  ;   UINT32   PermanentMemoryBase
>  ;   );
>  ;------------------------------------------------------------------------------
> -SecSwitchStack   PROC
> +global ASM_PFX(SecSwitchStack)
> +ASM_PFX(SecSwitchStack):
>      ;
>      ; Save three register: eax, ebx, ecx
>      ;
> @@ -49,16 +44,16 @@ SecSwitchStack   PROC
>      mov   eax, esp
>      sub   eax, ebx
>      add   eax, ecx
> -    mov   edx, dword ptr [esp]         ; copy pushed register's value to
> permanent memory
> -    mov   dword ptr [eax], edx
> -    mov   edx, dword ptr [esp + 4]
> -    mov   dword ptr [eax + 4], edx
> -    mov   edx, dword ptr [esp + 8]
> -    mov   dword ptr [eax + 8], edx
> -    mov   edx, dword ptr [esp + 12]
> -    mov   dword ptr [eax + 12], edx
> -    mov   edx, dword ptr [esp + 16]    ; Update this function's return address
> into permanent memory
> -    mov   dword ptr [eax + 16], edx
> +    mov   edx, dword [esp]         ; copy pushed register's value to permanent
> memory
> +    mov   dword [eax], edx
> +    mov   edx, dword [esp + 4]
> +    mov   dword [eax + 4], edx
> +    mov   edx, dword [esp + 8]
> +    mov   dword [eax + 8], edx
> +    mov   edx, dword [esp + 12]
> +    mov   dword [eax + 12], edx
> +    mov   edx, dword [esp + 16]    ; Update this function's return address into
> permanent memory
> +    mov   dword [eax + 16], edx
>      mov   esp, eax                     ; From now, esp is pointed to permanent
> memory
> 
>      ;
> @@ -74,6 +69,4 @@ SecSwitchStack   PROC
>      pop   ebx
>      pop   eax
>      ret
> -SecSwitchStack   ENDP
> 
> -    END
> diff --git
> a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfo
> rmSecLib/SecFspWrapperPlatformSecLib.inf
> b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfo
> rmSecLib/SecFspWrapperPlatformSecLib.inf
> index 9c13357..5309d97 100644
> ---
> a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatfo
> rmSecLib/SecFspWrapperPlatformSecLib.inf
> +++
> b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlat
> +++ formSecLib/SecFspWrapperPlatformSecLib.inf
> @@ -1,15 +1,10 @@
>  ## @file
>  #  Provide FSP wrapper platform sec related function.
>  #
> -# Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> +#  Copyright (c) 2017 - 2018, 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
> +#  SPDX-License-Identifier: BSD-2-Clause-Patent
>  #
> -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND,
> EITHER EXPRESS OR IMPLIED.
>  #
>  ##
> 
> @@ -48,13 +43,10 @@
>    PlatformInit.c
> 
>  [Sources.IA32]
> -  Ia32/SecEntry.asm
> -  Ia32/PeiCoreEntry.asm
> -  Ia32/Stack.asm
> +  Ia32/SecEntry.nasm
> +  Ia32/PeiCoreEntry.nasm
> +  Ia32/Stack.nasm
>    Ia32/Fsp.h
> -  Ia32/SecEntry.S
> -  Ia32/PeiCoreEntry.S
> -  Ia32/Stack.S
> 
> 
> ##############################################################
> ##################
>  #
> diff --git a/Platform/Intel/MinPlatformPkg/Include/Fdf/RuleInclude.fdf
> b/Platform/Intel/MinPlatformPkg/Include/Fdf/RuleInclude.fdf
> index 1b20442..90a4b27 100644
> --- a/Platform/Intel/MinPlatformPkg/Include/Fdf/RuleInclude.fdf
> +++ b/Platform/Intel/MinPlatformPkg/Include/Fdf/RuleInclude.fdf
> @@ -1,15 +1,9 @@
>  ## @file
>  #  FDF file of Platform.
>  #
> -# Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) 2017 - 2019, 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.
> +#    SPDX-License-Identifier: BSD-2-Clause-Patent
>  #
>  ##
> 
> @@ -51,6 +45,15 @@
>       VERSION   STRING="$(INF_VERSION)" Optional
> BUILD_NUM=$(BUILD_NUMBER)
>    }
> 
> +
> +[Rule.Common.PEIM]
> +  FILE PEIM = $(NAMED_GUID)               {
> +     PEI_DEPEX PEI_DEPEX Optional
> $(INF_OUTPUT)/$(MODULE_NAME).depex
> +     TE        TE                        $(INF_OUTPUT)/$(MODULE_NAME).efi
> +     UI        STRING="$(MODULE_NAME)" Optional
> +     VERSION   STRING="$(INF_VERSION)" Optional
> BUILD_NUM=$(BUILD_NUMBER)
> +}
> +
>  [Rule.Common.PEIM.BINARY]
>    FILE PEIM = $(NAMED_GUID) {
>      PEI_DEPEX PEI_DEPEX Optional      |.depex
> diff --git
> a/Platform/Intel/MinPlatformPkg/Tools/Fsp/RebaseAndPatchFspBinBaseAdd
> ress.py
> b/Platform/Intel/MinPlatformPkg/Tools/Fsp/RebaseAndPatchFspBinBaseAdd
> ress.py
> index 496b977..167a0e0 100644
> ---
> a/Platform/Intel/MinPlatformPkg/Tools/Fsp/RebaseAndPatchFspBinBaseAdd
> ress.py
> +++
> b/Platform/Intel/MinPlatformPkg/Tools/Fsp/RebaseAndPatchFspBinBaseAd
> +++ dress.py
> @@ -76,7 +76,7 @@ file.close()
>  pythontool = 'python'
>  if 'PYTHON_HOME' in os.environ:
>      pythontool = os.environ['PYTHON_HOME'] + os.sep + 'python'
> -Process = subprocess.Popen(pythontool + " " + splitFspBinPath + " info -f" +
> fspBinFilePath, stdout=subprocess.PIPE)
> +Process = subprocess.Popen([pythontool, splitFspBinPath,
> +"info","-f",fspBinFilePath], stdout=subprocess.PIPE)
>  Output = Process.communicate()[0]
>  FsptInfo = Output.rsplit("FSP_M", 1);
>  for line in FsptInfo[1].split("\n"):
> diff --git a/Platform/Intel/MinPlatformPkg/Tools/PatchFv/PatchBinFv.py
> b/Platform/Intel/MinPlatformPkg/Tools/PatchFv/PatchBinFv.py
> index e1facd1..b98c951 100644
> --- a/Platform/Intel/MinPlatformPkg/Tools/PatchFv/PatchBinFv.py
> +++ b/Platform/Intel/MinPlatformPkg/Tools/PatchFv/PatchBinFv.py
> @@ -1,13 +1,7 @@
>  ## @ PatchBinFv.py
>  #
> -# Copyright (c) 2017, 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 that 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.
> +# Copyright (c) 2017 - 2019, Intel Corporation. All rights
> +reserved.<BR> # SPDX-License-Identifier: BSD-2-Clause-Patent
>  #
>  ##
> 
> @@ -113,7 +107,7 @@ class FileChecker:
>          return
> 
>      def ProcessFvInf(self, fvName):
> -        sourceFileName =
> os.path.join(self.sourceRoot,fvName+"\\"+self.target+"\\"+fvName+".inf")
> +        sourceFileName =
> + os.path.join(self.sourceRoot,fvName,self.target,fvName+".inf")
>          print "\nprocessing - " + sourceFileName
>          fileGuid = self.GetInfFileGuid (sourceFileName)
>          print "FV NAME GUID - " + fileGuid @@ -143,7 +137,7 @@ class
> FileChecker:
>          self.PrintPcdList(self.InfPcdList)
> 
>      def PatchFv(self, fvName):
> -        sourceFileName =
> os.path.join(self.sourceRoot,fvName+"\\"+self.target+"\\"+fvName+".fv")
> +        sourceFileName =
> + os.path.join(self.sourceRoot,fvName,self.target,fvName+".Fv")
>          print "patching - " + sourceFileName
> 
>          try :
> @@ -167,7 +161,7 @@ class FileChecker:
>                      print "  [" + hex(offset) + "] " +
> binascii.hexlify(data[offset:offset+2]) + " <= " + binascii.hexlify(h)
>                      data[offset:offset+2] = h
>                  elif (cmp (pcd[4], "UINT32") == 0):
> -                    l = struct.pack("L", int(pcd[3],16))
> +                    l = struct.pack("I", int(pcd[3],16))
>                      print "  [" + hex(offset) + "] " +
> binascii.hexlify(data[offset:offset+4]) + " <= " + binascii.hexlify(l)
>                      data[offset:offset+4] = l
>                  elif (cmp (pcd[4], "UINT64") == 0):
> diff --git a/Platform/Intel/MinPlatformPkg/Tools/PatchFv/RebaseBinFv.py
> b/Platform/Intel/MinPlatformPkg/Tools/PatchFv/RebaseBinFv.py
> index 4d194b3..149630e 100644
> --- a/Platform/Intel/MinPlatformPkg/Tools/PatchFv/RebaseBinFv.py
> +++ b/Platform/Intel/MinPlatformPkg/Tools/PatchFv/RebaseBinFv.py
> @@ -1,15 +1,8 @@
>  ## @ PatchBinFv.py
>  #
> -# Copyright (c) 2017, 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 that accompanies this
> distribution.
> -# The full text of the license may be found at -#
> http://opensource.org/licenses/bsd-license.php.
> +# Copyright (c) 2017 - 2019, Intel Corporation. All rights
> +reserved.<BR> # SPDX-License-Identifier: BSD-2-Clause-Patent
>  #
> -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND,
> EITHER EXPRESS OR IMPLIED.
> -#
> -##
> 
>  import os
>  import re
> @@ -547,7 +540,7 @@ class FileChecker:
>          print "PCD: " + pcd[0] + "|" + pcd[3] + " <== " + pcd[1] + "(" + pcd[2] + ")"
> 
>      def RebaseFv(self, fvName, rebasePcd):
> -        sourceFileName =
> os.path.join(self.sourceRoot,fvName+"\\"+self.target+"\\"+fvName+".fv")
> +        sourceFileName =
> + os.path.join(self.sourceRoot,fvName,self.target,fvName+".Fv")
>          print "rebasing(FV) - " + sourceFileName
> 
>          try :
> @@ -623,7 +616,7 @@ class FileChecker:
>              if not line:
>                  break
> 
> -            newline = line[:-1]
> +            newline = line[:-1].replace('\r','')
> 
>              if (cmp (newline, TargetPkg) == 0):
>                  FoundPkg = True
> @@ -651,7 +644,7 @@ class FileChecker:
>      def GetOldFvBase (self, fvName, PcdName):
>          ParseBase = False
>          Value = ""
> -        fileName =
> os.path.join(self.sourceRoot,fvName+"\\"+self.target+"\\"+fvName+".inf")
> +        fileName =
> + os.path.join(self.sourceRoot,fvName,self.target,fvName+".inf")
>          try :
>              file = open(fileName)
>          except Exception:
> @@ -663,7 +656,7 @@ class FileChecker:
>                  if not line:
>                      break
> 
> -                newline = line[:-1]
> +                newline = line[:-1].replace('\r','')
> 
>                  if cmp (newline, "") == 0:
>                      continue
> @@ -687,7 +680,7 @@ class FileChecker:
>          return Value
> 
>      def SetNewFvBase (self, fvName, PcdName, OldFvBase, NewFvBase):
> -        fileName =
> os.path.join(self.sourceRoot,fvName+"\\"+self.target+"\\"+fvName+".inf")
> +        fileName =
> + os.path.join(self.sourceRoot,fvName,self.target,fvName+".inf")
>          print "update - " + fileName
>          try :
>              file = open(fileName, "r")
> @@ -704,7 +697,7 @@ class FileChecker:
>                  if not line:
>                      break
> 
> -                newline = line[:-1]
> +                newline = line[:-1].strip()
> 
>                  if cmp (newline, "") == 0:
>                      continue
> diff --git a/Platform/Intel/build_bios.py b/Platform/Intel/build_bios.py index
> a4ea093..c0ab7c6 100644
> --- a/Platform/Intel/build_bios.py
> +++ b/Platform/Intel/build_bios.py
> @@ -139,9 +139,14 @@ def pre_build(build_config, build_type="DEBUG",
> silent=False, toolchain=None):
>          if os.environ.get("PYTHONPATH") is not None:
>              config["PYTHON_HOME"] = os.environ.get("PYTHONPATH")
>          else:
> -            print("PYTHONPATH environment variable is not found")
> +            print("PYTHON_HOME environment variable is not found")
>              sys.exit(1)
> 
> +    if os.environ.get("PYTHON_HOME") is None or \
> +       not os.path.exists(os.environ.get("PYTHON_HOME")):
> +        print("PYTHON_HOME environment variable is not found")
> +        sys.exit(1)
> +
>      # if python is installed, disable the binary base tools.
>      # python is installed if this code is running :)
>      if config.get("PYTHON_HOME") is not None:
> @@ -151,18 +156,18 @@ def pre_build(build_config, build_type="DEBUG",
> silent=False, toolchain=None):
>      # Run edk setup and  update config
>      if os.name == 'nt':
>          edk2_setup_cmd = [os.path.join(config["EFI_SOURCE"], "edksetup"),
> -                        "Rebuild"]
> +                          "Rebuild"]
> 
>          if config.get("EDK_SETUP_OPTION") and \
> -        config["EDK_SETUP_OPTION"] != " ":
> +           config["EDK_SETUP_OPTION"] != " ":
>              edk2_setup_cmd.append(config["EDK_SETUP_OPTION"])
> 
>          _, _, result, return_code = execute_script(edk2_setup_cmd,
> -                                                config,
> -                                                collect_env=True,
> -                                                shell=True)
> +                                                   config,
> +                                                   collect_env=True,
> +                                                   shell=True)
>          if return_code == 0 and result is not None and isinstance(result,
> -                                                                dict):
> +                                                                  dict):
>              config.update(result)
> 
>      # nmake BaseTools source
> @@ -355,7 +360,11 @@ def build(config):
>          command.append("-D")
>          command.append("MAX_SOCKET=" + config["MAX_SOCKET"])
> 
> -    _, _, _, exit_code = execute_script(command, config)
> +    shell = True
> +    if os.name == "posix":
> +        shell = False
> +
> +    _, _, _, exit_code = execute_script(command, config, shell=shell)
>      if exit_code != 0:
>          build_failed(config)
> 
> --
> 2.7.4
> 
> 
> 


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [edk2-devel] [edk2-platforms] [PATCH 1/5] MinPlatformPkg: Added GCC5 build support
  2019-05-15 17:35 ` [edk2-platforms] [PATCH 1/5] MinPlatformPkg: " Agyeman, Prince
  2019-05-18  0:42   ` [edk2-devel] " Kubacki, Michael A
@ 2019-05-18  0:43   ` Nate DeSimone
  1 sibling, 0 replies; 18+ messages in thread
From: Nate DeSimone @ 2019-05-18  0:43 UTC (permalink / raw)
  To: devel@edk2.groups.io, Agyeman, Prince
  Cc: Kubacki, Michael A, Kinney, Michael D, Gao, Liming, Sinha, Ankit

1. RuleInclude.fdf - There are now two [Rule.Common.PEIM] sections in this file, which seems wrong. Please just change the one above it from PE32 to TE.

2. There is a spelling error on line 7 of Stack.nasm: Switch the stack from temporary memory to permenent memory.
"permenent" should be "permanent"

3. SecFspWrapperPlatformSecLib.inf - You updated the copyright year from 2017 to 2018. You should have updated it to 2019.

4. build_bios.py - Why should the script fail if the PYTHON_HOME environment variable is not set? You are already running inside a Python interpreter since you are a Python script, if PYTHON_HOME is not set, just use sys.executable to get the patch of the currently running Python interpreter.

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Agyeman, Prince
Sent: Wednesday, May 15, 2019 10:36 AM
To: devel@edk2.groups.io
Cc: Agyeman, Prince <prince.agyeman@intel.com>; Kubacki, Michael A <michael.a.kubacki@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>; Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Gao, Liming <liming.gao@intel.com>; Sinha, Ankit <ankit.sinha@intel.com>
Subject: [edk2-devel] [edk2-platforms] [PATCH 1/5] MinPlatformPkg: Added GCC5 build support

From: Prince Agyeman <mailto:prince.agyeman@intel.com>

Fixes:
* Replacing .asm and .S with nasm in SecFspWrapperPlatformSecLib for cross-platform build support
* Modified RuleInclude.fdf
* Modified python files to be OS independent

Gcc build was tested on Ubuntu 16.04.5 LTS with gcc version 5.4.0, nasm version 2.11.08

Cc: Michael Kubacki <mailto:michael.a.kubacki@intel.com>
Cc: Michael D Kinney <mailto:michael.d.kinney@intel.com>
Cc: Nate DeSimone <mailto:nathaniel.l.desimone@intel.com>
Cc: Liming Gao <mailto:liming.gao@intel.com>
Cc: Ankit Sinha <mailto:ankit.sinha@intel.com>

TianoCore Contribution Agreement 1.1
Signed-off-by: Prince Agyeman <mailto:prince.agyeman@intel.com>
---
 .../Ia32/PeiCoreEntry.S                            | 123 --------
 .../Ia32/{PeiCoreEntry.asm => PeiCoreEntry.nasm}   |  52 ++-
 .../SecFspWrapperPlatformSecLib/Ia32/SecEntry.S    | 348 ---------------------
 .../Ia32/{SecEntry.asm => SecEntry.nasm}           | 138 ++++----
 .../SecFspWrapperPlatformSecLib/Ia32/Stack.S       |  73 -----
 .../Ia32/{Stack.asm => Stack.nasm}                 |  45 ++-
 .../SecFspWrapperPlatformSecLib.inf                |  18 +-
 .../MinPlatformPkg/Include/Fdf/RuleInclude.fdf     |  19 +-
 .../Tools/Fsp/RebaseAndPatchFspBinBaseAddress.py   |   2 +-
 .../MinPlatformPkg/Tools/PatchFv/PatchBinFv.py     |  16 +-
 .../MinPlatformPkg/Tools/PatchFv/RebaseBinFv.py    |  23 +-
 Platform/Intel/build_bios.py                       |  25 +-
 12 files changed, 152 insertions(+), 730 deletions(-)  delete mode 100644 Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/PeiCoreEntry.S
 rename Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/{PeiCoreEntry.asm => PeiCoreEntry.nasm} (59%)  delete mode 100644 Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/SecEntry.S
 rename Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/{SecEntry.asm => SecEntry.nasm} (69%)  delete mode 100644 Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/Stack.S
 rename Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/{Stack.asm => Stack.nasm} (50%)

diff --git a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/PeiCoreEntry.S b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/PeiCoreEntry.S
deleted file mode 100644
index 8923577..0000000
--- a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/PeiCoreEntry.S
+++ /dev/null
@@ -1,123 +0,0 @@
-## @file
-# Find and call SecStartup
-#
-# Copyright (c) 2017, 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 that 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.
-#
-##
-
-ASM_GLOBAL ASM_PFX(CallPeiCoreEntryPoint)
-ASM_PFX(CallPeiCoreEntryPoint):
-  #
-  # Obtain the hob list pointer
-  #
-  movl    0x4(%esp), %eax
-  #
-  # Obtain the stack information
-  #   ECX: start of range
-  #   EDX: end of range
-  #
-  movl    0x8(%esp), %ecx
-  movl    0xC(%esp), %edx
-
-  #
-  # Platform init
-  #
-  pushal
-  pushl %edx
-  pushl %ecx
-  pushl %eax
-  call  ASM_PFX(PlatformInit)
-  popl  %eax
-  popl  %eax
-  popl  %eax
-  popal
-
-  #
-  # Set stack top pointer
-  #
-  movl    %edx, %esp
-
-  #
-  # Push the hob list pointer
-  #
-  pushl   %eax
-
-  #
-  # Save the value
-  #   ECX: start of range
-  #   EDX: end of range
-  #
-  movl    %esp, %ebp
-  pushl   %ecx
-  pushl   %edx
-
-  #
-  # Push processor count to stack first, then BIST status (AP then BSP)
-  #
-  movl    $1, %eax
-  cpuid
-  shr     $16, %ebx
-  andl    $0x000000FF, %ebx
-  cmp     $1, %bl
-  jae     PushProcessorCount
-
-  #
-  # Some processors report 0 logical processors.  Effectively 0 = 1.
-  # So we fix up the processor count
-  #
-  inc     %ebx
-
-PushProcessorCount:
-  pushl   %ebx
-
-  #
-  # We need to implement a long-term solution for BIST capture.  For now, we just copy BSP BIST
-  # for all processor threads
-  #
-  xorl    %ecx, %ecx
-  movb    %bl, %cl
-PushBist:
-  movd    %mm0, %eax
-  pushl   %eax
-  loop    PushBist
-
-  # Save Time-Stamp Counter
-  movd  %mm5, %eax
-  pushl %eax
-
-  movd  %mm6, %eax
-  pushl %eax
-
-  #
-  # Pass entry point of the PEI core
-  #
-  movl    $0xFFFFFFE0, %edi
-  pushl   %ds:(%edi)
-
-  #
-  # Pass BFV into the PEI Core
-  #
-  movl    $0xFFFFFFFC, %edi
-  pushl   %ds:(%edi)
-
-  #
-  # Pass stack size into the PEI Core
-  #
-  movl    -4(%ebp), %ecx
-  movl    -8(%ebp), %edx
-  pushl   %ecx       # RamBase
-
-  subl    %ecx, %edx
-  pushl   %edx       # RamSize
-
-  #
-  # Pass Control into the PEI Core
-  #
-  call ASM_PFX(SecStartup)
diff --git a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/PeiCoreEntry.asm b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/PeiCoreEntry.nasm
similarity index 59%
rename from Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/PeiCoreEntry.asm
rename to Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/PeiCoreEntry.nasm
index d4703dc..5c5b788 100644
--- a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/PeiCoreEntry.asm
+++ b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlat
+++ formSecLib/Ia32/PeiCoreEntry.nasm
@@ -1,27 +1,25 @@
-;; @file
-; Find and call SecStartup
+;----------------------------------------------------------------------
+--------
 ;
-; Copyright (c) 2017, 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 that accompanies this distribution.
-; The full text of the license may be found at -; http://opensource.org/licenses/bsd-license.php.
+; Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> ; 
+SPDX-License-Identifier: BSD-2-Clause-Patent
 ;
-; 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:
 ;
-;;
-
+;  PeiCoreEntry.nasm
+;
+; Abstract:
+;
+;   Find and call SecStartup
+;
+;----------------------------------------------------------------------
+--------
 
-.686p
-.xmm
-.model flat, c
-.code
+SECTION .text
 
-EXTRN   SecStartup:NEAR
-EXTRN   PlatformInit:NEAR
+extern ASM_PFX(SecStartup)
+extern ASM_PFX(PlatformInit)
 
-CallPeiCoreEntryPoint   PROC PUBLIC
+global ASM_PFX(CallPeiCoreEntryPoint)
+ASM_PFX(CallPeiCoreEntryPoint):
   ;
   ; Obtain the hob list pointer
   ;
@@ -32,7 +30,7 @@ CallPeiCoreEntryPoint   PROC PUBLIC
   ;   EDX: end of range
   ;
   mov     ecx, [esp+8]
-  mov     edx, [esp+0Ch]
+  mov     edx, [esp+0xC]
 
   ;
   ; Platform init
@@ -41,7 +39,7 @@ CallPeiCoreEntryPoint   PROC PUBLIC
   push edx
   push ecx
   push eax
-  call PlatformInit
+  call ASM_PFX(PlatformInit)
   pop  eax
   pop  eax
   pop  eax
@@ -72,7 +70,7 @@ CallPeiCoreEntryPoint   PROC PUBLIC
   mov     eax, 1
   cpuid
   shr     ebx, 16
-  and     ebx, 0000000FFh
+  and     ebx, 0xFF
   cmp     bl, 1
   jae     PushProcessorCount
 
@@ -106,14 +104,14 @@ PushBist:
   ;
   ; Pass entry point of the PEI core
   ;
-  mov     edi, 0FFFFFFE0h
-  push    DWORD PTR ds:[edi]
+  mov     edi, 0xFFFFFFE0
+  push    DWORD [edi]
 
   ;
   ; Pass BFV into the PEI Core
   ;
-  mov     edi, 0FFFFFFFCh
-  push    DWORD PTR ds:[edi]
+  mov     edi, 0xFFFFFFFC
+  push    DWORD [edi]
 
   ;
   ; Pass stack size into the PEI Core
@@ -128,7 +126,5 @@ PushBist:
   ;
   ; Pass Control into the PEI Core
   ;
-  call SecStartup
-CallPeiCoreEntryPoint   ENDP
+  call ASM_PFX(SecStartup)
 
-END
diff --git a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/SecEntry.S b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/SecEntry.S
deleted file mode 100644
index 396e7a4..0000000
--- a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/SecEntry.S
+++ /dev/null
@@ -1,348 +0,0 @@
-## @file
-# This is the code that goes from real-mode to protected mode.
-# It consumes the reset vector, calls TempRamInit API from FSP binary.
-#
-# Copyright (c) 2017, 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 that 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.
-#
-##
-
-#include "Fsp.h"
-
-ASM_GLOBAL    ASM_PFX(_gPcd_FixedAtBuild_PcdFsptBaseAddress)
-ASM_GLOBAL    ASM_PFX(_gPcd_FixedAtBuild_PcdFspTemporaryRamSize)
-
-ASM_GLOBAL ASM_PFX(_TEXT_REALMODE)
-ASM_PFX(_TEXT_REALMODE):
-#----------------------------------------------------------------------------
-#
-# Procedure:    _ModuleEntryPoint
-#
-# Input:        None
-#
-# Output:       None
-#
-# Destroys:     Assume all registers
-#
-# Description:
-#
-#   Transition to non-paged flat-model protected mode from a
-#   hard-coded GDT that provides exactly two descriptors.
-#   This is a bare bones transition to protected mode only
-#   used for a while in PEI and possibly DXE.
-#
-#   After enabling protected mode, a far jump is executed to
-#   transfer to PEI using the newly loaded GDT.
-#
-# Return:       None
-#
-#  MMX Usage:
-#              MM0 = BIST State
-#              MM5 = Save time-stamp counter value high32bit
-#              MM6 = Save time-stamp counter value low32bit.
-#
-#----------------------------------------------------------------------------
-
-ASM_GLOBAL ASM_PFX(_ModuleEntryPoint)
-ASM_PFX(_ModuleEntryPoint):
-  fninit                                # clear any pending Floating point exceptions
-  #
-  # Store the BIST value in mm0
-  #
-  movd    %eax, %mm0
-  cli
-
-  #
-  # Check INIT# is asserted by port 0xCF9
-  #
-  mov     $0x0CF9, %dx
-  in      %dx, %al
-  cmp     $0x04, %al
-  jnz     NotWarmStart
-
-  #
-  # @note Issue warm reset, since if CPU only reset is issued not all MSRs are restored to their defaults
-  #
-  movw    $0x0CF9, %dx
-  movb    $0x06, %al
-  out     %al, %dx
-
-  #
-  # Save time-stamp counter value
-  # rdtsc load 64bit time-stamp counter to EDX:EAX
-  #
-  rdtsc
-  movd    %edx, %mm5
-  movd    %ecx, %mm6
-
-  #
-  # Load the GDT table in GdtDesc
-  #
-  movl    $GdtDesc, %esi
-  .byte   0x66
-  lgdt    %cs:(%si)
-
-  #
-  # Transition to 16 bit protected mode
-  #
-  movl    %cr0, %eax                 # Get control register 0
-  orl     $0x00000003, %eax          # Set PE bit (bit #0) & MP bit (bit #1)
-  movl    %eax, %cr0                 # Activate protected mode
-
-  movl    %cr4, %eax                 # Get control register 4
-  orl     $0x00000600, %eax          # Set OSFXSR bit (bit #9) & OSXMMEXCPT bit (bit #10)
-  movl    %eax, %cr4
-
-  #
-  # Now we're in 16 bit protected mode
-  # Set up the selectors for 32 bit protected mode entry
-  #
-  mov     $SYS_DATA_SEL, %ax
-  mov     %ax, %ds
-  mov     %ax, %es
-  mov     %ax, %fs
-  mov     %ax, %gs
-  mov     %ax, %ss
-
-  #
-  # Transition to Flat 32 bit protected mode
-  # The jump to a far pointer causes the transition to 32 bit mode
-  #
-  movl    $ProtectedModeEntryLinearAddress, %esi
-  jmp     *%cs:(%si)
-
-ASM_GLOBAL ASM_PFX(_TEXT_PROTECTED_MODE)
-ASM_PFX(_TEXT_PROTECTED_MODE):
-
-#----------------------------------------------------------------------------
-#
-# Procedure:    ProtectedModeEntryPoint
-#
-# Input:        None
-#
-# Output:       None
-#
-# Destroys:     Assume all registers
-#
-# Description:
-#
-# This function handles:
-#   Call two basic APIs from FSP binary
-#   Initializes stack with some early data (BIST, PEI entry, etc)
-#
-# Return:       None
-#
-#----------------------------------------------------------------------------
-
-ASM_GLOBAL ASM_PFX(ProtectedModeEntryPoint)
-ASM_PFX(ProtectedModeEntryPoint):
-
-  # Find the fsp info header
-  movl PcdGet32(PcdFsptBaseAddress), %edi
-
-  movl FVH_SIGINATURE_OFFSET(%edi), %eax
-  cmp  $FVH_SIGINATURE_VALID_VALUE, %eax
-  jnz  FspHeaderNotFound
-
-  xorl %eax, %eax
-  movw FVH_EXTHEADER_OFFSET_OFFSET(%edi), %ax
-  cmp  $0x00, %ax
-  jnz  FspFvExtHeaderExist
-
-  xorl %eax, %eax
-  movw FVH_HEADER_LENGTH_OFFSET(%edi), %ax   # Bypass Fv Header
-  addl %eax, %edi
-  jmp  FspCheckFfsHeader
-
-FspFvExtHeaderExist:
-  addl %eax, %edi
-  movl FVH_EXTHEADER_SIZE_OFFSET(%edi), %eax  # Bypass Ext Fv Header
-  addl %eax, %edi
-
-  # Round up to 8 byte alignment
-  movl %edi, %eax
-  andb $0x07, %al
-  jz FspCheckFfsHeader
-
-  and  $0xFFFFFFF8, %edi
-  add  $0x08, %edi
-
-FspCheckFfsHeader:
-  # Check the ffs guid
-  movl (%edi), %eax
-  cmp  $FSP_HEADER_GUID_DWORD1, %eax
-  jnz  FspHeaderNotFound
-
-  movl 0x4(%edi), %eax
-  cmp  $FSP_HEADER_GUID_DWORD2, %eax
-  jnz  FspHeaderNotFound
-
-  movl 0x08(%edi), %eax
-  cmp  $FSP_HEADER_GUID_DWORD3, %eax
-  jnz  FspHeaderNotFound
-
-  movl 0x0c(%edi), %eax
-  cmp  $FSP_HEADER_GUID_DWORD4, %eax
-  jnz  FspHeaderNotFound
-
-  add  $FFS_HEADER_SIZE_VALUE, %edi        # Bypass the ffs header
-
-  # Check the section type as raw section
-  movb SECTION_HEADER_TYPE_OFFSET(%edi), %al
-  cmp  $0x19, %al
-  jnz  FspHeaderNotFound
-
-  addl $RAW_SECTION_HEADER_SIZE_VALUE, %edi  # Bypass the section header
-  jmp  FspHeaderFound
-
-FspHeaderNotFound:
-  jmp  .
-
-FspHeaderFound:
-  # Get the fsp TempRamInit Api address
-  movl FSP_HEADER_IMAGEBASE_OFFSET(%edi), %eax
-  addl FSP_HEADER_TEMPRAMINIT_OFFSET(%edi), %eax
-
-  # Setup the hardcode stack
-  movl $TempRamInitStack, %esp
-
-  # Call the fsp TempRamInit Api
-  jmp  *%eax
-
-TempRamInitDone:
-  cmp  $0x8000000E, %eax   #Check if EFI_NOT_FOUND returned. Error code for Microcode Update not found.
-  je   CallSecFspInit      #If microcode not found, don't hang, but continue.
-
-  cmp  $0x0, %eax
-  jnz  FspApiFailed
-
-  #   ECX: start of range
-  #   EDX: end of range
-CallSecFspInit:
-  subl    PcdGet32 (PcdFspTemporaryRamSize), %edx # TemporaryRam for FSP
-  xorl    %eax, %eax
-  movl    %edx, %esp
-
-  # Align the stack at DWORD
-  addl  $3, %esp
-  andl  $0xFFFFFFFC, %esp
-
-  pushl   %edx
-  pushl   %ecx
-  pushl   %eax # zero - no hob list yet
-  call    ASM_PFX(CallPeiCoreEntryPoint)
-
-FspApiFailed:
-  jmp .
-
-.align 0x10
-TempRamInitStack:
-    .long  TempRamInitDone
-    .long  FsptUpdDataPtr
-
-#
-# ROM-based Global-Descriptor Table for the Tiano PEI Phase -# -.align 0x10
-
-#
-# GDT[0]: 0x00: Null entry, never used.
-#
-.equ NULL_SEL,             . - GdtBase    # Selector [0]
-GdtBase:
-BootGdtTable: 
-    .long  0
-    .long  0
-
-#
-# Linear data segment descriptor
-#
-.equ LINEAR_SEL,           . - GdtBase     # Selector [0x8]
-    .word  0xFFFF                          # limit 0xFFFFF
-    .word  0                               # base 0
-    .byte  0
-    .byte  0x92                            # present, ring 0, data, expand-up, writable
-    .byte  0xCF                            # page-granular, 32-bit
-    .byte  0
-
-#
-# Linear code segment descriptor
-#
-.equ LINEAR_CODE_SEL,      . - GdtBase     # Selector [0x10]
-    .word  0xFFFF                          # limit 0xFFFFF
-    .word  0                               # base 0
-    .byte  0
-    .byte  0x9B                            # present, ring 0, data, expand-up, not-writable
-    .byte  0xCF                            # page-granular, 32-bit
-    .byte  0
-#
-# System data segment descriptor
-#
-.equ SYS_DATA_SEL,         . - GdtBase     # Selector [0x18]
-    .word  0xFFFF                          # limit 0xFFFFF
-    .word  0                               # base 0
-    .byte  0
-    .byte  0x93                            # present, ring 0, data, expand-up, not-writable
-    .byte  0xCF                            # page-granular, 32-bit
-    .byte  0
-
-#
-# System code segment descriptor
-#
-.equ SYS_CODE_SEL,         . - GdtBase     # Selector [0x20]
-    .word  0xFFFF                          # limit 0xFFFFF
-    .word  0                               # base 0
-    .byte  0
-    .byte  0x9A                            # present, ring 0, data, expand-up, writable
-    .byte  0xCF                            # page-granular, 32-bit
-    .byte  0
-#
-# Spare segment descriptor
-#
-.equ SYS16_CODE_SEL,       . - GdtBase     # Selector [0x28]
-    .word  0xFFFF                          # limit 0xFFFFF
-    .word  0                               # base 0
-    .byte  0x0E                            # Changed from F000 to E000.
-    .byte  0x9B                            # present, ring 0, code, expand-up, writable
-    .byte  0x00                            # byte-granular, 16-bit
-    .byte  0
-#
-# Spare segment descriptor
-#
-.equ SYS16_DATA_SEL,       . - GdtBase     # Selector [0x30]
-    .word  0xFFFF                          # limit 0xFFFF
-    .word  0                               # base 0
-    .byte  0
-    .byte  0x93                            # present, ring 0, data, expand-up, not-writable
-    .byte  0x00                            # byte-granular, 16-bit
-    .byte  0
-
-#
-# Spare segment descriptor
-#
-.equ SPARE5_SEL,           . - GdtBase     # Selector [0x38]
-    .word  0                               # limit 0
-    .word  0                               # base 0
-    .byte  0
-    .byte  0                               # present, ring 0, data, expand-up, writable
-    .byte  0                               # page-granular, 32-bit
-    .byte  0
-.equ GDT_SIZE,             . - BootGdtTable    # Size, in bytes
-
-#
-# GDT Descriptor
-#
-GdtDesc:                                # GDT descriptor
-    .word  GDT_SIZE - 1                    # GDT limit
-    .long  BootGdtTable                    # GDT base address
-
-ASM_PFX(ProtectedModeEntryLinearAddress):
-ProtectedModeEntryLinearOffset:
-  .long      ProtectedModeEntryPoint       # Offset of our 32 bit code
-  .word      LINEAR_CODE_SEL
diff --git a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/SecEntry.asm b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/SecEntry.nasm
similarity index 69%
rename from Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/SecEntry.asm
rename to Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/SecEntry.nasm
index 7b82cba..7f6d771 100644
--- a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/SecEntry.asm
+++ b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlat
+++ formSecLib/Ia32/SecEntry.nasm
@@ -1,34 +1,28 @@
-;; @file
-; This is the code that goes from real-mode to protected mode.
-; It consumes the reset vector, calls TempRamInit API from FSP binary.
+;----------------------------------------------------------------------
+--------
 ;
-; Copyright (c) 2017, 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 that accompanies this distribution.
-; The full text of the license may be found at -; http://opensource.org/licenses/bsd-license.php.
+; Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> ; 
+SPDX-License-Identifier: BSD-2-Clause-Patent ; Module Name:
 ;
-; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+;  SecEntry.nasm
 ;
-;;
+; Abstract:
+;
+;  This is the code that goes from real-mode to protected mode.
+;  It consumes the reset vector, calls TempRamInit API from FSP binary.
+;
+;----------------------------------------------------------------------
+--------
 
 #include "Fsp.h"
 
-.686p
-.xmm
-.model small, c
-
-EXTRN   CallPeiCoreEntryPoint:NEAR
-EXTRN   BoardBeforeTempRamInit:NEAR
-EXTRN   FsptUpdDataPtr:FAR
+SECTION .text
 
+extern   ASM_PFX(CallPeiCoreEntryPoint)
+extern   ASM_PFX(FsptUpdDataPtr)
+extern   ASM_PFX(BoardBeforeTempRamInit)
 ; Pcds
-EXTRN   PcdGet32 (PcdFsptBaseAddress):DWORD
-EXTRN   PcdGet32(PcdFspTemporaryRamSize):DWORD
-
-_TEXT_REALMODE      SEGMENT PARA PUBLIC USE16 'CODE'
-                    ASSUME  CS:_TEXT_REALMODE, DS:_TEXT_REALMODE
+extern   ASM_PFX(PcdGet32 (PcdFspTemporaryRamSize))
+extern   ASM_PFX(PcdGet32 (PcdFsptBaseAddress))
 
 ;----------------------------------------------------------------------------
 ;
@@ -59,8 +53,10 @@ _TEXT_REALMODE      SEGMENT PARA PUBLIC USE16 'CODE'
 ;
 ;----------------------------------------------------------------------------
 
+BITS 16
 align 4
-_ModuleEntryPoint PROC NEAR C PUBLIC
+global ASM_PFX(_ModuleEntryPoint)
+ASM_PFX(_ModuleEntryPoint):
   fninit                                ; clear any pending Floating point exceptions
   ;
   ; Store the BIST value in mm0
@@ -76,6 +72,7 @@ _ModuleEntryPoint PROC NEAR C PUBLIC
   cmp al, 04h
   jnz NotWarmStart
 
+
   ;
   ; @note Issue warm reset, since if CPU only reset is issued not all MSRs are restored to their defaults
   ;
@@ -84,7 +81,6 @@ _ModuleEntryPoint PROC NEAR C PUBLIC
   out dx, al
 
 NotWarmStart:
-
   ;
   ; Save time-stamp counter value
   ; rdtsc load 64bit time-stamp counter to EDX:EAX @@ -96,9 +92,9 @@ NotWarmStart:
   ;
   ; Load the GDT table in GdtDesc
   ;
-  mov     esi,  OFFSET GdtDesc
+  mov     esi,  GdtDesc
   DB      66h
-  lgdt    fword ptr cs:[si]
+  lgdt    [cs:si]
 
   ;
   ; Transition to 16 bit protected mode @@ -126,14 +122,8 @@ NotWarmStart:
   ; Transition to Flat 32 bit protected mode
   ; The jump to a far pointer causes the transition to 32 bit mode
   ;
-  mov esi, offset ProtectedModeEntryLinearAddress
-  jmp     fword ptr cs:[si]
-
-_ModuleEntryPoint   ENDP
-_TEXT_REALMODE      ENDS
-
-_TEXT_PROTECTED_MODE      SEGMENT PARA PUBLIC USE32 'CODE'
-                          ASSUME  CS:_TEXT_PROTECTED_MODE, DS:_TEXT_PROTECTED_MODE
+  mov esi, ProtectedModeEntryLinearAddress
+  jmp   dword far  [cs:si]
 
 ;----------------------------------------------------------------------------
 ;
@@ -155,69 +145,69 @@ _TEXT_PROTECTED_MODE      SEGMENT PARA PUBLIC USE32 'CODE'
 ;
 ;----------------------------------------------------------------------------
 
+BITS 32
 align 4
-ProtectedModeEntryPoint PROC NEAR PUBLIC
-
-        ;
-        ; Early board hooks
-        ;
-        mov     esp, BoardBeforeTempRamInitRet
-        jmp     BoardBeforeTempRamInit
+ProtectedModeEntryPoint:
+  ;
+  ; Early board hooks
+  ;
+  mov     esp, BoardBeforeTempRamInitRet
+  jmp     ASM_PFX(BoardBeforeTempRamInit)
 
 BoardBeforeTempRamInitRet:
 
   ; Find the fsp info header
-  mov  edi, PcdGet32 (PcdFsptBaseAddress)
+  mov  edi, [ASM_PFX(PcdGet32 (PcdFsptBaseAddress))]
 
-  mov  eax, dword ptr [edi + FVH_SIGINATURE_OFFSET]
+  mov  eax, dword [edi + FVH_SIGINATURE_OFFSET]
   cmp  eax, FVH_SIGINATURE_VALID_VALUE
   jnz  FspHeaderNotFound
 
   xor  eax, eax
-  mov  ax, word ptr [edi + FVH_EXTHEADER_OFFSET_OFFSET]
+  mov  ax, word [edi + FVH_EXTHEADER_OFFSET_OFFSET]
   cmp  ax, 0
   jnz  FspFvExtHeaderExist
 
   xor  eax, eax
-  mov  ax, word ptr [edi + FVH_HEADER_LENGTH_OFFSET]   ; Bypass Fv Header
+  mov  ax, word [edi + FVH_HEADER_LENGTH_OFFSET]   ; Bypass Fv Header
   add  edi, eax
   jmp  FspCheckFfsHeader
 
 FspFvExtHeaderExist:
   add  edi, eax
-  mov  eax, dword ptr [edi + FVH_EXTHEADER_SIZE_OFFSET]  ; Bypass Ext Fv Header
+  mov  eax, dword [edi + FVH_EXTHEADER_SIZE_OFFSET]  ; Bypass Ext Fv 
+ Header
   add  edi, eax
 
   ; Round up to 8 byte alignment
   mov  eax, edi
   and  al,  07h
-  jz FspCheckFfsHeader
+  jz   FspCheckFfsHeader
 
   and  edi, 0FFFFFFF8h
   add  edi, 08h
 
 FspCheckFfsHeader:
   ; Check the ffs guid
-  mov  eax, dword ptr [edi]
+  mov  eax, dword [edi]
   cmp  eax, FSP_HEADER_GUID_DWORD1
-  jnz FspHeaderNotFound
+  jnz  FspHeaderNotFound
 
-  mov  eax, dword ptr [edi + 4]
+  mov  eax, dword [edi + 4]
   cmp  eax, FSP_HEADER_GUID_DWORD2
-  jnz FspHeaderNotFound
+  jnz  FspHeaderNotFound
 
-  mov  eax, dword ptr [edi + 8]
+  mov  eax, dword [edi + 8]
   cmp  eax, FSP_HEADER_GUID_DWORD3
-  jnz FspHeaderNotFound
+  jnz  FspHeaderNotFound
 
-  mov  eax, dword ptr [edi + 0Ch]
+  mov  eax, dword [edi + 0Ch]
   cmp  eax, FSP_HEADER_GUID_DWORD4
-  jnz FspHeaderNotFound
+  jnz  FspHeaderNotFound
 
   add  edi, FFS_HEADER_SIZE_VALUE       ; Bypass the ffs header
 
   ; Check the section type as raw section
-  mov  al, byte ptr [edi + SECTION_HEADER_TYPE_OFFSET]
+  mov  al, byte [edi + SECTION_HEADER_TYPE_OFFSET]
   cmp  al, 019h
   jnz FspHeaderNotFound
 
@@ -229,11 +219,11 @@ FspHeaderNotFound:
 
 FspHeaderFound:
   ; Get the fsp TempRamInit Api address
-  mov eax, dword ptr [edi + FSP_HEADER_IMAGEBASE_OFFSET]
-  add eax, dword ptr [edi + FSP_HEADER_TEMPRAMINIT_OFFSET]
+  mov eax, dword [edi + FSP_HEADER_IMAGEBASE_OFFSET]  add eax, dword 
+ [edi + FSP_HEADER_TEMPRAMINIT_OFFSET]
 
   ; Setup the hardcode stack
-  mov esp, OFFSET TempRamInitStack
+  mov esp, TempRamInitStack
 
   ; Call the fsp TempRamInit Api
   jmp eax
@@ -248,7 +238,7 @@ TempRamInitDone:
   ;   ECX: start of range
   ;   EDX: end of range
 CallSecFspInit:
-  sub     edx, PcdGet32 (PcdFspTemporaryRamSize) ; TemporaryRam for FSP
+  sub     edx, [ASM_PFX(PcdGet32 (PcdFspTemporaryRamSize))] ; TemporaryRam for FSP
   xor     eax, eax
   mov     esp, edx
 
@@ -259,30 +249,29 @@ CallSecFspInit:
   push    edx
   push    ecx
   push    eax ; zero - no hob list yet
-  call    CallPeiCoreEntryPoint
+  call    ASM_PFX(CallPeiCoreEntryPoint)
 
 FspApiFailed:
   jmp $
 
 align 10h
 TempRamInitStack:
-    DD  OFFSET TempRamInitDone
-    DD  OFFSET FsptUpdDataPtr ; TempRamInitParams
-
-ProtectedModeEntryPoint ENDP
+    DD  TempRamInitDone
+    DD  ASM_PFX(FsptUpdDataPtr); TempRamInitParams
 
 ;
 ; ROM-based Global-Descriptor Table for the Tiano PEI Phase  ;  align 16 -PUBLIC  BootGdtTable
+global  ASM_PFX(BootGdtTable)
 
 ;
 ; GDT[0]: 0x00: Null entry, never used.
 ;
 NULL_SEL            EQU $ - GDT_BASE    ; Selector [0]
 GDT_BASE:
-BootGdtTable        DD  0
+ASM_PFX(BootGdtTable):
+                    DD  0
                     DD  0
 ;
 ; Linear data segment descriptor
@@ -356,20 +345,17 @@ SPARE5_SEL          EQU $ - GDT_BASE    ; Selector [0x38]
     DB  0                               ; present, ring 0, data, expand-up, writable
     DB  0                               ; page-granular, 32-bit
     DB  0
-GDT_SIZE            EQU $ - BootGdtTable    ; Size, in bytes
+GDT_SIZE            EQU $ - GDT_BASE    ; Size, in bytes
 
 ;
 ; GDT Descriptor
 ;
 GdtDesc:                                ; GDT descriptor
     DW  GDT_SIZE - 1                    ; GDT limit
-    DD  OFFSET BootGdtTable             ; GDT base address
+    DD  GDT_BASE                        ; GDT base address
 
 
-ProtectedModeEntryLinearAddress   LABEL   FWORD
-ProtectedModeEntryLinearOffset    LABEL   DWORD
-  DD      OFFSET ProtectedModeEntryPoint  ; Offset of our 32 bit code
+ProtectedModeEntryLinearAddress:
+ProtectedModeEntryLinear:
+  DD      ProtectedModeEntryPoint  ; Offset of our 32 bit code
   DW      LINEAR_CODE_SEL
-
-_TEXT_PROTECTED_MODE    ENDS
-END
diff --git a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/Stack.S b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/Stack.S
deleted file mode 100644
index e0eb80a..0000000
--- a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/Stack.S
+++ /dev/null
@@ -1,73 +0,0 @@
-## @file
-# Switch the stack from temporary memory to permenent memory.
-#
-# Copyright (c) 2017, 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 that 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.
-#
-##
-
-#------------------------------------------------------------------------------
-# VOID
-# EFIAPI
-# SecSwitchStack (
-#   UINT32   TemporaryMemoryBase,
-#   UINT32   PermanentMemoryBase
-#   )
-#------------------------------------------------------------------------------
-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 memory
-    movl  %edx, 16(%eax)
-    movl  %eax, %esp            # From now, esp is pointed to permanent memory
-
-    #
-    # Fixup the ebp point to permanent memory
-    #
-    movl  %ebp, %eax
-    subl  %ebx, %eax
-    addl  %ecx, %eax
-    movl  %eax, %ebp            # From now, ebp is pointed to permanent memory
-
-    popl  %edx
-    popl  %ecx
-    popl  %ebx
-    popl  %eax
-    ret
-
diff --git a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/Stack.asm b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/Stack.nasm
similarity index 50%
rename from Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/Stack.asm
rename to Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/Stack.nasm
index 27ae218..635699c 100644
--- a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/Ia32/Stack.asm
+++ b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlat
+++ formSecLib/Ia32/Stack.nasm
@@ -1,20 +1,14 @@
-;; @file
-; Switch the stack from temporary memory to permenent memory.
+;----------------------------------------------------------------------
+--------
 ;
-; Copyright (c) 2017, 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 that accompanies this distribution.
-; The full text of the license may be found at -; http://opensource.org/licenses/bsd-license.php.
+; Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> ; 
+SPDX-License-Identifier: BSD-2-Clause-Patent ; Abstract:
 ;
-; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+;   Switch the stack from temporary memory to permenent memory.
 ;
-;;
+;----------------------------------------------------------------------
+--------
 
-    .586p
-    .model  flat,C
-    .code
+    SECTION .text
 
 ;------------------------------------------------------------------------------
 ; VOID
@@ -24,7 +18,8 @@
 ;   UINT32   PermanentMemoryBase
 ;   );
 ;------------------------------------------------------------------------------
-SecSwitchStack   PROC
+global ASM_PFX(SecSwitchStack)
+ASM_PFX(SecSwitchStack):
     ;
     ; Save three register: eax, ebx, ecx
     ;
@@ -49,16 +44,16 @@ SecSwitchStack   PROC
     mov   eax, esp
     sub   eax, ebx
     add   eax, ecx
-    mov   edx, dword ptr [esp]         ; copy pushed register's value to permanent memory
-    mov   dword ptr [eax], edx
-    mov   edx, dword ptr [esp + 4]
-    mov   dword ptr [eax + 4], edx
-    mov   edx, dword ptr [esp + 8]
-    mov   dword ptr [eax + 8], edx
-    mov   edx, dword ptr [esp + 12]
-    mov   dword ptr [eax + 12], edx
-    mov   edx, dword ptr [esp + 16]    ; Update this function's return address into permanent memory
-    mov   dword ptr [eax + 16], edx
+    mov   edx, dword [esp]         ; copy pushed register's value to permanent memory
+    mov   dword [eax], edx
+    mov   edx, dword [esp + 4]
+    mov   dword [eax + 4], edx
+    mov   edx, dword [esp + 8]
+    mov   dword [eax + 8], edx
+    mov   edx, dword [esp + 12]
+    mov   dword [eax + 12], edx
+    mov   edx, dword [esp + 16]    ; Update this function's return address into permanent memory
+    mov   dword [eax + 16], edx
     mov   esp, eax                     ; From now, esp is pointed to permanent memory
 
     ;
@@ -74,6 +69,4 @@ SecSwitchStack   PROC
     pop   ebx
     pop   eax
     ret
-SecSwitchStack   ENDP
 
-    END
diff --git a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/SecFspWrapperPlatformSecLib.inf b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/SecFspWrapperPlatformSecLib.inf
index 9c13357..5309d97 100644
--- a/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlatformSecLib/SecFspWrapperPlatformSecLib.inf
+++ b/Platform/Intel/MinPlatformPkg/FspWrapper/Library/SecFspWrapperPlat
+++ formSecLib/SecFspWrapperPlatformSecLib.inf
@@ -1,15 +1,10 @@
 ## @file
 #  Provide FSP wrapper platform sec related function.
 #
-# Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
+#  Copyright (c) 2017 - 2018, 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
+#  SPDX-License-Identifier: BSD-2-Clause-Patent
 #
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #
 ##
 
@@ -48,13 +43,10 @@
   PlatformInit.c
 
 [Sources.IA32]
-  Ia32/SecEntry.asm
-  Ia32/PeiCoreEntry.asm
-  Ia32/Stack.asm
+  Ia32/SecEntry.nasm
+  Ia32/PeiCoreEntry.nasm
+  Ia32/Stack.nasm
   Ia32/Fsp.h
-  Ia32/SecEntry.S
-  Ia32/PeiCoreEntry.S
-  Ia32/Stack.S
 
 ################################################################################
 #
diff --git a/Platform/Intel/MinPlatformPkg/Include/Fdf/RuleInclude.fdf b/Platform/Intel/MinPlatformPkg/Include/Fdf/RuleInclude.fdf
index 1b20442..90a4b27 100644
--- a/Platform/Intel/MinPlatformPkg/Include/Fdf/RuleInclude.fdf
+++ b/Platform/Intel/MinPlatformPkg/Include/Fdf/RuleInclude.fdf
@@ -1,15 +1,9 @@
 ## @file
 #  FDF file of Platform.
 #
-# Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2017 - 2019, 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.
+#    SPDX-License-Identifier: BSD-2-Clause-Patent
 #
 ##
 
@@ -51,6 +45,15 @@
      VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
   }
 
+
+[Rule.Common.PEIM]
+  FILE PEIM = $(NAMED_GUID)               {
+     PEI_DEPEX PEI_DEPEX Optional        $(INF_OUTPUT)/$(MODULE_NAME).depex
+     TE        TE                        $(INF_OUTPUT)/$(MODULE_NAME).efi
+     UI        STRING="$(MODULE_NAME)" Optional
+     VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
+}
+
 [Rule.Common.PEIM.BINARY]
   FILE PEIM = $(NAMED_GUID) {
     PEI_DEPEX PEI_DEPEX Optional      |.depex
diff --git a/Platform/Intel/MinPlatformPkg/Tools/Fsp/RebaseAndPatchFspBinBaseAddress.py b/Platform/Intel/MinPlatformPkg/Tools/Fsp/RebaseAndPatchFspBinBaseAddress.py
index 496b977..167a0e0 100644
--- a/Platform/Intel/MinPlatformPkg/Tools/Fsp/RebaseAndPatchFspBinBaseAddress.py
+++ b/Platform/Intel/MinPlatformPkg/Tools/Fsp/RebaseAndPatchFspBinBaseAd
+++ dress.py
@@ -76,7 +76,7 @@ file.close()
 pythontool = 'python'
 if 'PYTHON_HOME' in os.environ:
     pythontool = os.environ['PYTHON_HOME'] + os.sep + 'python'
-Process = subprocess.Popen(pythontool + " " + splitFspBinPath + " info -f" + fspBinFilePath, stdout=subprocess.PIPE)
+Process = subprocess.Popen([pythontool, splitFspBinPath, 
+"info","-f",fspBinFilePath], stdout=subprocess.PIPE)
 Output = Process.communicate()[0]
 FsptInfo = Output.rsplit("FSP_M", 1);
 for line in FsptInfo[1].split("\n"):
diff --git a/Platform/Intel/MinPlatformPkg/Tools/PatchFv/PatchBinFv.py b/Platform/Intel/MinPlatformPkg/Tools/PatchFv/PatchBinFv.py
index e1facd1..b98c951 100644
--- a/Platform/Intel/MinPlatformPkg/Tools/PatchFv/PatchBinFv.py
+++ b/Platform/Intel/MinPlatformPkg/Tools/PatchFv/PatchBinFv.py
@@ -1,13 +1,7 @@
 ## @ PatchBinFv.py
 #
-# Copyright (c) 2017, 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 that 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.
+# Copyright (c) 2017 - 2019, Intel Corporation. All rights 
+reserved.<BR> # SPDX-License-Identifier: BSD-2-Clause-Patent
 #
 ##
 
@@ -113,7 +107,7 @@ class FileChecker:
         return
 
     def ProcessFvInf(self, fvName):
-        sourceFileName = os.path.join(self.sourceRoot,fvName+"\\"+self.target+"\\"+fvName+".inf")
+        sourceFileName = 
+ os.path.join(self.sourceRoot,fvName,self.target,fvName+".inf")
         print "\nprocessing - " + sourceFileName
         fileGuid = self.GetInfFileGuid (sourceFileName)
         print "FV NAME GUID - " + fileGuid @@ -143,7 +137,7 @@ class FileChecker:
         self.PrintPcdList(self.InfPcdList)
 
     def PatchFv(self, fvName):
-        sourceFileName = os.path.join(self.sourceRoot,fvName+"\\"+self.target+"\\"+fvName+".fv")
+        sourceFileName = 
+ os.path.join(self.sourceRoot,fvName,self.target,fvName+".Fv")
         print "patching - " + sourceFileName
 
         try :
@@ -167,7 +161,7 @@ class FileChecker:
                     print "  [" + hex(offset) + "] " + binascii.hexlify(data[offset:offset+2]) + " <= " + binascii.hexlify(h)
                     data[offset:offset+2] = h
                 elif (cmp (pcd[4], "UINT32") == 0):
-                    l = struct.pack("L", int(pcd[3],16))
+                    l = struct.pack("I", int(pcd[3],16))
                     print "  [" + hex(offset) + "] " + binascii.hexlify(data[offset:offset+4]) + " <= " + binascii.hexlify(l)
                     data[offset:offset+4] = l
                 elif (cmp (pcd[4], "UINT64") == 0):
diff --git a/Platform/Intel/MinPlatformPkg/Tools/PatchFv/RebaseBinFv.py b/Platform/Intel/MinPlatformPkg/Tools/PatchFv/RebaseBinFv.py
index 4d194b3..149630e 100644
--- a/Platform/Intel/MinPlatformPkg/Tools/PatchFv/RebaseBinFv.py
+++ b/Platform/Intel/MinPlatformPkg/Tools/PatchFv/RebaseBinFv.py
@@ -1,15 +1,8 @@
 ## @ PatchBinFv.py
 #
-# Copyright (c) 2017, 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 that accompanies this distribution.
-# The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php.
+# Copyright (c) 2017 - 2019, Intel Corporation. All rights 
+reserved.<BR> # SPDX-License-Identifier: BSD-2-Clause-Patent
 #
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-##
 
 import os
 import re
@@ -547,7 +540,7 @@ class FileChecker:
         print "PCD: " + pcd[0] + "|" + pcd[3] + " <== " + pcd[1] + "(" + pcd[2] + ")"
 
     def RebaseFv(self, fvName, rebasePcd):
-        sourceFileName = os.path.join(self.sourceRoot,fvName+"\\"+self.target+"\\"+fvName+".fv")
+        sourceFileName = 
+ os.path.join(self.sourceRoot,fvName,self.target,fvName+".Fv")
         print "rebasing(FV) - " + sourceFileName
 
         try :
@@ -623,7 +616,7 @@ class FileChecker:
             if not line:
                 break
 
-            newline = line[:-1]
+            newline = line[:-1].replace('\r','')
 
             if (cmp (newline, TargetPkg) == 0):
                 FoundPkg = True
@@ -651,7 +644,7 @@ class FileChecker:
     def GetOldFvBase (self, fvName, PcdName):
         ParseBase = False
         Value = ""
-        fileName = os.path.join(self.sourceRoot,fvName+"\\"+self.target+"\\"+fvName+".inf")
+        fileName = 
+ os.path.join(self.sourceRoot,fvName,self.target,fvName+".inf")
         try :
             file = open(fileName)
         except Exception:
@@ -663,7 +656,7 @@ class FileChecker:
                 if not line:
                     break
 
-                newline = line[:-1]
+                newline = line[:-1].replace('\r','')
 
                 if cmp (newline, "") == 0:
                     continue
@@ -687,7 +680,7 @@ class FileChecker:
         return Value
 
     def SetNewFvBase (self, fvName, PcdName, OldFvBase, NewFvBase):
-        fileName = os.path.join(self.sourceRoot,fvName+"\\"+self.target+"\\"+fvName+".inf")
+        fileName = 
+ os.path.join(self.sourceRoot,fvName,self.target,fvName+".inf")
         print "update - " + fileName
         try :
             file = open(fileName, "r")
@@ -704,7 +697,7 @@ class FileChecker:
                 if not line:
                     break
 
-                newline = line[:-1]
+                newline = line[:-1].strip()
 
                 if cmp (newline, "") == 0:
                     continue
diff --git a/Platform/Intel/build_bios.py b/Platform/Intel/build_bios.py index a4ea093..c0ab7c6 100644
--- a/Platform/Intel/build_bios.py
+++ b/Platform/Intel/build_bios.py
@@ -139,9 +139,14 @@ def pre_build(build_config, build_type="DEBUG", silent=False, toolchain=None):
         if os.environ.get("PYTHONPATH") is not None:
             config["PYTHON_HOME"] = os.environ.get("PYTHONPATH")
         else:
-            print("PYTHONPATH environment variable is not found")
+            print("PYTHON_HOME environment variable is not found")
             sys.exit(1)
 
+    if os.environ.get("PYTHON_HOME") is None or \
+       not os.path.exists(os.environ.get("PYTHON_HOME")):
+        print("PYTHON_HOME environment variable is not found")
+        sys.exit(1)
+
     # if python is installed, disable the binary base tools.
     # python is installed if this code is running :)
     if config.get("PYTHON_HOME") is not None:
@@ -151,18 +156,18 @@ def pre_build(build_config, build_type="DEBUG", silent=False, toolchain=None):
     # Run edk setup and  update config
     if os.name == 'nt':
         edk2_setup_cmd = [os.path.join(config["EFI_SOURCE"], "edksetup"),
-                        "Rebuild"]
+                          "Rebuild"]
 
         if config.get("EDK_SETUP_OPTION") and \
-        config["EDK_SETUP_OPTION"] != " ":
+           config["EDK_SETUP_OPTION"] != " ":
             edk2_setup_cmd.append(config["EDK_SETUP_OPTION"])
 
         _, _, result, return_code = execute_script(edk2_setup_cmd,
-                                                config,
-                                                collect_env=True,
-                                                shell=True)
+                                                   config,
+                                                   collect_env=True,
+                                                   shell=True)
         if return_code == 0 and result is not None and isinstance(result,
-                                                                dict):
+                                                                  dict):
             config.update(result)
 
     # nmake BaseTools source
@@ -355,7 +360,11 @@ def build(config):
         command.append("-D")
         command.append("MAX_SOCKET=" + config["MAX_SOCKET"])
 
-    _, _, _, exit_code = execute_script(command, config)
+    shell = True
+    if os.name == "posix":
+        shell = False
+
+    _, _, _, exit_code = execute_script(command, config, shell=shell)
     if exit_code != 0:
         build_failed(config)
 
--
2.7.4





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [edk2-devel] [edk2-platforms] [PATCH 3/5] KabylakeOpenBoardPkg: Added GCC5 build support
  2019-05-15 17:35 ` [edk2-platforms] [PATCH 3/5] KabylakeOpenBoardPkg: Added GCC5 build support Agyeman, Prince
@ 2019-05-18  0:55   ` Nate DeSimone
  2019-05-18  1:01   ` Kubacki, Michael A
  2019-05-21  2:22   ` Chiu, Chasel
  2 siblings, 0 replies; 18+ messages in thread
From: Nate DeSimone @ 2019-05-18  0:55 UTC (permalink / raw)
  To: devel@edk2.groups.io, Agyeman, Prince

1. These seem like ugly hacks: -Wno-unused -Wl,--allow-multiple-definition
My guess is there are a lot of painful changes you are avoiding here... so I'll allow it for now.

Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Agyeman, Prince
Sent: Wednesday, May 15, 2019 10:36 AM
To: devel@edk2.groups.io
Cc: Agyeman, Prince <prince.agyeman@intel.com>
Subject: [edk2-devel] [edk2-platforms] [PATCH 3/5] KabylakeOpenBoardPkg: Added GCC5 build support

From: Prince Agyeman <mailto:prince.agyeman@intel.com>

Fixed:
* Include file paths in dec
* Gcc build options

Gcc build was tested on Ubuntu 16.04.5 LTS with gcc version 5.4.0, nasm version 2.11.08

Signed-off-by: Prince Agyeman <mailto:prince.agyeman@intel.com>
---
 .../KabylakeRvp3/OpenBoardPkgBuildOption.dsc               | 12 ++++--------
 Platform/Intel/KabylakeOpenBoardPkg/OpenBoardPkg.dec       | 14 ++++----------
 2 files changed, 8 insertions(+), 18 deletions(-)

diff --git a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkgBuildOption.dsc b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkgBuildOption.dsc
index 318b057..19d81f7 100644
--- a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkgBuildOption.dsc
+++ b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkgBuild
+++ Option.dsc
@@ -1,15 +1,9 @@
 ## @file
 # platform build option configuration file.
 #
-# Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2017 - 2019, 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.
+#    SPDX-License-Identifier: BSD-2-Clause-Patent
 #
 ##
 
@@ -108,6 +102,7 @@ DEFINE DSC_PLTPKG_FEATURE_BUILD_OPTIONS = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(  # For IA32 Specific Build Flag  #
 GCC:   *_*_IA32_PP_FLAGS      = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
+GCC:   *_*_IA32_CC_FLAGS      = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) -D PI_SPECIFICATION_VERSION=0x00010015 -DASF_PEI -Wno-unused -Wl,--allow-multiple-definition
 MSFT:  *_*_IA32_ASM_FLAGS     = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
 MSFT:  *_*_IA32_CC_FLAGS      = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS) -D PI_SPECIFICATION_VERSION=0x00010015 -DASF_PEI
 MSFT:  *_*_IA32_VFRPP_FLAGS   = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS)
@@ -130,6 +125,7 @@ MSFT:  *_*_IA32_ASLCC_FLAGS   = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_D
 # For X64 Specific Build Flag
 #
 GCC:   *_*_X64_PP_FLAGS       = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
+GCC:   *_*_X64_CC_FLAGS       = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) -D PI_SPECIFICATION_VERSION=0x00010015 -Wno-unused -Wl,--allow-multiple-definition
 MSFT:  *_*_X64_ASM_FLAGS      = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
 MSFT:  *_*_X64_CC_FLAGS       = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS) -D PI_SPECIFICATION_VERSION=0x00010015
 MSFT:  *_*_X64_VFRPP_FLAGS    = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS)
diff --git a/Platform/Intel/KabylakeOpenBoardPkg/OpenBoardPkg.dec b/Platform/Intel/KabylakeOpenBoardPkg/OpenBoardPkg.dec
index d0fdb10..ddd8b40 100644
--- a/Platform/Intel/KabylakeOpenBoardPkg/OpenBoardPkg.dec
+++ b/Platform/Intel/KabylakeOpenBoardPkg/OpenBoardPkg.dec
@@ -5,15 +5,9 @@
 # INF files to generate AutoGen.c and AutoGen.h files  # for the build infrastructure.
 #
-# Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2017 - 2019, 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.
+#    SPDX-License-Identifier: BSD-2-Clause-Patent
 #
 ##
 
@@ -26,8 +20,8 @@ PACKAGE_GUID = 0A8BA6E8-C8AC-4AC1-87AC-52772FA6AE5E
 
 [Includes]
 Include
-KabylakeRvp3\Include
-Features\Tbt\Include
+KabylakeRvp3/Include
+Features/Tbt/Include
 
 [Guids]
 
--
2.7.4





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [edk2-devel] [edk2-platforms] [PATCH 2/5] KabylakeSiliconPkg: Casting functions to EFIAPI
  2019-05-15 17:35 ` [edk2-platforms] [PATCH 2/5] KabylakeSiliconPkg: Casting functions to EFIAPI Agyeman, Prince
  2019-05-18  0:37   ` [edk2-devel] " Kubacki, Michael A
@ 2019-05-18  0:55   ` Nate DeSimone
  2019-05-21  2:19   ` Chiu, Chasel
  2 siblings, 0 replies; 18+ messages in thread
From: Nate DeSimone @ 2019-05-18  0:55 UTC (permalink / raw)
  To: devel@edk2.groups.io, Agyeman, Prince
  Cc: Kubacki, Michael A, Kinney, Michael D, Gao, Liming, Sinha, Ankit

Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Agyeman, Prince
Sent: Wednesday, May 15, 2019 10:36 AM
To: devel@edk2.groups.io
Cc: Agyeman, Prince <prince.agyeman@intel.com>; Kubacki, Michael A <michael.a.kubacki@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>; Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Gao, Liming <liming.gao@intel.com>; Sinha, Ankit <ankit.sinha@intel.com>
Subject: [edk2-devel] [edk2-platforms] [PATCH 2/5] KabylakeSiliconPkg: Casting functions to EFIAPI

From: Prince Agyeman <prince.agyeman@intel.com>

This fixes the calling convension issues in gcc

Gcc build was tested on Ubuntu 16.04.5 LTS with gcc version 5.4.0, nasm version 2.11.08

Cc: Michael Kubacki <michael.a.kubacki@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Ankit Sinha <ankit.sinha@intel.com>

Signed-off-by: Prince Agyeman <prince.agyeman@intel.com>
---
 .../Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchInitSmm.h    | 11 +++--------
 .../Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchPcieSmm.c    | 11 +++--------
 .../KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmm.h     | 12 ++++--------
 .../KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmmCore.c | 12 ++++--------
 4 files changed, 14 insertions(+), 32 deletions(-)

diff --git a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchInitSmm.h b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchInitSmm.h
index 58ef567..666340e 100644
--- a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchInitSmm.h
+++ b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchInitSmm.h
@@ -1,14 +1,8 @@
 /** @file
   Header file for PCH Init SMM Handler
 
-Copyright (c) 2017, 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 that 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.
+Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 
@@ -211,6 +205,7 @@ PchPcieLinkEqHandlerFunction (
 
 **/
 VOID
+EFIAPI
 PchPcieIoTrapSmiCallback (
   IN     EFI_HANDLE                     DispatchHandle,
   IN     EFI_SMM_IO_TRAP_CONTEXT        *CallbackContext,
diff --git a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchPcieSmm.c b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchPcieSmm.c
index b4234f6..847fbfb 100644
--- a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchPcieSmm.c
+++ b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchPcieSmm.c
@@ -1,14 +1,8 @@
 /** @file
   PCH Pcie SMM Driver Entry
 
-Copyright (c) 2017, 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 that 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.
+Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 #include "PchInitSmm.h"
@@ -244,6 +238,7 @@ PchPciePmIoTrapSmiCallback (
 
 **/
 VOID
+EFIAPI
 PchPcieIoTrapSmiCallback (
   IN  EFI_HANDLE                            DispatchHandle,
   IN  EFI_SMM_IO_TRAP_CONTEXT                *CallbackContext,
diff --git a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmm.h b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmm.h
index 3eebdc1..a9f0664 100644
--- a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmm.h
+++ b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmm.h
@@ -1,14 +1,8 @@
 /** @file
   Prototypes and defines for the PCH SMM Dispatcher.
 
-Copyright (c) 2017, 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 that 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.
+Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 #ifndef PCH_SMM_H
@@ -516,6 +510,7 @@ typedef struct {
                                   registered and the SMI source has been enabled.
 **/
 EFI_STATUS
+EFIAPI
 PchSmmCoreRegister (
   IN  PCH_SMM_GENERIC_PROTOCOL                          *This,
   IN  EFI_SMM_HANDLER_ENTRY_POINT2                      DispatchFunction,
@@ -536,6 +531,7 @@ PchSmmCoreRegister (
   @retval EFI_INVALID_PARAMETER   Handle is invalid.
 **/
 EFI_STATUS
+EFIAPI
 PchSmmCoreUnRegister (
   IN  PCH_SMM_GENERIC_PROTOCOL                         *This,
   IN  EFI_HANDLE                                       *DispatchHandle
diff --git a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmmCore.c b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmmCore.c
index 77f0561..cb3bfba 100644
--- a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmmCore.c
+++ b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmmCo
+++ re.c
@@ -2,14 +2,8 @@
   This driver is responsible for the registration of child drivers
   and the abstraction of the PCH SMI sources.
 
-Copyright (c) 2017, 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 that 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.
+Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 #include "PchSmm.h"
@@ -331,6 +325,7 @@ SmiInputValueDuplicateCheck (
                                   registered and the SMI source has been enabled.
 **/
 EFI_STATUS
+EFIAPI
 PchSmmCoreRegister (
   IN  PCH_SMM_GENERIC_PROTOCOL                          *This,
   IN  EFI_SMM_HANDLER_ENTRY_POINT2                      DispatchFunction,
@@ -602,6 +597,7 @@ Error:
   @retval EFI_INVALID_PARAMETER   Handle is invalid.
 **/
 EFI_STATUS
+EFIAPI
 PchSmmCoreUnRegister (
   IN PCH_SMM_GENERIC_PROTOCOL                           *This,
   IN EFI_HANDLE                                         *DispatchHandle
--
2.7.4





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [edk2-devel] [edk2-platforms] [PATCH 4/5] ClevoOpenBoardPkg: Added GCC5 build support
  2019-05-15 17:35 ` [edk2-platforms] [PATCH 4/5] ClevoOpenBoardPkg: " Agyeman, Prince
@ 2019-05-18  0:56   ` Nate DeSimone
  2019-05-18  1:02   ` Kubacki, Michael A
  1 sibling, 0 replies; 18+ messages in thread
From: Nate DeSimone @ 2019-05-18  0:56 UTC (permalink / raw)
  To: devel@edk2.groups.io, Agyeman, Prince

Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Agyeman, Prince
Sent: Wednesday, May 15, 2019 10:36 AM
To: devel@edk2.groups.io
Cc: Agyeman, Prince <prince.agyeman@intel.com>
Subject: [edk2-devel] [edk2-platforms] [PATCH 4/5] ClevoOpenBoardPkg: Added GCC5 build support

From: Prince Agyeman <prince.agyeman@intel.com>

Fixes:
* include file paths
* gcc build options

Gcc build was tested on Ubuntu 16.04.5 LTS with gcc version 5.4.0, nasm version 2.11.08

Signed-off-by: Prince Agyeman <prince.agyeman@intel.com>
---
 Platform/Intel/ClevoOpenBoardPkg/N1xxWU/OpenBoardPkgBuildOption.dsc | 2 ++
 Platform/Intel/ClevoOpenBoardPkg/OpenBoardPkg.dec                   | 4 ++--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/Platform/Intel/ClevoOpenBoardPkg/N1xxWU/OpenBoardPkgBuildOption.dsc b/Platform/Intel/ClevoOpenBoardPkg/N1xxWU/OpenBoardPkgBuildOption.dsc
index 92c7571..8d91d90 100644
--- a/Platform/Intel/ClevoOpenBoardPkg/N1xxWU/OpenBoardPkgBuildOption.dsc
+++ b/Platform/Intel/ClevoOpenBoardPkg/N1xxWU/OpenBoardPkgBuildOption.ds
+++ c
@@ -108,6 +108,7 @@ DEFINE DSC_PLTPKG_FEATURE_BUILD_OPTIONS = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(  # For IA32 Specific Build Flag  #
 GCC:   *_*_IA32_PP_FLAGS      = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
+GCC:   *_*_IA32_CC_FLAGS       = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) -D PI_SPECIFICATION_VERSION=0x00010015 -Wno-unused -Wl,--allow-multiple-definition
 MSFT:  *_*_IA32_ASM_FLAGS     = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
 MSFT:  *_*_IA32_CC_FLAGS      = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS) -D PI_SPECIFICATION_VERSION=0x00010015 -DASF_PEI
 MSFT:  *_*_IA32_VFRPP_FLAGS   = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS)
@@ -130,6 +131,7 @@ MSFT:  *_*_IA32_ASLCC_FLAGS   = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_D
 # For X64 Specific Build Flag
 #
 GCC:   *_*_X64_PP_FLAGS       = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
+GCC:   *_*_X64_CC_FLAGS       = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) -D PI_SPECIFICATION_VERSION=0x00010015 -Wno-unused -Wl,--allow-multiple-definition
 MSFT:  *_*_X64_ASM_FLAGS      = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
 MSFT:  *_*_X64_CC_FLAGS       = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS) -D PI_SPECIFICATION_VERSION=0x00010015
 MSFT:  *_*_X64_VFRPP_FLAGS    = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS)
diff --git a/Platform/Intel/ClevoOpenBoardPkg/OpenBoardPkg.dec b/Platform/Intel/ClevoOpenBoardPkg/OpenBoardPkg.dec
index aa457e6..f1d29f7 100644
--- a/Platform/Intel/ClevoOpenBoardPkg/OpenBoardPkg.dec
+++ b/Platform/Intel/ClevoOpenBoardPkg/OpenBoardPkg.dec
@@ -24,8 +24,8 @@ PACKAGE_GUID      = D04CCA80-5F71-478D-9A26-72BC751D0106
 
 [Includes]
 Include
-N1xxWU\Include
-Features\Tbt\Include
+N1xxWU/Include
+Features/Tbt/Include
 
 [Guids]
 gBoardModuleTokenSpaceGuid            =  {0x72d1fff7, 0xa42a, 0x4219, {0xb9, 0x95, 0x5a, 0x67, 0x53, 0x6e, 0xa4, 0x2a}}
--
2.7.4





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [edk2-devel] [edk2-platforms] [PATCH 5/5] Intel/Readme.md: Updated readme with linux build instructions
  2019-05-15 17:35 ` [edk2-platforms] [PATCH 5/5] Intel/Readme.md: Updated readme with linux build instructions Agyeman, Prince
@ 2019-05-18  0:58   ` Nate DeSimone
  2019-05-18  1:19   ` Kubacki, Michael A
  1 sibling, 0 replies; 18+ messages in thread
From: Nate DeSimone @ 2019-05-18  0:58 UTC (permalink / raw)
  To: devel@edk2.groups.io, Agyeman, Prince

At some point, it would be good to test this on Ubuntu 18.04 as well.

Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Agyeman, Prince
Sent: Wednesday, May 15, 2019 10:36 AM
To: devel@edk2.groups.io
Cc: Agyeman, Prince <prince.agyeman@intel.com>
Subject: [edk2-devel] [edk2-platforms] [PATCH 5/5] Intel/Readme.md: Updated readme with linux build instructions

From: Prince Agyeman <prince.agyeman@intel.com>

Signed-off-by: Prince Agyeman <prince.agyeman@intel.com>
---
 Platform/Intel/Readme.md | 31 +++++++++++++++++++------------
 1 file changed, 19 insertions(+), 12 deletions(-)

diff --git a/Platform/Intel/Readme.md b/Platform/Intel/Readme.md index fbf7351..972a1b0 100644
--- a/Platform/Intel/Readme.md
+++ b/Platform/Intel/Readme.md
@@ -107,9 +107,13 @@ return back to the minimum platform caller.
 
 **Building with the python script**
 
-1. Open command window, go to the workspace directory, e.g. c:\Kabylake.
-2. Type "cd edk2-platforms\Platform\Intel -3. Type "python build_bios.py -p REPLACE_WITH_BOARD_NAME"
+1. Open command window, go to the workspace directory, e.g. c:\Kabylake 
+or ~/Kabylake in the case of a linux OS 2. If using a linux OS
+   * Type "cd edk2"
+   * Type "source edksetup.sh"
+   * Type "cd ../" to go back to the workspace directory 3. Type "cd 
+edk2-platforms/Platform/Intel 4. Type "python build_bios.py -p 
+REPLACE_WITH_BOARD_NAME"
 
 * build_bios.py arguments:
 
@@ -132,18 +136,19 @@ return back to the minimum platform caller.
   |                                                             |
 
 * For more information on build options
-  * ``Type "python build_bios.py -h"``
+  * Type "python build_bios.py -h"
 
 * Note
-  * ``Python 2.7.16 and Python 3.7.3 compatible``
-  * ``These python build scripts have been tested on Windows due to`` [cross-platform limitations](#Known-limitations)
+  * Python 2.7.16 and Python 3.7.3 compatible
+  * This python build script has been tested on Windows 10 and Ubuntu 
+ 16.04.5 LTS
+  * See [cross-platform limitations](#Known-limitations)
 
 * Configuration Files
-  * ``The edk2-platforms\Platform\Intel\build.cfg file contains the default settings used by build_bios.py``
-  * ``The default settings are under the DEFAULT_CONFIG section``
-  * ``Each board can have a settings file that will override the edk2-platforms\Platform\Intel\build.cfg settings``
-  * ``An example of a board specific settings:``
-    * ``edk2-platforms\Platform\Intel\KabylakeOpenBoardPkg\KabylakeRvp3\build_config.cfg``
+  * The edk2-platforms\Platform\Intel\build.cfg file contains the 
+ default settings used by build_bios.py
+  * The default settings are under the DEFAULT_CONFIG section
+  * Each board can have a settings file that will override the 
+ edk2-platforms\Platform\Intel\build.cfg settings
+  * An example of a board specific settings:
+    * 
+ edk2-platforms\Platform\Intel\KabylakeOpenBoardPkg\KabylakeRvp3\build_
+ config.cfg
 
 * Workspace view of the build scripts
   * <pre>
@@ -212,8 +217,10 @@ Users can also flash the UEFI firmware image to the highest area of the flash re
 
 ### **Known limitations**
 
-* All firmware projects can only build on Windows with the validated configuration below.
+* All firmware projects can build on Windows with the validated configuration below.
   * Cross-platform build support is work-in-progress.
+* KabylakeOpenBoardPkg and ClevoOpenBoardPkg can build on Ubuntu 
+16.04.5 LTS with gcc version 5.4.0 and nasm version 2.11.08 with the 
+build_bios.py script
 
 **KabylakeOpenBoardPkg**
 1. This firmware project has only been tested on the Intel KabylakeRvp3 board.
--
2.7.4





^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [edk2-devel] [edk2-platforms] [PATCH 3/5] KabylakeOpenBoardPkg: Added GCC5 build support
  2019-05-15 17:35 ` [edk2-platforms] [PATCH 3/5] KabylakeOpenBoardPkg: Added GCC5 build support Agyeman, Prince
  2019-05-18  0:55   ` [edk2-devel] " Nate DeSimone
@ 2019-05-18  1:01   ` Kubacki, Michael A
  2019-05-21  2:22   ` Chiu, Chasel
  2 siblings, 0 replies; 18+ messages in thread
From: Kubacki, Michael A @ 2019-05-18  1:01 UTC (permalink / raw)
  To: devel@edk2.groups.io, Agyeman, Prince

Reviewed-by: Michael Kubacki <michael.a.kubacki@intel.com>

> -----Original Message-----
> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> Agyeman, Prince
> Sent: Wednesday, May 15, 2019 10:36 AM
> To: devel@edk2.groups.io
> Cc: Agyeman, Prince <prince.agyeman@intel.com>
> Subject: [edk2-devel] [edk2-platforms] [PATCH 3/5] KabylakeOpenBoardPkg:
> Added GCC5 build support
> 
> From: Prince Agyeman <prince.agyeman@intel.com>
> 
> Fixed:
> * Include file paths in dec
> * Gcc build options
> 
> Gcc build was tested on Ubuntu 16.04.5 LTS with gcc version 5.4.0, nasm
> version 2.11.08
> 
> Signed-off-by: Prince Agyeman <prince.agyeman@intel.com>
> ---
>  .../KabylakeRvp3/OpenBoardPkgBuildOption.dsc               | 12 ++++--------
>  Platform/Intel/KabylakeOpenBoardPkg/OpenBoardPkg.dec       | 14 ++++----
> ------
>  2 files changed, 8 insertions(+), 18 deletions(-)
> 
> diff --git
> a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkgBuild
> Option.dsc
> b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkgBuild
> Option.dsc
> index 318b057..19d81f7 100644
> ---
> a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkgBuild
> Option.dsc
> +++
> b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkgBuild
> +++ Option.dsc
> @@ -1,15 +1,9 @@
>  ## @file
>  # platform build option configuration file.
>  #
> -# Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) 2017 - 2019, 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.
> +#    SPDX-License-Identifier: BSD-2-Clause-Patent
>  #
>  ##
> 
> @@ -108,6 +102,7 @@ DEFINE DSC_PLTPKG_FEATURE_BUILD_OPTIONS =
> $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(  # For IA32 Specific Build Flag
> #
>  GCC:   *_*_IA32_PP_FLAGS      = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
> +GCC:   *_*_IA32_CC_FLAGS      =
> $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) -D
> PI_SPECIFICATION_VERSION=0x00010015 -DASF_PEI -Wno-unused -Wl,--
> allow-multiple-definition
>  MSFT:  *_*_IA32_ASM_FLAGS     =
> $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
>  MSFT:  *_*_IA32_CC_FLAGS      =
> $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS)
> -D PI_SPECIFICATION_VERSION=0x00010015 -DASF_PEI
>  MSFT:  *_*_IA32_VFRPP_FLAGS   =
> $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS)
> @@ -130,6 +125,7 @@ MSFT:  *_*_IA32_ASLCC_FLAGS   =
> $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_D
>  # For X64 Specific Build Flag
>  #
>  GCC:   *_*_X64_PP_FLAGS       = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
> +GCC:   *_*_X64_CC_FLAGS       = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
> -D PI_SPECIFICATION_VERSION=0x00010015 -Wno-unused -Wl,--allow-
> multiple-definition
>  MSFT:  *_*_X64_ASM_FLAGS      =
> $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
>  MSFT:  *_*_X64_CC_FLAGS       = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
> $(OPTIMIZE_DISABLE_OPTIONS) -D
> PI_SPECIFICATION_VERSION=0x00010015
>  MSFT:  *_*_X64_VFRPP_FLAGS    =
> $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS)
> diff --git a/Platform/Intel/KabylakeOpenBoardPkg/OpenBoardPkg.dec
> b/Platform/Intel/KabylakeOpenBoardPkg/OpenBoardPkg.dec
> index d0fdb10..ddd8b40 100644
> --- a/Platform/Intel/KabylakeOpenBoardPkg/OpenBoardPkg.dec
> +++ b/Platform/Intel/KabylakeOpenBoardPkg/OpenBoardPkg.dec
> @@ -5,15 +5,9 @@
>  # INF files to generate AutoGen.c and AutoGen.h files  # for the build
> infrastructure.
>  #
> -# Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) 2017 - 2019, 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.
> +#    SPDX-License-Identifier: BSD-2-Clause-Patent
>  #
>  ##
> 
> @@ -26,8 +20,8 @@ PACKAGE_GUID = 0A8BA6E8-C8AC-4AC1-87AC-
> 52772FA6AE5E
> 
>  [Includes]
>  Include
> -KabylakeRvp3\Include
> -Features\Tbt\Include
> +KabylakeRvp3/Include
> +Features/Tbt/Include
> 
>  [Guids]
> 
> --
> 2.7.4
> 
> 
> 


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [edk2-devel] [edk2-platforms] [PATCH 4/5] ClevoOpenBoardPkg: Added GCC5 build support
  2019-05-15 17:35 ` [edk2-platforms] [PATCH 4/5] ClevoOpenBoardPkg: " Agyeman, Prince
  2019-05-18  0:56   ` [edk2-devel] " Nate DeSimone
@ 2019-05-18  1:02   ` Kubacki, Michael A
  1 sibling, 0 replies; 18+ messages in thread
From: Kubacki, Michael A @ 2019-05-18  1:02 UTC (permalink / raw)
  To: devel@edk2.groups.io, Agyeman, Prince

Reviewed-by: Michael Kubacki <michael.a.kubacki@intel.com>

> -----Original Message-----
> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> Agyeman, Prince
> Sent: Wednesday, May 15, 2019 10:36 AM
> To: devel@edk2.groups.io
> Cc: Agyeman, Prince <prince.agyeman@intel.com>
> Subject: [edk2-devel] [edk2-platforms] [PATCH 4/5] ClevoOpenBoardPkg:
> Added GCC5 build support
> 
> From: Prince Agyeman <prince.agyeman@intel.com>
> 
> Fixes:
> * include file paths
> * gcc build options
> 
> Gcc build was tested on Ubuntu 16.04.5 LTS with gcc version 5.4.0, nasm
> version 2.11.08
> 
> Signed-off-by: Prince Agyeman <prince.agyeman@intel.com>
> ---
> 
> Platform/Intel/ClevoOpenBoardPkg/N1xxWU/OpenBoardPkgBuildOption.ds
> c | 2 ++
>  Platform/Intel/ClevoOpenBoardPkg/OpenBoardPkg.dec                   | 4 ++--
>  2 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git
> a/Platform/Intel/ClevoOpenBoardPkg/N1xxWU/OpenBoardPkgBuildOption.
> dsc
> b/Platform/Intel/ClevoOpenBoardPkg/N1xxWU/OpenBoardPkgBuildOption.
> dsc
> index 92c7571..8d91d90 100644
> ---
> a/Platform/Intel/ClevoOpenBoardPkg/N1xxWU/OpenBoardPkgBuildOption.
> dsc
> +++
> b/Platform/Intel/ClevoOpenBoardPkg/N1xxWU/OpenBoardPkgBuildOption.
> ds
> +++ c
> @@ -108,6 +108,7 @@ DEFINE DSC_PLTPKG_FEATURE_BUILD_OPTIONS =
> $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(  # For IA32 Specific Build Flag
> #
>  GCC:   *_*_IA32_PP_FLAGS      = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
> +GCC:   *_*_IA32_CC_FLAGS       =
> $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) -D
> PI_SPECIFICATION_VERSION=0x00010015 -Wno-unused -Wl,--allow-
> multiple-definition
>  MSFT:  *_*_IA32_ASM_FLAGS     =
> $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
>  MSFT:  *_*_IA32_CC_FLAGS      =
> $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS)
> -D PI_SPECIFICATION_VERSION=0x00010015 -DASF_PEI
>  MSFT:  *_*_IA32_VFRPP_FLAGS   =
> $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS)
> @@ -130,6 +131,7 @@ MSFT:  *_*_IA32_ASLCC_FLAGS   =
> $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_D
>  # For X64 Specific Build Flag
>  #
>  GCC:   *_*_X64_PP_FLAGS       = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
> +GCC:   *_*_X64_CC_FLAGS       = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
> -D PI_SPECIFICATION_VERSION=0x00010015 -Wno-unused -Wl,--allow-
> multiple-definition
>  MSFT:  *_*_X64_ASM_FLAGS      =
> $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
>  MSFT:  *_*_X64_CC_FLAGS       = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
> $(OPTIMIZE_DISABLE_OPTIONS) -D
> PI_SPECIFICATION_VERSION=0x00010015
>  MSFT:  *_*_X64_VFRPP_FLAGS    =
> $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS)
> diff --git a/Platform/Intel/ClevoOpenBoardPkg/OpenBoardPkg.dec
> b/Platform/Intel/ClevoOpenBoardPkg/OpenBoardPkg.dec
> index aa457e6..f1d29f7 100644
> --- a/Platform/Intel/ClevoOpenBoardPkg/OpenBoardPkg.dec
> +++ b/Platform/Intel/ClevoOpenBoardPkg/OpenBoardPkg.dec
> @@ -24,8 +24,8 @@ PACKAGE_GUID      = D04CCA80-5F71-478D-9A26-
> 72BC751D0106
> 
>  [Includes]
>  Include
> -N1xxWU\Include
> -Features\Tbt\Include
> +N1xxWU/Include
> +Features/Tbt/Include
> 
>  [Guids]
>  gBoardModuleTokenSpaceGuid            =  {0x72d1fff7, 0xa42a, 0x4219,
> {0xb9, 0x95, 0x5a, 0x67, 0x53, 0x6e, 0xa4, 0x2a}}
> --
> 2.7.4
> 
> 
> 


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [edk2-devel] [edk2-platforms] [PATCH 5/5] Intel/Readme.md: Updated readme with linux build instructions
  2019-05-15 17:35 ` [edk2-platforms] [PATCH 5/5] Intel/Readme.md: Updated readme with linux build instructions Agyeman, Prince
  2019-05-18  0:58   ` [edk2-devel] " Nate DeSimone
@ 2019-05-18  1:19   ` Kubacki, Michael A
  1 sibling, 0 replies; 18+ messages in thread
From: Kubacki, Michael A @ 2019-05-18  1:19 UTC (permalink / raw)
  To: devel@edk2.groups.io, Agyeman, Prince

The Known Limitations section needs clean up now.

This text can be removed as a general statement:
"
 * All firmware projects can build on Windows with the validated configuration below.
    * Cross-platform build support is work-in-progress.
 * KabylakeOpenBoardPkg and ClevoOpenBoardPkg can build on Ubuntu 16.04.5 LTS with gcc version 5.4.0 and nasm version 2.11.08 with the build_bios.py script
 "

These are no longer generic limitations. I suggest deleting those bullets entirely.

The goal of this series was to add GCC5 build support so each board description should be
updated to include the tool chains and version tested to give board-specific limitations. For example, 
KabylakeOpenBoardPkg should no longer say " This firmware project build has only been tested 
using the Microsoft Visual Studio 2015 compiler." It should say:

* The Windows build was tested on Windows 10 with Visual Studio 2015
* The Linux build was tested on Ubuntu 16.04.5 LTS with GCC version 5.4.0
* The build was tested with NASM version 2.11.08

Please update this information for each board.

Thanks,
Michael

> -----Original Message-----
> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> Agyeman, Prince
> Sent: Wednesday, May 15, 2019 10:36 AM
> To: devel@edk2.groups.io
> Cc: Agyeman, Prince <prince.agyeman@intel.com>
> Subject: [edk2-devel] [edk2-platforms] [PATCH 5/5] Intel/Readme.md:
> Updated readme with linux build instructions
> 
> From: Prince Agyeman <prince.agyeman@intel.com>
> 
> Signed-off-by: Prince Agyeman <prince.agyeman@intel.com>
> ---
>  Platform/Intel/Readme.md | 31 +++++++++++++++++++------------
>  1 file changed, 19 insertions(+), 12 deletions(-)
> 
> diff --git a/Platform/Intel/Readme.md b/Platform/Intel/Readme.md index
> fbf7351..972a1b0 100644
> --- a/Platform/Intel/Readme.md
> +++ b/Platform/Intel/Readme.md
> @@ -107,9 +107,13 @@ return back to the minimum platform caller.
> 
>  **Building with the python script**
> 
> -1. Open command window, go to the workspace directory, e.g. c:\Kabylake.
> -2. Type "cd edk2-platforms\Platform\Intel -3. Type "python build_bios.py -p
> REPLACE_WITH_BOARD_NAME"
> +1. Open command window, go to the workspace directory, e.g. c:\Kabylake
> +or ~/Kabylake in the case of a linux OS 2. If using a linux OS
> +   * Type "cd edk2"
> +   * Type "source edksetup.sh"
> +   * Type "cd ../" to go back to the workspace directory 3. Type "cd
> +edk2-platforms/Platform/Intel 4. Type "python build_bios.py -p
> +REPLACE_WITH_BOARD_NAME"
> 
>  * build_bios.py arguments:
> 
> @@ -132,18 +136,19 @@ return back to the minimum platform caller.
>    |                                                             |
> 
>  * For more information on build options
> -  * ``Type "python build_bios.py -h"``
> +  * Type "python build_bios.py -h"
> 
>  * Note
> -  * ``Python 2.7.16 and Python 3.7.3 compatible``
> -  * ``These python build scripts have been tested on Windows due to``
> [cross-platform limitations](#Known-limitations)
> +  * Python 2.7.16 and Python 3.7.3 compatible
> +  * This python build script has been tested on Windows 10 and Ubuntu
> + 16.04.5 LTS
> +  * See [cross-platform limitations](#Known-limitations)
> 
>  * Configuration Files
> -  * ``The edk2-platforms\Platform\Intel\build.cfg file contains the default
> settings used by build_bios.py``
> -  * ``The default settings are under the DEFAULT_CONFIG section``
> -  * ``Each board can have a settings file that will override the edk2-
> platforms\Platform\Intel\build.cfg settings``
> -  * ``An example of a board specific settings:``
> -    * ``edk2-
> platforms\Platform\Intel\KabylakeOpenBoardPkg\KabylakeRvp3\build_confi
> g.cfg``
> +  * The edk2-platforms\Platform\Intel\build.cfg file contains the
> + default settings used by build_bios.py
> +  * The default settings are under the DEFAULT_CONFIG section
> +  * Each board can have a settings file that will override the
> + edk2-platforms\Platform\Intel\build.cfg settings
> +  * An example of a board specific settings:
> +    *
> + edk2-
> platforms\Platform\Intel\KabylakeOpenBoardPkg\KabylakeRvp3\build_
> + config.cfg
> 
>  * Workspace view of the build scripts
>    * <pre>
> @@ -212,8 +217,10 @@ Users can also flash the UEFI firmware image to
> the highest area of the flash re
> 
>  ### **Known limitations**
> 
> -* All firmware projects can only build on Windows with the validated
> configuration below.
> +* All firmware projects can build on Windows with the validated
> configuration below.
>    * Cross-platform build support is work-in-progress.
> +* KabylakeOpenBoardPkg and ClevoOpenBoardPkg can build on Ubuntu
> +16.04.5 LTS with gcc version 5.4.0 and nasm version 2.11.08 with the
> +build_bios.py script
> 
>  **KabylakeOpenBoardPkg**
>  1. This firmware project has only been tested on the Intel KabylakeRvp3
> board.
> --
> 2.7.4
> 
> 
> 


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [edk2-devel] [edk2-platforms] [PATCH 2/5] KabylakeSiliconPkg: Casting functions to EFIAPI
  2019-05-15 17:35 ` [edk2-platforms] [PATCH 2/5] KabylakeSiliconPkg: Casting functions to EFIAPI Agyeman, Prince
  2019-05-18  0:37   ` [edk2-devel] " Kubacki, Michael A
  2019-05-18  0:55   ` Nate DeSimone
@ 2019-05-21  2:19   ` Chiu, Chasel
  2 siblings, 0 replies; 18+ messages in thread
From: Chiu, Chasel @ 2019-05-21  2:19 UTC (permalink / raw)
  To: devel@edk2.groups.io, Agyeman, Prince
  Cc: Kubacki, Michael A, Kinney, Michael D, Desimone, Nathaniel L,
	Gao, Liming, Sinha, Ankit


Reviewed-by: Chasel Chiu <chasel.chiu@intel.com>

> -----Original Message-----
> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> Agyeman, Prince
> Sent: Thursday, May 16, 2019 1:36 AM
> To: devel@edk2.groups.io
> Cc: Agyeman, Prince <prince.agyeman@intel.com>; Kubacki, Michael A
> <michael.a.kubacki@intel.com>; Kinney, Michael D
> <michael.d.kinney@intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone@intel.com>; Gao, Liming <liming.gao@intel.com>; Sinha,
> Ankit <ankit.sinha@intel.com>
> Subject: [edk2-devel] [edk2-platforms] [PATCH 2/5] KabylakeSiliconPkg: Casting
> functions to EFIAPI
> 
> From: Prince Agyeman <prince.agyeman@intel.com>
> 
> This fixes the calling convension issues in gcc
> 
> Gcc build was tested on Ubuntu 16.04.5 LTS with gcc version 5.4.0, nasm version
> 2.11.08
> 
> Cc: Michael Kubacki <michael.a.kubacki@intel.com>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Ankit Sinha <ankit.sinha@intel.com>
> 
> Signed-off-by: Prince Agyeman <prince.agyeman@intel.com>
> ---
>  .../Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchInitSmm.h    | 11 +++--------
>  .../Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchPcieSmm.c    | 11
> +++--------
>  .../KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmm.h     | 12
> ++++--------
>  .../KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmmCore.c | 12
> ++++--------
>  4 files changed, 14 insertions(+), 32 deletions(-)
> 
> diff --git a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchInitSmm.h
> b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchInitSmm.h
> index 58ef567..666340e 100644
> --- a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchInitSmm.h
> +++ b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchInitSmm.h
> @@ -1,14 +1,8 @@
>  /** @file
>    Header file for PCH Init SMM Handler
> 
> -Copyright (c) 2017, 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 that 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.
> +Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>
> +SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>  **/
> 
> @@ -211,6 +205,7 @@ PchPcieLinkEqHandlerFunction (
> 
>  **/
>  VOID
> +EFIAPI
>  PchPcieIoTrapSmiCallback (
>    IN     EFI_HANDLE                     DispatchHandle,
>    IN     EFI_SMM_IO_TRAP_CONTEXT        *CallbackContext,
> diff --git a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchPcieSmm.c
> b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchPcieSmm.c
> index b4234f6..847fbfb 100644
> --- a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchPcieSmm.c
> +++ b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchInit/Smm/PchPcieSmm.c
> @@ -1,14 +1,8 @@
>  /** @file
>    PCH Pcie SMM Driver Entry
> 
> -Copyright (c) 2017, 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 that 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.
> +Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>
> +SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>  **/
>  #include "PchInitSmm.h"
> @@ -244,6 +238,7 @@ PchPciePmIoTrapSmiCallback (
> 
>  **/
>  VOID
> +EFIAPI
>  PchPcieIoTrapSmiCallback (
>    IN  EFI_HANDLE                            DispatchHandle,
>    IN  EFI_SMM_IO_TRAP_CONTEXT                *CallbackContext,
> diff --git
> a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmm.h
> b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmm.h
> index 3eebdc1..a9f0664 100644
> --- a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmm.h
> +++
> b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmm.h
> @@ -1,14 +1,8 @@
>  /** @file
>    Prototypes and defines for the PCH SMM Dispatcher.
> 
> -Copyright (c) 2017, 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 that 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.
> +Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>
> +SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>  **/
>  #ifndef PCH_SMM_H
> @@ -516,6 +510,7 @@ typedef struct {
>                                    registered and the SMI source has been enabled.
>  **/
>  EFI_STATUS
> +EFIAPI
>  PchSmmCoreRegister (
>    IN  PCH_SMM_GENERIC_PROTOCOL                          *This,
>    IN  EFI_SMM_HANDLER_ENTRY_POINT2                      DispatchFunction,
> @@ -536,6 +531,7 @@ PchSmmCoreRegister (
>    @retval EFI_INVALID_PARAMETER   Handle is invalid.
>  **/
>  EFI_STATUS
> +EFIAPI
>  PchSmmCoreUnRegister (
>    IN  PCH_SMM_GENERIC_PROTOCOL                         *This,
>    IN  EFI_HANDLE                                       *DispatchHandle
> diff --git
> a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmmCore.
> c
> b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmmCore.
> c
> index 77f0561..cb3bfba 100644
> ---
> a/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmmCore.
> c
> +++
> b/Silicon/Intel/KabylakeSiliconPkg/Pch/PchSmiDispatcher/Smm/PchSmmCo
> +++ re.c
> @@ -2,14 +2,8 @@
>    This driver is responsible for the registration of child drivers
>    and the abstraction of the PCH SMI sources.
> 
> -Copyright (c) 2017, 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 that 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.
> +Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>
> +SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>  **/
>  #include "PchSmm.h"
> @@ -331,6 +325,7 @@ SmiInputValueDuplicateCheck (
>                                    registered and the SMI source has been enabled.
>  **/
>  EFI_STATUS
> +EFIAPI
>  PchSmmCoreRegister (
>    IN  PCH_SMM_GENERIC_PROTOCOL                          *This,
>    IN  EFI_SMM_HANDLER_ENTRY_POINT2                      DispatchFunction,
> @@ -602,6 +597,7 @@ Error:
>    @retval EFI_INVALID_PARAMETER   Handle is invalid.
>  **/
>  EFI_STATUS
> +EFIAPI
>  PchSmmCoreUnRegister (
>    IN PCH_SMM_GENERIC_PROTOCOL                           *This,
>    IN EFI_HANDLE                                         *DispatchHandle
> --
> 2.7.4
> 
> 
> 


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [edk2-devel] [edk2-platforms] [PATCH 3/5] KabylakeOpenBoardPkg: Added GCC5 build support
  2019-05-15 17:35 ` [edk2-platforms] [PATCH 3/5] KabylakeOpenBoardPkg: Added GCC5 build support Agyeman, Prince
  2019-05-18  0:55   ` [edk2-devel] " Nate DeSimone
  2019-05-18  1:01   ` Kubacki, Michael A
@ 2019-05-21  2:22   ` Chiu, Chasel
  2 siblings, 0 replies; 18+ messages in thread
From: Chiu, Chasel @ 2019-05-21  2:22 UTC (permalink / raw)
  To: devel@edk2.groups.io, Agyeman, Prince


Reviewed-by: Chasel Chiu <chasel.chiu@intel.com>

> -----Original Message-----
> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> Agyeman, Prince
> Sent: Thursday, May 16, 2019 1:36 AM
> To: devel@edk2.groups.io
> Cc: Agyeman, Prince <prince.agyeman@intel.com>
> Subject: [edk2-devel] [edk2-platforms] [PATCH 3/5] KabylakeOpenBoardPkg:
> Added GCC5 build support
> 
> From: Prince Agyeman <prince.agyeman@intel.com>
> 
> Fixed:
> * Include file paths in dec
> * Gcc build options
> 
> Gcc build was tested on Ubuntu 16.04.5 LTS with gcc version 5.4.0, nasm version
> 2.11.08
> 
> Signed-off-by: Prince Agyeman <prince.agyeman@intel.com>
> ---
>  .../KabylakeRvp3/OpenBoardPkgBuildOption.dsc               | 12 ++++--------
>  Platform/Intel/KabylakeOpenBoardPkg/OpenBoardPkg.dec       | 14
> ++++----------
>  2 files changed, 8 insertions(+), 18 deletions(-)
> 
> diff --git
> a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkgBuildO
> ption.dsc
> b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkgBuild
> Option.dsc
> index 318b057..19d81f7 100644
> ---
> a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkgBuildO
> ption.dsc
> +++
> b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkgBuild
> +++ Option.dsc
> @@ -1,15 +1,9 @@
>  ## @file
>  # platform build option configuration file.
>  #
> -# Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) 2017 - 2019, 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.
> +#    SPDX-License-Identifier: BSD-2-Clause-Patent
>  #
>  ##
> 
> @@ -108,6 +102,7 @@ DEFINE DSC_PLTPKG_FEATURE_BUILD_OPTIONS =
> $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(  # For IA32 Specific Build Flag  #
>  GCC:   *_*_IA32_PP_FLAGS      = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
> +GCC:   *_*_IA32_CC_FLAGS      = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
> -D PI_SPECIFICATION_VERSION=0x00010015 -DASF_PEI -Wno-unused
> -Wl,--allow-multiple-definition
>  MSFT:  *_*_IA32_ASM_FLAGS     =
> $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
>  MSFT:  *_*_IA32_CC_FLAGS      = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
> $(OPTIMIZE_DISABLE_OPTIONS) -D PI_SPECIFICATION_VERSION=0x00010015
> -DASF_PEI
>  MSFT:  *_*_IA32_VFRPP_FLAGS   =
> $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS)
> @@ -130,6 +125,7 @@ MSFT:  *_*_IA32_ASLCC_FLAGS   =
> $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_D
>  # For X64 Specific Build Flag
>  #
>  GCC:   *_*_X64_PP_FLAGS       = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
> +GCC:   *_*_X64_CC_FLAGS       = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
> -D PI_SPECIFICATION_VERSION=0x00010015 -Wno-unused
> -Wl,--allow-multiple-definition
>  MSFT:  *_*_X64_ASM_FLAGS      =
> $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
>  MSFT:  *_*_X64_CC_FLAGS       = $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS)
> $(OPTIMIZE_DISABLE_OPTIONS) -D PI_SPECIFICATION_VERSION=0x00010015
>  MSFT:  *_*_X64_VFRPP_FLAGS    =
> $(DSC_PLTPKG_FEATURE_BUILD_OPTIONS) $(OPTIMIZE_DISABLE_OPTIONS)
> diff --git a/Platform/Intel/KabylakeOpenBoardPkg/OpenBoardPkg.dec
> b/Platform/Intel/KabylakeOpenBoardPkg/OpenBoardPkg.dec
> index d0fdb10..ddd8b40 100644
> --- a/Platform/Intel/KabylakeOpenBoardPkg/OpenBoardPkg.dec
> +++ b/Platform/Intel/KabylakeOpenBoardPkg/OpenBoardPkg.dec
> @@ -5,15 +5,9 @@
>  # INF files to generate AutoGen.c and AutoGen.h files  # for the build
> infrastructure.
>  #
> -# Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) 2017 - 2019, 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.
> +#    SPDX-License-Identifier: BSD-2-Clause-Patent
>  #
>  ##
> 
> @@ -26,8 +20,8 @@ PACKAGE_GUID =
> 0A8BA6E8-C8AC-4AC1-87AC-52772FA6AE5E
> 
>  [Includes]
>  Include
> -KabylakeRvp3\Include
> -Features\Tbt\Include
> +KabylakeRvp3/Include
> +Features/Tbt/Include
> 
>  [Guids]
> 
> --
> 2.7.4
> 
> 
> 


^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2019-05-21  2:22 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-15 17:35 [edk2-platforms] [PATCH 0/5] Added GCC5 build support Agyeman, Prince
2019-05-15 17:35 ` [edk2-platforms] [PATCH 1/5] MinPlatformPkg: " Agyeman, Prince
2019-05-18  0:42   ` [edk2-devel] " Kubacki, Michael A
2019-05-18  0:43   ` Nate DeSimone
2019-05-15 17:35 ` [edk2-platforms] [PATCH 2/5] KabylakeSiliconPkg: Casting functions to EFIAPI Agyeman, Prince
2019-05-18  0:37   ` [edk2-devel] " Kubacki, Michael A
2019-05-18  0:55   ` Nate DeSimone
2019-05-21  2:19   ` Chiu, Chasel
2019-05-15 17:35 ` [edk2-platforms] [PATCH 3/5] KabylakeOpenBoardPkg: Added GCC5 build support Agyeman, Prince
2019-05-18  0:55   ` [edk2-devel] " Nate DeSimone
2019-05-18  1:01   ` Kubacki, Michael A
2019-05-21  2:22   ` Chiu, Chasel
2019-05-15 17:35 ` [edk2-platforms] [PATCH 4/5] ClevoOpenBoardPkg: " Agyeman, Prince
2019-05-18  0:56   ` [edk2-devel] " Nate DeSimone
2019-05-18  1:02   ` Kubacki, Michael A
2019-05-15 17:35 ` [edk2-platforms] [PATCH 5/5] Intel/Readme.md: Updated readme with linux build instructions Agyeman, Prince
2019-05-18  0:58   ` [edk2-devel] " Nate DeSimone
2019-05-18  1:19   ` Kubacki, Michael A

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox