* [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