diff mbox series

arm/edk2-firmware: Update to 202602

Message ID 20260227140134.69088-1-jon.mason@arm.com
State New
Headers show
Series arm/edk2-firmware: Update to 202602 | expand

Commit Message

Jon Mason Feb. 27, 2026, 2:01 p.m. UTC
Update edk2, edk2-platforms, and sbsa-acs to the latest versions/SHAs.
A bleeding edge patch from upstream is needed to correct a build race in
antlr, and the latest SHA for edk2-platforms is needed to work around
some compilation issues with ENABLE_TPM in fvp-base.

Signed-off-by: Jon Mason <jon.mason@arm.com>
---
 ...511.bb => edk2-basetools-native_202602.bb} |   2 +-
 .../recipes-bsp/uefi/edk2-firmware_202511.bb  |   7 -
 .../recipes-bsp/uefi/edk2-firmware_202602.bb  |   6 +
 ...s-in-MiscChassisManufacturerFunction.patch | 148 ------------------
 ...-C-VfrCompile-Fix-parallel-make-fail.patch |  46 ++++++
 ...def-Use-LLD-to-link-ACPI-table-binar.patch |  42 -----
 meta-arm/recipes-bsp/uefi/sbsa-acs_7.2.2.bb   |   2 +-
 7 files changed, 54 insertions(+), 199 deletions(-)
 rename meta-arm/recipes-bsp/uefi/{edk2-basetools-native_202511.bb => edk2-basetools-native_202602.bb} (93%)
 delete mode 100644 meta-arm/recipes-bsp/uefi/edk2-firmware_202511.bb
 create mode 100644 meta-arm/recipes-bsp/uefi/edk2-firmware_202602.bb
 delete mode 100644 meta-arm/recipes-bsp/uefi/files/0001-ArmPkg-Fix-errors-in-MiscChassisManufacturerFunction.patch
 create mode 100644 meta-arm/recipes-bsp/uefi/files/0001-BaseTools-Source-C-VfrCompile-Fix-parallel-make-fail.patch
 delete mode 100644 meta-arm/recipes-bsp/uefi/files/0001-BaseTools-tools_def-Use-LLD-to-link-ACPI-table-binar.patch

Comments

Jon Mason Feb. 27, 2026, 7 p.m. UTC | #1
On Fri, 27 Feb 2026 09:01:34 -0500, Jon Mason wrote:
> Update edk2, edk2-platforms, and sbsa-acs to the latest versions/SHAs.
> A bleeding edge patch from upstream is needed to correct a build race in
> antlr, and the latest SHA for edk2-platforms is needed to work around
> some compilation issues with ENABLE_TPM in fvp-base.
> 
> 

Applied, thanks!

[1/1] arm/edk2-firmware: Update to 202602
      commit: 40d015d7800da9c466346f84cd90ab9cfd2ea882

Best regards,
diff mbox series

Patch

diff --git a/meta-arm/recipes-bsp/uefi/edk2-basetools-native_202511.bb b/meta-arm/recipes-bsp/uefi/edk2-basetools-native_202602.bb
similarity index 93%
rename from meta-arm/recipes-bsp/uefi/edk2-basetools-native_202511.bb
rename to meta-arm/recipes-bsp/uefi/edk2-basetools-native_202602.bb
index 7f12b31507a3..c26a34735824 100644
--- a/meta-arm/recipes-bsp/uefi/edk2-basetools-native_202511.bb
+++ b/meta-arm/recipes-bsp/uefi/edk2-basetools-native_202602.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 = "46548b1adac82211d8d11da12dd914f41e7aa775"
+SRCREV = "b7a715f7c03c45c6b4575bf88596bfd79658b8ce"
 
 UPSTREAM_CHECK_GITTAGREGEX = "^edk2-stable(?P<pver>\d+)$"
 
