<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body>
<div>
<div>
<div dir="ltr">Reviewed-by: Ray Ni <Ray.ni@intel.com></div>
</div>
<div id="ms-outlook-mobile-signature">
<div><br>
</div>
<div style="direction: ltr;">thanks,</div>
<div style="direction: ltr;">ray</div>
</div>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Lu, James <james.lu@intel.com><br>
<b>Sent:</b> Friday, July 8, 2022 12:15:09 AM<br>
<b>To:</b> devel@edk2.groups.io <devel@edk2.groups.io><br>
<b>Cc:</b> Lu, James <james.lu@intel.com>; Dong, Guo <guo.dong@intel.com>; Ni, Ray <ray.ni@intel.com>; Guo, Gua <gua.guo@intel.com><br>
<b>Subject:</b> [PATCH v3] UefiPayloadPkg: Add macro to support selective driver in UPL</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">From: James Lu <james.lu@intel.com><br>
<br>
REF: <a href="https://bugzilla.tianocore.org/show_bug.cgi?id=3967">https://bugzilla.tianocore.org/show_bug.cgi?id=3967</a><br>
<br>
Add macros to decide modules built into UPL.elf.<br>
<br>
Macro list:<br>
 - GENERIC_MEMORY_TEST_ENABLE: GenericMemoryTestDxe<br>
 - MEMORY_TEST: NullMemoryTestDxe or GenericMemoryDxe<br>
 - ATA_ENABLE: SataControllerDxe, AtaBusDxe<br>
 - SD_ENABLE: SdMmcPciDxe, EmmcDxe, SdDxe<br>
 - PS2_MOUSE_ENABLE: Ps2MouseDxe<br>
<br>
Cc: Guo Dong <guo.dong@intel.com><br>
Cc: Ray Ni <ray.ni@intel.com><br>
Cc: Gua Guo <gua.guo@intel.com><br>
Signed-off-by: James Lu <james.lu@intel.com><br>
---<br>
 UefiPayloadPkg/UefiPayloadPkg.dsc | 21 ++++++++++++++++++++<br>
 UefiPayloadPkg/UefiPayloadPkg.fdf | 14 ++++++++++++-<br>
 2 files changed, 34 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc b/UefiPayloadPkg/UefiPayloadPkg.dsc<br>
index cfcf38578d..ec79914f45 100644<br>
--- a/UefiPayloadPkg/UefiPayloadPkg.dsc<br>
+++ b/UefiPayloadPkg/UefiPayloadPkg.dsc<br>
@@ -36,7 +36,16 @@<br>
   DEFINE PLATFORM_BOOT_TIMEOUT        = 3<br>
<br>
   DEFINE ABOVE_4G_MEMORY              = TRUE<br>
<br>
   DEFINE BOOT_MANAGER_ESCAPE          = FALSE<br>
<br>
+  DEFINE ATA_ENABLE                   = TRUE<br>
<br>
+  DEFINE SD_ENABLE                    = TRUE<br>
<br>
+  DEFINE PS2_MOUSE_ENABLE             = TRUE<br>
<br>
   DEFINE SD_MMC_TIMEOUT               = 1000000<br>
<br>
+<br>
<br>
+  #<br>
<br>
+  # NULL:    NullMemoryTestDxe<br>
<br>
+  # GENERIC: GenericMemoryTestDxe<br>
<br>
+  #<br>
<br>
+  DEFINE MEMORY_TEST                  = NULL<br>
<br>
   #<br>
<br>
   # SBL:      UEFI payload for Slim Bootloader<br>
<br>
   # COREBOOT: UEFI payload for coreboot<br>
<br>
@@ -596,7 +605,11 @@<br>
   MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf<br>
<br>
   UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf<br>
<br>
   MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf<br>
<br>
+!if $(MEMORY_TEST) == "GENERIC"<br>
<br>
+  MdeModulePkg/Universal/MemoryTest/GenericMemoryTestDxe/GenericMemoryTestDxe.inf<br>
<br>
+!elseif $(MEMORY_TEST) == "NULL"<br>
<br>
   MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf<br>
<br>
+!endif<br>
<br>
   MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf<br>
<br>
   MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf<br>
<br>
   MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf<br>
<br>
@@ -631,8 +644,10 @@<br>
   MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf<br>
<br>
   MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf<br>
<br>
   FatPkg/EnhancedFatDxe/Fat.inf<br>
<br>
+!if $(ATA_ENABLE) == TRUE<br>
<br>
   MdeModulePkg/Bus/Pci/SataControllerDxe/SataControllerDxe.inf<br>
<br>
   MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf<br>
<br>
+!endif<br>
<br>
   MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf<br>
<br>
   MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf<br>
<br>
   MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf<br>
<br>
@@ -644,9 +659,11 @@<br>
   #<br>
<br>
   # SD/eMMC Support<br>
<br>
   #<br>
<br>
+!if $(SD_ENABLE) == TRUE<br>
<br>
   MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.inf<br>
<br>
   MdeModulePkg/Bus/Sd/EmmcDxe/EmmcDxe.inf<br>
<br>
   MdeModulePkg/Bus/Sd/SdDxe/SdDxe.inf<br>
<br>
+!endif<br>
<br>
 <br>
<br>
   #<br>
<br>
   # Usb Support<br>
<br>
@@ -671,7 +688,9 @@<br>
 !if $(PS2_KEYBOARD_ENABLE) == TRUE<br>
<br>
   MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf<br>
<br>
 !endif<br>
<br>
+!if $(PS2_MOUSE_ENABLE) == TRUE<br>
<br>
   MdeModulePkg/Bus/Isa/Ps2MouseDxe/Ps2MouseDxe.inf<br>
<br>
+!endif<br>
<br>
 <br>
<br>
   #<br>
<br>
   # Console Support<br>
<br>
@@ -742,12 +761,14 @@<br>
       #  This should be FALSE for compiling the dynamic command.<br>
<br>
       gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE<br>
<br>
   }<br>
<br>
+!if $(PERFORMANCE_MEASUREMENT_ENABLE) == TRUE<br>
<br>
   ShellPkg/DynamicCommand/DpDynamicCommand/DpDynamicCommand.inf {<br>
<br>
     <PcdsFixedAtBuild><br>
<br>
       ## This flag is used to control initialization of the shell library<br>
<br>
       #  This should be FALSE for compiling the dynamic command.<br>
<br>
       gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE<br>
<br>
   }<br>
<br>
+!endif<br>
<br>
   ShellPkg/Application/Shell/Shell.inf {<br>
<br>
     <PcdsFixedAtBuild><br>
<br>
       ## This flag is used to control initialization of the shell library<br>
<br>
diff --git a/UefiPayloadPkg/UefiPayloadPkg.fdf b/UefiPayloadPkg/UefiPayloadPkg.fdf<br>
index c7b04978ad..35f79be2f0 100644<br>
--- a/UefiPayloadPkg/UefiPayloadPkg.fdf<br>
+++ b/UefiPayloadPkg/UefiPayloadPkg.fdf<br>
@@ -149,7 +149,11 @@ INF PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf<br>
 <br>
<br>
 INF UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf<br>
<br>
 INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf<br>
<br>
-INF MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf<br>
<br>
+!if $(MEMORY_TEST) == "GENERIC"<br>
<br>
+INF  MdeModulePkg/Universal/MemoryTest/GenericMemoryTestDxe/GenericMemoryTestDxe.inf<br>
<br>
+!elseif $(MEMORY_TEST) == "NULL"<br>
<br>
+INF  MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf<br>
<br>
+!endif<br>
<br>
 INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf<br>
<br>
 INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf<br>
<br>
 INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf<br>
<br>
@@ -176,7 +180,9 @@ INF OvmfPkg/SioBusDxe/SioBusDxe.inf<br>
 !if $(PS2_KEYBOARD_ENABLE) == TRUE<br>
<br>
 INF MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf<br>
<br>
 !endif<br>
<br>
+!if $(PS2_MOUSE_ENABLE) == TRUE<br>
<br>
 INF MdeModulePkg/Bus/Isa/Ps2MouseDxe/Ps2MouseDxe.inf<br>
<br>
+!endif<br>
<br>
 <br>
<br>
 #<br>
<br>
 # Console Support<br>
<br>
@@ -195,8 +201,10 @@ INF UefiPayloadPkg/GraphicsOutputDxe/GraphicsOutputDxe.inf<br>
 INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf<br>
<br>
 INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf<br>
<br>
 INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf<br>
<br>
+!if $(ATA_ENABLE) == TRUE<br>
<br>
 INF MdeModulePkg/Bus/Pci/SataControllerDxe/SataControllerDxe.inf<br>
<br>
 INF MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf<br>
<br>
+!endif<br>
<br>
 INF MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf<br>
<br>
 INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf<br>
<br>
 INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf<br>
<br>
@@ -209,9 +217,11 @@ INF FatPkg/EnhancedFatDxe/Fat.inf<br>
 #<br>
<br>
 # SD/eMMC Support<br>
<br>
 #<br>
<br>
+!if $(SD_ENABLE) == TRUE<br>
<br>
 INF MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.inf<br>
<br>
 INF MdeModulePkg/Bus/Sd/EmmcDxe/EmmcDxe.inf<br>
<br>
 INF MdeModulePkg/Bus/Sd/SdDxe/SdDxe.inf<br>
<br>
+!endif<br>
<br>
 <br>
<br>
 #<br>
<br>
 # Usb Support<br>
<br>
@@ -241,7 +251,9 @@ INF  MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf<br>
 #<br>
<br>
 !if $(SHELL_TYPE) == BUILD_SHELL<br>
<br>
 INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf<br>
<br>
+!if $(PERFORMANCE_MEASUREMENT_ENABLE) == TRUE<br>
<br>
 INF ShellPkg/DynamicCommand/DpDynamicCommand/DpDynamicCommand.inf<br>
<br>
+!endif<br>
<br>
 INF ShellPkg/Application/Shell/Shell.inf<br>
<br>
 !endif<br>
<br>
 <br>
<br>
-- <br>
2.26.2.windows.1<br>
<br>
</div>
</span></font></div>
</body>
</html>


 <div width="1" style="color:white;clear:both">_._,_._,_</div> <hr>   Groups.io Links:<p>   You receive all messages sent to this group.    <p> <a target="_blank" href="https://edk2.groups.io/g/devel/message/91145">View/Reply Online (#91145)</a> |    |  <a target="_blank" href="https://groups.io/mt/92231909/1813853">Mute This Topic</a>  | <a href="https://edk2.groups.io/g/devel/post">New Topic</a><br>    <a href="https://edk2.groups.io/g/devel/editsub/1813853">Your Subscription</a> | <a href="mailto:devel+owner@edk2.groups.io">Contact Group Owner</a> |  <a href="https://edk2.groups.io/g/devel/unsub">Unsubscribe</a>  [edk2-devel-archive@redhat.com]<br> <div width="1" style="color:white;clear:both">_._,_._,_</div>