public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency
@ 2022-01-20  1:13 Oram, Isaac W
  2022-01-20  1:13 ` [edk2-devel][edk2-platforms][PATCH V2 01/14] BeepDebugFeaturePkg: Use MinPlatformPkg build include files Oram, Isaac W
                   ` (14 more replies)
  0 siblings, 15 replies; 17+ messages in thread
From: Oram, Isaac W @ 2022-01-20  1:13 UTC (permalink / raw)
  To: devel
  Cc: Sai Chaganty, Liming Gao, Eric Dong, Ming Tan, Nate DeSimone,
	Chasel Chiu, Dandan Bi, Miki Shindo, Mohamed Abbas,
	Manickavasakam Karpagavinayagam

This series addresses inconsistencies in feature implementation and use. Some inconsistencies are just
conventions of the feature design/template/convention.  Some are inconsistency with feature design intent
that negatively affect the usability of the features and the amount of work required from board porting
engineers.

V2:
  19/27: Fixed typo in library class name, Usb3DebugPortParamLibo to Usb3DebugPortParamLib.
  01/27: Merged 02 into 01 so as to not introduce relative paths in the first place.
  Note approved commits 3, 4, 5, 6, 7, 8, 15, 20, 21, 22, 24, and 25 were pushed.

V1:

Some features were missing feature enable flags.
Some features had non-functional standalone builds.
Many features were implemented to include common core build content in their feature include files.
Updated some of the Readme content.
Added AdvancedFeaturePkg.fdf to build all feature content to support verifying no build time issues between features.
Removed duplicate and unused content from build files.
Modified the TemplateFeaturePkg to use the common MinPlatform include content.

Removed all instances where features were relative to Features/Intel and made them relative to the package roots.
This does mean PACKAGES_PATH may need to be extended for all the feature domains.  Debugging, PowerManagement, etc.
However, it should enable packaging tools to function properly as the relative paths violate spec.

Use of the common MinPlatformPkg build includes does increase the build time for each individual feature in standalone
build modes. It does not negatively impact board or AdvancedFeaturePkg builds as the common content is only built
once. Part of MinPlatform arch intent is to reduce cognitive complexity, so the simpler build is more valuable than
fast build time.

Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Ming Tan <ming.tan@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Chasel Chiu <chasel.chiu@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Miki Shindo <miki.shindo@intel.com>
Cc: Mohamed Abbas <mohamed.abbas@intel.com>
Cc: Manickavasakam Karpagavinayagam <manickavasakamk@ami.com>

Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>


Isaac Oram (14):
  BeepDebugFeaturePkg: Use MinPlatformPkg build include files
  SmbiosFeaturePkg: Use MinPlatformPkg build include files
  UserAuthFeaturePkg: Fix all relative package paths
  UserAuthFeaturePkg: Use MinPlatformPkg build include files
  VirtualKeyboardFeaturePkg: Fix all relative package paths
  VirtualKeyboardFeaturePkg: Use MinPlatformPkg build include files
  VirtualKeyboardFeaturePkg: Add feature enable PCD
  LogoFeaturePkg: Use MinPlatformPkg build include files
  PostCodeDebugFeaturePkg: Complete as an advanced feature
  AcpiDebugFeaturePkg: Use MinPlatformPkg build include files
  Usb3DebugFeaturePkg: Align with feature design guidelines
  AdvancedFeaturePkg: Add missing features
  AdvancedFeaturePkg/Build: Add FDF to create FV for all features
  WhitleyOpenBoardPkg/Build: Enable Features/Intel features

 Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc                                                                  |  67 +++++-
 Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.fdf                                                                  |  49 +++++
 Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeatures.dsc                                                            |  36 ++-
 Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc                                                         |  64 +++++-
 Features/Intel/AdvancedFeaturePkg/Include/PostMemory.fdf                                                                  |  36 ++-
 Features/Intel/AdvancedFeaturePkg/Include/PreMemory.fdf                                                                   |  36 ++-
 Features/Intel/Debugging/AcpiDebugFeaturePkg/AcpiDebugFeaturePkg.dsc                                                      |  21 ++
 Features/Intel/Debugging/AcpiDebugFeaturePkg/Include/AcpiDebugFeature.dsc                                                 |  70 ------
 Features/Intel/Debugging/AcpiDebugFeaturePkg/Include/PostMemory.fdf                                                       |   4 +-
 Features/Intel/Debugging/BeepDebugFeaturePkg/BeepDebugFeaturePkg.dec                                                      |   7 +-
 Features/Intel/Debugging/BeepDebugFeaturePkg/BeepDebugFeaturePkg.dsc                                                      |  28 +++
 Features/Intel/Debugging/BeepDebugFeaturePkg/Include/BeepDebugFeature.dsc                                                 | 222 ++++++-------------
 Features/Intel/Debugging/BeepDebugFeaturePkg/Include/Library/BeepLib.h                                                    |   6 +-
 Features/Intel/Debugging/BeepDebugFeaturePkg/Include/PostMemory.fdf                                                       |  14 ++
 Features/Intel/Debugging/BeepDebugFeaturePkg/Include/PreMemory.fdf                                                        |  13 ++
 Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/PeiBeepStatusCodeHandlerLib.inf             |   5 +-
 Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/RuntimeDxeBeepStatusCodeHandlerLib.inf      |   3 -
 Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/SmmBeepStatusCodeHandlerLib.inf             |   3 -
 Features/Intel/Debugging/BeepDebugFeaturePkg/Readme.md                                                                    |  91 +++++---
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PostCodeDebugFeature.dsc                                         | 231 +++++---------------
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PostMemory.fdf                                                   |  14 ++
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PreMemory.fdf                                                    |  13 ++
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Library/PostCodeStatusCodeHandlerLib/PeiPostCodeStatusCodeHandlerLib.inf |   2 +-
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/PostCodeDebugFeaturePkg.dec                                              |  11 +
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/PostCodeDebugFeaturePkg.dsc                                              |  30 +++
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Readme.md                                                                |  31 ++-
 Features/Intel/Debugging/Usb3DebugFeaturePkg/Include/Usb3DebugFeature.dsc                                                 | 131 ++---------
 Features/Intel/Debugging/Usb3DebugFeaturePkg/Readme.md                                                                    |  50 +++--
 Features/Intel/Debugging/Usb3DebugFeaturePkg/Usb3DebugFeaturePkg.dec                                                      |  14 +-
 Features/Intel/Debugging/Usb3DebugFeaturePkg/Usb3DebugFeaturePkg.dsc                                                      |  18 ++
 Features/Intel/Readme.md                                                                                                  |  49 +++--
 Features/Intel/SystemInformation/SmbiosFeaturePkg/Include/PostMemory.fdf                                                  |   2 +-
 Features/Intel/SystemInformation/SmbiosFeaturePkg/Include/SmbiosFeature.dsc                                               |  52 -----
 Features/Intel/SystemInformation/SmbiosFeaturePkg/SmbiosFeaturePkg.dsc                                                    |  18 ++
 Features/Intel/UserInterface/LogoFeaturePkg/Include/LogoFeature.dsc                                                       |  69 +-----
 Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dec                                                            |   2 -
 Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dsc                                                            |  38 +++-
 Features/Intel/UserInterface/UserAuthFeaturePkg/Include/PostMemory.fdf                                                    |   6 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/Include/UserAuthFeature.dsc                                               |  92 +-------
 Features/Intel/UserInterface/UserAuthFeaturePkg/Library/PlatformPasswordLibNull/PlatformPasswordLibNull.inf               |   2 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/Library/UserPasswordLib/UserPasswordLib.inf                               |   2 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/Library/UserPasswordUiLib/UserPasswordUiLib.inf                           |   2 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthFeaturePkg.dsc                                                    |  18 ++
 Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthentication2Dxe.inf                       |   2 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationDxe.inf                        |   2 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationSmm.inf                        |   2 +-
 Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/PostMemory.fdf                                             |   2 +-
 Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/VirtualKeyboardFeature.dsc                                 |  64 +-----
 Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/VirtualKeyboardFeaturePkg.dec                                      |   7 +-
 Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/VirtualKeyboardFeaturePkg.dsc                                      |  18 ++
 Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dsc                                                                        |  44 ++++
 Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.fdf                                                                        |   6 +-
 52 files changed, 886 insertions(+), 933 deletions(-)
 create mode 100644 Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.fdf
 create mode 100644 Features/Intel/Debugging/BeepDebugFeaturePkg/Include/PostMemory.fdf
 create mode 100644 Features/Intel/Debugging/BeepDebugFeaturePkg/Include/PreMemory.fdf
 create mode 100644 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PostMemory.fdf
 create mode 100644 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PreMemory.fdf

