From nobody Mon May 6 16:40:13 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+78025+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+78025+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1626877706; cv=none; d=zohomail.com; s=zohoarc; b=HtFRXOjW8JTtb0oXikE7K4d2O6wZYNhCXTGi1h+NDdukjeyQuxzXhcU/bwTaSejUaXguVxAQPiqNem0cKgjh3j5VVmAzULr+HvBqN+CwLMuzm9Ldh/b6sSM33lInSXAOuDjoE+YkTjKVJ3yPgtp25l9sCWvGmxHg6DQ5yJLvOv8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626877706; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=JkX/JV6aeBPisKakGg+8HE5hkSIbF1tTqR6+9i38SKE=; b=T7vb75vwG0W8QOYhxDpkQoW5vAdXuRnEQmLW+hNyuWxbB8hwtULSgDnk0l0K9WLCaFgsEyt4X8ANci/KFspfmIbbR1cAUb4ZSd3lS1Eqq+wYcNTxIZto80bKR8v9PqG4R2PkKG+CCjaQ9rWOBAPksMSRMvv6xp5eL9s3vdiFHtk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+78025+1787277+3901457@groups.io Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1626877706084556.5697995587893; Wed, 21 Jul 2021 07:28:26 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id uAwfYY1788612x5tW4Shsm9m; Wed, 21 Jul 2021 07:28:25 -0700 X-Received: from mail-yb1-f202.google.com (mail-yb1-f202.google.com [209.85.219.202]) by mx.groups.io with SMTP id smtpd.web12.3895.1626873862823102837 for ; Wed, 21 Jul 2021 06:24:22 -0700 X-Received: by mail-yb1-f202.google.com with SMTP id 132-20020a25158a0000b029055791ebe1e6so3143806ybv.20 for ; Wed, 21 Jul 2021 06:24:22 -0700 (PDT) X-Gm-Message-State: PWhQwqF2hdheaoe74XjkTS7yx1787277AA= X-Google-Smtp-Source: ABdhPJyNaqGmjjEgB+A0cc0190zoHSN35G1Ddew2jPQPIy0K4Z2Lry8fdUnHauitv8Mvulya2FgdN+AU6ETvMS47 X-Received: from ratho96.c.googlers.com ([fda3:e722:ac3:cc00:3:22c1:c0a8:aae]) (user=chengchieh job=sendgmr) by 2002:a25:d88a:: with SMTP id p132mr47959033ybg.409.1626873861600; Wed, 21 Jul 2021 06:24:21 -0700 (PDT) Date: Wed, 21 Jul 2021 13:23:23 +0000 In-Reply-To: <20210721132328.1415485-1-chengchieh@google.com> Message-Id: <20210721132328.1415485-2-chengchieh@google.com> Mime-Version: 1.0 References: <20210721132328.1415485-1-chengchieh@google.com> Subject: [edk2-devel] [PATCH v1 1/6] UefiPayloadPkg: Add LINUXBOOT payload target From: "Cheng-Chieh Huang via groups.io" To: devel@edk2.groups.io Cc: Cheng-Chieh Huang Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,chengchieh@google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1626877705; bh=fS0oSZemKd/FJH56hcsa9U35r6q+OhusRX/yoyFktCA=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=UgDITqvzwPwr9NOyOzfzvSaKBdhfw4uvTKxW6CRwsc3Do58dTVX2uNcf19U2eqNbSQT xxmmz15RHDZAFzyLIUb+FB4pXjQgUhDnT6PK9mwRzsuJMoGkPgK+JXfwc6GT8wSPYt1So n5JTTU1zN+a9NS2/EDoFY/rCTQYGEiFhKCI= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1626877706742100004 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Initial commit to support linuxboot payload. Signed-off-by: Cheng-Chieh Huang --- UefiPayloadPkg/UefiPayloadPkg.dsc | 16 +- UefiPayloadPkg/Library/LbParseLib/LbParseLib.inf | 39 +++++ UefiPayloadPkg/Include/Linuxboot.h | 47 ++++++ UefiPayloadPkg/Library/LbParseLib/LbParseLib.c | 168 +++++= +++++++++++++++ UefiPayloadPkg/Library/PciHostBridgeLib/PciHostBridgeSupport.c | 6 +- CryptoPkg/Library/OpensslLib/openssl | 2 +- 6 files changed, 270 insertions(+), 8 deletions(-) diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc b/UefiPayloadPkg/UefiPayload= Pkg.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 =3D SBL =20 @@ -93,6 +94,9 @@ [Defines] =20 [BuildOptions] *_*_*_CC_FLAGS =3D -D DISABLE_NEW_DEPRECATED_INTERFACES +!if $(BOOTLOADER) =3D=3D "LINUXBOOT" + *_*_*_CC_FLAGS =3D -D LINUXBOOT_PAYLOAD +!endif GCC:*_UNIXGCC_*_CC_FLAGS =3D -DMDEPKG_NDEBUG GCC:RELEASE_*_*_CC_FLAGS =3D -DMDEPKG_NDEBUG INTEL:RELEASE_*_*_CC_FLAGS =3D /D MDEPKG_NDEBUG @@ -222,11 +226,13 @@ [LibraryClasses] !endif PlatformSupportLib|UefiPayloadPkg/Library/PlatformSupportLibNull/Platfor= mSupportLibNull.inf !if $(UNIVERSAL_PAYLOAD) =3D=3D FALSE - !if $(BOOTLOADER) =3D=3D "COREBOOT" - BlParseLib|UefiPayloadPkg/Library/CbParseLib/CbParseLib.inf - !else - BlParseLib|UefiPayloadPkg/Library/SblParseLib/SblParseLib.inf - !endif + !if $(BOOTLOADER) =3D=3D "COREBOOT" + BlParseLib|UefiPayloadPkg/Library/CbParseLib/CbParseLib.inf + !elseif $(BOOTLOADER) =3D=3D "LINUXBOOT" + BlParseLib|UefiPayloadPkg/Library/LbParseLib/LbParseLib.inf + !else + BlParseLib|UefiPayloadPkg/Library/SblParseLib/SblParseLib.inf + !endif !endif =20 DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf diff --git a/UefiPayloadPkg/Library/LbParseLib/LbParseLib.inf b/UefiPayload= Pkg/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.
+# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + INF_VERSION =3D 0x00010005 + BASE_NAME =3D LbParseLib + FILE_GUID =3D DBA15E1E-4C16-47DF-93C0-AB5888ED14C3 + MODULE_TYPE =3D BASE + VERSION_STRING =3D 1.0 + LIBRARY_CLASS =3D BlParseLib + +# +# The following information is for reference only and not required by the = build tools. +# +# VALID_ARCHITECTURES =3D 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/Include/Linuxboot.h b/UefiPayloadPkg/Include/Li= nuxboot.h new file mode 100644 index 000000000000..34ca18069983 --- /dev/null +++ b/UefiPayloadPkg/Include/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/UefiPayloadPk= g/Library/LbParseLib/LbParseLib.c new file mode 100644 index 000000000000..34bfb6a1073f --- /dev/null +++ b/UefiPayloadPkg/Library/LbParseLib/LbParseLib.c @@ -0,0 +1,168 @@ +/** @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.
+ SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Retrieve UefiPayloadConfig from Linuxboot's uefiboot +UefiPayloadConfig* GetUefiPayLoadConfig() { + UefiPayloadConfig* config =3D + (UefiPayloadConfig*)(UINTN)(PcdGet32(PcdPayloadFdMemBase) - SIZE_64K= B); + if (config->Version !=3D 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 star= t, + IN UINTN end, IN int type) { + MEMROY_MAP_ENTRY MemoryMap; + UINTN AlignedStart; + UINTN AlignedEnd; + AlignedStart =3D ALIGN_VALUE(start, SIZE_4KB); + AlignedEnd =3D ALIGN_VALUE(end, SIZE_4KB); + // Conservative adjustment on Memory map. This should happen when bootin= g from + // non UEFI bios and it may report a memory region less than 4KB. + if (AlignedStart > start && type !=3D LINUXBOOT_MEM_RAM) { + AlignedStart -=3D SIZE_4KB; + } + if (AlignedEnd > end + 1 && type =3D=3D LINUXBOOT_MEM_RAM) { + AlignedEnd -=3D SIZE_4KB; + } + MemoryMap.Base =3D AlignedStart; + MemoryMap.Size =3D AlignedEnd - AlignedStart; + MemoryMap.Type =3D type; + MemoryMap.Flag =3D 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; + int i; + + config =3D GetUefiPayLoadConfig(); + + DEBUG((DEBUG_INFO, "MemoryMap #entries: %d\n", config->NumMemoryMapEntri= es)); + + MemoryMapEntry* entry =3D &config->MemoryMapEntries[0]; + for (i =3D 0; i < config->NumMemoryMapEntries; i++) { + 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 =3D GetUefiPayLoadConfig(); + SystemTableInfo->AcpiTableBase =3D config->AcpiBase; + SystemTableInfo->AcpiTableSize =3D config->AcpiSize; + + SystemTableInfo->SmbiosTableBase =3D config->SmbiosBase; + SystemTableInfo->SmbiosTableSize =3D 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 =3D GetUefiPayLoadConfig(); + + SerialPortInfo->BaseAddr =3D config->SerialConfig.BaseAddr; + SerialPortInfo->RegWidth =3D config->SerialConfig.RegWidth; + SerialPortInfo->Type =3D config->SerialConfig.Type; + SerialPortInfo->Baud =3D config->SerialConfig.Baud; + SerialPortInfo->InputHertz =3D config->SerialConfig.InputHertz; + SerialPortInfo->UartPciAddr =3D config->SerialConfig.UartPciAddr; + + return RETURN_SUCCESS; +} + +/** + Find the video frame buffer information + + @param GfxInfo Pointer to the EFI_PEI_GRAPHICS_INFO_HOB str= ucture + + @retval RETURN_SUCCESS Successfully find the video frame buffer +information. + @retval RETURN_NOT_FOUND Failed to find the video frame buffer informa= tion . + +**/ +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_H= OB +structure + + @retval RETURN_SUCCESS Successfully find the video frame buffer +information. + @retval RETURN_NOT_FOUND Failed to find the video frame buffer informa= tion. + +**/ +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 =3D MAX_UINT64; PMemAbove4G->Limit =3D 0; } - +#ifndef LINUXBOOT_PAYLOAD // // Align IO resource at 4K boundary // @@ -98,6 +99,7 @@ AdjustRootBridgeResource ( if (Mem->Base !=3D MAX_UINT64) { Mem->Base &=3D ~Mask; } +#endif } =20 /** diff --git a/CryptoPkg/Library/OpensslLib/openssl b/CryptoPkg/Library/Opens= slLib/openssl index 52c587d60be6..e2e09d9fba11 160000 --- a/CryptoPkg/Library/OpensslLib/openssl +++ b/CryptoPkg/Library/OpensslLib/openssl @@ -1 +1 @@ -Subproject commit 52c587d60be67c337364b830dd3fdc15404a2f04 +Subproject commit e2e09d9fba1187f8d6aafaa34d4172f56f1ffb72 --=20 2.32.0.402.g57bb445576-goog -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#78025): https://edk2.groups.io/g/devel/message/78025 Mute This Topic: https://groups.io/mt/84357533/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Mon May 6 16:40:13 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+78026+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+78026+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1626877706; cv=none; d=zohomail.com; s=zohoarc; b=fxcikTLBsowq3t78hpWH6cgCuxXx3W8rh8Ug77TFCNlieliRkQc7HRpgS6xunqntm0+SdznJ4Pt+zGqJuFfETruUUyB064AYOkDPL+6wzjhu0wTQqGAOEnMqRzUp5nspRNJesXFyjEm4MDFFHViY1TYp7lCMOTBUbgTMBfheCt4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626877706; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=EPQsnnTYSuD9KbeUCFkjm/UvVQ23Gy8hTzZs3bRspOs=; b=Q1GMETlB9rctxpjZPcSg3Y1jNoirFmyB8yuWDsYckAwN0ecG0Mtb+y+uBlmej4N2J8YvZ+CNVGpRfmDUIXBIxlm/+kOt3lyrwuSgTtU+YW0TIKOCGWfGSchqVy7OYgp+KEN5O2l65DjyaRDaUOWmlsovKint9UrXgmjiGbRkBN8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+78026+1787277+3901457@groups.io Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1626877706827108.38072432127524; Wed, 21 Jul 2021 07:28:26 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id zRWAYY1788612x66bMimg6Xm; Wed, 21 Jul 2021 07:28:26 -0700 X-Received: from mail-pf1-f201.google.com (mail-pf1-f201.google.com [209.85.210.201]) by mx.groups.io with SMTP id smtpd.web08.3872.1626873866966155154 for ; Wed, 21 Jul 2021 06:24:27 -0700 X-Received: by mail-pf1-f201.google.com with SMTP id x35-20020a056a0018a3b029032d069176ceso1761347pfh.20 for ; Wed, 21 Jul 2021 06:24:26 -0700 (PDT) X-Gm-Message-State: GHX82LbOuSJzK0s60XiD8hOux1787277AA= X-Google-Smtp-Source: ABdhPJyFgk0PNZ5yyswH/T7u1qZ0MfqB7xL031irKAfouvLe48BJX9P0dGva1e4taehXNdGyFOsjIqyscUX8tXQ0 X-Received: from ratho96.c.googlers.com ([fda3:e722:ac3:cc00:3:22c1:c0a8:aae]) (user=chengchieh job=sendgmr) by 2002:a62:1a4b:0:b029:328:da0b:d83b with SMTP id a72-20020a621a4b0000b0290328da0bd83bmr36183467pfa.59.1626873866005; Wed, 21 Jul 2021 06:24:26 -0700 (PDT) Date: Wed, 21 Jul 2021 13:23:24 +0000 In-Reply-To: <20210721132328.1415485-1-chengchieh@google.com> Message-Id: <20210721132328.1415485-3-chengchieh@google.com> Mime-Version: 1.0 References: <20210721132328.1415485-1-chengchieh@google.com> Subject: [edk2-devel] [PATCH v1 2/6] UefiPayloadPkg: Use legacy timer in Linuxboot payload From: "Cheng-Chieh Huang via groups.io" To: devel@edk2.groups.io Cc: Cheng-Chieh Huang Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,chengchieh@google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1626877706; bh=k3WZIqWJBN/uXCnBuae5BAjnWITfT98qlu61uHtyOas=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=wHI5zQnmK7y133SNtmMCFHNEqksu/QzgwQIgm3Es5gLerGvVz/lYkaDbFFmNF+7YbnZ Jx/WgN4h4t6/BjX0fRd6gRXrpGS719O40Qj+kXaE2MGOomIJOCwW3Z8DattQASsCOT1Xu CfluCXWODtyGhevfbSvm28ZSM7z6avlIYFA= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1626877708761100010 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" HPET timer may fail to init after prior linux taking over. Signed-off-by: Cheng-Chieh Huang --- UefiPayloadPkg/UefiPayloadPkg.dsc | 6 ++++++ UefiPayloadPkg/UefiPayloadPkg.fdf | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc b/UefiPayloadPkg/UefiPayload= Pkg.dsc index 54576ba485b7..e56e6f4a5379 100644 --- a/UefiPayloadPkg/UefiPayloadPkg.dsc +++ b/UefiPayloadPkg/UefiPayloadPkg.dsc @@ -438,7 +438,13 @@ [Components.X64] NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanc= eManagerUiLib.inf } =20 +!if $(BOOTLOADER) =3D=3D "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/UefiPayload= Pkg.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) !=3D "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 --=20 2.32.0.402.g57bb445576-goog -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#78026): https://edk2.groups.io/g/devel/message/78026 Mute This Topic: https://groups.io/mt/84357534/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Mon May 6 16:40:13 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+78027+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+78027+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1626877707; cv=none; d=zohomail.com; s=zohoarc; b=ZdMpgw5IponlB8qeJf7XXRNhggJKH9rjq18WkBgO5V7VtOxtaYYqyMcl/ACfW7N1FZ60r7OSbHxJZnTEWIDFwu1UiqB+AXUsyW6SKFRzsbpZIx+3o6LKRClzaqNyKTqe97eIpiH6rlD92xOlMu3PEtjS7zvgZxmfv2WqsDiVcq4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626877707; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=PvZchD4pxCclyZURKf0EPxFdEqeRozqG64G3V+Njxis=; b=bKwzhlHqxe8RZV+og3M3NlTZ3wGQq2IkiOuhQWNv6okKAyfRv/VoMcesc7TchBy6UfucEDv7xPFNHSn1dmbO/f1rrmt425Zy1P1/YQKnviA6BK2YZR8RPIdibK+rrCZ/fc70hsD/j0huyHd8HZ1C//0d7sX0WgO9jON7zY/zl18= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+78027+1787277+3901457@groups.io Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1626877707196924.454372986511; Wed, 21 Jul 2021 07:28:27 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id HaTeYY1788612xFeOKVXLZoS; Wed, 21 Jul 2021 07:28:26 -0700 X-Received: from mail-qv1-f73.google.com (mail-qv1-f73.google.com [209.85.219.73]) by mx.groups.io with SMTP id smtpd.web09.4011.1626873871559796864 for ; Wed, 21 Jul 2021 06:24:31 -0700 X-Received: by mail-qv1-f73.google.com with SMTP id ca6-20020ad456060000b02902ea7953f97fso1529250qvb.22 for ; Wed, 21 Jul 2021 06:24:31 -0700 (PDT) X-Gm-Message-State: HckWFrBnlfmu9CdZMkAEzEqlx1787277AA= X-Google-Smtp-Source: ABdhPJxpu2VjQNXDSnuk49N0C0619m9ZSftJhA2Vaely/wL4fjSjbOP+eVRStQf44RxBYuhT+gGU0LF/sZ0JJzjK X-Received: from ratho96.c.googlers.com ([fda3:e722:ac3:cc00:3:22c1:c0a8:aae]) (user=chengchieh job=sendgmr) by 2002:a0c:f909:: with SMTP id v9mr32974422qvn.59.1626873870307; Wed, 21 Jul 2021 06:24:30 -0700 (PDT) Date: Wed, 21 Jul 2021 13:23:25 +0000 In-Reply-To: <20210721132328.1415485-1-chengchieh@google.com> Message-Id: <20210721132328.1415485-4-chengchieh@google.com> Mime-Version: 1.0 References: <20210721132328.1415485-1-chengchieh@google.com> Subject: [edk2-devel] [PATCH v1 3/6] UefiPayloadPkg: Update maximum logic processor to 256 From: "Cheng-Chieh Huang via groups.io" To: devel@edk2.groups.io Cc: Cheng-Chieh Huang Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,chengchieh@google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1626877706; bh=xxiUTtYUCFqFWHv4use+B+Um5OUb7VsUwAM4nwM15rc=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=mr4EgEy/bXCeBGUZWf8tWqf33XUu8OcdeVNT4SG0jUGCbgHGCuZL9YmEP94PQ3tgP8u C6bTfiV+ZGkbEAxDNC9qSvhHNjnYGvZ5oeps1CWGwpCvaxL2a+U0jo3Bnwv+6LcjpAmZv H2wDrFAW9ck6pa63EEa0ndr2p6cTTJT9B/I= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1626878609430100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Signed-off-by: Cheng-Chieh Huang --- UefiPayloadPkg/UefiPayloadPkg.dsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc b/UefiPayloadPkg/UefiPayload= Pkg.dsc index e56e6f4a5379..8aa5f18cd35c 100644 --- a/UefiPayloadPkg/UefiPayloadPkg.dsc +++ b/UefiPayloadPkg/UefiPayloadPkg.dsc @@ -40,7 +40,7 @@ [Defines] # # CPU options # - DEFINE MAX_LOGICAL_PROCESSORS =3D 64 + DEFINE MAX_LOGICAL_PROCESSORS =3D 256 =20 # # PCI options --=20 2.32.0.402.g57bb445576-goog -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#78027): https://edk2.groups.io/g/devel/message/78027 Mute This Topic: https://groups.io/mt/84357535/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Mon May 6 16:40:13 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+78028+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+78028+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1626877708; cv=none; d=zohomail.com; s=zohoarc; b=KStQOKm2RPFOm5Df8bIyl08e4KWnQXT0QUF/n+hmy295fNrWVj9XXzqkJnPR6q2xfAnUF07u5hDVt28oVlHy50ZZNZhf9nLQsLmMJ+ONUQvEdDp25AIpTe+FdgATSztp+5y/IYJ3SN9Ygjczzllis1MpuoeD6sxPuX9wU4QkwE0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626877708; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=Y8bp4KsShdfoK1FaN9Rl+evRlIM5JiBh+ldmH6AiC00=; b=iwrUUxvCGuWzNFgyqJHZop6Pr+9/T/R2C8eNs0d1iMZ51e8R43N1lDFBiraO1NXgm8+Lf7Kc61YuGKzmsSOuG0whJvDlMduqGL5KUXl9rDwE/3ytE+7vv49DggZ00p7udhG6eD+CIsk5Ox/G5YSfCyBMiRBEPIsRSmbcRYi+mjc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+78028+1787277+3901457@groups.io Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1626877708008924.7809268747895; Wed, 21 Jul 2021 07:28:28 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id DgkuYY1788612x2ctM403n9J; Wed, 21 Jul 2021 07:28:27 -0700 X-Received: from mail-qk1-f202.google.com (mail-qk1-f202.google.com [209.85.222.202]) by mx.groups.io with SMTP id smtpd.web09.4012.1626873876459913679 for ; Wed, 21 Jul 2021 06:24:36 -0700 X-Received: by mail-qk1-f202.google.com with SMTP id o14-20020a05620a0d4eb02903a5eee61155so1748217qkl.9 for ; Wed, 21 Jul 2021 06:24:35 -0700 (PDT) X-Gm-Message-State: hzOB5wYxGMfiKrhZGNlwPrN8x1787277AA= X-Google-Smtp-Source: ABdhPJziwieFehOxKRtli0Csx518YGeIjfFJbJ/tCX/gpj3OQymKTygjdgeFJNpqJtC/RfJdzC810zkWPnwgfZuV X-Received: from ratho96.c.googlers.com ([fda3:e722:ac3:cc00:3:22c1:c0a8:aae]) (user=chengchieh job=sendgmr) by 2002:a05:6214:c29:: with SMTP id a9mr36322311qvd.0.1626873874847; Wed, 21 Jul 2021 06:24:34 -0700 (PDT) Date: Wed, 21 Jul 2021 13:23:26 +0000 In-Reply-To: <20210721132328.1415485-1-chengchieh@google.com> Message-Id: <20210721132328.1415485-5-chengchieh@google.com> Mime-Version: 1.0 References: <20210721132328.1415485-1-chengchieh@google.com> Subject: [edk2-devel] [PATCH v1 4/6] UefiPayloadPkg: Reserve Payload config in runtime services data From: "Cheng-Chieh Huang via groups.io" To: devel@edk2.groups.io Cc: Cheng-Chieh Huang Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,chengchieh@google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1626877707; bh=6rt9B3s1BUAXKIizsHA1SyfFW4qiv5Xs16/5rmdGoTk=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=biUEi3rN22yHuz4yA+7mgRNMfGfDzTWqogSJsBCEwP11JXIwarjU2tQCoGqQnYXaKOS Yo2I58VllCaKLCEL5sUvK3icuUClzgcqM3ErSfRi8p7UoaRezBRWEwwBNBOJBtx9DDG/z +ZDKPeijPXlc4sLhvk4BrgytTf4YQYpNb4Q= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1626877708893100016 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Signed-off-by: Cheng-Chieh Huang --- UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c b/UefiPaylo= adPkg/UefiPayloadEntry/UefiPayloadEntry.c index ae16f25c7c0e..70afbf83ed4a 100644 --- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c +++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c @@ -517,6 +517,8 @@ BuildGenericHob ( =20 // The UEFI payload FV BuildMemoryAllocationHob (PcdGet32 (PcdPayloadFdMemBase), PcdGet32 (PcdP= ayloadFdMemSize), EfiBootServicesData); + // The UEFI payload config FV + BuildMemoryAllocationHob (PcdGet32 (PcdPayloadFdMemBase) - SIZE_64KB, SI= ZE_64KB, EfiRuntimeServicesData); =20 // // Build CPU memory space and IO space hob --=20 2.32.0.402.g57bb445576-goog -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#78028): https://edk2.groups.io/g/devel/message/78028 Mute This Topic: https://groups.io/mt/84357536/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Mon May 6 16:40:13 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+78029+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+78029+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1626877708; cv=none; d=zohomail.com; s=zohoarc; b=oBdpck+IXDDWP/dG+g5fkomEiDP2y3K2Dl7eqt8IJrkNM1MqcTmJUNSmvynUt9kOTpZWLyMERaEo34dtSKAD8p3II5IsJ0jmYup5k5gsRsaqpF63AXzEskWxU/mXkCC0c6mkqob2vHUkoFPcvOb8Go2OHWmgbBprb+w4j62I+YY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626877708; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=SAqwJ4ZzZGF8p/As3BrIMwpvNYvHdxNFrd+DmzrDsfs=; b=RbSjRvZ0Sw5kFduGhwb9irtqG9M+66h7Fpa9DVHsVMZ4iEhOi9z0+ITiNqwKU+fEPQXWi8qkYzT9QstTYYwPsoV5Tf1K4006fcOFrQ+RRgY2rltyF2hIMC4asDdGevKhNAm+PyaE/uhthP3/JjzGilsmpjjSCU5jbx5IWAIvwvk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+78029+1787277+3901457@groups.io Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1626877708068761.8817766862945; Wed, 21 Jul 2021 07:28:28 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 3SdeYY1788612x1B9xRVfvQs; Wed, 21 Jul 2021 07:28:27 -0700 X-Received: from mail-pj1-f73.google.com (mail-pj1-f73.google.com [209.85.216.73]) by mx.groups.io with SMTP id smtpd.web11.3847.1626873882848653360 for ; Wed, 21 Jul 2021 06:24:42 -0700 X-Received: by mail-pj1-f73.google.com with SMTP id c20-20020a17090ab294b029016fccb9582dso1659495pjr.7 for ; Wed, 21 Jul 2021 06:24:42 -0700 (PDT) X-Gm-Message-State: ZjJ86KBgenxjkao7VLKIh53kx1787277AA= X-Google-Smtp-Source: ABdhPJwraCnWBoV1OphX9RADEToyArFHdJJXqBGzR6bj8B7SqZO26byDs7vME5rS87vy4/u2YzVu6tBjcQGkNpto X-Received: from ratho96.c.googlers.com ([fda3:e722:ac3:cc00:3:22c1:c0a8:aae]) (user=chengchieh job=sendgmr) by 2002:a17:90a:c983:: with SMTP id w3mr381484pjt.0.1626873881613; Wed, 21 Jul 2021 06:24:41 -0700 (PDT) Date: Wed, 21 Jul 2021 13:23:27 +0000 In-Reply-To: <20210721132328.1415485-1-chengchieh@google.com> Message-Id: <20210721132328.1415485-6-chengchieh@google.com> Mime-Version: 1.0 References: <20210721132328.1415485-1-chengchieh@google.com> Subject: [edk2-devel] [PATCH v1 5/6] UefiPayloadPkg: Add DISABLE_MMX_SSE to avoid generating floating points operation From: "Cheng-Chieh Huang via groups.io" To: devel@edk2.groups.io Cc: Cheng-Chieh Huang Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,chengchieh@google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1626877707; bh=t9ky+KAuE+8/8q4cIl07sA22osritdn19COPw3n/fcU=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=bwe92KwHJmjKnJ6EIsUGCSQP6pcnlkFPoej+BLPSDpe2M8MYwf3KoskhuNN7zZkDH4O Kl851wnUdwqQz/XrpHk0wpNhyYdNhA0Tp4VcKF8IBhYzGT0f2jNEBvw5poudZTuO+putG wT04uChItHkCrpnP38P0P4Y7NxnfA7avV38= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1626877708899100017 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This will allow we compile payload using gcc8 Signed-off-by: Cheng-Chieh Huang --- UefiPayloadPkg/UefiPayloadPkg.dsc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc b/UefiPayloadPkg/UefiPayload= Pkg.dsc index 8aa5f18cd35c..fa41c5a24af5 100644 --- a/UefiPayloadPkg/UefiPayloadPkg.dsc +++ b/UefiPayloadPkg/UefiPayloadPkg.dsc @@ -30,6 +30,8 @@ [Defines] DEFINE PS2_KEYBOARD_ENABLE =3D FALSE DEFINE UNIVERSAL_PAYLOAD =3D FALSE =20 + DEFINE DISABLE_MMX_SSE =3D FALSE + # # SBL: UEFI payload for Slim Bootloader # COREBOOT: UEFI payload for coreboot @@ -96,6 +98,9 @@ [BuildOptions] *_*_*_CC_FLAGS =3D -D DISABLE_NEW_DEPRECATED_INTERFACES !if $(BOOTLOADER) =3D=3D "LINUXBOOT" *_*_*_CC_FLAGS =3D -D LINUXBOOT_PAYLOAD +!endif +!if $(DISABLE_MMX_SSE) + *_*_*_CC_FLAGS =3D -mno-mmx -mno-sse !endif GCC:*_UNIXGCC_*_CC_FLAGS =3D -DMDEPKG_NDEBUG GCC:RELEASE_*_*_CC_FLAGS =3D -DMDEPKG_NDEBUG --=20 2.32.0.402.g57bb445576-goog -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#78029): https://edk2.groups.io/g/devel/message/78029 Mute This Topic: https://groups.io/mt/84357537/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Mon May 6 16:40:13 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+78030+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+78030+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1626877708; cv=none; d=zohomail.com; s=zohoarc; b=kVIn/SOypel37IvfEDS5PJBpdqCX57DUlepQ5DMKPBatvc57agyOqZuU6TdItuz4bb/t9MIurEgDrGq+jsSShiFCXAIeRq/ERv4OT5aMMjYyPNvPag30QNu+TO8ZjQI7Bp5w/+CBsH/hm8TmcpwP077OlCkTo1/vrCvRCnY/Skw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626877708; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=AQ+Qu+/Z23JMvKoEMWaybkNGz8jw0J8PSWZwBxecWSg=; b=CCWG1+vMpxobV2EOcCjYbQKMcHqwUdusa4v8eGx5wNVYDnRpDhfWlznOLnzZWTKVmlYB3rvEeVjsnmm+jtf3fYiMCBPRsvZS2sqy/ledQbLsMiTYiIzXQAx5nD1584clgQ79vF37iSjVX76O4zI1zjK2Q5Vf+CxT90mgSQNgp5U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+78030+1787277+3901457@groups.io Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1626877708487368.91554666992965; Wed, 21 Jul 2021 07:28:28 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id EXq4YY1788612xNdNYMDWSre; Wed, 21 Jul 2021 07:28:28 -0700 X-Received: from mail-qt1-f202.google.com (mail-qt1-f202.google.com [209.85.160.202]) by mx.groups.io with SMTP id smtpd.web09.4014.1626873887645655575 for ; Wed, 21 Jul 2021 06:24:47 -0700 X-Received: by mail-qt1-f202.google.com with SMTP id b6-20020a05622a0206b029025eb726dd9bso1619799qtx.8 for ; Wed, 21 Jul 2021 06:24:47 -0700 (PDT) X-Gm-Message-State: ORbrQClvCRLKGbm24Rq4U6FPx1787277AA= X-Google-Smtp-Source: ABdhPJyi3UF0mCsJG+kaj06dwa+7GpF035K8TJ15JdVwW6gS6u8W2vNYx2l6rHFf3jj8E6DHwfKQOs0s872ROn44 X-Received: from ratho96.c.googlers.com ([fda3:e722:ac3:cc00:3:22c1:c0a8:aae]) (user=chengchieh job=sendgmr) by 2002:a05:6214:443:: with SMTP id cc3mr35904153qvb.40.1626873886400; Wed, 21 Jul 2021 06:24:46 -0700 (PDT) Date: Wed, 21 Jul 2021 13:23:28 +0000 In-Reply-To: <20210721132328.1415485-1-chengchieh@google.com> Message-Id: <20210721132328.1415485-7-chengchieh@google.com> Mime-Version: 1.0 References: <20210721132328.1415485-1-chengchieh@google.com> Subject: [edk2-devel] [PATCH v1 6/6] UefiPayloadPkg: LinuxBoot: use a text format for the configuration block. From: "Cheng-Chieh Huang via groups.io" To: devel@edk2.groups.io Cc: Trammell Hudson , Cheng-Chieh Huang Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,chengchieh@google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1626877708; bh=O1tta/Ja0ITCp2oWEjg1F+g5RgKeqASh/kF8PPMP0B0=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=qZzdgEkrriD+ezYB+BVubk1TnubRx1qFsSBjaawpmNOkkQwRIfRvUwGOWlMa+FxE7rI PjAquHycYKfcHaSNYCcjUdnAAA/9jLlH/gN45b2MHDRsOF1TzmVetINtEIPV1jks/HMZA /zRNpB05QnRLHkKk9eg7xZqmyNE1/e/tGkk= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1626877708947100021 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Trammell Hudson This adds a text command line for the UefiPayloadPkg that uses a textual magic number 'LnxBoot1' and a series of white-space separated key=3Dvalue[,value...] pairs for the parameters. The v1 binary configuration structure is used if it is present instead for backwards compatability. Currently supported text command line arguments are are: * `serial=3Dbaud,base,width,type,hz,pci` (only `baud` needs to be specified, the rest have reasonable defaults) * `mem=3Dstart,end,type` Types are based on `/sys/firmware/memmaps/*/types`: 1 =3D=3D "System RAM" 3 =3D=3D "ACPI Tables" 4 =3D=3D "ACPI Non-volatile Storage" 5 =3D=3D "Reserved" * `ACPI20=3Dbase` pointer to RDSP (from `/sys/firmware/efi/systab`) * `SMBIOS=3Dbase` pointer to the SMBIOS table (also from the EFI table) Signed-off-by: Cheng-Chieh Huang --- UefiPayloadPkg/Include/Linuxboot.h | 17 +- UefiPayloadPkg/Library/LbParseLib/LbParseLib.c | 252 +++++++++++++++++--- 2 files changed, 230 insertions(+), 39 deletions(-) diff --git a/UefiPayloadPkg/Include/Linuxboot.h b/UefiPayloadPkg/Include/Li= nuxboot.h index 34ca18069983..56b39b5a09ff 100644 --- a/UefiPayloadPkg/Include/Linuxboot.h +++ b/UefiPayloadPkg/Include/Linuxboot.h @@ -24,8 +24,7 @@ typedef struct MemoryMapEntryStruct { UINT32 Type; } MemoryMapEntry; =20 -typedef struct UefiPayloadConfigStruct { - UINT64 Version; +typedef struct { UINT64 AcpiBase; UINT64 AcpiSize; UINT64 SmbiosBase; @@ -33,10 +32,22 @@ typedef struct UefiPayloadConfigStruct { SerialPortConfig SerialConfig; UINT32 NumMemoryMapEntries; MemoryMapEntry MemoryMapEntries[0]; +} UefiPayloadConfigV1; + +typedef struct UefiPayloadConfigStruct { + UINT64 Version; + union { + UefiPayloadConfigV1 v1; + struct { + char cmdline[0]; // up to 64 KB + } v2; + } config; } UefiPayloadConfig; #pragma pack() =20 -#define UEFI_PAYLOAD_CONFIG_VERSION 1 +// magic version config is "LnxBoot1" +#define UEFI_PAYLOAD_CONFIG_VERSION1 1 +#define UEFI_PAYLOAD_CONFIG_VERSION2 0x31746f6f42786e4cULL =20 #define LINUXBOOT_MEM_RAM 1 #define LINUXBOOT_MEM_DEFAULT 2 diff --git a/UefiPayloadPkg/Library/LbParseLib/LbParseLib.c b/UefiPayloadPk= g/Library/LbParseLib/LbParseLib.c index 34bfb6a1073f..5e68091cac91 100644 --- a/UefiPayloadPkg/Library/LbParseLib/LbParseLib.c +++ b/UefiPayloadPkg/Library/LbParseLib/LbParseLib.c @@ -1,13 +1,12 @@ /** @file - This library will parse the linuxboot table in memory and extract those = required - information. + This library will parse the linuxboot table in memory and extract those +required information. =20 Copyright (c) 2021, the u-root Authors. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent =20 **/ =20 - #include #include #include @@ -18,17 +17,42 @@ #include #include #include +#include +#include +//#include +//#include + +#define strncmp(a, b, n) AsciiStrnCmp((a), (b), (n)) + +static uint64_t parse_int(const char* s, char** end) { + UINT64 x; + + if (s[0] =3D=3D '0' && s[1] =3D=3D 'x') + AsciiStrHexToUint64S(s, end, &x); + else + AsciiStrDecimalToUint64S(s, end, &x); + + return x; +} + +static int isspace(const char c) { return c =3D=3D ' ' || c =3D=3D '\t' ||= c =3D=3D '\n'; } =20 // Retrieve UefiPayloadConfig from Linuxboot's uefiboot -UefiPayloadConfig* GetUefiPayLoadConfig() { - UefiPayloadConfig* config =3D +const UefiPayloadConfig* GetUefiPayLoadConfig() { + const UefiPayloadConfig* config =3D (UefiPayloadConfig*)(UINTN)(PcdGet32(PcdPayloadFdMemBase) - SIZE_64K= B); - if (config->Version !=3D 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; + + if (config->Version =3D=3D UEFI_PAYLOAD_CONFIG_VERSION1 || + config->Version =3D=3D UEFI_PAYLOAD_CONFIG_VERSION2) + return config; + + DEBUG((DEBUG_ERROR, + "Expect payload config version %016lx or %016lx, but get %016lx\n= ", + UEFI_PAYLOAD_CONFIG_VERSION1, UEFI_PAYLOAD_CONFIG_VERSION2, + config->Version)); + CpuDeadLoop(); + while (1) + ; } =20 // Align the address and add memory rang to MemInfoCallback @@ -54,6 +78,57 @@ void AddMemoryRange(IN BL_MEM_INFO_CALLBACK MemInfoCallb= ack, IN UINTN start, MemInfoCallback(&MemoryMap, NULL); } =20 +const char* cmdline_next(const char* cmdline, const char** option) { + // at the end of the string, we're done + if (!cmdline || *cmdline =3D=3D '\0') return NULL; + + // skip any leading whitespace + while (isspace(*cmdline)) cmdline++; + + // if we've hit the end of the string, we're done + if (*cmdline =3D=3D '\0') return NULL; + + *option =3D cmdline; + + // find the end of this option or the string + while (!isspace(*cmdline) && *cmdline !=3D '\0') cmdline++; + + // cmdline points to the whitespace or end of string + return cmdline; +} + +int cmdline_ints(const char* option, uint64_t args[], int max) { + // skip any leading text up to an '=3D' + const char* s =3D option; + while (1) { + const char c =3D *s++; + if (c =3D=3D '=3D') break; + + if (c =3D=3D '\0' || isspace(c)) { + s =3D option; + break; + } + } + + for (int i =3D 0; i < max; i++) { + char* end; + args[i] =3D parse_int(s, &end); + + // end of string or end of the option? + if (*end =3D=3D '\0' || isspace(*end)) return i + 1; + + // not separator? signal an error if we have consumed any ints, + // otherwise return 0 saying that none were found + if (*end !=3D ',') return i =3D=3D 0 ? 0 : -1; + + // skip the , and get the next value + s =3D end + 1; + } + + // too many values! + return -1; +} + /** Acquire the memory information from the linuxboot table in memory. =20 @@ -67,20 +142,50 @@ void AddMemoryRange(IN BL_MEM_INFO_CALLBACK MemInfoCal= lback, IN UINTN start, RETURN_STATUS EFIAPI ParseMemoryInfo(IN BL_MEM_INFO_CALLBACK MemInfoCallback, IN VOID* Params) { - UefiPayloadConfig* config; - int i; + const UefiPayloadConfig* config =3D GetUefiPayLoadConfig(); + if (!config) { + DEBUG( + (DEBUG_ERROR, "ParseMemoryInfo: Could not find UEFI Payload config= \n")); + return RETURN_SUCCESS; + } + + if (config->Version =3D=3D UEFI_PAYLOAD_CONFIG_VERSION1) { + const UefiPayloadConfigV1* config1 =3D &config->config.v1; + DEBUG( + (DEBUG_INFO, "MemoryMap #entries: %d\n", config1->NumMemoryMapEntr= ies)); + + for (int i =3D 0; i < config1->NumMemoryMapEntries; i++) { + const MemoryMapEntry* entry =3D &config1->MemoryMapEntries[i]; + 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->Typ= e); + } + } else =20 - config =3D GetUefiPayLoadConfig(); + if (config->Version =3D=3D UEFI_PAYLOAD_CONFIG_VERSION2) { + const char* cmdline =3D config->config.v2.cmdline; + const char* option; + uint64_t args[3]; =20 - DEBUG((DEBUG_INFO, "MemoryMap #entries: %d\n", config->NumMemoryMapEntri= es)); + // look for the mem=3Dstart,end,type + while ((cmdline =3D cmdline_next(cmdline, &option))) { + if (strncmp(option, "mem=3D", 4) !=3D 0) continue; =20 - MemoryMapEntry* entry =3D &config->MemoryMapEntries[0]; - for (i =3D 0; i < config->NumMemoryMapEntries; i++) { - 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++; + if (cmdline_ints(option, args, 3) !=3D 3) { + DEBUG((DEBUG_ERROR, "Parse error: '%a'\n", option)); + continue; + } + + const uint64_t start =3D args[0]; + const uint64_t end =3D args[1]; + const uint64_t type =3D args[2]; + + DEBUG( + (DEBUG_INFO, "Start: 0x%lx End: 0x%lx Type:%d\n", start, end, ty= pe)); + AddMemoryRange(MemInfoCallback, start, end, type); + } } + return RETURN_SUCCESS; } =20 @@ -96,14 +201,52 @@ ParseMemoryInfo(IN BL_MEM_INFO_CALLBACK MemInfoCallbac= k, IN VOID* Params) { RETURN_STATUS EFIAPI ParseSystemTable(OUT SYSTEM_TABLE_INFO* SystemTableInfo) { - UefiPayloadConfig* config; + const UefiPayloadConfig* config =3D GetUefiPayLoadConfig(); + if (!config) { + DEBUG((DEBUG_ERROR, + "ParseSystemTable: Could not find UEFI Payload config\n")); + return RETURN_SUCCESS; + } =20 - config =3D GetUefiPayLoadConfig(); - SystemTableInfo->AcpiTableBase =3D config->AcpiBase; - SystemTableInfo->AcpiTableSize =3D config->AcpiSize; + if (config->Version =3D=3D UEFI_PAYLOAD_CONFIG_VERSION1) { + const UefiPayloadConfigV1* config1 =3D &config->config.v1; + SystemTableInfo->AcpiTableBase =3D config1->AcpiBase; + SystemTableInfo->AcpiTableSize =3D config1->AcpiSize; =20 - SystemTableInfo->SmbiosTableBase =3D config->SmbiosBase; - SystemTableInfo->SmbiosTableSize =3D config->SmbiosSize; + SystemTableInfo->SmbiosTableBase =3D config1->SmbiosBase; + SystemTableInfo->SmbiosTableSize =3D config1->SmbiosSize; + } else + + if (config->Version =3D=3D UEFI_PAYLOAD_CONFIG_VERSION2) { + const char* cmdline =3D config->config.v2.cmdline; + const char* option; + uint64_t args[2]; + + // look for the acpi config + while ((cmdline =3D cmdline_next(cmdline, &option))) { + if (strncmp(option, "ACPI20=3D", 7) =3D=3D 0) { + const int count =3D cmdline_ints(option, args, 2); + if (count < 0) { + DEBUG((DEBUG_ERROR, "Parse error: '%a'\n", option)); + continue; + } + + if (count > 0) SystemTableInfo->AcpiTableBase =3D args[0]; + if (count > 1) SystemTableInfo->AcpiTableSize =3D args[1]; + } + + if (strncmp(option, "SMBIOS=3D", 7) =3D=3D 0) { + const int count =3D cmdline_ints(option, args, 2); + if (count < 0) { + DEBUG((DEBUG_ERROR, "Parse error: '%a'\n", option)); + continue; + } + + if (count > 0) SystemTableInfo->SmbiosTableBase =3D args[0]; + if (count > 1) SystemTableInfo->SmbiosTableSize =3D args[1]; + } + } + } =20 return RETURN_SUCCESS; } @@ -120,15 +263,52 @@ ParseSystemTable(OUT SYSTEM_TABLE_INFO* SystemTableIn= fo) { RETURN_STATUS EFIAPI ParseSerialInfo(OUT SERIAL_PORT_INFO* SerialPortInfo) { - UefiPayloadConfig* config; - config =3D GetUefiPayLoadConfig(); - - SerialPortInfo->BaseAddr =3D config->SerialConfig.BaseAddr; - SerialPortInfo->RegWidth =3D config->SerialConfig.RegWidth; - SerialPortInfo->Type =3D config->SerialConfig.Type; - SerialPortInfo->Baud =3D config->SerialConfig.Baud; - SerialPortInfo->InputHertz =3D config->SerialConfig.InputHertz; - SerialPortInfo->UartPciAddr =3D config->SerialConfig.UartPciAddr; + // fill in some reasonable defaults + SerialPortInfo->BaseAddr =3D 0x3f8; + SerialPortInfo->RegWidth =3D 1; + SerialPortInfo->Type =3D 1; // uefi.SerialPortTypeIO + SerialPortInfo->Baud =3D 115200; + SerialPortInfo->InputHertz =3D 1843200; + SerialPortInfo->UartPciAddr =3D 0; + + const UefiPayloadConfig* config =3D GetUefiPayLoadConfig(); + if (!config) { + DEBUG((DEBUG_ERROR, "ParseSerialInfo: using default config\n")); + return RETURN_SUCCESS; + } + + if (config->Version =3D=3D UEFI_PAYLOAD_CONFIG_VERSION1) { + const UefiPayloadConfigV1* config1 =3D &config->config.v1; + SerialPortInfo->BaseAddr =3D config1->SerialConfig.BaseAddr; + SerialPortInfo->RegWidth =3D config1->SerialConfig.RegWidth; + SerialPortInfo->Type =3D config1->SerialConfig.Type; + SerialPortInfo->Baud =3D config1->SerialConfig.Baud; + SerialPortInfo->InputHertz =3D config1->SerialConfig.InputHertz; + SerialPortInfo->UartPciAddr =3D config1->SerialConfig.UartPciAddr; + } else + + if (config->Version =3D=3D UEFI_PAYLOAD_CONFIG_VERSION2) { + const char* cmdline =3D config->config.v2.cmdline; + const char* option; + uint64_t args[6] =3D {}; + + while ((cmdline =3D cmdline_next(cmdline, &option))) { + if (strncmp(option, "serial=3D", 7) !=3D 0) continue; + + const int count =3D cmdline_ints(option, args, 6); + if (count < 0) { + DEBUG((DEBUG_ERROR, "Parse error: %a\n", option)); + continue; + } + + if (count > 0) SerialPortInfo->Baud =3D args[0]; + if (count > 1) SerialPortInfo->BaseAddr =3D args[1]; + if (count > 2) SerialPortInfo->RegWidth =3D args[2]; + if (count > 3) SerialPortInfo->Type =3D args[3]; + if (count > 4) SerialPortInfo->InputHertz =3D args[4]; + if (count > 5) SerialPortInfo->UartPciAddr =3D args[5]; + } + } =20 return RETURN_SUCCESS; } --=20 2.32.0.402.g57bb445576-goog -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#78030): https://edk2.groups.io/g/devel/message/78030 Mute This Topic: https://groups.io/mt/84357538/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-