Hi Ray, Option 1, In current implement, the usage of AdvancedFeaturePkg in board DSC is:
!include AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc # invoke section "[Packages]", define default Feature PCD #option: [PcdsFeatureFlag], board can override default Feature PCD here, enable specific feature. !include Include/AdvancedFeatures.dsc Option 2, if there is no AdvancedFeaturesPcd.dsc, we can move section "[Packages]" to AdvancedFeatures.dsc, there is 2 concerns here: 1. there is no default Feature PCD now, we need to add [PcdsFeatureFlag] below in every OpenBoardPkg.dsc. if we add a new feature, we have to change all OpenBoardPkg.dsc files, but in option 1, we just need to change AdvancedFeaturesPcd.dsc [PcdsFeatureFlag] gAcpiDebugFeaturePkgTokenSpaceGuid.PcdAcpiDebugFeatureEnable |FALSE gIpmiFeaturePkgTokenSpaceGuid.PcdIpmiFeatureEnable |FALSE ..... 2. we define FeaturePCDs before section "[Packages]", it does work, but it looks strange. So I would like option 1, but I also agree option2 if you think it is better. Thanks, Heng > -----Original Message----- > From: Ni, Ray <ray...@intel.com> > Sent: Thursday, April 23, 2020 7:43 PM > To: Luo, Heng <heng....@intel.com>; devel@edk2.groups.io > Cc: Michael Kubacki <michael.a.kuba...@intel.com>; Gao, Liming > <liming....@intel.com>; Dong, Eric <eric.d...@intel.com> > Subject: RE: [PATCH 1/2] Features/Intel/AdvancedFeaturePkg: Remove > temporary build workaround > > Heng, > Any reason to create a separate Pcd.dsc file? > > > -----Original Message----- > > From: Luo, Heng <heng....@intel.com> > > Sent: Thursday, April 23, 2020 4:43 PM > > To: devel@edk2.groups.io > > Cc: Michael Kubacki <michael.a.kuba...@intel.com>; Gao, Liming > > <liming....@intel.com>; Dong, Eric <eric.d...@intel.com>; Ni, Ray > > <ray...@intel.com> > > Subject: [PATCH 1/2] Features/Intel/AdvancedFeaturePkg: Remove > > temporary build workaround > > > > Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2688 > > > > Remove Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround, > > Add > Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc > > to support Feature PCDs. > > > > Cc: Michael Kubacki <michael.a.kuba...@intel.com> > > Cc: Liming Gao <liming....@intel.com> > > Cc: Eric Dong <eric.d...@intel.com> > > Cc: Ray Ni <ray...@intel.com> > > Signed-off-by: Heng Luo <heng....@intel.com> > > --- > > Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc > | 2 +- > > Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc > | 41 > > +++++++++++++++++++++++++++++++++++++++++ > > > Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/Temporar > yBuildWorkaround.c | 31 --------------------------- > > ---- > > > > > Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/Temporar > yBu > > ildWorkaround.dsc | 76 -------------------------- > > -------------------------------------------------- > > > > > Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/Temporar > yBu > > ildWorkaround.inf | 60 --------------------------- > > --------------------------------- > > 5 files changed, 42 insertions(+), 168 deletions(-) > > > > diff --git a/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc > > b/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc > > index ea879680ba..e509ef3e1b 100644 > > --- a/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc > > +++ b/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc > > @@ -30,7 +30,7 @@ > > PEI_ARCH = IA32 > > > > DXE_ARCH = X64 > > > > > > > > -!include > > > AdvancedFeaturePkg/TemporaryBuildWorkaround/TemporaryBuildWorkaro > und.d > > sc > > > > +!include AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc > > > > > > > > > > > ################################################################ > ###### > > ########## > > > > # > > > > diff --git > > a/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc > > b/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc > > new file mode 100644 > > index 0000000000..2eacec18a0 > > --- /dev/null > > +++ > b/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.ds > > +++ c > > @@ -0,0 +1,41 @@ > > +## @file > > > > +# DSC file for defining Pcd of advanced features. > > > > +# > > > > +# This file is intended to be included into another package so > > +advanced features > > > > +# can be conditionally built by enabling the respective feature via its > FeaturePCD. > > > > +# > > > > +# Copyright (c) 2020, Intel Corporation. All rights reserved.<BR> > > > > +# > > > > +# SPDX-License-Identifier: BSD-2-Clause-Patent > > > > +# > > > > +## > > > > + > > > > +# > > > > +# The section references the package DEC files, > > > > +# it allow a FeaturePCD to be used in a conditional statement > > > > +# > > > > +[Packages] > > > > + MdePkg/MdePkg.dec > > > > + AcpiDebugFeaturePkg/AcpiDebugFeaturePkg.dec > > > > + Usb3DebugFeaturePkg/Usb3DebugFeaturePkg.dec > > > > + NetworkFeaturePkg/NetworkFeaturePkg.dec > > > > + IpmiFeaturePkg/IpmiFeaturePkg.dec > > > > + S3FeaturePkg/S3FeaturePkg.dec > > > > + SmbiosFeaturePkg/SmbiosFeaturePkg.dec > > > > + UserAuthFeaturePkg/UserAuthFeaturePkg.dec > > > > + LogoFeaturePkg/LogoFeaturePkg.dec > > > > + > > > > +# > > > > +# The section below sets all PCDs to FALSE in this DSC file so the feature > > is > not enabled by default. > > > > +# Board can set PCDs to TRUE in its DSC file to enable a subset of > > +advanced features > > > > +# > > > > +[PcdsFeatureFlag] > > > > + gAcpiDebugFeaturePkgTokenSpaceGuid.PcdAcpiDebugFeatureEnable > |FALSE > > > > + gIpmiFeaturePkgTokenSpaceGuid.PcdIpmiFeatureEnable > |FALSE > > > > + gNetworkFeaturePkgTokenSpaceGuid.PcdNetworkFeatureEnable > |FALSE > > > > + gS3FeaturePkgTokenSpaceGuid.PcdS3FeatureEnable > > |FALSE > > > > + gSmbiosFeaturePkgTokenSpaceGuid.PcdSmbiosFeatureEnable > |FALSE > > > > + gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugFeatureEnable > |FALSE > > > > + > gUserAuthFeaturePkgTokenSpaceGuid.PcdUserAuthenticationFeatureEnable > |FALSE > > > > + gLogoFeaturePkgTokenSpaceGuid.PcdLogoFeatureEnable > |FALSE > > > > + gLogoFeaturePkgTokenSpaceGuid.PcdJpgEnable > > |FALSE > > > > diff --git > > > a/Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/Tempor > ary > > BuildWorkaround.c > > > b/Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/Tempor > ary > > BuildWorkaround.c > > deleted file mode 100644 > > index 2cd91b06f0..0000000000 > > --- > > > a/Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/Tempor > ary > > BuildWorkaround.c > > +++ /dev/null > > @@ -1,31 +0,0 @@ > > -/** @file > > > > - Source code file for a temporary build workaround. > > > > - > > > > - The purpose of this workaround is described in the module INF file. > > > > - > > > > -Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> > > > > -SPDX-License-Identifier: BSD-2-Clause-Patent > > > > - > > > > -**/ > > > > - > > > > -#include <Base.h> > > > > -#include <Library/BaseLib.h> > > > > - > > > > -/** > > > > - An empty entry point function. > > > > - > > > > - @param FileHandle Handle of the file being invoked. > > > > - @param PeiServices Describes the list of possible PEI Services. > > > > - > > > > - @retval EFI_SUCCESS This function always returns EFI_SUCCESS. > > > > - > > > > -**/ > > > > -EFI_STATUS > > > > -EFIAPI > > > > -TemporaryBuildWorkaroundEntry ( > > > > - IN EFI_PEI_FILE_HANDLE FileHandle, > > > > - IN CONST EFI_PEI_SERVICES **PeiServices > > > > - ) > > > > -{ > > > > - return EFI_SUCCESS; > > > > -} > > > > diff --git > > > a/Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/Tempor > ary > > BuildWorkaround.dsc > > > b/Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/Tempor > ary > > BuildWorkaround.dsc > > deleted file mode 100644 > > index c62f9ecc6e..0000000000 > > --- > > > a/Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/Tempor > ary > > BuildWorkaround.dsc > > +++ /dev/null > > @@ -1,76 +0,0 @@ > > -## @file > > > > -# Build description file for a temporary build workaround. > > > > -# > > > > -# The feature enable PCD for advanced features must be referenced in > > an INF > > > > -# to be referenced in DSC/FDF files. This DSC only exists in the > > build to > > > > -# allow the PCDs to be referenced. This workaround does not affect > > the final > > > > -# flash image or boot in any way. > > > > -# > > > > -# The request to update BaseTools to allow a PCD to be referenced in > > DSC/FDF > > > > -# files without requiring the PCD to be referenced in an INF file is > > tracked > > > > -# here: https://bugzilla.tianocore.org/show_bug.cgi?id=2270 > > > > -# > > > > -# When the BaseTools update is complete, this file can entirely be > > removed > > > > -# from this package. > > > > -# > > > > -# Copyright (c) 2019 - 2020, Intel Corporation. All rights > > reserved.<BR> > > > > -# > > > > -# SPDX-License-Identifier: BSD-2-Clause-Patent > > > > -# > > > > -## > > > > - > > > > -# > > > > -# BEGIN:Temporary Build Workaround (resolution: > > https://bugzilla.tianocore.org/show_bug.cgi?id=2270) > > > > -# > > > > - > > > > -# THIS FILE IS TEMPORARY. PLEASE TRY TO LOOK PAST THE "HACKS" > ASSOCIATED WITH IT. > > > > -# > > > > -# With the BaseTools change requested, the changes needed to move to > the end state are simply: > > > > -# 1. Remove the !include for this file in AdvancedFeatures.dsc > > > > -# 2. Remove this directory > > > > - > > > > -!if $(PLATFORM_NAME) != AdvancedFeaturePkg > > > > -# > > > > -# AdvancedFeaturePkg initializes all FeaturePCDs to TRUE so they can > conveniently be built in one package. > > > > -# Board packages will normally only enable (and therefore reference) > > a small subset of advanced features > > > > -# relative to the board. If an INF does not reference a package DEC > > file (which will be the case if the > > > > -# feature is not enabled) then the DSC must set ("define") the PCD > > for the conditional statements based > > > > -# on the PCD to work. > > > > -# > > > > -# AdvancedFeaturePkg has no problem as it naturally has a need to set al > PCDs to TRUE for build. > > > > -# The section below sets all PCDs to FALSE in the DSC file so if the > > feature is not enabled by a board, > > > > -# the build will still be successful. > > > > -# > > > > -[PcdsFeatureFlag] > > > > - gAcpiDebugFeaturePkgTokenSpaceGuid.PcdAcpiDebugFeatureEnable > |FALSE > > > > - gIpmiFeaturePkgTokenSpaceGuid.PcdIpmiFeatureEnable > |FALSE > > > > - gNetworkFeaturePkgTokenSpaceGuid.PcdNetworkFeatureEnable > |FALSE > > > > - gS3FeaturePkgTokenSpaceGuid.PcdS3FeatureEnable > > |FALSE > > > > - gSmbiosFeaturePkgTokenSpaceGuid.PcdSmbiosFeatureEnable > |FALSE > > > > - gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugFeatureEnable > |FALSE > > > > - > gUserAuthFeaturePkgTokenSpaceGuid.PcdUserAuthenticationFeatureEnable > |FALSE > > > > - gLogoFeaturePkgTokenSpaceGuid.PcdLogoFeatureEnable > |FALSE > > > > - gLogoFeaturePkgTokenSpaceGuid.PcdJpgEnable > > |FALSE > > > > -!endif > > > > - > > > > -# > > > > -# The LibraryClasses required to build TemporaryBuildWorkaround.inf > > > > -# (mostly libraries requiring other libraries) > > > > -# > > > > -[LibraryClasses] > > > > - BaseLib|MdePkg/Library/BaseLib/BaseLib.inf > > > > - > > > BaseMemoryLib|MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRe > pStr.i > > nf > > > > - DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf > > > > - PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf > > > > - PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf > > > > - PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf > > > > - > > PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibId > > t/PeiServicesTablePointerLibIdt.inf > > > > - > > > > -# > > > > -# The driver that references all feature PCDs to satsify current > > build limitations > > > > -# > > > > -[Components] > > > > - > > > AdvancedFeaturePkg/TemporaryBuildWorkaround/TemporaryBuildWorkaro > und.i > > nf > > > > -# > > > > -# END:Temporary Build Workaround (resolution: > > https://bugzilla.tianocore.org/show_bug.cgi?id=2270) > > > > -# > > > > diff --git > > > a/Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/Tempor > ary > > BuildWorkaround.inf > > > b/Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/Tempor > ary > > BuildWorkaround.inf > > deleted file mode 100644 > > index 00818fbe0a..0000000000 > > --- > > > a/Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/Tempor > ary > > BuildWorkaround.inf > > +++ /dev/null > > @@ -1,60 +0,0 @@ > > -### @file > > > > -# Component information file for a temporary build workaround. > > > > -# > > > > -# The feature enable PCD for this package must be referenced in an > > INF to be > > > > -# referenced in DSC/FDF files. This driver is only included in the > > build to > > > > -# allow the PCD to be referenced. This driver is not included in the > > flash > > > > -# image and does not affect the boot in any way. > > > > -# > > > > -# The request to update BaseTools to allow a PCD to be referenced in > > DSC/FDF > > > > -# files without requiring the PCD to be referenced in an INF file is > > tracked > > > > -# here: https://bugzilla.tianocore.org/show_bug.cgi?id=2270 > > > > -# > > > > -# When the BaseTools update is complete, this file can entirely be > > removed > > > > -# from this package. > > > > -# > > > > -# Copyright (c) 2019 - 2020, Intel Corporation. All rights > > reserved.<BR> > > > > -# > > > > -# SPDX-License-Identifier: BSD-2-Clause-Patent > > > > -# > > > > -### > > > > - > > > > -[Defines] > > > > - INF_VERSION = 0x00010017 > > > > - BASE_NAME = TemporaryBuildWorkaround > > > > - FILE_GUID = 8846A81E-F552-4917-81F5-80B62E4EFBAC > > > > - VERSION_STRING = 1.0 > > > > - MODULE_TYPE = PEIM > > > > - ENTRY_POINT = TemporaryBuildWorkaroundEntry > > > > - > > > > -[LibraryClasses] > > > > - BaseLib > > > > - PeimEntryPoint > > > > - > > > > -[Packages] > > > > - MdePkg/MdePkg.dec > > > > - Debugging/AcpiDebugFeaturePkg/AcpiDebugFeaturePkg.dec > > > > - Debugging/Usb3DebugFeaturePkg/Usb3DebugFeaturePkg.dec > > > > - Network/NetworkFeaturePkg/NetworkFeaturePkg.dec > > > > - OutOfBandManagement/IpmiFeaturePkg/IpmiFeaturePkg.dec > > > > - PowerManagement/S3FeaturePkg/S3FeaturePkg.dec > > > > - SystemInformation/SmbiosFeaturePkg/SmbiosFeaturePkg.dec > > > > - UserInterface/UserAuthFeaturePkg/UserAuthFeaturePkg.dec > > > > - UserInterface/LogoFeaturePkg/LogoFeaturePkg.dec > > > > - > > > > -[FeaturePcd] > > > > - gAcpiDebugFeaturePkgTokenSpaceGuid.PcdAcpiDebugFeatureEnable > > > > - gIpmiFeaturePkgTokenSpaceGuid.PcdIpmiFeatureEnable > > > > - gNetworkFeaturePkgTokenSpaceGuid.PcdNetworkFeatureEnable > > > > - gS3FeaturePkgTokenSpaceGuid.PcdS3FeatureEnable > > > > - gSmbiosFeaturePkgTokenSpaceGuid.PcdSmbiosFeatureEnable > > > > - gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugFeatureEnable > > > > - > > > gUserAuthFeaturePkgTokenSpaceGuid.PcdUserAuthenticationFeatureEnable > > > > - gLogoFeaturePkgTokenSpaceGuid.PcdLogoFeatureEnable > > > > - gLogoFeaturePkgTokenSpaceGuid.PcdJpgEnable > > > > - > > > > -[Sources] > > > > - TemporaryBuildWorkaround.c > > > > - > > > > -[Depex] > > > > - TRUE > > > > -- > > 2.24.0.windows.2 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#58010): https://edk2.groups.io/g/devel/message/58010 Mute This Topic: https://groups.io/mt/73214615/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-