mirror of
https://git.yoctoproject.org/meta-arm
synced 2026-06-02 01:20:09 +00:00
arm/edk2-firmware: Update to 202602
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>
This commit is contained in:
+1
-1
@@ -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+)$"
|
||||
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
-148
@@ -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);
|
||||
}
|
||||
+46
@@ -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:
|
||||
-42
@@ -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
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user