Hi Leif It is good to see such configuration. Here is some of my thought:
1) We have similar idea. But there is one key difference is that we do not use MACRO, but use PCD to control feature selection. For example, we defined gPlatformModuleTokenSpaceGuid.PcdUefiSecureBootEnable|FALSE|BOOLEAN|0xF00000A4 gPlatformModuleTokenSpaceGuid.PcdTpm2Enable |FALSE|BOOLEAN|0xF00000A5 gPlatformModuleTokenSpaceGuid.PcdPerformanceEnable |FALSE|BOOLEAN|0xF00000A6 in https://github.com/tianocore/edk2-platforms/blob/devel-MinPlatform/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dec And they are used in https://github.com/tianocore/edk2-platforms/blob/devel-MinPlatform/Platform/Intel/MinPlatformPkg/Include/Fdf/CoreDxeInclude.fdf I suggest we consider using PCD for configuration. 2) I do not suggest we use configuration for library, if this library only has one instance. For example: + BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf + IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf If no module need this library, this library will be ignored directly. We can always leave BaseCryptLib there. No impact. 3) For below NULL library, we need put configuration around the NULL library instance, instead of the module. As such we may add more NULL instance, such as DxeTpm2MeasureBootLib. +!if $(CONFIG_SECURE_BOOT_ENABLE) == TRUE + MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf { + <LibraryClasses> + NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.inf + } To MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf { <LibraryClasses> !if gSecurityTokenSpaceGuid.PcdUefiSecureBootEnable == TRUE NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.inf !endif !if gSecurityTokenSpaceGuid.PcdTpm2Enable == TRUE NULL|SecurityPkg/Library/DxeTpm2MeasureBootLib/DxeTpm2MeasureBootLib.inf !endif } Thank you Yao Jiewen > -----Original Message----- > From: edk2-devel [mailto:[email protected]] On Behalf Of Leif > Lindholm > Sent: Thursday, September 21, 2017 1:28 AM > To: [email protected] > Cc: Kinney, Michael D <[email protected]>; Justen, Jordan L > <[email protected]>; Laszlo Ersek <[email protected]>; Andrew Fish > <[email protected]>; Ard Biesheuvel <[email protected]> > Subject: [edk2] [RFC 0/6] Create central repository for boilerplate > configuration > > An awful lot of platform configuration is just repeated verbatim for > every platform. This is my first stab at eliminating some of this > redundancy. > > I have additional bits as work in progress, but before I sink too much > time into it, I would like to try to gather feedback on this approach > (all the way down to directory structure). > > This first round deals with basic network support and Secure Boot > requirements. > > Leif Lindholm (6): > ConfigPkg: add new package for holding common config fragments > ArmVirtPkg: use ConfigPkg for common network items > OvmfPkg: use ConfigPkg for common network items > ConfigPkg: add common Security settings > ArmVirtPkg: use ConfigPkg for common security items > OvmfPkg: use ConfigPkg for common security items > > ArmVirtPkg/ArmVirt.dsc.inc | 25 ++-------- > ArmVirtPkg/ArmVirtQemu.dsc | 46 +++--------------- > ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc | 24 ++-------- > ArmVirtPkg/ArmVirtQemuKernel.dsc | 46 +++--------------- > ConfigPkg/Network/Network.dsc.inc | 92 > ++++++++++++++++++++++++++++++++++++ > ConfigPkg/Network/Network.fdf.inc | 47 ++++++++++++++++++ > ConfigPkg/Security/Security.dsc.inc | 67 ++++++++++++++++++++++++++ > ConfigPkg/Security/Security.fdf.inc | 17 +++++++ > OvmfPkg/OvmfPkgIa32.dsc | 92 > ++++-------------------------------- > OvmfPkg/OvmfPkgIa32.fdf | 37 +-------------- > OvmfPkg/OvmfPkgIa32X64.dsc | 90 ++++------------------------------- > OvmfPkg/OvmfPkgIa32X64.fdf | 37 +-------------- > OvmfPkg/OvmfPkgX64.dsc | 92 > ++++-------------------------------- > OvmfPkg/OvmfPkgX64.fdf | 37 +-------------- > 14 files changed, 276 insertions(+), 473 deletions(-) > create mode 100644 ConfigPkg/Network/Network.dsc.inc > create mode 100644 ConfigPkg/Network/Network.fdf.inc > create mode 100644 ConfigPkg/Security/Security.dsc.inc > create mode 100644 ConfigPkg/Security/Security.fdf.inc > > -- > 2.11.0 > > _______________________________________________ > edk2-devel mailing list > [email protected] > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

