[edk2-devel] [PATCH] Remove temporary build workaround in Features/Intel/AdvancedFeaturePkg

Heng Luo heng.luo at intel.com
Fri Apr 24 07:31:10 UTC 2020


Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2688

Remove Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround,
Add Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
to support Feature PCDs.
Use AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc instead of
AdvancedFeaturePkg/TemporaryBuildWorkaround/TemporaryBuildWorkaround.dsc

Cc: Liming Gao <liming.gao at intel.com>
Cc: Eric Dong <eric.dong at intel.com>
Cc: Ray Ni <ray.ni at intel.com>
Signed-off-by: Heng Luo <heng.luo at intel.com>
---
 Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc                                |  2 +-
 Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc                       | 41 +++++++++++++++++++++++++++++++++++++++++
 Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/TemporaryBuildWorkaround.c   | 31 -------------------------------
 Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/TemporaryBuildWorkaround.dsc | 76 ----------------------------------------------------------------------------
 Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/TemporaryBuildWorkaround.inf | 60 ------------------------------------------------------------
 Platform/Intel/CometlakeOpenBoardPkg/CometlakeURvp/OpenBoardPkg.dsc                     |  2 +-
 Platform/Intel/KabylakeOpenBoardPkg/GalagoPro3/OpenBoardPkg.dsc                         |  2 +-
 Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkg.dsc                       |  2 +-
 Platform/Intel/SimicsOpenBoardPkg/BoardX58Ich10/OpenBoardPkg.dsc                        |  2 +-
 Platform/Intel/WhiskeylakeOpenBoardPkg/UpXtreme/OpenBoardPkg.dsc                        |  2 +-
 Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/OpenBoardPkg.dsc                 |  2 +-
 11 files changed, 48 insertions(+), 174 deletions(-)

diff --git a/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc b/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc
index ea879680ba..e509ef3e1b 100644
--- a/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc
+++ b/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc
@@ -30,7 +30,7 @@
   PEI_ARCH                            = IA32
   DXE_ARCH                            = X64
 
-!include AdvancedFeaturePkg/TemporaryBuildWorkaround/TemporaryBuildWorkaround.dsc
+!include AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
 
 ################################################################################
 #
