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

-----Original Message-----
From: Oram, Isaac W <isaac.w.o...@intel.com> 
Sent: Tuesday, January 11, 2022 6:20 PM
To: devel@edk2.groups.io
Cc: Oram, Isaac W <isaac.w.o...@intel.com>; Chaganty, Rangasai V 
<rangasai.v.chaga...@intel.com>; Gao, Liming <gaolim...@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.chaga...@intel.com>
Cc: Liming Gao <gaolim...@byosoft.com.cn>

Signed-off-by: Isaac Oram <isaac.w.o...@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



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#85702): https://edk2.groups.io/g/devel/message/85702
Mute This Topic: https://groups.io/mt/88365344/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to