--
2.27.0.windows.1

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [edk2-devel][edk2-platforms][PATCH V2 01/14] BeepDebugFeaturePkg: Use MinPlatformPkg build include files
  2022-01-20  1:13 [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency Oram, Isaac W
@ 2022-01-20  1:13 ` Oram, Isaac W
  2022-01-20  1:13 ` [edk2-devel][edk2-platforms][PATCH V2 02/14] SmbiosFeaturePkg: " Oram, Isaac W
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Oram, Isaac W @ 2022-01-20  1:13 UTC (permalink / raw)
  To: devel; +Cc: Sai Chaganty, Liming Gao, Eric Dong, Ming Tan

The BeepDebugFeaturePkg was malformed and did not build anything
and thus wasn't testable in standalone build.

Added gBeepDebugFeaturePkgTokenSpaceGuid.PcdBeepDebugFeatureEnable
to properly control the advanced feature inclusion.

Use the standard MinPlatform includes for core libraries. This
increases the build time, but reduces complexity when integrating
into a board build. Board build optimization is more valuable than
standalone build optimization.

Enable standalone build to test the library build and the component
builds using edk2 StatusCodeHandler drivers.

Add unique file names for the StatusCodeHandler components to avoid
collisions with any existing board handlers when incorporated in board
DSC and FDF files.

Add PreMemory.fdf and PostMemory.fdf content for including in board FDF
or AdvancedFeaturePkg in the future.

Removed unused sections in DSC and FDF to reduce file clutter.

Removed stale file header content from prior proprietary licensing.

Moved feature customization and common include into the package DSC
file to reduce board complexity when BeepDebugFeature.dsc is included.

Removed the FixedAtBuild build control for beep feature as it would be
redundant with the FeatureFlag control of the whole feature. Build
control is via PcdBeepDebugFeatureEnable and dynamic control is via
PcdStatusCodeUseBeep.

Improved Readme content, format, and coding style use.

Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Ming Tan <ming.tan@intel.com>

Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
---
 Features/Intel/Debugging/BeepDebugFeaturePkg/BeepDebugFeaturePkg.dec                                                 |   7 +-
 Features/Intel/Debugging/BeepDebugFeaturePkg/BeepDebugFeaturePkg.dsc                                                 |  28 +++
 Features/Intel/Debugging/BeepDebugFeaturePkg/Include/BeepDebugFeature.dsc                                            | 222 ++++++--------------
 Features/Intel/Debugging/BeepDebugFeaturePkg/Include/Library/BeepLib.h                                               |   6 +-
 Features/Intel/Debugging/BeepDebugFeaturePkg/Include/PostMemory.fdf                                                  |  14 ++
 Features/Intel/Debugging/BeepDebugFeaturePkg/Include/PreMemory.fdf                                                   |  13 ++
 Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/PeiBeepStatusCodeHandlerLib.inf        |   5 +-
 Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/RuntimeDxeBeepStatusCodeHandlerLib.inf |   3 -
 Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/SmmBeepStatusCodeHandlerLib.inf        |   3 -
 Features/Intel/Debugging/BeepDebugFeaturePkg/Readme.md                                                               |  91 +++++---
 10 files changed, 186 insertions(+), 206 deletions(-)

diff --git a/Features/Intel/Debugging/BeepDebugFeaturePkg/BeepDebugFeaturePkg.dec b/Features/Intel/Debugging/BeepDebugFeaturePkg/BeepDebugFeaturePkg.dec
index 4f4b36b091..d90611da51 100644
--- a/Features/Intel/Debugging/BeepDebugFeaturePkg/BeepDebugFeaturePkg.dec
+++ b/Features/Intel/Debugging/BeepDebugFeaturePkg/BeepDebugFeaturePkg.dec
@@ -31,6 +31,9 @@
 [Guids]
   gBeepDebugFeaturePkgTokenSpaceGuid  =  {0x54f56fb5, 0xea0e, 0x4518, {0xa0, 0x3e, 0x1b, 0xeb, 0x56, 0x94, 0xd2, 0x16}}
 
-[PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]
+[PcdsFeatureFlag]
+  gBeepDebugFeaturePkgTokenSpaceGuid.PcdBeepDebugFeatureEnable|FALSE|BOOLEAN|0x00000000
+
+[PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]
   # Beep is a legacy feature, disabled it by default
-  gBeepDebugFeaturePkgTokenSpaceGuid.PcdStatusCodeUseBeep|FALSE|BOOLEAN|0x00000001
+  gBeepDebugFeaturePkgTokenSpaceGuid.PcdStatusCodeUseBeep|TRUE|BOOLEAN|0x00000001
diff --git a/Features/Intel/Debugging/BeepDebugFeaturePkg/BeepDebugFeaturePkg.dsc b/Features/Intel/Debugging/BeepDebugFeaturePkg/BeepDebugFeaturePkg.dsc
index 47254f9974..56cad020bf 100644
--- a/Features/Intel/Debugging/BeepDebugFeaturePkg/BeepDebugFeaturePkg.dsc
+++ b/Features/Intel/Debugging/BeepDebugFeaturePkg/BeepDebugFeaturePkg.dsc
@@ -24,6 +24,34 @@
   PEI_ARCH                       = IA32
   DXE_ARCH                       = X64
 
+[Packages]
+  MinPlatformPkg/MinPlatformPkg.dec
+  BeepDebugFeaturePkg/BeepDebugFeaturePkg.dec
+
+[PcdsFeatureFlag]
+  #
+  # PCD needed for MinPlatform build includes
+  #
+  gMinPlatformPkgTokenSpaceGuid.PcdSmiHandlerProfileEnable                |FALSE
+  gMinPlatformPkgTokenSpaceGuid.PcdUefiSecureBootEnable                   |FALSE
+  gMinPlatformPkgTokenSpaceGuid.PcdPerformanceEnable                      |FALSE
+
+[PcdsDynamicExDefault]
+  gBeepDebugFeaturePkgTokenSpaceGuid.PcdStatusCodeUseBeep|TRUE
+
+#
+# Include common libraries
+#
+!include MinPlatformPkg/Include/Dsc/CoreCommonLib.dsc
+!include MinPlatformPkg/Include/Dsc/CorePeiLib.dsc
+!include MinPlatformPkg/Include/Dsc/CoreDxeLib.dsc
+
+[LibraryClasses.Common]
+  #
+  # Required by common status code handler infrastructure
+  #
+  PlatformHookLib|MdeModulePkg/Library/BasePlatformHookLibNull/BasePlatformHookLibNull.inf
+
 #
 # This package always builds the feature.
 #
diff --git a/Features/Intel/Debugging/BeepDebugFeaturePkg/Include/BeepDebugFeature.dsc b/Features/Intel/Debugging/BeepDebugFeaturePkg/Include/BeepDebugFeature.dsc
index b24b3e458f..00ef022657 100644
--- a/Features/Intel/Debugging/BeepDebugFeaturePkg/Include/BeepDebugFeature.dsc
+++ b/Features/Intel/Debugging/BeepDebugFeaturePkg/Include/BeepDebugFeature.dsc
@@ -18,97 +18,16 @@
 #
 ################################################################################
 [Defines]
-!ifndef $(PEI_ARCH)
-  !error "PEI_ARCH must be specified to build this feature!"
-!endif
-!ifndef $(DXE_ARCH)
-  !error "DXE_ARCH must be specified to build this feature!"
-!endif
-
-################################################################################
-#
-# PCD Section - list of PCD Entries modified by the feature.
-#
-################################################################################
-
-# Unmark the following and StatusCodeHandler.efi to build the .dsc file directly
-#[PcdsDynamicDefault]
-#  gBeepDebugFeaturePkgTokenSpaceGuid.PcdStatusCodeUseBeep|TRUE
-
-################################################################################
-#
-# Library Class section - list of all Library Classes needed by this feature.
-#
-################################################################################
-
-!include MdePkg/MdeLibs.dsc.inc
-
-[LibraryClasses]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
-  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
-  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
-  DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
-  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
-  IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
-  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
-  PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
-  PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
-  TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
-  UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
-  UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
-  UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
-  UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
-  PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf
-
-[LibraryClasses.common.PEIM]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
-  MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
-  PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf
-
-[LibraryClasses.IA32.PEIM,LibraryClasses.IA32.PEI_CORE,LibraryClasses.IA32.SEC]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
-
-[LibraryClasses.common.DXE_DRIVER]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
-  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
-
-[LibraryClasses.common.DXE_RUNTIME_DRIVER]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
-  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
-  UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
-  ReportStatusCodeLib|MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeReportStatusCodeLib.inf
-
-[LibraryClasses.common.UEFI_DRIVER]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
-  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
-
-[LibraryClasses.X64.DXE_SMM_DRIVER]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  SmmServicesTableLib|MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.inf
-  MemoryAllocationLib|MdePkg/Library/SmmMemoryAllocationLib/SmmMemoryAllocationLib.inf
-  SmmIoLib|MdePkg/Library/SmmIoLib/SmmIoLib.inf
-  SmmMemLib|MdePkg/Library/SmmMemLib/SmmMemLib.inf
-  ReportStatusCodeLib|MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCodeLib.inf
+  !ifndef $(PEI_ARCH)
+    !error "PEI_ARCH must be specified to build this feature!"
+  !endif
+  !ifndef $(DXE_ARCH)
+    !error "DXE_ARCH must be specified to build this feature!"
+  !endif
+
+  DEFINE BEEP_PEIM_FILENAME  = b2356504-8ea3-42bd-912a-4b331990644a
+  DEFINE BEEP_DXE_FILENAME   = f1211fa9-d83d-4c79-8726-3afaebba1070
+  DEFINE BEEP_SMM_FILENAME   = a82cd452-0f17-4417-b8be-bb8cfdf9fa26
 
 ################################################################################
 #
@@ -128,77 +47,60 @@
 # Feature PEI Components
 #
 
-# @todo: Change below line to [Components.$(PEI_ARCH)] after https://bugzilla.tianocore.org/show_bug.cgi?id=2308
-#        is completed.
+#
+# By default, make the functional control a patcheable in module PCD
+#
+[PcdsPatchableInModule]
+  gBeepDebugFeaturePkgTokenSpaceGuid.PcdStatusCodeUseBeep
+
+[LibraryClasses.Common]
+  BeepLib|BeepDebugFeaturePkg/Library/BeepLib/BeepLibNull.inf
+  BeepMapLib|BeepDebugFeaturePkg/Library/BeepMapLib/BeepMapLib.inf
+
+[LibraryClasses.PEIM, LibraryClasses.PEI_CORE]
+  StatusCodeHandlerLib|BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/PeiBeepStatusCodeHandlerLib.inf
+
+[LibraryClasses.DXE_RUNTIME_DRIVER]
+  StatusCodeHandlerLib|BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/RuntimeDxeBeepStatusCodeHandlerLib.inf
+
+[LibraryClasses.DXE_SMM_DRIVER]
+  StatusCodeHandlerLib|BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/SmmBeepStatusCodeHandlerLib.inf
+
 [Components.IA32]
-  #####################################
-  # Beep Debug Feature Package
-  #####################################
 
-  # Add library instances here that are not included in package components and should be tested
-  # in the package build.
-  BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/PeiBeepStatusCodeHandlerLib.inf
+  MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf {
+    <Defines>
+      #
+      # Many boards already have StatusCodeHandler components built from the common core code
+      # Providing a unique name avoids collisions.  Both status code handler components will
+      # install their listeners with the status code routers.
+      #
+      FILE_GUID = $(BEEP_PEIM_FILENAME)
+    <LibraryClasses>
+      NULL|BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/PeiBeepStatusCodeHandlerLib.inf
+  }
 
-  # The following is an example for used with StatusCodeHandler:
-# MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf {
-#   <LibraryClasses>
-#     OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
-#     SerialPortLib|MdePkg/Library/BaseSerialPortLibNull/BaseSerialPortLibNull.inf
-#     BeepLib|BeepDebugFeaturePkg/Library/BeepLib/BeepLibNull.inf
-#     BeepMapLib|BeepDebugFeaturePkg/Library/BeepMapLib/BeepMapLib.inf
-#     NULL|BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/PeiBeepStatusCodeHandlerLib.inf
-# }
-
-  # Add components here that should be included in the package build.
-
-#
-# Feature DXE Components
-#
-
-# @todo: Change below line to [Components.$(DXE_ARCH)] after https://bugzilla.tianocore.org/show_bug.cgi?id=2308
-#        is completed.
 [Components.X64]
-  #####################################
-  # Beep Debug Feature Package
-  #####################################
+  MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf {
+    <Defines>
+      #
+      # Many boards already have StatusCodeHandler components built from the common core code
+      # Providing a unique name avoids collisions.  Both status code handler components will
+      # install their listeners with the status code routers.
+      #
+      FILE_GUID = $(BEEP_DXE_FILENAME)
+    <LibraryClasses>
+      NULL|BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/RuntimeDxeBeepStatusCodeHandlerLib.inf
+  }
 
-  # Add library instances here that are not included in package components and should be tested
-  # in the package build.
-  BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/RuntimeDxeBeepStatusCodeHandlerLib.inf
-  BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/SmmBeepStatusCodeHandlerLib.inf
-
-  # The following is an example for used with StatusCodeHandler:
-# MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf {
-#   <LibraryClasses>
-#     OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
-#     SerialPortLib|MdePkg/Library/BaseSerialPortLibNull/BaseSerialPortLibNull.inf
-#     BeepLib|BeepDebugFeaturePkg/Library/BeepLib/BeepLibNull.inf
-#     BeepMapLib|BeepDebugFeaturePkg/Library/BeepMapLib/BeepMapLib.inf
-#     NULL|BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/RuntimeDxeBeepStatusCodeHandlerLib.inf
-# }
-
-# MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.inf {
-#   <LibraryClasses>
-#     OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
-#     SerialPortLib|MdePkg/Library/BaseSerialPortLibNull/BaseSerialPortLibNull.inf
-#     BeepLib|BeepDebugFeaturePkg/Library/BeepLib/BeepLibNull.inf
-#     BeepMapLib|BeepDebugFeaturePkg/Library/BeepMapLib/BeepMapLib.inf
-#     NULL|BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/SmmBeepStatusCodeHandlerLib.inf
-# }
-
-  # Add components here that should be included in the package build.
-
-###################################################################################################
-#
-# BuildOptions Section - Define the module specific tool chain flags that should be used as
-#                        the default flags for a module. These flags are appended to any
-#                        standard flags that are defined by the build process. They can be
-#                        applied for any modules or only those modules with the specific
-#                        module style (EDK or EDKII) specified in [Components] section.
-#
-#                        For advanced features, it is recommended to enable [BuildOptions] in
-#                        the applicable INF file so it does not affect the whole board package
-#                        build when this DSC file is active.
-#
-###################################################################################################
-[BuildOptions]
+  MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.inf {
+    <Defines>
+      #
+      # Many boards already have StatusCodeHandler components built from the common core code
+      # Providing a unique name avoids collisions.  Both status code handler components will
+      # install their listeners with the status code routers.
+      #
+      FILE_GUID = $(BEEP_SMM_FILENAME)
+    <LibraryClasses>
+      NULL|BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/SmmBeepStatusCodeHandlerLib.inf
+  }
diff --git a/Features/Intel/Debugging/BeepDebugFeaturePkg/Include/Library/BeepLib.h b/Features/Intel/Debugging/BeepDebugFeaturePkg/Include/Library/BeepLib.h
index f768acc557..0b8f71b097 100644
--- a/Features/Intel/Debugging/BeepDebugFeaturePkg/Include/Library/BeepLib.h
+++ b/Features/Intel/Debugging/BeepDebugFeaturePkg/Include/Library/BeepLib.h
@@ -15,12 +15,12 @@
   Sends the 32-bit value specified by Value to Beep device, and returns Value.
   Some implementations of this library function may perform I/O operations
   directly to Beep device.  Other implementations may send Value to
-  ReportStatusCode(), and the status code reporting mechanism will eventually
+  ReportStatusCode (), and the status code reporting mechanism will eventually
   display the 32-bit value on the status reporting device.
 
-  Beep() must actively prevent recursion.  If Beep() is called while
+  Beep () must actively prevent recursion.  If Beep () is called while
   processing another Post Code Library function, then
-  Beep() must return Value immediately.
+  Beep () must return Value immediately.
 
   @param  Value  Beep count.
 **/
diff --git a/Features/Intel/Debugging/BeepDebugFeaturePkg/Include/PostMemory.fdf b/Features/Intel/Debugging/BeepDebugFeaturePkg/Include/PostMemory.fdf
new file mode 100644
index 0000000000..447fb88235
--- /dev/null
+++ b/Features/Intel/Debugging/BeepDebugFeaturePkg/Include/PostMemory.fdf
@@ -0,0 +1,14 @@
+## @file
+#  FDF file for post-memory BeepDebugFeature advanced feature.
+#
+#  This file is intended to be included into another package so advanced features
+#  can be conditionally included in the flash image by enabling the respective
+#  feature via its FeaturePCD.
+#
+# Copyright (C) 2022 Intel Corporation.
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+##
+
+INF FILE_GUID = $(BEEP_DXE_FILENAME) MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf
+INF FILE_GUID = $(BEEP_SMM_FILENAME) MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.inf
diff --git a/Features/Intel/Debugging/BeepDebugFeaturePkg/Include/PreMemory.fdf b/Features/Intel/Debugging/BeepDebugFeaturePkg/Include/PreMemory.fdf
new file mode 100644
index 0000000000..160f5e3ffd
--- /dev/null
+++ b/Features/Intel/Debugging/BeepDebugFeaturePkg/Include/PreMemory.fdf
@@ -0,0 +1,13 @@
+## @file
+#  FDF file for pre-memory BeepDebugFeature advanced feature.
+#
+#  This file is intended to be included into another package so advanced features
+#  can be conditionally included in the flash image by enabling the respective
+#  feature via its FeaturePCD.
+#
+# Copyright (C) 2022 Intel Corporation.
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+##
+
+INF FILE_GUID = $(BEEP_PEIM_FILENAME) MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf
diff --git a/Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/PeiBeepStatusCodeHandlerLib.inf b/Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/PeiBeepStatusCodeHandlerLib.inf
index 421b246663..5be78a72e8 100644
--- a/Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/PeiBeepStatusCodeHandlerLib.inf
+++ b/Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/PeiBeepStatusCodeHandlerLib.inf
@@ -4,9 +4,6 @@
 # Copyright (c) 2010 - 2020, Intel Corporation. All rights reserved.<BR>
 # SPDX-License-Identifier: BSD-2-Clause-Patent
 #
-# vendor.  This file may not be modified, except as allowed by
-# additional terms of your license agreement.
-#
 ##
 
 [Defines]
@@ -15,7 +12,7 @@
   FILE_GUID                      = C4210E71-0A38-4728-8D25-4876348AA380
   MODULE_TYPE                    = PEIM
   CONSTRUCTOR                    = PeiBeepStatusCodeHandlerLibConstructor
-  LIBRARY_CLASS                  = StatusCodeHandlerLib|SEC PEIM PEI_COR
+  LIBRARY_CLASS                  = StatusCodeHandlerLib|SEC PEIM PEI_CORE
 
 #
 # The following information is for reference only and not required by the build tools.
diff --git a/Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/RuntimeDxeBeepStatusCodeHandlerLib.inf b/Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/RuntimeDxeBeepStatusCodeHandlerLib.inf
index b9aae39128..2343e35a78 100644
--- a/Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/RuntimeDxeBeepStatusCodeHandlerLib.inf
+++ b/Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/RuntimeDxeBeepStatusCodeHandlerLib.inf
@@ -4,9 +4,6 @@
 # Copyright (c) 2010 - 2020, Intel Corporation. All rights reserved.<BR>
 # SPDX-License-Identifier: BSD-2-Clause-Patent
 #
-# vendor.  This file may not be modified, except as allowed by
-# additional terms of your license agreement.
-#
 ##
 
 [Defines]
diff --git a/Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/SmmBeepStatusCodeHandlerLib.inf b/Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/SmmBeepStatusCodeHandlerLib.inf
index caa82264ae..4db1748fe3 100644
--- a/Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/SmmBeepStatusCodeHandlerLib.inf
+++ b/Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/SmmBeepStatusCodeHandlerLib.inf
@@ -4,9 +4,6 @@
 # Copyright (c) 2010 - 2020, Intel Corporation. All rights reserved.<BR>
 # SPDX-License-Identifier: BSD-2-Clause-Patent
 #
-# vendor.  This file may not be modified, except as allowed by
-# additional terms of your license agreement.
-#
 ##
 
 [Defines]
diff --git a/Features/Intel/Debugging/BeepDebugFeaturePkg/Readme.md b/Features/Intel/Debugging/BeepDebugFeaturePkg/Readme.md
index ee254d0f99..6626c9b764 100644
--- a/Features/Intel/Debugging/BeepDebugFeaturePkg/Readme.md
+++ b/Features/Intel/Debugging/BeepDebugFeaturePkg/Readme.md
@@ -6,25 +6,29 @@
 More Information:
 
 ## Purpose
-The BeepDebugFeaturePkg include some useful beep debug libraries, such as get beep value from status code and beep.
-This is an important capability in firmware development to get and analyze the early error when there is not serial port.
+Very often it is necessary to debug very close to the reset vector or in production systems that lack serial ports, seven segment displays, or useful LED that are typically used to output useful debug messages.
 
+The BeepDebugFeaturePkg includes some useful beep focused debug libraries.
+
+This isn't intended for production use.
+
+There is not currently seamless integration into the SecCore component that handles the reset vector. In order to debug that early, it will be necessary to use the BeepLib directly in SEC code.
 
 # High-Level Theory of Operation
-It provide a library BeepStatusCodeHandlerLib used by edk2 StatusCodeHandler.efi, used to do beep if needed.
-It also provide a library of BeepMap lib, it map the status code to beep value.
+It provides a library, BeepStatusCodeHandlerLib, used by edk2 StatusCodeHandler.efi, used to do beep if needed.
+It also provide a library of BeepMap lib which maps the status code to a beep value.
 A library of Beep lib is needed by platform, and this pkg has a Null implementation.
 
-In the library contstructor function, BeepStatusCodeHandlerLib register the call back function for ReportStatusCode.
-When called, it call GetBeepFromStatusCode() in BeepMapLib to get beep value from status code, and call Beep() in BeepLib to beep.
+In the library contstructor function, BeepStatusCodeHandlerLib registers the call back function for ReportStatusCode. When called, it calls GetBeepFromStatusCode (); in BeepMapLib to get beep value from status code, and calls Beep () in BeepLib to beep a speaker.
 
-BeepStatusCodeHandlerLib include 3 libraries for PEI, RuntimeDxe, SMM:
+BeepStatusCodeHandlerLib includes three libraries for PEI, RuntimeDxe, and SMM:
 * PeiBeepStatusCodeHandlerLib
 * RuntimeDxeBeepStatusCodeHandlerLib
 * SmmBeepStatusCodeHandlerLib
 
 ## Firmware Volumes
-Linked with StatusCodeHandler.efi, and make sure put the StatusCodeHandler.efi after the ReportStatusCodeRouter.efi.
+These libraries need to be linked into StatusCodeHandler components.
+Make sure one puts the StatusCodeHandler.efi after the ReportStatusCodeRouter.efi.
 
 ## Modules
 * BeepStatusCodeHandlerLib
@@ -32,13 +36,17 @@ Linked with StatusCodeHandler.efi, and make sure put the StatusCodeHandler.efi a
 * BeepLibNull
 
 ## BeepStatusCodeHandlerLib
-This library register the call back function for ReportStatusCode, and get beep valude from status code, and do beep.
+This library registers the callback function for ReportStatusCode, gets beep value from status code, and does the beep.
 
 ## BeepMapLib
-This library provide a function to get beep value from status code.
+This library provides a function to get a beep value for a status code.
+
+## BeepLibNull
+This library provide a function to perform the beep.
 
 ## Key Functions
 * In PeiBeepStatusCodeHandlerLib:
+```
   EFI_STATUS
   EFIAPI
   BeepStatusCodeReportWorker (
@@ -49,8 +57,10 @@ This library provide a function to get beep value from status code.
     IN CONST EFI_GUID                 *CallerId,
     IN CONST EFI_STATUS_CODE_DATA     *Data OPTIONAL
   )
+```
 
 * In RuntimeDxeBeepStatusCodeHandlerLib:
+```
   EFI_STATUS
   EFIAPI
   BeepStatusCodeReportWorker (
@@ -60,8 +70,10 @@ This library provide a function to get beep value from status code.
     IN EFI_GUID                       *CallerId,
     IN EFI_STATUS_CODE_DATA           *Data OPTIONAL
   )
+```
 
 * In SmmBeepStatusCodeHandlerLib:
+```
   EFI_STATUS
   EFIAPI
   BeepStatusCodeReportWorker (
@@ -71,55 +83,72 @@ This library provide a function to get beep value from status code.
     IN EFI_GUID                       *CallerId,
     IN EFI_STATUS_CODE_DATA           *Data OPTIONAL
     )
+```
 
 * In BeepMapLib:
+```
   UINT32
   EFIAPI
   GetBeepValueFromStatusCode (
     IN EFI_STATUS_CODE_TYPE           CodeType,
     IN EFI_STATUS_CODE_VALUE          Value
-  )
+    )
+```
 
 * In BeepLib:
+```
   VOID
   EFIAPI
   Beep (
     IN UINT32  Value
-  )
+    )
+```
 
 ## Configuration
-* Link the library to StatusCodeHandler.efi.
-  Example:
-    MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf {
-    <LibraryClasses>
-      NULL|BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/RuntimeDxeBeepStatusCodeHandlerLib.inf
-    }
-  Refer to BeepDebugFeature.dsc for other example.
-* Config PCD gBeepDebugFeaturePkgTokenSpaceGuid.PcdStatusCodeUseBeep.
-  In platform .dsc file, need to config the type of gBeepDebugFeaturePkgTokenSpaceGuid.PcdStatusCodeUseBeep.
-  Use PcdsFixedAtBuild to save binary size, and use PcdsDynamic if want to enable/disable in runtime.
-* Implemented platform's special BeepMapLib if needed.
-* Provide the platform's special BeepLib.
-* Make sure put the StatusCodeHandler.efi after the ReportStatusCodeRouter.efi.
+* Configure PCD gBeepDebugFeaturePkgTokenSpaceGuid.PcdStatusCodeUseBeep.
+  In board DSC file, the board developer needs to configure the type of gBeepDebugFeaturePkgTokenSpaceGuid.PcdStatusCodeUseBeep control desired.
+  [PcdsFixedAtBuild] is the feature default value as this has lowest size.
+  [PcdsDynamicExDefault] is the most common configuration as it provides dynamic control during debugging.
+* Implemented board specific BeepMapLib if custom status code to beep code mapping as needed.
+* Provide the board specific BeepLib to perform beeps on the board specific hardware.
+```The default library does not cause any hardware to beep```
 
 ## Data Flows
 Status Code (ReportStatusCode) -> Beep Value (GetBeepValueFromStatusCode).
 
 ## Control Flows
-ReportStatusCode() -> BeepStatusCodeReportWorker() -> GetBeepValueFromStatusCode() -> Beep()
+ReportStatusCode () -> BeepStatusCodeReportWorker () -> GetBeepValueFromStatusCode () -> Beep ()
 
 ## Build Flows
-There is not special build flows.
+Standalone build
+* build -a IA32 -a X64 -p Debugging\BeepDebugFeaturePkg\BeepDebugFeaturePkg.dsc
 
+AdvanceFeaturePkg build
+* build -a IA32 -a X64 -p AdvancedFeaturePkg/AdvancedFeaturePkg.dsc
 ## Test Point Results
-Verify the post code shown is correct.
+None
 
 ## Functional Exit Criteria
 N/A
 
 ## Feature Enabling Checklist
-* Set the PCD gBeepDebugFeaturePkgTokenSpaceGuid.PcdStatusCodeUseBeep to TRUE.
-* Plug out all the memory, check can here the beep.
+* Verify in board DSC file that gBeepDebugFeaturePkgTokenSpaceGuid.PcdBeepDebugFeatureEnable set to TRUE
+* Verify board specific BeepLib implemented and included in board DSC file.
+* Verify that the board has a PlatformHookLib instance.  There is a null library implementation if needed
+```
+      PlatformHookLib|MdeModulePkg/Library/BasePlatformHookLibNull/BasePlatformHookLibNull.inf
+```
+* Verify that your board has the StatusCodeHandler components (PEIM or driver) desired.
+```
+  Example:
+    MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf {
+    <LibraryClasses>
+      NULL|BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/RuntimeDxeBeepStatusCodeHandlerLib.inf
+    }
+  There are default StatusCodeHandlers for PEI, RT, and SMM in BeepDebugFeaturePkg/Include in PreMemory.fdf and PostMemory.fdf for use.  But most boards will already have these components and you will just want to add the appropriate *StatusCodeHandlerLib.inf to each component.
+```
+* Build
+* Remove all the memory from the system and verify audible beep is heard when attempting to boot.
 
 ## Common Optimizations
-* Implemented platform's special BeepMapLib if needed.
+N/A
-- 
2.27.0.windows.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [edk2-devel][edk2-platforms][PATCH V2 02/14] SmbiosFeaturePkg: Use MinPlatformPkg build include files
  2022-01-20  1:13 [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency Oram, Isaac W
  2022-01-20  1:13 ` [edk2-devel][edk2-platforms][PATCH V2 01/14] BeepDebugFeaturePkg: Use MinPlatformPkg build include files Oram, Isaac W
@ 2022-01-20  1:13 ` Oram, Isaac W
  2022-01-20  1:13 ` [edk2-devel][edk2-platforms][PATCH V2 03/14] UserAuthFeaturePkg: Fix all relative package paths Oram, Isaac W
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Oram, Isaac W @ 2022-01-20  1:13 UTC (permalink / raw)
  To: devel; +Cc: Sai Chaganty, Liming Gao

Use the MinPlatformPkg common core build files to build libraries
needed by this feature.

Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>

Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
---
 Features/Intel/SystemInformation/SmbiosFeaturePkg/Include/PostMemory.fdf    |  2 +-
 Features/Intel/SystemInformation/SmbiosFeaturePkg/Include/SmbiosFeature.dsc | 52 --------------------
 Features/Intel/SystemInformation/SmbiosFeaturePkg/SmbiosFeaturePkg.dsc      | 18 +++++++
 3 files changed, 19 insertions(+), 53 deletions(-)

diff --git a/Features/Intel/SystemInformation/SmbiosFeaturePkg/Include/PostMemory.fdf b/Features/Intel/SystemInformation/SmbiosFeaturePkg/Include/PostMemory.fdf
index c3a3e81503..d46bacfbd2 100644
--- a/Features/Intel/SystemInformation/SmbiosFeaturePkg/Include/PostMemory.fdf
+++ b/Features/Intel/SystemInformation/SmbiosFeaturePkg/Include/PostMemory.fdf
@@ -7,4 +7,4 @@
 #
 ##
 
-  INF SmbiosFeaturePkg/SmbiosBasicDxe/SmbiosBasicDxe.inf
+INF SmbiosFeaturePkg/SmbiosBasicDxe/SmbiosBasicDxe.inf
diff --git a/Features/Intel/SystemInformation/SmbiosFeaturePkg/Include/SmbiosFeature.dsc b/Features/Intel/SystemInformation/SmbiosFeaturePkg/Include/SmbiosFeature.dsc
index 094dd957b8..7a165f39d7 100644
--- a/Features/Intel/SystemInformation/SmbiosFeaturePkg/Include/SmbiosFeature.dsc
+++ b/Features/Intel/SystemInformation/SmbiosFeaturePkg/Include/SmbiosFeature.dsc
@@ -33,28 +33,6 @@
 
 !include MdePkg/MdeLibs.dsc.inc
 
-[LibraryClasses]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
-  BaseMemoryLib|MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf
-  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
-  DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
-  PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
-  UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
-  UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
-  UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
-  UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
-
-[LibraryClasses.common.DXE_DRIVER]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
-  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
-  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
-
 ################################################################################
 #
 # Component section - list of all components that need built for this feature.
@@ -69,21 +47,6 @@
 #       generated for it, but the binary will not be put into any firmware volume.
 #
 ################################################################################
-#
-# Feature PEI Components
-#
-
-# @todo: Change below line to [Components.$(PEI_ARCH)] after https://bugzilla.tianocore.org/show_bug.cgi?id=2308
-#        is completed.
-[Components.IA32]
-  #####################################
-  # SMBIOS Feature Package
-  #####################################
-
-  # Add library instances here that are not included in package components and should be tested
-  # in the package build.
-
-  # Add components here that should be included in the package build.
 
 #
 # Feature DXE Components
@@ -101,18 +64,3 @@
 
   # Add components here that should be included in the package build.
   SmbiosFeaturePkg/SmbiosBasicDxe/SmbiosBasicDxe.inf
-
-###################################################################################################
-#
-# BuildOptions Section - Define the module specific tool chain flags that should be used as
-#                        the default flags for a module. These flags are appended to any
-#                        standard flags that are defined by the build process. They can be
-#                        applied for any modules or only those modules with the specific
-#                        module style (EDK or EDKII) specified in [Components] section.
-#
-#                        For advanced features, it is recommended to enable [BuildOptions] in
-#                        the applicable INF file so it does not affect the whole board package
-#                        build when this DSC file is active.
-#
-###################################################################################################
-[BuildOptions]
diff --git a/Features/Intel/SystemInformation/SmbiosFeaturePkg/SmbiosFeaturePkg.dsc b/Features/Intel/SystemInformation/SmbiosFeaturePkg/SmbiosFeaturePkg.dsc
index 31141c0725..e72b341154 100644
--- a/Features/Intel/SystemInformation/SmbiosFeaturePkg/SmbiosFeaturePkg.dsc
+++ b/Features/Intel/SystemInformation/SmbiosFeaturePkg/SmbiosFeaturePkg.dsc
@@ -24,6 +24,24 @@
   PEI_ARCH                       = IA32
   DXE_ARCH                       = X64
 
+[Packages]
+  MinPlatformPkg/MinPlatformPkg.dec
+
+[PcdsFeatureFlag]
+  #
+  # PCD needed for MinPlatform build includes
+  #
+  gMinPlatformPkgTokenSpaceGuid.PcdSmiHandlerProfileEnable                |FALSE
+  gMinPlatformPkgTokenSpaceGuid.PcdUefiSecureBootEnable                   |FALSE
+  gMinPlatformPkgTokenSpaceGuid.PcdPerformanceEnable                      |FALSE
+
+#
+# Include common libraries
+#
+!include MinPlatformPkg/Include/Dsc/CoreCommonLib.dsc
+!include MinPlatformPkg/Include/Dsc/CorePeiLib.dsc
+!include MinPlatformPkg/Include/Dsc/CoreDxeLib.dsc
+
 #
 # This package always builds the feature.
 #
-- 
2.27.0.windows.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [edk2-devel][edk2-platforms][PATCH V2 03/14] UserAuthFeaturePkg: Fix all relative package paths
  2022-01-20  1:13 [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency Oram, Isaac W
  2022-01-20  1:13 ` [edk2-devel][edk2-platforms][PATCH V2 01/14] BeepDebugFeaturePkg: Use MinPlatformPkg build include files Oram, Isaac W
  2022-01-20  1:13 ` [edk2-devel][edk2-platforms][PATCH V2 02/14] SmbiosFeaturePkg: " Oram, Isaac W
@ 2022-01-20  1:13 ` Oram, Isaac W
  2022-01-20  1:13 ` [edk2-devel][edk2-platforms][PATCH V2 04/14] UserAuthFeaturePkg: Use MinPlatformPkg build include files Oram, Isaac W
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Oram, Isaac W @ 2022-01-20  1:13 UTC (permalink / raw)
  To: devel; +Cc: Liming Gao, Dandan Bi

Packages should be at the root of a PACKAGES_PATH entry.
At some point, paths were relative to edk2-platforms/Features/Intel
which was functional, but interferes with the proper functioning
of packaging tools.

Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Dandan Bi <dandan.bi@intel.com>

Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
---
 Features/Intel/UserInterface/UserAuthFeaturePkg/Include/PostMemory.fdf                                      |  6 +++---
 Features/Intel/UserInterface/UserAuthFeaturePkg/Include/UserAuthFeature.dsc                                 | 12 ++++++------
 Features/Intel/UserInterface/UserAuthFeaturePkg/Library/PlatformPasswordLibNull/PlatformPasswordLibNull.inf |  2 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/Library/UserPasswordLib/UserPasswordLib.inf                 |  2 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/Library/UserPasswordUiLib/UserPasswordUiLib.inf             |  2 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthentication2Dxe.inf         |  2 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationDxe.inf          |  2 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationSmm.inf          |  2 +-
 8 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/Features/Intel/UserInterface/UserAuthFeaturePkg/Include/PostMemory.fdf b/Features/Intel/UserInterface/UserAuthFeaturePkg/Include/PostMemory.fdf
index f0b33aa44c..c534bebcc0 100644
--- a/Features/Intel/UserInterface/UserAuthFeaturePkg/Include/PostMemory.fdf
+++ b/Features/Intel/UserInterface/UserAuthFeaturePkg/Include/PostMemory.fdf
@@ -7,6 +7,6 @@
 #
 ##
 
-  INF UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationDxe.inf
-  INF UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthentication2Dxe.inf
-  INF UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationSmm.inf
+  INF UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationDxe.inf
+  INF UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthentication2Dxe.inf
+  INF UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationSmm.inf
diff --git a/Features/Intel/UserInterface/UserAuthFeaturePkg/Include/UserAuthFeature.dsc b/Features/Intel/UserInterface/UserAuthFeaturePkg/Include/UserAuthFeature.dsc
index d4f7a5ed23..7eeaf441c1 100644
--- a/Features/Intel/UserInterface/UserAuthFeaturePkg/Include/UserAuthFeature.dsc
+++ b/Features/Intel/UserInterface/UserAuthFeaturePkg/Include/UserAuthFeature.dsc
@@ -58,8 +58,8 @@
   #####################################
   # User Authentication Feature Package
   #####################################
-  PlatformPasswordLib|UserInterface/UserAuthFeaturePkg/Library/PlatformPasswordLibNull/PlatformPasswordLibNull.inf
-  UserPasswordLib|UserInterface/UserAuthFeaturePkg/Library/UserPasswordLib/UserPasswordLib.inf
+  PlatformPasswordLib|UserAuthFeaturePkg/Library/PlatformPasswordLibNull/PlatformPasswordLibNull.inf
+  UserPasswordLib|UserAuthFeaturePkg/Library/UserPasswordLib/UserPasswordLib.inf
 
 [LibraryClasses.common.DXE_DRIVER]
   #######################################
@@ -122,12 +122,12 @@
 
   # Add library instances here that are not included in package components and should be tested
   # in the package build.
-  UserInterface/UserAuthFeaturePkg/Library/UserPasswordUiLib/UserPasswordUiLib.inf
+  UserAuthFeaturePkg/Library/UserPasswordUiLib/UserPasswordUiLib.inf
 
   # Add components here that should be included in the package build.
-  UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationDxe.inf
-  UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthentication2Dxe.inf
-  UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationSmm.inf
+  UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationDxe.inf
+  UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthentication2Dxe.inf
+  UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationSmm.inf
 
 ###################################################################################################
 #
diff --git a/Features/Intel/UserInterface/UserAuthFeaturePkg/Library/PlatformPasswordLibNull/PlatformPasswordLibNull.inf b/Features/Intel/UserInterface/UserAuthFeaturePkg/Library/PlatformPasswordLibNull/PlatformPasswordLibNull.inf
index 00be14df8a..278fe026a6 100644
--- a/Features/Intel/UserInterface/UserAuthFeaturePkg/Library/PlatformPasswordLibNull/PlatformPasswordLibNull.inf
+++ b/Features/Intel/UserInterface/UserAuthFeaturePkg/Library/PlatformPasswordLibNull/PlatformPasswordLibNull.inf
@@ -32,7 +32,7 @@
 
 [Packages]
   MdePkg/MdePkg.dec
-  UserInterface/UserAuthFeaturePkg/UserAuthFeaturePkg.dec
+  UserAuthFeaturePkg/UserAuthFeaturePkg.dec
 
 [Pcd]
   gUserAuthFeaturePkgTokenSpaceGuid.PcdPasswordCleared    ## CONSUMES
diff --git a/Features/Intel/UserInterface/UserAuthFeaturePkg/Library/UserPasswordLib/UserPasswordLib.inf b/Features/Intel/UserInterface/UserAuthFeaturePkg/Library/UserPasswordLib/UserPasswordLib.inf
index 99d84ae637..a3124aa443 100644
--- a/Features/Intel/UserInterface/UserAuthFeaturePkg/Library/UserPasswordLib/UserPasswordLib.inf
+++ b/Features/Intel/UserInterface/UserAuthFeaturePkg/Library/UserPasswordLib/UserPasswordLib.inf
@@ -21,7 +21,7 @@
 [Packages]
   MdePkg/MdePkg.dec
   MdeModulePkg/MdeModulePkg.dec
-  UserInterface/UserAuthFeaturePkg/UserAuthFeaturePkg.dec
+  UserAuthFeaturePkg/UserAuthFeaturePkg.dec
 
 [LibraryClasses]
   UefiBootServicesTableLib
diff --git a/Features/Intel/UserInterface/UserAuthFeaturePkg/Library/UserPasswordUiLib/UserPasswordUiLib.inf b/Features/Intel/UserInterface/UserAuthFeaturePkg/Library/UserPasswordUiLib/UserPasswordUiLib.inf
index 9ab7d83319..8f6a693d76 100644
--- a/Features/Intel/UserInterface/UserAuthFeaturePkg/Library/UserPasswordUiLib/UserPasswordUiLib.inf
+++ b/Features/Intel/UserInterface/UserAuthFeaturePkg/Library/UserPasswordUiLib/UserPasswordUiLib.inf
@@ -20,7 +20,7 @@
 [Packages]
   MdePkg/MdePkg.dec
   MdeModulePkg/MdeModulePkg.dec
-  UserInterface/UserAuthFeaturePkg/UserAuthFeaturePkg.dec
+  UserAuthFeaturePkg/UserAuthFeaturePkg.dec
 
 [LibraryClasses]
   UefiBootServicesTableLib
diff --git a/Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthentication2Dxe.inf b/Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthentication2Dxe.inf
index 2c6c3661fb..c47e20f052 100644
--- a/Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthentication2Dxe.inf
+++ b/Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthentication2Dxe.inf
@@ -26,7 +26,7 @@
 [Packages]
   MdePkg/MdePkg.dec
   MdeModulePkg/MdeModulePkg.dec
-  UserInterface/UserAuthFeaturePkg/UserAuthFeaturePkg.dec
+  UserAuthFeaturePkg/UserAuthFeaturePkg.dec
 
 [LibraryClasses]
   BaseLib
diff --git a/Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationDxe.inf b/Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationDxe.inf
index 58066b588c..bee46a1af2 100644
--- a/Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationDxe.inf
+++ b/Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationDxe.inf
@@ -28,7 +28,7 @@
 [Packages]
   MdePkg/MdePkg.dec
   MdeModulePkg/MdeModulePkg.dec
-  UserInterface/UserAuthFeaturePkg/UserAuthFeaturePkg.dec
+  UserAuthFeaturePkg/UserAuthFeaturePkg.dec
 
 [LibraryClasses]
   BaseLib
diff --git a/Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationSmm.inf b/Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationSmm.inf
index 891e2b981d..b53f70f0e3 100644
--- a/Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationSmm.inf
+++ b/Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationSmm.inf
@@ -27,7 +27,7 @@
   MdePkg/MdePkg.dec
   MdeModulePkg/MdeModulePkg.dec
   CryptoPkg/CryptoPkg.dec
-  UserInterface/UserAuthFeaturePkg/UserAuthFeaturePkg.dec
+  UserAuthFeaturePkg/UserAuthFeaturePkg.dec
 
 [LibraryClasses]
   UefiBootServicesTableLib
-- 
2.27.0.windows.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [edk2-devel][edk2-platforms][PATCH V2 04/14] UserAuthFeaturePkg: Use MinPlatformPkg build include files
  2022-01-20  1:13 [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency Oram, Isaac W
                   ` (2 preceding siblings ...)
  2022-01-20  1:13 ` [edk2-devel][edk2-platforms][PATCH V2 03/14] UserAuthFeaturePkg: Fix all relative package paths Oram, Isaac W
@ 2022-01-20  1:13 ` Oram, Isaac W
  2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 05/14] VirtualKeyboardFeaturePkg: Fix all relative package paths Oram, Isaac W
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Oram, Isaac W @ 2022-01-20  1:13 UTC (permalink / raw)
  To: devel; +Cc: Dandan Bi, Liming Gao

Use the MinPlatformPkg common core build files to build libraries
needed by this feature.

Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>

Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
---
 Features/Intel/UserInterface/UserAuthFeaturePkg/Include/PostMemory.fdf      |  6 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/Include/UserAuthFeature.dsc | 80 ++------------------
 Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthFeaturePkg.dsc      | 18 +++++
 3 files changed, 27 insertions(+), 77 deletions(-)

diff --git a/Features/Intel/UserInterface/UserAuthFeaturePkg/Include/PostMemory.fdf b/Features/Intel/UserInterface/UserAuthFeaturePkg/Include/PostMemory.fdf
index c534bebcc0..030dcbe763 100644
--- a/Features/Intel/UserInterface/UserAuthFeaturePkg/Include/PostMemory.fdf
+++ b/Features/Intel/UserInterface/UserAuthFeaturePkg/Include/PostMemory.fdf
@@ -7,6 +7,6 @@
 #
 ##
 
-  INF UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationDxe.inf
-  INF UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthentication2Dxe.inf
-  INF UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationSmm.inf
+INF UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationDxe.inf
+INF UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthentication2Dxe.inf
+INF UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationSmm.inf
diff --git a/Features/Intel/UserInterface/UserAuthFeaturePkg/Include/UserAuthFeature.dsc b/Features/Intel/UserInterface/UserAuthFeaturePkg/Include/UserAuthFeature.dsc
index 7eeaf441c1..2f39a5580c 100644
--- a/Features/Intel/UserInterface/UserAuthFeaturePkg/Include/UserAuthFeature.dsc
+++ b/Features/Intel/UserInterface/UserAuthFeaturePkg/Include/UserAuthFeature.dsc
@@ -18,12 +18,12 @@
 #
 ################################################################################
 [Defines]
-!ifndef $(PEI_ARCH)
-  !error "PEI_ARCH must be specified to build this feature!"
-!endif
-!ifndef $(DXE_ARCH)
-  !error "DXE_ARCH must be specified to build this feature!"
-!endif
+  !ifndef $(PEI_ARCH)
+    !error "PEI_ARCH must be specified to build this feature!"
+  !endif
+  !ifndef $(DXE_ARCH)
+    !error "DXE_ARCH must be specified to build this feature!"
+  !endif
 
 ################################################################################
 #
@@ -34,47 +34,9 @@
 !include MdePkg/MdeLibs.dsc.inc
 
 [LibraryClasses]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
-  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
-  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
-  DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
-  HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
-  IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
-  IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
-  OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf
-  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
-  PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
-  TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
-  UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
-  UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
-  UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
-  UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
-  UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
-  RngLib|MdePkg/Library/BaseRngLib/BaseRngLib.inf
-
-  #####################################
-  # User Authentication Feature Package
-  #####################################
   PlatformPasswordLib|UserAuthFeaturePkg/Library/PlatformPasswordLibNull/PlatformPasswordLibNull.inf
   UserPasswordLib|UserAuthFeaturePkg/Library/UserPasswordLib/UserPasswordLib.inf
 
-[LibraryClasses.common.DXE_DRIVER]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
-
-[LibraryClasses.common.DXE_SMM_DRIVER]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  BaseCryptLib|CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf
-  MemoryAllocationLib|MdePkg/Library/SmmMemoryAllocationLib/SmmMemoryAllocationLib.inf
-  SmmServicesTableLib|MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.inf
-
 ###################################################################################################
 #
 # Components Section - list of the modules and components that will be processed by compilation
@@ -93,21 +55,6 @@
 #       generated for it, but the binary will not be put into any firmware volume.
 #
 ###################################################################################################
-#
-# Feature PEI Components
-#
-
-# @todo: Change below line to [Components.$(PEI_ARCH)] after https://bugzilla.tianocore.org/show_bug.cgi?id=2308
-#        is completed.
-[Components.IA32]
-  #####################################
-  # User Authentication Feature Package
-  #####################################
-
-  # Add library instances here that are not included in package components and should be tested
-  # in the package build.
-
-  # Add components here that should be included in the package build.
 
 #
 # Feature DXE Components
@@ -128,18 +75,3 @@
   UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationDxe.inf
   UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthentication2Dxe.inf
   UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationSmm.inf
-
-###################################################################################################
-#
-# BuildOptions Section - Define the module specific tool chain flags that should be used as
-#                        the default flags for a module. These flags are appended to any
-#                        standard flags that are defined by the build process. They can be
-#                        applied for any modules or only those modules with the specific
-#                        module style (EDK or EDKII) specified in [Components] section.
-#
-#                        For advanced features, it is recommended to enable [BuildOptions] in
-#                        the applicable INF file so it does not affect the whole board package
-#                        build when this DSC file is active.
-#
-###################################################################################################
-[BuildOptions]
diff --git a/Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthFeaturePkg.dsc b/Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthFeaturePkg.dsc
index 74eb9213ce..10360c5737 100644
--- a/Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthFeaturePkg.dsc
+++ b/Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthFeaturePkg.dsc
@@ -24,6 +24,24 @@
   PEI_ARCH                       = IA32
   DXE_ARCH                       = X64
 
+[Packages]
+  MinPlatformPkg/MinPlatformPkg.dec
+
+[PcdsFeatureFlag]
+  #
+  # PCD needed for MinPlatform build includes
+  #
+  gMinPlatformPkgTokenSpaceGuid.PcdSmiHandlerProfileEnable                |FALSE
+  gMinPlatformPkgTokenSpaceGuid.PcdUefiSecureBootEnable                   |FALSE
+  gMinPlatformPkgTokenSpaceGuid.PcdPerformanceEnable                      |FALSE
+
+#
+# Include common libraries
+#
+!include MinPlatformPkg/Include/Dsc/CoreCommonLib.dsc
+!include MinPlatformPkg/Include/Dsc/CorePeiLib.dsc
+!include MinPlatformPkg/Include/Dsc/CoreDxeLib.dsc
+
 #
 # This package always builds the feature.
 #
-- 
2.27.0.windows.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [edk2-devel][edk2-platforms][PATCH V2 05/14] VirtualKeyboardFeaturePkg: Fix all relative package paths
  2022-01-20  1:13 [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency Oram, Isaac W
                   ` (3 preceding siblings ...)
  2022-01-20  1:13 ` [edk2-devel][edk2-platforms][PATCH V2 04/14] UserAuthFeaturePkg: Use MinPlatformPkg build include files Oram, Isaac W
@ 2022-01-20  1:14 ` Oram, Isaac W
  2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 06/14] VirtualKeyboardFeaturePkg: Use MinPlatformPkg build include files Oram, Isaac W
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Oram, Isaac W @ 2022-01-20  1:14 UTC (permalink / raw)
  To: devel; +Cc: Liming Gao, Dandan Bi

Packages should be at the root of a PACKAGES_PATH entry.
At some point, paths were relative to edk2-platforms/Features/Intel
which was functional, but interferes with the proper functioning
of packaging tools.

Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Dandan Bi <dandan.bi@intel.com>

Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
---
 Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/PostMemory.fdf             | 2 +-
 Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/VirtualKeyboardFeature.dsc | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/PostMemory.fdf b/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/PostMemory.fdf
index bf4a4d5078..f40b5087e8 100644
--- a/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/PostMemory.fdf
+++ b/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/PostMemory.fdf
@@ -7,4 +7,4 @@
 #
 ##
 
-  INF UserInterface/VirtualKeyboardFeaturePkg/VirtualKeyboardDxe/VirtualKeyboardDxe.inf
+  INF VirtualKeyboardFeaturePkg/VirtualKeyboardDxe/VirtualKeyboardDxe.inf
diff --git a/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/VirtualKeyboardFeature.dsc b/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/VirtualKeyboardFeature.dsc
index a8c3819480..8179f70c80 100644
--- a/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/VirtualKeyboardFeature.dsc
+++ b/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/VirtualKeyboardFeature.dsc
@@ -81,7 +81,7 @@
   #####################################
   # Virtual Keyboard Feature Package
   #####################################
-  UserInterface/VirtualKeyboardFeaturePkg/VirtualKeyboardDxe/VirtualKeyboardDxe.inf
+  VirtualKeyboardFeaturePkg/VirtualKeyboardDxe/VirtualKeyboardDxe.inf
 
 ###################################################################################################
 #
-- 
2.27.0.windows.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [edk2-devel][edk2-platforms][PATCH V2 06/14] VirtualKeyboardFeaturePkg: Use MinPlatformPkg build include files
  2022-01-20  1:13 [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency Oram, Isaac W
                   ` (4 preceding siblings ...)
  2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 05/14] VirtualKeyboardFeaturePkg: Fix all relative package paths Oram, Isaac W
@ 2022-01-20  1:14 ` Oram, Isaac W
  2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 07/14] VirtualKeyboardFeaturePkg: Add feature enable PCD Oram, Isaac W
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Oram, Isaac W @ 2022-01-20  1:14 UTC (permalink / raw)
  To: devel; +Cc: Dandan Bi, Liming Gao

Use the MinPlatformPkg common core build files to build libraries
needed by this feature.

Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>

Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
---
 Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/VirtualKeyboardFeature.dsc | 62 +++-----------------
 Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/VirtualKeyboardFeaturePkg.dsc      | 18 ++++++
 2 files changed, 25 insertions(+), 55 deletions(-)

diff --git a/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/VirtualKeyboardFeature.dsc b/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/VirtualKeyboardFeature.dsc
index 8179f70c80..0d4f14a412 100644
--- a/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/VirtualKeyboardFeature.dsc
+++ b/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/VirtualKeyboardFeature.dsc
@@ -18,43 +18,12 @@
 #
 ################################################################################
 [Defines]
-!ifndef $(PEI_ARCH)
-  !error "PEI_ARCH must be specified to build this feature!"
-!endif
-!ifndef $(DXE_ARCH)
-  !error "DXE_ARCH must be specified to build this feature!"
-!endif
-
-################################################################################
-#
-# Library Class section - list of all Library Classes needed by this feature.
-#
-################################################################################
-
-!include MdePkg/MdeLibs.dsc.inc
-
-[LibraryClasses]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
-  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
-  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
-  UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
-  UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
-  UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
-  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
-  HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
-  DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
-  PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
-  UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
-  UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
-
-[LibraryClasses.common.UEFI_DRIVER]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
+  !ifndef $(PEI_ARCH)
+    !error "PEI_ARCH must be specified to build this feature!"
+  !endif
+  !ifndef $(DXE_ARCH)
+    !error "DXE_ARCH must be specified to build this feature!"
+  !endif
 
 ###################################################################################################
 #
@@ -74,26 +43,9 @@
 #       generated for it, but the binary will not be put into any firmware volume.
 #
 ###################################################################################################
+
 #
 # Feature DXE Components
 #
 [Components.X64]
-  #####################################
-  # Virtual Keyboard Feature Package
-  #####################################
   VirtualKeyboardFeaturePkg/VirtualKeyboardDxe/VirtualKeyboardDxe.inf
-
-###################################################################################################
-#
-# BuildOptions Section - Define the module specific tool chain flags that should be used as
-#                        the default flags for a module. These flags are appended to any
-#                        standard flags that are defined by the build process. They can be
-#                        applied for any modules or only those modules with the specific
-#                        module style (EDK or EDKII) specified in [Components] section.
-#
-#                        For advanced features, it is recommended to enable [BuildOptions] in
-#                        the applicable INF file so it does not affect the whole board package
-#                        build when this DSC file is active.
-#
-###################################################################################################
-[BuildOptions]
diff --git a/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/VirtualKeyboardFeaturePkg.dsc b/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/VirtualKeyboardFeaturePkg.dsc
index ea2005c6d2..6717c892f1 100644
--- a/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/VirtualKeyboardFeaturePkg.dsc
+++ b/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/VirtualKeyboardFeaturePkg.dsc
@@ -24,6 +24,24 @@
   PEI_ARCH                       = IA32
   DXE_ARCH                       = X64
 
+[Packages]
+  MinPlatformPkg/MinPlatformPkg.dec
+
+[PcdsFeatureFlag]
+  #
+  # PCD needed for MinPlatform build includes
+  #
+  gMinPlatformPkgTokenSpaceGuid.PcdSmiHandlerProfileEnable                |FALSE
+  gMinPlatformPkgTokenSpaceGuid.PcdUefiSecureBootEnable                   |FALSE
+  gMinPlatformPkgTokenSpaceGuid.PcdPerformanceEnable                      |FALSE
+
+#
+# Include common libraries
+#
+!include MinPlatformPkg/Include/Dsc/CoreCommonLib.dsc
+!include MinPlatformPkg/Include/Dsc/CorePeiLib.dsc
+!include MinPlatformPkg/Include/Dsc/CoreDxeLib.dsc
+
 #
 # This package always builds the feature.
 #
-- 
2.27.0.windows.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [edk2-devel][edk2-platforms][PATCH V2 07/14] VirtualKeyboardFeaturePkg: Add feature enable PCD
  2022-01-20  1:13 [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency Oram, Isaac W
                   ` (5 preceding siblings ...)
  2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 06/14] VirtualKeyboardFeaturePkg: Use MinPlatformPkg build include files Oram, Isaac W
