What does different PCD Database with a different GUID mean? Has the problem statement and design for multiple PCD databases from multiple binaries been reviewed in the TianoCore design meeting?
This sounds like a topic that needs more discussion before making changes like this. Thanks, Mike > -----Original Message----- > From: Liu, Zhiguang <zhiguang....@intel.com> > Sent: Monday, May 24, 2021 6:10 PM > To: Kinney, Michael D <michael.d.kin...@intel.com>; devel@edk2.groups.io > Cc: Liming Gao <gaolim...@byosoft.com.cn>; Ni, Ray <ray...@intel.com> > Subject: RE: [edk2-devel] [PATCH 1/2] MdePkg: Standalone PCD driver > > Hi Miki, > > I want to fix the case where two binaries are built separately, and both want > to use PCD feature. > For example, bootloader and payload want to have separate PCD data base. > Or two payloads both run at DXE phase, and they both need PCD but don't want > to other payload to change PCD data. > This way, both PCD protocol instance is installed, and different payload will > find its own PCD protocol by different GUID. > > Thanks > Zhiguang > > > -----Original Message----- > > From: Kinney, Michael D <michael.d.kin...@intel.com> > > Sent: Tuesday, May 25, 2021 4:30 AM > > To: devel@edk2.groups.io; Liu, Zhiguang <zhiguang....@intel.com>; Kinney, > > Michael D <michael.d.kin...@intel.com> > > Cc: Liming Gao <gaolim...@byosoft.com.cn> > > Subject: RE: [edk2-devel] [PATCH 1/2] MdePkg: Standalone PCD driver > > > > Why do we need a new PCD? > > > > Can't we make this the default behavior to only install one instance? > > > > Thanks, > > > > Mike > > > > > -----Original Message----- > > > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of > > > Zhiguang Liu > > > Sent: Monday, May 24, 2021 2:25 AM > > > To: devel@edk2.groups.io > > > Cc: Kinney, Michael D <michael.d.kin...@intel.com>; Liming Gao > > > <gaolim...@byosoft.com.cn> > > > Subject: [edk2-devel] [PATCH 1/2] MdePkg: Standalone PCD driver > > > > > > Add a feature PCD to control if the PCD driver is build as standalone > > > mode. > > > This way, two mode PCD driver won't share the data base. > > > > > > Cc: Michael D Kinney <michael.d.kin...@intel.com> > > > Cc: Liming Gao <gaolim...@byosoft.com.cn> > > > Signed-off-by: Zhiguang Liu <zhiguang....@intel.com> > > > --- > > > MdeModulePkg/Universal/PCD/Dxe/Pcd.c | 75 > > +++++++++++++++++++++++++++++++++++++++++++++++++++------------ > > ---------- > > > -- > > > MdeModulePkg/Universal/PCD/Dxe/Pcd.inf | 16 ++++++++++++---- > > > MdeModulePkg/Universal/PCD/Dxe/Service.c | 7 ++++++- > > > MdePkg/Include/Protocol/Pcd.h | 5 ----- > > > MdePkg/Include/Protocol/PcdInfo.h | 5 ----- > > > MdePkg/Library/DxePcdLib/DxePcdLib.c | 24 > > ++++++++++++++++++++---- > > > MdePkg/Library/DxePcdLib/DxePcdLib.inf | 16 ++++++++++++---- > > > MdePkg/Library/DxePcdLib/PayloadPcdLib.inf | 71 > > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > > +++++++++++++ > > > MdePkg/MdePkg.dec | 12 ++++++++++++ > > > 9 files changed, 184 insertions(+), 47 deletions(-) > > > > > > diff --git a/MdeModulePkg/Universal/PCD/Dxe/Pcd.c > > > b/MdeModulePkg/Universal/PCD/Dxe/Pcd.c > > > index cdb9b4fac1..dc9c4be022 100644 > > > --- a/MdeModulePkg/Universal/PCD/Dxe/Pcd.c > > > +++ b/MdeModulePkg/Universal/PCD/Dxe/Pcd.c > > > @@ -129,34 +129,61 @@ PcdDxeInit ( > > > // > > > > > > // Make sure the Pcd Protocol is not already installed in the > > > system > > > > > > // > > > > > > + if (FeaturePcdGet (PcdStandalonePcdDatabaseEnable)) { > > > > > > + ASSERT_PROTOCOL_ALREADY_INSTALLED (NULL, > > > + &gEdkiiPayloadStandalonePcdProtocolGuid); > > > > > > + BuildPcdDxeDataBase (); > > > > > > > > > > > > - ASSERT_PROTOCOL_ALREADY_INSTALLED (NULL, &gPcdProtocolGuid); > > > > > > + // > > > > > > + // Install PCD_PROTOCOL to handle dynamic type PCD > > > > > > + // Install EFI_PCD_PROTOCOL to handle dynamicEx type PCD > > > > > > + // > > > > > > + Status = gBS->InstallMultipleProtocolInterfaces ( > > > > > > + &mPcdHandle, > > > > > > + &gEdkiiPayloadStandalonePcdProtocolGuid, > > > &mPcdInstance, > > > > > > + &gEdkiiEfiPayloadStandalonePcdProtocolGuid, > > > + &mEfiPcdInstance, > > > > > > + NULL > > > > > > + ); > > > > > > + ASSERT_EFI_ERROR (Status); > > > > > > > > > > > > - BuildPcdDxeDataBase (); > > > > > > + // > > > > > > + // Install GET_PCD_INFO_PROTOCOL to handle dynamic type PCD > > > > > > + // Install EFI_GET_PCD_INFO_PROTOCOL to handle dynamicEx type PCD > > > > > > + // > > > > > > + Status = gBS->InstallMultipleProtocolInterfaces ( > > > > > > + &mPcdHandle, > > > > > > + &gEdkiiPayloadGetStandalonePcdInfoProtocolGuid, > > &mGetPcdInfoInstance, > > > > > > + > > > + &gEdkiiEfiPayloadGetStandalonePcdInfoProtocolGuid, > > > + &mEfiGetPcdInfoInstance, > > > > > > + NULL > > > > > > + ); > > > > > > + ASSERT_EFI_ERROR (Status); > > > > > > + } else { > > > > > > + ASSERT_PROTOCOL_ALREADY_INSTALLED (NULL, &gPcdProtocolGuid); > > > > > > + BuildPcdDxeDataBase (); > > > > > > > > > > > > - // > > > > > > - // Install PCD_PROTOCOL to handle dynamic type PCD > > > > > > - // Install EFI_PCD_PROTOCOL to handle dynamicEx type PCD > > > > > > - // > > > > > > - Status = gBS->InstallMultipleProtocolInterfaces ( > > > > > > - &mPcdHandle, > > > > > > - &gPcdProtocolGuid, &mPcdInstance, > > > > > > - &gEfiPcdProtocolGuid, &mEfiPcdInstance, > > > > > > - NULL > > > > > > - ); > > > > > > - ASSERT_EFI_ERROR (Status); > > > > > > + // > > > > > > + // Install PCD_PROTOCOL to handle dynamic type PCD > > > > > > + // Install EFI_PCD_PROTOCOL to handle dynamicEx type PCD > > > > > > + // > > > > > > + Status = gBS->InstallMultipleProtocolInterfaces ( > > > > > > + &mPcdHandle, > > > > > > + &gPcdProtocolGuid, &mPcdInstance, > > > > > > + &gEfiPcdProtocolGuid, &mEfiPcdInstance, > > > > > > + NULL > > > > > > + ); > > > > > > + ASSERT_EFI_ERROR (Status); > > > > > > > > > > > > - // > > > > > > - // Install GET_PCD_INFO_PROTOCOL to handle dynamic type PCD > > > > > > - // Install EFI_GET_PCD_INFO_PROTOCOL to handle dynamicEx type PCD > > > > > > - // > > > > > > - Status = gBS->InstallMultipleProtocolInterfaces ( > > > > > > - &mPcdHandle, > > > > > > - &gGetPcdInfoProtocolGuid, &mGetPcdInfoInstance, > > > > > > - &gEfiGetPcdInfoProtocolGuid, &mEfiGetPcdInfoInstance, > > > > > > - NULL > > > > > > - ); > > > > > > - ASSERT_EFI_ERROR (Status); > > > > > > + // > > > > > > + // Install GET_PCD_INFO_PROTOCOL to handle dynamic type PCD > > > > > > + // Install EFI_GET_PCD_INFO_PROTOCOL to handle dynamicEx type PCD > > > > > > + // > > > > > > + Status = gBS->InstallMultipleProtocolInterfaces ( > > > > > > + &mPcdHandle, > > > > > > + &gGetPcdInfoProtocolGuid, &mGetPcdInfoInstance, > > > > > > + &gEfiGetPcdInfoProtocolGuid, > > > + &mEfiGetPcdInfoInstance, > > > > > > + NULL > > > > > > + ); > > > > > > + ASSERT_EFI_ERROR (Status); > > > > > > + } > > > > > > > > > > > > // > > > > > > // Register callback function upon VariableLockProtocol > > > > > > diff --git a/MdeModulePkg/Universal/PCD/Dxe/Pcd.inf > > > b/MdeModulePkg/Universal/PCD/Dxe/Pcd.inf > > > index eb9f757f14..f3e704f083 100644 > > > --- a/MdeModulePkg/Universal/PCD/Dxe/Pcd.inf > > > +++ b/MdeModulePkg/Universal/PCD/Dxe/Pcd.inf > > > @@ -329,10 +329,15 @@ > > > gEfiMdeModulePkgTokenSpaceGuid ## SOMETIMES_CONSUMES > > ## GUID > > > > > > > > > > > > [Protocols] > > > > > > - gPcdProtocolGuid ## PRODUCES > > > > > > - gEfiPcdProtocolGuid ## PRODUCES > > > > > > - gGetPcdInfoProtocolGuid ## SOMETIMES_PRODUCES > > > > > > - gEfiGetPcdInfoProtocolGuid ## SOMETIMES_PRODUCES > > > > > > + gPcdProtocolGuid ## PRODUCES > > > > > > + gEfiPcdProtocolGuid ## PRODUCES > > > > > > + gGetPcdInfoProtocolGuid ## SOMETIMES_PRODUCES > > > > > > + gEfiGetPcdInfoProtocolGuid ## SOMETIMES_PRODUCES > > > > > > + > > > > > > + gEdkiiPayloadStandalonePcdProtocolGuid ## PRODUCES > > > > > > + gEdkiiEfiPayloadStandalonePcdProtocolGuid ## PRODUCES > > > > > > + gEdkiiPayloadGetStandalonePcdInfoProtocolGuid ## > > SOMETIMES_PRODUCES > > > > > > + gEdkiiEfiPayloadGetStandalonePcdInfoProtocolGuid ## > > > + SOMETIMES_PRODUCES > > > > > > ## NOTIFY > > > > > > ## SOMETIMES_CONSUMES > > > > > > gEdkiiVariableLockProtocolGuid > > > > > > @@ -342,6 +347,9 @@ > > > gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress64 ## > > SOMETIMES_CONSUMES > > > > > > gEfiMdeModulePkgTokenSpaceGuid.PcdSetNvStoreDefaultId ## > > > SOMETIMES_CONSUMES > > > > > > > > > > > > +[FeaturePcd] > > > > > > + gEfiMdePkgTokenSpaceGuid.PcdStandalonePcdDatabaseEnable ## > > CONSUMES > > > > > > + > > > > > > [Depex] > > > > > > TRUE > > > > > > > > > > > > diff --git a/MdeModulePkg/Universal/PCD/Dxe/Service.c > > > b/MdeModulePkg/Universal/PCD/Dxe/Service.c > > > index ea7edc3cbb..fe16ba713b 100644 > > > --- a/MdeModulePkg/Universal/PCD/Dxe/Service.c > > > +++ b/MdeModulePkg/Universal/PCD/Dxe/Service.c > > > @@ -861,7 +861,12 @@ BuildPcdDxeDataBase ( > > > CopyMem (PcdDxeDb, mPcdDatabase.DxeDb, mPcdDatabase.DxeDb- > > >Length); > > > > > > mPcdDatabase.DxeDb = PcdDxeDb; > > > > > > > > > > > > - GuidHob = GetFirstGuidHob (&gPcdDataBaseHobGuid); > > > > > > + if (FeaturePcdGet (PcdStandalonePcdDatabaseEnable)) { > > > > > > + GuidHob = NULL; > > > > > > + } else { > > > > > > + GuidHob = GetFirstGuidHob (&gPcdDataBaseHobGuid); > > > > > > + } > > > > > > + > > > > > > if (GuidHob != NULL) { > > > > > > > > > > > > // > > > > > > diff --git a/MdePkg/Include/Protocol/Pcd.h > > > b/MdePkg/Include/Protocol/Pcd.h index 9cd1a998f8..cfa6ac2360 100644 > > > --- a/MdePkg/Include/Protocol/Pcd.h > > > +++ b/MdePkg/Include/Protocol/Pcd.h > > > @@ -17,11 +17,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent > > > #ifndef __PCD_H__ > > > > > > #define __PCD_H__ > > > > > > > > > > > > -extern EFI_GUID gPcdProtocolGuid; > > > > > > - > > > > > > -#define PCD_PROTOCOL_GUID \ > > > > > > - { 0x11b34006, 0xd85b, 0x4d0a, { 0xa2, 0x90, 0xd5, 0xa5, 0x71, 0x31, > > > 0xe, 0xf7 } } > > > > > > - > > > > > > #define PCD_INVALID_TOKEN_NUMBER ((UINTN) 0) > > > > > > > > > > > > > > > > > > diff --git a/MdePkg/Include/Protocol/PcdInfo.h > > > b/MdePkg/Include/Protocol/PcdInfo.h > > > index b0ec7f6770..5691215c42 100644 > > > --- a/MdePkg/Include/Protocol/PcdInfo.h > > > +++ b/MdePkg/Include/Protocol/PcdInfo.h > > > @@ -19,11 +19,6 @@ > > > #ifndef __PCD_INFO_H__ > > > > > > #define __PCD_INFO_H__ > > > > > > > > > > > > -extern EFI_GUID gGetPcdInfoProtocolGuid; > > > > > > - > > > > > > -#define GET_PCD_INFO_PROTOCOL_GUID \ > > > > > > - { 0x5be40f57, 0xfa68, 0x4610, { 0xbb, 0xbf, 0xe9, 0xc5, 0xfc, 0xda, > > > 0xd3, 0x65 } } > > > > > > - > > > > > > /// > > > > > > /// The forward declaration for GET_PCD_INFO_PROTOCOL. > > > > > > /// > > > > > > diff --git a/MdePkg/Library/DxePcdLib/DxePcdLib.c > > > b/MdePkg/Library/DxePcdLib/DxePcdLib.c > > > index 2accaeda2c..8a61486832 100644 > > > --- a/MdePkg/Library/DxePcdLib/DxePcdLib.c > > > +++ b/MdePkg/Library/DxePcdLib/DxePcdLib.c > > > @@ -43,7 +43,11 @@ GetPiPcdProtocol ( > > > // PI Pcd protocol defined in PI 1.2 vol3 should be installed > > > before the module > > > > > > // access DynamicEx type PCD. > > > > > > // > > > > > > - Status = gBS->LocateProtocol (&gEfiPcdProtocolGuid, NULL, (VOID **) > > &mPiPcd); > > > > > > + if (FeaturePcdGet (PcdStandalonePcdDatabaseEnable)) { > > > > > > + Status = gBS->LocateProtocol > > > + (&gEdkiiEfiPayloadStandalonePcdProtocolGuid, NULL, (VOID **) > > > + &mPiPcd); > > > > > > + } else { > > > > > > + Status = gBS->LocateProtocol (&gEfiPcdProtocolGuid, NULL, (VOID > > > + **) &mPiPcd); > > > > > > + } > > > > > > ASSERT_EFI_ERROR (Status); > > > > > > ASSERT (mPiPcd != NULL); > > > > > > } > > > > > > @@ -68,7 +72,11 @@ GetPcdProtocol ( > > > // PCD protocol need to be installed before the module access Dynamic > > type PCD. > > > > > > // But dynamic type PCD is not required in PI 1.2 specification. > > > > > > // > > > > > > - Status = gBS->LocateProtocol (&gPcdProtocolGuid, NULL, (VOID > > **)&mPcd); > > > > > > + if (FeaturePcdGet (PcdStandalonePcdDatabaseEnable)) { > > > > > > + Status = gBS->LocateProtocol > > > + (&gEdkiiPayloadStandalonePcdProtocolGuid, NULL, (VOID **)&mPcd); > > > > > > + } else { > > > > > > + Status = gBS->LocateProtocol (&gPcdProtocolGuid, NULL, (VOID > > > + **)&mPcd); > > > > > > + } > > > > > > ASSERT_EFI_ERROR (Status); > > > > > > ASSERT (mPcd != NULL); > > > > > > } > > > > > > @@ -88,7 +96,11 @@ GetPiPcdInfoProtocolPointer ( > > > EFI_STATUS Status; > > > > > > > > > > > > if (mPiPcdInfo == NULL) { > > > > > > - Status = gBS->LocateProtocol (&gEfiGetPcdInfoProtocolGuid, NULL, > > (VOID **)&mPiPcdInfo); > > > > > > + if (FeaturePcdGet (PcdStandalonePcdDatabaseEnable)) { > > > > > > + Status = gBS->LocateProtocol > > > + (&gEdkiiEfiPayloadGetStandalonePcdInfoProtocolGuid, NULL, (VOID > > > + **)&mPiPcdInfo); > > > > > > + } else{ > > > > > > + Status = gBS->LocateProtocol (&gEfiGetPcdInfoProtocolGuid, > > > + NULL, (VOID **)&mPiPcdInfo); > > > > > > + } > > > > > > ASSERT_EFI_ERROR (Status); > > > > > > ASSERT (mPiPcdInfo != NULL); > > > > > > } > > > > > > @@ -108,7 +120,11 @@ GetPcdInfoProtocolPointer ( > > > EFI_STATUS Status; > > > > > > > > > > > > if (mPcdInfo == NULL) { > > > > > > - Status = gBS->LocateProtocol (&gGetPcdInfoProtocolGuid, NULL, (VOID > > **)&mPcdInfo); > > > > > > + if (FeaturePcdGet (PcdStandalonePcdDatabaseEnable)) { > > > > > > + Status = gBS->LocateProtocol > > > + (&gEdkiiPayloadGetStandalonePcdInfoProtocolGuid, NULL, (VOID > > > + **)&mPcdInfo); > > > > > > + } else { > > > > > > + Status = gBS->LocateProtocol (&gGetPcdInfoProtocolGuid, NULL, > > > + (VOID **)&mPcdInfo); > > > > > > + } > > > > > > ASSERT_EFI_ERROR (Status); > > > > > > ASSERT (mPcdInfo != NULL); > > > > > > } > > > > > > diff --git a/MdePkg/Library/DxePcdLib/DxePcdLib.inf > > > b/MdePkg/Library/DxePcdLib/DxePcdLib.inf > > > index 3d4d21b442..59d9fe4f11 100644 > > > --- a/MdePkg/Library/DxePcdLib/DxePcdLib.inf > > > +++ b/MdePkg/Library/DxePcdLib/DxePcdLib.inf > > > @@ -53,10 +53,18 @@ > > > > > > > > > > > > > > > [Protocols] > > > > > > - gPcdProtocolGuid ## SOMETIMES_CONSUMES > > > > > > - gEfiPcdProtocolGuid ## CONSUMES > > > > > > - gGetPcdInfoProtocolGuid ## SOMETIMES_CONSUMES > > > > > > - gEfiGetPcdInfoProtocolGuid ## SOMETIMES_CONSUMES > > > > > > + gPcdProtocolGuid ## SOMETIMES_CONSUMES > > > > > > + gEfiPcdProtocolGuid ## SOMETIMES_CONSUMES > > > > > > + gGetPcdInfoProtocolGuid ## SOMETIMES_CONSUMES > > > > > > + gEfiGetPcdInfoProtocolGuid ## SOMETIMES_CONSUMES > > > > > > + > > > > > > + gEdkiiPayloadStandalonePcdProtocolGuid ## > > SOMETIMES_CONSUMES > > > > > > + gEdkiiEfiPayloadStandalonePcdProtocolGuid ## > > SOMETIMES_CONSUMES > > > > > > + gEdkiiPayloadGetStandalonePcdInfoProtocolGuid ## > > SOMETIMES_CONSUMES > > > > > > + gEdkiiEfiPayloadGetStandalonePcdInfoProtocolGuid ## > > > + SOMETIMES_CONSUMES > > > > > > + > > > > > > +[FeaturePcd] > > > > > > + gEfiMdePkgTokenSpaceGuid.PcdStandalonePcdDatabaseEnable ## > > CONSUMES > > > > > > > > > > > > [Depex.common.DXE_DRIVER, Depex.common.DXE_RUNTIME_DRIVER, > > > Depex.common.DXE_SAL_DRIVER, Depex.common.DXE_SMM_DRIVER] > > > > > > gEfiPcdProtocolGuid > > > > > > diff --git a/MdePkg/Library/DxePcdLib/PayloadPcdLib.inf > > > b/MdePkg/Library/DxePcdLib/PayloadPcdLib.inf > > > new file mode 100644 > > > index 0000000000..e61296e11a > > > --- /dev/null > > > +++ b/MdePkg/Library/DxePcdLib/PayloadPcdLib.inf > > > @@ -0,0 +1,71 @@ > > > +## @file > > > > > > +# Instance of PCD Library using PCD Protocol. > > > > > > +# > > > > > > +# There are two PCD protocols as follows: > > > > > > +# 1) PCD_PROTOCOL > > > > > > +# It is EDKII implementation which support Dynamic/DynamicEx Pcds. > > > > > > +# 2) EFI_PCD_PROTOCOL > > > > > > +# 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_PROTOCOL and > > EFI_PCD_PROTOCOL. > > > > > > +# > > > > > > +# This library instance uses the PCD_PROTOCOL to handle dynamic PCD > > > +request and use > > > > > > +# EFI_PCD_PROTOCOL to handle dynamicEx type PCD. > > > > > > +# > > > > > > +# Note: A driver of type DXE_RUNTIME_DRIVER and DXE_SMM_DRIVER > > can > > > +only use this DxePcdLib > > > > > > +# in their initialization without any issues to access Dynamic and > > > +DynamicEx PCD. They can't > > > > > > +# access Dynamic and DynamicEx PCD in the implementation of runtime > > services and SMI handlers. > > > > > > +# Because EFI_PCD_PROTOCOL is DXE protocol that is not available in OS > > runtime phase. > > > > > > +# > > > > > > +# Copyright (c) 2007 - 2018, Intel Corporation. All rights > > > +reserved.<BR> > > > > > > +# > > > > > > +# SPDX-License-Identifier: BSD-2-Clause-Patent > > > > > > +# > > > > > > +# > > > > > > +## > > > > > > + > > > > > > +[Defines] > > > > > > + INF_VERSION = 0x00010005 > > > > > > + BASE_NAME = DxePcdLib > > > > > > + MODULE_UNI_FILE = DxePcdLib.uni > > > > > > + FILE_GUID = f9af2f38-09e2-4ff1-b661-5d1c19d9f75c > > > > > > + MODULE_TYPE = DXE_DRIVER > > > > > > + VERSION_STRING = 1.0 > > > > > > + LIBRARY_CLASS = PcdLib|DXE_CORE DXE_DRIVER > > DXE_RUNTIME_DRIVER DXE_SMM_DRIVER SMM_CORE UEFI_APPLICATION > > > UEFI_DRIVER > > > > > > + > > > > > > +# > > > > > > +# VALID_ARCHITECTURES = IA32 X64 EBC > > > > > > +# > > > > > > + > > > > > > +[Sources] > > > > > > + DxePcdLib.c > > > > > > + > > > > > > + > > > > > > +[Packages] > > > > > > + MdePkg/MdePkg.dec > > > > > > + > > > > > > + > > > > > > +[LibraryClasses] > > > > > > + BaseMemoryLib > > > > > > + UefiBootServicesTableLib > > > > > > + DebugLib > > > > > > + > > > > > > + > > > > > > +[Protocols] > > > > > > + gPcdProtocolGuid ## SOMETIMES_CONSUMES > > > > > > + gEfiPcdProtocolGuid ## SOMETIMES_CONSUMES > > > > > > + gGetPcdInfoProtocolGuid ## SOMETIMES_CONSUMES > > > > > > + gEfiGetPcdInfoProtocolGuid ## SOMETIMES_CONSUMES > > > > > > + > > > > > > + gEdkiiPayloadStandalonePcdProtocolGuid ## > > SOMETIMES_CONSUMES > > > > > > + gEdkiiEfiPayloadStandalonePcdProtocolGuid ## > > SOMETIMES_CONSUMES > > > > > > + gEdkiiPayloadGetStandalonePcdInfoProtocolGuid ## > > SOMETIMES_CONSUMES > > > > > > + gEdkiiEfiPayloadGetStandalonePcdInfoProtocolGuid ## > > > + SOMETIMES_CONSUMES > > > > > > + > > > > > > +[FeaturePcd] > > > > > > + gEfiMdePkgTokenSpaceGuid.PcdStandalonePcdDatabaseEnable ## > > CONSUMES > > > > > > + > > > > > > +[Depex.common.DXE_DRIVER, Depex.common.DXE_RUNTIME_DRIVER, > > > +Depex.common.DXE_SAL_DRIVER, Depex.common.DXE_SMM_DRIVER] > > > > > > + gEdkiiEfiPayloadStandalonePcdProtocolGuid > > > > > > + > > > > > > diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec index > > > b49f88d8e1..44f60e2086 100644 > > > --- a/MdePkg/MdePkg.dec > > > +++ b/MdePkg/MdePkg.dec > > > @@ -1000,6 +1000,12 @@ > > > ## Include/Protocol/PcdInfo.h > > > > > > gGetPcdInfoProtocolGuid = { 0x5be40f57, 0xfa68, 0x4610, { 0xbb, > > > 0xbf, > > 0xe9, 0xc5, 0xfc, 0xda, 0xd3, 0x65 } } > > > > > > > > > > > > + ## Payload Standalone Pcd Protocol > > > > > > + gEdkiiPayloadStandalonePcdProtocolGuid = {0x8ef6ff48, > > > 0x2260, > > 0x5407, {0x0d, 0x18, 0x2e, 0x2c, 0xaa, 0x7d, > > > 0xc9, 0x1f}} > > > > > > + gEdkiiEfiPayloadStandalonePcdProtocolGuid = {0x7e50c422, > > > 0xae76, > > 0xbdc9, {0x16, 0x66, 0xca, 0x67, 0x95, 0x04, > > > 0x4d, 0xea}} > > > > > > + gEdkiiPayloadGetStandalonePcdInfoProtocolGuid = {0xd7214c03, > > 0x27e0, 0x5b35, {0xd5, 0xb1, 0xeb, 0x1a, 0x50, 0x14, > > > 0x5e, 0x15}} > > > > > > + gEdkiiEfiPayloadGetStandalonePcdInfoProtocolGuid = {0x1039ecdf, > > > + 0x5908, 0xf76c, {0x51, 0xf9, 0xae, 0x09, 0xc5, 0xa9, > > > 0x68, 0x9e}} > > > > > > + > > > > > > # > > > > > > # Protocols defined in PI1.0. > > > > > > # > > > > > > @@ -1945,6 +1951,12 @@ > > > # @Prompt Validate ORDERED_COLLECTION structure > > > > > > > > > > > gEfiMdePkgTokenSpaceGuid.PcdValidateOrderedCollection|FALSE|BOOLEA > > N|0x > > > 0000002a > > > > > > > > > > > > + ## Indicates if the standalone PCD database is enabled for > > > + Payload.<BR><BR> > > > > > > + # TRUE - Enable tandalone PCD database is enabled for Payload.<BR> > > > > > > + # FALSE - Disable tandalone PCD database is enabled for Payload.<BR> > > > > > > + # @Prompt Enable tandalone PCD database is enabled for Payload. > > > > > > + > > > + > > gEfiMdePkgTokenSpaceGuid.PcdStandalonePcdDatabaseEnable|FALSE|BOO > > LEA > > > + N|0x0000002e > > > > > > + > > > > > > [PcdsFixedAtBuild] > > > > > > ## Status code value for indicating a watchdog timer has expired. > > > > > > # EFI_COMPUTING_UNIT_HOST_PROCESSOR | > > EFI_CU_HP_EC_TIMER_EXPIRED > > > > > > -- > > > 2.30.0.windows.2 > > > > > > > > > > > > -=-=-=-=-=-= > > > Groups.io Links: You receive all messages sent to this group. > > > View/Reply Online (#75502): > > > https://edk2.groups.io/g/devel/message/75502 > > > Mute This Topic: https://groups.io/mt/83046935/1643496 > > > Group Owner: devel+ow...@edk2.groups.io > > > Unsubscribe: https://edk2.groups.io/g/devel/unsub > > > [michael.d.kin...@intel.com] -=-=-=-=-=-= > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#75582): https://edk2.groups.io/g/devel/message/75582 Mute This Topic: https://groups.io/mt/83046935/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-