Re: [edk2-platforms][PATCH V1 23/27] AdvancedFeaturePkg: Add missing features


Chaganty, Rangasai V
 

Reviewed-by: Sai Chaganty <rangasai.v.chaganty@intel.com>

-----Original Message-----
From: Oram, Isaac W <isaac.w.oram@intel.com>
Sent: Tuesday, January 11, 2022 6:20 PM
To: devel@edk2.groups.io
Cc: Oram, Isaac W <isaac.w.oram@intel.com>; Chaganty, Rangasai V <rangasai.v.chaganty@intel.com>; Gao, Liming <gaoliming@byosoft.com.cn>
Subject: [edk2-devel][edk2-platforms][PATCH V1 23/27] AdvancedFeaturePkg: Add missing features

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.PcdVirtualKeyboardFeatureEnab
+ le |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/BasePlatfo
+rmHookLibNull.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.PcdVirtualKeyboardFeatureEnabl
+e == 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.PcdVirtualKeyboardFeatureEnab
+ le |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.PcdVirtualKeyboardFeatureEnabl
+e == 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.PcdVirtualKeyboardFeatureEnabl
+e == 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

Join devel@edk2.groups.io to automatically receive all group messages.