diff --git a/meta-arm/recipes-bsp/uefi/edk2-firmware_202511.bb b/meta-arm/recipes-bsp/uefi/edk2-firmware_202511.bb
deleted file mode 100644
index c9871e10d557..000000000000
--- a/meta-arm/recipes-bsp/uefi/edk2-firmware_202511.bb
+++ /dev/null
@@ -1,7 +0,0 @@ 
-require recipes-bsp/uefi/edk2-firmware.inc
-
-SRCREV_edk2           ?= "46548b1adac82211d8d11da12dd914f41e7aa775"
-SRCREV_edk2-platforms ?= "675f692ace4ae501c7f6f700cff364b13960e74e"
-
-SRC_URI += "file://0001-BaseTools-tools_def-Use-LLD-to-link-ACPI-table-binar.patch \
-            file://0001-ArmPkg-Fix-errors-in-MiscChassisManufacturerFunction.patch"
diff --git a/meta-arm/recipes-bsp/uefi/edk2-firmware_202602.bb b/meta-arm/recipes-bsp/uefi/edk2-firmware_202602.bb
new file mode 100644
index 000000000000..de739f37b12b
--- /dev/null
+++ b/meta-arm/recipes-bsp/uefi/edk2-firmware_202602.bb
@@ -0,0 +1,6 @@ 
+require recipes-bsp/uefi/edk2-firmware.inc
+
+SRCREV_edk2           ?= "b7a715f7c03c45c6b4575bf88596bfd79658b8ce"
+SRCREV_edk2-platforms ?= "75024f5aa54cf4d975d024768604b28c754db338"
+
+SRC_URI += "file://0001-BaseTools-Source-C-VfrCompile-Fix-parallel-make-fail.patch"
diff --git a/meta-arm/recipes-bsp/uefi/files/0001-ArmPkg-Fix-errors-in-MiscChassisManufacturerFunction.patch b/meta-arm/recipes-bsp/uefi/files/0001-ArmPkg-Fix-errors-in-MiscChassisManufacturerFunction.patch
deleted file mode 100644
index 06298e43a474..000000000000
--- a/meta-arm/recipes-bsp/uefi/files/0001-ArmPkg-Fix-errors-in-MiscChassisManufacturerFunction.patch
+++ /dev/null
@@ -1,148 +0,0 @@ 
-From 33e4e73a17bff0823bc916998169b926115b0c6b Mon Sep 17 00:00:00 2001
-From: Mike Beaton <mjsbeaton@gmail.com>
-Date: Mon, 24 Nov 2025 20:40:28 +0000
-Subject: [PATCH] ArmPkg: Fix errors in MiscChassisManufacturerFunction
-
-Initial error found while attempting to implement Azure Pipelines
-CLANGDWARF CI:
-
-ERROR - Compiler #error from /__w/1/s/ArmPkg/Universal/Smbios/SmbiosMiscDx
-e/Type03/MiscChassisManufacturerFunction.c variable 'ContainedElements' is
-uninitialized when passed as a const pointer argument here [-Werror,-Wunin
-itialized-const-pointer]
-
-The code in question should copy the optional ContainedElements from
-InputData, so fix it so that it does.
-
-Additionally:
-
- - Various size calculations in the original code are incorrect, since
-   the base size for calculations should not include ContainedElements,
-   so fix these.
- - Since we are calculating Hdr.Length separately as part of the above,
-   add code to ASSERT and return EFI_OUT_OF_RESOURCES if it would
-   overflow the UINT8 location where it will be stored.
- - Since we are adding a new early exit, fix the fact that no error log
-   message is generated on early exit.
-
-Fixes: bfc0fae459543442f3f17e0de655a72aba5b0920
-
-Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
-
-Upstream-Status: Backport [33e4e73a17bff0823bc916998169b926115b0c6b]
-Signed-off-by: Jon Mason <jon.mason@arm.com>
----
- .../Type03/MiscChassisManufacturerFunction.c  | 54 ++++++++++---------
- 1 file changed, 29 insertions(+), 25 deletions(-)
-
-diff --git a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type03/MiscChassisManufacturerFunction.c b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type03/MiscChassisManufacturerFunction.c
-index 6b3b63b0e8d5..363f3bfe30d6 100644
---- a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type03/MiscChassisManufacturerFunction.c
-+++ b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type03/MiscChassisManufacturerFunction.c
-@@ -45,6 +45,9 @@ SMBIOS_MISC_TABLE_FUNCTION (MiscChassisManufacturer) {
-   UINTN               AssertTagStrLen;
-   UINTN               SerialNumStrLen;
-   UINTN               ChaNumStrLen;
-+  UINTN               BaseSize;
-+  UINTN               ExtendLength;
-+  UINTN               HdrLength;
-   EFI_STRING          Manufacturer;
-   EFI_STRING          Version;
-   EFI_STRING          SerialNumber;
-@@ -55,12 +58,6 @@ SMBIOS_MISC_TABLE_FUNCTION (MiscChassisManufacturer) {
-   SMBIOS_TABLE_TYPE3  *InputData;
-   EFI_STATUS          Status;
- 
--  UINT8              ContainedElementCount;
--  CONTAINED_ELEMENT  ContainedElements;
--  UINT8              ExtendLength;
--
--  ExtendLength = 0;
--
-   //
-   // First check for invalid parameters.
-   //
-@@ -116,14 +113,25 @@ SMBIOS_MISC_TABLE_FUNCTION (MiscChassisManufacturer) {
-   ChassisSkuNumber = HiiGetPackageString (&gEfiCallerIdGuid, TokenToGet, NULL);
-   ChaNumStrLen     = StrLen (ChassisSkuNumber);
- 
--  ContainedElementCount = InputData->ContainedElementCount;
--  ExtendLength          = ContainedElementCount * sizeof (CONTAINED_ELEMENT);
-+  STATIC_ASSERT (OFFSET_OF (SMBIOS_TABLE_TYPE3, ContainedElements) == 0x15, "Base size of SMBIOS_TABLE_TYPE3 does not meet SMBIOS specification");
-+
-+  BaseSize     = OFFSET_OF (SMBIOS_TABLE_TYPE3, ContainedElements);
-+  ExtendLength = (UINTN)InputData->ContainedElementCount * (UINTN)InputData->ContainedElementRecordLength;
-+
-+  //
-+  // Length of SMBIOS struct includes ContainedElements and SKUNumber.
-+  //
-+  HdrLength = BaseSize + ExtendLength + sizeof (SMBIOS_TABLE_STRING);
-+  if (HdrLength > MAX_UINT8) {
-+    ASSERT (HdrLength <= MAX_UINT8);
-+    Status = EFI_OUT_OF_RESOURCES;
-+    goto Exit;
-+  }
- 
-   //
--  // Two zeros following the last string.
-+  // Additional zero follows the last string.
-   //
--  RecordLength = sizeof (SMBIOS_TABLE_TYPE3) +
--                 ExtendLength    + 1 +
-+  RecordLength = HdrLength       +
-                  ManuStrLen      + 1 +
-                  VerStrLen       + 1 +
-                  SerialNumStrLen + 1 +
-@@ -135,25 +143,20 @@ SMBIOS_MISC_TABLE_FUNCTION (MiscChassisManufacturer) {
-     goto Exit;
-   }
- 
--  (VOID)CopyMem (SmbiosRecord, InputData, sizeof (SMBIOS_TABLE_TYPE3));
-+  // Copy base record plus ContainedElements.
-+  (VOID)CopyMem (SmbiosRecord, InputData, BaseSize + ExtendLength);
- 
--  SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE3) + ExtendLength + 1;
-+  SmbiosRecord->Hdr.Length = HdrLength;
- 
-   SmbiosRecord->Type = OemGetChassisType ();
- 
--  // ContainedElements
--  ASSERT (ContainedElementCount < 2);
--  (VOID)CopyMem (SmbiosRecord + 1, &ContainedElements, ExtendLength);
--
-   // ChassisSkuNumber
--  SkuNumberField = (UINT8 *)SmbiosRecord +
--                   sizeof (SMBIOS_TABLE_TYPE3) -
--                   sizeof (CONTAINED_ELEMENT) + ExtendLength;
-+  SkuNumberField = (UINT8 *)SmbiosRecord + BaseSize + ExtendLength;
- 
-+  // The string numbers in the fixed position portion of the record are populated in the input data.
-   *SkuNumberField = 5;
- 
--  OptionalStrStart = (CHAR8 *)((UINT8 *)SmbiosRecord + sizeof (SMBIOS_TABLE_TYPE3) +
--                               ExtendLength + 1);
-+  OptionalStrStart = (CHAR8 *)((UINT8 *)SmbiosRecord + HdrLength);
-   UnicodeStrToAsciiStrS (Manufacturer, OptionalStrStart, ManuStrLen + 1);
-   StrStart = OptionalStrStart + ManuStrLen + 1;
-   UnicodeStrToAsciiStrS (Version, StrStart, VerStrLen + 1);
-@@ -175,6 +178,10 @@ SMBIOS_MISC_TABLE_FUNCTION (MiscChassisManufacturer) {
-   // Now we have got the full smbios record, call smbios protocol to add this record.
-   //
-   Status = SmbiosMiscAddRecord ((UINT8 *)SmbiosRecord, NULL);
-+
-+  FreePool (SmbiosRecord);
-+
-+Exit:
-   if (EFI_ERROR (Status)) {
-     DEBUG ((
-       DEBUG_ERROR,
-@@ -185,9 +192,6 @@ SMBIOS_MISC_TABLE_FUNCTION (MiscChassisManufacturer) {
-       ));
-   }
- 
--  FreePool (SmbiosRecord);
--
--Exit:
-   if (Manufacturer != NULL) {
-     FreePool (Manufacturer);
-   }
diff --git a/meta-arm/recipes-bsp/uefi/files/0001-BaseTools-Source-C-VfrCompile-Fix-parallel-make-fail.patch b/meta-arm/recipes-bsp/uefi/files/0001-BaseTools-Source-C-VfrCompile-Fix-parallel-make-fail.patch
new file mode 100644
index 000000000000..7e7353fbb73c
--- /dev/null
+++ b/meta-arm/recipes-bsp/uefi/files/0001-BaseTools-Source-C-VfrCompile-Fix-parallel-make-fail.patch
@@ -0,0 +1,46 @@ 
+From 5f8c99d9a7fe88301b01a7015375a827eecc7985 Mon Sep 17 00:00:00 2001
+From: Michael D Kinney <michael.d.kinney@intel.com>
+Date: Thu, 26 Feb 2026 11:48:11 -0500
+Subject: [PATCH] BaseTools/Source/C/VfrCompile: Fix parallel make failures
+
+Update makefile rules to run antlr and dlg to completion
+before compiling any of the generated cpp files.
+
+Without this change, parallel make may start compiling some
+of the cpp files before both antlr and dlg have finished
+which produces syntax errors from compilation with partially
+generated files.
+
+Also use &: so the targets are treated as a group and the
+rule is only executed once for the entire group. Without
+this change, parallel make may run the rule actions more
+than once and modify the output while it is being used by
+another rule.
+
+Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
+
+Upstream-Status: Backport [2f75effb93999adadeead511dd76f86833649b45]
+Signed-off-by: Jon Mason <jon.mason@arm.com>
+---
+ BaseTools/Source/C/VfrCompile/GNUmakefile | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/BaseTools/Source/C/VfrCompile/GNUmakefile b/BaseTools/Source/C/VfrCompile/GNUmakefile
+index b469bd3f303f..4f10b1d9338b 100644
+--- a/BaseTools/Source/C/VfrCompile/GNUmakefile
++++ b/BaseTools/Source/C/VfrCompile/GNUmakefile
+@@ -54,10 +54,11 @@ VfrCompiler.o: ../Include/Common/BuildVersion.h
+ 
+ include $(MAKEROOT)/Makefiles/footer.makefile
+ 
+-VfrSyntax.cpp EfiVfrParser.cpp EfiVfrParser.h VfrParser.dlg VfrTokens.h: Pccts/antlr/antlr VfrSyntax.g
+-	Pccts/antlr/antlr -CC -e3 -ck 3 -k 2 -fl VfrParser.dlg -ft VfrTokens.h -o . VfrSyntax.g
++ANTLR_GEN = VfrSyntax.cpp EfiVfrParser.cpp EfiVfrParser.h VfrParser.dlg VfrTokens.h
++DLG_GEN = VfrLexer.cpp VfrLexer.h
+ 
+-VfrLexer.cpp VfrLexer.h: Pccts/dlg/dlg VfrParser.dlg
++$(ANTLR_GEN) $(DLG_GEN) &: Pccts/antlr/antlr Pccts/dlg/dlg VfrSyntax.g
++	Pccts/antlr/antlr -CC -e3 -ck 3 -k 2 -fl VfrParser.dlg -ft VfrTokens.h -o . VfrSyntax.g
+ 	Pccts/dlg/dlg -C2 -i -CC -cl VfrLexer -o . VfrParser.dlg
+ 
+ Pccts/antlr/antlr:
diff --git a/meta-arm/recipes-bsp/uefi/files/0001-BaseTools-tools_def-Use-LLD-to-link-ACPI-table-binar.patch b/meta-arm/recipes-bsp/uefi/files/0001-BaseTools-tools_def-Use-LLD-to-link-ACPI-table-binar.patch
deleted file mode 100644
index 4504800da232..000000000000
--- a/meta-arm/recipes-bsp/uefi/files/0001-BaseTools-tools_def-Use-LLD-to-link-ACPI-table-binar.patch
+++ /dev/null
@@ -1,42 +0,0 @@ 
-From 5d38a20196b9b9d15552ba3617ec7f63f6401a5c Mon Sep 17 00:00:00 2001
-From: Ard Biesheuvel <ardb@kernel.org>
-Date: Tue, 25 Nov 2025 14:29:20 +0100
-Subject: [PATCH] BaseTools/tools_def: Use LLD to link ACPI table binaries
-
-Currently, the CLANGDWARF toolchain on AARCH64 fails to pass the
--fuse-ld=lld compiler option, and so linking ACPI table binaries falls
-back to the BFD linker. On non-AARCH64 build systems, this will
-correctly run the cross-linker, based on the -target argument passed to
-Clang, which therefore needs to be installed.
-
-However, the ASLCC invocation fails to pass that same -target argument,
-therefore producing object files for the native architecture, which the
-cross-linker cannot link, resulting in a build error.
-
-So pass the target in ASLCC_FLAGS as well, which is sufficient to get a
-working build. And for good measure, pass -fuse-ld=lld so that we don't
-rely on the BFD cross-linker in the first place.
-
-Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
-
-Upstream-Status: Backport [5d38a20196b9b9d15552ba3617ec7f63f6401a5c]
-Signed-off-by: Jon Mason <jon.mason@arm.com>
----
- BaseTools/Conf/tools_def.template | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
-index 32085ad00af7..d19624fa4628 100755
---- a/BaseTools/Conf/tools_def.template
-+++ b/BaseTools/Conf/tools_def.template
-@@ -1872,8 +1872,8 @@ DEFINE CLANGDWARF_AARCH64_DLINK_FLAGS  = DEF(CLANGDWARF_AARCH64_TARGET) DEF(GCC_
- *_CLANGDWARF_AARCH64_SLINK_PATH     = ENV(CLANGDWARF_BIN)llvm-ar
- *_CLANGDWARF_AARCH64_RC_PATH        = ENV(CLANGDWARF_BIN)llvm-objcopy
- 
--*_CLANGDWARF_AARCH64_ASLCC_FLAGS    = DEF(GCC_ASLCC_FLAGS) -fno-lto
--*_CLANGDWARF_AARCH64_ASLDLINK_FLAGS = DEF(CLANGDWARF_AARCH64_TARGET) DEF(GCC_AARCH64_ASLDLINK_FLAGS) DEF(CLANGDWARF_DLINK_WARNING_FLAGS)
-+*_CLANGDWARF_AARCH64_ASLCC_FLAGS    = DEF(GCC_ASLCC_FLAGS) DEF(CLANGDWARF_AARCH64_TARGET) -fno-lto
-+*_CLANGDWARF_AARCH64_ASLDLINK_FLAGS = DEF(CLANGDWARF_AARCH64_TARGET) DEF(GCC_AARCH64_ASLDLINK_FLAGS) DEF(CLANGDWARF_DLINK_WARNING_FLAGS) -fuse-ld=lld
- *_CLANGDWARF_AARCH64_ASM_FLAGS      = DEF(GCC_ASM_FLAGS) DEF(CLANGDWARF_AARCH64_TARGET) $(PLATFORM_FLAGS) -Qunused-arguments
- *_CLANGDWARF_AARCH64_DLINK_FLAGS    = DEF(CLANGDWARF_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000 DEF(CLANGDWARF_DLINK_WARNING_FLAGS)
- *_CLANGDWARF_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
diff --git a/meta-arm/recipes-bsp/uefi/sbsa-acs_7.2.2.bb b/meta-arm/recipes-bsp/uefi/sbsa-acs_7.2.2.bb
index 5952c25a438e..bc8187ebeb10 100644
--- a/meta-arm/recipes-bsp/uefi/sbsa-acs_7.2.2.bb
+++ b/meta-arm/recipes-bsp/uefi/sbsa-acs_7.2.2.bb
@@ -1,4 +1,4 @@ 
-require recipes-bsp/uefi/edk2-firmware_202511.bb
+require recipes-bsp/uefi/edk2-firmware_202602.bb
 PROVIDES:remove = "virtual/bootloader"
 
 LICENSE += "& Apache-2.0"