diff --git a/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc b/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
new file mode 100644
index 0000000000..2eacec18a0
--- /dev/null
+++ b/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
@@ -0,0 +1,41 @@
+## @file
+#  DSC file for defining Pcd of advanced features.
+#
+#  This file is intended to be included into another package so advanced features
+#  can be conditionally built by enabling the respective feature via its FeaturePCD.
+#
+# Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+#
+# The section references the package DEC files,
+# it allow a FeaturePCD to be used in a conditional statement
+#
+[Packages]
+  MdePkg/MdePkg.dec
+  AcpiDebugFeaturePkg/AcpiDebugFeaturePkg.dec
+  Usb3DebugFeaturePkg/Usb3DebugFeaturePkg.dec
+  NetworkFeaturePkg/NetworkFeaturePkg.dec
+  IpmiFeaturePkg/IpmiFeaturePkg.dec
+  S3FeaturePkg/S3FeaturePkg.dec
+  SmbiosFeaturePkg/SmbiosFeaturePkg.dec
+  UserAuthFeaturePkg/UserAuthFeaturePkg.dec
+  LogoFeaturePkg/LogoFeaturePkg.dec
+
+#
+# The section below sets all PCDs to FALSE in this DSC file so the feature is not enabled by default.
+# Board can set PCDs to TRUE in its DSC file to enable a subset of advanced features
+#
+[PcdsFeatureFlag]
+  gAcpiDebugFeaturePkgTokenSpaceGuid.PcdAcpiDebugFeatureEnable            |FALSE
+  gIpmiFeaturePkgTokenSpaceGuid.PcdIpmiFeatureEnable                      |FALSE
+  gNetworkFeaturePkgTokenSpaceGuid.PcdNetworkFeatureEnable                |FALSE
+  gS3FeaturePkgTokenSpaceGuid.PcdS3FeatureEnable                          |FALSE
+  gSmbiosFeaturePkgTokenSpaceGuid.PcdSmbiosFeatureEnable                  |FALSE
+  gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugFeatureEnable            |FALSE
+  gUserAuthFeaturePkgTokenSpaceGuid.PcdUserAuthenticationFeatureEnable    |FALSE
+  gLogoFeaturePkgTokenSpaceGuid.PcdLogoFeatureEnable                      |FALSE
+  gLogoFeaturePkgTokenSpaceGuid.PcdJpgEnable                              |FALSE
diff --git a/Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/TemporaryBuildWorkaround.c b/Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/TemporaryBuildWorkaround.c
deleted file mode 100644
index 2cd91b06f0..0000000000
--- a/Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/TemporaryBuildWorkaround.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/** @file
-  Source code file for a temporary build workaround.
-
-  The purpose of this workaround is described in the module INF file.
-
-Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
-SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#include <Base.h>
-#include <Library/BaseLib.h>
-
-/**
-  An empty entry point function.
-
-  @param  FileHandle  Handle of the file being invoked.
-  @param  PeiServices Describes the list of possible PEI Services.
-
-  @retval  EFI_SUCCESS  This function always returns EFI_SUCCESS.
-
-**/
-EFI_STATUS
-EFIAPI
-TemporaryBuildWorkaroundEntry (
-  IN       EFI_PEI_FILE_HANDLE  FileHandle,
-  IN CONST EFI_PEI_SERVICES     **PeiServices
-  )
-{
-  return EFI_SUCCESS;
-}
diff --git a/Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/TemporaryBuildWorkaround.dsc b/Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/TemporaryBuildWorkaround.dsc
deleted file mode 100644
index c62f9ecc6e..0000000000
--- a/Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/TemporaryBuildWorkaround.dsc
+++ /dev/null
@@ -1,76 +0,0 @@
-## @file
-# Build description file for a temporary build workaround.
-#
-# The feature enable PCD for advanced features must be referenced in an INF
-# to be referenced in DSC/FDF files. This DSC only exists in the build to
-# allow the PCDs to be referenced. This workaround does not affect the final
-# flash image or boot in any way.
-#
-# The request to update BaseTools to allow a PCD to be referenced in DSC/FDF
-# files without requiring the PCD to be referenced in an INF file is tracked
-# here: https://bugzilla.tianocore.org/show_bug.cgi?id=2270
-#
-# When the BaseTools update is complete, this file can entirely be removed
-# from this package.
-#
-# Copyright (c) 2019 - 2020, Intel Corporation. All rights reserved.<BR>
-#
-# SPDX-License-Identifier: BSD-2-Clause-Patent
-#
-##
-
-#
-# BEGIN:Temporary Build Workaround (resolution: https://bugzilla.tianocore.org/show_bug.cgi?id=2270)
-#
-
-# THIS FILE IS TEMPORARY. PLEASE TRY TO LOOK PAST THE "HACKS" ASSOCIATED WITH IT.
-#
-# With the BaseTools change requested, the changes needed to move to the end state are simply:
-#  1. Remove the !include for this file in AdvancedFeatures.dsc
-#  2. Remove this directory
-
-!if $(PLATFORM_NAME) != AdvancedFeaturePkg
-#
-# AdvancedFeaturePkg initializes all FeaturePCDs to TRUE so they can conveniently be built in one package.
-# Board packages will normally only enable (and therefore reference) a small subset of advanced features
-# relative to the board. If an INF does not reference a package DEC file (which will be the case if the
-# feature is not enabled) then the DSC must set ("define") the PCD for the conditional statements based
-# on the PCD to work.
-#
-# AdvancedFeaturePkg has no problem as it naturally has a need to set al PCDs to TRUE for build.
-# The section below sets all PCDs to FALSE in the DSC file so if the feature is not enabled by a board,
-# the build will still be successful.
-#
-[PcdsFeatureFlag]
-  gAcpiDebugFeaturePkgTokenSpaceGuid.PcdAcpiDebugFeatureEnable            |FALSE
-  gIpmiFeaturePkgTokenSpaceGuid.PcdIpmiFeatureEnable                      |FALSE
-  gNetworkFeaturePkgTokenSpaceGuid.PcdNetworkFeatureEnable                |FALSE
-  gS3FeaturePkgTokenSpaceGuid.PcdS3FeatureEnable                          |FALSE
-  gSmbiosFeaturePkgTokenSpaceGuid.PcdSmbiosFeatureEnable                  |FALSE
-  gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugFeatureEnable            |FALSE
-  gUserAuthFeaturePkgTokenSpaceGuid.PcdUserAuthenticationFeatureEnable    |FALSE
-  gLogoFeaturePkgTokenSpaceGuid.PcdLogoFeatureEnable                      |FALSE
-  gLogoFeaturePkgTokenSpaceGuid.PcdJpgEnable                              |FALSE
-!endif
-
-#
-# The LibraryClasses required to build TemporaryBuildWorkaround.inf
-# (mostly libraries requiring other libraries)
-#
-[LibraryClasses]
-  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
-  BaseMemoryLib|MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf
-  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
-  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
-  PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf
-  PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
-  PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf
-
-#
-# The driver that references all feature PCDs to satsify current build limitations
-#
-[Components]
-  AdvancedFeaturePkg/TemporaryBuildWorkaround/TemporaryBuildWorkaround.inf
-#
-# END:Temporary Build Workaround (resolution: https://bugzilla.tianocore.org/show_bug.cgi?id=2270)
-#
diff --git a/Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/TemporaryBuildWorkaround.inf b/Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/TemporaryBuildWorkaround.inf
deleted file mode 100644
index 00818fbe0a..0000000000
--- a/Features/Intel/AdvancedFeaturePkg/TemporaryBuildWorkaround/TemporaryBuildWorkaround.inf
+++ /dev/null
@@ -1,60 +0,0 @@
-### @file
-# Component information file for a temporary build workaround.
-#
-# The feature enable PCD for this package must be referenced in an INF to be
-# referenced in DSC/FDF files. This driver is only included in the build to
-# allow the PCD to be referenced. This driver is not included in the flash
-# image and does not affect the boot in any way.
-#
-# The request to update BaseTools to allow a PCD to be referenced in DSC/FDF
-# files without requiring the PCD to be referenced in an INF file is tracked
-# here: https://bugzilla.tianocore.org/show_bug.cgi?id=2270
-#
-# When the BaseTools update is complete, this file can entirely be removed
-# from this package.
-#
-# Copyright (c) 2019 - 2020, Intel Corporation. All rights reserved.<BR>
-#
-# SPDX-License-Identifier: BSD-2-Clause-Patent
-#
-###
-
-[Defines]
-  INF_VERSION       = 0x00010017
-  BASE_NAME         = TemporaryBuildWorkaround
-  FILE_GUID         = 8846A81E-F552-4917-81F5-80B62E4EFBAC
-  VERSION_STRING    = 1.0
-  MODULE_TYPE       = PEIM
-  ENTRY_POINT       = TemporaryBuildWorkaroundEntry
-
-[LibraryClasses]
-  BaseLib
-  PeimEntryPoint
-
-[Packages]
-  MdePkg/MdePkg.dec
-  Debugging/AcpiDebugFeaturePkg/AcpiDebugFeaturePkg.dec
-  Debugging/Usb3DebugFeaturePkg/Usb3DebugFeaturePkg.dec
-  Network/NetworkFeaturePkg/NetworkFeaturePkg.dec
-  OutOfBandManagement/IpmiFeaturePkg/IpmiFeaturePkg.dec
-  PowerManagement/S3FeaturePkg/S3FeaturePkg.dec
-  SystemInformation/SmbiosFeaturePkg/SmbiosFeaturePkg.dec
-  UserInterface/UserAuthFeaturePkg/UserAuthFeaturePkg.dec
-  UserInterface/LogoFeaturePkg/LogoFeaturePkg.dec
-
-[FeaturePcd]
-  gAcpiDebugFeaturePkgTokenSpaceGuid.PcdAcpiDebugFeatureEnable
-  gIpmiFeaturePkgTokenSpaceGuid.PcdIpmiFeatureEnable
-  gNetworkFeaturePkgTokenSpaceGuid.PcdNetworkFeatureEnable
-  gS3FeaturePkgTokenSpaceGuid.PcdS3FeatureEnable
-  gSmbiosFeaturePkgTokenSpaceGuid.PcdSmbiosFeatureEnable
-  gUsb3DebugFeaturePkgTokenSpaceGuid.PcdUsb3DebugFeatureEnable
-  gUserAuthFeaturePkgTokenSpaceGuid.PcdUserAuthenticationFeatureEnable
-  gLogoFeaturePkgTokenSpaceGuid.PcdLogoFeatureEnable
-  gLogoFeaturePkgTokenSpaceGuid.PcdJpgEnable
-
-[Sources]
-  TemporaryBuildWorkaround.c
-
-[Depex]
- TRUE
diff --git a/Platform/Intel/CometlakeOpenBoardPkg/CometlakeURvp/OpenBoardPkg.dsc b/Platform/Intel/CometlakeOpenBoardPkg/CometlakeURvp/OpenBoardPkg.dsc
index 14e82ba34d..8e04ca8a4f 100644
--- a/Platform/Intel/CometlakeOpenBoardPkg/CometlakeURvp/OpenBoardPkg.dsc
+++ b/Platform/Intel/CometlakeOpenBoardPkg/CometlakeURvp/OpenBoardPkg.dsc
@@ -39,7 +39,7 @@
   #
   # Include PCD configuration for this board.
   #