@ 2022-01-20  1:14 ` Oram, Isaac W
  2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 08/14] LogoFeaturePkg: Use MinPlatformPkg build include files Oram, Isaac W
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Oram, Isaac W @ 2022-01-20  1:14 UTC (permalink / raw)
  To: devel; +Cc: Liming Gao, Dandan Bi

VirtualKeyboard missing feature enable PCD.

Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Dandan Bi <dandan.bi@intel.com>

Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
---
 Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/PostMemory.fdf        | 2 +-
 Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/VirtualKeyboardFeaturePkg.dec | 7 ++++++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/PostMemory.fdf b/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/PostMemory.fdf
index f40b5087e8..31a9a6c35d 100644
--- a/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/PostMemory.fdf
+++ b/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/PostMemory.fdf
@@ -7,4 +7,4 @@
 #
 ##
 
-  INF VirtualKeyboardFeaturePkg/VirtualKeyboardDxe/VirtualKeyboardDxe.inf
+INF VirtualKeyboardFeaturePkg/VirtualKeyboardDxe/VirtualKeyboardDxe.inf
diff --git a/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/VirtualKeyboardFeaturePkg.dec b/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/VirtualKeyboardFeaturePkg.dec
index c26db01f09..d4b5d67783 100644
--- a/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/VirtualKeyboardFeaturePkg.dec
+++ b/Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/VirtualKeyboardFeaturePkg.dec
@@ -22,5 +22,10 @@
   Include
 
 [Guids]
+  gVirtualKeyboardFeaturePkgTokenSpaceGuid        = { 0x7a9af74f, 0x27ca, 0x4834, { 0xa7, 0xd4, 0x62, 0x63, 0xf0, 0xe5, 0x7a, 0xd0 } }
+
   ## GUID used for VirtualKeyboardDriver to open TouchPanel protocol.
-  gEdkiiTouchPanelGuid                             = { 0x91b1d27b, 0xe126, 0x48d1, { 0x82, 0x34, 0xd2, 0x8b, 0x81, 0xc8, 0x83, 0x62 }}
+  gEdkiiTouchPanelGuid                            = { 0x91b1d27b, 0xe126, 0x48d1, { 0x82, 0x34, 0xd2, 0x8b, 0x81, 0xc8, 0x83, 0x62 }}
+
+[PcdsFeatureFlag]
+  gVirtualKeyboardFeaturePkgTokenSpaceGuid.PcdVirtualKeyboardFeatureEnable|FALSE|BOOLEAN|0x00000001
-- 
2.27.0.windows.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [edk2-devel][edk2-platforms][PATCH V2 08/14] LogoFeaturePkg: Use MinPlatformPkg build include files
  2022-01-20  1:13 [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency Oram, Isaac W
                   ` (6 preceding siblings ...)
  2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 07/14] VirtualKeyboardFeaturePkg: Add feature enable PCD Oram, Isaac W
