[edk2-devel][edk2-platforms][PATCH V1 00/27] Improve feature build consistency

Oram, Isaac W isaac.w.oram at intel.com
Wed Jan 12 02:20:00 UTC 2022


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.

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 at intel.com>
Cc: Liming Gao <gaoliming at byosoft.com.cn>
Cc: Eric Dong <eric.dong at intel.com>
Cc: Ming Tan <ming.tan at intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone at intel.com>
Cc: Chasel Chiu <chasel.chiu at intel.com>
Cc: Dandan Bi <dandan.bi at intel.com>
Cc: Miki Shindo <miki.shindo at intel.com>
Cc: Mohamed Abbas <mohamed.abbas at intel.com>
Cc: Manickavasakam Karpagavinayagam <manickavasakamk at ami.com>

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

Isaac Oram (27):
  BeepDebugFeaturePkg: Use MinPlatformPkg build include files
  BeepDebugFeaturePkg: Fix all relative package paths
  AcpiDebugFeaturePkg: Fix all relative package paths
  IpmiFeaturePkg: Fix all relative package paths
  IpmiFeaturePkg: Fix build errors
  S3FeaturePkg: Fix all relative package paths
  S3FeaturePkg: Use MinPlatformPkg build include files
  SmbiosFeaturePkg: Fix all relative package paths
  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
  NetworkFeaturePkg: Use MinPlatformPkg build include files
  LogoFeaturePkg: Use MinPlatformPkg build include files
  PostCodeDebugFeaturePkg: Complete as an advanced feature
  AcpiDebugFeaturePkg: Use MinPlatformPkg build include files
  Usb3DebugFeaturePkg: Align with feature design guidelines
  SpcrFeaturePkg: Use MinPlatform build include files
  TemplateFeaturePkg: Use MinPlatform build include files
  AdvancedFeaturePkg: Fix all relative package paths
  AdvancedFeaturePkg: Add missing features
  MinPlatformPkg/Build: Add an include file for the common SPI FV info
  WhitleyOpenBoardPkg/Build: Use common SPI FV Header include
  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                                                            |  49 +++--
 Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc                                                         |  64 +++++-
 Features/Intel/AdvancedFeaturePkg/Include/PostMemory.fdf                                                                  |  49 +++--
 Features/Intel/AdvancedFeaturePkg/Include/PreMemory.fdf                                                                   |  49 +++--
 Features/Intel/Debugging/AcpiDebugFeaturePkg/AcpiDebugDxeSmm/AcpiDebugDxe.inf                                             |   2 +-
 Features/Intel/Debugging/AcpiDebugFeaturePkg/AcpiDebugDxeSmm/AcpiDebugSmm.inf                                             |   2 +-
 Features/Intel/Debugging/AcpiDebugFeaturePkg/AcpiDebugFeaturePkg.dec                                                      |   2 +-
 Features/Intel/Debugging/AcpiDebugFeaturePkg/AcpiDebugFeaturePkg.dsc                                                      |  21 ++
 Features/Intel/Debugging/AcpiDebugFeaturePkg/Include/AcpiDebugFeature.dsc                                                 |  74 +------
 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/Network/NetworkFeaturePkg/Include/NetworkFeature.dsc                                                       |  89 +-------
 Features/Intel/Network/NetworkFeaturePkg/NetworkFeaturePkg.dsc                                                            |  18 ++
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpi/BmcAcpi.inf                                                     |   2 +-
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/BmcElog.inf                                                     |   2 +-
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Frb/FrbDxe.inf                                                          |   2 +-
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Frb/FrbPei.inf                                                          |   2 +-
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Dxe/GenericIpmi.inf                                         |   2 +-
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Pei/PeiGenericIpmi.inf                                      |   2 +-
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Smm/SmmGenericIpmi.inf                                      |   2 +-
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/IpmiFeature.dsc                                                 |  90 ++------
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/PostMemory.fdf                                                  |  16 +-
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/PreMemory.fdf                                                   |   6 +-
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiFeaturePkg.dsc                                                      |  18 ++
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiFru/IpmiFru.inf                                                     |   2 +-
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiInit/DxeIpmiInit.inf                                                |   2 +-
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiInit/PeiIpmiInit.inf                                                |   2 +-
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiBaseLib/IpmiBaseLib.inf                                     |   2 +-
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiBaseLibNull/IpmiBaseLibNull.inf                             |   2 +-
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiCommandLib/IpmiCommandLib.inf                               |   2 +-
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiPlatformHookLibNull/IpmiPlatformHookLibNull.inf             |   2 +-
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/PeiIpmiBaseLib/PeiIpmiBaseLib.inf                               |   2 +-
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/SmmIpmiBaseLib/SmmIpmiBaseLib.inf                               |   2 +-
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/OsWdt/OsWdt.inf                                                         |   2 +-
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/SolStatus/SolStatus.inf                                                 |   2 +-
 Features/Intel/OutOfBandManagement/SpcrFeaturePkg/Include/Library/SpcrDeviceLib.h                                         |   2 +-
 Features/Intel/OutOfBandManagement/SpcrFeaturePkg/Include/PostMemory.fdf                                                  |  13 ++
 Features/Intel/OutOfBandManagement/SpcrFeaturePkg/Include/PreMemory.fdf                                                   |  11 +
 Features/Intel/OutOfBandManagement/SpcrFeaturePkg/Include/SpcrFeature.dsc                                                 |  62 ------
 Features/Intel/OutOfBandManagement/SpcrFeaturePkg/Readme.md                                                               |  12 +-
 Features/Intel/OutOfBandManagement/SpcrFeaturePkg/SpcrFeaturePkg.dec                                                      |   6 +
 Features/Intel/OutOfBandManagement/SpcrFeaturePkg/SpcrFeaturePkg.dsc                                                      |  18 ++
 Features/Intel/PowerManagement/S3FeaturePkg/Include/PreMemory.fdf                                                         |   2 +-
 Features/Intel/PowerManagement/S3FeaturePkg/Include/S3Feature.dsc                                                         |  74 +------
 Features/Intel/PowerManagement/S3FeaturePkg/S3FeaturePkg.dsc                                                              |  18 ++
 Features/Intel/PowerManagement/S3FeaturePkg/S3Pei/S3Pei.inf                                                               |   2 +-
 Features/Intel/Readme.md                                                                                                  |  49 +++--
 Features/Intel/SystemInformation/SmbiosFeaturePkg/Include/PostMemory.fdf                                                  |   2 +-
 Features/Intel/SystemInformation/SmbiosFeaturePkg/Include/SmbiosFeature.dsc                                               |  54 +----
 Features/Intel/SystemInformation/SmbiosFeaturePkg/SmbiosBasicDxe/SmbiosBasicDxe.inf                                       |   2 +-
 Features/Intel/SystemInformation/SmbiosFeaturePkg/SmbiosFeaturePkg.dec                                                    |  10 +-
 Features/Intel/SystemInformation/SmbiosFeaturePkg/SmbiosFeaturePkg.dsc                                                    |  18 ++
 Features/Intel/TemplateFeaturePkg/Include/TemplateFeature.dsc                                                             |   2 +-
 Features/Intel/TemplateFeaturePkg/TemplateFeaturePkg.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 => MinPlatformPkg}/Include/Fdf/CommonSpiFvHeaderInfo.fdf                              |   2 +-
 Platform/Intel/WhitleyOpenBoardPkg/JunctionCity/PlatformPkg.fdf                                                           |  48 ++--
 Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dsc                                                                        |  44 ++++
 Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.fdf                                                                        |  54 ++---
 96 files changed, 1159 insertions(+), 1334 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
 create mode 100644 Features/Intel/OutOfBandManagement/SpcrFeaturePkg/Include/PostMemory.fdf
 create mode 100644 Features/Intel/OutOfBandManagement/SpcrFeaturePkg/Include/PreMemory.fdf
 rename Platform/Intel/{WhitleyOpenBoardPkg => MinPlatformPkg}/Include/Fdf/CommonSpiFvHeaderInfo.fdf (88%)

--
2.27.0.windows.1


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#85583): https://edk2.groups.io/g/devel/message/85583
Mute This Topic: https://groups.io/mt/88365326/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-





More information about the edk2-devel-archive mailing list