Reviewed-by: Gua Guo <gua....@intel.com> 

-----Original Message-----
From: Lin, MarsX <marsx....@intel.com> 
Sent: Monday, July 10, 2023 5:02 PM
To: devel@edk2.groups.io
Cc: Lin, MarsX <marsx....@intel.com>; Dong, Guo <guo.d...@intel.com>; Ni, Ray 
<ray...@intel.com>; Rhodes, Sean <sean@starlabs.systems>; Lu, James 
<james...@intel.com>; Guo, Gua <gua....@intel.com>
Subject: [PATCH] UefiPayloadPkg: Integrate UiApp and BootManagerMenuApp into 
MultiFv

From: MarsX Lin <marsx....@intel.com>

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4347

To put UiApp.inf and BootManagerMenuApp.inf to proper FV(BDSFV)

Cc: Guo Dong <guo.d...@intel.com>
Cc: Ray Ni <ray...@intel.com>
Cc: Sean Rhodes <sean@starlabs.systems>
Cc: James Lu <james...@intel.com>
Cc: Gua Guo <gua....@intel.com>

Signed-off-by: MarsX Lin <marsx....@intel.com>
---
 .../PlatformBootManager.c                     | 55 -------------------
 .../PlatformBootManagerLib.inf                |  4 --
 UefiPayloadPkg/UefiPayloadEntry/PrintHob.c    | 25 +--------
 .../UniversalPayloadEntry.inf                 |  1 -
 UefiPayloadPkg/UefiPayloadPkg.dec             |  2 -
 UefiPayloadPkg/UefiPayloadPkg.dsc             |  8 +--
 UefiPayloadPkg/UefiPayloadPkg.fdf             |  9 ++-
 7 files changed, 11 insertions(+), 93 deletions(-)

diff --git 
a/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManager.c 
b/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManager.c
index 4a0219624d..a4a49da0e9 100644
--- a/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManager.c
+++ b/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManager.c
@@ -9,8 +9,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 

 #include "PlatformBootManager.h"

 #include "PlatformConsole.h"

-#include <Guid/BootManagerMenu.h>

-#include <Library/HobLib.h>

 #include <Protocol/FirmwareVolume2.h>

 

 /**

@@ -364,56 +362,3 @@ PlatformBootManagerUnableToBoot (
 {

   return;

 }

-

-/**

-  Get/update PcdBootManagerMenuFile from GUID HOB which will be assigned in 
bootloader.

-

-  @param  ImageHandle   The firmware allocated handle for the EFI image.

-  @param  SystemTable   A pointer to the EFI System Table.

-

-  @retval EFI_SUCCESS       The entry point is executed successfully.

-  @retval other             Some error occurs.

-

-**/

-EFI_STATUS

-EFIAPI

-PlatformBootManagerLibConstructor (

-  IN EFI_HANDLE        ImageHandle,

-  IN EFI_SYSTEM_TABLE  *SystemTable

-  )

-{

-  EFI_STATUS                           Status;

-  UINTN                                Size;

-  VOID                                 *GuidHob;

-  UNIVERSAL_PAYLOAD_GENERIC_HEADER     *GenericHeader;

-  UNIVERSAL_PAYLOAD_BOOT_MANAGER_MENU  *BootManagerMenuFile;

-

-  GuidHob = GetFirstGuidHob (&gEdkiiBootManagerMenuFileGuid);

-

-  if (GuidHob == NULL) {

-    //

-    // If the HOB is not create, the default value of PcdBootManagerMenuFile 
will be used.

-    //

-    return EFI_SUCCESS;

-  }

-

-  GenericHeader = (UNIVERSAL_PAYLOAD_GENERIC_HEADER *)GET_GUID_HOB_DATA 
(GuidHob);

-  if ((sizeof (UNIVERSAL_PAYLOAD_GENERIC_HEADER) > GET_GUID_HOB_DATA_SIZE 
(GuidHob)) || (GenericHeader->Length > GET_GUID_HOB_DATA_SIZE (GuidHob))) {

-    return EFI_NOT_FOUND;

-  }

-

-  if (GenericHeader->Revision == UNIVERSAL_PAYLOAD_BOOT_MANAGER_MENU_REVISION) 
{

-    BootManagerMenuFile = (UNIVERSAL_PAYLOAD_BOOT_MANAGER_MENU 
*)GET_GUID_HOB_DATA (GuidHob);

-    if (BootManagerMenuFile->Header.Length < 
UNIVERSAL_PAYLOAD_SIZEOF_THROUGH_FIELD (UNIVERSAL_PAYLOAD_BOOT_MANAGER_MENU, 
FileName)) {

-      return EFI_NOT_FOUND;

-    }

-

-    Size   = sizeof (BootManagerMenuFile->FileName);

-    Status = PcdSetPtrS (PcdBootManagerMenuFile, &Size, 
&BootManagerMenuFile->FileName);

-    ASSERT_EFI_ERROR (Status);

-  } else {

-    return EFI_NOT_FOUND;

-  }

-

-  return EFI_SUCCESS;

-}

diff --git 
a/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf 
b/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
index a3951b7a7e..ff92c95227 100644
--- a/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
+++ b/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
@@ -13,7 +13,6 @@
   MODULE_TYPE                    = DXE_DRIVER

   VERSION_STRING                 = 1.0

   LIBRARY_CLASS                  = PlatformBootManagerLib|DXE_DRIVER

-  CONSTRUCTOR                    = PlatformBootManagerLibConstructor

 

 #

 # The following information is for reference only and not required by the 
build tools.

@@ -48,11 +47,9 @@
   HiiLib

   PrintLib

   PlatformHookLib

-  HobLib

 

 [Guids]

   gEfiEndOfDxeEventGroupGuid

-  gEdkiiBootManagerMenuFileGuid

   gUefiShellFileGuid

 

 [Protocols]

@@ -75,5 +72,4 @@
   gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits

   gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity

   gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits

-  gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile

   gUefiPayloadPkgTokenSpaceGuid.PcdBootManagerEscape

diff --git a/UefiPayloadPkg/UefiPayloadEntry/PrintHob.c 
b/UefiPayloadPkg/UefiPayloadEntry/PrintHob.c
index e959be5d95..3b2b7788d4 100644
--- a/UefiPayloadPkg/UefiPayloadEntry/PrintHob.c
+++ b/UefiPayloadPkg/UefiPayloadEntry/PrintHob.c
@@ -10,7 +10,6 @@
 #include <UniversalPayload/ExtraData.h>

 #include <Guid/MemoryTypeInformation.h>

 #include <Guid/AcpiBoardInfoGuid.h>

-#include <Guid/BootManagerMenu.h>

 

 #define ROW_LIMITER  16

 

@@ -437,27 +436,6 @@ PrintMemoryTypeInfoGuidHob (
   return EFI_SUCCESS;

 }

 

-/**

-  Print the information in EdkiiBootManagerMenuFileGuid.

-  @param[in] HobRaw          A pointer to the start of 
gEdkiiBootManagerMenuFileGuid HOB.

-  @param[in] HobLength       The size of the HOB data buffer.

-  @retval EFI_SUCCESS        If it completed successfully.

-**/

-EFI_STATUS

-PrintBootManagerMenuGuidHob (

-  IN  UINT8   *HobRaw,

-  IN  UINT16  HobLength

-  )

-{

-  UNIVERSAL_PAYLOAD_BOOT_MANAGER_MENU  *BootManagerMenuFile;

-

-  BootManagerMenuFile = (UNIVERSAL_PAYLOAD_BOOT_MANAGER_MENU 
*)GET_GUID_HOB_DATA (HobRaw);

-  ASSERT (HobLength >= sizeof (*BootManagerMenuFile));

-  DEBUG ((DEBUG_INFO, "   Revision  = 0x%x\n", 
BootManagerMenuFile->Header.Revision));

-  DEBUG ((DEBUG_INFO, "   Length    = 0x%x\n", 
BootManagerMenuFile->Header.Length));

-  DEBUG ((DEBUG_INFO, "   FileName  = %g\n", &BootManagerMenuFile->FileName));

-  return EFI_SUCCESS;

-}

 

 //

 // Mappint table for dump Guid Hob information.

@@ -471,8 +449,7 @@ GUID_HOB_PRINT_HANDLE  GuidHobPrintHandleTable[] = {
   { &gUefiAcpiBoardInfoGuid,                 PrintAcpiBoardInfoGuidHob,     
"gUefiAcpiBoardInfoGuid(Acpi Guid)"                           },

   { &gUniversalPayloadPciRootBridgeInfoGuid, PrintPciRootBridgeInfoGuidHob, 
"gUniversalPayloadPciRootBridgeInfoGuid(Pci Guid)"            },

   { &gEfiMemoryTypeInformationGuid,          PrintMemoryTypeInfoGuidHob,    
"gEfiMemoryTypeInformationGuid(Memory Type Information Guid)" },

-  { &gUniversalPayloadExtraDataGuid,         PrintExtraDataGuidHob,         
"gUniversalPayloadExtraDataGuid(PayLoad Extra Data Guid)"     },

-  { &gEdkiiBootManagerMenuFileGuid,          PrintBootManagerMenuGuidHob,   
"gEdkiiBootManagerMenuFileGuid(Boot Manager Menu File Guid)"  }

+  { &gUniversalPayloadExtraDataGuid,         PrintExtraDataGuidHob,         
"gUniversalPayloadExtraDataGuid(PayLoad Extra Data Guid)"     }

 };

 

 /**

diff --git a/UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.inf 
b/UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.inf
index c4f4f28eaa..5112cdc1e5 100644
--- a/UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.inf
+++ b/UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.inf
@@ -69,7 +69,6 @@
   gUniversalPayloadAcpiTableGuid

   gUniversalPayloadPciRootBridgeInfoGuid

   gUniversalPayloadSmbios3TableGuid

-  gEdkiiBootManagerMenuFileGuid

 

 [FeaturePcd.IA32]

   gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode      ## CONSUMES

diff --git a/UefiPayloadPkg/UefiPayloadPkg.dec 
b/UefiPayloadPkg/UefiPayloadPkg.dec
index 8d111f3a90..e2e4a79db3 100644
--- a/UefiPayloadPkg/UefiPayloadPkg.dec
+++ b/UefiPayloadPkg/UefiPayloadPkg.dec
@@ -29,8 +29,6 @@
   #

   gBmpImageGuid                           = { 0x878AC2CC, 0x5343, 0x46F2, { 
0xB5, 0x63, 0x51, 0xF8, 0x9D, 0xAF, 0x56, 0xBA } }

 

-  ##include/Guid/BootManagerMenu.h

-  gEdkiiBootManagerMenuFileGuid = { 0xdf939333, 0x42fc, 0x4b2a, { 0xa5, 0x9e, 
0xbb, 0xae, 0x82, 0x81, 0xfe, 0xef }}

   gEdkiiDebugPrintErrorLevelGuid = { 0xad82f436, 0x75c5, 0x4aa9, { 0x92, 0x93, 
0xc5, 0x55, 0x0a, 0x7f, 0xf9, 0x71 }}

   gUefiAcpiBoardInfoGuid   = {0xad3d31b, 0xb3d8, 0x4506, {0xae, 0x71, 0x2e, 
0xf1, 0x10, 0x6, 0xd9, 0xf}}

   gUefiSerialPortInfoGuid  = { 0x6c6872fe, 0x56a9, 0x4403, { 0xbb, 0x98, 0x95, 
0x8d, 0x62, 0xde, 0x87, 0xf1 } }

diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc 
b/UefiPayloadPkg/UefiPayloadPkg.dsc
index 849645a876..47812048dd 100644
--- a/UefiPayloadPkg/UefiPayloadPkg.dsc
+++ b/UefiPayloadPkg/UefiPayloadPkg.dsc
@@ -441,6 +441,7 @@
   gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE

   gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable|TRUE

 

+  gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 
0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }

   gUefiPayloadPkgTokenSpaceGuid.PcdPcdDriverFile|{ 0x57, 0x72, 0xcf, 0x80, 
0xab, 0x87, 0xf9, 0x47, 0xa3, 0xfe, 0xD5, 0x0B, 0x76, 0xd8, 0x95, 0x41 }

 

 !if $(SOURCE_DEBUG_ENABLE)

@@ -651,10 +652,9 @@
       NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf

       
NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf

   }

-  MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf {

-    <LibraryClasses>

-      
NULL|UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf

-  }

+  MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf

+

+

   PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf

   MdeModulePkg/Universal/Metronome/Metronome.inf

   MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf

diff --git a/UefiPayloadPkg/UefiPayloadPkg.fdf 
b/UefiPayloadPkg/UefiPayloadPkg.fdf
index f8c2aa8c4a..835798be1c 100644
--- a/UefiPayloadPkg/UefiPayloadPkg.fdf
+++ b/UefiPayloadPkg/UefiPayloadPkg.fdf
@@ -59,7 +59,7 @@ INF UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
 FILE FV_IMAGE = 4E35FD93-9C72-4c15-8C4B-E77F1DB2D793 {

     SECTION FV_IMAGE = DXEFV

 }

-

+!if $(UNIVERSAL_PAYLOAD) == TRUE

 !if $(NETWORK_DRIVER_ENABLE) == TRUE

 
################################################################################

 [FV.NETWORKFV]

@@ -112,6 +112,9 @@ READ_LOCK_CAP      = TRUE
 READ_LOCK_STATUS   = TRUE

 

 INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf

+INF RuleOverride = UI MdeModulePkg/Application/UiApp/UiApp.inf

+INF MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf

+!endif

 

 [FV.DXEFV]

 FvNameGuid         = 8063C21A-8E58-4576-95CE-089E87975D23

@@ -158,8 +161,6 @@ INF 
MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
 !endif

 INF UefiCpuPkg/CpuDxe/CpuDxe.inf

 

-INF RuleOverride = UI MdeModulePkg/Application/UiApp/UiApp.inf

-INF MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf

 INF PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf

 INF MdeModulePkg/Universal/Metronome/Metronome.inf

 INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf

@@ -305,6 +306,8 @@ INF  
MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResour
 

 !if $(UNIVERSAL_PAYLOAD) == FALSE

 INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf

+INF RuleOverride = UI MdeModulePkg/Application/UiApp/UiApp.inf

+INF MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf

 #

 # UEFI network modules

 #

-- 
2.39.1.windows.1



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


Reply via email to