From nobody Sun May 19 06:23:06 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+75502+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+75502+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1621848324; cv=none; d=zohomail.com; s=zohoarc; b=LnuYTY+dYTUxDRY7PpTQYqnQKljkJdSuM6EQAx7wJmU36r2m1KFqq5NkTNQTRSw3tKTTckspSIxY4m/aH7kfSZzlEo7BuG76dHNhxo+BXpgeF+UpE8NU6q0WPZMD3u/05ugImEj8cqgpkJr7Z9N+JVH4wyvZWzUrliD5OFjWOLQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621848324; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=cCceWqp7Okqbg080/NS32NKj6epUF5AqegYwlTp9+5I=; b=jIgLb1bnfkEx6UrIJS9bTg6Z5vyvFfNNmh0TRJBIsGPWrVZDJ0zveDy9YcMQgN0ut1jGPYu8wGyQtZCTwh3nbqfw2s7adz/hYpE9V29JGEGfsMattXdFWNvG+MSZ4W7jGoEy9OHpTaMInBKxaoqWWfsWMcHb4iCvEcEwHuXHaGQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+75502+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 162184832435143.86218137220658; Mon, 24 May 2021 02:25:24 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 86HpYY1788612xxAVCPNSOsu; Mon, 24 May 2021 02:25:24 -0700 X-Received: from mga06.intel.com (mga06.intel.com []) by mx.groups.io with SMTP id smtpd.web12.20661.1621848318087911213 for ; Mon, 24 May 2021 02:25:18 -0700 IronPort-SDR: gOcYKGXwP1j/1UxeRExyyYWPm8cQpExh4ne7qVEVPGm4C4Zl+WJjivxHdc2/EB1uceKVLwplmP m/qd3QlkEhVQ== X-IronPort-AV: E=McAfee;i="6200,9189,9993"; a="263104101" X-IronPort-AV: E=Sophos;i="5.82,319,1613462400"; d="scan'208";a="263104101" X-Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 May 2021 02:25:18 -0700 IronPort-SDR: JAoMesOZDPfSEztm6RNHi1d60VlcDDNR7uhVNfG7kzKIdNlGALZVFXlZ2cdi9bn2v4vyPLFjW0 Jl0NP2HKFgHg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.82,319,1613462400"; d="scan'208";a="545848994" X-Received: from fieedk002.ccr.corp.intel.com ([10.239.158.144]) by fmsmga001.fm.intel.com with ESMTP; 24 May 2021 02:25:16 -0700 From: "Zhiguang Liu" To: devel@edk2.groups.io Cc: Michael D Kinney , Liming Gao Subject: [edk2-devel] [PATCH 1/2] MdePkg: Standalone PCD driver Date: Mon, 24 May 2021 17:24:53 +0800 Message-Id: <20210524092454.1168-2-zhiguang.liu@intel.com> In-Reply-To: <20210524092454.1168-1-zhiguang.liu@intel.com> References: <20210524092454.1168-1-zhiguang.liu@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,zhiguang.liu@intel.com X-Gm-Message-State: 4yTwAWg5J6hovkr0YJxP0qh5x1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1621848324; bh=nM3zIhmx5HqyNHZp7P6CEbH/y+Ep2TdmQ0nTQ8IGIZc=; h=Cc:Date:From:Reply-To:Subject:To; b=lESVK+V5aitVQ3eyjXl+Ge1t8lR/Wah0vh/p/RUQ3bLyo0sf3HOt3Yp2hMnqOk24fLe shUoiZOf4DSGZYCRgstneNZXlWA1EJBSynI6Y0vmg1GmcXU/uJhAQQ6PfkNRS/XQkeR8k PYH29x/n7rAt5qa+fAOBWnwg1X2OHdXNy+Q= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" 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 Cc: Liming Gao Signed-off-by: Zhiguang Liu --- 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, &gEdkiiPayloadStandalonePcdPr= otocolGuid); + BuildPcdDxeDataBase (); =20 - ASSERT_PROTOCOL_ALREADY_INSTALLED (NULL, &gPcdProtocolGuid); + // + // Install PCD_PROTOCOL to handle dynamic type PCD + // Install EFI_PCD_PROTOCOL to handle dynamicEx type PCD + // + Status =3D gBS->InstallMultipleProtocolInterfaces ( + &mPcdHandle, + &gEdkiiPayloadStandalonePcdProtocolGuid, &mPcdInst= ance, + &gEdkiiEfiPayloadStandalonePcdProtocolGuid, &mEfiPcdI= nstance, + NULL + ); + ASSERT_EFI_ERROR (Status); =20 - BuildPcdDxeDataBase (); + // + // Install GET_PCD_INFO_PROTOCOL to handle dynamic type PCD + // Install EFI_GET_PCD_INFO_PROTOCOL to handle dynamicEx type PCD + // + Status =3D gBS->InstallMultipleProtocolInterfaces ( + &mPcdHandle, + &gEdkiiPayloadGetStandalonePcdInfoProtocolGuid, &m= GetPcdInfoInstance, + &gEdkiiEfiPayloadGetStandalonePcdInfoProtocolGuid, &m= EfiGetPcdInfoInstance, + NULL + ); + ASSERT_EFI_ERROR (Status); + } else { + ASSERT_PROTOCOL_ALREADY_INSTALLED (NULL, &gPcdProtocolGuid); + BuildPcdDxeDataBase (); =20 - // - // Install PCD_PROTOCOL to handle dynamic type PCD - // Install EFI_PCD_PROTOCOL to handle dynamicEx type PCD - // - Status =3D 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 =3D gBS->InstallMultipleProtocolInterfaces ( + &mPcdHandle, + &gPcdProtocolGuid, &mPcdInstance, + &gEfiPcdProtocolGuid, &mEfiPcdInstance, + NULL + ); + ASSERT_EFI_ERROR (Status); =20 - // - // Install GET_PCD_INFO_PROTOCOL to handle dynamic type PCD - // Install EFI_GET_PCD_INFO_PROTOCOL to handle dynamicEx type PCD - // - Status =3D 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 =3D gBS->InstallMultipleProtocolInterfaces ( + &mPcdHandle, + &gGetPcdInfoProtocolGuid, &mGetPcdInfoInstance, + &gEfiGetPcdInfoProtocolGuid, &mEfiGetPcdInfoInstance, + NULL + ); + ASSERT_EFI_ERROR (Status); + } =20 // // Register callback function upon VariableLockProtocol diff --git a/MdeModulePkg/Universal/PCD/Dxe/Pcd.inf b/MdeModulePkg/Universa= l/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 =20 [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_CONSU= MES gEfiMdeModulePkgTokenSpaceGuid.PcdSetNvStoreDefaultId ## SOMETIMES_CONSU= MES =20 +[FeaturePcd] + gEfiMdePkgTokenSpaceGuid.PcdStandalonePcdDatabaseEnable ## CONSUMES + [Depex] TRUE =20 diff --git a/MdeModulePkg/Universal/PCD/Dxe/Service.c b/MdeModulePkg/Univer= sal/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 =3D PcdDxeDb; =20 - GuidHob =3D GetFirstGuidHob (&gPcdDataBaseHobGuid); + if (FeaturePcdGet (PcdStandalonePcdDatabaseEnable)) { + GuidHob =3D NULL; + } else { + GuidHob =3D GetFirstGuidHob (&gPcdDataBaseHobGuid); + } + if (GuidHob !=3D NULL) { =20 // 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__ =20 -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) =20 =20 diff --git a/MdePkg/Include/Protocol/PcdInfo.h b/MdePkg/Include/Protocol/Pc= dInfo.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__ =20 -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/DxePcdLi= b/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 t= he module // access DynamicEx type PCD. // - Status =3D gBS->LocateProtocol (&gEfiPcdProtocolGuid, NULL, (VOID **) = &mPiPcd); + if (FeaturePcdGet (PcdStandalonePcdDatabaseEnable)) { + Status =3D gBS->LocateProtocol (&gEdkiiEfiPayloadStandalonePcdProtoc= olGuid, NULL, (VOID **) &mPiPcd); + } else { + Status =3D gBS->LocateProtocol (&gEfiPcdProtocolGuid, NULL, (VOID **= ) &mPiPcd); + } ASSERT_EFI_ERROR (Status); ASSERT (mPiPcd !=3D 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 =3D gBS->LocateProtocol (&gPcdProtocolGuid, NULL, (VOID **)&mPc= d); + if (FeaturePcdGet (PcdStandalonePcdDatabaseEnable)) { + Status =3D gBS->LocateProtocol (&gEdkiiPayloadStandalonePcdProtocolG= uid, NULL, (VOID **)&mPcd); + } else { + Status =3D gBS->LocateProtocol (&gPcdProtocolGuid, NULL, (VOID **)&m= Pcd); + } ASSERT_EFI_ERROR (Status); ASSERT (mPcd !=3D NULL); } @@ -88,7 +96,11 @@ GetPiPcdInfoProtocolPointer ( EFI_STATUS Status; =20 if (mPiPcdInfo =3D=3D NULL) { - Status =3D gBS->LocateProtocol (&gEfiGetPcdInfoProtocolGuid, NULL, (VO= ID **)&mPiPcdInfo); + if (FeaturePcdGet (PcdStandalonePcdDatabaseEnable)) { + Status =3D gBS->LocateProtocol (&gEdkiiEfiPayloadGetStandalonePcdInf= oProtocolGuid, NULL, (VOID **)&mPiPcdInfo); + } else{ + Status =3D gBS->LocateProtocol (&gEfiGetPcdInfoProtocolGuid, NULL, (= VOID **)&mPiPcdInfo); + } ASSERT_EFI_ERROR (Status); ASSERT (mPiPcdInfo !=3D NULL); } @@ -108,7 +120,11 @@ GetPcdInfoProtocolPointer ( EFI_STATUS Status; =20 if (mPcdInfo =3D=3D NULL) { - Status =3D gBS->LocateProtocol (&gGetPcdInfoProtocolGuid, NULL, (VOID = **)&mPcdInfo); + if (FeaturePcdGet (PcdStandalonePcdDatabaseEnable)) { + Status =3D gBS->LocateProtocol (&gEdkiiPayloadGetStandalonePcdInfoPr= otocolGuid, NULL, (VOID **)&mPcdInfo); + } else { + Status =3D gBS->LocateProtocol (&gGetPcdInfoProtocolGuid, NULL, (VOI= D **)&mPcdInfo); + } ASSERT_EFI_ERROR (Status); ASSERT (mPcdInfo !=3D NULL); } diff --git a/MdePkg/Library/DxePcdLib/DxePcdLib.inf b/MdePkg/Library/DxePcd= Lib/DxePcdLib.inf index 3d4d21b442..59d9fe4f11 100644 --- a/MdePkg/Library/DxePcdLib/DxePcdLib.inf +++ b/MdePkg/Library/DxePcdLib/DxePcdLib.inf @@ -53,10 +53,18 @@ =20 =20 [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 =20 [Depex.common.DXE_DRIVER, Depex.common.DXE_RUNTIME_DRIVER, Depex.common.DX= E_SAL_DRIVER, Depex.common.DXE_SMM_DRIVER] gEfiPcdProtocolGuid diff --git a/MdePkg/Library/DxePcdLib/PayloadPcdLib.inf b/MdePkg/Library/Dx= ePcdLib/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 dyn= amicEx +# type Pcd. +# +# For dynamicEx type PCD, it is compatible between PCD_PROTOCOL and EFI_PC= D_PROTOCOL. +# +# This library instance uses the PCD_PROTOCOL to handle dynamic PCD reques= t and use +# EFI_PCD_PROTOCOL to handle dynamicEx type PCD. +# +# Note: A driver of type DXE_RUNTIME_DRIVER and DXE_SMM_DRIVER can only us= e this DxePcdLib +# in their initialization without any issues to access Dynamic and Dynami= cEx PCD. They can't +# access Dynamic and DynamicEx PCD in the implementation of runtime servi= ces and SMI handlers. +# Because EFI_PCD_PROTOCOL is DXE protocol that is not available in OS ru= ntime phase. +# +# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
+# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +# +## + +[Defines] + INF_VERSION =3D 0x00010005 + BASE_NAME =3D DxePcdLib + MODULE_UNI_FILE =3D DxePcdLib.uni + FILE_GUID =3D f9af2f38-09e2-4ff1-b661-5d1c19d9f75c + MODULE_TYPE =3D DXE_DRIVER + VERSION_STRING =3D 1.0 + LIBRARY_CLASS =3D PcdLib|DXE_CORE DXE_DRIVER DXE_RUNTIM= E_DRIVER DXE_SMM_DRIVER SMM_CORE UEFI_APPLICATION UEFI_DRIVER + +# +# VALID_ARCHITECTURES =3D 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.DX= E_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 =3D { 0x5be40f57, 0xfa68, 0x4610, { 0xbb,= 0xbf, 0xe9, 0xc5, 0xfc, 0xda, 0xd3, 0x65 } } =20 + ## Payload Standalone Pcd Protocol + gEdkiiPayloadStandalonePcdProtocolGuid =3D {0x8ef6ff48, 0x226= 0, 0x5407, {0x0d, 0x18, 0x2e, 0x2c, 0xaa, 0x7d, 0xc9, 0x1f}} + gEdkiiEfiPayloadStandalonePcdProtocolGuid =3D {0x7e50c422, 0xae7= 6, 0xbdc9, {0x16, 0x66, 0xca, 0x67, 0x95, 0x04, 0x4d, 0xea}} + gEdkiiPayloadGetStandalonePcdInfoProtocolGuid =3D {0xd7214c03, 0x27e= 0, 0x5b35, {0xd5, 0xb1, 0xeb, 0x1a, 0x50, 0x14, 0x5e, 0x15}} + gEdkiiEfiPayloadGetStandalonePcdInfoProtocolGuid =3D {0x1039ecdf, 0x590= 8, 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|BOOLEAN|0x00= 00002a =20 + ## Indicates if the standalone PCD database is enabled for Payload.
<= BR> + # TRUE - Enable tandalone PCD database is enabled for Payload.
+ # FALSE - Disable tandalone PCD database is enabled for Payload.
+ # @Prompt Enable tandalone PCD database is enabled for Payload. + gEfiMdePkgTokenSpaceGuid.PcdStandalonePcdDatabaseEnable|FALSE|BOOLEAN|0x= 0000002e + [PcdsFixedAtBuild] ## Status code value for indicating a watchdog timer has expired. # EFI_COMPUTING_UNIT_HOST_PROCESSOR | EFI_CU_HP_EC_TIMER_EXPIRED --=20 2.30.0.windows.2 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- 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/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Sun May 19 06:23:06 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+75503+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+75503+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1621848321; cv=none; d=zohomail.com; s=zohoarc; b=XVziNw5X4F0IXoCaJSPxglt8g0pJBI9twCL1sZzxz++UBLa4Bgq3KywMHKcJa9JVuOyT0pBwU+ulwF3YpKjVkn2yPM87XREFO8qrPziiLDQ1nzK0iTt91lbPTelywHf8zfzJfTctiUTr7noEZcbqLluwRxwTKVYrQ12P2qw6tW8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621848321; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=lcv6pt7Jha1+Rbxlgzc76UmXt8LvCt9RYO1tJGiQS4I=; b=IHzn+Kp3Cv5maDNqItiNmcHzeAQMXcJAInAzvracCqxbKiKdPp7jDG9ZZWqt0LhLfgDE/woctRtZ5xmQCUkv+a40W2fg+Bz1Z/h2wK7MSWFa7xJ5um7SdIRNjMlZSbK+/vmTxfunV3Fk6J0G9who58aETp5yM+e2wOHZ3+vPwC4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+75503+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 16218483218922.2502058640870928; Mon, 24 May 2021 02:25:21 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id SwMIYY1788612xn5KgpBeKDy; Mon, 24 May 2021 02:25:21 -0700 X-Received: from mga06.intel.com (mga06.intel.com []) by mx.groups.io with SMTP id smtpd.web12.20661.1621848318087911213 for ; Mon, 24 May 2021 02:25:21 -0700 IronPort-SDR: +1L+5y3ViOmIQZnJuidJ0yimNzPJ1CwVvVG3aujBn5CkPHyXOSh0vPDKsgIH/IHLv4YwM4dHrD fhh2Z9L4qd3Q== X-IronPort-AV: E=McAfee;i="6200,9189,9993"; a="263104115" X-IronPort-AV: E=Sophos;i="5.82,319,1613462400"; d="scan'208";a="263104115" X-Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 May 2021 02:25:20 -0700 IronPort-SDR: F8ZnSz6vHe3gLBG4glaES+dJBNzAm4zwICkVHC2zEMyCb9xr8Gy4z+YMPXxem7tJQT4Oxoy6uq utKvZ5myZ7vA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.82,319,1613462400"; d="scan'208";a="545849008" X-Received: from fieedk002.ccr.corp.intel.com ([10.239.158.144]) by fmsmga001.fm.intel.com with ESMTP; 24 May 2021 02:25:19 -0700 From: "Zhiguang Liu" To: devel@edk2.groups.io Cc: Maurice Ma , Guo Dong , Benjamin You Subject: [edk2-devel] [PATCH 2/2] UefiPayloadPkg: Use standalone PCD driver Date: Mon, 24 May 2021 17:24:54 +0800 Message-Id: <20210524092454.1168-3-zhiguang.liu@intel.com> In-Reply-To: <20210524092454.1168-1-zhiguang.liu@intel.com> References: <20210524092454.1168-1-zhiguang.liu@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,zhiguang.liu@intel.com X-Gm-Message-State: EKdhemVeiPhSzhSmWkPZsOiAx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1621848321; bh=ZyXfw9GgJ0Kae0XUnLWc1sizeIni6255OlUhfA9Upzg=; h=Cc:Date:From:Reply-To:Subject:To; b=pXhFZ1KYHkkNtgdVKl67sMk49ZQyOsspduon1G5PiK+2tmmCDBlsNFMjWtlKbudL4s1 gtPA8bYIRJ6Ttfts0hFHTefdMt/sG5lXe2uWOCGEUMvLgv0Swy8jsoBpiPisl2gGOigv9 9MtlFiB5WP9WvrDSUcnFJMBImasE2YSITRE= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Using standalone PCD driver need to change PcdLib and also set a feature PC= D. Cc: Maurice Ma Cc: Guo Dong Cc: Benjamin You Signed-off-by: Zhiguang Liu --- UefiPayloadPkg/UefiPayloadPkg.dsc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc b/UefiPayloadPkg/UefiPayload= Pkg.dsc index 37ad5a0ae7..425447a58f 100644 --- a/UefiPayloadPkg/UefiPayloadPkg.dsc +++ b/UefiPayloadPkg/UefiPayloadPkg.dsc @@ -237,7 +237,7 @@ VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf =20 [LibraryClasses.common.DXE_DRIVER] - PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf + PcdLib|MdePkg/Library/DxePcdLib/PayloadPcdLib.inf HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAll= ocationLib.inf ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExt= ractGuidedSectionLib.inf @@ -250,14 +250,14 @@ VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf =20 [LibraryClasses.common.DXE_RUNTIME_DRIVER] - PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf + PcdLib|MdePkg/Library/DxePcdLib/PayloadPcdLib.inf HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAll= ocationLib.inf ReportStatusCodeLib|MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/R= untimeDxeReportStatusCodeLib.inf VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyL= ibRuntimeDxe.inf =20 [LibraryClasses.common.UEFI_DRIVER,LibraryClasses.common.UEFI_APPLICATION] - PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf + PcdLib|MdePkg/Library/DxePcdLib/PayloadPcdLib.inf MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAll= ocationLib.inf ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeRepor= tStatusCodeLib.inf HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf @@ -271,6 +271,7 @@ gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode|TRUE gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE + gEfiMdePkgTokenSpaceGuid.PcdStandalonePcdDatabaseEnable|TRUE =20 [PcdsFixedAtBuild] gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x10000 @@ -562,7 +563,7 @@ DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandlePar= singLib.inf OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTre= eLib/BaseOrderedCollectionRedBlackTreeLib.inf - PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf + PcdLib|MdePkg/Library/DxePcdLib/PayloadPcdLib.inf ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLi= b.inf ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellComman= dLib.inf SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf --=20 2.30.0.windows.2 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#75503): https://edk2.groups.io/g/devel/message/75503 Mute This Topic: https://groups.io/mt/83046936/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-