@ 2022-01-20  1:14 ` Oram, Isaac W
  2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 09/14] PostCodeDebugFeaturePkg: Complete as an advanced feature Oram, Isaac W
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Oram, Isaac W @ 2022-01-20  1:14 UTC (permalink / raw)
  To: devel; +Cc: Dandan Bi, Liming Gao

Use the MinPlatformPkg common core build files to build libraries
needed by this feature.

Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>

Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
---
 Features/Intel/UserInterface/LogoFeaturePkg/Include/LogoFeature.dsc | 69 ++++----------------
 Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dec      |  2 -
 Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dsc      | 38 ++++++++---
 3 files changed, 41 insertions(+), 68 deletions(-)

diff --git a/Features/Intel/UserInterface/LogoFeaturePkg/Include/LogoFeature.dsc b/Features/Intel/UserInterface/LogoFeaturePkg/Include/LogoFeature.dsc
index 1898be12ed..0acce1c7df 100644
--- a/Features/Intel/UserInterface/LogoFeaturePkg/Include/LogoFeature.dsc
+++ b/Features/Intel/UserInterface/LogoFeaturePkg/Include/LogoFeature.dsc
@@ -18,36 +18,12 @@
 #
 ################################################################################
 [Defines]
-!ifndef $(PEI_ARCH)
-  !error "PEI_ARCH must be specified to build this feature!"
-!endif
-!ifndef $(DXE_ARCH)
-  !error "DXE_ARCH must be specified to build this feature!"
-!endif
-
-################################################################################
-#
-# Library Class section - list of all Library Classes needed by this feature.
-#
-################################################################################
-
-!include MdePkg/MdeLibs.dsc.inc
-
-[LibraryClasses]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
-  BaseMemoryLib|MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf
-  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
-  UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
-  UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
-
-[LibraryClasses.common.DXE_DRIVER]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
+  !ifndef $(PEI_ARCH)
+    !error "PEI_ARCH must be specified to build this feature!"
+  !endif
+  !ifndef $(DXE_ARCH)
+    !error "DXE_ARCH must be specified to build this feature!"
+  !endif
 
 ################################################################################
 #
@@ -71,31 +47,8 @@
 # @todo: Change below line to [Components.$(DXE_ARCH)] after https://bugzilla.tianocore.org/show_bug.cgi?id=2308
 #        is completed.
 [Components.X64]
-  #####################################
-  # Logo Feature Package
-  #####################################
-
-  # Add library instances here that are not included in package components and should be tested
-  # in the package build.
-
-  # Add components here that should be included in the package build.
-!if gLogoFeaturePkgTokenSpaceGuid.PcdJpgEnable == TRUE
-  LogoFeaturePkg/LogoDxe/JpegLogoDxe.inf
-!else
-  LogoFeaturePkg/LogoDxe/LogoDxe.inf
-!endif
-
-###################################################################################################
-#
-# BuildOptions Section - Define the module specific tool chain flags that should be used as
-#                        the default flags for a module. These flags are appended to any
-#                        standard flags that are defined by the build process. They can be
-#                        applied for any modules or only those modules with the specific
-#                        module style (EDK or EDKII) specified in [Components] section.
-#
-#                        For advanced features, it is recommended to enable [BuildOptions] in
-#                        the applicable INF file so it does not affect the whole board package
-#                        build when this DSC file is active.
-#
-###################################################################################################
-[BuildOptions]
+  !if gLogoFeaturePkgTokenSpaceGuid.PcdJpgEnable == TRUE
+    LogoFeaturePkg/LogoDxe/JpegLogoDxe.inf
+  !else
+    LogoFeaturePkg/LogoDxe/LogoDxe.inf
+  !endif
diff --git a/Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dec b/Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dec
index 1418eb2137..4fa7dfea0f 100644
--- a/Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dec
+++ b/Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dec
@@ -21,8 +21,6 @@
 [Includes]
   Include
 
-[LibraryClasses]
-
 [Guids]
   gLogoFeaturePkgTokenSpaceGuid  =  {0x567199de, 0xb448, 0x4aa0, {0x99, 0x4e, 0xd5, 0xd6, 0x82, 0x59, 0x91, 0x17}}
 
diff --git a/Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dsc b/Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dsc
index fca413b46b..5a6436178c 100644
--- a/Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dsc
+++ b/Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dsc
@@ -21,17 +21,39 @@
   SUPPORTED_ARCHITECTURES        = IA32|X64
   BUILD_TARGETS                  = DEBUG|RELEASE|NOOPT
   SKUID_IDENTIFIER               = DEFAULT
+  PEI_ARCH                       = IA32
+  DXE_ARCH                       = X64
 
-[LibraryClasses]
-  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
-  BaseMemoryLib|MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf
-  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
-  UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
-  UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
+[Packages]
+  MinPlatformPkg/MinPlatformPkg.dec
+  LogoFeaturePkg/LogoFeaturePkg.dec
 
-[LibraryClasses.common.DXE_DRIVER]
-  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
+[PcdsFeatureFlag]
+  gLogoFeaturePkgTokenSpaceGuid.PcdJpgEnable                              |FALSE
 
+  #
+  # PCD needed for MinPlatform build includes
+  #
+  gMinPlatformPkgTokenSpaceGuid.PcdSmiHandlerProfileEnable                |FALSE
+  gMinPlatformPkgTokenSpaceGuid.PcdUefiSecureBootEnable                   |FALSE
+  gMinPlatformPkgTokenSpaceGuid.PcdPerformanceEnable                      |FALSE
+
+#
+# Include common libraries
+#
+!include MinPlatformPkg/Include/Dsc/CoreCommonLib.dsc
+!include MinPlatformPkg/Include/Dsc/CorePeiLib.dsc
+!include MinPlatformPkg/Include/Dsc/CoreDxeLib.dsc
+
+#
+# This package always builds the feature.
+#
+!include Include/LogoFeature.dsc
+
+#
+# Since the feature include only builds the x64 BMP version, allow building
+# all drivers in this package in 32b or 64b modes
+#
 [Components]
   LogoFeaturePkg/LogoDxe/JpegLogoDxe.inf
   LogoFeaturePkg/LogoDxe/LogoDxe.inf
-- 
2.27.0.windows.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [edk2-devel][edk2-platforms][PATCH V2 09/14] PostCodeDebugFeaturePkg: Complete as an advanced feature
  2022-01-20  1:13 [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency Oram, Isaac W
                   ` (7 preceding siblings ...)
  2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 08/14] LogoFeaturePkg: Use MinPlatformPkg build include files Oram, Isaac W
@ 2022-01-20  1:14 ` Oram, Isaac W
  2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 10/14] AcpiDebugFeaturePkg: Use MinPlatformPkg build include files Oram, Isaac W
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Oram, Isaac W @ 2022-01-20  1:14 UTC (permalink / raw)
  To: devel; +Cc: Eric Dong, Liming Gao

Add feature enable PCD.
Use MinPlatformPkg build include files.
Fix PEI_COR typo in PEI handler lib.
Build StatusCodeHandler components with unique filename GUID.
Add PreMemory.fdf and PostMemory.fdf include files.
Improve Readme formatting and feature enabling checklist.

Cc: Eric Dong <eric.dong@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>

Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
---
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PostCodeDebugFeature.dsc                                         | 231 +++++---------------
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PostMemory.fdf                                                   |  14 ++
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PreMemory.fdf                                                    |  13 ++
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Library/PostCodeStatusCodeHandlerLib/PeiPostCodeStatusCodeHandlerLib.inf |   2 +-
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/PostCodeDebugFeaturePkg.dec                                              |  11 +
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/PostCodeDebugFeaturePkg.dsc                                              |  30 +++
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Readme.md                                                                |  31 ++-
 7 files changed, 146 insertions(+), 186 deletions(-)

diff --git a/Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PostCodeDebugFeature.dsc b/Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PostCodeDebugFeature.dsc
index 3d886fff38..31b0c02e79 100644
--- a/Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PostCodeDebugFeature.dsc
+++ b/Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PostCodeDebugFeature.dsc
@@ -12,192 +12,71 @@
 #
 ##
 
-################################################################################
-#
-# Defines Section - statements that will be processed to create a Makefile.
-#
-################################################################################
 [Defines]
-!ifndef $(PEI_ARCH)
-  !error "PEI_ARCH must be specified to build this feature!"
-!endif
-!ifndef $(DXE_ARCH)
-  !error "DXE_ARCH must be specified to build this feature!"
-!endif
+  !ifndef $(PEI_ARCH)
+    !error "PEI_ARCH must be specified to build this feature!"
+  !endif
+  !ifndef $(DXE_ARCH)
+    !error "DXE_ARCH must be specified to build this feature!"
+  !endif
 
-################################################################################
-#
-# PCD Section - list of PCD Entries modified by the feature.
-#
-################################################################################
+  DEFINE POST_CODE_PEIM_FILENAME  = 3ea07dd3-f837-40c0-ac56-f3e18a30d01b
+  DEFINE POST_CODE_DXE_FILENAME   = e7d785f5-e2f3-45e3-b0e7-2291a6c6dea6
+  DEFINE POST_CODE_SMM_FILENAME   = 02a955c7-48c0-4178-989b-b3fea4b3c6a2
 
-# Unmark the following and StatusCodeHandler.efi to build the .dsc file directly
-#[PcdsDynamicDefault]
-#  gPostCodeDebugFeaturePkgTokenSpaceGuid.PcdStatusCodeUsePostCode|TRUE
+[PcdsDynamicExDefault]
+  #
+  # By default, make the functional control DynamicExDefault PCD so that it can be enabled when debugging.
+  #
+  gPostCodeDebugFeaturePkgTokenSpaceGuid.PcdStatusCodeUsePostCode
 
-################################################################################
-#
-# Library Class section - list of all Library Classes needed by this feature.
-#
-################################################################################
+[LibraryClasses.Common]
+  PostCodeMapLib|PostCodeDebugFeaturePkg/Library/PostCodeMapLib/PostCodeMapLib.inf
 
-!include MdePkg/MdeLibs.dsc.inc
+[LibraryClasses.PEIM, LibraryClasses.PEI_CORE]
+  StatusCodeHandlerLib|PostCodeDebugFeaturePkg/Library/PostCodeStatusCodeHandlerLib/PeiPostCodeStatusCodeHandlerLib.inf
 
-[LibraryClasses]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
-  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
-  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
-  DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
-  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
-  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
-  PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
-  PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
-  TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
-  UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
-  UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
-  UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
-  UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
-  PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf
+[LibraryClasses.DXE_RUNTIME_DRIVER]
+  StatusCodeHandlerLib|PostCodeDebugFeaturePkg/Library/PostCodeStatusCodeHandlerLib/RuntimeDxePostCodeStatusCodeHandlerLib.inf
 
-[LibraryClasses.common.PEIM]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
-  MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
-  PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf
+[LibraryClasses.DXE_SMM_DRIVER]
+  StatusCodeHandlerLib|PostCodeDebugFeaturePkg/Library/PostCodeStatusCodeHandlerLib/SmmPostCodeStatusCodeHandlerLib.inf
 
-[LibraryClasses.IA32.PEIM,LibraryClasses.IA32.PEI_CORE,LibraryClasses.IA32.SEC]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
-
-[LibraryClasses.common.DXE_DRIVER]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
-  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
-
-[LibraryClasses.common.DXE_RUNTIME_DRIVER]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
-  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
-  UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
-  ReportStatusCodeLib|MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeReportStatusCodeLib.inf
-
-[LibraryClasses.common.UEFI_DRIVER]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
-  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
-
-[LibraryClasses.X64.DXE_SMM_DRIVER]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  SmmServicesTableLib|MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.inf
-  MemoryAllocationLib|MdePkg/Library/SmmMemoryAllocationLib/SmmMemoryAllocationLib.inf
-  SmmIoLib|MdePkg/Library/SmmIoLib/SmmIoLib.inf
-  SmmMemLib|MdePkg/Library/SmmMemLib/SmmMemLib.inf
-  ReportStatusCodeLib|MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCodeLib.inf
-
-################################################################################
-#
-# Component section - list of all components that need built for this feature.
-#
-# Note: The EDK II DSC file is not used to specify how compiled binary images get placed
-#       into firmware volume images. This section is just a list of modules to compile from
-#       source into UEFI-compliant binaries.
-#       It is the FDF file that contains information on combining binary files into firmware
-#       volume images, whose concept is beyond UEFI and is described in PI specification.
-#       There may also be modules listed in this section that are not required in the FDF file,
-#       When a module listed here is excluded from FDF file, then UEFI-compliant binary will be
-#       generated for it, but the binary will not be put into any firmware volume.
-#
-################################################################################
-#
-# Feature PEI Components
-#
-
-# @todo: Change below line to [Components.$(PEI_ARCH)] after https://bugzilla.tianocore.org/show_bug.cgi?id=2308
-#        is completed.
 [Components.IA32]
-  #####################################
-  # PostCode Debug Feature Package
-  #####################################
 
-  # Add library instances here that are not included in package components and should be tested
-  # in the package build.
-  PostCodeDebugFeaturePkg/Library/PostCodeStatusCodeHandlerLib/PeiPostCodeStatusCodeHandlerLib.inf
+  MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf {
+    <Defines>
+      #
+      # Many boards already have StatusCodeHandler components built from the common core code
+      # Providing a unique name avoids collisions.  Both status code handler components will
+      # install their listeners with the status code routers.
+      #
+      FILE_GUID = $(POST_CODE_PEIM_FILENAME)
+    <LibraryClasses>
+      NULL|PostCodeDebugFeaturePkg/Library/PostCodeStatusCodeHandlerLib/PeiPostCodeStatusCodeHandlerLib.inf
+  }
 
-  # The following is an example for used with StatusCodeHandler:
-# MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf {
-#   <LibraryClasses>
-#     OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
-#     SerialPortLib|MdePkg/Library/BaseSerialPortLibNull/BaseSerialPortLibNull.inf
-#     PostCodeLib|MdePkg/Library/BasePostCodeLibDebug/BasePostCodeLibDebug.inf
-#     PostCodeMapLib|PostCodeDebugFeaturePkg/Library/PostCodeMapLib/PostCodeMapLib.inf
-#     NULL|PostCodeDebugFeaturePkg/Library/PostCodeStatusCodeHandlerLib/PeiPostCodeStatusCodeHandlerLib.inf
-# }
-
-  # Add components here that should be included in the package build.
-
-#
-# Feature DXE Components
-#
-
-# @todo: Change below line to [Components.$(DXE_ARCH)] after https://bugzilla.tianocore.org/show_bug.cgi?id=2308
-#        is completed.
 [Components.X64]
-  #####################################
-  # PostCode Debug Feature Package
-  #####################################
+  MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf {
+    <Defines>
+      #
+      # Many boards already have StatusCodeHandler components built from the common core code
+      # Providing a unique name avoids collisions.  Both status code handler components will
+      # install their listeners with the status code routers.
+      #
+      FILE_GUID = $(POST_CODE_DXE_FILENAME)
+    <LibraryClasses>
+      NULL|PostCodeDebugFeaturePkg/Library/PostCodeStatusCodeHandlerLib/RuntimeDxePostCodeStatusCodeHandlerLib.inf
+  }
 
-  # Add library instances here that are not included in package components and should be tested
-  # in the package build.
-  PostCodeDebugFeaturePkg/Library/PostCodeStatusCodeHandlerLib/RuntimeDxePostCodeStatusCodeHandlerLib.inf
-  PostCodeDebugFeaturePkg/Library/PostCodeStatusCodeHandlerLib/SmmPostCodeStatusCodeHandlerLib.inf
-
-  # The following is an example for used with StatusCodeHandler:
-# MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf {
-#   <LibraryClasses>
-#     OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
-#     SerialPortLib|MdePkg/Library/BaseSerialPortLibNull/BaseSerialPortLibNull.inf
-#     PostCodeLib|MdePkg/Library/BasePostCodeLibDebug/BasePostCodeLibDebug.inf
-#     PostCodeMapLib|PostCodeDebugFeaturePkg/Library/PostCodeMapLib/PostCodeMapLib.inf
-#     NULL|PostCodeDebugFeaturePkg/Library/PostCodeStatusCodeHandlerLib/RuntimeDxePostCodeStatusCodeHandlerLib.inf
-# }
-
-# MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.inf {
-#   <LibraryClasses>
-#     OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
-#     SerialPortLib|MdePkg/Library/BaseSerialPortLibNull/BaseSerialPortLibNull.inf
-#     PostCodeLib|MdePkg/Library/BasePostCodeLibDebug/BasePostCodeLibDebug.inf
-#     PostCodeMapLib|PostCodeDebugFeaturePkg/Library/PostCodeMapLib/PostCodeMapLib.inf
-#     NULL|PostCodeDebugFeaturePkg/Library/PostCodeStatusCodeHandlerLib/SmmPostCodeStatusCodeHandlerLib.inf
-# }
-
-  # Add components here that should be included in the package build.
-
-###################################################################################################
-#
-# BuildOptions Section - Define the module specific tool chain flags that should be used as
-#                        the default flags for a module. These flags are appended to any
-#                        standard flags that are defined by the build process. They can be
-#                        applied for any modules or only those modules with the specific
-#                        module style (EDK or EDKII) specified in [Components] section.
-#
-#                        For advanced features, it is recommended to enable [BuildOptions] in
-#                        the applicable INF file so it does not affect the whole board package
-#                        build when this DSC file is active.
-#
-###################################################################################################
-[BuildOptions]
+  MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.inf {
+    <Defines>
+      #
+      # Many boards already have StatusCodeHandler components built from the common core code
+      # Providing a unique name avoids collisions.  Both status code handler components will
+      # install their listeners with the status code routers.
+      #
+      FILE_GUID = $(POST_CODE_SMM_FILENAME)
+    <LibraryClasses>
+      NULL|PostCodeDebugFeaturePkg/Library/PostCodeStatusCodeHandlerLib/SmmPostCodeStatusCodeHandlerLib.inf
+  }
diff --git a/Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PostMemory.fdf b/Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PostMemory.fdf
new file mode 100644
index 0000000000..1be9b369a8
--- /dev/null
+++ b/Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PostMemory.fdf
@@ -0,0 +1,14 @@
+## @file
+#  FDF file for post-memory BeepDebugFeature advanced feature.
+#
+#  This file is intended to be included into another package so advanced features
+#  can be conditionally included in the flash image by enabling the respective
+#  feature via its FeaturePCD.
+#
+# Copyright (C) 2022 Intel Corporation.
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+##
+
+INF FILE_GUID = $(POST_CODE_DXE_FILENAME) MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf
+INF FILE_GUID = $(POST_CODE_SMM_FILENAME) MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.inf
diff --git a/Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PreMemory.fdf b/Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PreMemory.fdf
new file mode 100644
index 0000000000..168ceb1712
--- /dev/null
+++ b/Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PreMemory.fdf
@@ -0,0 +1,13 @@
+## @file
+#  FDF file for pre-memory BeepDebugFeature advanced feature.
+#
+#  This file is intended to be included into another package so advanced features
+#  can be conditionally included in the flash image by enabling the respective
+#  feature via its FeaturePCD.
+#
+# Copyright (C) 2022 Intel Corporation.
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+##
+
+INF FILE_GUID = $(POST_CODE_PEIM_FILENAME) MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf
diff --git a/Features/Intel/Debugging/PostCodeDebugFeaturePkg/Library/PostCodeStatusCodeHandlerLib/PeiPostCodeStatusCodeHandlerLib.inf b/Features/Intel/Debugging/PostCodeDebugFeaturePkg/Library/PostCodeStatusCodeHandlerLib/PeiPostCodeStatusCodeHandlerLib.inf
index c27578fe90..72df81c77f 100644
--- a/Features/Intel/Debugging/PostCodeDebugFeaturePkg/Library/PostCodeStatusCodeHandlerLib/PeiPostCodeStatusCodeHandlerLib.inf
+++ b/Features/Intel/Debugging/PostCodeDebugFeaturePkg/Library/PostCodeStatusCodeHandlerLib/PeiPostCodeStatusCodeHandlerLib.inf
@@ -15,7 +15,7 @@
   FILE_GUID                      = FA32350A-63DB-4AC6-88D1-BC5327EE7ECE
   MODULE_TYPE                    = PEIM
   CONSTRUCTOR                    = PeiPostCodeStatusCodeHandlerLibConstructor
-  LIBRARY_CLASS                  = StatusCodeHandlerLib|SEC PEIM PEI_COR
+  LIBRARY_CLASS                  = StatusCodeHandlerLib|SEC PEIM PEI_CORE
 
 #
 # The following information is for reference only and not required by the build tools.
diff --git a/Features/Intel/Debugging/PostCodeDebugFeaturePkg/PostCodeDebugFeaturePkg.dec b/Features/Intel/Debugging/PostCodeDebugFeaturePkg/PostCodeDebugFeaturePkg.dec
index 5ba7b30ab6..42ac756a7c 100644
--- a/Features/Intel/Debugging/PostCodeDebugFeaturePkg/PostCodeDebugFeaturePkg.dec
+++ b/Features/Intel/Debugging/PostCodeDebugFeaturePkg/PostCodeDebugFeaturePkg.dec
@@ -28,5 +28,16 @@
 [Guids]
   gPostCodeDebugFeaturePkgTokenSpaceGuid  =  {0x68886ac8, 0x7a29, 0x4845, {0xa7, 0x02, 0xe9, 0x83, 0xc8, 0x7f, 0xfb, 0xab}}
 
+[PcdsFeatureFlag]
+  gPostCodeDebugFeaturePkgTokenSpaceGuid.PcdPostCodeDebugFeatureEnable|FALSE|BOOLEAN|0x00000002
+
 [PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]
+  ## This PCD allows for dynamic control of post code use if so desired.
+  #
+  #  The PCD value can be modified at boot time to activate and deactivate the feature functionality.
+  #
+  #  Note that this differs from Pcd<FeatureName>FeatureEnable which determines whether the feature is included
+  #  as an advanced feature in the flash image. If enabled, the feature is then eligible to be activated/deactivated
+  #  via this PCD.
+  #
   gPostCodeDebugFeaturePkgTokenSpaceGuid.PcdStatusCodeUsePostCode|FALSE|BOOLEAN|0x00000001
diff --git a/Features/Intel/Debugging/PostCodeDebugFeaturePkg/PostCodeDebugFeaturePkg.dsc b/Features/Intel/Debugging/PostCodeDebugFeaturePkg/PostCodeDebugFeaturePkg.dsc
index 4f0bec4a6f..349604098f 100644
--- a/Features/Intel/Debugging/PostCodeDebugFeaturePkg/PostCodeDebugFeaturePkg.dsc
+++ b/Features/Intel/Debugging/PostCodeDebugFeaturePkg/PostCodeDebugFeaturePkg.dsc
@@ -24,6 +24,36 @@
   PEI_ARCH                       = IA32
   DXE_ARCH                       = X64
 
+[Packages]
+  MinPlatformPkg/MinPlatformPkg.dec
+
+[PcdsFeatureFlag]
+  #
+  # PCD needed for MinPlatform build includes
+  #
+  gMinPlatformPkgTokenSpaceGuid.PcdSmiHandlerProfileEnable                |FALSE
+  gMinPlatformPkgTokenSpaceGuid.PcdUefiSecureBootEnable                   |FALSE
+  gMinPlatformPkgTokenSpaceGuid.PcdPerformanceEnable                      |FALSE
+
+[PcdsDynamicExDefault]
+  #
+  # PCD needed for this feature to build
+  #
+  gPostCodeDebugFeaturePkgTokenSpaceGuid.PcdStatusCodeUsePostCode|TRUE
+
+#
+# Include common libraries
+#
+!include MinPlatformPkg/Include/Dsc/CoreCommonLib.dsc
+!include MinPlatformPkg/Include/Dsc/CorePeiLib.dsc
+!include MinPlatformPkg/Include/Dsc/CoreDxeLib.dsc
+
+[LibraryClasses.Common]
+  #
+  # Required by common status code handler infrastructure
+  #
+  PlatformHookLib|MdeModulePkg/Library/BasePlatformHookLibNull/BasePlatformHookLibNull.inf
+
 #
 # This package always builds the feature.
 #
diff --git a/Features/Intel/Debugging/PostCodeDebugFeaturePkg/Readme.md b/Features/Intel/Debugging/PostCodeDebugFeaturePkg/Readme.md
index c49db35999..3fc52f1c00 100644
--- a/Features/Intel/Debugging/PostCodeDebugFeaturePkg/Readme.md
+++ b/Features/Intel/Debugging/PostCodeDebugFeaturePkg/Readme.md
@@ -16,7 +16,7 @@ It also provide a library of PostCodeMap lib, it map the status code to post cod
 A library of PostCode lib is needed by platform.
 
 In the library contstructor function, PostCodeStatusCodeHandlerLib register the call back function for ReportStatusCode.
-When called, it call GetPostCodeFromStatusCode() in PostCodeMapLib to get post code from status code, and call PostCode() in PostCodeLib to show the post code.
+When called, it call GetPostCodeFromStatusCode () in PostCodeMapLib to get post code from status code, and call PostCode () in PostCodeLib to show the post code.
 
 PostCodeStatusCodeHandlerLib include 3 libraries for PEI, RuntimeDxe, SMM:
 * PeiPostCodeStatusCodeHandlerLib
@@ -38,6 +38,7 @@ This library provide a function to get post code from status code.
 
 ## Key Functions
 * In PeiPostCodeStatusCodeHandlerLib:
+```
   EFI_STATUS
   EFIAPI
   PostCodeStatusCodeReportWorker (
@@ -48,8 +49,10 @@ This library provide a function to get post code from status code.
     IN CONST EFI_GUID                 *CallerId,
     IN CONST EFI_STATUS_CODE_DATA     *Data OPTIONAL
   )
