From: "Chiu, Chasel" <chasel.chiu@intel.com>
To: "Kubacki, Michael A" <michael.a.kubacki@intel.com>,
"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "Chaganty, Rangasai V" <rangasai.v.chaganty@intel.com>,
"Desimone, Nathaniel L" <nathaniel.l.desimone@intel.com>,
"Gao, Liming" <liming.gao@intel.com>,
"Kinney, Michael D" <michael.d.kinney@intel.com>,
"Sinha, Ankit" <ankit.sinha@intel.com>
Subject: Re: [edk2-platforms][PATCH V1 14/37] CoffeelakeSiliconPkg: Add package common library instances
Date: Sat, 17 Aug 2019 01:12:33 +0000 [thread overview]
Message-ID: <3C3EFB470A303B4AB093197B6777CCEC50462301@PGSMSX111.gar.corp.intel.com> (raw)
In-Reply-To: <20190817001603.30632-15-michael.a.kubacki@intel.com>
Reviewed-by: Chasel Chiu <chasel.chiu@intel.com>
> -----Original Message-----
> From: Kubacki, Michael A
> Sent: Saturday, August 17, 2019 8:16 AM
> To: devel@edk2.groups.io
> Cc: Chaganty, Rangasai V <rangasai.v.chaganty@intel.com>; Chiu, Chasel
> <chasel.chiu@intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone@intel.com>; Gao, Liming <liming.gao@intel.com>;
> Kinney, Michael D <michael.d.kinney@intel.com>; Sinha, Ankit
> <ankit.sinha@intel.com>
> Subject: [edk2-platforms][PATCH V1 14/37] CoffeelakeSiliconPkg: Add package
> common library instances
>
> REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2082
>
> Adds package-level library class instances.
>
> * BaseConfigBlockLib - Library functions for config block management.
> * BaseSiConfigBlockLib - Library functions for managing component
> config blocks.
> * DxeAslUpdateLib - Services to update ACPI tables.
> * PeiDxeSmmMmPciLib - Services to manage PCI Express addresses.
> * PeiStallPpiLib - Installs an instance of EFI_PEI_STALL_PPI.
> * PeiSiPolicyLib - Installs an instance of the Silicon Policy PPI.
> Prints the Silicon Policy PPI values when DEBUG prints are enabled.
>
> Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
> Cc: Chasel Chiu <chasel.chiu@intel.com>
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Cc: Ankit Sinha <ankit.sinha@intel.com>
> Signed-off-by: Michael Kubacki <michael.a.kubacki@intel.com>
> ---
>
> Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseConfigBlockLib/BaseConfigBlo
> ckLib.inf | 29 ++
>
> Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseSiConfigBlockLib/BaseSiConfig
> BlockLib.inf | 33 ++
>
> Silicon/Intel/CoffeelakeSiliconPkg/Library/DxeAslUpdateLib/DxeAslUpdateLib
> .inf | 40 ++
>
> Silicon/Intel/CoffeelakeSiliconPkg/Library/DxeAslUpdateLibNull/DxeAslUpdat
> eLibNull.inf | 30 ++
>
> Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiDxeSmmMmPciLib/PeiDxeSmm
> MmPciLib.inf | 35 ++
>
> Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiInstallStallPpiLib/PeiStallPpiLib.
> inf | 31 ++
> Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiSiPolicyLib/PeiSiPolicyLib.inf
> | 51 +++
> Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiSiPolicyLib/PeiSiPolicyLibrary.h
> | 35 ++
>
> Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseConfigBlockLib/BaseConfigBlo
> ckLib.c | 146 +++++++
>
> Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseSiConfigBlockLib/BaseSiConfig
> BlockLib.c | 87 +++++
>
> Silicon/Intel/CoffeelakeSiliconPkg/Library/DxeAslUpdateLib/DxeAslUpdateLib
> .c | 403 ++++++++++++++++++++
>
> Silicon/Intel/CoffeelakeSiliconPkg/Library/DxeAslUpdateLibNull/DxeAslUpdat
> eLibNull.c | 126 ++++++
>
> Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiDxeSmmMmPciLib/PeiDxeSmm
> MmPciLib.c | 32 ++
>
> Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiInstallStallPpiLib/PeiStallPpiLib.
> c | 78 ++++
> Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiSiPolicyLib/PeiSiPolicyLib.c
> | 214 +++++++++++
>
> Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiSiPolicyLib/PeiSiPolicyLibPreMe
> m.c | 122 ++++++
> Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiSiPolicyLib/SiPrintPolicy.c
> | 36 ++
> 17 files changed, 1528 insertions(+)
>
> diff --git
> a/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseConfigBlockLib/BaseConfigB
> lockLib.inf
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseConfigBlockLib/BaseConfigB
> lockLib.inf
> new file mode 100644
> index 0000000000..a7def2481d
> --- /dev/null
> +++
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseConfigBlockLib/BaseConfigB
> lockLib.inf
> @@ -0,0 +1,29 @@
> +## @file
> +# Component INF file for the BaseConfigBlock library.
> +#
> +# Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
> +#
> +# SPDX-License-Identifier: BSD-2-Clause-Patent
> +#
> +##
> +
> +[Defines]
> +INF_VERSION = 0x00010017
> +BASE_NAME = BaseConfigBlockLib
> +FILE_GUID = 1EC07EA8-7808-4e06-9D79-309AE331D2D5
> +VERSION_STRING = 1.0
> +MODULE_TYPE = BASE
> +LIBRARY_CLASS = ConfigBlockLib
> +
> +
> +[Packages]
> +MdePkg/MdePkg.dec
> +CoffeelakeSiliconPkg/SiPkg.dec
> +
> +[Sources]
> +BaseConfigBlockLib.c
> +
> +[LibraryClasses]
> +DebugLib
> +BaseMemoryLib
> +MemoryAllocationLib
> diff --git
> a/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseSiConfigBlockLib/BaseSiCon
> figBlockLib.inf
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseSiConfigBlockLib/BaseSiCon
> figBlockLib.inf
> new file mode 100644
> index 0000000000..b04dc3cfa4
> --- /dev/null
> +++
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseSiConfigBlockLib/BaseSiCon
> figBlockLib.inf
> @@ -0,0 +1,33 @@
> +## @file
> +# Component description file for the BaseSiConfigBlockLib library.
> +#
> +# Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
> +#
> +# SPDX-License-Identifier: BSD-2-Clause-Patent
> +#
> +##
> +
> +[Defines]
> +INF_VERSION = 0x00010017
> +BASE_NAME = BaseSiConfigBlockLib
> +FILE_GUID = 6C068D0F-F48E-48CB-B369-433E507AF4A2
> +VERSION_STRING = 1.0
> +MODULE_TYPE = BASE
> +LIBRARY_CLASS = SiConfigBlockLib
> +
> +
> +[LibraryClasses]
> +DebugLib
> +IoLib
> +ConfigBlockLib
> +
> +
> +[Packages]
> +MdePkg/MdePkg.dec
> +CoffeelakeSiliconPkg/SiPkg.dec
> +
> +
> +[Sources]
> +BaseSiConfigBlockLib.c
> +
> +
> diff --git
> a/Silicon/Intel/CoffeelakeSiliconPkg/Library/DxeAslUpdateLib/DxeAslUpdate
> Lib.inf
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/DxeAslUpdateLib/DxeAslUpdate
> Lib.inf
> new file mode 100644
> index 0000000000..658caccb43
> --- /dev/null
> +++
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/DxeAslUpdateLib/DxeAslUpdate
> Lib.inf
> @@ -0,0 +1,40 @@
> +## @file
> +# Provides services to update ASL tables.
> +#
> +# Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
> +#
> +# SPDX-License-Identifier: BSD-2-Clause-Patent
> +#
> +##
> +
> +[Defines]
> +INF_VERSION = 0x00010017
> +BASE_NAME = DxeAslUpdateLib
> +FILE_GUID = 8621697D-4E3A-4bf2-ADB0-3E2FF06559CA
> +VERSION_STRING = 1.0
> +MODULE_TYPE = BASE
> +LIBRARY_CLASS = AslUpdateLib
> +
> +
> +[LibraryClasses]
> +BaseLib
> +IoLib
> +DebugLib
> +PcdLib
> +BaseMemoryLib
> +UefiLib
> +MemoryAllocationLib
> +
> +
> +[Packages]
> +MdePkg/MdePkg.dec
> +CoffeelakeSiliconPkg/SiPkg.dec
> +
> +
> +[Sources]
> +DxeAslUpdateLib.c
> +
> +
> +[Protocols]
> +gEfiAcpiTableProtocolGuid ## CONSUMES
> +gEfiAcpiSdtProtocolGuid ## CONSUMES
> diff --git
> a/Silicon/Intel/CoffeelakeSiliconPkg/Library/DxeAslUpdateLibNull/DxeAslUp
> dateLibNull.inf
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/DxeAslUpdateLibNull/DxeAslUp
> dateLibNull.inf
> new file mode 100644
> index 0000000000..ae78a8e8f9
> --- /dev/null
> +++
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/DxeAslUpdateLibNull/DxeAslUp
> dateLibNull.inf
> @@ -0,0 +1,30 @@
> +## @file
> +# Provides services to update ASL tables.
> +#
> +# Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
> +#
> +# SPDX-License-Identifier: BSD-2-Clause-Patent
> +#
> +##
> +
> +[Defines]
> +INF_VERSION = 0x00010017
> +BASE_NAME = DxeAslUpdateLibNull
> +FILE_GUID = C7A3725F-6146-4FAB-B2EF-B4CED222DA52
> +VERSION_STRING = 1.0
> +MODULE_TYPE = BASE
> +LIBRARY_CLASS = AslUpdateLib
> +
> +
> +
> +
> +[Packages]
> +MdePkg/MdePkg.dec
> +CoffeelakeSiliconPkg/SiPkg.dec
> +
> +
> +[Sources]
> +DxeAslUpdateLibNull.c
> +
> +
> +
> diff --git
> a/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiDxeSmmMmPciLib/PeiDxeSm
> mMmPciLib.inf
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiDxeSmmMmPciLib/PeiDxeSm
> mMmPciLib.inf
> new file mode 100644
> index 0000000000..fdf376bc70
> --- /dev/null
> +++
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiDxeSmmMmPciLib/PeiDxeSm
> mMmPciLib.inf
> @@ -0,0 +1,35 @@
> +## @file
> +# Component description file for the PeiDxeSmmMmPciLib
> +#
> +# Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
> +#
> +# SPDX-License-Identifier: BSD-2-Clause-Patent
> +#
> +##
> +
> +[Defines]
> +INF_VERSION = 0x00010017
> +BASE_NAME = PeiDxeSmmMmPciLib
> +FILE_GUID = D03D6670-A032-11E2-9E96-0800200C9A66
> +VERSION_STRING = 1.0
> +MODULE_TYPE = BASE
> +LIBRARY_CLASS = MmPciLib
> +#
> +# The following information is for reference only and not required by the
> build tools.
> +#
> +# VALID_ARCHITECTURES = IA32 X64 IPF EBC
> +#
> +
> +[LibraryClasses]
> +BaseLib
> +PcdLib
> +DebugLib
> +
> +[Packages]
> +MdePkg/MdePkg.dec
> +
> +[Pcd]
> +gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress
> +
> +[Sources]
> +PeiDxeSmmMmPciLib.c
> diff --git
> a/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiInstallStallPpiLib/PeiStallPpiLi
> b.inf
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiInstallStallPpiLib/PeiStallPpiLi
> b.inf
> new file mode 100644
> index 0000000000..2e07a90406
> --- /dev/null
> +++
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiInstallStallPpiLib/PeiStallPpiLi
> b.inf
> @@ -0,0 +1,31 @@
> +## @file
> +# Library description file for Stall Ppi installation
> +#
> +# Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
> +#
> +# SPDX-License-Identifier: BSD-2-Clause-Patent
> +#
> +##
> +
> +[Defines]
> +INF_VERSION = 0x00010017
> +BASE_NAME = PeiStallPpiLib
> +FILE_GUID = 73E3DD0E-B2C1-4429-B0B8-F8C2BD64F8CE
> +VERSION_STRING = 1.0
> +MODULE_TYPE = PEIM
> +LIBRARY_CLASS = StallPpiLib
> +
> +[Sources]
> +PeiStallPpiLib.c
> +
> +[LibraryClasses]
> +BaseLib
> +DebugLib
> +TimerLib
> +PeiServicesLib
> +
> +[Packages]
> +MdePkg/MdePkg.dec
> +
> +[Ppis]
> +gEfiPeiStallPpiGuid ## PRODUCES
> diff --git
> a/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiSiPolicyLib/PeiSiPolicyLib.inf
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiSiPolicyLib/PeiSiPolicyLib.inf
> new file mode 100644
> index 0000000000..c5945c3129
> --- /dev/null
> +++
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiSiPolicyLib/PeiSiPolicyLib.inf
> @@ -0,0 +1,51 @@
> +## @file
> +# Component description file for the PeiSiPolicyLib library.
> +#
> +# Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
> +#
> +# SPDX-License-Identifier: BSD-2-Clause-Patent
> +#
> +##
> +
> +[Defines]
> +INF_VERSION = 0x00010017
> +BASE_NAME = PeiSiPolicyLib
> +FILE_GUID = 97584FAE-9299-4202-9889-2D339E4BFA5B
> +VERSION_STRING = 1.0
> +MODULE_TYPE = PEIM
> +LIBRARY_CLASS = SiPolicyLib
> +
> +
> +[LibraryClasses]
> +DebugLib
> +IoLib
> +PeiServicesLib
> +BaseMemoryLib
> +MemoryAllocationLib
> +ConfigBlockLib
> +CpuPolicyLib
> +PchPolicyLib
> +PeiSaPolicyLib
> +PeiMePolicyLib
> +PcdLib
> +
> +[Packages]
> +MdePkg/MdePkg.dec
> +CoffeelakeSiliconPkg/SiPkg.dec
> +
> +
> +[Sources]
> +PeiSiPolicyLib.c
> +PeiSiPolicyLibrary.h
> +SiPrintPolicy.c
> +PeiSiPolicyLibPreMem.c
> +
> +
> +[Guids]
> +gSiConfigGuid ## CONSUMES
> +
> +
> +[Ppis]
> +gSiPolicyPpiGuid ## PRODUCES
> +gSiPreMemPolicyPpiGuid ## PRODUCES
> +
> diff --git
> a/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiSiPolicyLib/PeiSiPolicyLibrary.
> h
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiSiPolicyLib/PeiSiPolicyLibrary.
> h
> new file mode 100644
> index 0000000000..cb6b14fdd1
> --- /dev/null
> +++
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiSiPolicyLib/PeiSiPolicyLibrary.
> h
> @@ -0,0 +1,35 @@
> +/** @file
> + Header file for the PeiSiPolicyLib library.
> +
> + Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +#ifndef _PEI_SI_POLICY_LIBRARY_H_
> +#define _PEI_SI_POLICY_LIBRARY_H_
> +
> +#include <Library/DebugLib.h>
> +#include <Library/IoLib.h>
> +#include <Library/BaseMemoryLib.h>
> +#include <Library/PeiServicesLib.h>
> +#include <Library/MemoryAllocationLib.h>
> +#include <Library/ConfigBlockLib.h>
> +#include <Ppi/SiPolicy.h>
> +#include <Library/SiPolicyLib.h>
> +#include <Library/PchPolicyLib.h>
> +#include <Library/PeiMePolicyLib.h>
> +#include <Library/PeiSaPolicyLib.h>
> +#include <PchAccess.h>
> +#include <Library/CpuPolicyLib.h>
> +
> +#define TEMP_MEM_BASE_ADDRESS 0xFE600000
> +#define TEMP_IO_BASE_ADDRESS 0xD000
> +
> +//
> +// IO/MMIO resource limits
> +//
> +#define TEMP_MEM_SIZE V_PCH_XDCI_MEM_LENGTH
> +#define TEMP_IO_SIZE 0x10
> +
> +#endif // _PEI_SI_POLICY_LIBRARY_H_
> diff --git
> a/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseConfigBlockLib/BaseConfigB
> lockLib.c
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseConfigBlockLib/BaseConfigB
> lockLib.c
> new file mode 100644
> index 0000000000..369dab97ee
> --- /dev/null
> +++
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseConfigBlockLib/BaseConfigB
> lockLib.c
> @@ -0,0 +1,146 @@
> +/** @file
> + Library functions for Config Block management.
> +
> + Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +#include <ConfigBlock.h>
> +#include <Library/ConfigBlockLib.h>
> +#include <Library/BaseMemoryLib.h>
> +#include <Library/MemoryAllocationLib.h>
> +#include <Library/DebugLib.h>
> +
> +/**
> + Create config block table
> +
> + @param[in] TotalSize - Max size to be allocated for the
> Config Block Table
> + @param[out] ConfigBlockTableAddress - On return, points to a
> pointer to the beginning of Config Block Table Address
> +
> + @retval EFI_INVALID_PARAMETER - Invalid Parameter
> + @retval EFI_OUT_OF_RESOURCES - Out of resources
> + @retval EFI_SUCCESS - Successfully created Config Block Table at
> ConfigBlockTableAddress
> +**/
> +EFI_STATUS
> +EFIAPI
> +CreateConfigBlockTable (
> + IN UINT16 TotalSize,
> + OUT VOID **ConfigBlockTableAddress
> + )
> +{
> + CONFIG_BLOCK_TABLE_HEADER *ConfigBlkTblAddrPtr;
> + UINT32 ConfigBlkTblHdrSize;
> +
> + ConfigBlkTblHdrSize = (UINT32)(sizeof (CONFIG_BLOCK_TABLE_HEADER));
> +
> + if (TotalSize <= (ConfigBlkTblHdrSize + sizeof (CONFIG_BLOCK_HEADER))) {
> + DEBUG ((DEBUG_ERROR, "Invalid Parameter\n"));
> + return EFI_INVALID_PARAMETER;
> + }
> +
> + ConfigBlkTblAddrPtr = (CONFIG_BLOCK_TABLE_HEADER *)AllocateZeroPool
> (TotalSize);
> + if (ConfigBlkTblAddrPtr == NULL) {
> + DEBUG ((DEBUG_ERROR, "Could not allocate memory.\n"));
> + return EFI_OUT_OF_RESOURCES;
> + }
> + ConfigBlkTblAddrPtr->NumberOfBlocks = 0;
> + ConfigBlkTblAddrPtr->Header.GuidHob.Header.HobLength = TotalSize;
> + ConfigBlkTblAddrPtr->AvailableSize = TotalSize - ConfigBlkTblHdrSize;
> +
> + *ConfigBlockTableAddress = (VOID *)ConfigBlkTblAddrPtr;
> +
> + return EFI_SUCCESS;
> +}
> +
> +/**
> + Add config block into config block table structure
> +
> + @param[in] ConfigBlockTableAddress - A pointer to the beginning of
> Config Block Table Address
> + @param[out] ConfigBlockAddress - On return, points to a pointer
> to the beginning of Config Block Address
> +
> + @retval EFI_OUT_OF_RESOURCES - Config Block Table is full and cannot add
> new Config Block or
> + Config Block Offset Table is full and cannot add new
> Config Block.
> + @retval EFI_SUCCESS - Successfully added Config Block
> +**/
> +EFI_STATUS
> +EFIAPI
> +AddConfigBlock (
> + IN VOID *ConfigBlockTableAddress,
> + OUT VOID **ConfigBlockAddress
> + )
> +{
> + CONFIG_BLOCK *TempConfigBlk;
> + CONFIG_BLOCK_TABLE_HEADER *ConfigBlkTblAddrPtr;
> + CONFIG_BLOCK *ConfigBlkAddrPtr;
> + UINT16 ConfigBlkSize;
> +
> + ConfigBlkTblAddrPtr = (CONFIG_BLOCK_TABLE_HEADER
> *)ConfigBlockTableAddress;
> + ConfigBlkAddrPtr = (CONFIG_BLOCK *)(*ConfigBlockAddress);
> + ConfigBlkSize = ConfigBlkAddrPtr->Header.GuidHob.Header.HobLength;
> + DEBUG ((DEBUG_INFO, "Config Block GUID: %g / Config Block Size: 0x%x
> bytes\n", &(ConfigBlkAddrPtr->Header.GuidHob.Name), ConfigBlkSize));
> + if ((ConfigBlkSize % 4) != 0) {
> + DEBUG ((DEBUG_ERROR, "Config Block must be multiples of 4 bytes\n"));
> + return EFI_INVALID_PARAMETER;
> + }
> + if (ConfigBlkTblAddrPtr->AvailableSize < ConfigBlkSize) {
> + DEBUG ((DEBUG_ERROR, "Config Block Table is full and cannot add new
> Config Block.\n"));
> + DEBUG ((DEBUG_ERROR, "Available Config Block Size: 0x%x bytes /
> Requested Config Block Size: 0x%x bytes\n",
> ConfigBlkTblAddrPtr->AvailableSize, ConfigBlkSize));
> + return EFI_OUT_OF_RESOURCES;
> + }
> +
> + TempConfigBlk = (CONFIG_BLOCK *)((UINTN)ConfigBlkTblAddrPtr +
> (UINTN)(ConfigBlkTblAddrPtr->Header.GuidHob.Header.HobLength -
> ConfigBlkTblAddrPtr->AvailableSize));
> + CopyMem (&TempConfigBlk->Header, &ConfigBlkAddrPtr->Header,
> sizeof(CONFIG_BLOCK_HEADER));
> +
> + ConfigBlkTblAddrPtr->NumberOfBlocks++;
> + ConfigBlkTblAddrPtr->AvailableSize = ConfigBlkTblAddrPtr->AvailableSize -
> ConfigBlkSize;
> +
> + *ConfigBlockAddress = (VOID *) TempConfigBlk;
> + DEBUG ((DEBUG_INFO, "Config Block Address: 0x%x / Available Config Block
> Size: 0x%x bytes\n", (UINT32)(UINTN)*ConfigBlockAddress,
> ConfigBlkTblAddrPtr->AvailableSize));
> + return EFI_SUCCESS;
> +}
> +
> +/**
> + Retrieve a specific Config Block data by GUID
> +
> + @param[in] ConfigBlockTableAddress - A pointer to the beginning
> of Config Block Table Address
> + @param[in] ConfigBlockGuid - A pointer to the GUID uses to
> search specific Config Block
> + @param[out] ConfigBlockAddress - On return, points to a
> pointer to the beginning of Config Block Address
> +
> + @retval EFI_NOT_FOUND - Could not find the Config Block
> + @retval EFI_SUCCESS - Config Block found and return
> +**/
> +EFI_STATUS
> +EFIAPI
> +GetConfigBlock (
> + IN VOID *ConfigBlockTableAddress,
> + IN EFI_GUID *ConfigBlockGuid,
> + OUT VOID **ConfigBlockAddress
> + )
> +{
> + UINT16 OffsetIndex;
> + CONFIG_BLOCK *TempConfigBlk;
> + CONFIG_BLOCK_TABLE_HEADER *ConfigBlkTblAddrPtr;
> + UINT32 ConfigBlkTblHdrSize;
> + UINT32 ConfigBlkOffset;
> + UINT16 NumOfBlocks;
> +
> + ConfigBlkTblHdrSize = (UINT32)(sizeof (CONFIG_BLOCK_TABLE_HEADER));
> + ConfigBlkTblAddrPtr = (CONFIG_BLOCK_TABLE_HEADER
> *)ConfigBlockTableAddress;
> + NumOfBlocks = ConfigBlkTblAddrPtr->NumberOfBlocks;
> +
> + ConfigBlkOffset = 0;
> + for (OffsetIndex = 0; OffsetIndex < NumOfBlocks; OffsetIndex++) {
> + if ((ConfigBlkTblHdrSize + ConfigBlkOffset) >
> (ConfigBlkTblAddrPtr->Header.GuidHob.Header.HobLength)) {
> + break;
> + }
> + TempConfigBlk = (CONFIG_BLOCK *)((UINTN)ConfigBlkTblAddrPtr +
> (UINTN)ConfigBlkTblHdrSize + (UINTN)ConfigBlkOffset);
> + if (CompareGuid (&(TempConfigBlk->Header.GuidHob.Name),
> ConfigBlockGuid)) {
> + *ConfigBlockAddress = (VOID *)TempConfigBlk;
> + return EFI_SUCCESS;
> + }
> + ConfigBlkOffset = ConfigBlkOffset +
> TempConfigBlk->Header.GuidHob.Header.HobLength;
> + }
> + DEBUG ((DEBUG_ERROR, "Could not find the config block.\n"));
> + return EFI_NOT_FOUND;
> +}
> diff --git
> a/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseSiConfigBlockLib/BaseSiCon
> figBlockLib.c
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseSiConfigBlockLib/BaseSiCon
> figBlockLib.c
> new file mode 100644
> index 0000000000..16a14b3245
> --- /dev/null
> +++
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseSiConfigBlockLib/BaseSiCon
> figBlockLib.c
> @@ -0,0 +1,87 @@
> +/** @file
> + This file is BaseSiConfigBlockLib library is used to add config blocks
> + to config block header.
> +
> + Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +#include <ConfigBlock.h>
> +#include <Library/DebugLib.h>
> +#include <Library/IoLib.h>
> +#include <Library/BaseMemoryLib.h>
> +#include <Library/ConfigBlockLib.h>
> +#include <Library/SiConfigBlockLib.h>
> +
> +
> +/**
> + GetComponentConfigBlockTotalSize get config block table total size.
> +
> + @param[in] ComponentBlocks Component blocks array
> + @param[in] TotalBlockCount Number of blocks
> +
> + @retval Size of config block table
> +**/
> +UINT16
> +EFIAPI
> +GetComponentConfigBlockTotalSize (
> + IN COMPONENT_BLOCK_ENTRY *ComponentBlocks,
> + IN UINT16 TotalBlockCount
> + )
> +{
> + UINT16 TotalBlockSize;
> + UINT16 BlockCount;
> +
> + TotalBlockSize = 0;
> + for (BlockCount = 0 ; BlockCount < TotalBlockCount; BlockCount++) {
> + TotalBlockSize += (UINT32) ComponentBlocks[BlockCount].Size;
> + DEBUG ((DEBUG_INFO, "TotalBlockSize after adding Block[0x%x]= 0x%x\n",
> BlockCount, TotalBlockSize));
> + }
> +
> + return TotalBlockSize;
> +}
> +
> +/**
> + AddComponentConfigBlocks add all config blocks.
> +
> + @param[in] ConfigBlockTableAddress The pointer to add config blocks
> + @param[in] ComponentBlocks Config blocks array
> + @param[in] TotalBlockCount Number of blocks
> +
> + @retval EFI_SUCCESS The policy default is initialized.
> + @retval EFI_OUT_OF_RESOURCES Insufficient resources to create
> buffer
> +**/
> +EFI_STATUS
> +EFIAPI
> +AddComponentConfigBlocks (
> + IN VOID *ConfigBlockTableAddress,
> + IN COMPONENT_BLOCK_ENTRY *ComponentBlocks,
> + IN UINT16 TotalBlockCount
> + )
> +{
> + UINT16 BlockCount;
> + VOID *ConfigBlockPointer;
> + CONFIG_BLOCK ConfigBlockBuf;
> + EFI_STATUS Status;
> +
> + Status = EFI_SUCCESS;
> +
> + //
> + // Initialize ConfigBlockPointer to NULL
> + //
> + ConfigBlockPointer = NULL;
> + //
> + // Loop to identify each config block from ComponentBlocks[] Table and add
> each of them
> + //
> + for (BlockCount = 0 ; BlockCount < TotalBlockCount; BlockCount++) {
> + CopyMem (&(ConfigBlockBuf.Header.GuidHob.Name),
> ComponentBlocks[BlockCount].Guid, sizeof (EFI_GUID));
> + ConfigBlockBuf.Header.GuidHob.Header.HobLength =
> ComponentBlocks[BlockCount].Size;
> + ConfigBlockBuf.Header.Revision =
> ComponentBlocks[BlockCount].Revision;
> + ConfigBlockPointer = (VOID *)&ConfigBlockBuf;
> + Status = AddConfigBlock ((VOID *)ConfigBlockTableAddress, (VOID
> *)&ConfigBlockPointer);
> + ASSERT_EFI_ERROR (Status);
> + ComponentBlocks[BlockCount].LoadDefault (ConfigBlockPointer);
> + }
> + return Status;
> +}
> diff --git
> a/Silicon/Intel/CoffeelakeSiliconPkg/Library/DxeAslUpdateLib/DxeAslUpdate
> Lib.c
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/DxeAslUpdateLib/DxeAslUpdate
> Lib.c
> new file mode 100644
> index 0000000000..04cf66fd2f
> --- /dev/null
> +++
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/DxeAslUpdateLib/DxeAslUpdate
> Lib.c
> @@ -0,0 +1,403 @@
> +/** @file
> + Boot service DXE ASL update library implementation.
> +
> + These functions in this file can be called during DXE and cannot be called
> during runtime
> + or in SMM which should use a RT or SMM library.
> +
> + This library uses the ACPI Support protocol.
> +
> + Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +#include <Base.h>
> +#include <Uefi/UefiBaseType.h>
> +#include <Uefi/UefiSpec.h>
> +#include <Library/UefiBootServicesTableLib.h>
> +#include <Library/DebugLib.h>
> +#include <Library/UefiLib.h>
> +#include <Library/BaseMemoryLib.h>
> +#include <Library/MemoryAllocationLib.h>
> +
> +#include <Library/AslUpdateLib.h>
> +
> +//
> +// Function implemenations
> +//
> +static EFI_ACPI_SDT_PROTOCOL *mAcpiSdt = NULL;
> +static EFI_ACPI_TABLE_PROTOCOL *mAcpiTable = NULL;
> +
> +/**
> + Initialize the ASL update library state.
> + This must be called prior to invoking other library functions.
> +
> + @retval EFI_SUCCESS - The function completed successfully.
> +**/
> +EFI_STATUS
> +InitializeAslUpdateLib (
> + VOID
> + )
> +{
> + EFI_STATUS Status;
> +
> + ///
> + /// Locate ACPI tables
> + ///
> + Status = gBS->LocateProtocol (&gEfiAcpiSdtProtocolGuid, NULL, (VOID **)
> &mAcpiSdt);
> + ASSERT_EFI_ERROR (Status);
> + Status = gBS->LocateProtocol (&gEfiAcpiTableProtocolGuid, NULL, (VOID **)
> &mAcpiTable);
> + ASSERT_EFI_ERROR (Status);
> + return Status;
> +}
> +
> +
> +/**
> + This procedure will update immediate value assigned to a Name
> +
> + @param[in] AslSignature - The signature of Operation Region that we
> want to update.
> + @param[in] Buffer - source of data to be written over original aml
> + @param[in] Length - length of data to be overwritten
> +
> + @retval EFI_SUCCESS - The function completed successfully.
> + @retval EFI_NOT_FOUND - Failed to locate AcpiTable.
> +**/
> +EFI_STATUS
> +UpdateNameAslCode (
> + IN UINT32 AslSignature,
> + IN VOID *Buffer,
> + IN UINTN Length
> + )
> +{
> + EFI_STATUS Status;
> + EFI_ACPI_DESCRIPTION_HEADER *Table;
> + UINT8 *CurrPtr;
> + UINT32 *Signature;
> + UINT8 *DsdtPointer;
> + UINTN Handle;
> + UINT8 DataSize;
> +
> + if (mAcpiTable == NULL) {
> + InitializeAslUpdateLib ();
> + if (mAcpiTable == NULL) {
> + return EFI_NOT_READY;
> + }
> + }
> +
> + ///
> + /// Locate table with matching ID
> + ///
> + Handle = 0;
> + Status = LocateAcpiTableBySignature (
> +
> EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE,
> + (EFI_ACPI_DESCRIPTION_HEADER **) &Table,
> + &Handle
> + );
> + if (EFI_ERROR (Status)) {
> + return Status;
> + }
> +
> + ///
> + /// Point to the beginning of the DSDT table
> + ///
> + CurrPtr = (UINT8 *) Table;
> + if (CurrPtr == NULL) {
> + return EFI_NOT_FOUND;
> + }
> +
> + ///
> + /// Loop through the ASL looking for values that we must fix up.
> + ///
> + for (DsdtPointer = CurrPtr; DsdtPointer < (CurrPtr +
> ((EFI_ACPI_COMMON_HEADER *) CurrPtr)->Length); DsdtPointer++) {
> + ///
> + /// Get a pointer to compare for signature
> + ///
> + Signature = (UINT32 *) DsdtPointer;
> + ///
> + /// Check if this is the Device Object signature we are looking for
> + ///
> + if ((*Signature) == AslSignature) {
> + ///
> + /// Look for Name Encoding
> + ///
> + if (*(DsdtPointer-1) == AML_NAME_OP) {
> + ///
> + /// Check if size of new and old data is the same
> + ///
> + DataSize = *(DsdtPointer+4);
> + if ((Length == 1 && DataSize == 0xA) ||
> + (Length == 2 && DataSize == 0xB) ||
> + (Length == 4 && DataSize == 0xC)) {
> + CopyMem (DsdtPointer+5, Buffer, Length);
> + } else if (Length == 1 && ((*(UINT8*) Buffer) == 0 || (*(UINT8*) Buffer) ==
> 1) && (DataSize == 0 || DataSize == 1)) {
> + CopyMem (DsdtPointer+4, Buffer, Length);
> + } else {
> + FreePool (Table);
> + return EFI_BAD_BUFFER_SIZE;
> + }
> + Status = mAcpiTable->UninstallAcpiTable (
> + mAcpiTable,
> + Handle
> + );
> + Handle = 0;
> + Status = mAcpiTable->InstallAcpiTable (
> + mAcpiTable,
> + Table,
> + Table->Length,
> + &Handle
> + );
> + FreePool (Table);
> + return Status;
> + }
> + }
> + }
> + return EFI_NOT_FOUND;
> +}
> +
> +/**
> + This procedure will update the name of ASL Method
> +
> + @param[in] AslSignature - The signature of Operation Region that we
> want to update.
> + @param[in] Buffer - source of data to be written over original aml
> + @param[in] Length - length of data to be overwritten
> +
> + @retval EFI_SUCCESS - The function completed successfully.
> + @retval EFI_NOT_FOUND - Failed to locate AcpiTable.
> +**/
> +EFI_STATUS
> +UpdateMethodAslCode (
> + IN UINT32 AslSignature,
> + IN VOID *Buffer,
> + IN UINTN Length
> + )
> +{
> + EFI_STATUS Status;
> + EFI_ACPI_DESCRIPTION_HEADER *Table;
> + UINT8 *CurrPtr;
> + UINT32 *Signature;
> + UINT8 *DsdtPointer;
> + UINTN Handle;
> +
> + if (mAcpiTable == NULL) {
> + InitializeAslUpdateLib ();
> + if (mAcpiTable == NULL) {
> + return EFI_NOT_READY;
> + }
> + }
> +
> + ///
> + /// Locate table with matching ID
> + ///
> + Handle = 0;
> + Status = LocateAcpiTableBySignature (
> +
> EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE,
> + (EFI_ACPI_DESCRIPTION_HEADER **) &Table,
> + &Handle
> + );
> + if (EFI_ERROR (Status)) {
> + return Status;
> + }
> +
> + ///
> + /// Point to the beginning of the DSDT table
> + ///
> + CurrPtr = (UINT8 *) Table;
> + if (CurrPtr == NULL) {
> + return EFI_NOT_FOUND;
> + }
> +
> + ///
> + /// Loop through the ASL looking for values that we must fix up.
> + ///
> + for (DsdtPointer = CurrPtr; DsdtPointer < (CurrPtr +
> ((EFI_ACPI_COMMON_HEADER *) CurrPtr)->Length); DsdtPointer++) {
> + ///
> + /// Get a pointer to compare for signature
> + ///
> + Signature = (UINT32 *) DsdtPointer;
> + ///
> + /// Check if this is the Device Object signature we are looking for
> + ///
> + if ((*Signature) == AslSignature) {
> + ///
> + /// Look for Name Encoding
> + ///
> + if ((*(DsdtPointer-3) == AML_METHOD_OP)
> + || (*(DsdtPointer-2) == AML_METHOD_OP)
> + )
> + {
> + CopyMem (DsdtPointer, Buffer, Length);
> + Status = mAcpiTable->UninstallAcpiTable (
> + mAcpiTable,
> + Handle
> + );
> + Handle = 0;
> + Status = mAcpiTable->InstallAcpiTable (
> + mAcpiTable,
> + Table,
> + Table->Length,
> + &Handle
> + );
> + FreePool (Table);
> + return Status;
> + }
> + }
> + }
> + return EFI_NOT_FOUND;
> +}
> +
> +/**
> + This function uses the ACPI SDT protocol to locate an ACPI table.
> + It is really only useful for finding tables that only have a single instance,
> + e.g. FADT, FACS, MADT, etc. It is not good for locating SSDT, etc.
> +
> + @param[in] Signature - Pointer to an ASCII string containing the
> OEM Table ID from the ACPI table header
> + @param[in, out] Table - Updated with a pointer to the table
> + @param[in, out] Handle - AcpiSupport protocol table handle for the
> table found
> + @param[in, out] Version - The version of the table desired
> +
> + @retval EFI_SUCCESS - The function completed successfully.
> +**/
> +EFI_STATUS
> +LocateAcpiTableBySignature (
> + IN UINT32 Signature,
> + IN OUT EFI_ACPI_DESCRIPTION_HEADER **Table,
> + IN OUT UINTN *Handle
> + )
> +{
> + EFI_STATUS Status;
> + INTN Index;
> + EFI_ACPI_TABLE_VERSION Version;
> + EFI_ACPI_DESCRIPTION_HEADER *OrgTable;
> +
> + if (mAcpiSdt == NULL) {
> + InitializeAslUpdateLib ();
> + if (mAcpiSdt == NULL) {
> + return EFI_NOT_READY;
> + }
> + }
> +
> + ///
> + /// Locate table with matching ID
> + ///
> + Version = 0;
> + Index = 0;
> + do {
> + Status = mAcpiSdt->GetAcpiTable (Index, (EFI_ACPI_SDT_HEADER
> **)&OrgTable, &Version, Handle);
> + if (Status == EFI_NOT_FOUND) {
> + break;
> + }
> + ASSERT_EFI_ERROR (Status);
> + Index++;
> + } while (OrgTable->Signature != Signature);
> +
> + if (Status != EFI_NOT_FOUND) {
> + *Table = AllocateCopyPool (OrgTable->Length, OrgTable);
> + ASSERT (*Table);
> + }
> +
> + ///
> + /// If we found the table, there will be no error.
> + ///
> + return Status;
> +}
> +
> +/**
> + This function uses the ACPI SDT protocol to locate an ACPI SSDT table.
> +
> + @param[in] TableId - Pointer to an ASCII string containing the OEM
> Table ID from the ACPI table header
> + @param[in] TableIdSize - Length of the TableId to match. Table ID are
> 8 bytes long, this function
> + will consider it a match if the first TableIdSize bytes
> match
> + @param[in, out] Table - Updated with a pointer to the table
> + @param[in, out] Handle - AcpiSupport protocol table handle for the
> table found
> + @param[in, out] Version - See AcpiSupport protocol, GetAcpiTable
> function for use
> +
> + @retval EFI_SUCCESS - The function completed successfully.
> +**/
> +EFI_STATUS
> +LocateAcpiTableByOemTableId (
> + IN UINT8 *TableId,
> + IN UINT8 TableIdSize,
> + IN OUT EFI_ACPI_DESCRIPTION_HEADER **Table,
> + IN OUT UINTN *Handle
> + )
> +{
> + EFI_STATUS Status;
> + INTN Index;
> + EFI_ACPI_TABLE_VERSION Version;
> + EFI_ACPI_DESCRIPTION_HEADER *OrgTable;
> +
> + if (mAcpiSdt == NULL) {
> + InitializeAslUpdateLib ();
> + if (mAcpiSdt == NULL) {
> + return EFI_NOT_READY;
> + }
> + }
> + ///
> + /// Locate table with matching ID
> + ///
> + Version = 0;
> + Index = 0;
> + do {
> + Status = mAcpiSdt->GetAcpiTable (Index, (EFI_ACPI_SDT_HEADER
> **)&OrgTable, &Version, Handle);
> + if (Status == EFI_NOT_FOUND) {
> + break;
> + }
> + ASSERT_EFI_ERROR (Status);
> + Index++;
> + } while (CompareMem (&(OrgTable->OemTableId), TableId, TableIdSize));
> +
> + if (Status != EFI_NOT_FOUND) {
> + *Table = AllocateCopyPool (OrgTable->Length, OrgTable);
> + ASSERT (*Table);
> + }
> +
> + ///
> + /// If we found the table, there will be no error.
> + ///
> + return Status;
> +}
> +
> +/**
> + This function calculates and updates an UINT8 checksum.
> +
> + @param[in] Buffer Pointer to buffer to checksum
> + @param[in] Size Number of bytes to checksum
> + @param[in] ChecksumOffset Offset to place the checksum result in
> +
> + @retval EFI_SUCCESS The function completed successfully.
> +**/
> +EFI_STATUS
> +AcpiChecksum (
> + IN VOID *Buffer,
> + IN UINTN Size,
> + IN UINTN ChecksumOffset
> + )
> +{
> + UINT8 Sum;
> + UINT8 *Ptr;
> +
> + Sum = 0;
> + ///
> + /// Initialize pointer
> + ///
> + Ptr = Buffer;
> +
> + ///
> + /// set checksum to 0 first
> + ///
> + Ptr[ChecksumOffset] = 0;
> +
> + ///
> + /// add all content of buffer
> + ///
> + while (Size--) {
> + Sum = (UINT8) (Sum + (*Ptr++));
> + }
> + ///
> + /// set checksum
> + ///
> + Ptr = Buffer;
> + Ptr[ChecksumOffset] = (UINT8) (0xff - Sum + 1);
> +
> + return EFI_SUCCESS;
> +}
> diff --git
> a/Silicon/Intel/CoffeelakeSiliconPkg/Library/DxeAslUpdateLibNull/DxeAslUp
> dateLibNull.c
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/DxeAslUpdateLibNull/DxeAslUp
> dateLibNull.c
> new file mode 100644
> index 0000000000..a7ce92b7c3
> --- /dev/null
> +++
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/DxeAslUpdateLibNull/DxeAslUp
> dateLibNull.c
> @@ -0,0 +1,126 @@
> +/** @file
> + Boot service DXE ASL update library implementation.
> +
> + These functions in this file can be called during DXE and cannot be called
> during runtime
> + or in SMM which should use a RT or SMM library.
> +
> + This library uses the ACPI Support protocol.
> +
> + Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +#include <Base.h>
> +#include <Uefi/UefiBaseType.h>
> +#include <Uefi/UefiSpec.h>
> +#include <Library/UefiBootServicesTableLib.h>
> +#include <Library/DebugLib.h>
> +#include <Library/UefiLib.h>
> +#include <Library/BaseMemoryLib.h>
> +#include <Library/MemoryAllocationLib.h>
> +
> +#include <Library/AslUpdateLib.h>
> +
> +//
> +// Function implemenations
> +//
> +
> +/**
> + Initialize the ASL update library state.
> + This must be called prior to invoking other library functions.
> +
> + @retval EFI_SUCCESS - The function completed successfully.
> +**/
> +EFI_STATUS
> +InitializeAslUpdateLib (
> + VOID
> + )
> +{
> + return EFI_SUCCESS;
> +}
> +
> +
> +/**
> + This procedure will update immediate value assigned to a Name
> +
> + @param[in] AslSignature - The signature of Operation Region that we
> want to update.
> + @param[in] Buffer - source of data to be written over original aml
> + @param[in] Length - length of data to be overwritten
> +
> + @retval EFI_SUCCESS - The function completed successfully.
> +**/
> +EFI_STATUS
> +UpdateNameAslCode (
> + IN UINT32 AslSignature,
> + IN VOID *Buffer,
> + IN UINTN Length
> + )
> +{
> + return EFI_SUCCESS;
> +}
> +
> +
> +/**
> + This function uses the ACPI SDT protocol to locate an ACPI table.
> + It is really only useful for finding tables that only have a single instance,
> + e.g. FADT, FACS, MADT, etc. It is not good for locating SSDT, etc.
> +
> + @param[in] Signature - Pointer to an ASCII string containing the
> OEM Table ID from the ACPI table header
> + @param[in, out] Table - Updated with a pointer to the table
> + @param[in, out] Handle - AcpiSupport protocol table handle for the
> table found
> + @param[in, out] Version - The version of the table desired
> +
> + @retval EFI_SUCCESS - The function completed successfully.
> +**/
> +EFI_STATUS
> +LocateAcpiTableBySignature (
> + IN UINT32 Signature,
> + IN OUT EFI_ACPI_DESCRIPTION_HEADER **Table,
> + IN OUT UINTN *Handle
> + )
> +{
> + return EFI_SUCCESS;
> +}
> +
> +/**
> + This function uses the ACPI SDT protocol to locate an ACPI SSDT table.
> +
> + @param[in] TableId - Pointer to an ASCII string containing the OEM
> Table ID from the ACPI table header
> + @param[in] TableIdSize - Length of the TableId to match. Table ID are
> 8 bytes long, this function
> + will consider it a match if the first TableIdSize bytes
> match
> + @param[in, out] Table - Updated with a pointer to the table
> + @param[in, out] Handle - AcpiSupport protocol table handle for the
> table found
> + @param[in, out] Version - See AcpiSupport protocol, GetAcpiTable
> function for use
> +
> + @retval EFI_SUCCESS - The function completed successfully.
> +**/
> +EFI_STATUS
> +LocateAcpiTableByOemTableId (
> + IN UINT8 *TableId,
> + IN UINT8 TableIdSize,
> + IN OUT EFI_ACPI_DESCRIPTION_HEADER **Table,
> + IN OUT UINTN *Handle
> + )
> +{
> + return EFI_SUCCESS;
> +}
> +
> +/**
> + This function calculates and updates an UINT8 checksum.
> +
> + @param[in] Buffer Pointer to buffer to checksum
> + @param[in] Size Number of bytes to checksum
> + @param[in] ChecksumOffset Offset to place the checksum result in
> +
> + @retval EFI_SUCCESS The function completed successfully.
> +**/
> +EFI_STATUS
> +AcpiChecksum (
> + IN VOID *Buffer,
> + IN UINTN Size,
> + IN UINTN ChecksumOffset
> + )
> +{
> + return EFI_SUCCESS;
> +}
> diff --git
> a/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiDxeSmmMmPciLib/PeiDxeSm
> mMmPciLib.c
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiDxeSmmMmPciLib/PeiDxeSm
> mMmPciLib.c
> new file mode 100644
> index 0000000000..5085f29d6d
> --- /dev/null
> +++
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiDxeSmmMmPciLib/PeiDxeSm
> mMmPciLib.c
> @@ -0,0 +1,32 @@
> +/** @file
> + This file contains routines that get PCI Express Address
> +
> + Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +#include <Library/BaseLib.h>
> +#include <Library/PcdLib.h>
> +#include <Library/DebugLib.h>
> +
> +/**
> + This procedure will get PCIE address
> +
> + @param[in] Bus Pci Bus Number
> + @param[in] Device Pci Device Number
> + @param[in] Function Pci Function Number
> +
> + @retval PCIE address
> +**/
> +UINTN
> +MmPciBase (
> + IN UINT32 Bus,
> + IN UINT32 Device,
> + IN UINT32 Function
> + )
> +{
> + ASSERT ((Bus <= 0xFF) && (Device <= 0x1F) && (Function <= 0x7));
> +
> + return ((UINTN) PcdGet64 (PcdPciExpressBaseAddress) + (UINTN) (Bus << 20)
> + (UINTN) (Device << 15) + (UINTN) (Function << 12));
> +}
> diff --git
> a/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiInstallStallPpiLib/PeiStallPpiLi
> b.c
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiInstallStallPpiLib/PeiStallPpiLi
> b.c
> new file mode 100644
> index 0000000000..d462aef407
> --- /dev/null
> +++
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiInstallStallPpiLib/PeiStallPpiLi
> b.c
> @@ -0,0 +1,78 @@
> +/** @file
> + Library to install StallPpi.
> +
> + Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +#include <Ppi/Stall.h>
> +#include <Library/BaseLib.h>
> +#include <Library/DebugLib.h>
> +#include <Library/TimerLib.h>
> +#include <Library/PeiServicesLib.h>
> +
> +#define PEI_STALL_RESOLUTION 1
> +
> +/**
> + This function provides a blocking stall for reset at least the given number of
> microseconds
> + stipulated in the final argument.
> +
> + @param PeiServices General purpose services available to every PEIM.
> + @param this Pointer to the local data for the interface.
> + @param Microseconds number of microseconds for which to stall.
> +
> + @retval EFI_SUCCESS the function provided at least the required stall.
> +**/
> +EFI_STATUS
> +EFIAPI
> +Stall (
> + IN CONST EFI_PEI_SERVICES **PeiServices,
> + IN CONST EFI_PEI_STALL_PPI *This,
> + IN UINTN Microseconds
> + );
> +
> +
> +EFI_PEI_STALL_PPI mStallPpi = {
> + PEI_STALL_RESOLUTION,
> + Stall
> +};
> +
> +EFI_PEI_PPI_DESCRIPTOR mPeiInstallStallPpi = {
> + (EFI_PEI_PPI_DESCRIPTOR_PPI |
> EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
> + &gEfiPeiStallPpiGuid,
> + &mStallPpi
> +};
> +
> +EFI_STATUS
> +EFIAPI
> +Stall (
> + IN CONST EFI_PEI_SERVICES **PeiServices,
> + IN CONST EFI_PEI_STALL_PPI *This,
> + IN UINTN Microseconds
> + )
> +{
> + MicroSecondDelay (Microseconds);
> + return EFI_SUCCESS;
> +}
> +
> +/**
> + This function will install the StallPpi.
> +
> + @retval EFI_SUCCESS if StallPpi is installed successfully.
> +**/
> +EFI_STATUS
> +EFIAPI
> +InstallStallPpi (
> + VOID
> + )
> +{
> + EFI_STATUS Status;
> +
> + DEBUG((DEBUG_INFO, "Installing StallPpi \n"));
> +
> + Status = PeiServicesInstallPpi (&mPeiInstallStallPpi);
> + ASSERT_EFI_ERROR (Status);
> +
> + return Status;
> +}
> diff --git
> a/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiSiPolicyLib/PeiSiPolicyLib.c
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiSiPolicyLib/PeiSiPolicyLib.c
> new file mode 100644
> index 0000000000..de8d9745d3
> --- /dev/null
> +++
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiSiPolicyLib/PeiSiPolicyLib.c
> @@ -0,0 +1,214 @@
> +/** @file
> + This file is PeiSiPolicyLib library creates default settings of RC
> + Policy and installs RC Policy PPI.
> +
> + Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +#include "PeiSiPolicyLibrary.h"
> +#include <Library/PcdLib.h>
> +
> +/**
> + Get Si config block table total size.
> +
> + @retval Size of PCH config block table
> +**/
> +UINT16
> +EFIAPI
> +SiGetConfigBlockTotalSize (
> + VOID
> + )
> +{
> + return (UINT16) sizeof (SI_CONFIG);
> +}
> +
> +EFI_STATUS
> +EFIAPI
> +LoadSiConfigBlockDefault (
> + IN VOID *ConfigBlockPointer
> + )
> +{
> + SI_CONFIG *SiConfig;
> +
> + SiConfig = ConfigBlockPointer;
> +
> + DEBUG ((DEBUG_INFO, "SiConfig->Header.GuidHob.Name = %g\n",
> &SiConfig->Header.GuidHob.Name));
> + DEBUG ((DEBUG_INFO, "SiConfig->Header.GuidHob.Header.HobLength =
> 0x%x\n", SiConfig->Header.GuidHob.Header.HobLength));
> +
> + SiConfig->Header.Revision = SI_CONFIG_REVISION;
> +
> + return EFI_SUCCESS;
> +}
> +
> +EFI_STATUS
> +EFIAPI
> +SiAddConfigBlocks (
> + IN VOID *ConfigBlockTableAddress
> + )
> +{
> + VOID *ConfigBlockPointer;
> + EFI_STATUS Status;
> + CONFIG_BLOCK_HEADER SiBlock;
> +
> + //
> + // Initalize SiBlock
> + //
> + CopyMem (&(SiBlock.GuidHob.Name), &gSiConfigGuid, sizeof (EFI_GUID));
> + SiBlock.GuidHob.Header.HobLength = sizeof (SI_CONFIG);
> + SiBlock.Revision = SI_CONFIG_REVISION;
> + //
> + // Initialize ConfigBlockPointer
> + //
> + ConfigBlockPointer = (VOID *)&SiBlock;
> + //
> + // Add config block fro SiBlock
> + //
> + DEBUG ((DEBUG_INFO, "gSiConfigGuid = %g\n", &gSiConfigGuid));
> + DEBUG ((DEBUG_INFO, "SiConfig->Header.GuidHob.Name = %g\n",
> &(SiBlock.GuidHob.Name)));
> + Status = AddConfigBlock (ConfigBlockTableAddress, (VOID *)
> &ConfigBlockPointer);
> + ASSERT_EFI_ERROR (Status);
> +
> + LoadSiConfigBlockDefault ((VOID *) ConfigBlockPointer);
> +
> + return Status;
> +}
> +
> +/**
> + SiCreateConfigBlocks creates the config blocksg of Silicon Policy.
> + It allocates and zero out buffer, and fills in the Intel default settings.
> +
> + @param[out] SiPolicyPpi The pointer to get Silicon Policy PPI instance
> +
> + @retval EFI_SUCCESS The policy default is initialized.
> + @retval EFI_OUT_OF_RESOURCES Insufficient resources to create buffer
> +**/
> +EFI_STATUS
> +EFIAPI
> +SiCreateConfigBlocks (
> + OUT SI_POLICY_PPI **SiPolicyPpi
> + )
> +{
> + UINT16 TotalBlockSize;
> + EFI_STATUS Status;
> + SI_POLICY_PPI *SiPolicy;
> + UINT16 RequiredSize;
> +
> + SiPolicy = NULL;
> + //
> + // TotalBlockSize = Si, Pch, ME, SA and CPU config block size.
> + //
> + TotalBlockSize = SiGetConfigBlockTotalSize () +
> + PchGetConfigBlockTotalSize () +
> + MeGetConfigBlockTotalSize () +
> + SaGetConfigBlockTotalSize () +
> + CpuGetConfigBlockTotalSize ();
> + DEBUG ((DEBUG_INFO, "TotalBlockSize = 0x%x\n", TotalBlockSize));
> +
> + RequiredSize = sizeof (CONFIG_BLOCK_TABLE_HEADER) + TotalBlockSize;
> +
> + Status = CreateConfigBlockTable (RequiredSize, (VOID *) &SiPolicy);
> + ASSERT_EFI_ERROR (Status);
> +
> + //
> + // General initialization
> + //
> + SiPolicy->TableHeader.Header.Revision = SI_POLICY_REVISION;
> + //
> + // Add config blocks.
> + //
> + Status = SiAddConfigBlocks ((VOID *) SiPolicy);
> + ASSERT_EFI_ERROR (Status);
> + Status = PchAddConfigBlocks ((VOID *) SiPolicy);
> + ASSERT_EFI_ERROR (Status);
> + Status = MeAddConfigBlocks ((VOID *) SiPolicy);
> + ASSERT_EFI_ERROR (Status);
> + Status = SaAddConfigBlocks ((VOID *) SiPolicy);
> + ASSERT_EFI_ERROR (Status);
> + Status = CpuAddConfigBlocks ((VOID *) SiPolicy);
> + ASSERT_EFI_ERROR (Status);
> +
> + //
> + // Assignment for returning SaInitPolicy config block base address
> + //
> + *SiPolicyPpi = SiPolicy;
> + return Status;
> +}
> +
> +/**
> + Print out all silicon policy information.
> +
> + @param[in] SiPolicyPpi The pointer to Silicon Policy PPI instance
> +
> + @retval none
> +**/
> +VOID
> +DumpSiPolicy (
> + IN SI_POLICY_PPI *SiPolicyPpi
> + )
> +{
> + //
> + // Print SI config blocks and serial out.
> + //
> + SiPrintPolicyPpi (SiPolicyPpi);
> + //
> + // Print PCH config blocks and serial out.
> + //
> + PchPrintPolicyPpi (SiPolicyPpi);
> + //
> + // Print ME config blocks and serial out.
> + //
> + MePrintPolicyPpi (SiPolicyPpi);
> + //
> + // Print SA config blocks and serial out.
> + //
> + SaPrintPolicyPpi (SiPolicyPpi);
> + //
> + // Print CPU config block and serial out.
> + //
> + CpuPrintPolicy (SiPolicyPpi);
> +}
> +
> +/**
> + SiInstallPolicyPpi installs SiPolicyPpi.
> + While installed, RC assumes the Policy is ready and finalized. So please
> update and override
> + any setting before calling this function.
> +
> + @param[in] SiPolicyPpi The pointer to Silicon Policy PPI instance
> +
> + @retval EFI_SUCCESS The policy is installed.
> + @retval EFI_OUT_OF_RESOURCES Insufficient resources to create buffer
> +**/
> +EFI_STATUS
> +EFIAPI
> +SiInstallPolicyPpi (
> + IN SI_POLICY_PPI *SiPolicyPpi
> + )
> +{
> + EFI_STATUS Status;
> + EFI_PEI_PPI_DESCRIPTOR *SiPolicyPpiDesc;
> + SI_CONFIG *SiConfig;
> +
> + SiPolicyPpiDesc = (EFI_PEI_PPI_DESCRIPTOR *) AllocateZeroPool (sizeof
> (EFI_PEI_PPI_DESCRIPTOR));
> + if (SiPolicyPpiDesc == NULL) {
> + ASSERT (FALSE);
> + return EFI_OUT_OF_RESOURCES;
> + }
> +
> + SiPolicyPpiDesc->Flags = EFI_PEI_PPI_DESCRIPTOR_PPI |
> EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST;
> + SiPolicyPpiDesc->Guid = &gSiPolicyPpiGuid;
> + SiPolicyPpiDesc->Ppi = SiPolicyPpi;
> + Status = GetConfigBlock ((VOID *) SiPolicyPpi, &gSiConfigGuid, (VOID *)
> &SiConfig);
> + ASSERT_EFI_ERROR (Status);
> +
> + DEBUG ((DEBUG_INFO, "Dump Silicon Policy update by Platform...\n"));
> + DumpSiPolicy (SiPolicyPpi);
> +
> + //
> + // Install Silicon Policy PPI
> + //
> + Status = PeiServicesInstallPpi (SiPolicyPpiDesc);
> + ASSERT_EFI_ERROR (Status);
> + return Status;
> +}
> diff --git
> a/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiSiPolicyLib/PeiSiPolicyLibPre
> Mem.c
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiSiPolicyLib/PeiSiPolicyLibPre
> Mem.c
> new file mode 100644
> index 0000000000..499f895e8e
> --- /dev/null
> +++
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiSiPolicyLib/PeiSiPolicyLibPre
> Mem.c
> @@ -0,0 +1,122 @@
> +/** @file
> + This file is PeiSiPolicyLib library creates default settings of RC
> + Policy and installs RC Policy PPI.
> +
> + Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +#include "PeiSiPolicyLibrary.h"
> +#include <Base.h>
> +
> +/**
> + SiCreatePreMemConfigBlocks creates the config blocksg of Silicon PREMEM
> Policy.
> + It allocates and zero out buffer, and fills in the Intel default settings.
> +
> + @param[out] SiPreMemPolicyPpi The pointer to get Silicon Policy PPI
> instance
> +
> + @retval EFI_SUCCESS The policy default is initialized.
> + @retval EFI_OUT_OF_RESOURCES Insufficient resources to create buffer
> +**/
> +EFI_STATUS
> +EFIAPI
> +SiCreatePreMemConfigBlocks (
> + OUT SI_PREMEM_POLICY_PPI **SiPreMemPolicyPpi
> + )
> +{
> + UINT16 TotalBlockSize;
> + EFI_STATUS Status;
> + SI_PREMEM_POLICY_PPI *SiPreMemPolicy;
> + UINT16 RequiredSize;
> +
> + SiPreMemPolicy = NULL;
> + //
> + // TotalBlockSize = Pch , SA, ME and CPU config block size.
> + //
> + TotalBlockSize = PchGetPreMemConfigBlockTotalSize () +
> + MeGetConfigBlockTotalSizePreMem () +
> + SaGetConfigBlockTotalSizePreMem () +
> + CpuGetPreMemConfigBlockTotalSize ();
> + DEBUG ((DEBUG_INFO, "TotalBlockSize = 0x%x\n", TotalBlockSize));
> +
> + RequiredSize = sizeof (CONFIG_BLOCK_TABLE_HEADER) + TotalBlockSize;
> +
> + Status = CreateConfigBlockTable (RequiredSize, (VOID *)&SiPreMemPolicy);
> + ASSERT_EFI_ERROR (Status);
> +
> + //
> + // General initialization
> + //
> + SiPreMemPolicy->TableHeader.Header.Revision =
> SI_PREMEM_POLICY_REVISION;
> + //
> + // Add config blocks.
> + //
> + Status = PchAddPreMemConfigBlocks ((VOID *) SiPreMemPolicy);
> + ASSERT_EFI_ERROR (Status);
> + Status = MeAddConfigBlocksPreMem ((VOID *) SiPreMemPolicy);
> + ASSERT_EFI_ERROR (Status);
> + Status = SaAddConfigBlocksPreMem ((VOID *) SiPreMemPolicy);
> + ASSERT_EFI_ERROR (Status);
> + Status = CpuAddPreMemConfigBlocks ((VOID *) SiPreMemPolicy);
> + ASSERT_EFI_ERROR (Status);
> + //
> + // Assignment for returning SaInitPolicy config block base address
> + //
> + *SiPreMemPolicyPpi = SiPreMemPolicy;
> + return Status;
> +}
> +
> +/**
> + SiPreMemInstallPolicyPpi installs SiPreMemPolicyPpi.
> + While installed, RC assumes the Policy is ready and finalized. So please
> update and override
> + any setting before calling this function.
> +
> + @param[in] SiPreMemPolicyPpi The pointer to Silicon Policy PPI instance
> +
> + @retval EFI_SUCCESS The policy is installed.
> + @retval EFI_OUT_OF_RESOURCES Insufficient resources to create buffer
> +**/
> +EFI_STATUS
> +EFIAPI
> +SiPreMemInstallPolicyPpi (
> + IN SI_PREMEM_POLICY_PPI *SiPolicyPreMemPpi
> + )
> +{
> + EFI_STATUS Status;
> + EFI_PEI_PPI_DESCRIPTOR *SiPolicyPreMemPpiDesc;
> +
> + SiPolicyPreMemPpiDesc = (EFI_PEI_PPI_DESCRIPTOR *) AllocateZeroPool
> (sizeof (EFI_PEI_PPI_DESCRIPTOR));
> + if (SiPolicyPreMemPpiDesc == NULL) {
> + ASSERT (FALSE);
> + return EFI_OUT_OF_RESOURCES;
> + }
> +
> + SiPolicyPreMemPpiDesc->Flags = EFI_PEI_PPI_DESCRIPTOR_PPI |
> EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST;
> + SiPolicyPreMemPpiDesc->Guid = &gSiPreMemPolicyPpiGuid;
> + SiPolicyPreMemPpiDesc->Ppi = SiPolicyPreMemPpi;
> +
> + //
> + // Print whole PCH_POLICY_PPI and serial out.
> + //
> + PchPreMemPrintPolicyPpi (SiPolicyPreMemPpi);
> + //
> + // Print ME config blocks and serial out.
> + //
> + MePrintPolicyPpiPreMem (SiPolicyPreMemPpi);
> + //
> + // Print whole SI_POLICY_PPI and serial out.
> + //
> + SaPrintPolicyPpiPreMem (SiPolicyPreMemPpi);
> + //
> + // Print whole CPU of SI_PREMEM_POLICY_PPI and serial out.
> + //
> + CpuPreMemPrintPolicy (SiPolicyPreMemPpi);
> + //
> + // Install Silicon Policy PPI
> + //
> + Status = PeiServicesInstallPpi (SiPolicyPreMemPpiDesc);
> + ASSERT_EFI_ERROR (Status);
> + return Status;
> +}
> +
> diff --git
> a/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiSiPolicyLib/SiPrintPolicy.c
> b/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiSiPolicyLib/SiPrintPolicy.c
> new file mode 100644
> index 0000000000..cf7e1b2308
> --- /dev/null
> +++ b/Silicon/Intel/CoffeelakeSiliconPkg/Library/PeiSiPolicyLib/SiPrintPolicy.c
> @@ -0,0 +1,36 @@
> +/** @file
> + This file is PeiSiPolicyLib library for printing Policy settings.
> +
> + Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +#include "PeiSiPolicyLibrary.h"
> +
> +/**
> + Print whole SI_POLICY_PPI and serial out.
> +
> + @param[in] SiPolicyPpi The RC Policy PPI instance
> +**/
> +VOID
> +EFIAPI
> +SiPrintPolicyPpi (
> + IN SI_POLICY_PPI *SiPolicyPpi
> + )
> +{
> + DEBUG_CODE_BEGIN ();
> + SI_CONFIG *SiConfig;
> + EFI_STATUS Status;
> +
> + Status = GetConfigBlock ((VOID *) SiPolicyPpi, &gSiConfigGuid, (VOID *)
> &SiConfig);
> + ASSERT_EFI_ERROR (Status);
> +
> + DEBUG ((DEBUG_INFO, "------------------------ Silicon Print Policy Start
> ------------------------\n"));
> + DEBUG ((DEBUG_INFO, " CsmFlag= %x\n", SiConfig->CsmFlag));
> + DEBUG ((DEBUG_INFO, " TraceHubMemBase = 0x%08x\n",
> SiConfig->TraceHubMemBase));
> +
> + DEBUG ((DEBUG_INFO, "------------------------ Silicon Print Policy End
> --------------------------\n"));
> + DEBUG_CODE_END ();
> +}
> +
> --
> 2.16.2.windows.1
next prev parent reply other threads:[~2019-08-17 1:12 UTC|newest]
Thread overview: 121+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-17 0:15 [edk2-platforms][PATCH V1 00/37] Coffee Lake and Whiskey Lake support Kubacki, Michael A
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 01/37] CoffeelakeSiliconPkg: Add package and Include headers Kubacki, Michael A
2019-08-17 0:51 ` Nate DeSimone
2019-08-17 1:08 ` Chiu, Chasel
2019-08-17 1:18 ` Chaganty, Rangasai V
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 02/37] CoffeelakeSiliconPkg/Cpu: Add " Kubacki, Michael A
2019-08-17 0:51 ` Nate DeSimone
2019-08-17 1:08 ` Chiu, Chasel
2019-08-17 6:58 ` Chaganty, Rangasai V
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 03/37] CoffeelakeSiliconPkg/Me: " Kubacki, Michael A
2019-08-17 0:51 ` Nate DeSimone
2019-08-17 1:08 ` Chiu, Chasel
2019-08-17 7:04 ` Chaganty, Rangasai V
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 04/37] CoffeelakeSiliconPkg/Pch: Add include headers Kubacki, Michael A
2019-08-17 0:51 ` Nate DeSimone
2019-08-17 1:08 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 05/37] CoffeelakeSiliconPkg/Pch: Add ConfigBlock headers Kubacki, Michael A
2019-08-17 0:51 ` Nate DeSimone
2019-08-17 1:09 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 06/37] CoffeelakeSiliconPkg/Pch: Add Library include headers Kubacki, Michael A
2019-08-17 0:51 ` Nate DeSimone
2019-08-17 1:09 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 07/37] CoffeelakeSiliconPkg/Pch: Add PPI and Protocol " Kubacki, Michael A
2019-08-17 0:51 ` Nate DeSimone
2019-08-17 1:09 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 08/37] CoffeelakeSiliconPkg/Pch: Add Register " Kubacki, Michael A
2019-08-17 0:51 ` Nate DeSimone
2019-08-17 1:09 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 09/37] CoffeelakeSiliconPkg/Pch: Add Private " Kubacki, Michael A
2019-08-17 0:51 ` Nate DeSimone
2019-08-17 1:12 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 10/37] CoffeelakeSiliconPkg/Pch: Add Private/Library " Kubacki, Michael A
2019-08-17 0:52 ` Nate DeSimone
2019-08-17 1:09 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 11/37] CoffeelakeSiliconPkg/Pch: Add Private/Protocol " Kubacki, Michael A
2019-08-17 0:51 ` Nate DeSimone
2019-08-17 1:10 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 12/37] CoffeelakeSiliconPkg/SampleCode: Add Include headers Kubacki, Michael A
2019-08-17 0:52 ` Nate DeSimone
2019-08-17 1:12 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 13/37] CoffeelakeSiliconPkg/SystemAgent: " Kubacki, Michael A
2019-08-17 0:52 ` Nate DeSimone
2019-08-17 1:12 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 14/37] CoffeelakeSiliconPkg: Add package common library instances Kubacki, Michael A
2019-08-17 0:52 ` Nate DeSimone
2019-08-17 1:12 ` Chiu, Chasel [this message]
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 15/37] CoffeelakeSiliconPkg/Cpu: Add " Kubacki, Michael A
2019-08-17 0:52 ` Nate DeSimone
2019-08-17 1:15 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 16/37] CoffeelakeSiliconPkg/Me: " Kubacki, Michael A
2019-08-17 0:52 ` Nate DeSimone
2019-08-17 1:12 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 17/37] CoffeelakeSiliconPkg/Pch: Add Base " Kubacki, Michael A
2019-08-17 0:52 ` Nate DeSimone
2019-08-17 1:13 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 18/37] CoffeelakeSiliconPkg/Pch: Add DXE " Kubacki, Michael A
2019-08-17 0:52 ` Nate DeSimone
2019-08-17 1:13 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 19/37] CoffeelakeSiliconPkg/Pch: Add PEI " Kubacki, Michael A
2019-08-17 0:52 ` Nate DeSimone
2019-08-17 1:13 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 20/37] CoffeelakeSiliconPkg/Pch: Add SMM " Kubacki, Michael A
2019-08-17 0:53 ` Nate DeSimone
2019-08-17 1:16 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 21/37] CoffeelakeSiliconPkg/Pch: Add Base " Kubacki, Michael A
2019-08-17 0:52 ` Nate DeSimone
2019-08-17 1:13 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 22/37] CoffeelakeSiliconPkg/Pch: Add DXE private " Kubacki, Michael A
2019-08-17 0:52 ` Nate DeSimone
2019-08-17 1:13 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 23/37] CoffeelakeSiliconPkg/Pch: Add PEI " Kubacki, Michael A
2019-08-17 0:53 ` Nate DeSimone
2019-08-17 1:14 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 24/37] CoffeelakeSiliconPkg/Pch: Add SMM " Kubacki, Michael A
2019-08-17 0:53 ` Nate DeSimone
2019-08-17 1:14 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 25/37] CoffeelakeSiliconPkg/SystemAgent: Add " Kubacki, Michael A
2019-08-17 0:53 ` Nate DeSimone
2019-08-17 1:14 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 26/37] CoffeelakeSiliconPkg/Pch: Add modules Kubacki, Michael A
2019-08-17 0:53 ` Nate DeSimone
2019-08-17 1:14 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 27/37] CoffeelakeSiliconPkg/Pch: Add PchSmiDispatcher Kubacki, Michael A
2019-08-17 0:53 ` Nate DeSimone
2019-08-17 1:15 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 28/37] CoffeelakeSiliconPkg/SystemAgent: Add modules Kubacki, Michael A
2019-08-17 0:53 ` Nate DeSimone
2019-08-17 1:15 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 29/37] CoffeelakeSiliconPkg: Add package DSC files Kubacki, Michael A
2019-08-17 0:53 ` Nate DeSimone
2019-08-17 1:14 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 30/37] Maintainers.txt: Add CoffeelakeSiliconPkg maintainers Kubacki, Michael A
2019-08-17 0:53 ` Nate DeSimone
2019-08-17 1:15 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 31/37] WhiskeylakeOpenBoardPkg: Add package and headers Kubacki, Michael A
2019-08-17 0:54 ` Nate DeSimone
2019-08-17 1:16 ` Chiu, Chasel
2019-08-19 18:09 ` Sinha, Ankit
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 32/37] WhiskeylakeOpenBoardPkg/WhiskeylakeURvp: Add headers Kubacki, Michael A
2019-08-17 0:54 ` Nate DeSimone
2019-08-17 1:16 ` Chiu, Chasel
2019-08-17 0:15 ` [edk2-platforms][PATCH V1 33/37] WhiskeylakeOpenBoardPkg: Add library instances Kubacki, Michael A
2019-08-17 0:54 ` Nate DeSimone
2019-08-17 1:16 ` Chiu, Chasel
2019-08-17 0:16 ` [edk2-platforms][PATCH V1 34/37] WhiskeylakeOpenBoardPkg/WhiskeylakeURvp: " Kubacki, Michael A
2019-08-17 0:54 ` Nate DeSimone
2019-08-17 1:17 ` Chiu, Chasel
2019-08-17 20:08 ` Chaganty, Rangasai V
2019-08-17 0:16 ` [edk2-platforms][PATCH V1 35/37] WhiskeylakeOpenBoardPkg: Add modules Kubacki, Michael A
2019-08-17 0:54 ` Nate DeSimone
2019-08-17 1:17 ` Chiu, Chasel
2019-08-17 7:50 ` Chaganty, Rangasai V
2019-08-17 0:16 ` [edk2-platforms][PATCH V1 36/37] WhiskeylakeOpenBoardPkg/WhiskeylakeURvp: Add DSC and build files Kubacki, Michael A
2019-08-17 0:54 ` Nate DeSimone
2019-08-17 1:16 ` Chiu, Chasel
2019-08-17 20:11 ` Chaganty, Rangasai V
2019-08-17 0:16 ` [edk2-platforms][PATCH V1 37/37] Add WhiskeylakeOpenBoardPkg to global build config and documentation Kubacki, Michael A
2019-08-17 0:54 ` Nate DeSimone
2019-08-17 1:17 ` Chiu, Chasel
2019-08-17 20:00 ` Chaganty, Rangasai V
2019-08-19 18:14 ` [edk2-platforms][PATCH V1 00/37] Coffee Lake and Whiskey Lake support Sinha, Ankit
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=3C3EFB470A303B4AB093197B6777CCEC50462301@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