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"
|
SRC_URI = "git://github.com/tianocore/edk2.git;branch=master;protocol=https"
|
||||||
LIC_FILES_CHKSUM = "file://License.txt;md5=2b415520383f7964e96700ae12b4570a"
|
LIC_FILES_CHKSUM = "file://License.txt;md5=2b415520383f7964e96700ae12b4570a"
|
||||||
|
|
||||||
SRCREV = "46548b1adac82211d8d11da12dd914f41e7aa775"
|
SRCREV = "b7a715f7c03c45c6b4575bf88596bfd79658b8ce"
|
||||||
|
|
||||||
UPSTREAM_CHECK_GITTAGREGEX = "^edk2-stable(?P<pver>\d+)$"
|
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"
|
PROVIDES:remove = "virtual/bootloader"
|
||||||
|
|
||||||
LICENSE += "& Apache-2.0"
|
LICENSE += "& Apache-2.0"
|
||||||
|
|||||||
Reference in New Issue
Block a user