From 8dab4eebe435fc28cae329867a74cee45d040d3e Mon Sep 17 00:00:00 2001 From: MarsX Lin Date: Mon, 10 Jul 2023 16:21:23 +0800 Subject: UefiPayloadPkg: Integrate UiApp and BootManagerMenuApp into MultiFv REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4347 To put UiApp.inf and BootManagerMenuApp.inf to proper FV(BDSFV) Cc: Guo Dong Cc: Ray Ni Cc: Sean Rhodes Reviewed-by: James Lu Reviewed-by: Gua Guo Signed-off-by: MarsX Lin --- .../PlatformBootManagerLib/PlatformBootManager.c | 55 ---------------------- .../PlatformBootManagerLib.inf | 4 -- UefiPayloadPkg/UefiPayloadEntry/PrintHob.c | 26 +--------- .../UefiPayloadEntry/UniversalPayloadEntry.inf | 1 - UefiPayloadPkg/UefiPayloadPkg.dec | 2 - UefiPayloadPkg/UefiPayloadPkg.dsc | 8 ++-- UefiPayloadPkg/UefiPayloadPkg.fdf | 9 ++-- 7 files changed, 11 insertions(+), 94 deletions(-) (limited to 'UefiPayloadPkg') diff --git a/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManager.c b/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManager.c index 4a02196..a4a49da 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 -#include #include /** @@ -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 a3951b7..ff92c95 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 e959be5..b63e93c 100644 --- a/UefiPayloadPkg/UefiPayloadEntry/PrintHob.c +++ b/UefiPayloadPkg/UefiPayloadEntry/PrintHob.c @@ -10,7 +10,6 @@ #include #include #include -#include #define ROW_LIMITER 16 @@ -437,28 +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. // This table can be easily extented. @@ -471,8 +448,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 c4f4f28..5112cdc 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 8d111f3..e2e4a79 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 849645a..4781204 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 { - - 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 f8c2aa8..835798b 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 # -- cgit v1.1