* [PATCH v3 0/4] UefiPayloadPkg: LinuxBoot Support in UefiPayload @ 2021-08-23 6:33 Cheng-Chieh Huang 2021-08-23 6:33 ` [PATCH v3 1/4] UefiPayloadPkg: Add LINUXBOOT payload target Cheng-Chieh Huang ` (4 more replies) 0 siblings, 5 replies; 10+ messages in thread From: Cheng-Chieh Huang @ 2021-08-23 6:33 UTC (permalink / raw) To: devel; +Cc: Cheng-Chieh Huang These are necessary patches to Support LinuxBoot in UefiPayload. With these paches, we can boot to ESXi and Windows from a linux in QEMU. Third parse: address formating comments. LinuxBoot README: https://github.com/linuxboot/edk2/blob/uefipayload/UefiPayloadPkg/README.md v3 PR to tianocore: https://github.com/tianocore/edk2/pull/1873 Cheng-Chieh Huang (4): UefiPayloadPkg: Add LINUXBOOT payload target UefiPayloadPkg: Use legacy timer in Linuxboot payload UefiPayloadPkg: Update maximum logic processor to 256 UefiPayloadPkg: Reserve Payload config in runtime services data UefiPayloadPkg/UefiPayloadPkg.dsc | 24 ++- UefiPayloadPkg/UefiPayloadPkg.fdf | 5 + .../Library/LbParseLib/LbParseLib.inf | 39 ++++ UefiPayloadPkg/Library/LbParseLib/Linuxboot.h | 47 +++++ .../Library/LbParseLib/LbParseLib.c | 187 ++++++++++++++++++ .../PciHostBridgeLib/PciHostBridgeSupport.c | 6 +- .../UefiPayloadEntry/UefiPayloadEntry.c | 4 + 7 files changed, 304 insertions(+), 8 deletions(-) create mode 100644 UefiPayloadPkg/Library/LbParseLib/LbParseLib.inf create mode 100644 UefiPayloadPkg/Library/LbParseLib/Linuxboot.h create mode 100644 UefiPayloadPkg/Library/LbParseLib/LbParseLib.c -- 2.33.0.rc2.250.ged5fa647cd-goog ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 1/4] UefiPayloadPkg: Add LINUXBOOT payload target 2021-08-23 6:33 [PATCH v3 0/4] UefiPayloadPkg: LinuxBoot Support in UefiPayload Cheng-Chieh Huang @ 2021-08-23 6:33 ` Cheng-Chieh Huang 2021-08-25 0:35 ` Ni, Ray 2021-08-23 6:33 ` [PATCH v3 2/4] UefiPayloadPkg: Use legacy timer in Linuxboot payload Cheng-Chieh Huang ` (3 subsequent siblings) 4 siblings, 1 reply; 10+ messages in thread From: Cheng-Chieh Huang @ 2021-08-23 6:33 UTC (permalink / raw) To: devel Cc: Cheng-Chieh Huang, Daniel Schaefer, Trammell Hudson, Maurice Ma, Guo Dong, Benjamin You, Ray Ni Initial commit to support linuxboot payload. Signed-off-by: Cheng-Chieh Huang <chengchieh@google.com> Cc: Cheng-Chieh Huang <chengchieh@google.com> Cc: Daniel Schaefer <daniel.schaefer@hpe.com> Cc: Trammell Hudson <hudson@trmm.net> Cc: Maurice Ma <maurice.ma@intel.com> Cc: Guo Dong <guo.dong@intel.com> Cc: Benjamin You <benjamin.you@intel.com> Cc: Ray Ni <ray.ni@intel.com> --- UefiPayloadPkg/UefiPayloadPkg.dsc | 16 +- .../Library/LbParseLib/LbParseLib.inf | 39 ++++ UefiPayloadPkg/Library/LbParseLib/Linuxboot.h | 47 +++++ .../Library/LbParseLib/LbParseLib.c | 187 ++++++++++++++++++ .../PciHostBridgeLib/PciHostBridgeSupport.c | 6 +- 5 files changed, 288 insertions(+), 7 deletions(-) create mode 100644 UefiPayloadPkg/Library/LbParseLib/LbParseLib.inf create mode 100644 UefiPayloadPkg/Library/LbParseLib/Linuxboot.h create mode 100644 UefiPayloadPkg/Library/LbParseLib/LbParseLib.c diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc b/UefiPayloadPkg/UefiPayloadPkg.dsc index bcedf1c746b4..54576ba485b7 100644 --- a/UefiPayloadPkg/UefiPayloadPkg.dsc +++ b/UefiPayloadPkg/UefiPayloadPkg.dsc @@ -33,6 +33,7 @@ [Defines] # # SBL: UEFI payload for Slim Bootloader # COREBOOT: UEFI payload for coreboot + # LINUXBOOT: UEFI payload for linuxboot # DEFINE BOOTLOADER = SBL @@ -93,6 +94,9 @@ [Defines] [BuildOptions] *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES +!if $(BOOTLOADER) == "LINUXBOOT" + *_*_*_CC_FLAGS = -D LINUXBOOT_PAYLOAD +!endif GCC:*_UNIXGCC_*_CC_FLAGS = -DMDEPKG_NDEBUG GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG INTEL:RELEASE_*_*_CC_FLAGS = /D MDEPKG_NDEBUG @@ -222,11 +226,13 @@ [LibraryClasses] !endif PlatformSupportLib|UefiPayloadPkg/Library/PlatformSupportLibNull/PlatformSupportLibNull.inf !if $(UNIVERSAL_PAYLOAD) == FALSE - !if $(BOOTLOADER) == "COREBOOT" - BlParseLib|UefiPayloadPkg/Library/CbParseLib/CbParseLib.inf - !else - BlParseLib|UefiPayloadPkg/Library/SblParseLib/SblParseLib.inf - !endif + !if $(BOOTLOADER) == "COREBOOT" + BlParseLib|UefiPayloadPkg/Library/CbParseLib/CbParseLib.inf + !elseif $(BOOTLOADER) == "LINUXBOOT" + BlParseLib|UefiPayloadPkg/Library/LbParseLib/LbParseLib.inf + !else + BlParseLib|UefiPayloadPkg/Library/SblParseLib/SblParseLib.inf + !endif !endif DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf diff --git a/UefiPayloadPkg/Library/LbParseLib/LbParseLib.inf b/UefiPayloadPkg/Library/LbParseLib/LbParseLib.inf new file mode 100644 index 000000000000..d75ba8db8cf3 --- /dev/null +++ b/UefiPayloadPkg/Library/LbParseLib/LbParseLib.inf @@ -0,0 +1,39 @@ +## @file +# Linuxboot Table Parse Library. +# +# Copyright (c) 2021, the u-root Authors. All rights reserved.<BR> +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = LbParseLib + FILE_GUID = DBA15E1E-4C16-47DF-93C0-AB5888ED14C3 + MODULE_TYPE = BASE + VERSION_STRING = 1.0 + LIBRARY_CLASS = BlParseLib + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 +# + +[Sources] + LbParseLib.c + +[Packages] + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + UefiPayloadPkg/UefiPayloadPkg.dec + +[LibraryClasses] + BaseLib + BaseMemoryLib + IoLib + DebugLib + PcdLib + +[Pcd] + gUefiPayloadPkgTokenSpaceGuid.PcdPayloadFdMemBase diff --git a/UefiPayloadPkg/Library/LbParseLib/Linuxboot.h b/UefiPayloadPkg/Library/LbParseLib/Linuxboot.h new file mode 100644 index 000000000000..b3b7e70a7ccb --- /dev/null +++ b/UefiPayloadPkg/Library/LbParseLib/Linuxboot.h @@ -0,0 +1,47 @@ +/** @file + LinuxBoot PEI module include file. +**/ +#ifndef __LINUXBOOT_PEI_H_INCLUDED__ +#define __LINUXBOOT_PEI_H_INCLUDED__ + +#if defined(_MSC_VER) +#pragma warning(disable : 4200) +#endif + +#pragma pack(1) +typedef struct SerialPortConfigStruct { + UINT32 Type; + UINT32 BaseAddr; + UINT32 Baud; + UINT32 RegWidth; + UINT32 InputHertz; + UINT32 UartPciAddr; +} SerialPortConfig; + +typedef struct MemoryMapEntryStruct { + UINT64 Start; + UINT64 End; + UINT32 Type; +} MemoryMapEntry; + +typedef struct UefiPayloadConfigStruct { + UINT64 Version; + UINT64 AcpiBase; + UINT64 AcpiSize; + UINT64 SmbiosBase; + UINT64 SmbiosSize; + SerialPortConfig SerialConfig; + UINT32 NumMemoryMapEntries; + MemoryMapEntry MemoryMapEntries[0]; +} UefiPayloadConfig; +#pragma pack() + +#define UEFI_PAYLOAD_CONFIG_VERSION 1 + +#define LINUXBOOT_MEM_RAM 1 +#define LINUXBOOT_MEM_DEFAULT 2 +#define LINUXBOOT_MEM_ACPI 3 +#define LINUXBOOT_MEM_NVS 4 +#define LINUXBOOT_MEM_RESERVED 5 + +#endif // __LINUXBOOT_PEI_H_INCLUDED__ diff --git a/UefiPayloadPkg/Library/LbParseLib/LbParseLib.c b/UefiPayloadPkg/Library/LbParseLib/LbParseLib.c new file mode 100644 index 000000000000..48d174dfc078 --- /dev/null +++ b/UefiPayloadPkg/Library/LbParseLib/LbParseLib.c @@ -0,0 +1,187 @@ +/** @file + This library will parse the linuxboot table in memory and extract those required + information. + + Copyright (c) 2021, the u-root Authors. All rights reserved.<BR> + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + + +#include <IndustryStandard/Acpi.h> +#include <IndustryStandard/SmBios.h> +#include <Library/BaseLib.h> +#include <Library/BaseMemoryLib.h> +#include <Library/BlParseLib.h> +#include <Library/DebugLib.h> +#include <Library/IoLib.h> +#include <Library/PcdLib.h> +#include <Linuxboot.h> +#include <Uefi/UefiBaseType.h> + +// Retrieve UefiPayloadConfig from Linuxboot's uefiboot +UefiPayloadConfig* +GetUefiPayLoadConfig() +{ + UefiPayloadConfig *Config; + Config = (UefiPayloadConfig*)(UINTN)(PcdGet32(PcdPayloadFdMemBase) - SIZE_64KB); + if (Config->Version != UEFI_PAYLOAD_CONFIG_VERSION) { + DEBUG((DEBUG_ERROR, "Expect payload Config version: %d, but get %d\n", + UEFI_PAYLOAD_CONFIG_VERSION, Config->Version)); + CpuDeadLoop (); + } + return Config; +} + +// Align the address and add memory rang to MemInfoCallback +VOID +AddMemoryRange ( + IN BL_MEM_INFO_CALLBACK MemInfoCallback, + IN UINTN start, + IN UINTN end, + IN int type + ) { + MEMROY_MAP_ENTRY MemoryMap; + UINTN AlignedStart; + UINTN AlignedEnd; + AlignedStart = ALIGN_VALUE(start, SIZE_4KB); + AlignedEnd = ALIGN_VALUE(end, SIZE_4KB); + // Conservative adjustment on Memory map. This should happen when booting from + // non UEFI bios and it may report a memory region less than 4KB. + if (AlignedStart > start && type != LINUXBOOT_MEM_RAM) { + AlignedStart -= SIZE_4KB; + } + if (AlignedEnd > end + 1 && type == LINUXBOOT_MEM_RAM) { + AlignedEnd -= SIZE_4KB; + } + MemoryMap.Base = AlignedStart; + MemoryMap.Size = AlignedEnd - AlignedStart; + MemoryMap.Type = type; + MemoryMap.Flag = 0; + MemInfoCallback(&MemoryMap, NULL); +} + +/** + Acquire the memory information from the linuxboot table in memory. + + @param MemInfoCallback The callback routine + @param Params Pointer to the callback routine parameter + + @retval RETURN_SUCCESS Successfully find out the memory information. + @retval RETURN_NOT_FOUND Failed to find the memory information. + +**/ +RETURN_STATUS +EFIAPI +ParseMemoryInfo ( + IN BL_MEM_INFO_CALLBACK MemInfoCallback, + IN VOID* Params + ) { + UefiPayloadConfig *Config; + MemoryMapEntry* entry; + int Index; + + Config = GetUefiPayLoadConfig(); + + DEBUG((DEBUG_INFO, "MemoryMap #entries: %d\n", Config->NumMemoryMapEntries)); + + entry = &Config->MemoryMapEntries[0]; + for (Index = 0; Index < Config->NumMemoryMapEntries; Index++) { + DEBUG((DEBUG_INFO, "Start: 0x%lx End: 0x%lx Type:%d\n", entry->Start, + entry->End, entry->Type)); + AddMemoryRange(MemInfoCallback, entry->Start, entry->End, entry->Type); + entry++; + } + return RETURN_SUCCESS; +} + +/** + Acquire acpi table and smbios table from linuxboot + + @param SystemTableInfo Pointer to the system table info + + @retval RETURN_SUCCESS Successfully find out the tables. + @retval RETURN_NOT_FOUND Failed to find the tables. + +**/ +RETURN_STATUS +EFIAPI +ParseSystemTable ( + OUT SYSTEM_TABLE_INFO* SystemTableInfo + ) { + UefiPayloadConfig *Config; + + Config = GetUefiPayLoadConfig(); + SystemTableInfo->AcpiTableBase = Config->AcpiBase; + SystemTableInfo->AcpiTableSize = Config->AcpiSize; + + SystemTableInfo->SmbiosTableBase = Config->SmbiosBase; + SystemTableInfo->SmbiosTableSize = Config->SmbiosSize; + + return RETURN_SUCCESS; +} + +/** + Find the serial port information + + @param SERIAL_PORT_INFO Pointer to serial port info structure + + @retval RETURN_SUCCESS Successfully find the serial port information. + @retval RETURN_NOT_FOUND Failed to find the serial port information . + +**/ +RETURN_STATUS +EFIAPI +ParseSerialInfo ( + OUT SERIAL_PORT_INFO* SerialPortInfo + ) { + UefiPayloadConfig *Config; + Config = GetUefiPayLoadConfig(); + + SerialPortInfo->BaseAddr = Config->SerialConfig.BaseAddr; + SerialPortInfo->RegWidth = Config->SerialConfig.RegWidth; + SerialPortInfo->Type = Config->SerialConfig.Type; + SerialPortInfo->Baud = Config->SerialConfig.Baud; + SerialPortInfo->InputHertz = Config->SerialConfig.InputHertz; + SerialPortInfo->UartPciAddr = Config->SerialConfig.UartPciAddr; + + return RETURN_SUCCESS; +} + +/** + Find the video frame buffer information + + @param GfxInfo Pointer to the EFI_PEI_GRAPHICS_INFO_HOB structure + + @retval RETURN_SUCCESS Successfully find the video frame buffer +information. + @retval RETURN_NOT_FOUND Failed to find the video frame buffer information . + +**/ +RETURN_STATUS +EFIAPI +ParseGfxInfo ( + OUT EFI_PEI_GRAPHICS_INFO_HOB* GfxInfo + ) { + // Not supported + return RETURN_NOT_FOUND; +} + +/** + Find the video frame buffer device information + + @param GfxDeviceInfo Pointer to the EFI_PEI_GRAPHICS_DEVICE_INFO_HOB +structure + + @retval RETURN_SUCCESS Successfully find the video frame buffer +information. + @retval RETURN_NOT_FOUND Failed to find the video frame buffer information. + +**/ +RETURN_STATUS +EFIAPI +ParseGfxDeviceInfo ( + OUT EFI_PEI_GRAPHICS_DEVICE_INFO_HOB* GfxDeviceInfo + ) { + return RETURN_NOT_FOUND; +} diff --git a/UefiPayloadPkg/Library/PciHostBridgeLib/PciHostBridgeSupport.c b/UefiPayloadPkg/Library/PciHostBridgeLib/PciHostBridgeSupport.c index b0268f05069c..a4f714f765ea 100644 --- a/UefiPayloadPkg/Library/PciHostBridgeLib/PciHostBridgeSupport.c +++ b/UefiPayloadPkg/Library/PciHostBridgeLib/PciHostBridgeSupport.c @@ -40,8 +40,9 @@ AdjustRootBridgeResource ( IN PCI_ROOT_BRIDGE_APERTURE *PMemAbove4G ) { +#ifndef LINUXBOOT_PAYLOAD UINT64 Mask; - +#endif // // For now try to downgrade everything into MEM32 since // - coreboot does not assign resource above 4GB @@ -80,7 +81,7 @@ AdjustRootBridgeResource ( PMemAbove4G->Base = MAX_UINT64; PMemAbove4G->Limit = 0; } - +#ifndef LINUXBOOT_PAYLOAD // // Align IO resource at 4K boundary // @@ -98,6 +99,7 @@ AdjustRootBridgeResource ( if (Mem->Base != MAX_UINT64) { Mem->Base &= ~Mask; } +#endif } /** -- 2.33.0.rc2.250.ged5fa647cd-goog ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v3 1/4] UefiPayloadPkg: Add LINUXBOOT payload target 2021-08-23 6:33 ` [PATCH v3 1/4] UefiPayloadPkg: Add LINUXBOOT payload target Cheng-Chieh Huang @ 2021-08-25 0:35 ` Ni, Ray 2021-09-29 19:07 ` Guo Dong 0 siblings, 1 reply; 10+ messages in thread From: Ni, Ray @ 2021-08-25 0:35 UTC (permalink / raw) To: Cheng-Chieh Huang, devel@edk2.groups.io Cc: Schaefer, Daniel, Trammell Hudson, Ma, Maurice, Dong, Guo, You, Benjamin Can you describe how LINUXBOOT payload is supported in the commit message? One line commit message is too simple for such a big feature😊 > -----Original Message----- > From: Cheng-Chieh Huang <chengchieh@google.com> > Sent: Monday, August 23, 2021 2:33 PM > To: devel@edk2.groups.io > Cc: Cheng-Chieh Huang <chengchieh@google.com>; Schaefer, Daniel <daniel.schaefer@hpe.com>; Trammell Hudson > <hudson@trmm.net>; Ma, Maurice <maurice.ma@intel.com>; Dong, Guo <guo.dong@intel.com>; You, Benjamin > <benjamin.you@intel.com>; Ni, Ray <ray.ni@intel.com> > Subject: [PATCH v3 1/4] UefiPayloadPkg: Add LINUXBOOT payload target > > Initial commit to support linuxboot payload. > > Signed-off-by: Cheng-Chieh Huang <chengchieh@google.com> > Cc: Cheng-Chieh Huang <chengchieh@google.com> > Cc: Daniel Schaefer <daniel.schaefer@hpe.com> > Cc: Trammell Hudson <hudson@trmm.net> > Cc: Maurice Ma <maurice.ma@intel.com> > Cc: Guo Dong <guo.dong@intel.com> > Cc: Benjamin You <benjamin.you@intel.com> > Cc: Ray Ni <ray.ni@intel.com> > --- > UefiPayloadPkg/UefiPayloadPkg.dsc | 16 +- > .../Library/LbParseLib/LbParseLib.inf | 39 ++++ > UefiPayloadPkg/Library/LbParseLib/Linuxboot.h | 47 +++++ > .../Library/LbParseLib/LbParseLib.c | 187 ++++++++++++++++++ > .../PciHostBridgeLib/PciHostBridgeSupport.c | 6 +- > 5 files changed, 288 insertions(+), 7 deletions(-) > create mode 100644 UefiPayloadPkg/Library/LbParseLib/LbParseLib.inf > create mode 100644 UefiPayloadPkg/Library/LbParseLib/Linuxboot.h > create mode 100644 UefiPayloadPkg/Library/LbParseLib/LbParseLib.c > > diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc b/UefiPayloadPkg/UefiPayloadPkg.dsc > index bcedf1c746b4..54576ba485b7 100644 > --- a/UefiPayloadPkg/UefiPayloadPkg.dsc > +++ b/UefiPayloadPkg/UefiPayloadPkg.dsc > @@ -33,6 +33,7 @@ [Defines] > # > # SBL: UEFI payload for Slim Bootloader > # COREBOOT: UEFI payload for coreboot > + # LINUXBOOT: UEFI payload for linuxboot > # > DEFINE BOOTLOADER = SBL > > @@ -93,6 +94,9 @@ [Defines] > > [BuildOptions] > *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES > +!if $(BOOTLOADER) == "LINUXBOOT" > + *_*_*_CC_FLAGS = -D LINUXBOOT_PAYLOAD > +!endif > GCC:*_UNIXGCC_*_CC_FLAGS = -DMDEPKG_NDEBUG > GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG > INTEL:RELEASE_*_*_CC_FLAGS = /D MDEPKG_NDEBUG > @@ -222,11 +226,13 @@ [LibraryClasses] > !endif > PlatformSupportLib|UefiPayloadPkg/Library/PlatformSupportLibNull/PlatformSupportLibNull.inf > !if $(UNIVERSAL_PAYLOAD) == FALSE > - !if $(BOOTLOADER) == "COREBOOT" > - BlParseLib|UefiPayloadPkg/Library/CbParseLib/CbParseLib.inf > - !else > - BlParseLib|UefiPayloadPkg/Library/SblParseLib/SblParseLib.inf > - !endif > + !if $(BOOTLOADER) == "COREBOOT" > + BlParseLib|UefiPayloadPkg/Library/CbParseLib/CbParseLib.inf > + !elseif $(BOOTLOADER) == "LINUXBOOT" > + BlParseLib|UefiPayloadPkg/Library/LbParseLib/LbParseLib.inf > + !else > + BlParseLib|UefiPayloadPkg/Library/SblParseLib/SblParseLib.inf > + !endif > !endif > > DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf > diff --git a/UefiPayloadPkg/Library/LbParseLib/LbParseLib.inf b/UefiPayloadPkg/Library/LbParseLib/LbParseLib.inf > new file mode 100644 > index 000000000000..d75ba8db8cf3 > --- /dev/null > +++ b/UefiPayloadPkg/Library/LbParseLib/LbParseLib.inf > @@ -0,0 +1,39 @@ > +## @file > +# Linuxboot Table Parse Library. > +# > +# Copyright (c) 2021, the u-root Authors. All rights reserved.<BR> > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > + > +[Defines] > + INF_VERSION = 0x00010005 > + BASE_NAME = LbParseLib > + FILE_GUID = DBA15E1E-4C16-47DF-93C0-AB5888ED14C3 > + MODULE_TYPE = BASE > + VERSION_STRING = 1.0 > + LIBRARY_CLASS = BlParseLib > + > +# > +# The following information is for reference only and not required by the build tools. > +# > +# VALID_ARCHITECTURES = IA32 X64 > +# > + > +[Sources] > + LbParseLib.c > + > +[Packages] > + MdePkg/MdePkg.dec > + MdeModulePkg/MdeModulePkg.dec > + UefiPayloadPkg/UefiPayloadPkg.dec > + > +[LibraryClasses] > + BaseLib > + BaseMemoryLib > + IoLib > + DebugLib > + PcdLib > + > +[Pcd] > + gUefiPayloadPkgTokenSpaceGuid.PcdPayloadFdMemBase > diff --git a/UefiPayloadPkg/Library/LbParseLib/Linuxboot.h b/UefiPayloadPkg/Library/LbParseLib/Linuxboot.h > new file mode 100644 > index 000000000000..b3b7e70a7ccb > --- /dev/null > +++ b/UefiPayloadPkg/Library/LbParseLib/Linuxboot.h > @@ -0,0 +1,47 @@ > +/** @file > + LinuxBoot PEI module include file. > +**/ > +#ifndef __LINUXBOOT_PEI_H_INCLUDED__ > +#define __LINUXBOOT_PEI_H_INCLUDED__ > + > +#if defined(_MSC_VER) > +#pragma warning(disable : 4200) > +#endif > + > +#pragma pack(1) > +typedef struct SerialPortConfigStruct { > + UINT32 Type; > + UINT32 BaseAddr; > + UINT32 Baud; > + UINT32 RegWidth; > + UINT32 InputHertz; > + UINT32 UartPciAddr; > +} SerialPortConfig; > + > +typedef struct MemoryMapEntryStruct { > + UINT64 Start; > + UINT64 End; > + UINT32 Type; > +} MemoryMapEntry; > + > +typedef struct UefiPayloadConfigStruct { > + UINT64 Version; > + UINT64 AcpiBase; > + UINT64 AcpiSize; > + UINT64 SmbiosBase; > + UINT64 SmbiosSize; > + SerialPortConfig SerialConfig; > + UINT32 NumMemoryMapEntries; > + MemoryMapEntry MemoryMapEntries[0]; > +} UefiPayloadConfig; > +#pragma pack() > + > +#define UEFI_PAYLOAD_CONFIG_VERSION 1 > + > +#define LINUXBOOT_MEM_RAM 1 > +#define LINUXBOOT_MEM_DEFAULT 2 > +#define LINUXBOOT_MEM_ACPI 3 > +#define LINUXBOOT_MEM_NVS 4 > +#define LINUXBOOT_MEM_RESERVED 5 > + > +#endif // __LINUXBOOT_PEI_H_INCLUDED__ > diff --git a/UefiPayloadPkg/Library/LbParseLib/LbParseLib.c b/UefiPayloadPkg/Library/LbParseLib/LbParseLib.c > new file mode 100644 > index 000000000000..48d174dfc078 > --- /dev/null > +++ b/UefiPayloadPkg/Library/LbParseLib/LbParseLib.c > @@ -0,0 +1,187 @@ > +/** @file > + This library will parse the linuxboot table in memory and extract those required > + information. > + > + Copyright (c) 2021, the u-root Authors. All rights reserved.<BR> > + SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > + > +#include <IndustryStandard/Acpi.h> > +#include <IndustryStandard/SmBios.h> > +#include <Library/BaseLib.h> > +#include <Library/BaseMemoryLib.h> > +#include <Library/BlParseLib.h> > +#include <Library/DebugLib.h> > +#include <Library/IoLib.h> > +#include <Library/PcdLib.h> > +#include <Linuxboot.h> > +#include <Uefi/UefiBaseType.h> > + > +// Retrieve UefiPayloadConfig from Linuxboot's uefiboot > +UefiPayloadConfig* > +GetUefiPayLoadConfig() > +{ > + UefiPayloadConfig *Config; > + Config = (UefiPayloadConfig*)(UINTN)(PcdGet32(PcdPayloadFdMemBase) - SIZE_64KB); > + if (Config->Version != UEFI_PAYLOAD_CONFIG_VERSION) { > + DEBUG((DEBUG_ERROR, "Expect payload Config version: %d, but get %d\n", > + UEFI_PAYLOAD_CONFIG_VERSION, Config->Version)); > + CpuDeadLoop (); > + } > + return Config; > +} > + > +// Align the address and add memory rang to MemInfoCallback > +VOID > +AddMemoryRange ( > + IN BL_MEM_INFO_CALLBACK MemInfoCallback, > + IN UINTN start, > + IN UINTN end, > + IN int type > + ) { > + MEMROY_MAP_ENTRY MemoryMap; > + UINTN AlignedStart; > + UINTN AlignedEnd; > + AlignedStart = ALIGN_VALUE(start, SIZE_4KB); > + AlignedEnd = ALIGN_VALUE(end, SIZE_4KB); > + // Conservative adjustment on Memory map. This should happen when booting from > + // non UEFI bios and it may report a memory region less than 4KB. > + if (AlignedStart > start && type != LINUXBOOT_MEM_RAM) { > + AlignedStart -= SIZE_4KB; > + } > + if (AlignedEnd > end + 1 && type == LINUXBOOT_MEM_RAM) { > + AlignedEnd -= SIZE_4KB; > + } > + MemoryMap.Base = AlignedStart; > + MemoryMap.Size = AlignedEnd - AlignedStart; > + MemoryMap.Type = type; > + MemoryMap.Flag = 0; > + MemInfoCallback(&MemoryMap, NULL); > +} > + > +/** > + Acquire the memory information from the linuxboot table in memory. > + > + @param MemInfoCallback The callback routine > + @param Params Pointer to the callback routine parameter > + > + @retval RETURN_SUCCESS Successfully find out the memory information. > + @retval RETURN_NOT_FOUND Failed to find the memory information. > + > +**/ > +RETURN_STATUS > +EFIAPI > +ParseMemoryInfo ( > + IN BL_MEM_INFO_CALLBACK MemInfoCallback, > + IN VOID* Params > + ) { > + UefiPayloadConfig *Config; > + MemoryMapEntry* entry; > + int Index; > + > + Config = GetUefiPayLoadConfig(); > + > + DEBUG((DEBUG_INFO, "MemoryMap #entries: %d\n", Config->NumMemoryMapEntries)); > + > + entry = &Config->MemoryMapEntries[0]; > + for (Index = 0; Index < Config->NumMemoryMapEntries; Index++) { > + DEBUG((DEBUG_INFO, "Start: 0x%lx End: 0x%lx Type:%d\n", entry->Start, > + entry->End, entry->Type)); > + AddMemoryRange(MemInfoCallback, entry->Start, entry->End, entry->Type); > + entry++; > + } > + return RETURN_SUCCESS; > +} > + > +/** > + Acquire acpi table and smbios table from linuxboot > + > + @param SystemTableInfo Pointer to the system table info > + > + @retval RETURN_SUCCESS Successfully find out the tables. > + @retval RETURN_NOT_FOUND Failed to find the tables. > + > +**/ > +RETURN_STATUS > +EFIAPI > +ParseSystemTable ( > + OUT SYSTEM_TABLE_INFO* SystemTableInfo > + ) { > + UefiPayloadConfig *Config; > + > + Config = GetUefiPayLoadConfig(); > + SystemTableInfo->AcpiTableBase = Config->AcpiBase; > + SystemTableInfo->AcpiTableSize = Config->AcpiSize; > + > + SystemTableInfo->SmbiosTableBase = Config->SmbiosBase; > + SystemTableInfo->SmbiosTableSize = Config->SmbiosSize; > + > + return RETURN_SUCCESS; > +} > + > +/** > + Find the serial port information > + > + @param SERIAL_PORT_INFO Pointer to serial port info structure > + > + @retval RETURN_SUCCESS Successfully find the serial port information. > + @retval RETURN_NOT_FOUND Failed to find the serial port information . > + > +**/ > +RETURN_STATUS > +EFIAPI > +ParseSerialInfo ( > + OUT SERIAL_PORT_INFO* SerialPortInfo > + ) { > + UefiPayloadConfig *Config; > + Config = GetUefiPayLoadConfig(); > + > + SerialPortInfo->BaseAddr = Config->SerialConfig.BaseAddr; > + SerialPortInfo->RegWidth = Config->SerialConfig.RegWidth; > + SerialPortInfo->Type = Config->SerialConfig.Type; > + SerialPortInfo->Baud = Config->SerialConfig.Baud; > + SerialPortInfo->InputHertz = Config->SerialConfig.InputHertz; > + SerialPortInfo->UartPciAddr = Config->SerialConfig.UartPciAddr; > + > + return RETURN_SUCCESS; > +} > + > +/** > + Find the video frame buffer information > + > + @param GfxInfo Pointer to the EFI_PEI_GRAPHICS_INFO_HOB structure > + > + @retval RETURN_SUCCESS Successfully find the video frame buffer > +information. > + @retval RETURN_NOT_FOUND Failed to find the video frame buffer information . > + > +**/ > +RETURN_STATUS > +EFIAPI > +ParseGfxInfo ( > + OUT EFI_PEI_GRAPHICS_INFO_HOB* GfxInfo > + ) { > + // Not supported > + return RETURN_NOT_FOUND; > +} > + > +/** > + Find the video frame buffer device information > + > + @param GfxDeviceInfo Pointer to the EFI_PEI_GRAPHICS_DEVICE_INFO_HOB > +structure > + > + @retval RETURN_SUCCESS Successfully find the video frame buffer > +information. > + @retval RETURN_NOT_FOUND Failed to find the video frame buffer information. > + > +**/ > +RETURN_STATUS > +EFIAPI > +ParseGfxDeviceInfo ( > + OUT EFI_PEI_GRAPHICS_DEVICE_INFO_HOB* GfxDeviceInfo > + ) { > + return RETURN_NOT_FOUND; > +} > diff --git a/UefiPayloadPkg/Library/PciHostBridgeLib/PciHostBridgeSupport.c > b/UefiPayloadPkg/Library/PciHostBridgeLib/PciHostBridgeSupport.c > index b0268f05069c..a4f714f765ea 100644 > --- a/UefiPayloadPkg/Library/PciHostBridgeLib/PciHostBridgeSupport.c > +++ b/UefiPayloadPkg/Library/PciHostBridgeLib/PciHostBridgeSupport.c > @@ -40,8 +40,9 @@ AdjustRootBridgeResource ( > IN PCI_ROOT_BRIDGE_APERTURE *PMemAbove4G > ) > { > +#ifndef LINUXBOOT_PAYLOAD > UINT64 Mask; > - > +#endif > // > // For now try to downgrade everything into MEM32 since > // - coreboot does not assign resource above 4GB > @@ -80,7 +81,7 @@ AdjustRootBridgeResource ( > PMemAbove4G->Base = MAX_UINT64; > PMemAbove4G->Limit = 0; > } > - > +#ifndef LINUXBOOT_PAYLOAD > // > // Align IO resource at 4K boundary > // > @@ -98,6 +99,7 @@ AdjustRootBridgeResource ( > if (Mem->Base != MAX_UINT64) { > Mem->Base &= ~Mask; > } > +#endif > } > > /** > -- > 2.33.0.rc2.250.ged5fa647cd-goog ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 1/4] UefiPayloadPkg: Add LINUXBOOT payload target 2021-08-25 0:35 ` Ni, Ray @ 2021-09-29 19:07 ` Guo Dong 0 siblings, 0 replies; 10+ messages in thread From: Guo Dong @ 2021-09-29 19:07 UTC (permalink / raw) To: Ni, Ray, Cheng-Chieh Huang, devel@edk2.groups.io Cc: Schaefer, Daniel, Trammell Hudson, Ma, Maurice, You, Benjamin Hi Ray, I had updated the patch to update the commit message and fix some coding style. Please help review V4 patch. Thanks, Guo -----Original Message----- From: Ni, Ray <ray.ni@intel.com> Sent: Tuesday, August 24, 2021 5:35 PM To: Cheng-Chieh Huang <chengchieh@google.com>; devel@edk2.groups.io Cc: Schaefer, Daniel <daniel.schaefer@hpe.com>; Trammell Hudson <hudson@trmm.net>; Ma, Maurice <maurice.ma@intel.com>; Dong, Guo <guo.dong@intel.com>; You, Benjamin <benjamin.you@intel.com> Subject: RE: [PATCH v3 1/4] UefiPayloadPkg: Add LINUXBOOT payload target Can you describe how LINUXBOOT payload is supported in the commit message? One line commit message is too simple for such a big feature😊 > -----Original Message----- > From: Cheng-Chieh Huang <chengchieh@google.com> > Sent: Monday, August 23, 2021 2:33 PM > To: devel@edk2.groups.io > Cc: Cheng-Chieh Huang <chengchieh@google.com>; Schaefer, Daniel > <daniel.schaefer@hpe.com>; Trammell Hudson <hudson@trmm.net>; Ma, > Maurice <maurice.ma@intel.com>; Dong, Guo <guo.dong@intel.com>; You, > Benjamin <benjamin.you@intel.com>; Ni, Ray <ray.ni@intel.com> > Subject: [PATCH v3 1/4] UefiPayloadPkg: Add LINUXBOOT payload target > > Initial commit to support linuxboot payload. > > Signed-off-by: Cheng-Chieh Huang <chengchieh@google.com> > Cc: Cheng-Chieh Huang <chengchieh@google.com> > Cc: Daniel Schaefer <daniel.schaefer@hpe.com> > Cc: Trammell Hudson <hudson@trmm.net> > Cc: Maurice Ma <maurice.ma@intel.com> > Cc: Guo Dong <guo.dong@intel.com> > Cc: Benjamin You <benjamin.you@intel.com> > Cc: Ray Ni <ray.ni@intel.com> > --- > UefiPayloadPkg/UefiPayloadPkg.dsc | 16 +- > .../Library/LbParseLib/LbParseLib.inf | 39 ++++ > UefiPayloadPkg/Library/LbParseLib/Linuxboot.h | 47 +++++ > .../Library/LbParseLib/LbParseLib.c | 187 ++++++++++++++++++ > .../PciHostBridgeLib/PciHostBridgeSupport.c | 6 +- > 5 files changed, 288 insertions(+), 7 deletions(-) create mode > 100644 UefiPayloadPkg/Library/LbParseLib/LbParseLib.inf > create mode 100644 UefiPayloadPkg/Library/LbParseLib/Linuxboot.h > create mode 100644 UefiPayloadPkg/Library/LbParseLib/LbParseLib.c > > diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc > b/UefiPayloadPkg/UefiPayloadPkg.dsc > index bcedf1c746b4..54576ba485b7 100644 > --- a/UefiPayloadPkg/UefiPayloadPkg.dsc > +++ b/UefiPayloadPkg/UefiPayloadPkg.dsc > @@ -33,6 +33,7 @@ [Defines] > # > # SBL: UEFI payload for Slim Bootloader > # COREBOOT: UEFI payload for coreboot > + # LINUXBOOT: UEFI payload for linuxboot > # > DEFINE BOOTLOADER = SBL > > @@ -93,6 +94,9 @@ [Defines] > > [BuildOptions] > *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES > +!if $(BOOTLOADER) == "LINUXBOOT" > + *_*_*_CC_FLAGS = -D LINUXBOOT_PAYLOAD > +!endif > GCC:*_UNIXGCC_*_CC_FLAGS = -DMDEPKG_NDEBUG > GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG > INTEL:RELEASE_*_*_CC_FLAGS = /D MDEPKG_NDEBUG > @@ -222,11 +226,13 @@ [LibraryClasses] !endif > > PlatformSupportLib|UefiPayloadPkg/Library/PlatformSupportLibNull/Platf > ormSupportLibNull.inf > !if $(UNIVERSAL_PAYLOAD) == FALSE > - !if $(BOOTLOADER) == "COREBOOT" > - BlParseLib|UefiPayloadPkg/Library/CbParseLib/CbParseLib.inf > - !else > - BlParseLib|UefiPayloadPkg/Library/SblParseLib/SblParseLib.inf > - !endif > + !if $(BOOTLOADER) == "COREBOOT" > + BlParseLib|UefiPayloadPkg/Library/CbParseLib/CbParseLib.inf > + !elseif $(BOOTLOADER) == "LINUXBOOT" > + BlParseLib|UefiPayloadPkg/Library/LbParseLib/LbParseLib.inf > + !else > + BlParseLib|UefiPayloadPkg/Library/SblParseLib/SblParseLib.inf > + !endif > !endif > > > DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort. > inf diff --git a/UefiPayloadPkg/Library/LbParseLib/LbParseLib.inf > b/UefiPayloadPkg/Library/LbParseLib/LbParseLib.inf > new file mode 100644 > index 000000000000..d75ba8db8cf3 > --- /dev/null > +++ b/UefiPayloadPkg/Library/LbParseLib/LbParseLib.inf > @@ -0,0 +1,39 @@ > +## @file > +# Linuxboot Table Parse Library. > +# > +# Copyright (c) 2021, the u-root Authors. All rights reserved.<BR> # > +SPDX-License-Identifier: BSD-2-Clause-Patent # ## > + > +[Defines] > + INF_VERSION = 0x00010005 > + BASE_NAME = LbParseLib > + FILE_GUID = DBA15E1E-4C16-47DF-93C0-AB5888ED14C3 > + MODULE_TYPE = BASE > + VERSION_STRING = 1.0 > + LIBRARY_CLASS = BlParseLib > + > +# > +# The following information is for reference only and not required by the build tools. > +# > +# VALID_ARCHITECTURES = IA32 X64 > +# > + > +[Sources] > + LbParseLib.c > + > +[Packages] > + MdePkg/MdePkg.dec > + MdeModulePkg/MdeModulePkg.dec > + UefiPayloadPkg/UefiPayloadPkg.dec > + > +[LibraryClasses] > + BaseLib > + BaseMemoryLib > + IoLib > + DebugLib > + PcdLib > + > +[Pcd] > + gUefiPayloadPkgTokenSpaceGuid.PcdPayloadFdMemBase > diff --git a/UefiPayloadPkg/Library/LbParseLib/Linuxboot.h > b/UefiPayloadPkg/Library/LbParseLib/Linuxboot.h > new file mode 100644 > index 000000000000..b3b7e70a7ccb > --- /dev/null > +++ b/UefiPayloadPkg/Library/LbParseLib/Linuxboot.h > @@ -0,0 +1,47 @@ > +/** @file > + LinuxBoot PEI module include file. > +**/ > +#ifndef __LINUXBOOT_PEI_H_INCLUDED__ > +#define __LINUXBOOT_PEI_H_INCLUDED__ > + > +#if defined(_MSC_VER) > +#pragma warning(disable : 4200) > +#endif > + > +#pragma pack(1) > +typedef struct SerialPortConfigStruct { > + UINT32 Type; > + UINT32 BaseAddr; > + UINT32 Baud; > + UINT32 RegWidth; > + UINT32 InputHertz; > + UINT32 UartPciAddr; > +} SerialPortConfig; > + > +typedef struct MemoryMapEntryStruct { > + UINT64 Start; > + UINT64 End; > + UINT32 Type; > +} MemoryMapEntry; > + > +typedef struct UefiPayloadConfigStruct { > + UINT64 Version; > + UINT64 AcpiBase; > + UINT64 AcpiSize; > + UINT64 SmbiosBase; > + UINT64 SmbiosSize; > + SerialPortConfig SerialConfig; > + UINT32 NumMemoryMapEntries; > + MemoryMapEntry MemoryMapEntries[0]; } UefiPayloadConfig; #pragma > +pack() > + > +#define UEFI_PAYLOAD_CONFIG_VERSION 1 > + > +#define LINUXBOOT_MEM_RAM 1 > +#define LINUXBOOT_MEM_DEFAULT 2 > +#define LINUXBOOT_MEM_ACPI 3 > +#define LINUXBOOT_MEM_NVS 4 > +#define LINUXBOOT_MEM_RESERVED 5 > + > +#endif // __LINUXBOOT_PEI_H_INCLUDED__ > diff --git a/UefiPayloadPkg/Library/LbParseLib/LbParseLib.c > b/UefiPayloadPkg/Library/LbParseLib/LbParseLib.c > new file mode 100644 > index 000000000000..48d174dfc078 > --- /dev/null > +++ b/UefiPayloadPkg/Library/LbParseLib/LbParseLib.c > @@ -0,0 +1,187 @@ > +/** @file > + This library will parse the linuxboot table in memory and extract > +those required > + information. > + > + Copyright (c) 2021, the u-root Authors. All rights reserved.<BR> > + SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > + > +#include <IndustryStandard/Acpi.h> > +#include <IndustryStandard/SmBios.h> > +#include <Library/BaseLib.h> > +#include <Library/BaseMemoryLib.h> > +#include <Library/BlParseLib.h> > +#include <Library/DebugLib.h> > +#include <Library/IoLib.h> > +#include <Library/PcdLib.h> > +#include <Linuxboot.h> > +#include <Uefi/UefiBaseType.h> > + > +// Retrieve UefiPayloadConfig from Linuxboot's uefiboot > +UefiPayloadConfig* > +GetUefiPayLoadConfig() > +{ > + UefiPayloadConfig *Config; > + Config = (UefiPayloadConfig*)(UINTN)(PcdGet32(PcdPayloadFdMemBase) > +- SIZE_64KB); > + if (Config->Version != UEFI_PAYLOAD_CONFIG_VERSION) { > + DEBUG((DEBUG_ERROR, "Expect payload Config version: %d, but get %d\n", > + UEFI_PAYLOAD_CONFIG_VERSION, Config->Version)); > + CpuDeadLoop (); > + } > + return Config; > +} > + > +// Align the address and add memory rang to MemInfoCallback VOID > +AddMemoryRange ( > + IN BL_MEM_INFO_CALLBACK MemInfoCallback, > + IN UINTN start, > + IN UINTN end, > + IN int type > + ) { > + MEMROY_MAP_ENTRY MemoryMap; > + UINTN AlignedStart; > + UINTN AlignedEnd; > + AlignedStart = ALIGN_VALUE(start, SIZE_4KB); > + AlignedEnd = ALIGN_VALUE(end, SIZE_4KB); > + // Conservative adjustment on Memory map. This should happen when > +booting from > + // non UEFI bios and it may report a memory region less than 4KB. > + if (AlignedStart > start && type != LINUXBOOT_MEM_RAM) { > + AlignedStart -= SIZE_4KB; > + } > + if (AlignedEnd > end + 1 && type == LINUXBOOT_MEM_RAM) { > + AlignedEnd -= SIZE_4KB; > + } > + MemoryMap.Base = AlignedStart; > + MemoryMap.Size = AlignedEnd - AlignedStart; > + MemoryMap.Type = type; > + MemoryMap.Flag = 0; > + MemInfoCallback(&MemoryMap, NULL); > +} > + > +/** > + Acquire the memory information from the linuxboot table in memory. > + > + @param MemInfoCallback The callback routine > + @param Params Pointer to the callback routine parameter > + > + @retval RETURN_SUCCESS Successfully find out the memory information. > + @retval RETURN_NOT_FOUND Failed to find the memory information. > + > +**/ > +RETURN_STATUS > +EFIAPI > +ParseMemoryInfo ( > + IN BL_MEM_INFO_CALLBACK MemInfoCallback, > + IN VOID* Params > + ) { > + UefiPayloadConfig *Config; > + MemoryMapEntry* entry; > + int Index; > + > + Config = GetUefiPayLoadConfig(); > + > + DEBUG((DEBUG_INFO, "MemoryMap #entries: %d\n", > + Config->NumMemoryMapEntries)); > + > + entry = &Config->MemoryMapEntries[0]; > + for (Index = 0; Index < Config->NumMemoryMapEntries; Index++) { > + DEBUG((DEBUG_INFO, "Start: 0x%lx End: 0x%lx Type:%d\n", entry->Start, > + entry->End, entry->Type)); > + AddMemoryRange(MemInfoCallback, entry->Start, entry->End, entry->Type); > + entry++; > + } > + return RETURN_SUCCESS; > +} > + > +/** > + Acquire acpi table and smbios table from linuxboot > + > + @param SystemTableInfo Pointer to the system table info > + > + @retval RETURN_SUCCESS Successfully find out the tables. > + @retval RETURN_NOT_FOUND Failed to find the tables. > + > +**/ > +RETURN_STATUS > +EFIAPI > +ParseSystemTable ( > + OUT SYSTEM_TABLE_INFO* SystemTableInfo > + ) { > + UefiPayloadConfig *Config; > + > + Config = GetUefiPayLoadConfig(); > + SystemTableInfo->AcpiTableBase = Config->AcpiBase; > + SystemTableInfo->AcpiTableSize = Config->AcpiSize; > + > + SystemTableInfo->SmbiosTableBase = Config->SmbiosBase; > + SystemTableInfo->SmbiosTableSize = Config->SmbiosSize; > + > + return RETURN_SUCCESS; > +} > + > +/** > + Find the serial port information > + > + @param SERIAL_PORT_INFO Pointer to serial port info structure > + > + @retval RETURN_SUCCESS Successfully find the serial port information. > + @retval RETURN_NOT_FOUND Failed to find the serial port information . > + > +**/ > +RETURN_STATUS > +EFIAPI > +ParseSerialInfo ( > + OUT SERIAL_PORT_INFO* SerialPortInfo > + ) { > + UefiPayloadConfig *Config; > + Config = GetUefiPayLoadConfig(); > + > + SerialPortInfo->BaseAddr = Config->SerialConfig.BaseAddr; > + SerialPortInfo->RegWidth = Config->SerialConfig.RegWidth; > + SerialPortInfo->Type = Config->SerialConfig.Type; > + SerialPortInfo->Baud = Config->SerialConfig.Baud; > + SerialPortInfo->InputHertz = Config->SerialConfig.InputHertz; > + SerialPortInfo->UartPciAddr = Config->SerialConfig.UartPciAddr; > + > + return RETURN_SUCCESS; > +} > + > +/** > + Find the video frame buffer information > + > + @param GfxInfo Pointer to the EFI_PEI_GRAPHICS_INFO_HOB structure > + > + @retval RETURN_SUCCESS Successfully find the video frame buffer > +information. > + @retval RETURN_NOT_FOUND Failed to find the video frame buffer information . > + > +**/ > +RETURN_STATUS > +EFIAPI > +ParseGfxInfo ( > + OUT EFI_PEI_GRAPHICS_INFO_HOB* GfxInfo > + ) { > + // Not supported > + return RETURN_NOT_FOUND; > +} > + > +/** > + Find the video frame buffer device information > + > + @param GfxDeviceInfo Pointer to the EFI_PEI_GRAPHICS_DEVICE_INFO_HOB > +structure > + > + @retval RETURN_SUCCESS Successfully find the video frame buffer > +information. > + @retval RETURN_NOT_FOUND Failed to find the video frame buffer information. > + > +**/ > +RETURN_STATUS > +EFIAPI > +ParseGfxDeviceInfo ( > + OUT EFI_PEI_GRAPHICS_DEVICE_INFO_HOB* GfxDeviceInfo > + ) { > + return RETURN_NOT_FOUND; > +} > diff --git > a/UefiPayloadPkg/Library/PciHostBridgeLib/PciHostBridgeSupport.c > b/UefiPayloadPkg/Library/PciHostBridgeLib/PciHostBridgeSupport.c > index b0268f05069c..a4f714f765ea 100644 > --- a/UefiPayloadPkg/Library/PciHostBridgeLib/PciHostBridgeSupport.c > +++ b/UefiPayloadPkg/Library/PciHostBridgeLib/PciHostBridgeSupport.c > @@ -40,8 +40,9 @@ AdjustRootBridgeResource ( > IN PCI_ROOT_BRIDGE_APERTURE *PMemAbove4G > ) > { > +#ifndef LINUXBOOT_PAYLOAD > UINT64 Mask; > - > +#endif > // > // For now try to downgrade everything into MEM32 since > // - coreboot does not assign resource above 4GB @@ -80,7 +81,7 @@ > AdjustRootBridgeResource ( > PMemAbove4G->Base = MAX_UINT64; > PMemAbove4G->Limit = 0; > } > - > +#ifndef LINUXBOOT_PAYLOAD > // > // Align IO resource at 4K boundary > // > @@ -98,6 +99,7 @@ AdjustRootBridgeResource ( > if (Mem->Base != MAX_UINT64) { > Mem->Base &= ~Mask; > } > +#endif > } > > /** > -- > 2.33.0.rc2.250.ged5fa647cd-goog ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 2/4] UefiPayloadPkg: Use legacy timer in Linuxboot payload 2021-08-23 6:33 [PATCH v3 0/4] UefiPayloadPkg: LinuxBoot Support in UefiPayload Cheng-Chieh Huang 2021-08-23 6:33 ` [PATCH v3 1/4] UefiPayloadPkg: Add LINUXBOOT payload target Cheng-Chieh Huang @ 2021-08-23 6:33 ` Cheng-Chieh Huang 2021-08-25 0:34 ` Ni, Ray 2021-08-23 6:33 ` [PATCH v3 3/4] UefiPayloadPkg: Update maximum logic processor to 256 Cheng-Chieh Huang ` (2 subsequent siblings) 4 siblings, 1 reply; 10+ messages in thread From: Cheng-Chieh Huang @ 2021-08-23 6:33 UTC (permalink / raw) To: devel Cc: Cheng-Chieh Huang, Guo Dong, Daniel Schaefer, Trammell Hudson, Maurice Ma, Benjamin You, Ray Ni HPET timer may fail to init after prior linux taking over. Signed-off-by: Cheng-Chieh Huang <chengchieh@google.com> Reviewed-by: Guo Dong <guo.dong@intel.com> Cc: Cheng-Chieh Huang <chengchieh@google.com> Cc: Daniel Schaefer <daniel.schaefer@hpe.com> Cc: Trammell Hudson <hudson@trmm.net> Cc: Maurice Ma <maurice.ma@intel.com> Cc: Guo Dong <guo.dong@intel.com> Cc: Benjamin You <benjamin.you@intel.com> Cc: Ray Ni <ray.ni@intel.com> --- UefiPayloadPkg/UefiPayloadPkg.dsc | 6 ++++++ UefiPayloadPkg/UefiPayloadPkg.fdf | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc b/UefiPayloadPkg/UefiPayloadPkg.dsc index 54576ba485b7..e56e6f4a5379 100644 --- a/UefiPayloadPkg/UefiPayloadPkg.dsc +++ b/UefiPayloadPkg/UefiPayloadPkg.dsc @@ -438,7 +438,13 @@ [Components.X64] NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf } +!if $(BOOTLOADER) == "LINUXBOOT" + OvmfPkg/8254TimerDxe/8254Timer.inf + OvmfPkg/8259InterruptControllerDxe/8259.inf +!else PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf +!endif + MdeModulePkg/Universal/Metronome/Metronome.inf MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf diff --git a/UefiPayloadPkg/UefiPayloadPkg.fdf b/UefiPayloadPkg/UefiPayloadPkg.fdf index 041fed842cd8..f57a8b4bf3d3 100644 --- a/UefiPayloadPkg/UefiPayloadPkg.fdf +++ b/UefiPayloadPkg/UefiPayloadPkg.fdf @@ -101,7 +101,12 @@ [FV.DXEFV] INF UefiCpuPkg/CpuDxe/CpuDxe.inf INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf INF MdeModulePkg/Application/UiApp/UiApp.inf +!if $(BOOTLOADER) != "LINUXBOOT" INF PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf +!else +INF OvmfPkg/8254TimerDxe/8254Timer.inf +INF OvmfPkg/8259InterruptControllerDxe/8259.inf +!endif INF MdeModulePkg/Universal/Metronome/Metronome.inf INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf -- 2.33.0.rc2.250.ged5fa647cd-goog ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v3 2/4] UefiPayloadPkg: Use legacy timer in Linuxboot payload 2021-08-23 6:33 ` [PATCH v3 2/4] UefiPayloadPkg: Use legacy timer in Linuxboot payload Cheng-Chieh Huang @ 2021-08-25 0:34 ` Ni, Ray 0 siblings, 0 replies; 10+ messages in thread From: Ni, Ray @ 2021-08-25 0:34 UTC (permalink / raw) To: Cheng-Chieh Huang, devel@edk2.groups.io Cc: Dong, Guo, Schaefer, Daniel, Trammell Hudson, Ma, Maurice, You, Benjamin can you explain more in commit message why HPET may fail? > -----Original Message----- > From: Cheng-Chieh Huang <chengchieh@google.com> > Sent: Monday, August 23, 2021 2:33 PM > To: devel@edk2.groups.io > Cc: Cheng-Chieh Huang <chengchieh@google.com>; Dong, Guo <guo.dong@intel.com>; Schaefer, Daniel > <daniel.schaefer@hpe.com>; Trammell Hudson <hudson@trmm.net>; Ma, Maurice <maurice.ma@intel.com>; You, Benjamin > <benjamin.you@intel.com>; Ni, Ray <ray.ni@intel.com> > Subject: [PATCH v3 2/4] UefiPayloadPkg: Use legacy timer in Linuxboot payload > > HPET timer may fail to init after prior linux taking over. > > Signed-off-by: Cheng-Chieh Huang <chengchieh@google.com> > Reviewed-by: Guo Dong <guo.dong@intel.com> > Cc: Cheng-Chieh Huang <chengchieh@google.com> > Cc: Daniel Schaefer <daniel.schaefer@hpe.com> > Cc: Trammell Hudson <hudson@trmm.net> > Cc: Maurice Ma <maurice.ma@intel.com> > Cc: Guo Dong <guo.dong@intel.com> > Cc: Benjamin You <benjamin.you@intel.com> > Cc: Ray Ni <ray.ni@intel.com> > --- > UefiPayloadPkg/UefiPayloadPkg.dsc | 6 ++++++ > UefiPayloadPkg/UefiPayloadPkg.fdf | 5 +++++ > 2 files changed, 11 insertions(+) > > diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc b/UefiPayloadPkg/UefiPayloadPkg.dsc > index 54576ba485b7..e56e6f4a5379 100644 > --- a/UefiPayloadPkg/UefiPayloadPkg.dsc > +++ b/UefiPayloadPkg/UefiPayloadPkg.dsc > @@ -438,7 +438,13 @@ [Components.X64] > NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf > } > > +!if $(BOOTLOADER) == "LINUXBOOT" > + OvmfPkg/8254TimerDxe/8254Timer.inf > + OvmfPkg/8259InterruptControllerDxe/8259.inf > +!else > PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf > +!endif > + > MdeModulePkg/Universal/Metronome/Metronome.inf > MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf > MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf > diff --git a/UefiPayloadPkg/UefiPayloadPkg.fdf b/UefiPayloadPkg/UefiPayloadPkg.fdf > index 041fed842cd8..f57a8b4bf3d3 100644 > --- a/UefiPayloadPkg/UefiPayloadPkg.fdf > +++ b/UefiPayloadPkg/UefiPayloadPkg.fdf > @@ -101,7 +101,12 @@ [FV.DXEFV] > INF UefiCpuPkg/CpuDxe/CpuDxe.inf > INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf > INF MdeModulePkg/Application/UiApp/UiApp.inf > +!if $(BOOTLOADER) != "LINUXBOOT" > INF PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf > +!else > +INF OvmfPkg/8254TimerDxe/8254Timer.inf > +INF OvmfPkg/8259InterruptControllerDxe/8259.inf > +!endif > INF MdeModulePkg/Universal/Metronome/Metronome.inf > INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf > INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf > -- > 2.33.0.rc2.250.ged5fa647cd-goog ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 3/4] UefiPayloadPkg: Update maximum logic processor to 256 2021-08-23 6:33 [PATCH v3 0/4] UefiPayloadPkg: LinuxBoot Support in UefiPayload Cheng-Chieh Huang 2021-08-23 6:33 ` [PATCH v3 1/4] UefiPayloadPkg: Add LINUXBOOT payload target Cheng-Chieh Huang 2021-08-23 6:33 ` [PATCH v3 2/4] UefiPayloadPkg: Use legacy timer in Linuxboot payload Cheng-Chieh Huang @ 2021-08-23 6:33 ` Cheng-Chieh Huang 2021-08-23 6:33 ` [PATCH v3 4/4] UefiPayloadPkg: Reserve Payload config in runtime services data Cheng-Chieh Huang 2021-09-29 19:02 ` [edk2-devel] [PATCH v3 0/4] UefiPayloadPkg: LinuxBoot Support in UefiPayload Guo Dong 4 siblings, 0 replies; 10+ messages in thread From: Cheng-Chieh Huang @ 2021-08-23 6:33 UTC (permalink / raw) To: devel Cc: Cheng-Chieh Huang, Guo Dong, Daniel Schaefer, Trammell Hudson, Maurice Ma, Benjamin You, Ray Ni Signed-off-by: Cheng-Chieh Huang <chengchieh@google.com> Reviewed-by: Guo Dong <guo.dong@intel.com> Cc: Cheng-Chieh Huang <chengchieh@google.com> Cc: Daniel Schaefer <daniel.schaefer@hpe.com> Cc: Trammell Hudson <hudson@trmm.net> Cc: Maurice Ma <maurice.ma@intel.com> Cc: Guo Dong <guo.dong@intel.com> Cc: Benjamin You <benjamin.you@intel.com> Cc: Ray Ni <ray.ni@intel.com> --- UefiPayloadPkg/UefiPayloadPkg.dsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc b/UefiPayloadPkg/UefiPayloadPkg.dsc index e56e6f4a5379..8aa5f18cd35c 100644 --- a/UefiPayloadPkg/UefiPayloadPkg.dsc +++ b/UefiPayloadPkg/UefiPayloadPkg.dsc @@ -40,7 +40,7 @@ [Defines] # # CPU options # - DEFINE MAX_LOGICAL_PROCESSORS = 64 + DEFINE MAX_LOGICAL_PROCESSORS = 256 # # PCI options -- 2.33.0.rc2.250.ged5fa647cd-goog ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 4/4] UefiPayloadPkg: Reserve Payload config in runtime services data 2021-08-23 6:33 [PATCH v3 0/4] UefiPayloadPkg: LinuxBoot Support in UefiPayload Cheng-Chieh Huang ` (2 preceding siblings ...) 2021-08-23 6:33 ` [PATCH v3 3/4] UefiPayloadPkg: Update maximum logic processor to 256 Cheng-Chieh Huang @ 2021-08-23 6:33 ` Cheng-Chieh Huang 2021-09-29 19:02 ` [edk2-devel] [PATCH v3 0/4] UefiPayloadPkg: LinuxBoot Support in UefiPayload Guo Dong 4 siblings, 0 replies; 10+ messages in thread From: Cheng-Chieh Huang @ 2021-08-23 6:33 UTC (permalink / raw) To: devel Cc: Cheng-Chieh Huang, Daniel Schaefer, Trammell Hudson, Maurice Ma, Guo Dong, Benjamin You, Ray Ni Signed-off-by: Cheng-Chieh Huang <chengchieh@google.com> Cc: Cheng-Chieh Huang <chengchieh@google.com> Cc: Daniel Schaefer <daniel.schaefer@hpe.com> Cc: Trammell Hudson <hudson@trmm.net> Cc: Maurice Ma <maurice.ma@intel.com> Cc: Guo Dong <guo.dong@intel.com> Cc: Benjamin You <benjamin.you@intel.com> Cc: Ray Ni <ray.ni@intel.com> --- UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c index ae16f25c7c0e..5bace742d73e 100644 --- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c +++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c @@ -517,6 +517,10 @@ BuildGenericHob ( // The UEFI payload FV BuildMemoryAllocationHob (PcdGet32 (PcdPayloadFdMemBase), PcdGet32 (PcdPayloadFdMemSize), EfiBootServicesData); + #ifdef LINUXBOOT_PAYLOAD + // The UEFI payload config FV + BuildMemoryAllocationHob (PcdGet32 (PcdPayloadFdMemBase) - SIZE_64KB, SIZE_64KB, EfiRuntimeServicesData); + #endif // // Build CPU memory space and IO space hob -- 2.33.0.rc2.250.ged5fa647cd-goog ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [edk2-devel] [PATCH v3 0/4] UefiPayloadPkg: LinuxBoot Support in UefiPayload 2021-08-23 6:33 [PATCH v3 0/4] UefiPayloadPkg: LinuxBoot Support in UefiPayload Cheng-Chieh Huang ` (3 preceding siblings ...) 2021-08-23 6:33 ` [PATCH v3 4/4] UefiPayloadPkg: Reserve Payload config in runtime services data Cheng-Chieh Huang @ 2021-09-29 19:02 ` Guo Dong 2021-09-29 19:15 ` Guo Dong 4 siblings, 1 reply; 10+ messages in thread From: Guo Dong @ 2021-09-29 19:02 UTC (permalink / raw) To: devel@edk2.groups.io, chengchieh@google.com Cc: Ni, Ray, Ma, Maurice, You, Benjamin Hi ChengChieh, Here is the update to this patch series: 1. UefiPayloadPkg: Add LINUXBOOT payload target a) Ray asked to update commit message b) There are still some coding style issues I know it is a little difficult to fully follow EDKII coding style. I will help update this patch and send it out for review. It would be great if you could have a test to double check with the new patch. 2. UefiPayloadPkg: Use legacy timer in Linuxboot payload I had approved this patch. We could merged this one after the first patch got merged. 3. UefiPayloadPkg: Update maximum logic processor to 256 It was merged. 4. UefiPayloadPkg: Reserve Payload config in runtime services data This patch should be not required when patch https://github.com/tianocore/edk2/pull/2028 (under code review) is merged. Thanks, Guo -----Original Message----- From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Cheng-Chieh Huang via groups.io Sent: Sunday, August 22, 2021 11:33 PM To: devel@edk2.groups.io Cc: Cheng-Chieh Huang <chengchieh@google.com> Subject: [edk2-devel] [PATCH v3 0/4] UefiPayloadPkg: LinuxBoot Support in UefiPayload These are necessary patches to Support LinuxBoot in UefiPayload. With these paches, we can boot to ESXi and Windows from a linux in QEMU. Third parse: address formating comments. LinuxBoot README: https://github.com/linuxboot/edk2/blob/uefipayload/UefiPayloadPkg/README.md v3 PR to tianocore: https://github.com/tianocore/edk2/pull/1873 Cheng-Chieh Huang (4): UefiPayloadPkg: Add LINUXBOOT payload target UefiPayloadPkg: Use legacy timer in Linuxboot payload UefiPayloadPkg: Update maximum logic processor to 256 UefiPayloadPkg: Reserve Payload config in runtime services data UefiPayloadPkg/UefiPayloadPkg.dsc | 24 ++- UefiPayloadPkg/UefiPayloadPkg.fdf | 5 + .../Library/LbParseLib/LbParseLib.inf | 39 ++++ UefiPayloadPkg/Library/LbParseLib/Linuxboot.h | 47 +++++ .../Library/LbParseLib/LbParseLib.c | 187 ++++++++++++++++++ .../PciHostBridgeLib/PciHostBridgeSupport.c | 6 +- .../UefiPayloadEntry/UefiPayloadEntry.c | 4 + 7 files changed, 304 insertions(+), 8 deletions(-) create mode 100644 UefiPayloadPkg/Library/LbParseLib/LbParseLib.inf create mode 100644 UefiPayloadPkg/Library/LbParseLib/Linuxboot.h create mode 100644 UefiPayloadPkg/Library/LbParseLib/LbParseLib.c -- 2.33.0.rc2.250.ged5fa647cd-goog ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [edk2-devel] [PATCH v3 0/4] UefiPayloadPkg: LinuxBoot Support in UefiPayload 2021-09-29 19:02 ` [edk2-devel] [PATCH v3 0/4] UefiPayloadPkg: LinuxBoot Support in UefiPayload Guo Dong @ 2021-09-29 19:15 ` Guo Dong 0 siblings, 0 replies; 10+ messages in thread From: Guo Dong @ 2021-09-29 19:15 UTC (permalink / raw) To: devel@edk2.groups.io, chengchieh@google.com Cc: Ni, Ray, Ma, Maurice, You, Benjamin Hi ChengChieh, You could directly build from this branch for the test. https://github.com/gdong1/edk2/pull/new/for_linux_bootloader_test Thanks, Guo -----Original Message----- From: Dong, Guo Sent: Wednesday, September 29, 2021 12:02 PM To: devel@edk2.groups.io; chengchieh@google.com Cc: Ni, Ray <ray.ni@intel.com>; Ma, Maurice <maurice.ma@intel.com>; You, Benjamin <benjamin.you@intel.com> Subject: RE: [edk2-devel] [PATCH v3 0/4] UefiPayloadPkg: LinuxBoot Support in UefiPayload Hi ChengChieh, Here is the update to this patch series: 1. UefiPayloadPkg: Add LINUXBOOT payload target a) Ray asked to update commit message b) There are still some coding style issues I know it is a little difficult to fully follow EDKII coding style. I will help update this patch and send it out for review. It would be great if you could have a test to double check with the new patch. 2. UefiPayloadPkg: Use legacy timer in Linuxboot payload I had approved this patch. We could merged this one after the first patch got merged. 3. UefiPayloadPkg: Update maximum logic processor to 256 It was merged. 4. UefiPayloadPkg: Reserve Payload config in runtime services data This patch should be not required when patch https://github.com/tianocore/edk2/pull/2028 (under code review) is merged. Thanks, Guo -----Original Message----- From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Cheng-Chieh Huang via groups.io Sent: Sunday, August 22, 2021 11:33 PM To: devel@edk2.groups.io Cc: Cheng-Chieh Huang <chengchieh@google.com> Subject: [edk2-devel] [PATCH v3 0/4] UefiPayloadPkg: LinuxBoot Support in UefiPayload These are necessary patches to Support LinuxBoot in UefiPayload. With these paches, we can boot to ESXi and Windows from a linux in QEMU. Third parse: address formating comments. LinuxBoot README: https://github.com/linuxboot/edk2/blob/uefipayload/UefiPayloadPkg/README.md v3 PR to tianocore: https://github.com/tianocore/edk2/pull/1873 Cheng-Chieh Huang (4): UefiPayloadPkg: Add LINUXBOOT payload target UefiPayloadPkg: Use legacy timer in Linuxboot payload UefiPayloadPkg: Update maximum logic processor to 256 UefiPayloadPkg: Reserve Payload config in runtime services data UefiPayloadPkg/UefiPayloadPkg.dsc | 24 ++- UefiPayloadPkg/UefiPayloadPkg.fdf | 5 + .../Library/LbParseLib/LbParseLib.inf | 39 ++++ UefiPayloadPkg/Library/LbParseLib/Linuxboot.h | 47 +++++ .../Library/LbParseLib/LbParseLib.c | 187 ++++++++++++++++++ .../PciHostBridgeLib/PciHostBridgeSupport.c | 6 +- .../UefiPayloadEntry/UefiPayloadEntry.c | 4 + 7 files changed, 304 insertions(+), 8 deletions(-) create mode 100644 UefiPayloadPkg/Library/LbParseLib/LbParseLib.inf create mode 100644 UefiPayloadPkg/Library/LbParseLib/Linuxboot.h create mode 100644 UefiPayloadPkg/Library/LbParseLib/LbParseLib.c -- 2.33.0.rc2.250.ged5fa647cd-goog ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2021-09-29 19:15 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-08-23 6:33 [PATCH v3 0/4] UefiPayloadPkg: LinuxBoot Support in UefiPayload Cheng-Chieh Huang 2021-08-23 6:33 ` [PATCH v3 1/4] UefiPayloadPkg: Add LINUXBOOT payload target Cheng-Chieh Huang 2021-08-25 0:35 ` Ni, Ray 2021-09-29 19:07 ` Guo Dong 2021-08-23 6:33 ` [PATCH v3 2/4] UefiPayloadPkg: Use legacy timer in Linuxboot payload Cheng-Chieh Huang 2021-08-25 0:34 ` Ni, Ray 2021-08-23 6:33 ` [PATCH v3 3/4] UefiPayloadPkg: Update maximum logic processor to 256 Cheng-Chieh Huang 2021-08-23 6:33 ` [PATCH v3 4/4] UefiPayloadPkg: Reserve Payload config in runtime services data Cheng-Chieh Huang 2021-09-29 19:02 ` [edk2-devel] [PATCH v3 0/4] UefiPayloadPkg: LinuxBoot Support in UefiPayload Guo Dong 2021-09-29 19:15 ` Guo Dong
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox