X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=MdeModulePkg%2FUniversal%2FPCD%2FPei%2FPcd.inf;h=1d9c9242d9bd7354b61150341b50096178fd6fe5;hb=307a19a7ec790a7d9ff7fe8332ad4c326b2d32a0;hp=fc392909113bb02bd6108e33cb658c8d22e57787;hpb=6c74c5383a77e023030c343fd83d5b625e5b01d1;p=mirror_edk2.git diff --git a/MdeModulePkg/Universal/PCD/Pei/Pcd.inf b/MdeModulePkg/Universal/PCD/Pei/Pcd.inf index fc39290911..1d9c9242d9 100644 --- a/MdeModulePkg/Universal/PCD/Pei/Pcd.inf +++ b/MdeModulePkg/Universal/PCD/Pei/Pcd.inf @@ -1,6 +1,7 @@ -#/** @file +## @file # PCD PEIM produces PCD database to manage all dynamic PCD in PEI phase and install Pcd Ppi service. # +# This version PCD PEIM depends on the external PCD database binary file, not built in PCD data base. # There are two PCD PPIs as follows: # 1) PCD_PPI # It is EDKII implementation which support Dynamic/DynamicEx Pcds. @@ -8,6 +9,10 @@ # It is defined by PI specification 1.2, Vol 3 which only support dynamicEx # type Pcd. # For dynamicEx type PCD, it is compatible between PCD_PPI and EFI_PEI_PCD_PPI. +# PCD PEIM driver will produce above two PPIs at same time. +# +# PCD database is generated as the separate binary image at build time. The binary image +# will be intergrated into Firmware volume together with PCD driver. # # //////////////////////////////////////////////////////////////////////////////// # // // @@ -58,7 +63,7 @@ # b) Variable Storage: # - The PCD value is stored in variable area. # - As default storage type, this type PCD could be used for PEI/DXE driver -# communication. But beside it, this type PCD could alsp be used to store +# communication. But beside it, this type PCD could also be used to store # the value associate with a HII setting via variable interface. # - In PEI phase, the PCD value could only be got but can not be set due # to variable area is readonly. @@ -89,12 +94,12 @@ # PCD information used in PEI phase or use in both PEI/DXE phase. And DXE PCD # database contains all PCDs used in PEI/DXE phase in memory. # -# Build tool will generate PCD database into some C structure and variable for +# Build tool will generate PCD database into the separate binary file for # PEI/DXE PCD driver according to dynamic PCD section in platform DSC file. # # 3.1 PcdPeim and PcdDxe # PEI PCD database is maintained by PcdPeim driver run from flash. PcdPeim driver -# build guid hob in temporary memory and copy auto-generated C structure +# build guid hob in temporary memory and copy the binary data base from flash # to temporary memory for PEI PCD database. # DXE PCD database is maintained by PcdDxe driver.At entry point of PcdDxe driver, # a new PCD database is allocated in boot-time memory which including all @@ -180,8 +185,10 @@ # Based on local token number, PCD driver could fast determine PCD type, value # type and get PCD entry from PCD database. # -# 3.3 PCD Database C structure. -# PCD Database C structure is generated by build tools in PCD driver's autogen.h/ +# 3.3 PCD Database binary file +# PCD Database binary file will be created at build time as the standalone binary image. +# To understand the binary image layout, PCD Database C structure is still generated +# as comments by build tools in PCD driver's autogen.h/ # autogen.c file. In generated C structure, following information is stored: # - ExMapTable: This table is used translate a binary dynamicex type PCD's # "tokenguid + token" to local token number. @@ -190,7 +197,7 @@ # token number" as array index to get PCD entry's offset fastly. # - SizeTable: This table stores the size information for all PCD entry. # - GuidTable: This table stores guid value for DynamicEx's token space, -# HII type PCD's variable. +# HII type PCD's variable GUID. # - SkuIdTable: TBD # - SystemSkuId: TBD # - PCD value structure: @@ -271,9 +278,9 @@ # - Variable GUID for HII type PCD # - Token space GUID for dynamicex type PCD # -# Copyright (c) 2006 - 2009, Intel Corporation +# Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.
# -# All rights reserved. This program and the accompanying materials +# This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License # which accompanies this distribution. The full text of the license may be found at # http://opensource.org/licenses/bsd-license.php @@ -281,14 +288,15 @@ # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. # # -#**/ +## [Defines] INF_VERSION = 0x00010005 BASE_NAME = PcdPeim + MODULE_UNI_FILE = PcdPeim.uni FILE_GUID = 9B3ADA4F-AE56-4c24-8DEA-F03B7558AE50 MODULE_TYPE = PEIM - VERSION_STRING = 1.0 + VERSION_STRING = 4.0 PCD_IS_DRIVER = PEI_PCD_DRIVER ENTRY_POINT = PcdPeimInit @@ -298,7 +306,7 @@ # VALID_ARCHITECTURES = IA32 X64 IPF EBC (EBC is for build only) # -[Sources.common] +[Sources] Service.c Service.h Pcd.c @@ -315,23 +323,30 @@ BaseLib PeimEntryPoint DebugLib + MemoryAllocationLib [Guids] - gPcdDataBaseHobGuid ## PRODUCES ## Hob - gPcdDataBaseHobGuid ## CONSUMES ## Hob + ## PRODUCES ## HOB + ## SOMETIMES_CONSUMES ## HOB + gPcdDataBaseHobGuid + gPcdDataBaseSignatureGuid ## CONSUMES ## GUID # PCD database signature GUID. [Ppis] - gEfiPeiReadOnlyVariable2PpiGuid ## CONSUMES + gEfiPeiReadOnlyVariable2PpiGuid ## SOMETIMES_CONSUMES gPcdPpiGuid ## PRODUCES gEfiPeiPcdPpiGuid ## PRODUCES - + gGetPcdInfoPpiGuid ## SOMETIMES_PRODUCES + gEfiGetPcdInfoPpiGuid ## SOMETIMES_PRODUCES + [FeaturePcd] - gEfiMdeModulePkgTokenSpaceGuid.PcdPeiFullPcdDatabaseEnable + gEfiMdeModulePkgTokenSpaceGuid.PcdPeiFullPcdDatabaseEnable ## CONSUMES -[FixedPcd] - gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress - gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPcdCallBackNumberPerPcdEntry || PcdPeiFullPcdDatabaseEnable +[Pcd] + gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress ## SOMETIMES_CONSUMES + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPcdCallBackNumberPerPcdEntry ## SOMETIMES_CONSUMES [Depex] TRUE +[UserExtensions.TianoCore."ExtraFiles"] + PcdPeimExtra.uni