From: "Chiu, Chasel" <chasel.chiu@intel.com>
To: "Desimone, Nathaniel L" <nathaniel.l.desimone@intel.com>,
"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "Kubacki, Michael A" <michael.a.kubacki@intel.com>,
Jeremy Soller <jeremy@system76.com>
Subject: Re: [edk2-platforms] [PATCH V2 13/14] KabylakeOpenBoardPkg: Remove SecFspWrapperPlatformSecLib override
Date: Fri, 22 Nov 2019 05:18:31 +0000 [thread overview]
Message-ID: <3C3EFB470A303B4AB093197B6777CCEC505AB903@PGSMSX111.gar.corp.intel.com> (raw)
In-Reply-To: <20191121085853.2626-14-nathaniel.l.desimone@intel.com>
Reviewed-by: Chasel Chiu <chasel.chiu@intel.com>
> -----Original Message-----
> From: Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>
> Sent: Thursday, November 21, 2019 4:59 PM
> To: devel@edk2.groups.io
> Cc: Chiu, Chasel <chasel.chiu@intel.com>; Kubacki, Michael A
> <michael.a.kubacki@intel.com>; Jeremy Soller <jeremy@system76.com>
> Subject: [edk2-platforms] [PATCH V2 13/14] KabylakeOpenBoardPkg: Remove
> SecFspWrapperPlatformSecLib override
>
> Cc: Chasel Chiu <chasel.chiu@intel.com>
> Cc: Michael Kubacki <michael.a.kubacki@intel.com>
> Cc: Jeremy Soller <jeremy@system76.com>
> Signed-off-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
> ---
> .../FspWrapperPlatformSecLib.c | 186 ---------
> .../SecFspWrapperPlatformSecLib/FsptCoreUpd.h | 40 --
> .../SecFspWrapperPlatformSecLib/Ia32/Fsp.h | 42 --
> .../Ia32/PeiCoreEntry.nasm | 130 -------
> .../Ia32/SecEntry.nasm | 361 ------------------
> .../Ia32/Stack.nasm | 72 ----
> .../PlatformInit.c | 47 ---
> .../SecFspWrapperPlatformSecLib.inf | 97 -----
> .../SecGetPerformance.c | 89 -----
> .../SecPlatformInformation.c | 78 ----
> .../SecRamInitData.c | 36 --
> .../SecTempRamDone.c | 73 ----
> .../GalagoPro3/OpenBoardPkg.dsc | 2 +-
> .../KabylakeRvp3/OpenBoardPkg.dsc | 2 +-
> 14 files changed, 2 insertions(+), 1253 deletions(-) delete mode 100644
> Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrapperP
> latformSecLib/FspWrapperPlatformSecLib.c
> delete mode 100644
> Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrapperP
> latformSecLib/FsptCoreUpd.h
> delete mode 100644
> Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrapperP
> latformSecLib/Ia32/Fsp.h
> delete mode 100644
> Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrapperP
> latformSecLib/Ia32/PeiCoreEntry.nasm
> delete mode 100644
> Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrapperP
> latformSecLib/Ia32/SecEntry.nasm
> delete mode 100644
> Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrapperP
> latformSecLib/Ia32/Stack.nasm
> delete mode 100644
> Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrapperP
> latformSecLib/PlatformInit.c
> delete mode 100644
> Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrapperP
> latformSecLib/SecFspWrapperPlatformSecLib.inf
> delete mode 100644
> Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrapperP
> latformSecLib/SecGetPerformance.c
> delete mode 100644
> Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrapperP
> latformSecLib/SecPlatformInformation.c
> delete mode 100644
> Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrapperP
> latformSecLib/SecRamInitData.c
> delete mode 100644
> Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrapperP
> latformSecLib/SecTempRamDone.c
>
> diff --git
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/FspWrapperPlatformSecLib.c
> b/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/FspWrapperPlatformSecLib.c
> deleted file mode 100644
> index d40eecae95..0000000000
> ---
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/FspWrapperPlatformSecLib.c
> +++ /dev/null
> @@ -1,186 +0,0 @@
> -/** @file- Provide FSP wrapper platform sec related function.--Copyright (c)
> 2017 - 2019, Intel Corporation. All rights
> reserved.<BR>-SPDX-License-Identifier: BSD-2-Clause-Patent--**/--#include
> <PiPei.h>--#include <Ppi/SecPlatformInformation.h>-#include
> <Ppi/SecPerformance.h>-#include <Ppi/FirmwareVolumeInfo.h>-#include
> <Ppi/TopOfTemporaryRam.h>-#include <Ppi/PeiCoreFvLocation.h>-#include
> <Guid/FirmwareFileSystem2.h>--#include <Library/LocalApicLib.h>-#include
> <Library/BaseMemoryLib.h>-#include <Library/DebugLib.h>-#include
> <Library/IoLib.h>--/**- This interface conveys state information out of the
> Security (SEC) phase into PEI.-- @param[in] PeiServices
> Pointer to the PEI Services Table.- @param[in,out] StructureSize
> Pointer to the variable describing size of the input buffer.- @param[out]
> PlatformInformationRecord Pointer to the
> EFI_SEC_PLATFORM_INFORMATION_RECORD.-- @retval EFI_SUCCESS
> The data was successfully returned.- @retval EFI_BUFFER_TOO_SMALL
> The buffer was too small.--**/-EFI_STATUS-EFIAPI-SecPlatformInformation (-
> IN CONST EFI_PEI_SERVICES **PeiServices,- IN OUT
> UINT64 *StructureSize,- OUT
> EFI_SEC_PLATFORM_INFORMATION_RECORD
> *PlatformInformationRecord- );--/**- This interface conveys performance
> information out of the Security (SEC) phase into PEI.-- This service is
> published by the SEC phase. The SEC phase handoff has an optional-
> EFI_PEI_PPI_DESCRIPTOR list as its final argument when control is passed
> from SEC into the- PEI Foundation. As such, if the platform supports
> collecting performance data in SEC,- this information is encapsulated into
> the data structure abstracted by this service.- This information is collected
> for the boot-strap processor (BSP) on IA-32.-- @param[in] PeiServices
> The pointer to the PEI Services Table.- @param[in] This The
> pointer to this instance of the PEI_SEC_PERFORMANCE_PPI.- @param[out]
> Performance The pointer to performance data collected in SEC phase.--
> @retval EFI_SUCCESS The data was successfully
> returned.--**/-EFI_STATUS-EFIAPI-SecGetPerformance (- IN CONST
> EFI_PEI_SERVICES **PeiServices,- IN
> PEI_SEC_PERFORMANCE_PPI *This,- OUT
> FIRMWARE_SEC_PERFORMANCE
> *Performance- );--PEI_SEC_PERFORMANCE_PPI mSecPerformancePpi = {-
> SecGetPerformance-};--EFI_PEI_CORE_FV_LOCATION_PPI
> mPeiCoreFvLocationPpi = {- (VOID *) (UINTN) FixedPcdGet32
> (PcdFspmBaseAddress)-};--EFI_PEI_PPI_DESCRIPTOR
> mPeiCoreFvLocationPpiList[] = {- {- EFI_PEI_PPI_DESCRIPTOR_PPI,-
> &gEfiPeiCoreFvLocationPpiGuid,-
> &mPeiCoreFvLocationPpi- }-};--EFI_PEI_PPI_DESCRIPTOR
> mPeiSecPlatformPpi[] = {- {- EFI_PEI_PPI_DESCRIPTOR_PPI,-
> &gTopOfTemporaryRamPpiGuid,- NULL // To be patched later.- },- {-
> EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST,-
> &gPeiSecPerformancePpiGuid,- &mSecPerformancePpi- },-};--#define
> LEGACY_8259_MASK_REGISTER_MASTER 0x21-#define
> LEGACY_8259_MASK_REGISTER_SLAVE 0xA1-#define
> LEGACY_8259_EDGE_LEVEL_TRIGGERED_REGISTER_MASTER 0x4D0-#define
> LEGACY_8259_EDGE_LEVEL_TRIGGERED_REGISTER_SLAVE 0x4D1--/**-
> Write to mask and edge/level triggered registers of master and slave 8259
> PICs.-- @param[in] Mask low byte for master PIC mask register,-
> high byte for slave PIC mask register.- @param[in] EdgeLevel low byte
> for master PIC edge/level triggered register,-
> high byte for slave PIC edge/level triggered
> register.--**/-VOID-Interrupt8259WriteMask (- IN UINT16 Mask,- IN
> UINT16 EdgeLevel- )-{- IoWrite8
> (LEGACY_8259_MASK_REGISTER_MASTER, (UINT8) Mask);- IoWrite8
> (LEGACY_8259_MASK_REGISTER_SLAVE, (UINT8) (Mask >> 8));- IoWrite8
> (LEGACY_8259_EDGE_LEVEL_TRIGGERED_REGISTER_MASTER, (UINT8)
> EdgeLevel);- IoWrite8
> (LEGACY_8259_EDGE_LEVEL_TRIGGERED_REGISTER_SLAVE, (UINT8)
> (EdgeLevel >> 8));-}--/**- A developer supplied function to perform
> platform specific operations.-- It's a developer supplied function to
> perform any operations appropriate to a- given platform. It's invoked just
> before passing control to PEI core by SEC- core. Platform developer may
> modify the SecCoreData passed to PEI Core.- It returns a platform specific
> PPI list that platform wishes to pass to PEI core.- The Generic SEC core
> module will merge this list to join the final list passed to- PEI core.--
> @param[in,out] SecCoreData The same parameter as passing to
> PEI core. It- could be
> overridden by this function.-- @return The platform specific PPI list to be
> passed to PEI core or- NULL if there is no need of such platform
> specific PPI list.--**/-EFI_PEI_PPI_DESCRIPTOR *-EFIAPI-SecPlatformMain (-
> IN OUT EFI_SEC_PEI_HAND_OFF *SecCoreData- )-{-
> EFI_PEI_PPI_DESCRIPTOR *PpiList;- UINT8
> TopOfTemporaryRamPpiIndex;- UINT8
> *CopyDestinationPointer;-- DEBUG ((DEBUG_INFO, "FSP Wrapper
> BootFirmwareVolumeBase - 0x%x\n",
> SecCoreData->BootFirmwareVolumeBase));- DEBUG ((DEBUG_INFO, "FSP
> Wrapper BootFirmwareVolumeSize - 0x%x\n",
> SecCoreData->BootFirmwareVolumeSize));- DEBUG ((DEBUG_INFO, "FSP
> Wrapper TemporaryRamBase - 0x%x\n",
> SecCoreData->TemporaryRamBase));- DEBUG ((DEBUG_INFO, "FSP Wrapper
> TemporaryRamSize - 0x%x\n", SecCoreData->TemporaryRamSize));-
> DEBUG ((DEBUG_INFO, "FSP Wrapper PeiTemporaryRamBase - 0x%x\n",
> SecCoreData->PeiTemporaryRamBase));- DEBUG ((DEBUG_INFO, "FSP
> Wrapper PeiTemporaryRamSize - 0x%x\n",
> SecCoreData->PeiTemporaryRamSize));- DEBUG ((DEBUG_INFO, "FSP
> Wrapper StackBase - 0x%x\n", SecCoreData->StackBase));-
> DEBUG ((DEBUG_INFO, "FSP Wrapper StackSize - 0x%x\n",
> SecCoreData->StackSize));-- InitializeApicTimer (0, (UINT32) -1, TRUE, 5);--
> //- // Set all 8259 interrupts to edge triggered and disabled- //-
> Interrupt8259WriteMask (0xFFFF, 0x0000);-- //- // Use middle of Heap as
> temp buffer, it will be copied by caller.- // Do not use Stack, because it will
> cause wrong calculation on stack by PeiCore- //- PpiList = (VOID *)((UINTN)
> SecCoreData->PeiTemporaryRamBase + (UINTN)
> SecCoreData->PeiTemporaryRamSize/2);- CopyDestinationPointer = (UINT8
> *) PpiList;- TopOfTemporaryRamPpiIndex = 0;- if (PcdGet8
> (PcdFspModeSelection) == 0) {- //- // In Dispatch mode, wrapper
> should provide PeiCoreFvLocationPpi.- //- CopyMem
> (CopyDestinationPointer, mPeiCoreFvLocationPpiList, sizeof
> (mPeiCoreFvLocationPpiList));- TopOfTemporaryRamPpiIndex = 1;-
> CopyDestinationPointer += sizeof (mPeiCoreFvLocationPpiList);- }-
> CopyMem (CopyDestinationPointer, mPeiSecPlatformPpi,
> sizeof(mPeiSecPlatformPpi));- //- // Patch TopOfTemporaryRamPpi- //-
> PpiList[TopOfTemporaryRamPpiIndex].Ppi = (VOID *)((UINTN)
> SecCoreData->TemporaryRamBase + SecCoreData->TemporaryRamSize);--
> return PpiList;-}diff --git
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/FsptCoreUpd.h
> b/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/FsptCoreUpd.h
> deleted file mode 100644
> index 7c0f605b92..0000000000
> ---
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/FsptCoreUpd.h
> +++ /dev/null
> @@ -1,40 +0,0 @@
> -/** @file--Copyright (c) 2017, Intel Corporation. All rights
> reserved.<BR>-SPDX-License-Identifier: BSD-2-Clause-Patent--**/--#ifndef
> __FSPT_CORE_UPD_H__-#define __FSPT_CORE_UPD_H__--#pragma
> pack(1)--/** Fsp T Core UPD-**/-typedef struct {--/** Offset 0x0020-**/-
> UINT32 MicrocodeRegionBase;--/** Offset
> 0x0024-**/- UINT32 MicrocodeRegionSize;--/**
> Offset 0x0028-**/- UINT32 CodeRegionBase;--/**
> Offset 0x002C-**/- UINT32 CodeRegionSize;--/**
> Offset 0x0030-**/- UINT8 Reserved[16];-}
> FSPT_CORE_UPD;--#pragma pack()--#endifdiff --git
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/Ia32/Fsp.h
> b/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/Ia32/Fsp.h
> deleted file mode 100644
> index 9f6cdcf476..0000000000
> ---
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/Ia32/Fsp.h
> +++ /dev/null
> @@ -1,42 +0,0 @@
> -/** @file- Fsp related definitions--Copyright (c) 2017, Intel Corporation. All
> rights reserved.<BR>-SPDX-License-Identifier:
> BSD-2-Clause-Patent--**/--#ifndef __FSP_H__-#define __FSP_H__--//-// Fv
> Header-//-#define FVH_SIGINATURE_OFFSET 0x28-#define
> FVH_SIGINATURE_VALID_VALUE 0x4856465F // valid
> signature:_FVH-#define FVH_HEADER_LENGTH_OFFSET 0x30-#define
> FVH_EXTHEADER_OFFSET_OFFSET 0x34-#define
> FVH_EXTHEADER_SIZE_OFFSET 0x10--//-// Ffs Header-//-#define
> FSP_HEADER_GUID_DWORD1 0x912740BE-#define
> FSP_HEADER_GUID_DWORD2 0x47342284-#define
> FSP_HEADER_GUID_DWORD3 0xB08471B9-#define
> FSP_HEADER_GUID_DWORD4 0x0C3F3527-#define
> FFS_HEADER_SIZE_VALUE 0x18--//-// Section Header-//-#define
> SECTION_HEADER_TYPE_OFFSET 0x03-#define
> RAW_SECTION_HEADER_SIZE_VALUE 0x04--//-// Fsp Header-//-#define
> FSP_HEADER_IMAGEBASE_OFFSET 0x1C-#define
> FSP_HEADER_TEMPRAMINIT_OFFSET 0x30--#endifdiff --git
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/Ia32/PeiCoreEntry.nasm
> b/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/Ia32/PeiCoreEntry.nasm
> deleted file mode 100644
> index 5c5b788085..0000000000
> ---
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/Ia32/PeiCoreEntry.nasm
> +++ /dev/null
> @@ -1,130 +0,0 @@
> -;-------------------------------------------------------------------------------;-; Copyright (c)
> 2019, Intel Corporation. All rights reserved.<BR>-; SPDX-License-Identifier:
> BSD-2-Clause-Patent-;-; Module Name:-;-; PeiCoreEntry.nasm-;-; Abstract:-;-;
> Find and call
> SecStartup-;-;--------------------------------------------------------------------------------SECTI
> ON .text--extern ASM_PFX(SecStartup)-extern ASM_PFX(PlatformInit)--global
> ASM_PFX(CallPeiCoreEntryPoint)-ASM_PFX(CallPeiCoreEntryPoint):- ;- ;
> Obtain the hob list pointer- ;- mov eax, [esp+4]- ;- ; Obtain the
> stack information- ; ECX: start of range- ; EDX: end of range- ;-
> mov ecx, [esp+8]- mov edx, [esp+0xC]-- ;- ; Platform init- ;-
> pushad- push edx- push ecx- push eax- call ASM_PFX(PlatformInit)-
> pop eax- pop eax- pop eax- popad-- ;- ; Set stack top
> pointer- ;- mov esp, edx-- ;- ; Push the hob list pointer- ;-
> push eax-- ;- ; Save the value- ; ECX: start of range- ; EDX:
> end of range- ;- mov ebp, esp- push ecx- push
> edx-- ;- ; Push processor count to stack first, then BIST status (AP then
> BSP)- ;- mov eax, 1- cpuid- shr ebx, 16- and ebx,
> 0xFF- cmp bl, 1- jae PushProcessorCount-- ;- ; Some
> processors report 0 logical processors. Effectively 0 = 1.- ; So we fix up
> the processor count- ;- inc ebx--PushProcessorCount:- push
> ebx-- ;- ; We need to implement a long-term solution for BIST capture.
> For now, we just copy BSP BIST- ; for all processor threads- ;- xor
> ecx, ecx- mov cl, bl-PushBist:- movd eax, mm0- push eax-
> loop PushBist-- ; Save Time-Stamp Counter- movd eax, mm5- push
> eax-- movd eax, mm6- push eax-- ;- ; Pass entry point of the PEI
> core- ;- mov edi, 0xFFFFFFE0- push DWORD [edi]-- ;- ; Pass
> BFV into the PEI Core- ;- mov edi, 0xFFFFFFFC- push DWORD
> [edi]-- ;- ; Pass stack size into the PEI Core- ;- mov ecx, [ebp - 4]-
> mov edx, [ebp - 8]- push ecx ; RamBase-- sub edx,
> ecx- push edx ; RamSize-- ;- ; Pass Control into the PEI
> Core- ;- call ASM_PFX(SecStartup)-diff --git
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/Ia32/SecEntry.nasm
> b/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/Ia32/SecEntry.nasm
> deleted file mode 100644
> index 7f6d771e41..0000000000
> ---
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/Ia32/SecEntry.nasm
> +++ /dev/null
> @@ -1,361 +0,0 @@
> -;-------------------------------------------------------------------------------;-; Copyright (c)
> 2019, Intel Corporation. All rights reserved.<BR>-; SPDX-License-Identifier:
> BSD-2-Clause-Patent-; Module Name:-;-; 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"--SECTION .text--extern ASM_PFX(CallPeiCoreEntryPoint)-extern
> ASM_PFX(FsptUpdDataPtr)-extern ASM_PFX(BoardBeforeTempRamInit)-;
> Pcds-extern ASM_PFX(PcdGet32 (PcdFspTemporaryRamSize))-extern
> ASM_PFX(PcdGet32
> (PcdFsptBaseAddress))--;------------------------------------------------------------------------
> -----;-; 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.-;-;------------------------------------------------------------------------------BITS
> 16-align 4-global
> ASM_PFX(_ModuleEntryPoint)-ASM_PFX(_ModuleEntryPoint):-
> fninit ; clear any pending Floating
> point exceptions- ;- ; Store the BIST value in mm0- ;- movd mm0,
> eax- cli-- ;- ; Check INIT# is asserted by port 0xCF9- ;- mov dx, 0CF9h-
> in al, dx- cmp al, 04h- jnz NotWarmStart--- ;- ; @note Issue warm
> reset, since if CPU only reset is issued not all MSRs are restored to their
> defaults- ;- mov dx, 0CF9h- mov al, 06h- out dx,
> al--NotWarmStart:- ;- ; Save time-stamp counter value- ; rdtsc load 64bit
> time-stamp counter to EDX:EAX- ;- rdtsc- movd mm5, edx- movd
> mm6, eax-- ;- ; Load the GDT table in GdtDesc- ;- mov esi,
> GdtDesc- DB 66h- lgdt [cs:si]-- ;- ; Transition to 16 bit
> protected mode- ;- mov eax, cr0 ; Get control
> register 0- or eax, 00000003h ; Set PE bit (bit #0) &
> MP bit (bit #1)- mov cr0, eax ; Activate
> protected mode-- mov eax, cr4 ; Get control
> register 4- or eax, 00000600h ; Set OSFXSR bit (bit #9)
> & OSXMMEXCPT bit (bit #10)- mov cr4, eax-- ;- ; Now we're in 16
> bit protected mode- ; Set up the selectors for 32 bit protected mode
> entry- ;- mov ax, SYS_DATA_SEL- mov ds, ax- mov es,
> ax- mov fs, ax- mov gs, ax- mov ss, ax-- ;- ; Transition
> to Flat 32 bit protected mode- ; The jump to a far pointer causes the
> transition to 32 bit mode- ;- mov esi, ProtectedModeEntryLinearAddress-
> jmp dword far
> [cs:si]--;-----------------------------------------------------------------------------;-; 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-;-;------------------------------------------------------------------------------BITS 32-align
> 4-ProtectedModeEntryPoint:- ;- ; Early board hooks- ;- mov esp,
> BoardBeforeTempRamInitRet- jmp
> ASM_PFX(BoardBeforeTempRamInit)--BoardBeforeTempRamInitRet:-- ;
> Find the fsp info header- mov edi, [ASM_PFX(PcdGet32
> (PcdFsptBaseAddress))]-- mov eax, dword [edi +
> FVH_SIGINATURE_OFFSET]- cmp eax, FVH_SIGINATURE_VALID_VALUE-
> jnz FspHeaderNotFound-- xor eax, eax- mov ax, word [edi +
> FVH_EXTHEADER_OFFSET_OFFSET]- cmp ax, 0- jnz
> FspFvExtHeaderExist-- xor eax, eax- mov ax, word [edi +
> FVH_HEADER_LENGTH_OFFSET] ; Bypass Fv Header- add edi, eax-
> jmp FspCheckFfsHeader--FspFvExtHeaderExist:- add edi, eax- 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-- and edi, 0FFFFFFF8h- add edi,
> 08h--FspCheckFfsHeader:- ; Check the ffs guid- mov eax, dword [edi]-
> cmp eax, FSP_HEADER_GUID_DWORD1- jnz FspHeaderNotFound--
> mov eax, dword [edi + 4]- cmp eax, FSP_HEADER_GUID_DWORD2- jnz
> FspHeaderNotFound-- mov eax, dword [edi + 8]- cmp eax,
> FSP_HEADER_GUID_DWORD3- jnz FspHeaderNotFound-- mov eax,
> dword [edi + 0Ch]- cmp eax, FSP_HEADER_GUID_DWORD4- jnz
> FspHeaderNotFound-- add edi, FFS_HEADER_SIZE_VALUE ; Bypass
> the ffs header-- ; Check the section type as raw section- mov al, byte
> [edi + SECTION_HEADER_TYPE_OFFSET]- cmp al, 019h- jnz
> FspHeaderNotFound-- add edi, RAW_SECTION_HEADER_SIZE_VALUE ;
> Bypass the section header- jmp FspHeaderFound--FspHeaderNotFound:-
> jmp $--FspHeaderFound:- ; Get the fsp TempRamInit Api address- mov
> eax, dword [edi + FSP_HEADER_IMAGEBASE_OFFSET]- add eax, dword [edi
> + FSP_HEADER_TEMPRAMINIT_OFFSET]-- ; Setup the hardcode stack- mov
> esp, TempRamInitStack-- ; Call the fsp TempRamInit Api- jmp
> eax--TempRamInitDone:- cmp eax, 8000000Eh ;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 eax, 0 ;Check if EFI_SUCCESS retuned.- jnz
> FspApiFailed-- ; ECX: start of range- ; EDX: end of
> range-CallSecFspInit:- sub edx, [ASM_PFX(PcdGet32
> (PcdFspTemporaryRamSize))] ; TemporaryRam for FSP- xor eax, eax-
> mov esp, edx-- ; Align the stack at DWORD- add esp, 3- and
> esp, 0FFFFFFFCh-- push edx- push ecx- push eax ; zero - no
> hob list yet- call ASM_PFX(CallPeiCoreEntryPoint)--FspApiFailed:- jmp
> $--align 10h-TempRamInitStack:- DD TempRamInitDone- DD
> ASM_PFX(FsptUpdDataPtr); TempRamInitParams--;-; ROM-based
> Global-Descriptor Table for the Tiano PEI Phase-;-align 16-global
> ASM_PFX(BootGdtTable)--;-; GDT[0]: 0x00: Null entry, never used.-;-NULL_SEL
> EQU $ - GDT_BASE ; Selector [0]-GDT_BASE:-ASM_PFX(BootGdtTable):-
> DD 0- DD 0-;-; Linear data segment
> descriptor-;-LINEAR_SEL EQU $ - GDT_BASE ; Selector [0x8]-
> DW 0FFFFh ; limit 0xFFFFF- DW
> 0 ; base 0- DB 0- DB
> 092h ; present, ring 0, data, expand-up,
> writable- DB 0CFh ; page-granular,
> 32-bit- DB 0-;-; Linear code segment descriptor-;-LINEAR_CODE_SEL
> EQU $ - GDT_BASE ; Selector [0x10]- DW
> 0FFFFh ; limit 0xFFFFF- DW
> 0 ; base 0- DB 0- DB
> 09Bh ; present, ring 0, data, expand-up,
> not-writable- DB 0CFh ; page-granular,
> 32-bit- DB 0-;-; System data segment descriptor-;-SYS_DATA_SEL
> EQU $ - GDT_BASE ; Selector [0x18]- DW
> 0FFFFh ; limit 0xFFFFF- DW
> 0 ; base 0- DB 0- DB
> 093h ; present, ring 0, data, expand-up,
> not-writable- DB 0CFh ; page-granular,
> 32-bit- DB 0--;-; System code segment descriptor-;-SYS_CODE_SEL
> EQU $ - GDT_BASE ; Selector [0x20]- DW
> 0FFFFh ; limit 0xFFFFF- DW
> 0 ; base 0- DB 0- DB
> 09Ah ; present, ring 0, data, expand-up,
> writable- DB 0CFh ; page-granular,
> 32-bit- DB 0-;-; Spare segment descriptor-;-SYS16_CODE_SEL EQU
> $ - GDT_BASE ; Selector [0x28]- DW
> 0FFFFh ; limit 0xFFFFF- DW
> 0 ; base 0- DB
> 0Eh ; Changed from F000 to E000.- DB
> 09Bh ; present, ring 0, code, expand-up,
> writable- DB 00h ; byte-granular,
> 16-bit- DB 0-;-; Spare segment descriptor-;-SYS16_DATA_SEL EQU
> $ - GDT_BASE ; Selector [0x30]- DW
> 0FFFFh ; limit 0xFFFF- DW
> 0 ; base 0- DB 0- DB
> 093h ; present, ring 0, data, expand-up,
> not-writable- DB 00h ; byte-granular,
> 16-bit- DB 0--;-; Spare segment descriptor-;-SPARE5_SEL
> EQU $ - GDT_BASE ; Selector [0x38]- DW
> 0 ; limit 0- DW
> 0 ; base 0- DB 0- DB
> 0 ; present, ring 0, data, expand-up,
> writable- DB 0 ; page-granular,
> 32-bit- DB 0-GDT_SIZE EQU $ - GDT_BASE ; Size, in
> bytes--;-; GDT Descriptor-;-GdtDesc: ;
> GDT descriptor- DW GDT_SIZE - 1 ; GDT limit-
> DD GDT_BASE ; GDT base
> address---ProtectedModeEntryLinearAddress:-ProtectedModeEntryLinear:-
> DD ProtectedModeEntryPoint ; Offset of our 32 bit code- DW
> LINEAR_CODE_SELdiff --git
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/Ia32/Stack.nasm
> b/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/Ia32/Stack.nasm
> deleted file mode 100644
> index 47db32d64c..0000000000
> ---
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/Ia32/Stack.nasm
> +++ /dev/null
> @@ -1,72 +0,0 @@
> -;-------------------------------------------------------------------------------;-; Copyright (c)
> 2019, Intel Corporation. All rights reserved.<BR>-; SPDX-License-Identifier:
> BSD-2-Clause-Patent-; Abstract:-;-; Switch the stack from temporary
> memory to permanent
> memory.-;-;--------------------------------------------------------------------------------
> SECTION .text--;-------------------------------------------------------------------------------;
> VOID-; EFIAPI-; SecSwitchStack (-; UINT32 TemporaryMemoryBase,-;
> UINT32
> PermanentMemoryBase-; );-;---------------------------------------------------------------
> ----------------global
> ASM_PFX(SecSwitchStack)-ASM_PFX(SecSwitchStack):- ;- ; Save three
> register: eax, ebx, ecx- ;- push eax- push ebx- push ecx-
> push 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!- ;-- mov ebx, [esp +
> 20] ; Save the first parameter- mov ecx, [esp +
> 24] ; Save the second parameter-- ;- ; Save this function's
> return address into permanent memory at first.- ; Then, Fixup the esp
> point to permanent memory- ;- mov eax, esp- sub eax,
> ebx- add eax, ecx- 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-- ;- ; Fixup the ebp point to permanent memory- ;-
> mov eax, ebp- sub eax, ebx- add eax, ecx- mov ebp,
> eax ; From now, ebp is pointed to permanent memory--
> pop edx- pop ecx- pop ebx- pop eax- ret-diff
> --git
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/PlatformInit.c
> b/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/PlatformInit.c
> deleted file mode 100644
> index ef89e3f310..0000000000
> ---
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/PlatformInit.c
> +++ /dev/null
> @@ -1,47 +0,0 @@
> -/** @file- Provide platform init function.--Copyright (c) 2017, Intel
> Corporation. All rights reserved.<BR>-SPDX-License-Identifier:
> BSD-2-Clause-Patent--**/---#include <PiPei.h>-#include
> <Library/DebugLib.h>-#include <Library/SerialPortLib.h>-#include
> <Library/SecBoardInitLib.h>-#include <Library/TestPointCheckLib.h>--/**-
> Platform initialization.-- @param[in] FspHobList HobList produced by
> FSP.- @param[in] StartOfRange Start of temporary RAM.- @param[in]
> EndOfRange End of temporary RAM.-**/-VOID-EFIAPI-PlatformInit (- IN
> VOID *FspHobList,- IN VOID
> *StartOfRange,- IN VOID *EndOfRange- )-{- //- //
> Platform initialization- // Enable Serial port here- //- if
> (PcdGetBool(PcdSecSerialPortDebugEnable)) {- SerialPortInitialize
> ();- }-- DEBUG ((DEBUG_INFO, "PrintPeiCoreEntryPointParam in
> PlatformInit\n"));- DEBUG ((DEBUG_INFO, "FspHobList - 0x%x\n",
> FspHobList));- DEBUG ((DEBUG_INFO, "StartOfRange - 0x%x\n",
> StartOfRange));- DEBUG ((DEBUG_INFO, "EndOfRange - 0x%x\n",
> EndOfRange));-- BoardAfterTempRamInit ();--
> TestPointTempMemoryFunction (StartOfRange, EndOfRange);-}diff --git
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/SecFspWrapperPlatformSecLib.inf
> b/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/SecFspWrapperPlatformSecLib.inf
> deleted file mode 100644
> index c99dd5ecdd..0000000000
> ---
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/SecFspWrapperPlatformSecLib.inf
> +++ /dev/null
> @@ -1,97 +0,0 @@
> -## @file-# Provide FSP wrapper platform sec related function.-#-#
> Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>-#-#
> SPDX-License-Identifier:
> BSD-2-Clause-Patent-#-#-##--########################################
> ########################################-#-# Defines Section -
> statements that will be processed to create a
> Makefile.-#-######################################################
> ##########################-[Defines]- INF_VERSION
> = 0x00010005- BASE_NAME =
> SecFspWrapperPlatformSecLib- FILE_GUID =
> 4E1C4F95-90EA-47de-9ACC-B8920189A1F5- MODULE_TYPE
> = SEC- VERSION_STRING = 1.0- LIBRARY_CLASS
> = PlatformSecLib---#-# The following information is for reference only and
> not required by the build tools.-#-# VALID_ARCHITECTURES =
> IA32
> X64-#--##########################################################
> ######################-#-# Sources Section - list of files that are required
> for the build to
> succeed.-#-######################################################
> ##########################--[Sources]- FspWrapperPlatformSecLib.c-
> SecRamInitData.c- SecPlatformInformation.c- SecGetPerformance.c-
> SecTempRamDone.c- PlatformInit.c--[Sources.IA32]- Ia32/SecEntry.nasm-
> Ia32/PeiCoreEntry.nasm- Ia32/Stack.nasm-
> Ia32/Fsp.h--######################################################
> ##########################-#-# Package Dependency Section - list of
> Package files that are required for-# this
> module.-#-#######################################################
> #########################--[Packages]- MdePkg/MdePkg.dec-
> MdeModulePkg/MdeModulePkg.dec- UefiCpuPkg/UefiCpuPkg.dec-
> IntelFsp2Pkg/IntelFsp2Pkg.dec-
> IntelFsp2WrapperPkg/IntelFsp2WrapperPkg.dec-
> MinPlatformPkg/MinPlatformPkg.dec-
> KabylakeSiliconPkg/SiPkg.dec--[LibraryClasses]- LocalApicLib-
> SerialPortLib- FspWrapperPlatformLib- FspWrapperApiLib- BoardInitLib-
> SecBoardInitLib- TestPointCheckLib- PeiServicesTablePointerLib--[Ppis]-
> gEfiSecPlatformInformationPpiGuid ## CONSUMES-
> gPeiSecPerformancePpiGuid ## CONSUMES-
> gTopOfTemporaryRamPpiGuid ## PRODUCES-
> gEfiPeiFirmwareVolumeInfoPpiGuid ## PRODUCES-
> gFspTempRamExitPpiGuid ## CONSUMES--[Pcd]-
> gUefiCpuPkgTokenSpaceGuid.PcdPeiTemporaryRamStackSize
> ## CONSUMES- gIntelFsp2WrapperTokenSpaceGuid.PcdFsptBaseAddress
> ## CONSUMES- gIntelFsp2PkgTokenSpaceGuid.PcdFspTemporaryRamSize
> ## CONSUMES-
> gMinPlatformPkgTokenSpaceGuid.PcdSecSerialPortDebugEnable
> ## CONSUMES--[FixedPcd]-
> gIntelFsp2WrapperTokenSpaceGuid.PcdCpuMicrocodePatchAddress
> ## CONSUMES-
> gIntelFsp2WrapperTokenSpaceGuid.PcdCpuMicrocodePatchRegionSize
> ## CONSUMES-
> gIntelFsp2WrapperTokenSpaceGuid.PcdFlashMicrocodeOffset
> ## CONSUMES-
> gIntelFsp2WrapperTokenSpaceGuid.PcdFlashCodeCacheAddress
> ## CONSUMES- gIntelFsp2WrapperTokenSpaceGuid.PcdFlashCodeCacheSize
> ## CONSUMES- gIntelFsp2WrapperTokenSpaceGuid.PcdFspmBaseAddress
> ## CONSUMES- gIntelFsp2WrapperTokenSpaceGuid.PcdFspModeSelection
> ## CONSUMESdiff --git
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/SecGetPerformance.c
> b/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/SecGetPerformance.c
> deleted file mode 100644
> index c4eeb2b188..0000000000
> ---
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/SecGetPerformance.c
> +++ /dev/null
> @@ -1,89 +0,0 @@
> -/** @file- Sample to provide SecGetPerformance function.--Copyright (c)
> 2017, Intel Corporation. All rights reserved.<BR>-SPDX-License-Identifier:
> BSD-2-Clause-Patent--**/--#include <PiPei.h>--#include
> <Ppi/SecPerformance.h>-#include <Ppi/TopOfTemporaryRam.h>--#include
> <Library/BaseMemoryLib.h>-#include <Library/TimerLib.h>-#include
> <Library/DebugLib.h>--/**- This interface conveys performance information
> out of the Security (SEC) phase into PEI.-- This service is published by the
> SEC phase. The SEC phase handoff has an optional-
> EFI_PEI_PPI_DESCRIPTOR list as its final argument when control is passed
> from SEC into the- PEI Foundation. As such, if the platform supports
> collecting performance data in SEC,- this information is encapsulated into
> the data structure abstracted by this service.- This information is collected
> for the boot-strap processor (BSP) on IA-32.-- @param[in] PeiServices
> The pointer to the PEI Services Table.- @param[in] This The
> pointer to this instance of the PEI_SEC_PERFORMANCE_PPI.- @param[out]
> Performance The pointer to performance data collected in SEC phase.--
> @retval EFI_SUCCESS The data was successfully
> returned.--**/-EFI_STATUS-EFIAPI-SecGetPerformance (- IN CONST
> EFI_PEI_SERVICES **PeiServices,- IN
> PEI_SEC_PERFORMANCE_PPI *This,- OUT
> FIRMWARE_SEC_PERFORMANCE *Performance- )-{- UINT32 Size;-
> UINT32 Count;- UINT32 TopOfTemporaryRam;- UINT64
> Ticker;- VOID *TopOfTemporaryRamPpi;- EFI_STATUS Status;--
> DEBUG ((DEBUG_INFO, "SecGetPerformance\n"));-- Status =
> (*PeiServices)->LocatePpi (- PeiServices,-
> &gTopOfTemporaryRamPpiGuid,- 0,-
> NULL,- (VOID **)
> &TopOfTemporaryRamPpi- );- if
> (EFI_ERROR (Status)) {- return EFI_NOT_FOUND;- }- //- //
> |--------------| <- TopOfTemporaryRam - BL- // | List Ptr |- //
> |--------------|- // | BL RAM Start |- // |--------------|- // | BL RAM End
> |- // |--------------|- // |Number of BSPs|- // |--------------|- // |
> BIST |- // |--------------|- // | .... |- // |--------------|- // |
> TSC[63:32] |- // |--------------|- // | TSC[31:00] |- // |--------------|-
> //- TopOfTemporaryRam = (UINT32)(UINTN)TopOfTemporaryRamPpi -
> sizeof(UINT32);- TopOfTemporaryRam -= sizeof(UINT32) * 2;- Count
> = *(UINT32 *) (UINTN) (TopOfTemporaryRam - sizeof (UINT32));- Size
> = Count * sizeof (UINT32);-- Ticker = *(UINT64 *) (UINTN)
> (TopOfTemporaryRam - sizeof (UINT32) - Size - sizeof (UINT32) * 2);-
> Performance->ResetEnd = GetTimeInNanoSecond (Ticker);-- return
> EFI_SUCCESS;-}diff --git
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/SecPlatformInformation.c
> b/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/SecPlatformInformation.c
> deleted file mode 100644
> index 5b94ed2bef..0000000000
> ---
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/SecPlatformInformation.c
> +++ /dev/null
> @@ -1,78 +0,0 @@
> -/** @file- Provide SecPlatformInformation function.--Copyright (c) 2017,
> Intel Corporation. All rights reserved.<BR>-SPDX-License-Identifier:
> BSD-2-Clause-Patent--**/--#include <PiPei.h>--#include
> <Ppi/SecPlatformInformation.h>-#include
> <Ppi/TopOfTemporaryRam.h>--#include
> <Library/BaseMemoryLib.h>-#include <Library/DebugLib.h>--/**- This
> interface conveys state information out of the Security (SEC) phase into PEI.--
> @param[in] PeiServices Pointer to the PEI Services
> Table.- @param[in,out] StructureSize Pointer to the variable
> describing size of the input buffer.- @param[out]
> PlatformInformationRecord Pointer to the
> EFI_SEC_PLATFORM_INFORMATION_RECORD.-- @retval EFI_SUCCESS
> The data was successfully returned.- @retval EFI_BUFFER_TOO_SMALL
> The buffer was too small.--**/-EFI_STATUS-EFIAPI-SecPlatformInformation (-
> IN CONST EFI_PEI_SERVICES **PeiServices,- IN OUT
> UINT64 *StructureSize,- OUT
> EFI_SEC_PLATFORM_INFORMATION_RECORD
> *PlatformInformationRecord- )-{- UINT32 *Bist;- UINT32
> Size;- UINT32 Count;- UINT32 TopOfTemporaryRam;- VOID
> *TopOfTemporaryRamPpi;- EFI_STATUS Status;-- DEBUG ((DEBUG_INFO,
> "SecPlatformInformation\n"));-- Status = (*PeiServices)->LocatePpi (-
> PeiServices,-
> &gTopOfTemporaryRamPpiGuid,- 0,-
> NULL,- (VOID **)
> &TopOfTemporaryRamPpi- );- if
> (EFI_ERROR (Status)) {- return EFI_NOT_FOUND;- }-- //- // The
> entries of BIST information, together with the number of them,- // reside
> in the bottom of stack, left untouched by normal stack operation.- // This
> routine copies the BIST information to the buffer pointed by- //
> PlatformInformationRecord for output.- //- TopOfTemporaryRam =
> (UINT32)(UINTN)TopOfTemporaryRamPpi - sizeof (UINT32);-
> TopOfTemporaryRam -= sizeof(UINT32) * 2;- Count =
> *((UINT32 *)(UINTN) (TopOfTemporaryRam - sizeof (UINT32)));- Size
> = Count * sizeof (IA32_HANDOFF_STATUS);-- if ((*StructureSize) < (UINT64)
> Size) {- *StructureSize = Size;- return EFI_BUFFER_TOO_SMALL;- }--
> *StructureSize = Size;- Bist = (UINT32 *)
> (TopOfTemporaryRam - sizeof (UINT32) - Size);-- CopyMem
> (PlatformInformationRecord, Bist, Size);-- return EFI_SUCCESS;-}diff --git
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/SecRamInitData.c
> b/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/SecRamInitData.c
> deleted file mode 100644
> index b356327b4c..0000000000
> ---
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/SecRamInitData.c
> +++ /dev/null
> @@ -1,36 +0,0 @@
> -/** @file- Provide TempRamInitParams data.--Copyright (c) 2017, Intel
> Corporation. All rights reserved.<BR>-SPDX-License-Identifier:
> BSD-2-Clause-Patent--**/--#include <Library/PcdLib.h>-#include
> <FspEas.h>-#include "FsptCoreUpd.h"--typedef struct {- FSP_UPD_HEADER
> FspUpdHeader;- FSPT_CORE_UPD FsptCoreUpd;-}
> FSPT_UPD_CORE_DATA;--GLOBAL_REMOVE_IF_UNREFERENCED CONST
> FSPT_UPD_CORE_DATA FsptUpdDataPtr = {- {- 0x4450555F54505346,-
> 0x00,- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
> 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00- }- },- {-
> ((UINT32)FixedPcdGet64 (PcdCpuMicrocodePatchAddress) + FixedPcdGet32
> (PcdFlashMicrocodeOffset)),- ((UINT32)FixedPcdGet64
> (PcdCpuMicrocodePatchRegionSize) - FixedPcdGet32
> (PcdFlashMicrocodeOffset)),- 0, // Set CodeRegionBase as 0,
> so that caching will be 4GB-(CodeRegionSize > LLCSize ? LLCSize :
> CodeRegionSize) will be used.- FixedPcdGet32 (PcdFlashCodeCacheSize),-
> { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,- 0x00,
> 0x00, 0x00, 0x00, 0x00, 0x00- }- }-};-diff --git
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/SecTempRamDone.c
> b/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/SecTempRamDone.c
> deleted file mode 100644
> index 922e4ec204..0000000000
> ---
> a/Platform/Intel/KabylakeOpenBoardPkg/FspWrapper/Library/SecFspWrappe
> rPlatformSecLib/SecTempRamDone.c
> +++ /dev/null
> @@ -1,73 +0,0 @@
> -/** @file- Provide SecTemporaryRamDone function.--Copyright (c) 2017 -
> 2019, Intel Corporation. All rights reserved.<BR>-SPDX-License-Identifier:
> BSD-2-Clause-Patent--**/--#include <PiPei.h>--#include
> <Ppi/TemporaryRamDone.h>-#include <Ppi/TempRamExitPpi.h>--#include
> <Library/BaseMemoryLib.h>-#include <Library/DebugLib.h>-#include
> <Library/PcdLib.h>-#include <Library/DebugAgentLib.h>-#include
> <Library/FspWrapperPlatformLib.h>-#include
> <Library/FspWrapperApiLib.h>-#include <Library/BoardInitLib.h>-#include
> <Library/PeiServicesTablePointerLib.h>--/**-This interface disables temporary
> memory in SEC
> Phase.-**/-VOID-EFIAPI-SecPlatformDisableTemporaryMemory (-
> VOID- )-{- EFI_STATUS Status;- VOID
> *TempRamExitParam;- CONST EFI_PEI_SERVICES **PeiServices;-
> FSP_TEMP_RAM_EXIT_PPI *TempRamExitPpi;-- DEBUG ((DEBUG_INFO,
> "SecPlatformDisableTemporaryMemory enter\n"));-- Status =
> BoardInitBeforeTempRamExit ();- ASSERT_EFI_ERROR (Status);-- if
> (PcdGet8 (PcdFspModeSelection) == 1) {- //- // FSP API mode- //-
> TempRamExitParam = UpdateTempRamExitParam ();- Status =
> CallTempRamExit (TempRamExitParam);- DEBUG ((DEBUG_INFO,
> "TempRamExit status: 0x%x\n", Status));- ASSERT_EFI_ERROR (Status);- }
> else {- //- // FSP Dispatch mode- //- PeiServices =
> GetPeiServicesTablePointer ();- Status = (*PeiServices)->LocatePpi (-
> PeiServices,- &gFspTempRamExitPpiGuid,-
> 0,- NULL,-
> (VOID **) &TempRamExitPpi- );-
> ASSERT_EFI_ERROR (Status);- if (EFI_ERROR (Status)) {-
> return;- }- TempRamExitPpi->TempRamExit (NULL);- }-- Status =
> BoardInitAfterTempRamExit ();- ASSERT_EFI_ERROR (Status);--
> return ;-}diff --git
> a/Platform/Intel/KabylakeOpenBoardPkg/GalagoPro3/OpenBoardPkg.dsc
> b/Platform/Intel/KabylakeOpenBoardPkg/GalagoPro3/OpenBoardPkg.dsc
> index 2bc2b4126b..acdc31e708 100644
> --- a/Platform/Intel/KabylakeOpenBoardPkg/GalagoPro3/OpenBoardPkg.dsc
> +++ b/Platform/Intel/KabylakeOpenBoardPkg/GalagoPro3/OpenBoardPkg.dsc
> @@ -126,7 +126,7 @@
> #######################################
> GpioExpanderLib|$(PLATFORM_BOARD_PACKAGE)/Library/BaseGpioExpande
> rLib/BaseGpioExpanderLib.inf
> I2cAccessLib|$(PLATFORM_BOARD_PACKAGE)/Library/PeiI2cAccessLib/PeiI2cA
> ccessLib.inf-
> PlatformSecLib|$(PLATFORM_BOARD_PACKAGE)/FspWrapper/Library/SecFsp
> WrapperPlatformSecLib/SecFspWrapperPlatformSecLib.inf+
> PlatformSecLib|$(PLATFORM_PACKAGE)/FspWrapper/Library/SecFspWrapper
> PlatformSecLib/SecFspWrapperPlatformSecLib.inf # Thunderbolt !if
> gKabylakeOpenBoardPkgTokenSpaceGuid.PcdTbtEnable == TRUEdiff --git
> a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkg.dsc
> b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkg.dsc
> index 77e4a6a610..4b07c0a684 100644
> ---
> a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkg.dsc
> +++
> b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkg.dsc
> @@ -166,7 +166,7 @@
> EcLib|$(PLATFORM_BOARD_PACKAGE)/Library/BaseEcLib/BaseEcLib.inf
> GpioExpanderLib|$(PLATFORM_BOARD_PACKAGE)/Library/BaseGpioExpande
> rLib/BaseGpioExpanderLib.inf
> I2cAccessLib|$(PLATFORM_BOARD_PACKAGE)/Library/PeiI2cAccessLib/PeiI2cA
> ccessLib.inf-
> PlatformSecLib|$(PLATFORM_BOARD_PACKAGE)/FspWrapper/Library/SecFsp
> WrapperPlatformSecLib/SecFspWrapperPlatformSecLib.inf+
> PlatformSecLib|$(PLATFORM_PACKAGE)/FspWrapper/Library/SecFspWrapper
> PlatformSecLib/SecFspWrapperPlatformSecLib.inf # Thunderbolt !if
> gKabylakeOpenBoardPkgTokenSpaceGuid.PcdTbtEnable == TRUE--
> 2.24.0.windows.2
next prev parent reply other threads:[~2019-11-22 5:18 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-21 8:58 [edk2-platforms] [PATCH V2 00/14] SecFspWrapperPlatformSecLib Cleanup Nate DeSimone
2019-11-21 8:58 ` [edk2-platforms] [PATCH V2 01/14] KabylakeSiliconPkg: Change MODULE_TYPE of SiliconInitLib to PEIM Nate DeSimone
2019-11-22 5:15 ` Chiu, Chasel
2019-11-22 6:31 ` Kubacki, Michael A
2019-11-22 6:36 ` Chaganty, Rangasai V
2019-11-21 8:58 ` [edk2-platforms] [PATCH V2 02/14] KabylakeOpenBoardPkg: Update location of SiliconInitLib Nate DeSimone
2019-11-22 5:15 ` [edk2-devel] " Chiu, Chasel
2019-11-22 6:31 ` Kubacki, Michael A
2019-11-21 8:58 ` [edk2-platforms] [PATCH V2 03/14] KabylakeSiliconPkg: Cleanup old comments Nate DeSimone
2019-11-22 5:15 ` Chiu, Chasel
2019-11-22 6:32 ` Kubacki, Michael A
2019-11-22 6:42 ` Chaganty, Rangasai V
2019-11-21 8:58 ` [edk2-platforms] [PATCH V2 04/14] CoffeeLakeSiliconPkg: Move TcoWdtHob.h Nate DeSimone
2019-11-22 5:15 ` Chiu, Chasel
2019-11-22 6:32 ` [edk2-devel] " Kubacki, Michael A
2019-11-22 6:46 ` Chaganty, Rangasai V
2019-11-21 8:58 ` [edk2-platforms] [PATCH V2 05/14] CoffeeLakeSiliconPkg: TcoWdtHob.h Cleanup Nate DeSimone
2019-11-22 5:16 ` Chiu, Chasel
2019-11-22 6:32 ` Kubacki, Michael A
2019-11-22 6:48 ` Chaganty, Rangasai V
2019-11-21 8:58 ` [edk2-platforms] [PATCH V2 06/14] CoffeelakeSiliconPkg: Add SiliconInitLib Nate DeSimone
2019-11-22 5:16 ` Chiu, Chasel
2019-11-22 6:32 ` Kubacki, Michael A
2019-11-22 6:55 ` Chaganty, Rangasai V
2019-11-21 8:58 ` [edk2-platforms] [PATCH V2 07/14] WhiskeylakeOpenBoardPkg: Add SiliconInitLib APIs to BoardInitLib Nate DeSimone
2019-11-22 5:16 ` Chiu, Chasel
2019-11-22 6:32 ` Kubacki, Michael A
2019-11-21 8:58 ` [edk2-platforms] [PATCH V2 08/14] WhiskeylakeOpenBoardPkg: Whitespace cleanup in BoardInitLib Nate DeSimone
2019-11-22 5:16 ` Chiu, Chasel
2019-11-22 6:32 ` Kubacki, Michael A
2019-11-21 8:58 ` [edk2-platforms] [PATCH V2 09/14] WhiskeylakeOpenBoardPkg: Remove SecFspWrapperPlatformSecLib override Nate DeSimone
2019-11-22 5:17 ` Chiu, Chasel
2019-11-22 6:32 ` Kubacki, Michael A
2019-11-21 8:58 ` [edk2-platforms] [PATCH V2 10/14] MinPlatformPkg: FSP Dispatch Mode Support for PlatformSecLib Nate DeSimone
2019-11-22 5:17 ` Chiu, Chasel
2019-11-22 6:32 ` Kubacki, Michael A
2019-11-21 8:58 ` [edk2-platforms] [PATCH V2 11/14] MinPlatformPkg: Coding style cleanups in MinPlatformPkg.dec Nate DeSimone
2019-11-22 5:17 ` Chiu, Chasel
2019-11-22 6:32 ` Kubacki, Michael A
2019-11-21 8:58 ` [edk2-platforms] [PATCH V2 12/14] KabylakeOpenBoardPkg: Add support for PcdFspDispatchModeUseFspPeiMain Nate DeSimone
2019-11-22 5:18 ` Chiu, Chasel
2019-11-22 6:32 ` Kubacki, Michael A
2019-11-21 8:58 ` [edk2-platforms] [PATCH V2 13/14] KabylakeOpenBoardPkg: Remove SecFspWrapperPlatformSecLib override Nate DeSimone
2019-11-22 5:18 ` Chiu, Chasel [this message]
2019-11-22 6:32 ` Kubacki, Michael A
2019-11-21 8:58 ` [edk2-platforms] [PATCH V2 14/14] MinPlatformPkg: Remove BoardInitLib dependency from PlatformSecLib Nate DeSimone
2019-11-22 5:18 ` Chiu, Chasel
2019-11-22 6:33 ` Kubacki, Michael A
2019-11-21 17:51 ` [edk2-platforms] [PATCH V2 00/14] SecFspWrapperPlatformSecLib Cleanup Kubacki, Michael A
2019-11-22 0:51 ` Nate DeSimone
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3C3EFB470A303B4AB093197B6777CCEC505AB903@PGSMSX111.gar.corp.intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox