From patchwork Tue Mar 14 15:17:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jon Mason X-Patchwork-Id: 20914 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 50E0BC6FD1D for ; Tue, 14 Mar 2023 15:17:52 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.11517.1678807067139303111 for ; Tue, 14 Mar 2023 08:17:47 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: jon.mason@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 66F2B4B3 for ; Tue, 14 Mar 2023 08:18:30 -0700 (PDT) Received: from jdm-VirtualBox.lan044arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 915F43F67D for ; Tue, 14 Mar 2023 08:17:46 -0700 (PDT) From: Jon Mason To: meta-arm@lists.yoctoproject.org Subject: [PATCH 1/2] arm/edk2: update version and relocate edk2-basetools to be with edk2 Date: Tue, 14 Mar 2023 11:17:41 -0400 Message-Id: <20230314151742.501440-1-jon.mason@arm.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 14 Mar 2023 15:17:52 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/meta-arm/message/4491 Update to the latest version of EDK2. There is an issue with memory not being initialized and hanging boot. So revert the patch that is causing the issue until the proper solution can be found. Signed-off-by: Jon Mason --- .../uefi/edk2-basetools-native_202302.bb} | 2 +- meta-arm/recipes-bsp/uefi/edk2-firmware.inc | 1 - .../recipes-bsp/uefi/edk2-firmware_%.bbappend | 4 + .../recipes-bsp/uefi/edk2-firmware_202205.bb | 4 - .../recipes-bsp/uefi/edk2-firmware_202302.bb | 4 + ...g-QemuVirtMemInfoLib-use-HOB-not-PCD.patch | 290 ++++++++++++++++++ ...g-ArmVirtQemu-omit-PCD-PEIM-unless-T.patch | 89 ++++++ .../recipes-bsp/uefi/files/unaligned.patch | 34 -- ...in-the-paths-to-the-SBSA-test-suite.patch} | 0 ...3-Enforce-using-good-old-BFD-linker.patch} | 11 +- meta-arm/recipes-bsp/uefi/sbsa-acs_6.1.0.bb | 6 +- 11 files changed, 398 insertions(+), 47 deletions(-) rename meta-arm/{recipes-devtools/edk2-basetools/edk2-basetools-native_202211.bb => recipes-bsp/uefi/edk2-basetools-native_202302.bb} (93%) delete mode 100644 meta-arm/recipes-bsp/uefi/edk2-firmware_202205.bb create mode 100644 meta-arm/recipes-bsp/uefi/edk2-firmware_202302.bb create mode 100644 meta-arm/recipes-bsp/uefi/files/0001-Revert-ArmVirtPkg-QemuVirtMemInfoLib-use-HOB-not-PCD.patch create mode 100644 meta-arm/recipes-bsp/uefi/files/0002-Revert-ArmVirtPkg-ArmVirtQemu-omit-PCD-PEIM-unless-T.patch delete mode 100644 meta-arm/recipes-bsp/uefi/files/unaligned.patch rename meta-arm/recipes-bsp/uefi/sbsa-acs/{shell.patch => 0002-Patch-in-the-paths-to-the-SBSA-test-suite.patch} (100%) rename meta-arm/recipes-bsp/uefi/sbsa-acs/{use_bfd_linker.patch => 0003-Enforce-using-good-old-BFD-linker.patch} (81%) diff --git a/meta-arm/recipes-devtools/edk2-basetools/edk2-basetools-native_202211.bb b/meta-arm/recipes-bsp/uefi/edk2-basetools-native_202302.bb similarity index 93% rename from meta-arm/recipes-devtools/edk2-basetools/edk2-basetools-native_202211.bb rename to meta-arm/recipes-bsp/uefi/edk2-basetools-native_202302.bb index 6a59c22c..b331c361 100644 --- a/meta-arm/recipes-devtools/edk2-basetools/edk2-basetools-native_202211.bb +++ b/meta-arm/recipes-bsp/uefi/edk2-basetools-native_202302.bb @@ -10,7 +10,7 @@ LICENSE = "BSD-2-Clause-Patent" SRC_URI = "git://github.com/tianocore/edk2.git;branch=master;protocol=https" LIC_FILES_CHKSUM = "file://License.txt;md5=2b415520383f7964e96700ae12b4570a" -SRCREV = "fff6d81270b57ee786ea18ad74f43149b9f03494" +SRCREV = "f80f052277c88a67c55e107b550f504eeea947d3" S = "${WORKDIR}/git" diff --git a/meta-arm/recipes-bsp/uefi/edk2-firmware.inc b/meta-arm/recipes-bsp/uefi/edk2-firmware.inc index bc477479..4b9eda39 100644 --- a/meta-arm/recipes-bsp/uefi/edk2-firmware.inc +++ b/meta-arm/recipes-bsp/uefi/edk2-firmware.inc @@ -18,7 +18,6 @@ SRCBRANCH_edk2_platforms = "master" SRC_URI = "\ ${SRC_URI_EDK2};branch=${SRCBRANCH_edk2_platforms};name=edk2;destsuffix=edk2 \ ${SRC_URI_EDK2_PLATFORMS};branch=${SRCBRANCH_edk2};name=edk2-platforms;destsuffix=edk2/edk2-platforms \ - file://unaligned.patch \ file://default.patch;patchdir=edk2-platforms \ " diff --git a/meta-arm/recipes-bsp/uefi/edk2-firmware_%.bbappend b/meta-arm/recipes-bsp/uefi/edk2-firmware_%.bbappend index 7a39bb03..19b33541 100644 --- a/meta-arm/recipes-bsp/uefi/edk2-firmware_%.bbappend +++ b/meta-arm/recipes-bsp/uefi/edk2-firmware_%.bbappend @@ -7,6 +7,10 @@ COMPATIBLE_MACHINE:qemuarm64 = "qemuarm64" EDK2_PLATFORM:qemuarm64 = "ArmVirtQemu-AARCH64" EDK2_PLATFORM_DSC:qemuarm64 = "ArmVirtPkg/ArmVirtQemu.dsc" EDK2_BIN_NAME:qemuarm64 = "QEMU_EFI.fd" +SRC_URI:append:qemuarm64 = " \ + file://0001-Revert-ArmVirtPkg-QemuVirtMemInfoLib-use-HOB-not-PCD.patch \ + file://0002-Revert-ArmVirtPkg-ArmVirtQemu-omit-PCD-PEIM-unless-T.patch \ + " COMPATIBLE_MACHINE:qemuarm = "qemuarm" EDK2_PLATFORM:qemuarm = "ArmVirtQemu-ARM" diff --git a/meta-arm/recipes-bsp/uefi/edk2-firmware_202205.bb b/meta-arm/recipes-bsp/uefi/edk2-firmware_202205.bb deleted file mode 100644 index e2606653..00000000 --- a/meta-arm/recipes-bsp/uefi/edk2-firmware_202205.bb +++ /dev/null @@ -1,4 +0,0 @@ -SRCREV_edk2 ?= "16779ede2d366bfc6b702e817356ccf43425bcc8" -SRCREV_edk2-platforms ?= "3b896d1a325686de3942723c42f286090453e37a" - -require edk2-firmware.inc diff --git a/meta-arm/recipes-bsp/uefi/edk2-firmware_202302.bb b/meta-arm/recipes-bsp/uefi/edk2-firmware_202302.bb new file mode 100644 index 00000000..fa26c3e3 --- /dev/null +++ b/meta-arm/recipes-bsp/uefi/edk2-firmware_202302.bb @@ -0,0 +1,4 @@ +SRCREV_edk2 ?= "f80f052277c88a67c55e107b550f504eeea947d3" +SRCREV_edk2-platforms ?= "65e001a7f2abedf7799cfb36b057326c1540bd47" + +require edk2-firmware.inc diff --git a/meta-arm/recipes-bsp/uefi/files/0001-Revert-ArmVirtPkg-QemuVirtMemInfoLib-use-HOB-not-PCD.patch b/meta-arm/recipes-bsp/uefi/files/0001-Revert-ArmVirtPkg-QemuVirtMemInfoLib-use-HOB-not-PCD.patch new file mode 100644 index 00000000..824c6ccb --- /dev/null +++ b/meta-arm/recipes-bsp/uefi/files/0001-Revert-ArmVirtPkg-QemuVirtMemInfoLib-use-HOB-not-PCD.patch @@ -0,0 +1,290 @@ +From 44b69c8d7c8ed665b4f8d8a9953ea23a731d221f Mon Sep 17 00:00:00 2001 +From: Your Name +Date: Fri, 10 Mar 2023 18:46:49 +0000 +Subject: [PATCH] Revert "ArmVirtPkg/QemuVirtMemInfoLib: use HOB not PCD to + record the memory size" + +This reverts commit 7136d5491e225c57f1d73e4a1b7ac27ed656ff72. + +Upstream-Status: Inappropriate [other] +Signed-off-by: Jon Mason + +--- + ArmVirtPkg/ArmVirtPkg.dec | 1 - + ArmVirtPkg/ArmVirtQemu.dsc | 6 ++-- + .../ArmVirtMemoryInitPeiLib.c | 14 ++------ + .../ArmVirtMemoryInitPeiLib.inf | 1 - + .../QemuVirtMemInfoLib/QemuVirtMemInfoLib.c | 35 ++----------------- + .../QemuVirtMemInfoLib/QemuVirtMemInfoLib.inf | 5 +-- + .../QemuVirtMemInfoPeiLib.inf | 8 ++--- + .../QemuVirtMemInfoPeiLibConstructor.c | 30 +++++++--------- + 8 files changed, 25 insertions(+), 75 deletions(-) + +diff --git a/ArmVirtPkg/ArmVirtPkg.dec b/ArmVirtPkg/ArmVirtPkg.dec +index 4645c91a83..d2d325d71e 100644 +--- a/ArmVirtPkg/ArmVirtPkg.dec ++++ b/ArmVirtPkg/ArmVirtPkg.dec +@@ -32,7 +32,6 @@ + gArmVirtTokenSpaceGuid = { 0x0B6F5CA7, 0x4F53, 0x445A, { 0xB7, 0x6E, 0x2E, 0x36, 0x5B, 0x80, 0x63, 0x66 } } + gEarlyPL011BaseAddressGuid = { 0xB199DEA9, 0xFD5C, 0x4A84, { 0x80, 0x82, 0x2F, 0x41, 0x70, 0x78, 0x03, 0x05 } } + gEarly16550UartBaseAddressGuid = { 0xea67ca3e, 0x1f54, 0x436b, { 0x97, 0x88, 0xd4, 0xeb, 0x29, 0xc3, 0x42, 0x67 } } +- gArmVirtSystemMemorySizeGuid = { 0x504eccb9, 0x1bf0, 0x4420, { 0x86, 0x5d, 0xdc, 0x66, 0x06, 0xd4, 0x13, 0xbf } } + + [PcdsFeatureFlag] + # +diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc +index 72a0cacab4..2e786dad12 100644 +--- a/ArmVirtPkg/ArmVirtQemu.dsc ++++ b/ArmVirtPkg/ArmVirtQemu.dsc +@@ -226,9 +226,6 @@ + # Shadowing PEI modules is absolutely pointless when the NOR flash is emulated + gEfiMdeModulePkgTokenSpaceGuid.PcdShadowPeimOnBoot|FALSE + +- # System Memory Size -- 128 MB initially, actual size will be fetched from DT +- gArmTokenSpaceGuid.PcdSystemMemorySize|0x8000000 +- + [PcdsFixedAtBuild.AARCH64] + # Clearing BIT0 in this PCD prevents installing a 32-bit SMBIOS entry point, + # if the entry point version is >= 3.0. AARCH64 OSes cannot assume the +@@ -245,6 +242,9 @@ + # enumeration to complete before installing ACPI tables. + gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|TRUE + ++ # System Memory Size -- 1 MB initially, actual size will be fetched from DT ++ gArmTokenSpaceGuid.PcdSystemMemorySize|0x00100000 ++ + gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum|0x0 + gArmTokenSpaceGuid.PcdArmArchTimerIntrNum|0x0 + gArmTokenSpaceGuid.PcdArmArchTimerVirtIntrNum|0x0 +diff --git a/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.c b/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.c +index 72e5c65af7..98d90ad420 100644 +--- a/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.c ++++ b/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.c +@@ -52,19 +52,10 @@ MemoryPeim ( + { + EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttributes; + UINT64 SystemMemoryTop; +- UINT64 SystemMemorySize; +- VOID *Hob; + + // Ensure PcdSystemMemorySize has been set + ASSERT (PcdGet64 (PcdSystemMemorySize) != 0); + +- SystemMemorySize = PcdGet64 (PcdSystemMemorySize); +- +- Hob = GetFirstGuidHob (&gArmVirtSystemMemorySizeGuid); +- if (Hob != NULL) { +- SystemMemorySize = *(UINT64 *)GET_GUID_HOB_DATA (Hob); +- } +- + // + // Now, the permanent memory has been installed, we can call AllocatePages() + // +@@ -75,7 +66,8 @@ MemoryPeim ( + EFI_RESOURCE_ATTRIBUTE_TESTED + ); + +- SystemMemoryTop = PcdGet64 (PcdSystemMemoryBase) + SystemMemorySize; ++ SystemMemoryTop = PcdGet64 (PcdSystemMemoryBase) + ++ PcdGet64 (PcdSystemMemorySize); + + if (SystemMemoryTop - 1 > MAX_ALLOC_ADDRESS) { + BuildResourceDescriptorHob ( +@@ -95,7 +87,7 @@ MemoryPeim ( + EFI_RESOURCE_SYSTEM_MEMORY, + ResourceAttributes, + PcdGet64 (PcdSystemMemoryBase), +- SystemMemorySize ++ PcdGet64 (PcdSystemMemorySize) + ); + } + +diff --git a/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.inf b/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.inf +index 48d9c66b22..21327f79f4 100644 +--- a/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.inf ++++ b/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.inf +@@ -34,7 +34,6 @@ + CacheMaintenanceLib + + [Guids] +- gArmVirtSystemMemorySizeGuid + gEfiMemoryTypeInformationGuid + + [FeaturePcd] +diff --git a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.c b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.c +index 9cf43f06c0..cf569bed99 100644 +--- a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.c ++++ b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.c +@@ -6,12 +6,10 @@ + + **/ + +-#include +-#include ++#include + #include + #include + #include +-#include + #include + + // Number of Virtual Memory Map Descriptors +@@ -26,28 +24,6 @@ + #define MACH_VIRT_PERIPH_BASE 0x08000000 + #define MACH_VIRT_PERIPH_SIZE SIZE_128MB + +-/** +- Default library constructur that obtains the memory size from a PCD. +- +- @return Always returns RETURN_SUCCESS +- +-**/ +-RETURN_STATUS +-EFIAPI +-QemuVirtMemInfoLibConstructor ( +- VOID +- ) +-{ +- UINT64 Size; +- VOID *Hob; +- +- Size = PcdGet64 (PcdSystemMemorySize); +- Hob = BuildGuidDataHob (&gArmVirtSystemMemorySizeGuid, &Size, sizeof Size); +- ASSERT (Hob != NULL); +- +- return RETURN_SUCCESS; +-} +- + /** + Return the Virtual Memory Map of your platform + +@@ -67,16 +43,9 @@ ArmVirtGetMemoryMap ( + ) + { + ARM_MEMORY_REGION_DESCRIPTOR *VirtualMemoryTable; +- VOID *MemorySizeHob; + + ASSERT (VirtualMemoryMap != NULL); + +- MemorySizeHob = GetFirstGuidHob (&gArmVirtSystemMemorySizeGuid); +- ASSERT (MemorySizeHob != NULL); +- if (MemorySizeHob == NULL) { +- return; +- } +- + VirtualMemoryTable = AllocatePool ( + sizeof (ARM_MEMORY_REGION_DESCRIPTOR) * + MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS +@@ -90,7 +59,7 @@ ArmVirtGetMemoryMap ( + // System DRAM + VirtualMemoryTable[0].PhysicalBase = PcdGet64 (PcdSystemMemoryBase); + VirtualMemoryTable[0].VirtualBase = VirtualMemoryTable[0].PhysicalBase; +- VirtualMemoryTable[0].Length = *(UINT64 *)GET_GUID_HOB_DATA (MemorySizeHob); ++ VirtualMemoryTable[0].Length = PcdGet64 (PcdSystemMemorySize); + VirtualMemoryTable[0].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK; + + DEBUG (( +diff --git a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.inf b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.inf +index 6acad8bbd7..7150de6c10 100644 +--- a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.inf ++++ b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.inf +@@ -14,7 +14,6 @@ + MODULE_TYPE = BASE + VERSION_STRING = 1.0 + LIBRARY_CLASS = ArmVirtMemInfoLib +- CONSTRUCTOR = QemuVirtMemInfoLibConstructor + + [Sources] + QemuVirtMemInfoLib.c +@@ -31,9 +30,7 @@ + BaseMemoryLib + DebugLib + MemoryAllocationLib +- +-[Guids] +- gArmVirtSystemMemorySizeGuid ++ PcdLib + + [Pcd] + gArmTokenSpaceGuid.PcdFvBaseAddress +diff --git a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf +index f045e39a41..7ecf6dfbb7 100644 +--- a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf ++++ b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf +@@ -32,16 +32,16 @@ + BaseMemoryLib + DebugLib + FdtLib ++ PcdLib + MemoryAllocationLib + +-[Guids] +- gArmVirtSystemMemorySizeGuid +- +-[FixedPcd] ++[Pcd] + gArmTokenSpaceGuid.PcdFdBaseAddress + gArmTokenSpaceGuid.PcdFvBaseAddress + gArmTokenSpaceGuid.PcdSystemMemoryBase + gArmTokenSpaceGuid.PcdSystemMemorySize ++ ++[FixedPcd] + gArmTokenSpaceGuid.PcdFdSize + gArmTokenSpaceGuid.PcdFvSize + gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress +diff --git a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLibConstructor.c b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLibConstructor.c +index c47ab82966..33d3597d57 100644 +--- a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLibConstructor.c ++++ b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLibConstructor.c +@@ -6,10 +6,9 @@ + + **/ + +-#include +-#include ++#include + #include +-#include ++#include + #include + + RETURN_STATUS +@@ -18,14 +17,14 @@ QemuVirtMemInfoPeiLibConstructor ( + VOID + ) + { +- VOID *DeviceTreeBase; +- INT32 Node, Prev; +- UINT64 NewBase, CurBase; +- UINT64 NewSize, CurSize; +- CONST CHAR8 *Type; +- INT32 Len; +- CONST UINT64 *RegProp; +- VOID *Hob; ++ VOID *DeviceTreeBase; ++ INT32 Node, Prev; ++ UINT64 NewBase, CurBase; ++ UINT64 NewSize, CurSize; ++ CONST CHAR8 *Type; ++ INT32 Len; ++ CONST UINT64 *RegProp; ++ RETURN_STATUS PcdStatus; + + NewBase = 0; + NewSize = 0; +@@ -87,13 +86,8 @@ QemuVirtMemInfoPeiLibConstructor ( + // Make sure the start of DRAM matches our expectation + // + ASSERT (FixedPcdGet64 (PcdSystemMemoryBase) == NewBase); +- +- Hob = BuildGuidDataHob ( +- &gArmVirtSystemMemorySizeGuid, +- &NewSize, +- sizeof NewSize +- ); +- ASSERT (Hob != NULL); ++ PcdStatus = PcdSet64S (PcdSystemMemorySize, NewSize); ++ ASSERT_RETURN_ERROR (PcdStatus); + + // + // We need to make sure that the machine we are running on has at least diff --git a/meta-arm/recipes-bsp/uefi/files/0002-Revert-ArmVirtPkg-ArmVirtQemu-omit-PCD-PEIM-unless-T.patch b/meta-arm/recipes-bsp/uefi/files/0002-Revert-ArmVirtPkg-ArmVirtQemu-omit-PCD-PEIM-unless-T.patch new file mode 100644 index 00000000..64e85ab1 --- /dev/null +++ b/meta-arm/recipes-bsp/uefi/files/0002-Revert-ArmVirtPkg-ArmVirtQemu-omit-PCD-PEIM-unless-T.patch @@ -0,0 +1,89 @@ +From caef501f2c05ba2170d0a449856900919021d6f6 Mon Sep 17 00:00:00 2001 +From: Your Name +Date: Fri, 10 Mar 2023 18:47:09 +0000 +Subject: [PATCH] Revert "ArmVirtPkg/ArmVirtQemu: omit PCD PEIM unless TPM + support is enabled" + +This reverts commit b6efc505e4d6eb2055a39afd0a1ee67846a1e5f9. + +Upstream-Status: Inappropriate [other] +Signed-off-by: Jon Mason + +--- + ArmVirtPkg/ArmVirtQemu.dsc | 22 +++++----------------- + ArmVirtPkg/ArmVirtQemu.fdf | 2 +- + 2 files changed, 6 insertions(+), 18 deletions(-) + +diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc +index 2e786dad12..0f8157a032 100644 +--- a/ArmVirtPkg/ArmVirtQemu.dsc ++++ b/ArmVirtPkg/ArmVirtQemu.dsc +@@ -293,15 +293,10 @@ + # + # TPM2 support + # +-!if $(TPM2_ENABLE) == TRUE + gEfiSecurityPkgTokenSpaceGuid.PcdTpmBaseAddress|0x0 ++!if $(TPM2_ENABLE) == TRUE + gEfiSecurityPkgTokenSpaceGuid.PcdTpmInstanceGuid|{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} + gEfiSecurityPkgTokenSpaceGuid.PcdTpm2HashMask|0 +-!else +-[PcdsPatchableInModule] +- # make this PCD patchable instead of dynamic when TPM support is not enabled +- # this permits setting the PCD in unreachable code without pulling in dynamic PCD support +- gEfiSecurityPkgTokenSpaceGuid.PcdTpmBaseAddress|0x0 + !endif + + [PcdsDynamicHii] +@@ -314,13 +309,6 @@ + + gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|L"Timeout"|gEfiGlobalVariableGuid|0x0|5 + +-[LibraryClasses.common.PEI_CORE, LibraryClasses.common.PEIM] +-!if $(TPM2_ENABLE) == TRUE +- PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf +-!else +- PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf +-!endif +- + ################################################################################ + # + # Components Section - list of all EDK II Modules needed by this Platform +@@ -332,6 +320,10 @@ + # + ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf + MdeModulePkg/Core/Pei/PeiMain.inf ++ MdeModulePkg/Universal/PCD/Pei/Pcd.inf { ++ ++ PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf ++ } + ArmPlatformPkg/PlatformPei/PlatformPeim.inf + ArmVirtPkg/MemoryInitPei/MemoryInitPeim.inf { + +@@ -342,10 +334,6 @@ + ArmPkg/Drivers/CpuPei/CpuPei.inf + + !if $(TPM2_ENABLE) == TRUE +- MdeModulePkg/Universal/PCD/Pei/Pcd.inf { +- +- PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf +- } + MdeModulePkg/Universal/ResetSystemPei/ResetSystemPei.inf { + + ResetSystemLib|ArmVirtPkg/Library/ArmVirtPsciResetSystemPeiLib/ArmVirtPsciResetSystemPeiLib.inf +diff --git a/ArmVirtPkg/ArmVirtQemu.fdf b/ArmVirtPkg/ArmVirtQemu.fdf +index 764f652afd..c85e36b185 100644 +--- a/ArmVirtPkg/ArmVirtQemu.fdf ++++ b/ArmVirtPkg/ArmVirtQemu.fdf +@@ -109,10 +109,10 @@ READ_LOCK_STATUS = TRUE + INF ArmPlatformPkg/PlatformPei/PlatformPeim.inf + INF ArmVirtPkg/MemoryInitPei/MemoryInitPeim.inf + INF ArmPkg/Drivers/CpuPei/CpuPei.inf ++ INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf + INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf + + !if $(TPM2_ENABLE) == TRUE +- INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf + INF MdeModulePkg/Universal/ResetSystemPei/ResetSystemPei.inf + INF OvmfPkg/Tcg/Tcg2Config/Tcg2ConfigPei.inf + INF SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.inf diff --git a/meta-arm/recipes-bsp/uefi/files/unaligned.patch b/meta-arm/recipes-bsp/uefi/files/unaligned.patch deleted file mode 100644 index 783b7644..00000000 --- a/meta-arm/recipes-bsp/uefi/files/unaligned.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 17f490101f51b03c1ffc7151cc35e9fbd42b6060 Mon Sep 17 00:00:00 2001 -From: Ross Burton -Date: Tue, 22 Feb 2022 10:38:13 +0000 -Subject: [PATCH] Latest clang is causing build failures because -Werror is - used - - edk2/MdeModulePkg/Include/Guid/ExtendedFirmwarePerformance.h:78:47: - error: field Guid within 'FPDT_GUID_EVENT_RECORD' is less aligned than 'EFI_GUID' - and is usually due to 'FPDT_GUID_EVENT_RECORD' being packed, which can lead to - unaligned accesses [-Werror,-Wunaligned-access] - -This has been reported upstream[1] so until this is resolved, ignore the warnings. - -[1] https://edk2.groups.io/g/devel/message/86838 - -Upstream-Status: Pending -Signed-off-by: Ross Burton ---- - BaseTools/Conf/tools_def.template | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template -index 5ed19810b7..9b4f173519 100755 ---- a/BaseTools/Conf/tools_def.template -+++ b/BaseTools/Conf/tools_def.template -@@ -2548,7 +2548,7 @@ DEFINE CLANG38_X64_PREFIX = ENV(CLANG38_BIN) - DEFINE CLANG38_IA32_TARGET = -target i686-pc-linux-gnu - DEFINE CLANG38_X64_TARGET = -target x86_64-pc-linux-gnu - --DEFINE CLANG38_WARNING_OVERRIDES = -Wno-parentheses-equality -Wno-tautological-compare -Wno-tautological-constant-out-of-range-compare -Wno-empty-body -Wno-unused-const-variable -Wno-varargs -Wno-unknown-warning-option -Wno-unused-but-set-variable -Wno-unused-const-variable -+DEFINE CLANG38_WARNING_OVERRIDES = -Wno-parentheses-equality -Wno-tautological-compare -Wno-tautological-constant-out-of-range-compare -Wno-empty-body -Wno-unused-const-variable -Wno-varargs -Wno-unknown-warning-option -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-error=unaligned-access -Wno-unused-command-line-argument - DEFINE CLANG38_ALL_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) DEF(CLANG38_WARNING_OVERRIDES) -fno-stack-protector -mms-bitfields -Wno-address -Wno-shift-negative-value -Wno-unknown-pragmas -Wno-incompatible-library-redeclaration -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -msoft-float -mno-implicit-float -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang -funsigned-char -fno-ms-extensions -Wno-null-dereference - - ########################### diff --git a/meta-arm/recipes-bsp/uefi/sbsa-acs/shell.patch b/meta-arm/recipes-bsp/uefi/sbsa-acs/0002-Patch-in-the-paths-to-the-SBSA-test-suite.patch similarity index 100% rename from meta-arm/recipes-bsp/uefi/sbsa-acs/shell.patch rename to meta-arm/recipes-bsp/uefi/sbsa-acs/0002-Patch-in-the-paths-to-the-SBSA-test-suite.patch diff --git a/meta-arm/recipes-bsp/uefi/sbsa-acs/use_bfd_linker.patch b/meta-arm/recipes-bsp/uefi/sbsa-acs/0003-Enforce-using-good-old-BFD-linker.patch similarity index 81% rename from meta-arm/recipes-bsp/uefi/sbsa-acs/use_bfd_linker.patch rename to meta-arm/recipes-bsp/uefi/sbsa-acs/0003-Enforce-using-good-old-BFD-linker.patch index f0b1ac17..a9214818 100644 --- a/meta-arm/recipes-bsp/uefi/sbsa-acs/use_bfd_linker.patch +++ b/meta-arm/recipes-bsp/uefi/sbsa-acs/0003-Enforce-using-good-old-BFD-linker.patch @@ -1,4 +1,7 @@ -Enforce using good old BFD linker +From 6673fb1de490575a414de7e4dd9442c921383019 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 7 Apr 2021 00:16:07 -0700 +Subject: [PATCH] Enforce using good old BFD linker some distros may use gold as system linker and it crashes while linking the app @@ -15,10 +18,10 @@ Signed-off-by: Khem Raj 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template -index 9b4f173519..ea78e81d31 100755 +index bca09e4648..b775391675 100755 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template -@@ -1856,7 +1856,7 @@ DEFINE GCC_ARM_CC_XIPFLAGS = -mno-unaligned-access +@@ -1858,7 +1858,7 @@ DEFINE GCC_ARM_CC_XIPFLAGS = -mno-unaligned-access DEFINE GCC_AARCH64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -fno-short-enums -fverbose-asm -funsigned-char -ffunction-sections -fdata-sections -Wno-address -fno-asynchronous-unwind-tables -fno-unwind-tables -fno-pic -fno-pie -ffixed-x18 DEFINE GCC_AARCH64_CC_XIPFLAGS = -mstrict-align -mgeneral-regs-only DEFINE GCC_DLINK_FLAGS_COMMON = -nostdlib --pie @@ -26,4 +29,4 @@ index 9b4f173519..ea78e81d31 100755 +DEFINE GCC_DLINK2_FLAGS_COMMON = -fuse-ld=bfd -Wl,--script=$(EDK_TOOLS_PATH)/Scripts/GccBase.lds DEFINE GCC_IA32_X64_DLINK_COMMON = DEF(GCC_DLINK_FLAGS_COMMON) --gc-sections DEFINE GCC_ARM_AARCH64_DLINK_COMMON= -Wl,--emit-relocs -nostdlib -Wl,--gc-sections -u $(IMAGE_ENTRY_POINT) -Wl,-e,$(IMAGE_ENTRY_POINT),-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map - DEFINE GCC_ARM_DLINK_FLAGS = DEF(GCC_ARM_AARCH64_DLINK_COMMON) -z common-page-size=0x20 -Wl,--pic-veneer + DEFINE GCC_LOONGARCH64_DLINK_COMMON= -Wl,--emit-relocs -nostdlib -Wl,--gc-sections -u $(IMAGE_ENTRY_POINT) -Wl,-e,$(IMAGE_ENTRY_POINT),-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map diff --git a/meta-arm/recipes-bsp/uefi/sbsa-acs_6.1.0.bb b/meta-arm/recipes-bsp/uefi/sbsa-acs_6.1.0.bb index 6ef4f6ce..7a29f556 100644 --- a/meta-arm/recipes-bsp/uefi/sbsa-acs_6.1.0.bb +++ b/meta-arm/recipes-bsp/uefi/sbsa-acs_6.1.0.bb @@ -1,4 +1,4 @@ -require recipes-bsp/uefi/edk2-firmware_202205.bb +require recipes-bsp/uefi/edk2-firmware_202302.bb PROVIDES:remove = "virtual/bootloader" LICENSE += "& Apache-2.0" @@ -6,8 +6,8 @@ LIC_FILES_CHKSUM += "file://ShellPkg/Application/sbsa-acs/LICENSE.md;md5=2a94494 SRC_URI += "git://github.com/ARM-software/sbsa-acs;destsuffix=edk2/ShellPkg/Application/sbsa-acs;protocol=https;branch=master;name=acs \ git://github.com/tianocore/edk2-libc;destsuffix=edk2/edk2-libc;protocol=https;branch=master;name=libc \ - file://shell.patch \ - file://use_bfd_linker.patch \ + file://0002-Patch-in-the-paths-to-the-SBSA-test-suite.patch \ + file://0003-Enforce-using-good-old-BFD-linker.patch \ file://0001-Fix-function-protype-mismatches.patch;patchdir=ShellPkg/Application/sbsa-acs \ file://0001-Fix-for-issue-245.patch;patchdir=ShellPkg/Application/sbsa-acs \ " From patchwork Tue Mar 14 15:17:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jon Mason X-Patchwork-Id: 20913 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 52CB5C6FD1C for ; Tue, 14 Mar 2023 15:17:52 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.11518.1678807067233728772 for ; Tue, 14 Mar 2023 08:17:47 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: jon.mason@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 93EC6150C for ; Tue, 14 Mar 2023 08:18:30 -0700 (PDT) Received: from jdm-VirtualBox.lan044arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id CB0623F67D for ; Tue, 14 Mar 2023 08:17:46 -0700 (PDT) From: Jon Mason To: meta-arm@lists.yoctoproject.org Subject: [PATCH 2/2] arm-bsp/fvp-base: Add edk2 build testing Date: Tue, 14 Mar 2023 11:17:42 -0400 Message-Id: <20230314151742.501440-2-jon.mason@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230314151742.501440-1-jon.mason@arm.com> References: <20230314151742.501440-1-jon.mason@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 14 Mar 2023 15:17:52 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/meta-arm/message/4490 The infrastructure for edk2 and fvp-base is already present, but not being used. Make the changes to get it compiling cleanly, and add it to CI. Note: testing is not passing because edk2 isn't booting an image Signed-off-by: Jon Mason --- .gitlab-ci.yml | 1 + meta-arm-bsp/conf/machine/include/fvp-common.inc | 2 +- .../recipes-bsp/trusted-firmware-a/trusted-firmware-a-fvp.inc | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 50e1ac11..9c52b106 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -103,6 +103,7 @@ fvp-base: parallel: matrix: - TESTING: testimage + - FIRMWARE: edk2 fvp-baser-aemv8r64: extends: .build diff --git a/meta-arm-bsp/conf/machine/include/fvp-common.inc b/meta-arm-bsp/conf/machine/include/fvp-common.inc index b6fc74da..233c734f 100644 --- a/meta-arm-bsp/conf/machine/include/fvp-common.inc +++ b/meta-arm-bsp/conf/machine/include/fvp-common.inc @@ -16,7 +16,7 @@ PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" KERNEL_DEVICETREE = "arm/fvp-base-revc.dtb" -EXTRA_IMAGEDEPENDS += "trusted-firmware-a u-boot" +EXTRA_IMAGEDEPENDS += "trusted-firmware-a" # As this is a virtual target that will not be used in the real world there is # no need for real SSH keys. diff --git a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-fvp.inc b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-fvp.inc index 43340cdc..ca96b448 100644 --- a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-fvp.inc +++ b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-fvp.inc @@ -8,5 +8,5 @@ COMPATIBLE_MACHINE = "fvp-base" TFA_PLATFORM = "fvp" TFA_DEBUG = "1" TFA_MBEDTLS = "1" -TFA_UBOOT = "1" +TFA_UBOOT ?= "1" TFA_BUILD_TARGET = "bl1 bl2 bl31 dtbs fip"