-  !include AdvancedFeaturePkg/TemporaryBuildWorkaround/TemporaryBuildWorkaround.dsc
+  !include AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
   !include OpenBoardPkgPcd.dsc
   !include AdvancedFeaturePkg/Include/AdvancedFeatures.dsc
 
diff --git a/Platform/Intel/KabylakeOpenBoardPkg/GalagoPro3/OpenBoardPkg.dsc b/Platform/Intel/KabylakeOpenBoardPkg/GalagoPro3/OpenBoardPkg.dsc
index bf63d53bef..7bb8cd5279 100644
--- a/Platform/Intel/KabylakeOpenBoardPkg/GalagoPro3/OpenBoardPkg.dsc
+++ b/Platform/Intel/KabylakeOpenBoardPkg/GalagoPro3/OpenBoardPkg.dsc
@@ -38,7 +38,7 @@
   #
   # Include PCD configuration for this board.
   #
-  !include AdvancedFeaturePkg/TemporaryBuildWorkaround/TemporaryBuildWorkaround.dsc
+  !include AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
   !include OpenBoardPkgPcd.dsc
   !include AdvancedFeaturePkg/Include/AdvancedFeatures.dsc
 
diff --git a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkg.dsc b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkg.dsc
index 044688ba4e..ef82f8b716 100644
--- a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkg.dsc
+++ b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkg.dsc
@@ -37,7 +37,7 @@
   #
   # Include PCD configuration for this board.
   #
-  !include AdvancedFeaturePkg/TemporaryBuildWorkaround/TemporaryBuildWorkaround.dsc
+  !include AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
   !include OpenBoardPkgPcd.dsc
   !include AdvancedFeaturePkg/Include/AdvancedFeatures.dsc
 
diff --git a/Platform/Intel/SimicsOpenBoardPkg/BoardX58Ich10/OpenBoardPkg.dsc b/Platform/Intel/SimicsOpenBoardPkg/BoardX58Ich10/OpenBoardPkg.dsc
index 350a75a313..3bafc1ff0a 100644
--- a/Platform/Intel/SimicsOpenBoardPkg/BoardX58Ich10/OpenBoardPkg.dsc
+++ b/Platform/Intel/SimicsOpenBoardPkg/BoardX58Ich10/OpenBoardPkg.dsc
@@ -42,7 +42,7 @@
   DEFINE NETWORK_ISCSI_ENABLE           = FALSE
   DEFINE NETWORK_ALLOW_HTTP_CONNECTIONS = TRUE
 
-  !include AdvancedFeaturePkg/TemporaryBuildWorkaround/TemporaryBuildWorkaround.dsc
+  !include AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
   !include $(PROJECT)/OpenBoardPkgPcd.dsc
   !include AdvancedFeaturePkg/Include/AdvancedFeatures.dsc
 
diff --git a/Platform/Intel/WhiskeylakeOpenBoardPkg/UpXtreme/OpenBoardPkg.dsc b/Platform/Intel/WhiskeylakeOpenBoardPkg/UpXtreme/OpenBoardPkg.dsc
index 2ab9cb03ea..07cf311210 100644
--- a/Platform/Intel/WhiskeylakeOpenBoardPkg/UpXtreme/OpenBoardPkg.dsc
+++ b/Platform/Intel/WhiskeylakeOpenBoardPkg/UpXtreme/OpenBoardPkg.dsc
@@ -39,7 +39,7 @@
   #
   # Include PCD configuration for this board.
   #
-  !include AdvancedFeaturePkg/TemporaryBuildWorkaround/TemporaryBuildWorkaround.dsc
+  !include AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
   !include OpenBoardPkgPcd.dsc
   !include AdvancedFeaturePkg/Include/AdvancedFeatures.dsc
 
diff --git a/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/OpenBoardPkg.dsc b/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/OpenBoardPkg.dsc
index 1a9e608bd6..1dace5ee22 100644
--- a/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/OpenBoardPkg.dsc
+++ b/Platform/Intel/WhiskeylakeOpenBoardPkg/WhiskeylakeURvp/OpenBoardPkg.dsc
@@ -39,7 +39,7 @@
   #
   # Include PCD configuration for this board.
   #
-  !include AdvancedFeaturePkg/TemporaryBuildWorkaround/TemporaryBuildWorkaround.dsc
+  !include AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
   !include OpenBoardPkgPcd.dsc
   !include AdvancedFeaturePkg/Include/AdvancedFeatures.dsc
 
-- 
2.24.0.windows.2


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#58026): https://edk2.groups.io/g/devel/message/58026
Mute This Topic: https://groups.io/mt/73236633/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