+```
 
 * In RuntimeDxePostCodeStatusCodeHandlerLib:
+```
   EFI_STATUS
   EFIAPI
   PostCodeStatusCodeReportWorker (
@@ -59,8 +62,10 @@ This library provide a function to get post code from status code.
     IN EFI_GUID                       *CallerId,
     IN EFI_STATUS_CODE_DATA           *Data OPTIONAL
   )
+```
 
 * In SmmPostCodeStatusCodeHandlerLib:
+```
   EFI_STATUS
   EFIAPI
   PostCodeStatusCodeReportWorker (
@@ -70,23 +75,28 @@ This library provide a function to get post code from status code.
     IN EFI_GUID                       *CallerId,
     IN EFI_STATUS_CODE_DATA           *Data OPTIONAL
     )
+```
 
 * In PostCodeMapLib:
+```
   UINT32
   EFIAPI
   GetPostCodeFromStatusCode (
     IN EFI_STATUS_CODE_TYPE           CodeType,
     IN EFI_STATUS_CODE_VALUE          Value
   )
+```
 
 ## Configuration
-* Link the library to StatusCodeHandler.efi.
+* Link the library to StatusCodeHandler.efi to add this status code handler.
+```
   Example:
     MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf {
       <LibraryClasses>
         NULL|PostCodeDebugFeaturePkg/Library/PostCodeStatusCodeHandlerLib/RuntimeDxePostCodeStatusCodeHandlerLib.inf
     }
-  Refer to PostCodeDebugFeature.dsc for other example.
+```
+  Refer to PostCodeDebugFeature.dsc for another example.
 * Config PCD gPostCodeDebugFeaturePkgTokenSpaceGuid.PcdStatusCodeUsePostCode.
   In platform .dsc file, need to config the type of gPostCodeDebugFeaturePkgTokenSpaceGuid.PcdStatusCodeUsePostCode.
   Use PcdsFixedAtBuild to save binary size, and use PcdsDynamic if want to enable/disable in runtime.
@@ -98,20 +108,23 @@ This library provide a function to get post code from status code.
 Status Code (ReportStatusCode) -> Post Code (GetPostCodeFromStatusCode).
 
 ## Control Flows
-ReportStatusCode() -> PostCodeStatusCodeReportWorker() -> GetPostCodeFromStatusCode() -> PostCode()
+ReportStatusCode () -> PostCodeStatusCodeReportWorker () -> GetPostCodeFromStatusCode () -> PostCode ()
 
 ## Build Flows
-There is not special build flows.
+There are not special build flows.
 
 ## Test Point Results
-Verify the post code shown is correct.
+There are no test points defined.
 
 ## Functional Exit Criteria
 N/A
 
 ## Feature Enabling Checklist
-* Set the PCD gPostCodeDebugFeaturePkgTokenSpaceGuid.PcdStatusCodeUsePostCode to TRUE.
-* The post code can be shown.
+* Set the PCD gPostCodeDebugFeaturePkgTokenSpaceGuid.PcdPostCodeDebugFeatureEnable to TRUE.
+* Select the PCD type desired and set the PCD gPostCodeDebugFeaturePkgTokenSpaceGuid.PcdStatusCodeUsePostCode to TRUE.
+* Implemented a platform specific PostCodeMapLib if needed.
+* Verify the post code can be shown correctly.
 
 ## Common Optimizations
-* Implemented platform's special PostCodeMapLib if needed.
+* Set gPostCodeDebugFeaturePkgTokenSpaceGuid.PcdStatusCodeUsePostCode based on a larger, board specific, size
+  optimization or performance optimization setting.
-- 
2.27.0.windows.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [edk2-devel][edk2-platforms][PATCH V2 10/14] AcpiDebugFeaturePkg: Use MinPlatformPkg build include files
  2022-01-20  1:13 [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency Oram, Isaac W
                   ` (8 preceding siblings ...)
  2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 09/14] PostCodeDebugFeaturePkg: Complete as an advanced feature Oram, Isaac W
@ 2022-01-20  1:14 ` Oram, Isaac W
  2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 11/14] Usb3DebugFeaturePkg: Align with feature design guidelines Oram, Isaac W
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Oram, Isaac W @ 2022-01-20  1:14 UTC (permalink / raw)
  To: devel; +Cc: Eric Dong, Liming Gao

Use the MinPlatformPkg common core build files to build libraries
needed by this feature.

Cc: Eric Dong <eric.dong@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>

Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
---
 Features/Intel/Debugging/AcpiDebugFeaturePkg/AcpiDebugFeaturePkg.dsc      | 21 ++++++
 Features/Intel/Debugging/AcpiDebugFeaturePkg/Include/AcpiDebugFeature.dsc | 70 --------------------
 Features/Intel/Debugging/AcpiDebugFeaturePkg/Include/PostMemory.fdf       |  4 +-
 3 files changed, 23 insertions(+), 72 deletions(-)

diff --git a/Features/Intel/Debugging/AcpiDebugFeaturePkg/AcpiDebugFeaturePkg.dsc b/Features/Intel/Debugging/AcpiDebugFeaturePkg/AcpiDebugFeaturePkg.dsc
index 62cc559d8f..3b76d39ea8 100644
--- a/Features/Intel/Debugging/AcpiDebugFeaturePkg/AcpiDebugFeaturePkg.dsc
+++ b/Features/Intel/Debugging/AcpiDebugFeaturePkg/AcpiDebugFeaturePkg.dsc
@@ -24,6 +24,27 @@
   PEI_ARCH                       = IA32
   DXE_ARCH                       = X64
 
+[Packages]
+  MinPlatformPkg/MinPlatformPkg.dec
+
+#
+# Since there are no 32b libraries or components in this package, these PCD are specified for 64b only
+#
+[PcdsFeatureFlag.X64]
+  #
+  # PCD needed for MinPlatform build includes
+  #
+  gMinPlatformPkgTokenSpaceGuid.PcdSmiHandlerProfileEnable                |FALSE
+  gMinPlatformPkgTokenSpaceGuid.PcdUefiSecureBootEnable                   |FALSE
+  gMinPlatformPkgTokenSpaceGuid.PcdPerformanceEnable                      |FALSE
+
+#
+# Include common libraries
+#
+!include MinPlatformPkg/Include/Dsc/CoreCommonLib.dsc
+!include MinPlatformPkg/Include/Dsc/CorePeiLib.dsc
+!include MinPlatformPkg/Include/Dsc/CoreDxeLib.dsc
+
 #
 # This package always builds the feature.
 #
diff --git a/Features/Intel/Debugging/AcpiDebugFeaturePkg/Include/AcpiDebugFeature.dsc b/Features/Intel/Debugging/AcpiDebugFeaturePkg/Include/AcpiDebugFeature.dsc
index b142978be1..f5b8bacee0 100644
--- a/Features/Intel/Debugging/AcpiDebugFeaturePkg/Include/AcpiDebugFeature.dsc
+++ b/Features/Intel/Debugging/AcpiDebugFeaturePkg/Include/AcpiDebugFeature.dsc
@@ -25,45 +25,6 @@
   !error "DXE_ARCH must be specified to build this feature!"
 !endif
 
-################################################################################
-#
-# Library Class section - list of all Library Classes needed by this feature.
-#
-################################################################################
-
-!include MdePkg/MdeLibs.dsc.inc
-
-[LibraryClasses]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
-  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
-  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
-  DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
-  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
-  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
-  PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
-  UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
-  UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
-  UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
-  UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
-
-[LibraryClasses.common.DXE_DRIVER,LibraryClasses.common.DXE_RUNTIME_DRIVER]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
-  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
-
-[LibraryClasses.common.DXE_SMM_DRIVER]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
-  MemoryAllocationLib|MdePkg/Library/SmmMemoryAllocationLib/SmmMemoryAllocationLib.inf
-  SmmServicesTableLib|MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.inf
-
 ################################################################################
 #
 # Component section - list of all components that need built for this feature.
@@ -78,22 +39,6 @@
 #       generated for it, but the binary will not be put into any firmware volume.
 #
 ################################################################################
-#
-# Feature PEI Components
-#
-
-# @todo: Change below line to [Components.$(PEI_ARCH)] after https://bugzilla.tianocore.org/show_bug.cgi?id=2308
-#        is completed.
-[Components.IA32]
-  #####################################
-  # ACPI Debug Feature Package
-  #####################################
-
-  # Add library instances here that are not included in package components and should be tested
-  # in the package build.
-
-  # Add components here that should be included in the package build.
-
 #
 # Feature DXE Components
 #
@@ -111,18 +56,3 @@
   # Add components here that should be included in the package build.
   AcpiDebugFeaturePkg/AcpiDebugDxeSmm/AcpiDebugDxe.inf
   AcpiDebugFeaturePkg/AcpiDebugDxeSmm/AcpiDebugSmm.inf
-
-###################################################################################################
-#
-# BuildOptions Section - Define the module specific tool chain flags that should be used as
-#                        the default flags for a module. These flags are appended to any
-#                        standard flags that are defined by the build process. They can be
-#                        applied for any modules or only those modules with the specific
-#                        module style (EDK or EDKII) specified in [Components] section.
-#
-#                        For advanced features, it is recommended to enable [BuildOptions] in
-#                        the applicable INF file so it does not affect the whole board package
-#                        build when this DSC file is active.
-#
-###################################################################################################
-[BuildOptions]
diff --git a/Features/Intel/Debugging/AcpiDebugFeaturePkg/Include/PostMemory.fdf b/Features/Intel/Debugging/AcpiDebugFeaturePkg/Include/PostMemory.fdf
index 84560dae50..855826292c 100644
--- a/Features/Intel/Debugging/AcpiDebugFeaturePkg/Include/PostMemory.fdf
+++ b/Features/Intel/Debugging/AcpiDebugFeaturePkg/Include/PostMemory.fdf
@@ -7,5 +7,5 @@
 #
 ##
 
-  INF RuleOverride = DRIVER_ACPITABLE AcpiDebugFeaturePkg/AcpiDebugDxeSmm/AcpiDebugDxe.inf
-  INF RuleOverride = DRIVER_ACPITABLE AcpiDebugFeaturePkg/AcpiDebugDxeSmm/AcpiDebugSmm.inf
+INF RuleOverride = DRIVER_ACPITABLE AcpiDebugFeaturePkg/AcpiDebugDxeSmm/AcpiDebugDxe.inf
+INF RuleOverride = DRIVER_ACPITABLE AcpiDebugFeaturePkg/AcpiDebugDxeSmm/AcpiDebugSmm.inf
-- 
2.27.0.windows.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [edk2-devel][edk2-platforms][PATCH V2 11/14] Usb3DebugFeaturePkg: Align with feature design guidelines
  2022-01-20  1:13 [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency Oram, Isaac W
                   ` (9 preceding siblings ...)
  2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 10/14] AcpiDebugFeaturePkg: Use MinPlatformPkg build include files Oram, Isaac W
@ 2022-01-20  1:14 ` Oram, Isaac W
  2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 12/14] AdvancedFeaturePkg: Add missing features Oram, Isaac W
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Oram, Isaac W @ 2022-01-20  1:14 UTC (permalink / raw)
  To: devel; +Cc: Eric Dong, Liming Gao

Remove build of common libraries.  Boards will already have those.

Modified Usb3DebugFeature.dsc to treat libraries like libraries.
Usb3DebugFeaturePkg.dsc uses the component trick for standalone build
testing of the libraries.

Added a PCD to allow board to select between NULL, regular, and IO MMU
library instances.  Prior implementation of Usb3DebugFeature.dsc was not
useful as an includable file because it didn't specify LibaryClass
instance to use.

Removed unused CMOS PCD.

Updated some of the readme sections.

Cc: Eric Dong <eric.dong@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>

Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
---
 Features/Intel/Debugging/Usb3DebugFeaturePkg/Include/Usb3DebugFeature.dsc | 131 ++++----------------
 Features/Intel/Debugging/Usb3DebugFeaturePkg/Readme.md                    |  50 +++++---
 Features/Intel/Debugging/Usb3DebugFeaturePkg/Usb3DebugFeaturePkg.dec      |  14 +--
 Features/Intel/Debugging/Usb3DebugFeaturePkg/Usb3DebugFeaturePkg.dsc      |  18 +++
 4 files changed, 81 insertions(+), 132 deletions(-)

diff --git a/Features/Intel/Debugging/Usb3DebugFeaturePkg/Include/Usb3DebugFeature.dsc b/Features/Intel/Debugging/Usb3DebugFeaturePkg/Include/Usb3DebugFeature.dsc
index 1e3aaecd5d..2dc48d637b 100644
--- a/Features/Intel/Debugging/Usb3DebugFeaturePkg/Include/Usb3DebugFeature.dsc
+++ b/Features/Intel/Debugging/Usb3DebugFeaturePkg/Include/Usb3DebugFeature.dsc
@@ -31,122 +31,35 @@
 #
 ################################################################################
 
-!include MdePkg/MdeLibs.dsc.inc
+[LibraryClasses.Common]
+  Usb3DebugPortParamLib|Usb3DebugFeaturePkg/Library/Usb3DebugPortParamLibPcd/Usb3DebugPortParamLibPcd.inf
 
-[LibraryClasses]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
-  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
-  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
-  DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
-  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
-  IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
-  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
-  PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
-  PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
-  TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
-  UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
-  UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
-  UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
-  UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
-
-[LibraryClasses.common.PEIM]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
-  MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
-  PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf
-
-[LibraryClasses.common.DXE_DRIVER]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
-  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
-
-[LibraryClasses.common.DXE_RUNTIME_DRIVER]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
-  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
-  UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
-
-[LibraryClasses.common.UEFI_DRIVER]
-  #######################################
-  # Edk2 Packages
-  #######################################
-  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
-  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
-
-################################################################################
-#
-# Component section - list of all components that need built for this feature.
-#
-# Note: The EDK II DSC file is not used to specify how compiled binary images get placed
-#       into firmware volume images. This section is just a list of modules to compile from
-#       source into UEFI-compliant binaries.
-#       It is the FDF file that contains information on combining binary files into firmware
-#       volume images, whose concept is beyond UEFI and is described in PI specification.
-#       There may also be modules listed in this section that are not required in the FDF file,
-#       When a module listed here is excluded from FDF file, then UEFI-compliant binary will be
-#       generated for it, but the binary will not be put into any firmware volume.
-#
-################################################################################
 #
-# Feature PEI Components
+# If NULL Usb3DebugPortLib library instance desired
 #
-
-# @todo: Change below line to [Components.$(PEI_ARCH)] after https://bugzilla.tianocore.org/show_bug.cgi?id=2308
-#        is completed.
-[Components.IA32]
-  #####################################
-  # USB3 Debug Feature Package
-  #####################################
-
-  # Add library instances here that are not included in package components and should be tested
-  # in the package build.
-  Usb3DebugFeaturePkg/Library/Usb3DebugPortLib/Usb3DebugPortLibNull.inf
-  Usb3DebugFeaturePkg/Library/Usb3DebugPortParamLibPcd/Usb3DebugPortParamLibPcd.inf
-  Usb3DebugFeaturePkg/Library/Usb3DebugPortLib/Usb3DebugPortLibPei.inf
-  Usb3DebugFeaturePkg/Library/Usb3DebugPortLib/Usb3DebugPortLibPeiIoMmu.inf
-
-  # Add components here that should be included in the package build.
+!if gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugPortLibInstance == 0
+  [LibraryClasses.Common]
+    Usb3DebugPortLib|Usb3DebugFeaturePkg/Library/Usb3DebugPortLib/Usb3DebugPortLibNull.inf
+!endif
 
 #
-# Feature DXE Components
+# If regular Usb3DebugPortLib library instance desired
 #
+!if gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugPortLibInstance == 1
+  [LibraryClasses.PEI_CORE, LibraryClasses.PEIM]
+    Usb3DebugPortLib|Usb3DebugFeaturePkg/Library/Usb3DebugPortLib/Usb3DebugPortLibPei.inf
 
-# @todo: Change below line to [Components.$(DXE_ARCH)] after https://bugzilla.tianocore.org/show_bug.cgi?id=2308
-#        is completed.
-[Components.X64]
-  #####################################
-  # USB3 Debug Feature Package
-  #####################################
-
-  # Add library instances here that are not included in package components and should be tested
-  # in the package build.
-  Usb3DebugFeaturePkg/Library/Usb3DebugPortLib/Usb3DebugPortLibNull.inf
-  Usb3DebugFeaturePkg/Library/Usb3DebugPortParamLibPcd/Usb3DebugPortParamLibPcd.inf
-  Usb3DebugFeaturePkg/Library/Usb3DebugPortLib/Usb3DebugPortLibDxe.inf
-  Usb3DebugFeaturePkg/Library/Usb3DebugPortLib/Usb3DebugPortLibDxeIoMmu.inf
+  [LibraryClasses.DXE_CORE, LibraryClasses.DXE_DRIVER, LibraryClasses.DXE_RUNTIME_DRIVER, LibraryClasses.SMM_CORE, LibraryClasses.DXE_SMM_DRIVER, LibraryClasses.UEFI_DRIVER]
+    Usb3DebugPortLib|Usb3DebugFeaturePkg/Library/Usb3DebugPortLib/Usb3DebugPortLibDxe.inf
+!endif
 
-  # Add components here that should be included in the package build.
-
-###################################################################################################
-#
-# BuildOptions Section - Define the module specific tool chain flags that should be used as
-#                        the default flags for a module. These flags are appended to any
-#                        standard flags that are defined by the build process. They can be
-#                        applied for any modules or only those modules with the specific
-#                        module style (EDK or EDKII) specified in [Components] section.
 #
-#                        For advanced features, it is recommended to enable [BuildOptions] in
-#                        the applicable INF file so it does not affect the whole board package
-#                        build when this DSC file is active.
+# If regular Usb3DebugPortLib library instance desired
 #
-###################################################################################################
-[BuildOptions]
+!if gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugPortLibInstance == 2
+  [LibraryClasses.PEI_CORE, LibraryClasses.PEIM]
+    Usb3DebugPortLib|Usb3DebugFeaturePkg/Library/Usb3DebugPortLib/Usb3DebugPortLibPeiIoMmu.inf
+
+  [LibraryClasses.DXE_CORE, LibraryClasses.DXE_DRIVER, LibraryClasses.DXE_RUNTIME_DRIVER, LibraryClasses.SMM_CORE, LibraryClasses.DXE_SMM_DRIVER, LibraryClasses.UEFI_DRIVER]
+    Usb3DebugPortLib|Usb3DebugFeaturePkg/Library/Usb3DebugPortLib/Usb3DebugPortLibDxeIoMmu.inf
+!endif
diff --git a/Features/Intel/Debugging/Usb3DebugFeaturePkg/Readme.md b/Features/Intel/Debugging/Usb3DebugFeaturePkg/Readme.md
index dc92f108ff..c8afcf9fd2 100644
--- a/Features/Intel/Debugging/Usb3DebugFeaturePkg/Readme.md
+++ b/Features/Intel/Debugging/Usb3DebugFeaturePkg/Readme.md
@@ -29,12 +29,15 @@ The description should not be constrained to implementation details but provide
 feature is supposed to work.
 
 ## Firmware Volumes
-*_TODO_*
-A bulleted list of the firmware volumes that feature module(s) are placed in.
+Not applicable, the feature only produces libraries.
 
 ## Modules
-*_TODO_*
-A bulleted list of the modules that make up the feature.
+* Usb3DebugPortLibDxe
+* Usb3DebugPortLibDxeIoMmu
+* Usb3DebugPortLibNull
+* Usb3DebugPortLibPei
+* Usb3DebugPortLibPeiIoMmu
+* Usb3DebugPortParamLibPcd
 
 ## <Module Name>
 *_TODO_*
@@ -76,11 +79,7 @@ This is particularly useful for features that use custom build tools or require
 standard flow in the feature package template is used, this section may be empty.
 
 ## Test Point Results
-*_TODO_*
-The test(s) that can verify porting is complete for the feature.
-
-Each feature must describe at least one test point to verify the feature is successful. If the test point is not
-implemented, this should be stated.
+No test points implemented
 
 ## Functional Exit Criteria
 *_TODO_*
@@ -90,8 +89,28 @@ This section should provide an ordered list of criteria that a board integrator
 functional on their board.
 
 ## Feature Enabling Checklist
-*_TODO_*
-An ordered list of required activities to achieve desired functionality for the feature.
+* In the board DSC file, enable the feature
+```
+[PcdsFeatureFlag]
+  gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugFeatureEnable|TRUE
+```
+* In the board DSC file, select the implementation desired
+```
+[PcdsFixedAtBuild]
+  # 0 = Non-functional instance
+  # 1 = Regular instance
+  # 2 = IO MMU instance
+  gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugPortLibInstance|1
+```
+* In the board DSC file, configure the PCI device information
+```
+[PcdsFixedAtBuild]
+  gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsbSerialXhciBus|0x00
+  gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsbSerialXhciDev|0x14
+  gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsbSerialXhciFunc|0x00
+  gUsb3DebugFeaturePkgTokenSpaceGuid.PcdXhciDefaultBaseAddress|0xFEA10000
+```
+
 
 ## Performance Impact
 A general expectation for the impact on overall boot performance due to using this feature.
@@ -102,7 +121,8 @@ This section is expected to provide guidance on:
 * How to manage performance impact of the feature
 
 ## Common Optimizations
-*_TODO_*
-Common size or performance tuning options for this feature.
-
-This section is recommended but not required. If not used, the contents should be left empty.
+* In the board DSC file, tune the timeout value
+```
+[PcdsFixedAtBuild]
+  gUsb3DebugFeaturePkgTokenSpaceGuid.PcdXhciHostWaitTimeout|2000000
+```
diff --git a/Features/Intel/Debugging/Usb3DebugFeaturePkg/Usb3DebugFeaturePkg.dec b/Features/Intel/Debugging/Usb3DebugFeaturePkg/Usb3DebugFeaturePkg.dec
index 2b19e48491..353001b0f8 100644
--- a/Features/Intel/Debugging/Usb3DebugFeaturePkg/Usb3DebugFeaturePkg.dec
+++ b/Features/Intel/Debugging/Usb3DebugFeaturePkg/Usb3DebugFeaturePkg.dec
@@ -36,6 +36,12 @@
   gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugFeatureEnable|FALSE|BOOLEAN|0xA0000001
 
 [PcdsFixedAtBuild]
+  ## This PCD allows the board to select the Usb3DebugPortLib instance desired
+  # 0 = NULL instance
+  # 1 = Regular instance
+  # 2 = IO MMU instance
+  gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugPortLibInstance|0|UINT8|0xF0000009
+
   ## These PCD specify XHCI controller Bus/Device/Function, which are used to enable
   #  XHCI debug device.
   gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsbSerialXhciBus|0x00|UINT8|0xF0000001
@@ -47,11 +53,3 @@
   #  Default timeout value is 2000000 microseconds.
   #  If user does not want system stall for long time, it can be set to small value.
   gUsb3DebugFeaturePkgTokenSpaceGuid.PcdXhciHostWaitTimeout|2000000|UINT64|0xF0000005
-
-  ## This PCD sepcifies the start index in CMOS, it will occupy 1 bytes space.
-  gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugPortBusIndex|0x59|UINT8|0xF0000006
-  ## This PCD sepcifies the start index in CMOS, it will occupy 1 bytes space.
-  gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugPortDeviceIndex|0x5A|UINT8|0xF0000007
-  ## This PCD sepcifies the start index in CMOS, it will occupy 1 bytes space.
-  gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugPortFunctionIndex|0x5B|UINT8|0xF0000008
-
diff --git a/Features/Intel/Debugging/Usb3DebugFeaturePkg/Usb3DebugFeaturePkg.dsc b/Features/Intel/Debugging/Usb3DebugFeaturePkg/Usb3DebugFeaturePkg.dsc
index 02627d2ed4..6965d26721 100644
--- a/Features/Intel/Debugging/Usb3DebugFeaturePkg/Usb3DebugFeaturePkg.dsc
+++ b/Features/Intel/Debugging/Usb3DebugFeaturePkg/Usb3DebugFeaturePkg.dsc
@@ -24,7 +24,25 @@
   PEI_ARCH                       = IA32
   DXE_ARCH                       = X64
 
+[PcdsFixedAtBuild]
+  gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugPortLibInstance|0
+
 #
 # This package always builds the feature.
 #
 !include Include/Usb3DebugFeature.dsc
+
+#
+# This package currently only contains library classes.  To force them to be built since there is no code to use them
+# we just tell the build that they are components and the build will compile the libraries
+#
+
+[Components]
+  Usb3DebugFeaturePkg/Library/Usb3DebugPortLib/Usb3DebugPortLibNull.inf
+  Usb3DebugFeaturePkg/Library/Usb3DebugPortParamLibPcd/Usb3DebugPortParamLibPcd.inf
+
+  Usb3DebugFeaturePkg/Library/Usb3DebugPortLib/Usb3DebugPortLibPei.inf
+  Usb3DebugFeaturePkg/Library/Usb3DebugPortLib/Usb3DebugPortLibPeiIoMmu.inf
+
+  Usb3DebugFeaturePkg/Library/Usb3DebugPortLib/Usb3DebugPortLibDxe.inf
+  Usb3DebugFeaturePkg/Library/Usb3DebugPortLib/Usb3DebugPortLibDxeIoMmu.inf
-- 
2.27.0.windows.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [edk2-devel][edk2-platforms][PATCH V2 12/14] AdvancedFeaturePkg: Add missing features
  2022-01-20  1:13 [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency Oram, Isaac W
                   ` (10 preceding siblings ...)
  2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 11/14] Usb3DebugFeaturePkg: Align with feature design guidelines Oram, Isaac W
@ 2022-01-20  1:14 ` Oram, Isaac W
  2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 13/14] AdvancedFeaturePkg/Build: Add FDF to create FV for all features Oram, Isaac W
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Oram, Isaac W @ 2022-01-20  1:14 UTC (permalink / raw)
  To: devel; +Cc: Sai Chaganty, Liming Gao

The AdvancedFeaturePkg is supposed to include all features.
Add Beep Debug feature to include DSC and FDF.

Order features based on their domains.

Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>

Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
---
 Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc          | 66 ++++++++++++++++----
 Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeatures.dsc    | 36 ++++++++---
 Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc | 64 +++++++++++++++----
 Features/Intel/AdvancedFeaturePkg/Include/PostMemory.fdf          | 36 ++++++++---
 Features/Intel/AdvancedFeaturePkg/Include/PreMemory.fdf           | 36 ++++++++---
 Features/Intel/Readme.md                                          | 49 ++++++++++-----
 6 files changed, 219 insertions(+), 68 deletions(-)

diff --git a/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc b/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc
index 0c7a29cc75..02636da916 100644
--- a/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc
+++ b/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc
@@ -36,7 +36,6 @@
 
 !include AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
 
-
 ################################################################################
 #
 # Advanced Feature Enable section - all advanced features are enabling for the
@@ -44,26 +43,71 @@
 #
 ################################################################################
 [PcdsFeatureFlag]
-  gAcpiDebugFeaturePkgTokenSpaceGuid.PcdAcpiDebugFeatureEnable            |TRUE
-  gIpmiFeaturePkgTokenSpaceGuid.PcdIpmiFeatureEnable                      |TRUE
-  gNetworkFeaturePkgTokenSpaceGuid.PcdNetworkFeatureEnable                |TRUE
-  gS3FeaturePkgTokenSpaceGuid.PcdS3FeatureEnable                          |TRUE
-  gSmbiosFeaturePkgTokenSpaceGuid.PcdSmbiosFeatureEnable                  |TRUE
-  gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugFeatureEnable            |TRUE
-  gUserAuthFeaturePkgTokenSpaceGuid.PcdUserAuthenticationFeatureEnable    |TRUE
-  gLogoFeaturePkgTokenSpaceGuid.PcdLogoFeatureEnable                      |TRUE
-  gLogoFeaturePkgTokenSpaceGuid.PcdJpgEnable                              |FALSE
+  #
+  # Debugging features
+  #
+  gAcpiDebugFeaturePkgTokenSpaceGuid.PcdAcpiDebugFeatureEnable              |TRUE
+  gBeepDebugFeaturePkgTokenSpaceGuid.PcdBeepDebugFeatureEnable              |TRUE
+  gPostCodeDebugFeaturePkgTokenSpaceGuid.PcdPostCodeDebugFeatureEnable      |TRUE
+  gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugFeatureEnable              |TRUE
+
+  #
+  # Network features
+  #
+  gNetworkFeaturePkgTokenSpaceGuid.PcdNetworkFeatureEnable                  |TRUE
+
+  #
+  # OutOfBandManagement features
+  #
+  gIpmiFeaturePkgTokenSpaceGuid.PcdIpmiFeatureEnable                        |TRUE
+  gSpcrFeaturePkgTokenSpaceGuid.PcdSpcrFeatureEnable                        |TRUE
+
+  #
+  # PowerManagement features
+  #
+  gS3FeaturePkgTokenSpaceGuid.PcdS3FeatureEnable                            |TRUE
+
+  #
+  # SystemInformation features
+  #
+  gSmbiosFeaturePkgTokenSpaceGuid.PcdSmbiosFeatureEnable                    |TRUE
+
+  #
+  # UserInterface features
+  #
+  gLogoFeaturePkgTokenSpaceGuid.PcdLogoFeatureEnable                        |TRUE
+  gUserAuthFeaturePkgTokenSpaceGuid.PcdUserAuthenticationFeatureEnable      |TRUE
+  gVirtualKeyboardFeaturePkgTokenSpaceGuid.PcdVirtualKeyboardFeatureEnable  |TRUE
+
+#
+# PCD that are required to be set by the build target should be configured here for test purposes
+# These settings are only for the purposes of buildings, boards should follow instructions in Readme files.
+#
+
+[PcdsFixedAtBuild]
+  gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugPortLibInstance|1
+
+[PcdsFeatureFlag]
+  #
+  # MinPlatform common include currently required PCD
+  #
   gMinPlatformPkgTokenSpaceGuid.PcdSmiHandlerProfileEnable                |FALSE
   gMinPlatformPkgTokenSpaceGuid.PcdUefiSecureBootEnable                   |FALSE
   gMinPlatformPkgTokenSpaceGuid.PcdPerformanceEnable                      |FALSE
 
 #
-# Include common library
+# Include common libraries
 #
 !include MinPlatformPkg/Include/Dsc/CoreCommonLib.dsc
 !include MinPlatformPkg/Include/Dsc/CorePeiLib.dsc
 !include MinPlatformPkg/Include/Dsc/CoreDxeLib.dsc
 
+#
+# Libraries required to be specified by the build target
+#
+[LibraryClasses.Common]
+  PlatformHookLib|MdeModulePkg/Library/BasePlatformHookLibNull/BasePlatformHookLibNull.inf # Required by BeepDebugFeature
+
 #
 # This package builds all advanced features.
 #
diff --git a/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeatures.dsc b/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeatures.dsc
index 874b8ce7db..2b36938df6 100644
--- a/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeatures.dsc
+++ b/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeatures.dsc
@@ -11,51 +11,67 @@
 ##
 
 #
-# Debug Advanced Features
+# Debugging features
 #
 !if gAcpiDebugFeaturePkgTokenSpaceGuid.PcdAcpiDebugFeatureEnable == TRUE
   !include AcpiDebugFeaturePkg/Include/AcpiDebugFeature.dsc
 !endif
 
+!if gBeepDebugFeaturePkgTokenSpaceGuid.PcdBeepDebugFeatureEnable == TRUE
+  !include BeepDebugFeaturePkg/Include/BeepDebugFeature.dsc
+!endif
+
+!if gPostCodeDebugFeaturePkgTokenSpaceGuid.PcdPostCodeDebugFeatureEnable == TRUE
+  !include PostCodeDebugFeaturePkg/Include/PostCodeDebugFeature.dsc
+!endif
+
 !if gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugFeatureEnable == TRUE
   !include Usb3DebugFeaturePkg/Include/Usb3DebugFeature.dsc
 !endif
 
 #
-# Network Advanced Features
+# Network features
 #
 !if gNetworkFeaturePkgTokenSpaceGuid.PcdNetworkFeatureEnable == TRUE
   !include NetworkFeaturePkg/Include/NetworkFeature.dsc
 !endif
 
 #
-# Out-of-Band Management Advanced Features
+# OutOfBandManagement features
 #
 !if gIpmiFeaturePkgTokenSpaceGuid.PcdIpmiFeatureEnable == TRUE
   !include IpmiFeaturePkg/Include/IpmiFeature.dsc
 !endif
 
+!if gSpcrFeaturePkgTokenSpaceGuid.PcdSpcrFeatureEnable == TRUE
+  !include SpcrFeaturePkg/Include/SpcrFeature.dsc
+!endif
+
 #
-# Power Management Advanced Features
+# PowerManagement features
 #
 !if gS3FeaturePkgTokenSpaceGuid.PcdS3FeatureEnable == TRUE
   !include S3FeaturePkg/Include/S3Feature.dsc
 !endif
 
 #
-# System Information Advanced Features
+# SystemInformation features
 #
 !if gSmbiosFeaturePkgTokenSpaceGuid.PcdSmbiosFeatureEnable == TRUE
   !include SmbiosFeaturePkg/Include/SmbiosFeature.dsc
 !endif
 
 #
-# User Interface Advanced Features
+# UserInterface features
 #
-!if gUserAuthFeaturePkgTokenSpaceGuid.PcdUserAuthenticationFeatureEnable == TRUE
-  !include UserAuthFeaturePkg/Include/UserAuthFeature.dsc
-!endif
-
 !if gLogoFeaturePkgTokenSpaceGuid.PcdLogoFeatureEnable == TRUE
   !include LogoFeaturePkg/Include/LogoFeature.dsc
 !endif
+
+!if gUserAuthFeaturePkgTokenSpaceGuid.PcdUserAuthenticationFeatureEnable == TRUE
+  !include UserAuthFeaturePkg/Include/UserAuthFeature.dsc
+!endif
+
+!if gVirtualKeyboardFeaturePkgTokenSpaceGuid.PcdVirtualKeyboardFeatureEnable == TRUE
+  !include VirtualKeyboardFeaturePkg/Include/VirtualKeyboardFeature.dsc
+!endif
diff --git a/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc b/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
index ad248de800..e214175eda 100644
--- a/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
+++ b/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
@@ -16,28 +16,70 @@
 #
 [Packages]
   MdePkg/MdePkg.dec
+
+  #
+  # Debugging features
+  #
   AcpiDebugFeaturePkg/AcpiDebugFeaturePkg.dec
+  BeepDebugFeaturePkg/BeepDebugFeaturePkg.dec
+  PostCodeDebugFeaturePkg/PostCodeDebugFeaturePkg.dec
   Usb3DebugFeaturePkg/Usb3DebugFeaturePkg.dec
+
+  #
+  # Networking features
+  #
   NetworkFeaturePkg/NetworkFeaturePkg.dec
+
+  #
+  # OutOfBandManagement features
+  #
   IpmiFeaturePkg/IpmiFeaturePkg.dec
+  SpcrFeaturePkg/SpcrFeaturePkg.dec
+
+  #
+  # PowerManagement features
+  #
   S3FeaturePkg/S3FeaturePkg.dec
+
+  #
+  # SystemInformation features
+  #
   SmbiosFeaturePkg/SmbiosFeaturePkg.dec
-  UserAuthFeaturePkg/UserAuthFeaturePkg.dec
+
+  #
+  # UserInterface features
+  #
   LogoFeaturePkg/LogoFeaturePkg.dec
-  BeepDebugFeaturePkg/BeepDebugFeaturePkg.dec
-  PostCodeDebugFeaturePkg/PostCodeDebugFeaturePkg.dec
+  UserAuthFeaturePkg/UserAuthFeaturePkg.dec
+  VirtualKeyboardFeaturePkg/VirtualKeyboardFeaturePkg.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
+  gAcpiDebugFeaturePkgTokenSpaceGuid.PcdAcpiDebugFeatureEnable              |FALSE
+  gBeepDebugFeaturePkgTokenSpaceGuid.PcdBeepDebugFeatureEnable              |FALSE
+  gPostCodeDebugFeaturePkgTokenSpaceGuid.PcdPostCodeDebugFeatureEnable      |FALSE
+  gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugFeatureEnable              |FALSE
+
+  gNetworkFeaturePkgTokenSpaceGuid.PcdNetworkFeatureEnable                  |FALSE
+
+  gIpmiFeaturePkgTokenSpaceGuid.PcdIpmiFeatureEnable                        |FALSE
+  gSpcrFeaturePkgTokenSpaceGuid.PcdSpcrFeatureEnable                        |FALSE
+
+  gS3FeaturePkgTokenSpaceGuid.PcdS3FeatureEnable                            |FALSE
+
+  gSmbiosFeaturePkgTokenSpaceGuid.PcdSmbiosFeatureEnable                    |FALSE
+
+  gLogoFeaturePkgTokenSpaceGuid.PcdLogoFeatureEnable                        |FALSE
+  gUserAuthFeaturePkgTokenSpaceGuid.PcdUserAuthenticationFeatureEnable      |FALSE
+  gVirtualKeyboardFeaturePkgTokenSpaceGuid.PcdVirtualKeyboardFeatureEnable  |FALSE
+
+#
+# There seems to be some build parsing odd behavior that requires this PCD to be specified even though
+# the *.fdf that consumes it is dependent on the feature flag.
+# This section is to ensure that boards have these PCD instantiated.
+#
+[PcdsFeatureFlag]
   gLogoFeaturePkgTokenSpaceGuid.PcdJpgEnable                              |FALSE
diff --git a/Features/Intel/AdvancedFeaturePkg/Include/PostMemory.fdf b/Features/Intel/AdvancedFeaturePkg/Include/PostMemory.fdf
index e710fe7f01..99089f9a7b 100644
--- a/Features/Intel/AdvancedFeaturePkg/Include/PostMemory.fdf
+++ b/Features/Intel/AdvancedFeaturePkg/Include/PostMemory.fdf
@@ -12,51 +12,67 @@
 ##
 
 #
-# Debug Advanced Features
+# Debugging features
 #
 !if gAcpiDebugFeaturePkgTokenSpaceGuid.PcdAcpiDebugFeatureEnable == TRUE
   !include AcpiDebugFeaturePkg/Include/PostMemory.fdf
 !endif
 
+!if gBeepDebugFeaturePkgTokenSpaceGuid.PcdBeepDebugFeatureEnable == TRUE
+  !include BeepDebugFeaturePkg/Include/PostMemory.fdf
+!endif
+
+!if gPostCodeDebugFeaturePkgTokenSpaceGuid.PcdPostCodeDebugFeatureEnable == TRUE
+  !include PostCodeDebugFeaturePkg/Include/PostMemory.fdf
+!endif
+
 !if gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugFeatureEnable == TRUE
   !include Usb3DebugFeaturePkg/Include/PostMemory.fdf
 !endif
 
 #
-# Network Advanced Features
+# Network features
 #
 !if gNetworkFeaturePkgTokenSpaceGuid.PcdNetworkFeatureEnable == TRUE
   !include NetworkFeaturePkg/Include/PostMemory.fdf
 !endif
 
 #
-# Out-of-Band Management Advanced Features
+# OutOfBandManagement features
 #
 !if gIpmiFeaturePkgTokenSpaceGuid.PcdIpmiFeatureEnable == TRUE
   !include IpmiFeaturePkg/Include/PostMemory.fdf
 !endif
 
+!if gSpcrFeaturePkgTokenSpaceGuid.PcdSpcrFeatureEnable == TRUE
+  !include SpcrFeaturePkg/Include/PostMemory.fdf
+!endif
+
 #
-# Power Management Advanced Features
+# PowerManagement features
 #
 !if gS3FeaturePkgTokenSpaceGuid.PcdS3FeatureEnable == TRUE
   !include S3FeaturePkg/Include/PostMemory.fdf
 !endif
 
 #
-# System Information Advanced Features
+# SystemInformation features
 #
 !if gSmbiosFeaturePkgTokenSpaceGuid.PcdSmbiosFeatureEnable == TRUE
   !include SmbiosFeaturePkg/Include/PostMemory.fdf
 !endif
 
 #
-# User Interface Advanced Features
+# UserInterface features
 #
-!if gUserAuthFeaturePkgTokenSpaceGuid.PcdUserAuthenticationFeatureEnable == TRUE
-  !include UserAuthFeaturePkg/Include/PostMemory.fdf
-!endif
-
 !if gLogoFeaturePkgTokenSpaceGuid.PcdLogoFeatureEnable == TRUE
   !include LogoFeaturePkg/Include/PostMemory.fdf
 !endif
+
+!if gUserAuthFeaturePkgTokenSpaceGuid.PcdUserAuthenticationFeatureEnable == TRUE
+  !include UserAuthFeaturePkg/Include/PostMemory.fdf
+!endif
+
+!if gVirtualKeyboardFeaturePkgTokenSpaceGuid.PcdVirtualKeyboardFeatureEnable == TRUE
+  !include VirtualKeyboardFeaturePkg/Include/PostMemory.fdf
+!endif
diff --git a/Features/Intel/AdvancedFeaturePkg/Include/PreMemory.fdf b/Features/Intel/AdvancedFeaturePkg/Include/PreMemory.fdf
index 177aafc1ec..1db258446a 100644
--- a/Features/Intel/AdvancedFeaturePkg/Include/PreMemory.fdf
+++ b/Features/Intel/AdvancedFeaturePkg/Include/PreMemory.fdf
@@ -12,51 +12,67 @@
 ##
 
 #
-# Debug Advanced Features
+# Debugging features
 #
 !if gAcpiDebugFeaturePkgTokenSpaceGuid.PcdAcpiDebugFeatureEnable == TRUE
   !include AcpiDebugFeaturePkg/Include/PreMemory.fdf
 !endif
 
+!if gBeepDebugFeaturePkgTokenSpaceGuid.PcdBeepDebugFeatureEnable == TRUE
+  !include BeepDebugFeaturePkg/Include/PreMemory.fdf
+!endif
+
+!if gPostCodeDebugFeaturePkgTokenSpaceGuid.PcdPostCodeDebugFeatureEnable == TRUE
+  !include PostCodeDebugFeaturePkg/Include/PreMemory.fdf
+!endif
+
 !if gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugFeatureEnable == TRUE
   !include Usb3DebugFeaturePkg/Include/PreMemory.fdf
 !endif
 
 #
-# Network Advanced Features
+# Network features
 #
 !if gNetworkFeaturePkgTokenSpaceGuid.PcdNetworkFeatureEnable == TRUE
   !include NetworkFeaturePkg/Include/PreMemory.fdf
 !endif
 
 #
-# Out-of-Band Management Advanced Features
+# OutOfBandManagement features
 #
 !if gIpmiFeaturePkgTokenSpaceGuid.PcdIpmiFeatureEnable == TRUE
   !include IpmiFeaturePkg/Include/PreMemory.fdf
 !endif
 
+!if gSpcrFeaturePkgTokenSpaceGuid.PcdSpcrFeatureEnable == TRUE
+  !include SpcrFeaturePkg/Include/PreMemory.fdf
+!endif
+
 #
-# Power Management Advanced Features
+# PowerManagement features
 #
 !if gS3FeaturePkgTokenSpaceGuid.PcdS3FeatureEnable == TRUE
   !include S3FeaturePkg/Include/PreMemory.fdf
 !endif
 
 #
-# System Information Advanced Features
+# SystemInformation features
 #
 !if gSmbiosFeaturePkgTokenSpaceGuid.PcdSmbiosFeatureEnable == TRUE
   !include SmbiosFeaturePkg/Include/PreMemory.fdf
 !endif
 
 #
-# User Interface Advanced Features
+# UserInterface features
 #
-!if gUserAuthFeaturePkgTokenSpaceGuid.PcdUserAuthenticationFeatureEnable == TRUE
-  !include UserAuthFeaturePkg/Include/PreMemory.fdf
-!endif
-
 !if gLogoFeaturePkgTokenSpaceGuid.PcdLogoFeatureEnable == TRUE
   !include LogoFeaturePkg/Include/PreMemory.fdf
 !endif
+
+!if gUserAuthFeaturePkgTokenSpaceGuid.PcdUserAuthenticationFeatureEnable == TRUE
+  !include UserAuthFeaturePkg/Include/PreMemory.fdf
+!endif
+
+!if gVirtualKeyboardFeaturePkgTokenSpaceGuid.PcdVirtualKeyboardFeatureEnable == TRUE
+  !include VirtualKeyboardFeaturePkg/Include/PreMemory.fdf
+!endif
diff --git a/Features/Intel/Readme.md b/Features/Intel/Readme.md
index 1a03a4c0d2..cf5ef7b260 100644
--- a/Features/Intel/Readme.md
+++ b/Features/Intel/Readme.md
@@ -195,32 +195,47 @@ At a minimum, an advanced feature must consist of the following elements:
 6. Add the source code for the advanced feature.
     * If the feature is large it is recommended to add libraries in one patch and then modules in a following patch.
 
-7. Update the feature DSC file. This file is in `XxxFeaturePkg/Include/XxxFeature.dsc`.
+7. Update the feature DSC include file. This file is in `XxxFeaturePkg/Include/XxxFeature.dsc`.
     * In most cases, `XxxFeaturePkg/XxxFeaturePkg.dsc` should just `!include XxxFeaturePkg/Include/XxxFeature.dsc`.
+    * This file should not duplicate core content from `MinPlatformPkg/Include/Dsc` except where a change is required by
+    the feature.
 
-8. Update the feature FDF files. These files are `XxxFeaturePkg/Include/PreMemory.fdf` and
+8. Update the feature FDF include files. These files are `XxxFeaturePkg/Include/PreMemory.fdf` and
    `XxxFeaturePkg/Include/PostMemory.fdf`.
     * Each file should contain the feature pre-memory modules and post-memory modules respectively.
 
 9. Build the advanced feature package to ensure the build is successful:
-
     From the workspace root:
-    1. cd edk2-platforms/edk2
-    2. Execute edksetup.bat (Windows) or edksetup.sh (Linux).
-    3. Verify the "WORKSPACE" environment variable is set to the edk2 directory in your workspace.
-    4. Set the "PACKAGES_PATH" environment variable to include the edk2-platforms/Platform/Intel, edk2-platforms/Silicon/Intel,
-       and edk2-platforms/Features/Intel directories.
+    1. Verify the "WORKSPACE" environment variable is set to the parent of edk2 and edk2-platforms directory in your
+       workspace.
+    2. Set the "PACKAGES_PATH" environment variable to include the edk2, edk2-platforms/Platform/Intel,
+       edk2-platforms/Silicon/Intel, and edk2-platforms/Features/Intel directories.
        * Windows example:
-         * set PACKAGES_PATH=c:\Edk2Workspace\edk2-platforms\Platform\Intel;
-                             c:\Edk2Workspace\edk2-platforms\Silicon\Intel;
-                             c:\Edk2Workspace\edk2-platforms\Features\Intel
+         * set PACKAGES_PATH=%WORKSPACE%\edk2;
+                             %WORKSPACE%\edk2-platforms\Platform\Intel;
+                             %WORKSPACE%\edk2-platforms\Silicon\Intel;
+                             %WORKSPACE%\edk2-platforms\Features\Intel;
+                             %WORKSPACE%\edk2-platforms\Features\Intel\Debugging;
+                             %WORKSPACE%\edk2-platforms\Features\Intel\Network;
+                             %WORKSPACE%\edk2-platforms\Features\Intel\OutOfBandManagement;
+                             %WORKSPACE%\edk2-platforms\Features\Intel\PowerManagement;
+                             %WORKSPACE%\edk2-platforms\Features\Intel\SystemInformation;
+                             %WORKSPACE%\edk2-platforms\Features\Intel\UserInterface
        * Linux example:
-         * export PACKAGES_PATH=~/Edk2Workspace/edk2-platforms/Platform/Intel:
+         * export PACKAGES_PATH=~Edk2Workspace/edk2:
+                                ~/Edk2Workspace/edk2-platforms/Platform/Intel:
                                 ~/Edk2Workspace/edk2-platforms/Silicon/Intel:
-                                ~/Edk2Workspace/edk2-platforms/Features/Intel
+                                ~/Edk2Workspace/edk2-platforms/Features/Intel:
+                                ~/Edk2Workspace/edk2-platforms/Features/Intel/Debugging:
+                                ~/Edk2Workspace/edk2-platforms/Features/Intel/Network:
+                                ~/Edk2Workspace/edk2-platforms/Features/Intel/OutOfBandManagement:
+                                ~/Edk2Workspace/edk2-platforms/Features/Intel/PowerManagement:
+                                ~/Edk2Workspace/edk2-platforms/Features/Intel/SystemInformation:
+                                ~/Edk2Workspace/edk2-platforms/Features/Intel/UserInterface
+    3. cd edk2
+    4. Execute edksetup.bat (Windows) or edksetup.sh (Linux).
     5. cd edk2-platforms/Features/Intel
-    6. <pre>build -p FeatureDomainDirectory/XxxFeaturePkg/XxxFeaturePkg.dsc -a IA32 -a X64</pre>
-
+    6. <pre>build -a IA32 -a X64 -p FeatureDomainDirectory/XxxFeaturePkg/XxxFeaturePkg.dsc</pre>
        *Note:* -a specifies the architecture. Typically IA32 and X64 modules are built for 32-bit PEI and 64-bit
        DXE though build for your specific requirements.
 
@@ -228,11 +243,13 @@ At a minimum, an advanced feature must consist of the following elements:
     1. Add `XxxFeaturePkg/Include/XxxFeature.dsc` to `AdvancedFeatures.dsc`
     2. Add `XxxFeaturePkg/Include/PreMemory.fdf` to `AdvancedFeaturePkg/Include/PreMemory.fdf`
     3. Add `XxxFeaturePkg/Include/PostMemory.fdf` to `AdvancedFeaturePkg/Include/PostMemory.fdf`
+    4. Add the `PcdFeatureEnable` to `AdvancedFeaturesPcd.dsc` set to FALSE
+    5. Add the `PcdFeatureEnable` to `AdvancedFeaturePkg.dsc` set to TRUE
 
 11. Build `AdvancedFeaturePkg` to ensure the build is successful.
     1. Follow the steps in step #9 but change the build command to:
 
-    <pre>build -p AdvancedFeaturePkg/AdvancedFeaturePkg.dsc -a IA32 -a X64</pre>
+    <pre>build  -a IA32 -a X64 -p AdvancedFeaturePkg/AdvancedFeaturePkg.dsc</pre>
 
 12. Before sending your patch series, ensure the `Readme.md` file in `XxxFeaturePkg` is completed so others can use it
     during the feature review.
-- 
2.27.0.windows.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [edk2-devel][edk2-platforms][PATCH V2 13/14] AdvancedFeaturePkg/Build: Add FDF to create FV for all features
  2022-01-20  1:13 [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency Oram, Isaac W
                   ` (11 preceding siblings ...)
  2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 12/14] AdvancedFeaturePkg: Add missing features Oram, Isaac W
@ 2022-01-20  1:14 ` Oram, Isaac W
  2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 14/14] WhitleyOpenBoardPkg/Build: Enable Features/Intel features Oram, Isaac W
  2022-01-22  1:36 ` [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency Nate DeSimone
  14 siblings, 0 replies; 17+ messages in thread
From: Oram, Isaac W @ 2022-01-20  1:14 UTC (permalink / raw)
  To: devel; +Cc: Sai Chaganty, Liming Gao

This produces three FV and no FD.
FvAdvancedPreMemory.fv contains PEIM for pre-memory use.
FvAdvancedUncompressed.fv contains post memory PEIM and drivers for DXE
and SMM.
FvAdvanced.fv contains the compressed FvAdvancedUncompressed.fv in an
FV file format as is common practice.

These FV are not expected to be used as is, but are needed to test the
individual features for things like filename collisions.  Some features
require build customization so binary reuse is not feasible at this time.

Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>

Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
---
 Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc |  1 +
 Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.fdf | 49 ++++++++++++++++++++
 2 files changed, 50 insertions(+)

diff --git a/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc b/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc
index 02636da916..28530b8c67 100644
--- a/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc
+++ b/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc
@@ -29,6 +29,7 @@
   SKUID_IDENTIFIER                    = DEFAULT
   PEI_ARCH                            = IA32
   DXE_ARCH                            = X64
+  FLASH_DEFINITION                    = AdvancedFeaturePkg/AdvancedFeaturePkg.fdf
 
 [Packages]
   MdePkg/MdePkg.dec
diff --git a/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.fdf b/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.fdf
new file mode 100644
index 0000000000..76a02c5d1c
--- /dev/null
+++ b/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.fdf
@@ -0,0 +1,49 @@
+## @file
+# FDF file generating AdvancedFeature FV for inclusion in a MinPlatform design.
+#
+# There are three FV produced, FvAdvancedPreMemory.fv, FvAdvancedUncompressed.fv, and
+# FvAdvanced.fv.  The sizes are arbitrary as these are not expected to be used as is
+# in today's usages.  Boards will tune FV by selecting or deseleting features and building.
+#
+# @copyright
+# Copyright (C) 2022 Intel Corporation
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+##
+
+[Defines]
+  DEFINE UNCOMPRESSED_FV_ADVANCED_FILENAME = 6d606b5c-2d45-4705-a700-73324306be06
+
+[FV.FvAdvancedPreMemory]
+  !include MinPlatformPkg/Include/Fdf/CommonSpiFvHeaderInfo.fdf
+  FvNameGuid         = ea9da344-a7f3-468c-ae84-2d22fc03b28e
+
+  !include AdvancedFeaturePkg/Include/PreMemory.fdf
+
+[FV.FvAdvancedUncompressed]
+  !include MinPlatformPkg/Include/Fdf/CommonSpiFvHeaderInfo.fdf
+  FvNameGuid         = $(UNCOMPRESSED_FV_ADVANCED_FILENAME)
+
+  !include AdvancedFeaturePkg/Include/PostMemory.fdf
+
+[FV.FvAdvanced]
+  !include MinPlatformPkg/Include/Fdf/CommonSpiFvHeaderInfo.fdf
+  FvNameGuid         = 445b121d-28d6-4801-8958-8253cf426cf7
+
+  FILE FV_IMAGE = $(UNCOMPRESSED_FV_ADVANCED_FILENAME) {
+    SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {
+      SECTION FV_IMAGE = FvAdvancedUncompressed
+    }
+  }
+
+
+################################################################################
+#
+# Rules are use with the [FV] section's module INF type to define
+# how an FFS file is created for a given INF file. The following Rule are the default
+# rules for the different module type. User can add the customized rules to define the
+# content of the FFS file.
+#
+################################################################################
+
+!include MinPlatformPkg/Include/Fdf/RuleInclude.fdf
-- 
2.27.0.windows.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [edk2-devel][edk2-platforms][PATCH V2 14/14] WhitleyOpenBoardPkg/Build: Enable Features/Intel features
  2022-01-20  1:13 [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency Oram, Isaac W
                   ` (12 preceding siblings ...)
  2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 13/14] AdvancedFeaturePkg/Build: Add FDF to create FV for all features Oram, Isaac W
@ 2022-01-20  1:14 ` Oram, Isaac W
  2022-01-22  1:36 ` [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency Nate DeSimone
  14 siblings, 0 replies; 17+ messages in thread
From: Oram, Isaac W @ 2022-01-20  1:14 UTC (permalink / raw)
  To: devel; +Cc: Nate DeSimone, Chasel Chiu

This enables Whitley as a test vehicle for features.
These are not expected to be fully functional at this time.
Specifically UserAuthentication causes a boot failure and the others
have only been verified to be built and dispatched, not ported to
the Whitley reference platform hardware.

Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Chasel Chiu <chasel.chiu@intel.com>

Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
---
 Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dsc | 44 ++++++++++++++++++++
 Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.fdf |  6 ++-
 2 files changed, 49 insertions(+), 1 deletion(-)

diff --git a/Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dsc b/Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dsc
index f07b0a8ccf..42680254d1 100644
--- a/Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dsc
+++ b/Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dsc
@@ -39,6 +39,50 @@
   DEFINE IIO_INSTANCE           = UnknownCpu
 !endif
 
+!include AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
+
+[PcdsFixedAtBuild]
+  gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugPortLibInstance|1
+
+[PcdsFeatureFlag]
+  #
+  # Debugging features
+  #
+  gAcpiDebugFeaturePkgTokenSpaceGuid.PcdAcpiDebugFeatureEnable              |FALSE
+  gBeepDebugFeaturePkgTokenSpaceGuid.PcdBeepDebugFeatureEnable              |FALSE
+  gPostCodeDebugFeaturePkgTokenSpaceGuid.PcdPostCodeDebugFeatureEnable      |FALSE
+  gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugFeatureEnable              |FALSE
+
+  #
+  # Network features
+  #
+  gNetworkFeaturePkgTokenSpaceGuid.PcdNetworkFeatureEnable                  |FALSE
+
+  #
+  # OutOfBandManagement features
+  #
+  gIpmiFeaturePkgTokenSpaceGuid.PcdIpmiFeatureEnable                        |FALSE
+  gSpcrFeaturePkgTokenSpaceGuid.PcdSpcrFeatureEnable                        |FALSE
+
+  #
+  # PowerManagement features
+  #
+  gS3FeaturePkgTokenSpaceGuid.PcdS3FeatureEnable                            |FALSE
+
+  #
+  # SystemInformation features
+  #
+  gSmbiosFeaturePkgTokenSpaceGuid.PcdSmbiosFeatureEnable                    |FALSE
+
+  #
+  # UserInterface features
+  #
+  gLogoFeaturePkgTokenSpaceGuid.PcdLogoFeatureEnable                        |FALSE
+  gUserAuthFeaturePkgTokenSpaceGuid.PcdUserAuthenticationFeatureEnable      |FALSE
+  gVirtualKeyboardFeaturePkgTokenSpaceGuid.PcdVirtualKeyboardFeatureEnable  |FALSE
+
+!include AdvancedFeaturePkg/Include/AdvancedFeatures.dsc
+
   #
   # Platform On/Off features are defined here
   #
diff --git a/Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.fdf b/Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.fdf
index 7e2a8b1b9f..45460570d9 100644
--- a/Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.fdf
+++ b/Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.fdf
@@ -84,7 +84,7 @@ SET gMinPlatformPkgTokenSpaceGuid.PcdFlashAreaSize         = 0x01000000
   SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvFspSSize          = 0x00040000 # Size must match WhitleyFspPkg.fdf content
   SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvFspMSize          = 0x00221000 # Size must match WhitleyFspPkg.fdf content
   SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvFspTSize          = 0x00006000 # Size must match WhitleyFspPkg.fdf content
-  SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvBspPreMemorySize  = 0x00001000
+  SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvBspPreMemorySize  = 0x00010000
   SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvPreMemorySize     = gCpPlatFlashTokenSpaceGuid.PcdFlashFdSecPeiSize - gMinPlatformPkgTokenSpaceGuid.PcdFlashFvBspSize - gMinPlatformPkgTokenSpaceGuid.PcdFlashFvPostMemorySize - gMinPlatformPkgTokenSpaceGuid.PcdFlashFvFspSSize - gMinPlatformPkgTokenSpaceGuid.PcdFlashFvFspMSize - gMinPlatformPkgTokenSpaceGuid.PcdFlashFvFspTSize - gMinPlatformPkgTokenSpaceGuid.PcdFlashFvBspPreMemorySize
 
   #
@@ -481,6 +481,8 @@ SET gMinPlatformPkgTokenSpaceGuid.PcdFlashAreaSize         = 0x01000000
   !include MinPlatformPkg/Include/Fdf/CommonSpiFvHeaderInfo.fdf
   FvNameGuid         = 09f25d44-b2ef-4225-8b2e-e0e094b51775
 
+  !include AdvancedFeaturePkg/Include/PreMemory.fdf
+
 [FV.FvBspPreMemory]
   !include MinPlatformPkg/Include/Fdf/CommonSpiFvHeaderInfo.fdf
   FvNameGuid         = e6c65995-8c2d-4119-a52d-7dbf1acb45a1
@@ -710,6 +712,8 @@ SET gMinPlatformPkgTokenSpaceGuid.PcdFlashAreaSize         = 0x01000000
   !include MinPlatformPkg/Include/Fdf/CommonSpiFvHeaderInfo.fdf
   FvNameGuid         = 70aeaf57-4997-49ce-a4f7-122980745670
 
+  !include AdvancedFeaturePkg/Include/PostMemory.fdf
+
 [FV.FvAdvanced]
   !include MinPlatformPkg/Include/Fdf/CommonSpiFvHeaderInfo.fdf
   FvNameGuid         = f21ee7a1-53a9-453d-aee3-b6a5c25bada5
-- 
2.27.0.windows.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency
  2022-01-20  1:13 [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency Oram, Isaac W
                   ` (13 preceding siblings ...)
  2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 14/14] WhitleyOpenBoardPkg/Build: Enable Features/Intel features Oram, Isaac W
@ 2022-01-22  1:36 ` Nate DeSimone
  2022-02-02 23:42   ` Oram, Isaac W
  14 siblings, 1 reply; 17+ messages in thread
From: Nate DeSimone @ 2022-01-22  1:36 UTC (permalink / raw)
  To: Oram, Isaac W, devel@edk2.groups.io
  Cc: Chaganty, Rangasai V, Gao, Liming, Dong, Eric, Tan, Ming,
	Chiu, Chasel, Bi, Dandan, Shindo, Miki, Abbas, Mohamed,
	KARPAGAVINAYAGAM, MANICKAVASAKAM

For the series...

Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>

-----Original Message-----
From: Oram, Isaac W <isaac.w.oram@intel.com> 
Sent: Wednesday, January 19, 2022 5:14 PM
To: devel@edk2.groups.io
Cc: Chaganty, Rangasai V <rangasai.v.chaganty@intel.com>; Gao, Liming <gaoliming@byosoft.com.cn>; Dong, Eric <eric.dong@intel.com>; Tan, Ming <ming.tan@intel.com>; Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Chiu, Chasel <chasel.chiu@intel.com>; Bi, Dandan <dandan.bi@intel.com>; Shindo, Miki <miki.shindo@intel.com>; Abbas, Mohamed <mohamed.abbas@intel.com>; KARPAGAVINAYAGAM, MANICKAVASAKAM <manickavasakamk@ami.com>
Subject: [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency

This series addresses inconsistencies in feature implementation and use. Some inconsistencies are just conventions of the feature design/template/convention.  Some are inconsistency with feature design intent that negatively affect the usability of the features and the amount of work required from board porting engineers.

V2:
  19/27: Fixed typo in library class name, Usb3DebugPortParamLibo to Usb3DebugPortParamLib.
  01/27: Merged 02 into 01 so as to not introduce relative paths in the first place.
  Note approved commits 3, 4, 5, 6, 7, 8, 15, 20, 21, 22, 24, and 25 were pushed.

V1:

Some features were missing feature enable flags.
Some features had non-functional standalone builds.
Many features were implemented to include common core build content in their feature include files.
Updated some of the Readme content.
Added AdvancedFeaturePkg.fdf to build all feature content to support verifying no build time issues between features.
Removed duplicate and unused content from build files.
Modified the TemplateFeaturePkg to use the common MinPlatform include content.

Removed all instances where features were relative to Features/Intel and made them relative to the package roots.
This does mean PACKAGES_PATH may need to be extended for all the feature domains.  Debugging, PowerManagement, etc.
However, it should enable packaging tools to function properly as the relative paths violate spec.

Use of the common MinPlatformPkg build includes does increase the build time for each individual feature in standalone build modes. It does not negatively impact board or AdvancedFeaturePkg builds as the common content is only built once. Part of MinPlatform arch intent is to reduce cognitive complexity, so the simpler build is more valuable than fast build time.

Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Ming Tan <ming.tan@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Chasel Chiu <chasel.chiu@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Miki Shindo <miki.shindo@intel.com>
Cc: Mohamed Abbas <mohamed.abbas@intel.com>
Cc: Manickavasakam Karpagavinayagam <manickavasakamk@ami.com>

Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>


Isaac Oram (14):
  BeepDebugFeaturePkg: Use MinPlatformPkg build include files
  SmbiosFeaturePkg: Use MinPlatformPkg build include files
  UserAuthFeaturePkg: Fix all relative package paths
  UserAuthFeaturePkg: Use MinPlatformPkg build include files
  VirtualKeyboardFeaturePkg: Fix all relative package paths
  VirtualKeyboardFeaturePkg: Use MinPlatformPkg build include files
  VirtualKeyboardFeaturePkg: Add feature enable PCD
  LogoFeaturePkg: Use MinPlatformPkg build include files
  PostCodeDebugFeaturePkg: Complete as an advanced feature
  AcpiDebugFeaturePkg: Use MinPlatformPkg build include files
  Usb3DebugFeaturePkg: Align with feature design guidelines
  AdvancedFeaturePkg: Add missing features
  AdvancedFeaturePkg/Build: Add FDF to create FV for all features
  WhitleyOpenBoardPkg/Build: Enable Features/Intel features

 Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc                                                                  |  67 +++++-
 Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.fdf                                                                  |  49 +++++
 Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeatures.dsc                                                            |  36 ++-
 Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc                                                         |  64 +++++-
 Features/Intel/AdvancedFeaturePkg/Include/PostMemory.fdf                                                                  |  36 ++-
 Features/Intel/AdvancedFeaturePkg/Include/PreMemory.fdf                                                                   |  36 ++-
 Features/Intel/Debugging/AcpiDebugFeaturePkg/AcpiDebugFeaturePkg.dsc                                                      |  21 ++
 Features/Intel/Debugging/AcpiDebugFeaturePkg/Include/AcpiDebugFeature.dsc                                                 |  70 ------
 Features/Intel/Debugging/AcpiDebugFeaturePkg/Include/PostMemory.fdf                                                       |   4 +-
 Features/Intel/Debugging/BeepDebugFeaturePkg/BeepDebugFeaturePkg.dec                                                      |   7 +-
 Features/Intel/Debugging/BeepDebugFeaturePkg/BeepDebugFeaturePkg.dsc                                                      |  28 +++
 Features/Intel/Debugging/BeepDebugFeaturePkg/Include/BeepDebugFeature.dsc                                                 | 222 ++++++-------------
 Features/Intel/Debugging/BeepDebugFeaturePkg/Include/Library/BeepLib.h                                                    |   6 +-
 Features/Intel/Debugging/BeepDebugFeaturePkg/Include/PostMemory.fdf                                                       |  14 ++
 Features/Intel/Debugging/BeepDebugFeaturePkg/Include/PreMemory.fdf                                                        |  13 ++
 Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/PeiBeepStatusCodeHandlerLib.inf             |   5 +-
 Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/RuntimeDxeBeepStatusCodeHandlerLib.inf      |   3 -
 Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/SmmBeepStatusCodeHandlerLib.inf             |   3 -
 Features/Intel/Debugging/BeepDebugFeaturePkg/Readme.md                                                                    |  91 +++++---
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PostCodeDebugFeature.dsc                                         | 231 +++++---------------
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PostMemory.fdf                                                   |  14 ++
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PreMemory.fdf                                                    |  13 ++
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Library/PostCodeStatusCodeHandlerLib/PeiPostCodeStatusCodeHandlerLib.inf |   2 +-
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/PostCodeDebugFeaturePkg.dec                                              |  11 +
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/PostCodeDebugFeaturePkg.dsc                                              |  30 +++
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Readme.md                                                                |  31 ++-
 Features/Intel/Debugging/Usb3DebugFeaturePkg/Include/Usb3DebugFeature.dsc                                                 | 131 ++---------
 Features/Intel/Debugging/Usb3DebugFeaturePkg/Readme.md                                                                    |  50 +++--
 Features/Intel/Debugging/Usb3DebugFeaturePkg/Usb3DebugFeaturePkg.dec                                                      |  14 +-
 Features/Intel/Debugging/Usb3DebugFeaturePkg/Usb3DebugFeaturePkg.dsc                                                      |  18 ++
 Features/Intel/Readme.md                                                                                                  |  49 +++--
 Features/Intel/SystemInformation/SmbiosFeaturePkg/Include/PostMemory.fdf                                                  |   2 +-
 Features/Intel/SystemInformation/SmbiosFeaturePkg/Include/SmbiosFeature.dsc                                               |  52 -----
 Features/Intel/SystemInformation/SmbiosFeaturePkg/SmbiosFeaturePkg.dsc                                                    |  18 ++
 Features/Intel/UserInterface/LogoFeaturePkg/Include/LogoFeature.dsc                                                       |  69 +-----
 Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dec                                                            |   2 -
 Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dsc                                                            |  38 +++-
 Features/Intel/UserInterface/UserAuthFeaturePkg/Include/PostMemory.fdf                                                    |   6 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/Include/UserAuthFeature.dsc                                               |  92 +-------
 Features/Intel/UserInterface/UserAuthFeaturePkg/Library/PlatformPasswordLibNull/PlatformPasswordLibNull.inf               |   2 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/Library/UserPasswordLib/UserPasswordLib.inf                               |   2 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/Library/UserPasswordUiLib/UserPasswordUiLib.inf                           |   2 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthFeaturePkg.dsc                                                    |  18 ++
 Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthentication2Dxe.inf                       |   2 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationDxe.inf                        |   2 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationSmm.inf                        |   2 +-
 Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/PostMemory.fdf                                             |   2 +-
 Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/VirtualKeyboardFeature.dsc                                 |  64 +-----
 Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/VirtualKeyboardFeaturePkg.dec                                      |   7 +-
 Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/VirtualKeyboardFeaturePkg.dsc                                      |  18 ++
 Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dsc                                                                        |  44 ++++
 Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.fdf                                                                        |   6 +-
 52 files changed, 886 insertions(+), 933 deletions(-)  create mode 100644 Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.fdf
 create mode 100644 Features/Intel/Debugging/BeepDebugFeaturePkg/Include/PostMemory.fdf
 create mode 100644 Features/Intel/Debugging/BeepDebugFeaturePkg/Include/PreMemory.fdf
 create mode 100644 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PostMemory.fdf
 create mode 100644 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PreMemory.fdf

--
2.27.0.windows.1

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency
  2022-01-22  1:36 ` [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency Nate DeSimone
@ 2022-02-02 23:42   ` Oram, Isaac W
  0 siblings, 0 replies; 17+ messages in thread
From: Oram, Isaac W @ 2022-02-02 23:42 UTC (permalink / raw)
  To: Desimone, Nathaniel L, devel@edk2.groups.io
  Cc: Chaganty, Rangasai V, Gao, Liming, Dong, Eric, Tan, Ming,
	Chiu, Chasel, Bi, Dandan, Shindo, Miki, Abbas, Mohamed,
	KARPAGAVINAYAGAM, MANICKAVASAKAM

Pushed as 8f41641a6f..c05cbfd80a

-----Original Message-----
From: Desimone, Nathaniel L <nathaniel.l.desimone@intel.com> 
Sent: Friday, January 21, 2022 5:37 PM
To: Oram, Isaac W <isaac.w.oram@intel.com>; devel@edk2.groups.io
Cc: Chaganty, Rangasai V <rangasai.v.chaganty@intel.com>; Gao, Liming <gaoliming@byosoft.com.cn>; Dong, Eric <eric.dong@intel.com>; Tan, Ming <ming.tan@intel.com>; Chiu, Chasel <chasel.chiu@intel.com>; Bi, Dandan <dandan.bi@intel.com>; Shindo, Miki <miki.shindo@intel.com>; Abbas, Mohamed <mohamed.abbas@intel.com>; KARPAGAVINAYAGAM, MANICKAVASAKAM <manickavasakamk@ami.com>
Subject: RE: [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency

For the series...

Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>

-----Original Message-----
From: Oram, Isaac W <isaac.w.oram@intel.com> 
Sent: Wednesday, January 19, 2022 5:14 PM
To: devel@edk2.groups.io
Cc: Chaganty, Rangasai V <rangasai.v.chaganty@intel.com>; Gao, Liming <gaoliming@byosoft.com.cn>; Dong, Eric <eric.dong@intel.com>; Tan, Ming <ming.tan@intel.com>; Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Chiu, Chasel <chasel.chiu@intel.com>; Bi, Dandan <dandan.bi@intel.com>; Shindo, Miki <miki.shindo@intel.com>; Abbas, Mohamed <mohamed.abbas@intel.com>; KARPAGAVINAYAGAM, MANICKAVASAKAM <manickavasakamk@ami.com>
Subject: [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency

This series addresses inconsistencies in feature implementation and use. Some inconsistencies are just conventions of the feature design/template/convention.  Some are inconsistency with feature design intent that negatively affect the usability of the features and the amount of work required from board porting engineers.

V2:
  19/27: Fixed typo in library class name, Usb3DebugPortParamLibo to Usb3DebugPortParamLib.
  01/27: Merged 02 into 01 so as to not introduce relative paths in the first place.
  Note approved commits 3, 4, 5, 6, 7, 8, 15, 20, 21, 22, 24, and 25 were pushed.

V1:

Some features were missing feature enable flags.
Some features had non-functional standalone builds.
Many features were implemented to include common core build content in their feature include files.
Updated some of the Readme content.
Added AdvancedFeaturePkg.fdf to build all feature content to support verifying no build time issues between features.
Removed duplicate and unused content from build files.
Modified the TemplateFeaturePkg to use the common MinPlatform include content.

Removed all instances where features were relative to Features/Intel and made them relative to the package roots.
This does mean PACKAGES_PATH may need to be extended for all the feature domains.  Debugging, PowerManagement, etc.
However, it should enable packaging tools to function properly as the relative paths violate spec.

Use of the common MinPlatformPkg build includes does increase the build time for each individual feature in standalone build modes. It does not negatively impact board or AdvancedFeaturePkg builds as the common content is only built once. Part of MinPlatform arch intent is to reduce cognitive complexity, so the simpler build is more valuable than fast build time.

Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Ming Tan <ming.tan@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Chasel Chiu <chasel.chiu@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Miki Shindo <miki.shindo@intel.com>
Cc: Mohamed Abbas <mohamed.abbas@intel.com>
Cc: Manickavasakam Karpagavinayagam <manickavasakamk@ami.com>

Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>


Isaac Oram (14):
  BeepDebugFeaturePkg: Use MinPlatformPkg build include files
  SmbiosFeaturePkg: Use MinPlatformPkg build include files
  UserAuthFeaturePkg: Fix all relative package paths
  UserAuthFeaturePkg: Use MinPlatformPkg build include files
  VirtualKeyboardFeaturePkg: Fix all relative package paths
  VirtualKeyboardFeaturePkg: Use MinPlatformPkg build include files
  VirtualKeyboardFeaturePkg: Add feature enable PCD
  LogoFeaturePkg: Use MinPlatformPkg build include files
  PostCodeDebugFeaturePkg: Complete as an advanced feature
  AcpiDebugFeaturePkg: Use MinPlatformPkg build include files
  Usb3DebugFeaturePkg: Align with feature design guidelines
  AdvancedFeaturePkg: Add missing features
  AdvancedFeaturePkg/Build: Add FDF to create FV for all features
  WhitleyOpenBoardPkg/Build: Enable Features/Intel features

 Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc                                                                  |  67 +++++-
 Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.fdf                                                                  |  49 +++++
 Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeatures.dsc                                                            |  36 ++-
 Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc                                                         |  64 +++++-
 Features/Intel/AdvancedFeaturePkg/Include/PostMemory.fdf                                                                  |  36 ++-
 Features/Intel/AdvancedFeaturePkg/Include/PreMemory.fdf                                                                   |  36 ++-
 Features/Intel/Debugging/AcpiDebugFeaturePkg/AcpiDebugFeaturePkg.dsc                                                      |  21 ++
 Features/Intel/Debugging/AcpiDebugFeaturePkg/Include/AcpiDebugFeature.dsc                                                 |  70 ------
 Features/Intel/Debugging/AcpiDebugFeaturePkg/Include/PostMemory.fdf                                                       |   4 +-
 Features/Intel/Debugging/BeepDebugFeaturePkg/BeepDebugFeaturePkg.dec                                                      |   7 +-
 Features/Intel/Debugging/BeepDebugFeaturePkg/BeepDebugFeaturePkg.dsc                                                      |  28 +++
 Features/Intel/Debugging/BeepDebugFeaturePkg/Include/BeepDebugFeature.dsc                                                 | 222 ++++++-------------
 Features/Intel/Debugging/BeepDebugFeaturePkg/Include/Library/BeepLib.h                                                    |   6 +-
 Features/Intel/Debugging/BeepDebugFeaturePkg/Include/PostMemory.fdf                                                       |  14 ++
 Features/Intel/Debugging/BeepDebugFeaturePkg/Include/PreMemory.fdf                                                        |  13 ++
 Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/PeiBeepStatusCodeHandlerLib.inf             |   5 +-
 Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/RuntimeDxeBeepStatusCodeHandlerLib.inf      |   3 -
 Features/Intel/Debugging/BeepDebugFeaturePkg/Library/BeepStatusCodeHandlerLib/SmmBeepStatusCodeHandlerLib.inf             |   3 -
 Features/Intel/Debugging/BeepDebugFeaturePkg/Readme.md                                                                    |  91 +++++---
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PostCodeDebugFeature.dsc                                         | 231 +++++---------------
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PostMemory.fdf                                                   |  14 ++
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PreMemory.fdf                                                    |  13 ++
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Library/PostCodeStatusCodeHandlerLib/PeiPostCodeStatusCodeHandlerLib.inf |   2 +-
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/PostCodeDebugFeaturePkg.dec                                              |  11 +
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/PostCodeDebugFeaturePkg.dsc                                              |  30 +++
 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Readme.md                                                                |  31 ++-
 Features/Intel/Debugging/Usb3DebugFeaturePkg/Include/Usb3DebugFeature.dsc                                                 | 131 ++---------
 Features/Intel/Debugging/Usb3DebugFeaturePkg/Readme.md                                                                    |  50 +++--
 Features/Intel/Debugging/Usb3DebugFeaturePkg/Usb3DebugFeaturePkg.dec                                                      |  14 +-
 Features/Intel/Debugging/Usb3DebugFeaturePkg/Usb3DebugFeaturePkg.dsc                                                      |  18 ++
 Features/Intel/Readme.md                                                                                                  |  49 +++--
 Features/Intel/SystemInformation/SmbiosFeaturePkg/Include/PostMemory.fdf                                                  |   2 +-
 Features/Intel/SystemInformation/SmbiosFeaturePkg/Include/SmbiosFeature.dsc                                               |  52 -----
 Features/Intel/SystemInformation/SmbiosFeaturePkg/SmbiosFeaturePkg.dsc                                                    |  18 ++
 Features/Intel/UserInterface/LogoFeaturePkg/Include/LogoFeature.dsc                                                       |  69 +-----
 Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dec                                                            |   2 -
 Features/Intel/UserInterface/LogoFeaturePkg/LogoFeaturePkg.dsc                                                            |  38 +++-
 Features/Intel/UserInterface/UserAuthFeaturePkg/Include/PostMemory.fdf                                                    |   6 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/Include/UserAuthFeature.dsc                                               |  92 +-------
 Features/Intel/UserInterface/UserAuthFeaturePkg/Library/PlatformPasswordLibNull/PlatformPasswordLibNull.inf               |   2 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/Library/UserPasswordLib/UserPasswordLib.inf                               |   2 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/Library/UserPasswordUiLib/UserPasswordUiLib.inf                           |   2 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthFeaturePkg.dsc                                                    |  18 ++
 Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthentication2Dxe.inf                       |   2 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationDxe.inf                        |   2 +-
 Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthenticationDxeSmm/UserAuthenticationSmm.inf                        |   2 +-
 Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/PostMemory.fdf                                             |   2 +-
 Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/Include/VirtualKeyboardFeature.dsc                                 |  64 +-----
 Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/VirtualKeyboardFeaturePkg.dec                                      |   7 +-
 Features/Intel/UserInterface/VirtualKeyboardFeaturePkg/VirtualKeyboardFeaturePkg.dsc                                      |  18 ++
 Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dsc                                                                        |  44 ++++
 Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.fdf                                                                        |   6 +-
 52 files changed, 886 insertions(+), 933 deletions(-)  create mode 100644 Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.fdf
 create mode 100644 Features/Intel/Debugging/BeepDebugFeaturePkg/Include/PostMemory.fdf
 create mode 100644 Features/Intel/Debugging/BeepDebugFeaturePkg/Include/PreMemory.fdf
 create mode 100644 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PostMemory.fdf
 create mode 100644 Features/Intel/Debugging/PostCodeDebugFeaturePkg/Include/PreMemory.fdf

--
2.27.0.windows.1

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2022-02-02 23:42 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-01-20  1:13 [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency Oram, Isaac W
2022-01-20  1:13 ` [edk2-devel][edk2-platforms][PATCH V2 01/14] BeepDebugFeaturePkg: Use MinPlatformPkg build include files Oram, Isaac W
2022-01-20  1:13 ` [edk2-devel][edk2-platforms][PATCH V2 02/14] SmbiosFeaturePkg: " Oram, Isaac W
2022-01-20  1:13 ` [edk2-devel][edk2-platforms][PATCH V2 03/14] UserAuthFeaturePkg: Fix all relative package paths Oram, Isaac W
2022-01-20  1:13 ` [edk2-devel][edk2-platforms][PATCH V2 04/14] UserAuthFeaturePkg: Use MinPlatformPkg build include files Oram, Isaac W
2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 05/14] VirtualKeyboardFeaturePkg: Fix all relative package paths Oram, Isaac W
2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 06/14] VirtualKeyboardFeaturePkg: Use MinPlatformPkg build include files Oram, Isaac W
2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 07/14] VirtualKeyboardFeaturePkg: Add feature enable PCD Oram, Isaac W
2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 08/14] LogoFeaturePkg: Use MinPlatformPkg build include files Oram, Isaac W
2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 09/14] PostCodeDebugFeaturePkg: Complete as an advanced feature Oram, Isaac W
2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 10/14] AcpiDebugFeaturePkg: Use MinPlatformPkg build include files Oram, Isaac W
2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 11/14] Usb3DebugFeaturePkg: Align with feature design guidelines Oram, Isaac W
2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 12/14] AdvancedFeaturePkg: Add missing features Oram, Isaac W
2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 13/14] AdvancedFeaturePkg/Build: Add FDF to create FV for all features Oram, Isaac W
2022-01-20  1:14 ` [edk2-devel][edk2-platforms][PATCH V2 14/14] WhitleyOpenBoardPkg/Build: Enable Features/Intel features Oram, Isaac W
2022-01-22  1:36 ` [edk2-devel][edk2-platforms][PATCH V2 00/14] Improve feature build consistency Nate DeSimone
2022-02-02 23:42   ` Oram, Isaac W

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox