summaryrefslogtreecommitdiffstats
path: root/meta/recipes-bsp
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-bsp')
-rw-r--r--meta/recipes-bsp/alsa-state/alsa-state.bb3
-rw-r--r--meta/recipes-bsp/barebox/barebox-common.inc4
-rw-r--r--meta/recipes-bsp/barebox/barebox-tools.bb7
-rw-r--r--meta/recipes-bsp/barebox/files/0001-scripts-dtc-clean-up-yamltree-from-dtc.patch60
-rw-r--r--meta/recipes-bsp/efibootmgr/efibootmgr_18.bb2
-rw-r--r--meta/recipes-bsp/efivar/efivar_39.bb2
-rw-r--r--meta/recipes-bsp/formfactor/formfactor_0.0.bb3
-rw-r--r--meta/recipes-bsp/gnu-efi/gnu-efi/0001-Do-not-treat-warnings-as-errors.patch (renamed from meta/recipes-bsp/gnu-efi/gnu-efi/0002-Do-not-treat-warnings-as-errors.patch)17
-rw-r--r--meta/recipes-bsp/gnu-efi/gnu-efi_4.0.2.bb (renamed from meta/recipes-bsp/gnu-efi/gnu-efi_4.0.0.bb)8
-rw-r--r--meta/recipes-bsp/grub/grub-bootconf_1.00.bb3
-rw-r--r--meta/recipes-bsp/grub/grub-efi_2.12.bb2
-rw-r--r--meta/recipes-bsp/grub/grub2.inc4
-rw-r--r--meta/recipes-bsp/keymaps/keymaps_1.0.bb3
-rw-r--r--meta/recipes-bsp/libacpi/libacpi_0.2.bb1
-rw-r--r--meta/recipes-bsp/opensbi/opensbi_1.7.bb (renamed from meta/recipes-bsp/opensbi/opensbi_1.6.bb)7
-rw-r--r--meta/recipes-bsp/pciutils/pciutils_3.14.0.bb (renamed from meta/recipes-bsp/pciutils/pciutils_3.13.0.bb)2
-rw-r--r--meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb2
-rw-r--r--meta/recipes-bsp/setserial/setserial_2.17.bb1
-rw-r--r--meta/recipes-bsp/u-boot/files/0001-Makefile-add-dependency-from-lib-to-arch-ARCH-lib.patch81
-rw-r--r--meta/recipes-bsp/u-boot/files/0001-nxp-Prepare-macros-for-KVM-changes.patch100
-rw-r--r--meta/recipes-bsp/u-boot/files/0002-arm-io.h-Fix-io-accessors-for-KVM.patch310
-rw-r--r--meta/recipes-bsp/u-boot/files/0003-qemu-arm-Enable-virtualizable-IO-accessors.patch41
-rw-r--r--meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg1
-rw-r--r--meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_a.cfg1
-rw-r--r--meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_c.cfg1
-rw-r--r--meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_clear.cfg6
-rw-r--r--meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_d.cfg1
-rw-r--r--meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_f.cfg1
-rw-r--r--meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_zbb.cfg1
-rw-r--r--meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_zicbom.cfg1
-rw-r--r--meta/recipes-bsp/u-boot/libubootenv/0001-Update-cmake_minimum_required-to-3.5.patch50
-rw-r--r--meta/recipes-bsp/u-boot/libubootenv_0.3.6.bb6
-rw-r--r--meta/recipes-bsp/u-boot/u-boot-common.inc23
-rw-r--r--meta/recipes-bsp/u-boot/u-boot-tools_2025.07.bb (renamed from meta/recipes-bsp/u-boot/u-boot-tools_2025.04.bb)0
-rw-r--r--meta/recipes-bsp/u-boot/u-boot.inc81
-rw-r--r--meta/recipes-bsp/u-boot/u-boot_2025.04.bb4
-rw-r--r--meta/recipes-bsp/u-boot/u-boot_2025.07.bb8
-rw-r--r--meta/recipes-bsp/v86d/v86d_0.1.10.bb1
38 files changed, 700 insertions, 149 deletions
diff --git a/meta/recipes-bsp/alsa-state/alsa-state.bb b/meta/recipes-bsp/alsa-state/alsa-state.bb
index 099fbd3b9d..9452a1a4ce 100644
--- a/meta/recipes-bsp/alsa-state/alsa-state.bb
+++ b/meta/recipes-bsp/alsa-state/alsa-state.bb
@@ -21,8 +21,7 @@ SRC_URI = "\
21 file://alsa-state-init \ 21 file://alsa-state-init \
22" 22"
23 23
24S = "${WORKDIR}/sources" 24S = "${UNPACKDIR}"
25UNPACKDIR = "${S}"
26 25
27# As the recipe doesn't inherit systemd.bbclass, we need to set this variable 26# As the recipe doesn't inherit systemd.bbclass, we need to set this variable
28# manually to avoid unnecessary postinst/preinst generated. 27# manually to avoid unnecessary postinst/preinst generated.
diff --git a/meta/recipes-bsp/barebox/barebox-common.inc b/meta/recipes-bsp/barebox/barebox-common.inc
index 7fd7a88d71..a9a6a91db9 100644
--- a/meta/recipes-bsp/barebox/barebox-common.inc
+++ b/meta/recipes-bsp/barebox/barebox-common.inc
@@ -3,6 +3,6 @@ SECTION = "bootloaders"
3 3
4LIC_FILES_CHKSUM = "file://COPYING;md5=f5125d13e000b9ca1f0d3364286c4192" 4LIC_FILES_CHKSUM = "file://COPYING;md5=f5125d13e000b9ca1f0d3364286c4192"
5 5
6PV = "2025.03.0" 6PV = "2025.07.0"
7SRC_URI = "https://barebox.org/download/barebox-${PV}.tar.bz2" 7SRC_URI = "https://barebox.org/download/barebox-${PV}.tar.bz2"
8SRC_URI[sha256sum] = "0bf7118004e445bdd57feeef89ee9064982acc221e8a046c4a7994d3da6da2ec" 8SRC_URI[sha256sum] = "92add334bd0f5847deb2c23da54c78b40e8bae4f93c545e62be28e2f0afe137b"
diff --git a/meta/recipes-bsp/barebox/barebox-tools.bb b/meta/recipes-bsp/barebox/barebox-tools.bb
index f6395beb7c..eb327306d9 100644
--- a/meta/recipes-bsp/barebox/barebox-tools.bb
+++ b/meta/recipes-bsp/barebox/barebox-tools.bb
@@ -2,15 +2,11 @@ SUMMARY = "barebox bootloader tools"
2 2
3require barebox-common.inc 3require barebox-common.inc
4 4
5SRC_URI += " \
6 file://0001-scripts-dtc-clean-up-yamltree-from-dtc.patch \
7"
8
9LICENSE = "GPL-2.0-only" 5LICENSE = "GPL-2.0-only"
10 6
11DEPENDS = "bison-native flex-native libusb1" 7DEPENDS = "bison-native flex-native libusb1"
12 8
13S = "${WORKDIR}/barebox-${PV}" 9S = "${UNPACKDIR}/barebox-${PV}"
14B = "${WORKDIR}/build" 10B = "${WORKDIR}/build"
15 11
16inherit pkgconfig 12inherit pkgconfig
@@ -43,6 +39,7 @@ BAREBOX_TOOLS = " \
43 omap3-usb-loader \ 39 omap3-usb-loader \
44 omap4_usbboot \ 40 omap4_usbboot \
45 imx/imx-usb-loader \ 41 imx/imx-usb-loader \
42 rk-usb-loader \
46 " 43 "
47 44
48BAREBOX_TOOLS_SUFFIX = "" 45BAREBOX_TOOLS_SUFFIX = ""
diff --git a/meta/recipes-bsp/barebox/files/0001-scripts-dtc-clean-up-yamltree-from-dtc.patch b/meta/recipes-bsp/barebox/files/0001-scripts-dtc-clean-up-yamltree-from-dtc.patch
deleted file mode 100644
index fdab21ef72..0000000000
--- a/meta/recipes-bsp/barebox/files/0001-scripts-dtc-clean-up-yamltree-from-dtc.patch
+++ /dev/null
@@ -1,60 +0,0 @@
1From 77afd065dc58e2f57066ef7f392c571f8136723d Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Mon, 7 Apr 2025 14:45:27 +0000
4Subject: [PATCH] scripts/dtc: clean up yamltree from dtc
5
6Refer Linux commit [dt-bindings: kbuild: Use DTB files for validation][1],
7clean up yamltree from dtc to avoid compile failure while include <yaml.h>
8in non-standard path
9
10Since barebox actually doesn't do any dtb binding checks at the moment, just
11remove the test of /usr/include/yaml.h, hard-code the -DNO_YAML and remove
12yamltree.c from DTC_SOURCE
13
14[1] https://github.com/torvalds/linux/commit/ef8795f3f1ce
15
16Upstream-Status: Submitted [https://github.com/barebox/barebox/pull/37]
17
18Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
19---
20 scripts/dtc/Makefile | 9 ---------
21 scripts/dtc/update-dtc-source.sh | 2 +-
22 2 files changed, 1 insertion(+), 10 deletions(-)
23
24diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
25index 721e8e2b..da00319f 100644
26--- a/scripts/dtc/Makefile
27+++ b/scripts/dtc/Makefile
28@@ -16,16 +16,7 @@ fdtget-objs += fdtget.o $(libfdt-objs) util.o
29 # Source files need to get at the userspace version of libfdt_env.h to compile
30 HOST_EXTRACFLAGS += -I$(src)/libfdt
31
32-ifeq ($(wildcard /usr/include/yaml.h),)
33-ifneq ($(CHECK_DTBS),)
34-$(error dtc needs libyaml for DT schema validation support. \
35- Install the necessary libyaml development package.)
36-endif
37 HOST_EXTRACFLAGS += -DNO_YAML
38-else
39-dtc-objs += yamltree.o
40-HOSTLDLIBS_dtc := -lyaml
41-endif
42
43 # Generated files need one more search path to include headers in source tree
44 HOSTCFLAGS_dtc-lexer.lex.o := -I$(src)
45diff --git a/scripts/dtc/update-dtc-source.sh b/scripts/dtc/update-dtc-source.sh
46index 141d3629..8aa5cd66 100755
47--- a/scripts/dtc/update-dtc-source.sh
48+++ b/scripts/dtc/update-dtc-source.sh
49@@ -31,7 +31,7 @@ DTC_UPSTREAM_PATH=`pwd`/../dtc
50 DTC_LINUX_PATH=`pwd`/scripts/dtc
51
52 DTC_SOURCE="checks.c data.c dtc.c dtc.h flattree.c fstree.c livetree.c srcpos.c \
53- srcpos.h treesource.c util.c util.h version_gen.h yamltree.c Makefile.dtc \
54+ srcpos.h treesource.c util.c util.h version_gen.h Makefile.dtc \
55 dtc-lexer.l dtc-parser.y fdtget.c"
56 LIBFDT_SOURCE="Makefile.libfdt fdt.c fdt.h fdt_addresses.c fdt_empty_tree.c \
57 fdt_overlay.c fdt_ro.c fdt_rw.c fdt_strerror.c fdt_sw.c \
58--
592.48.1
60
diff --git a/meta/recipes-bsp/efibootmgr/efibootmgr_18.bb b/meta/recipes-bsp/efibootmgr/efibootmgr_18.bb
index fbd2f5dbc8..6f4178216b 100644
--- a/meta/recipes-bsp/efibootmgr/efibootmgr_18.bb
+++ b/meta/recipes-bsp/efibootmgr/efibootmgr_18.bb
@@ -13,8 +13,6 @@ COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
13SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https;branch=main" 13SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https;branch=main"
14SRCREV = "c3f9f0534e32158f62c43564036878b93b9e0fd6" 14SRCREV = "c3f9f0534e32158f62c43564036878b93b9e0fd6"
15 15
16S = "${WORKDIR}/git"
17
18inherit pkgconfig 16inherit pkgconfig
19 17
20# The directory under the ESP that the default bootloader is found in. When 18# The directory under the ESP that the default bootloader is found in. When
diff --git a/meta/recipes-bsp/efivar/efivar_39.bb b/meta/recipes-bsp/efivar/efivar_39.bb
index b052e3838f..fb6b6b3821 100644
--- a/meta/recipes-bsp/efivar/efivar_39.bb
+++ b/meta/recipes-bsp/efivar/efivar_39.bb
@@ -12,8 +12,6 @@ SRC_URI = "git://github.com/rhinstaller/efivar.git;branch=main;protocol=https \
12 " 12 "
13SRCREV = "c47820c37ac26286559ec004de07d48d05f3308c" 13SRCREV = "c47820c37ac26286559ec004de07d48d05f3308c"
14 14
15S = "${WORKDIR}/git"
16
17inherit pkgconfig 15inherit pkgconfig
18 16
19export CCLD_FOR_BUILD = "${BUILD_CCLD}" 17export CCLD_FOR_BUILD = "${BUILD_CCLD}"
diff --git a/meta/recipes-bsp/formfactor/formfactor_0.0.bb b/meta/recipes-bsp/formfactor/formfactor_0.0.bb
index 4714bb2e5e..f8d5613ffa 100644
--- a/meta/recipes-bsp/formfactor/formfactor_0.0.bb
+++ b/meta/recipes-bsp/formfactor/formfactor_0.0.bb
@@ -8,8 +8,7 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384
8 8
9SRC_URI = "file://config file://machconfig" 9SRC_URI = "file://config file://machconfig"
10 10
11S = "${WORKDIR}/sources" 11S = "${UNPACKDIR}"
12UNPACKDIR = "${S}"
13 12
14PACKAGE_ARCH = "${MACHINE_ARCH}" 13PACKAGE_ARCH = "${MACHINE_ARCH}"
15INHIBIT_DEFAULT_DEPS = "1" 14INHIBIT_DEFAULT_DEPS = "1"
diff --git a/meta/recipes-bsp/gnu-efi/gnu-efi/0002-Do-not-treat-warnings-as-errors.patch b/meta/recipes-bsp/gnu-efi/gnu-efi/0001-Do-not-treat-warnings-as-errors.patch
index 84966c484e..2909420933 100644
--- a/meta/recipes-bsp/gnu-efi/gnu-efi/0002-Do-not-treat-warnings-as-errors.patch
+++ b/meta/recipes-bsp/gnu-efi/gnu-efi/0001-Do-not-treat-warnings-as-errors.patch
@@ -1,4 +1,4 @@
1From 89218bb3c5eb7b97987769cb4f7bf8323d35ca7e Mon Sep 17 00:00:00 2001 1From 2f70be61679933805e1d2fef4fefcaf041cbd8db Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 16 May 2024 21:38:32 +0800 3Date: Thu, 16 May 2024 21:38:32 +0800
4Subject: [PATCH] Do not treat warnings as errors 4Subject: [PATCH] Do not treat warnings as errors
@@ -15,11 +15,18 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
15 1 file changed, 1 insertion(+), 1 deletion(-) 15 1 file changed, 1 insertion(+), 1 deletion(-)
16 16
17diff --git a/Make.defaults b/Make.defaults 17diff --git a/Make.defaults b/Make.defaults
18index 1347aca..1834d1c 100755 18index 777a638..bf98939 100755
19--- a/Make.defaults 19--- a/Make.defaults
20+++ b/Make.defaults 20+++ b/Make.defaults
21@@ -262,3 +262,3 @@ CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \ 21@@ -275,7 +275,7 @@ EFI_CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \
22 -fno-strict-aliasing \
23 -ffreestanding -fno-stack-protector
22 else 24 else
23-CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Wno-pointer-sign -Werror \ 25-EFI_CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \
24+CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Wno-pointer-sign \ 26+EFI_CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra \
25 -fno-strict-aliasing \ 27 -fno-strict-aliasing \
28 -ffreestanding -fno-stack-protector \
29 $(if $(findstring 0,$(USING_CLANG)),-fno-merge-all-constants,)
30--
312.34.1
32
diff --git a/meta/recipes-bsp/gnu-efi/gnu-efi_4.0.0.bb b/meta/recipes-bsp/gnu-efi/gnu-efi_4.0.2.bb
index 29d9e695a9..5ce5ceb884 100644
--- a/meta/recipes-bsp/gnu-efi/gnu-efi_4.0.0.bb
+++ b/meta/recipes-bsp/gnu-efi/gnu-efi_4.0.2.bb
@@ -16,11 +16,13 @@ COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*|riscv64.*)-linux"
16COMPATIBLE_HOST:armv4 = 'null' 16COMPATIBLE_HOST:armv4 = 'null'
17 17
18SRC_URI = "git://github.com/ncroxon/gnu-efi;protocol=https;branch=master \ 18SRC_URI = "git://github.com/ncroxon/gnu-efi;protocol=https;branch=master \
19 file://0002-Do-not-treat-warnings-as-errors.patch \ 19 file://0001-Do-not-treat-warnings-as-errors.patch \
20 " 20 "
21SRCREV = "5ea320f0f01c8de8f9dd4e4e38a245608f0287dd" 21SRCREV = "1fee8ab566ce91b9cbab9f2c85db96566d79063b"
22 22
23S = "${WORKDIR}/git" 23# llvm-objcopy fails
24# arm-poky-linux-gnueabi-llvm-objcopy: error: 't8.so': section '.dynstr' cannot be removed because it is referenced by the section '.dynamic'
25OBJCOPY:toolchain-clang = "${HOST_PREFIX}objcopy"
24 26
25inherit github-releases 27inherit github-releases
26 28
diff --git a/meta/recipes-bsp/grub/grub-bootconf_1.00.bb b/meta/recipes-bsp/grub/grub-bootconf_1.00.bb
index a004e3a3b2..0b4005e5bf 100644
--- a/meta/recipes-bsp/grub/grub-bootconf_1.00.bb
+++ b/meta/recipes-bsp/grub/grub-bootconf_1.00.bb
@@ -11,8 +11,7 @@ inherit grub-efi-cfg
11 11
12require conf/image-uefi.conf 12require conf/image-uefi.conf
13 13
14S = "${WORKDIR}/sources" 14S = "${UNPACKDIR}"
15UNPACKDIR = "${S}"
16 15
17GRUB_CFG = "${S}/grub-bootconf" 16GRUB_CFG = "${S}/grub-bootconf"
18LABELS = "boot" 17LABELS = "boot"
diff --git a/meta/recipes-bsp/grub/grub-efi_2.12.bb b/meta/recipes-bsp/grub/grub-efi_2.12.bb
index 5b435245ee..6354b43989 100644
--- a/meta/recipes-bsp/grub/grub-efi_2.12.bb
+++ b/meta/recipes-bsp/grub/grub-efi_2.12.bb
@@ -11,7 +11,7 @@ SRC_URI += " \
11 file://cfg \ 11 file://cfg \
12 " 12 "
13 13
14S = "${WORKDIR}/grub-${PV}" 14S = "${UNPACKDIR}/grub-${PV}"
15 15
16# Determine the target arch for the grub modules 16# Determine the target arch for the grub modules
17python __anonymous () { 17python __anonymous () {
diff --git a/meta/recipes-bsp/grub/grub2.inc b/meta/recipes-bsp/grub/grub2.inc
index 1fe39a59d2..ffa04e415d 100644
--- a/meta/recipes-bsp/grub/grub2.inc
+++ b/meta/recipes-bsp/grub/grub2.inc
@@ -106,3 +106,7 @@ do_configure:prepend() {
106 FROM_BOOTSTRAP=1 ${S}/autogen.sh 106 FROM_BOOTSTRAP=1 ${S}/autogen.sh
107 cd ${B} 107 cd ${B}
108} 108}
109
110# | aarch64-poky-linux-clang: error: invalid argument '-mcmodel=large' only allowed with '-fno-pic'
111# see - https://bugs.gentoo.org/942843
112TOOLCHAIN:aarch64 = "gcc"
diff --git a/meta/recipes-bsp/keymaps/keymaps_1.0.bb b/meta/recipes-bsp/keymaps/keymaps_1.0.bb
index 0425197c98..ab2d68d6a1 100644
--- a/meta/recipes-bsp/keymaps/keymaps_1.0.bb
+++ b/meta/recipes-bsp/keymaps/keymaps_1.0.bb
@@ -24,8 +24,7 @@ SRC_URI = "file://keymap.sh"
24INITSCRIPT_NAME = "keymap.sh" 24INITSCRIPT_NAME = "keymap.sh"
25INITSCRIPT_PARAMS = "start 01 S ." 25INITSCRIPT_PARAMS = "start 01 S ."
26 26
27S = "${WORKDIR}/sources" 27S = "${UNPACKDIR}"
28UNPACKDIR = "${S}"
29 28
30do_install () { 29do_install () {
31 # Only install the script if 'sysvinit' is in DISTRO_FEATURES 30 # Only install the script if 'sysvinit' is in DISTRO_FEATURES
diff --git a/meta/recipes-bsp/libacpi/libacpi_0.2.bb b/meta/recipes-bsp/libacpi/libacpi_0.2.bb
index 6aae34b310..f939d11f4c 100644
--- a/meta/recipes-bsp/libacpi/libacpi_0.2.bb
+++ b/meta/recipes-bsp/libacpi/libacpi_0.2.bb
@@ -14,7 +14,6 @@ SRC_URI = "http://www.ngolde.de/download/libacpi-${PV}.tar.gz \
14 file://0001-libacpi-Fix-build-witth-fno-commom.patch \ 14 file://0001-libacpi-Fix-build-witth-fno-commom.patch \
15 " 15 "
16 16
17SRC_URI[md5sum] = "05b53dd7bead66dda35fec502b91066c"
18SRC_URI[sha256sum] = "13086e31d428b9c125954d48ac497b754bbbce2ef34ea29ecd903e82e25bad29" 17SRC_URI[sha256sum] = "13086e31d428b9c125954d48ac497b754bbbce2ef34ea29ecd903e82e25bad29"
19 18
20UPSTREAM_CHECK_URI = "http://www.ngolde.de/libacpi.html" 19UPSTREAM_CHECK_URI = "http://www.ngolde.de/libacpi.html"
diff --git a/meta/recipes-bsp/opensbi/opensbi_1.6.bb b/meta/recipes-bsp/opensbi/opensbi_1.7.bb
index ed1a70d01a..a460062e93 100644
--- a/meta/recipes-bsp/opensbi/opensbi_1.6.bb
+++ b/meta/recipes-bsp/opensbi/opensbi_1.7.bb
@@ -8,17 +8,16 @@ require opensbi-payloads.inc
8 8
9inherit deploy 9inherit deploy
10 10
11SRCREV = "bd613dd92113f683052acfb23d9dc8ba60029e0a" 11SRCREV = "a32a91069119e7a5aa31e6bc51d5e00860be3d80"
12SRC_URI = "git://github.com/riscv/opensbi.git;branch=master;protocol=https" 12SRC_URI = "git://github.com/riscv/opensbi.git;branch=master;protocol=https"
13 13
14S = "${WORKDIR}/git"
15
16TARGET_DBGSRC_DIR = "/share/opensbi/*/generic/firmware/" 14TARGET_DBGSRC_DIR = "/share/opensbi/*/generic/firmware/"
17 15
18TARGET_CC_ARCH += "${LDFLAGS}" 16TARGET_CC_ARCH += "${LDFLAGS}"
19 17
20RISCV_SBI_FW_TEXT_START ??= "0x80000000" 18RISCV_SBI_FW_TEXT_START ??= "0x80000000"
21EXTRA_OEMAKE += "PLATFORM=${RISCV_SBI_PLAT} I=${D} FW_TEXT_START=${RISCV_SBI_FW_TEXT_START}" 19EXTRA_OEMAKE += "REPRODUCIBLE=y CROSS_COMPILE=${HOST_PREFIX} ELFFLAGS="${LDFLAGS}" PLATFORM=${RISCV_SBI_PLAT} I=${D} FW_TEXT_START=${RISCV_SBI_FW_TEXT_START}"
20EXTRA_OEMAKE:append:toolchain-clang = " LLVM=y"
22# If RISCV_SBI_PAYLOAD is set then include it as a payload 21# If RISCV_SBI_PAYLOAD is set then include it as a payload
23EXTRA_OEMAKE:append = " ${@riscv_get_extra_oemake_image(d)}" 22EXTRA_OEMAKE:append = " ${@riscv_get_extra_oemake_image(d)}"
24EXTRA_OEMAKE:append = " ${@riscv_get_extra_oemake_fdt(d)}" 23EXTRA_OEMAKE:append = " ${@riscv_get_extra_oemake_fdt(d)}"
diff --git a/meta/recipes-bsp/pciutils/pciutils_3.13.0.bb b/meta/recipes-bsp/pciutils/pciutils_3.14.0.bb
index 6478722838..a267ea34b7 100644
--- a/meta/recipes-bsp/pciutils/pciutils_3.13.0.bb
+++ b/meta/recipes-bsp/pciutils/pciutils_3.14.0.bb
@@ -12,7 +12,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
12DEPENDS = "make-native" 12DEPENDS = "make-native"
13 13
14SRC_URI = "${KERNELORG_MIRROR}/software/utils/pciutils/pciutils-${PV}.tar.xz" 14SRC_URI = "${KERNELORG_MIRROR}/software/utils/pciutils/pciutils-${PV}.tar.xz"
15SRC_URI[sha256sum] = "77f11f78298502634d1af50308f15a5788629f6cf45cba376f5009aea4cb4926" 15SRC_URI[sha256sum] = "e7713409882813991d2269d125e40dad1f54a019a52b78b3962941c1d4a6f86f"
16 16
17inherit multilib_header pkgconfig update-alternatives 17inherit multilib_header pkgconfig update-alternatives
18 18
diff --git a/meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb b/meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb
index c7b95e57b0..8756511c17 100644
--- a/meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb
+++ b/meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb
@@ -6,10 +6,8 @@ LICENSE = "GPL-2.0-only"
6LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ 6LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
7 file://src/pm-pmu.c;beginline=1;endline=22;md5=3c1ddbc54e735fb4a0386e14c78a3147" 7 file://src/pm-pmu.c;beginline=1;endline=22;md5=3c1ddbc54e735fb4a0386e14c78a3147"
8 8
9
10SRC_URI = "http://pm-utils.freedesktop.org/releases/pm-utils-${PV}.tar.gz" 9SRC_URI = "http://pm-utils.freedesktop.org/releases/pm-utils-${PV}.tar.gz"
11 10
12SRC_URI[md5sum] = "1742a556089c36c3a89eb1b957da5a60"
13SRC_URI[sha256sum] = "8ed899032866d88b2933a1d34cc75e8ae42dcde20e1cc21836baaae3d4370c0b" 11SRC_URI[sha256sum] = "8ed899032866d88b2933a1d34cc75e8ae42dcde20e1cc21836baaae3d4370c0b"
14 12
15inherit pkgconfig autotools manpages 13inherit pkgconfig autotools manpages
diff --git a/meta/recipes-bsp/setserial/setserial_2.17.bb b/meta/recipes-bsp/setserial/setserial_2.17.bb
index 3241b21f82..e1e80e31ae 100644
--- a/meta/recipes-bsp/setserial/setserial_2.17.bb
+++ b/meta/recipes-bsp/setserial/setserial_2.17.bb
@@ -16,7 +16,6 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/setserial/${BPN}-${PV}.tar.gz \
16 file://0001-setserial.c-Add-needed-system-headers-for-ioctl-and-.patch \ 16 file://0001-setserial.c-Add-needed-system-headers-for-ioctl-and-.patch \
17 " 17 "
18 18
19SRC_URI[md5sum] = "c4867d72c41564318e0107745eb7a0f2"
20SRC_URI[sha256sum] = "7e4487d320ac31558563424189435d396ddf77953bb23111a17a3d1487b5794a" 19SRC_URI[sha256sum] = "7e4487d320ac31558563424189435d396ddf77953bb23111a17a3d1487b5794a"
21 20
22do_install() { 21do_install() {
diff --git a/meta/recipes-bsp/u-boot/files/0001-Makefile-add-dependency-from-lib-to-arch-ARCH-lib.patch b/meta/recipes-bsp/u-boot/files/0001-Makefile-add-dependency-from-lib-to-arch-ARCH-lib.patch
new file mode 100644
index 0000000000..06fdaf5b0a
--- /dev/null
+++ b/meta/recipes-bsp/u-boot/files/0001-Makefile-add-dependency-from-lib-to-arch-ARCH-lib.patch
@@ -0,0 +1,81 @@
1From d0075e2d730a4fa48aa763a669e5edbc02c33a22 Mon Sep 17 00:00:00 2001
2From: Mikko Rapeli <mikko.rapeli@linaro.org>
3Date: Thu, 31 Jul 2025 14:52:48 +0300
4Subject: [PATCH] Makefile: add dependency from lib to arch/$(ARCH)/lib
5
6Top level Makefile starts separate "make" processes for each each
7subdirectory. lib/efi_loader apps now depend on lib.a from
8arch/$(ARCH)/lib if CONFIG_USE_PRIVATE_LIBGCC is enabled which creates
9a race conditions since dependency from lib/efi_loader EFI apps to
10arch/$(ARCH)/lib/lib.a is not explicit:
11
12arm-poky-linux-gnueabi-ld.bfd: cannot find arch/arm/lib/lib.a: No such file or directory
13make[3]: *** [scripts/Makefile.lib:512: lib/efi_loader/testapp_efi.so] Error 1
14
15This error was seen on yocto/OE-core CI builds after u-boot 2025.07 update:
16
17https://lists.openembedded.org/g/openembedded-core/message/220004
18
19https://autobuilder.yoctoproject.org/valkyrie/api/v2/logs/2914600/raw_inline
20
21 | rm -f lib/efi_loader/built-in.o; arm-poky-linux-gnueabi-ar cDPrsT lib/efi_loader/built-in.o lib/efi_loader/efi_bootmgr.o lib/efi_loader/efi_bootbin.o lib/efi_loader
22/efi_boottime.o lib/efi_loader/efi_helper.o lib/efi_loader/efi_console.o lib/efi_loader/efi_device_path.o lib/efi_loader/efi_device_path_to_text.o lib/efi_loader/efi_device_
23path_utilities.o lib/efi_loader/efi_dt_fixup.o lib/efi_loader/efi_fdt.o lib/efi_loader/efi_file.o lib/efi_loader/efi_hii.o lib/efi_loader/efi_hii_config.o lib/efi_loader/efi
24_image_loader.o lib/efi_loader/efi_load_options.o lib/efi_loader/efi_memory.o lib/efi_loader/efi_root_node.o lib/efi_loader/efi_runtime.o lib/efi_loader/efi_setup.o lib/efi_
25loader/efi_string.o lib/efi_loader/efi_unicode_collation.o lib/efi_loader/efi_var_common.o lib/efi_loader/efi_var_mem.o lib/efi_loader/efi_variable.o lib/efi_loader/efi_var_
26file.o lib/efi_loader/efi_watchdog.o lib/efi_loader/efi_disk.o lib/efi_loader/efi_net.o lib/efi_loader/efi_smbios.o lib/efi_loader/efi_load_initrd.o lib/efi_loader/efi_confo
27rmance.o
28 | arm-poky-linux-gnueabi-ld.bfd -nostdlib -zexecstack -znocombreloc -znorelro --no-warn-rwx-segments -L /srv/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-
293119200/tmp/work/beaglebone_yocto-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07 -T arch/arm/lib/elf_arm_efi.lds -shared -Bsymbolic -s lib/efi_loader/helloworld.o
30lib/efi_loader/efi_crt0.o lib/efi_loader/efi_reloc.o lib/efi_loader/efi_freestanding.o arch/arm/lib/lib.a -o lib/efi_loader/helloworld_efi.so
31 | arm-poky-linux-gnueabi-ld.bfd: cannot find arch/arm/lib/lib.a: No such file or directory
32 | make[3]: *** [scripts/Makefile.lib:512: lib/efi_loader/helloworld_efi.so] Error 1
33
34The different "make" processes share common scripts/Makefile.build
35and scripts/Makefile.libs but since they are separate processes
36the Makefile rules can't add a dependency from lib/uefi_loader targets
37to arch/$(ARCH)/lib/lib.a. Or the file level dependency can be added but
38then "make" produces a too sparse error message which does not mention
39that one of the dependencies like arch/$(ARCH)/lib/lib.a was not found:
40
41make[3]: *** No rule to make target 'lib/efi_loader/helloworld.efi', needed by '__build'. Stop.
42
43Fix this dependency problem by building arch/$(ARCH)/lib before lib
44if CONFIG_USE_PRIVATE_LIBGCC was enabled.
45
46To reproduce the race condition more reliably, add a "sleep 10" delay
47before linker command cmd_link_l_target with 2025.07
48or to $(lib-target): target in scripts/Makefile.build with master branch
49after Kbuild update.
50
51Fixes: 43d43241d1c9 ("scripts/Makefile.lib: add PLATFORM_LIBGCC to efi linking")
52
53Cc: Adriano Cordova <adrianox@gmail.com>
54Cc: Fabio Estevam <festevam@gmail.com>
55Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
56Reviewed-by: Fabio Estevam <festevam@gmail.com>
57---
58 Makefile | 5 +++++
59 1 file changed, 5 insertions(+)
60
61Upstream-Status: Backport
62
63diff --git a/Makefile b/Makefile
64index c31bf7ecea97..b03f87a93fb9 100644
65--- a/Makefile
66+++ b/Makefile
67@@ -2131,6 +2131,11 @@ $(filter-out tools, $(u-boot-dirs)): tools
68 # is "yes"), so compile examples after U-Boot is compiled.
69 examples: $(filter-out examples, $(u-boot-dirs))
70
71+ifeq ($(CONFIG_USE_PRIVATE_LIBGCC),y)
72+# lib/efi_loader apps depend on arch/$(ARCH)/lib for lib.a
73+lib: $(filter arch/$(ARCH)/lib, $(u-boot-dirs))
74+endif
75+
76 # The setlocalversion script comes from linux and expects a
77 # KERNELVERSION variable in the environment for figuring out which
78 # annotated tags are relevant. Pass UBOOTVERSION.
79--
802.43.0
81
diff --git a/meta/recipes-bsp/u-boot/files/0001-nxp-Prepare-macros-for-KVM-changes.patch b/meta/recipes-bsp/u-boot/files/0001-nxp-Prepare-macros-for-KVM-changes.patch
new file mode 100644
index 0000000000..fa34c8033e
--- /dev/null
+++ b/meta/recipes-bsp/u-boot/files/0001-nxp-Prepare-macros-for-KVM-changes.patch
@@ -0,0 +1,100 @@
1From 9be804cbfde1df715d79247b27de4b388c714cde Mon Sep 17 00:00:00 2001
2From: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3Date: Wed, 18 Jun 2025 09:58:12 +0300
4Subject: [PATCH 1/3] nxp: Prepare macros for KVM changes
5
6A following patch is replacing our IO accessors with
7do { ... } while(0) ones in order to make them usable with KVM.
8
9That leads to an error eventually looking like this:
10arch/arm/include/asm/io.h:62:9: error: expected expression before 'do'
11 62 | do { \
12 | ^~
13arch/arm/include/asm/io.h:211:41: note: in expansion of macro '__raw_writel'
14 211 | #define out_arch(type,endian,a,v) __raw_write##type(cpu_to_##endian(v),a)
15 | ^~~~~~~~~~~
16arch/arm/include/asm/io.h:223:25: note: in expansion of macro 'out_arch'
17 223 | #define out_be32(a,v) out_arch(l,be32,a,v)
18 | ^~~~~~~~
19drivers/spi/fsl_dspi.c:127:17: note: in expansion of macro 'out_be32'
20 127 | out_be32(addr, val) : out_le32(addr, val);
21 | ^~~~~~~~
22
23So adjust the current macros and code to be compatible with the upcoming
24change.
25
26Upstream-Status: Backport [https://github.com/u-boot/u-boot/commit/b56c0632ad62]
27Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
28Reviewed-by: Tom Rini <trini@konsulko.com>
29Signed-off-by: Fabio Estevam <festevam@gmail.com>
30---
31 drivers/spi/fsl_dspi.c | 6 ++++--
32 include/fsl_ifc.h | 24 ++++++++++++------------
33 2 files changed, 16 insertions(+), 14 deletions(-)
34
35diff --git a/drivers/spi/fsl_dspi.c b/drivers/spi/fsl_dspi.c
36index f2393c041f44..545561ad1169 100644
37--- a/drivers/spi/fsl_dspi.c
38+++ b/drivers/spi/fsl_dspi.c
39@@ -123,8 +123,10 @@ static uint dspi_read32(uint flags, uint *addr)
40
41 static void dspi_write32(uint flags, uint *addr, uint val)
42 {
43- flags & DSPI_FLAG_REGMAP_ENDIAN_BIG ?
44- out_be32(addr, val) : out_le32(addr, val);
45+ if (flags & DSPI_FLAG_REGMAP_ENDIAN_BIG)
46+ out_be32(addr, val);
47+ else
48+ out_le32(addr, val);
49 }
50
51 static void dspi_halt(struct fsl_dspi_priv *priv, u8 halt)
52diff --git a/include/fsl_ifc.h b/include/fsl_ifc.h
53index 3ac226879303..1c363115beb2 100644
54--- a/include/fsl_ifc.h
55+++ b/include/fsl_ifc.h
56@@ -803,29 +803,29 @@ void init_final_memctl_regs(void);
57 ((struct fsl_ifc_fcm *)CFG_SYS_IFC_ADDR)
58
59 #define get_ifc_cspr_ext(i) \
60- (ifc_in32(&(IFC_FCM_BASE_ADDR)->cspr_cs[i].cspr_ext))
61+ ifc_in32(&(IFC_FCM_BASE_ADDR)->cspr_cs[i].cspr_ext)
62 #define get_ifc_cspr(i) \
63- (ifc_in32(&(IFC_FCM_BASE_ADDR)->cspr_cs[i].cspr))
64+ ifc_in32(&(IFC_FCM_BASE_ADDR)->cspr_cs[i].cspr)
65 #define get_ifc_csor_ext(i) \
66- (ifc_in32(&(IFC_FCM_BASE_ADDR)->csor_cs[i].csor_ext))
67+ ifc_in32(&(IFC_FCM_BASE_ADDR)->csor_cs[i].csor_ext)
68 #define get_ifc_csor(i) \
69- (ifc_in32(&(IFC_FCM_BASE_ADDR)->csor_cs[i].csor))
70+ ifc_in32(&(IFC_FCM_BASE_ADDR)->csor_cs[i].csor)
71 #define get_ifc_amask(i) \
72- (ifc_in32(&(IFC_FCM_BASE_ADDR)->amask_cs[i].amask))
73+ ifc_in32(&(IFC_FCM_BASE_ADDR)->amask_cs[i].amask)
74 #define get_ifc_ftim(i, j) \
75- (ifc_in32(&(IFC_FCM_BASE_ADDR)->ftim_cs[i].ftim[j]))
76+ ifc_in32(&(IFC_FCM_BASE_ADDR)->ftim_cs[i].ftim[j])
77 #define set_ifc_cspr_ext(i, v) \
78- (ifc_out32(&(IFC_FCM_BASE_ADDR)->cspr_cs[i].cspr_ext, v))
79+ ifc_out32(&(IFC_FCM_BASE_ADDR)->cspr_cs[i].cspr_ext, v)
80 #define set_ifc_cspr(i, v) \
81- (ifc_out32(&(IFC_FCM_BASE_ADDR)->cspr_cs[i].cspr, v))
82+ ifc_out32(&(IFC_FCM_BASE_ADDR)->cspr_cs[i].cspr, v)
83 #define set_ifc_csor_ext(i, v) \
84- (ifc_out32(&(IFC_FCM_BASE_ADDR)->csor_cs[i].csor_ext, v))
85+ ifc_out32(&(IFC_FCM_BASE_ADDR)->csor_cs[i].csor_ext, v)
86 #define set_ifc_csor(i, v) \
87- (ifc_out32(&(IFC_FCM_BASE_ADDR)->csor_cs[i].csor, v))
88+ ifc_out32(&(IFC_FCM_BASE_ADDR)->csor_cs[i].csor, v)
89 #define set_ifc_amask(i, v) \
90- (ifc_out32(&(IFC_FCM_BASE_ADDR)->amask_cs[i].amask, v))
91+ ifc_out32(&(IFC_FCM_BASE_ADDR)->amask_cs[i].amask, v)
92 #define set_ifc_ftim(i, j, v) \
93- (ifc_out32(&(IFC_FCM_BASE_ADDR)->ftim_cs[i].ftim[j], v))
94+ ifc_out32(&(IFC_FCM_BASE_ADDR)->ftim_cs[i].ftim[j], v)
95
96 enum ifc_chip_sel {
97 IFC_CS0,
98--
992.34.1
100
diff --git a/meta/recipes-bsp/u-boot/files/0002-arm-io.h-Fix-io-accessors-for-KVM.patch b/meta/recipes-bsp/u-boot/files/0002-arm-io.h-Fix-io-accessors-for-KVM.patch
new file mode 100644
index 0000000000..558d753d4a
--- /dev/null
+++ b/meta/recipes-bsp/u-boot/files/0002-arm-io.h-Fix-io-accessors-for-KVM.patch
@@ -0,0 +1,310 @@
1From 2fc16d8de5bbe2a40ab25445936150c3250a9077 Mon Sep 17 00:00:00 2001
2From: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3Date: Wed, 18 Jun 2025 09:58:13 +0300
4Subject: [PATCH 2/3] arm: io.h: Fix io accessors for KVM
5
6commit 2e2c2a5e72a8 ("arm: qemu: override flash accessors to use virtualizable instructions")
7explains why we can't have instructions with multiple output registers
8when running under QEMU + KVM and the instruction leads to an exception
9to the hypervisor.
10
11USB XHCI is such a case (MMIO) where a ldr w1, [x0], #4 is emitted for
12xhci_start() which works fine with QEMU but crashes for QEMU + KVM.
13
14These instructions cannot be emulated by KVM as they do not produce
15syndrome information data that KVM can use to infer the destination
16register, the faulting address, whether it was a load or store, or
17if it's a 32 or 64 bit general-purpose register.
18As a result an external abort is injected from QEMU, via ext_dabt_pending
19to KVM and we end up throwing an exception that looks like
20
21 U-Boot 2025.07-rc4 (Jun 10 2025 - 12:00:15 +0000)
22 [...]
23 Register 8001040 NbrPorts 8
24 Starting the controller
25 "Synchronous Abort" handler, esr 0x96000010, far 0x10100040
26 elr: 000000000005b1c8 lr : 000000000005b1ac (reloc)
27 elr: 00000000476fc1c8 lr : 00000000476fc1ac
28 x0 : 0000000010100040 x1 : 0000000000000001
29 x2 : 0000000000000000 x3 : 0000000000003e80
30 x4 : 0000000000000000 x5 : 00000000477a5694
31 x6 : 0000000000000038 x7 : 000000004666f360
32 x8 : 0000000000000000 x9 : 00000000ffffffd8
33 x10: 000000000000000d x11: 0000000000000006
34 x12: 0000000046560a78 x13: 0000000046560dd0
35 x14: 00000000ffffffff x15: 000000004666eed2
36 x16: 00000000476ee2f0 x17: 0000000000000000
37 x18: 0000000046660dd0 x19: 000000004666f480
38 x20: 0000000000000000 x21: 0000000010100040
39 x22: 0000000010100000 x23: 0000000000000000
40 x24: 0000000000000000 x25: 0000000000000000
41 x26: 0000000000000000 x27: 0000000000000000
42 x28: 0000000000000000 x29: 000000004666f360
43
44 Code: d5033fbf aa1503e0 5287d003 52800002 (b8004401)
45 Resetting CPU ...
46
47There are two problems making this the default.
48- It will emit ldr + add or str + add instead of ldr/str(post increment)
49 in somne cases
50- Some platforms that depend on TPL/SPL grow in size enough so that the
51 binary doesn't fit anymore.
52
53So let's add proper I/O accessors add a Kconfig option
54to turn it off by default apart from our QEMU builds.
55
56Upstream-Status: Backport [https://github.com/u-boot/u-boot/commit/dc512700ad46]
57Reported-by: Mikko Rapeli <mikko.rapeli@linaro.org>
58Tested-by: Mikko Rapeli <mikko.rapeli@linaro.org>
59Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
60Signed-off-by: Fabio Estevam <festevam@gmail.com>
61---
62 arch/arm/Kconfig | 12 +++
63 arch/arm/include/asm/io.h | 152 ++++++++++++++++++++++++++++----------
64 2 files changed, 124 insertions(+), 40 deletions(-)
65
66diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
67index 6ff3f2750ea8..f6430a5aaf07 100644
68--- a/arch/arm/Kconfig
69+++ b/arch/arm/Kconfig
70@@ -108,6 +108,18 @@ config LNX_KRNL_IMG_TEXT_OFFSET_BASE
71 The value subtracted from CONFIG_TEXT_BASE to calculate the
72 TEXT_OFFSET value written to the Linux kernel image header.
73
74+config KVM_VIRT_INS
75+ bool "Emit virtualizable instructions"
76+ help
77+ Instructions in the ARM ISA that have multiple output registers,
78+ can't be used if the instruction leads to an exception to the hypervisor.
79+ These instructions cannot be emulated by KVM because they do not produce
80+ syndrome information data that KVM can use to infer the destination
81+ register, the faulting address, whether it was a load or store,
82+ if it's a 32 or 64 bit general-purpose register amongst other things.
83+ Use this to produce virtualizable instructions if you plan to run U-Boot
84+ with KVM.
85+
86 config NVIC
87 bool
88
89diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h
90index 89b1015bc4d3..85ec0e6937e8 100644
91--- a/arch/arm/include/asm/io.h
92+++ b/arch/arm/include/asm/io.h
93@@ -20,23 +20,108 @@ static inline void sync(void)
94 {
95 }
96
97-/* Generic virtual read/write. */
98-#define __arch_getb(a) (*(volatile unsigned char *)(a))
99-#define __arch_getw(a) (*(volatile unsigned short *)(a))
100-#define __arch_getl(a) (*(volatile unsigned int *)(a))
101-#define __arch_getq(a) (*(volatile unsigned long long *)(a))
102+#ifdef CONFIG_ARM64
103+#define __W "w"
104+#else
105+#define __W
106+#endif
107+
108+#if CONFIG_IS_ENABLED(SYS_THUMB_BUILD)
109+#define __R "l"
110+#define __RM "=l"
111+#else
112+#define __R "r"
113+#define __RM "=r"
114+#endif
115
116-#define __arch_putb(v,a) (*(volatile unsigned char *)(a) = (v))
117-#define __arch_putw(v,a) (*(volatile unsigned short *)(a) = (v))
118-#define __arch_putl(v,a) (*(volatile unsigned int *)(a) = (v))
119-#define __arch_putq(v,a) (*(volatile unsigned long long *)(a) = (v))
120+#ifdef CONFIG_KVM_VIRT_INS
121+/*
122+ * The __raw_writeX/__raw_readX below should be converted to static inline
123+ * functions. However doing so produces a lot of compilation warnings when
124+ * called with a raw address. Convert these once the callers have been fixed.
125+ */
126+#define __raw_writeb(val, addr) \
127+ do { \
128+ asm volatile("strb %" __W "0, [%1]" \
129+ : \
130+ : __R ((u8)(val)), __R (addr)); \
131+ } while (0)
132+
133+#define __raw_readb(addr) \
134+ ({ \
135+ u32 __val; \
136+ asm volatile("ldrb %" __W "0, [%1]" \
137+ : __RM (__val) \
138+ : __R (addr)); \
139+ __val; \
140+ })
141+
142+#define __raw_writew(val, addr) \
143+ do { \
144+ asm volatile("strh %" __W "0, [%1]" \
145+ : \
146+ : __R ((u16)(val)), __R (addr)); \
147+ } while (0)
148+
149+#define __raw_readw(addr) \
150+ ({ \
151+ u32 __val; \
152+ asm volatile("ldrh %" __W "0, [%1]" \
153+ : __RM (__val) \
154+ : __R (addr)); \
155+ __val; \
156+ })
157+
158+#define __raw_writel(val, addr) \
159+ do { \
160+ asm volatile("str %" __W "0, [%1]" \
161+ : \
162+ : __R ((u32)(val)), __R (addr)); \
163+ } while (0)
164+
165+#define __raw_readl(addr) \
166+ ({ \
167+ u32 __val; \
168+ asm volatile("ldr %" __W "0, [%1]" \
169+ : __RM (__val) \
170+ : __R (addr)); \
171+ __val; \
172+ })
173+
174+#define __raw_writeq(val, addr) \
175+ do { \
176+ asm volatile("str %0, [%1]" \
177+ : \
178+ : __R ((u64)(val)), __R (addr)); \
179+ } while (0)
180+
181+#define __raw_readq(addr) \
182+ ({ \
183+ u64 __val; \
184+ asm volatile("ldr %0, [%1]" \
185+ : __RM (__val) \
186+ : __R (addr)); \
187+ __val; \
188+ })
189+#else
190+/* Generic virtual read/write. */
191+#define __raw_readb(a) (*(volatile unsigned char *)(a))
192+#define __raw_readw(a) (*(volatile unsigned short *)(a))
193+#define __raw_readl(a) (*(volatile unsigned int *)(a))
194+#define __raw_readq(a) (*(volatile unsigned long long *)(a))
195+
196+#define __raw_writeb(v, a) (*(volatile unsigned char *)(a) = (v))
197+#define __raw_writew(v, a) (*(volatile unsigned short *)(a) = (v))
198+#define __raw_writel(v, a) (*(volatile unsigned int *)(a) = (v))
199+#define __raw_writeq(v, a) (*(volatile unsigned long long *)(a) = (v))
200+#endif
201
202 static inline void __raw_writesb(unsigned long addr, const void *data,
203 int bytelen)
204 {
205 uint8_t *buf = (uint8_t *)data;
206 while(bytelen--)
207- __arch_putb(*buf++, addr);
208+ __raw_writeb(*buf++, addr);
209 }
210
211 static inline void __raw_writesw(unsigned long addr, const void *data,
212@@ -44,7 +129,7 @@ static inline void __raw_writesw(unsigned long addr, const void *data,
213 {
214 uint16_t *buf = (uint16_t *)data;
215 while(wordlen--)
216- __arch_putw(*buf++, addr);
217+ __raw_writew(*buf++, addr);
218 }
219
220 static inline void __raw_writesl(unsigned long addr, const void *data,
221@@ -52,40 +137,30 @@ static inline void __raw_writesl(unsigned long addr, const void *data,
222 {
223 uint32_t *buf = (uint32_t *)data;
224 while(longlen--)
225- __arch_putl(*buf++, addr);
226+ __raw_writel(*buf++, addr);
227 }
228
229 static inline void __raw_readsb(unsigned long addr, void *data, int bytelen)
230 {
231 uint8_t *buf = (uint8_t *)data;
232 while(bytelen--)
233- *buf++ = __arch_getb(addr);
234+ *buf++ = __raw_readb(addr);
235 }
236
237 static inline void __raw_readsw(unsigned long addr, void *data, int wordlen)
238 {
239 uint16_t *buf = (uint16_t *)data;
240 while(wordlen--)
241- *buf++ = __arch_getw(addr);
242+ *buf++ = __raw_readw(addr);
243 }
244
245 static inline void __raw_readsl(unsigned long addr, void *data, int longlen)
246 {
247 uint32_t *buf = (uint32_t *)data;
248 while(longlen--)
249- *buf++ = __arch_getl(addr);
250+ *buf++ = __raw_readl(addr);
251 }
252
253-#define __raw_writeb(v,a) __arch_putb(v,a)
254-#define __raw_writew(v,a) __arch_putw(v,a)
255-#define __raw_writel(v,a) __arch_putl(v,a)
256-#define __raw_writeq(v,a) __arch_putq(v,a)
257-
258-#define __raw_readb(a) __arch_getb(a)
259-#define __raw_readw(a) __arch_getw(a)
260-#define __raw_readl(a) __arch_getl(a)
261-#define __raw_readq(a) __arch_getq(a)
262-
263 /*
264 * TODO: The kernel offers some more advanced versions of barriers, it might
265 * have some advantages to use them instead of the simple one here.
266@@ -98,15 +173,15 @@ static inline void __raw_readsl(unsigned long addr, void *data, int longlen)
267
268 #define smp_processor_id() 0
269
270-#define writeb(v,c) ({ u8 __v = v; __iowmb(); __arch_putb(__v,c); __v; })
271-#define writew(v,c) ({ u16 __v = v; __iowmb(); __arch_putw(__v,c); __v; })
272-#define writel(v,c) ({ u32 __v = v; __iowmb(); __arch_putl(__v,c); __v; })
273-#define writeq(v,c) ({ u64 __v = v; __iowmb(); __arch_putq(__v,c); __v; })
274+#define writeb(v, c) ({ u8 __v = v; __iowmb(); writeb_relaxed(__v, c); __v; })
275+#define writew(v, c) ({ u16 __v = v; __iowmb(); writew_relaxed(__v, c); __v; })
276+#define writel(v, c) ({ u32 __v = v; __iowmb(); writel_relaxed(__v, c); __v; })
277+#define writeq(v, c) ({ u64 __v = v; __iowmb(); writeq_relaxed(__v, c); __v; })
278
279-#define readb(c) ({ u8 __v = __arch_getb(c); __iormb(); __v; })
280-#define readw(c) ({ u16 __v = __arch_getw(c); __iormb(); __v; })
281-#define readl(c) ({ u32 __v = __arch_getl(c); __iormb(); __v; })
282-#define readq(c) ({ u64 __v = __arch_getq(c); __iormb(); __v; })
283+#define readb(c) ({ u8 __v = readb_relaxed(c); __iormb(); __v; })
284+#define readw(c) ({ u16 __v = readw_relaxed(c); __iormb(); __v; })
285+#define readl(c) ({ u32 __v = readl_relaxed(c); __iormb(); __v; })
286+#define readq(c) ({ u64 __v = readq_relaxed(c); __iormb(); __v; })
287
288 /*
289 * Relaxed I/O memory access primitives. These follow the Device memory
290@@ -121,13 +196,10 @@ static inline void __raw_readsl(unsigned long addr, void *data, int longlen)
291 #define readq_relaxed(c) ({ u64 __r = le64_to_cpu((__force __le64) \
292 __raw_readq(c)); __r; })
293
294-#define writeb_relaxed(v, c) ((void)__raw_writeb((v), (c)))
295-#define writew_relaxed(v, c) ((void)__raw_writew((__force u16) \
296- cpu_to_le16(v), (c)))
297-#define writel_relaxed(v, c) ((void)__raw_writel((__force u32) \
298- cpu_to_le32(v), (c)))
299-#define writeq_relaxed(v, c) ((void)__raw_writeq((__force u64) \
300- cpu_to_le64(v), (c)))
301+#define writeb_relaxed(v, c) __raw_writeb((v), (c))
302+#define writew_relaxed(v, c) __raw_writew((__force u16)cpu_to_le16(v), (c))
303+#define writel_relaxed(v, c) __raw_writel((__force u32)cpu_to_le32(v), (c))
304+#define writeq_relaxed(v, c) __raw_writeq((__force u64)cpu_to_le64(v), (c))
305
306 /*
307 * The compiler seems to be incapable of optimising constants
308--
3092.34.1
310
diff --git a/meta/recipes-bsp/u-boot/files/0003-qemu-arm-Enable-virtualizable-IO-accessors.patch b/meta/recipes-bsp/u-boot/files/0003-qemu-arm-Enable-virtualizable-IO-accessors.patch
new file mode 100644
index 0000000000..520c9226b4
--- /dev/null
+++ b/meta/recipes-bsp/u-boot/files/0003-qemu-arm-Enable-virtualizable-IO-accessors.patch
@@ -0,0 +1,41 @@
1From cb6120b4bfd8b24dde7e0d1eda882e203a849d3f Mon Sep 17 00:00:00 2001
2From: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3Date: Wed, 18 Jun 2025 09:58:14 +0300
4Subject: [PATCH 3/3] qemu: arm: Enable virtualizable IO accessors
5
6We recently added IO accessors that will work with KVM for any MMIO
7access that casues an exception to the hypervisor. Enable them by
8default for QEMU.
9
10Upstream-Status: Backport [https://github.com/u-boot/u-boot/commit/fcc60481ae75]
11Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
12Tested-by: Mikko Rapeli <mikko.rapeli@linaro.org>
13Signed-off-by: Fabio Estevam <festevam@gmail.com>
14---
15 configs/qemu_arm64_defconfig | 1 +
16 configs/qemu_arm_defconfig | 1 +
17 2 files changed, 2 insertions(+)
18
19diff --git a/configs/qemu_arm64_defconfig b/configs/qemu_arm64_defconfig
20index 72bd255eafa3..39afb837e411 100644
21--- a/configs/qemu_arm64_defconfig
22+++ b/configs/qemu_arm64_defconfig
23@@ -1,4 +1,5 @@
24 CONFIG_ARM=y
25+CONFIG_KVM_VIRT_INS=y
26 CONFIG_ARCH_QEMU=y
27 CONFIG_SYS_MALLOC_LEN=0x1000000
28 CONFIG_BLOBLIST_SIZE_RELOC=0x2000
29diff --git a/configs/qemu_arm_defconfig b/configs/qemu_arm_defconfig
30index f13001390d4d..92ba48f6af97 100644
31--- a/configs/qemu_arm_defconfig
32+++ b/configs/qemu_arm_defconfig
33@@ -1,4 +1,5 @@
34 CONFIG_ARM=y
35+CONFIG_KVM_VIRT_INS=y
36 CONFIG_ARM_SMCCC=y
37 CONFIG_ARCH_QEMU=y
38 CONFIG_SYS_MALLOC_LEN=0x1000000
39--
402.34.1
41
diff --git a/meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg b/meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg
new file mode 100644
index 0000000000..d01d3d12d8
--- /dev/null
+++ b/meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg
@@ -0,0 +1 @@
# CONFIG_BLOBLIST is not set
diff --git a/meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_a.cfg b/meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_a.cfg
new file mode 100644
index 0000000000..fc45b64480
--- /dev/null
+++ b/meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_a.cfg
@@ -0,0 +1 @@
CONFIG_RISCV_ISA_A=y
diff --git a/meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_c.cfg b/meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_c.cfg
new file mode 100644
index 0000000000..1cb459f636
--- /dev/null
+++ b/meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_c.cfg
@@ -0,0 +1 @@
CONFIG_RISCV_ISA_C=y
diff --git a/meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_clear.cfg b/meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_clear.cfg
new file mode 100644
index 0000000000..ce90da23ce
--- /dev/null
+++ b/meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_clear.cfg
@@ -0,0 +1,6 @@
1# CONFIG_RISCV_ISA_C is not set
2# CONFIG_RISCV_ISA_F is not set
3# CONFIG_RISCV_ISA_D is not set
4# CONFIG_RISCV_ISA_ZBB is not set
5# CONFIG_RISCV_ISA_A is not set
6# CONFIG_RISCV_ISA_ZICBOM is not set
diff --git a/meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_d.cfg b/meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_d.cfg
new file mode 100644
index 0000000000..fd25fa4e89
--- /dev/null
+++ b/meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_d.cfg
@@ -0,0 +1 @@
CONFIG_RISCV_ISA_D=y
diff --git a/meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_f.cfg b/meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_f.cfg
new file mode 100644
index 0000000000..dfa9876f82
--- /dev/null
+++ b/meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_f.cfg
@@ -0,0 +1 @@
CONFIG_RISCV_ISA_F=y
diff --git a/meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_zbb.cfg b/meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_zbb.cfg
new file mode 100644
index 0000000000..2b71b016f8
--- /dev/null
+++ b/meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_zbb.cfg
@@ -0,0 +1 @@
CONFIG_RISCV_ISA_ZBB=y
diff --git a/meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_zicbom.cfg b/meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_zicbom.cfg
new file mode 100644
index 0000000000..96daf04b20
--- /dev/null
+++ b/meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_zicbom.cfg
@@ -0,0 +1 @@
CONFIG_RISCV_ISA_ZICBOM=y
diff --git a/meta/recipes-bsp/u-boot/libubootenv/0001-Update-cmake_minimum_required-to-3.5.patch b/meta/recipes-bsp/u-boot/libubootenv/0001-Update-cmake_minimum_required-to-3.5.patch
new file mode 100644
index 0000000000..ee174ca59e
--- /dev/null
+++ b/meta/recipes-bsp/u-boot/libubootenv/0001-Update-cmake_minimum_required-to-3.5.patch
@@ -0,0 +1,50 @@
1From cd12d9dd2bea8e4580f458df77229477fc55ba70 Mon Sep 17 00:00:00 2001
2From: James Hilliard <james.hilliard1@gmail.com>
3Date: Wed, 14 May 2025 14:17:40 -0600
4Subject: [PATCH] Update cmake_minimum_required to 3.5
5
6This supports compilation with cmake-4.0.0.
7
8Fixes:
9CMake Error at CMakeLists.txt:5 (cmake_minimum_required):
10 Compatibility with CMake < 3.5 has been removed from CMake.
11
12 Update the VERSION argument <min> value. Or, use the <min>...<max> syntax
13 to tell CMake that the project requires at least <min> but has been updated
14 to work with policies introduced by <max> or earlier.
15
16 Or, add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to try configuring anyway.
17
18Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
19Upstream-Status: Backport [cd12d9dd2bea8e4580f458df77229477fc55ba70]
20---
21 CMakeLists.txt | 2 +-
22 src/CMakeLists.txt | 2 +-
23 2 files changed, 2 insertions(+), 2 deletions(-)
24
25diff --git a/CMakeLists.txt b/CMakeLists.txt
26index 796d7bc..0a11730 100644
27--- a/CMakeLists.txt
28+++ b/CMakeLists.txt
29@@ -2,7 +2,7 @@
30 #
31 # SPDX-License-Identifier: LGPL-2.1-or-later
32
33-cmake_minimum_required (VERSION 2.6)
34+cmake_minimum_required (VERSION 3.5)
35 project (libubootenv C)
36
37 # The version number.
38diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
39index c56d0c7..3370232 100644
40--- a/src/CMakeLists.txt
41+++ b/src/CMakeLists.txt
42@@ -1,7 +1,7 @@
43 # SPDX-FileCopyrightText: 2019-2021 Stefano Babic <stefano.babic@swupdate.org>
44 #
45 # SPDX-License-Identifier: LGPL-2.1-or-later
46-cmake_minimum_required (VERSION 2.6)
47+cmake_minimum_required (VERSION 3.5)
48 # Sources and private headers
49 SET(libubootenv_SOURCES
50 uboot_env.c
diff --git a/meta/recipes-bsp/u-boot/libubootenv_0.3.6.bb b/meta/recipes-bsp/u-boot/libubootenv_0.3.6.bb
index 8c7a59ba96..b63b8ff87d 100644
--- a/meta/recipes-bsp/u-boot/libubootenv_0.3.6.bb
+++ b/meta/recipes-bsp/u-boot/libubootenv_0.3.6.bb
@@ -10,11 +10,11 @@ LICENSE = "LGPL-2.1-or-later"
10LIC_FILES_CHKSUM = "file://LICENSES/LGPL-2.1-or-later.txt;md5=4fbd65380cdd255951079008b364516c" 10LIC_FILES_CHKSUM = "file://LICENSES/LGPL-2.1-or-later.txt;md5=4fbd65380cdd255951079008b364516c"
11SECTION = "libs" 11SECTION = "libs"
12 12
13SRC_URI = "git://github.com/sbabic/libubootenv;protocol=https;branch=master" 13SRC_URI = "git://github.com/sbabic/libubootenv;protocol=https;branch=master \
14 file://0001-Update-cmake_minimum_required-to-3.5.patch \
15 "
14SRCREV = "5507339628b5caf244e1ff9d58cb3fa534b16beb" 16SRCREV = "5507339628b5caf244e1ff9d58cb3fa534b16beb"
15 17
16S = "${WORKDIR}/git"
17
18inherit cmake lib_package 18inherit cmake lib_package
19 19
20EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release" 20EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release"
diff --git a/meta/recipes-bsp/u-boot/u-boot-common.inc b/meta/recipes-bsp/u-boot/u-boot-common.inc
index fd1eab5cdd..ea55545db3 100644
--- a/meta/recipes-bsp/u-boot/u-boot-common.inc
+++ b/meta/recipes-bsp/u-boot/u-boot-common.inc
@@ -12,11 +12,28 @@ PE = "1"
12 12
13# We use the revision in order to avoid having to fetch it from the 13# We use the revision in order to avoid having to fetch it from the
14# repo during parse 14# repo during parse
15SRCREV = "34820924edbc4ec7803eb89d9852f4b870fa760a" 15SRCREV = "e37de002fac3895e8d0b60ae2015e17bb33e2b5b"
16 16
17SRC_URI = "git://source.denx.de/u-boot/u-boot.git;protocol=https;branch=master;tag=v${PV}" 17SRC_URI = "\
18 git://source.denx.de/u-boot/u-boot.git;protocol=https;branch=master;tag=v${PV} \
19 file://0001-Makefile-add-dependency-from-lib-to-arch-ARCH-lib.patch \
20 file://0001-nxp-Prepare-macros-for-KVM-changes.patch \
21 file://0002-arm-io.h-Fix-io-accessors-for-KVM.patch \
22 file://0003-qemu-arm-Enable-virtualizable-IO-accessors.patch \
23"
24
25SRC_URI_RISCV = "\
26 file://u-boot-riscv-isa_clear.cfg \
27 ${@bb.utils.contains ("TUNE_FEATURES", "a", "file://u-boot-riscv-isa_a.cfg", "", d)} \
28 ${@bb.utils.contains ("TUNE_FEATURES", "f", "file://u-boot-riscv-isa_f.cfg", "", d)} \
29 ${@bb.utils.contains ("TUNE_FEATURES", "d", "file://u-boot-riscv-isa_d.cfg", "", d)} \
30 ${@bb.utils.contains_any("TUNE_FEATURES", "b zbb", "file://u-boot-riscv-isa_zbb.cfg", "", d)} \
31 ${@bb.utils.contains ("TUNE_FEATURES", "zicbom", "file://u-boot-riscv-isa_zicbom.cfg", "", d)} \
32 "
33
34SRC_URI:append:riscv32 = "${SRC_URI_RISCV}"
35SRC_URI:append:riscv64 = "${SRC_URI_RISCV}"
18 36
19S = "${WORKDIR}/git"
20B = "${WORKDIR}/build" 37B = "${WORKDIR}/build"
21 38
22inherit pkgconfig 39inherit pkgconfig
diff --git a/meta/recipes-bsp/u-boot/u-boot-tools_2025.04.bb b/meta/recipes-bsp/u-boot/u-boot-tools_2025.07.bb
index 7eaf721ca8..7eaf721ca8 100644
--- a/meta/recipes-bsp/u-boot/u-boot-tools_2025.04.bb
+++ b/meta/recipes-bsp/u-boot/u-boot-tools_2025.07.bb
diff --git a/meta/recipes-bsp/u-boot/u-boot.inc b/meta/recipes-bsp/u-boot/u-boot.inc
index 9464736b84..b7242de5de 100644
--- a/meta/recipes-bsp/u-boot/u-boot.inc
+++ b/meta/recipes-bsp/u-boot/u-boot.inc
@@ -192,16 +192,16 @@ uboot_install_config () {
192 config=$1 192 config=$1
193 type=$2 193 type=$2
194 194
195 install -D -m 644 ${B}/${config}/${UBOOT_BINARYNAME}-${type}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARYNAME}-${type}-${PV}-${PR}.${UBOOT_SUFFIX} 195 install -D -m 644 ${B}/${config}/${UBOOT_BINARYNAME}-${type}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX}
196 ln -sf ${UBOOT_BINARYNAME}-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type} 196 ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type}
197 ln -sf ${UBOOT_BINARYNAME}-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY} 197 ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}
198 198
199 # Install the uboot-initial-env 199 # Install the uboot-initial-env
200 if [ -n "${UBOOT_INITIAL_ENV}" ]; then 200 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
201 install -D -m 644 ${B}/${config}/u-boot-initial-env-${type} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} 201 install -D -m 644 ${B}/${config}/u-boot-initial-env-${type} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION}
202 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type} 202 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}
203 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${type} 203 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${type}
204 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV} 204 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}
205 fi 205 fi
206} 206}
207 207
@@ -211,9 +211,9 @@ uboot_install () {
211 211
212 # Install the uboot-initial-env 212 # Install the uboot-initial-env
213 if [ -n "${UBOOT_INITIAL_ENV}" ]; then 213 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
214 install -D -m 644 ${B}/u-boot-initial-env ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} 214 install -D -m 644 ${B}/u-boot-initial-env ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION}
215 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE} 215 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}
216 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV} 216 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}
217 fi 217 fi
218} 218}
219 219
@@ -221,9 +221,9 @@ uboot_install_elf_config () {
221 config=$1 221 config=$1
222 type=$2 222 type=$2
223 223
224 install -m 644 ${B}/${config}/${UBOOT_ELF} ${D}/boot/u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} 224 install -m 644 ${B}/${config}/${UBOOT_ELF} ${D}/boot/u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX}
225 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type} 225 ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type}
226 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${D}/boot/${UBOOT_BINARY} 226 ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${D}/boot/${UBOOT_BINARY}
227} 227}
228 228
229uboot_install_elf () { 229uboot_install_elf () {
@@ -235,9 +235,9 @@ uboot_install_spl_config () {
235 config=$1 235 config=$1
236 type=$2 236 type=$2
237 237
238 install -m 644 ${B}/${config}/${SPL_BINARY} ${D}/boot/${SPL_BINARYNAME}-${type}-${PV}-${PR}${SPL_DELIMITER}${SPL_SUFFIX} 238 install -m 644 ${B}/${config}/${SPL_BINARY} ${D}/boot/${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX}
239 ln -sf ${SPL_BINARYNAME}-${type}-${PV}-${PR}${SPL_DELIMITER}${SPL_SUFFIX} ${D}/boot/${SPL_BINARYFILE}-${type} 239 ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${D}/boot/${SPL_BINARYFILE}-${type}
240 ln -sf ${SPL_BINARYNAME}-${type}-${PV}-${PR}${SPL_DELIMITER}${SPL_SUFFIX} ${D}/boot/${SPL_BINARYFILE} 240 ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${D}/boot/${SPL_BINARYFILE}
241} 241}
242 242
243uboot_install_spl () { 243uboot_install_spl () {
@@ -282,10 +282,10 @@ do_deploy () {
282 fi 282 fi
283 283
284 if [ -e ${UNPACKDIR}/fw_env.config ] ; then 284 if [ -e ${UNPACKDIR}/fw_env.config ] ; then
285 install -D -m 644 ${UNPACKDIR}/fw_env.config ${DEPLOYDIR}/fw_env.config-${MACHINE}-${PV}-${PR} 285 install -D -m 644 ${UNPACKDIR}/fw_env.config ${DEPLOYDIR}/fw_env.config-${MACHINE}-${UBOOT_VERSION}
286 cd ${DEPLOYDIR} 286 cd ${DEPLOYDIR}
287 ln -sf fw_env.config-${MACHINE}-${PV}-${PR} fw_env.config-${MACHINE} 287 ln -sf fw_env.config-${MACHINE}-${UBOOT_VERSION} fw_env.config-${MACHINE}
288 ln -sf fw_env.config-${MACHINE}-${PV}-${PR} fw_env.config 288 ln -sf fw_env.config-${MACHINE}-${UBOOT_VERSION} fw_env.config
289 fi 289 fi
290 290
291 if [ -n "${UBOOT_ELF}" ] 291 if [ -n "${UBOOT_ELF}" ]
@@ -309,7 +309,6 @@ do_deploy () {
309 fi 309 fi
310 fi 310 fi
311 311
312
313 if [ -n "${SPL_BINARY}" ] 312 if [ -n "${SPL_BINARY}" ]
314 then 313 then
315 if [ -n "${UBOOT_CONFIG}" ] 314 if [ -n "${UBOOT_CONFIG}" ]
@@ -355,19 +354,19 @@ uboot_deploy_config () {
355 config=$1 354 config=$1
356 type=$2 355 type=$2
357 356
358 install -D -m 644 ${B}/${config}/${UBOOT_BINARYNAME}-${type}.${UBOOT_SUFFIX} ${DEPLOYDIR}/${UBOOT_BINARYNAME}-${type}-${PV}-${PR}.${UBOOT_SUFFIX} 357 install -D -m 644 ${B}/${config}/${UBOOT_BINARYNAME}-${type}.${UBOOT_SUFFIX} ${DEPLOYDIR}/${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX}
359 cd ${DEPLOYDIR} 358 cd ${DEPLOYDIR}
360 ln -sf ${UBOOT_BINARYNAME}-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}-${type} 359 ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}-${type}
361 ln -sf ${UBOOT_BINARYNAME}-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK} 360 ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}
362 ln -sf ${UBOOT_BINARYNAME}-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_BINARY}-${type} 361 ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${UBOOT_BINARY}-${type}
363 ln -sf ${UBOOT_BINARYNAME}-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_BINARY} 362 ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${UBOOT_BINARY}
364 363
365 # Deploy the uboot-initial-env 364 # Deploy the uboot-initial-env
366 if [ -n "${UBOOT_INITIAL_ENV}" ]; then 365 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
367 install -D -m 644 ${B}/${config}/u-boot-initial-env-${type} ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} 366 install -D -m 644 ${B}/${config}/u-boot-initial-env-${type} ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION}
368 cd ${DEPLOYDIR} 367 cd ${DEPLOYDIR}
369 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${UBOOT_INITIAL_ENV}-${MACHINE}-${type} 368 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}
370 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${UBOOT_INITIAL_ENV}-${type} 369 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} ${UBOOT_INITIAL_ENV}-${type}
371 fi 370 fi
372} 371}
373 372
@@ -381,10 +380,10 @@ uboot_deploy () {
381 380
382 # Deploy the uboot-initial-env 381 # Deploy the uboot-initial-env
383 if [ -n "${UBOOT_INITIAL_ENV}" ]; then 382 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
384 install -D -m 644 ${B}/u-boot-initial-env ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} 383 install -D -m 644 ${B}/u-boot-initial-env ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION}
385 cd ${DEPLOYDIR} 384 cd ${DEPLOYDIR}
386 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${UBOOT_INITIAL_ENV}-${MACHINE} 385 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION} ${UBOOT_INITIAL_ENV}-${MACHINE}
387 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${UBOOT_INITIAL_ENV} 386 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION} ${UBOOT_INITIAL_ENV}
388 fi 387 fi
389} 388}
390 389
@@ -392,11 +391,11 @@ uboot_deploy_elf_config () {
392 config=$1 391 config=$1
393 type=$2 392 type=$2
394 393
395 install -m 644 ${B}/${config}/${UBOOT_ELF} ${DEPLOYDIR}/u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} 394 install -m 644 ${B}/${config}/${UBOOT_ELF} ${DEPLOYDIR}/u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX}
396 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}-${type} 395 ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}-${type}
397 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_BINARY} 396 ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}
398 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}-${type} 397 ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}-${type}
399 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK} 398 ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}
400} 399}
401 400
402uboot_deploy_elf () { 401uboot_deploy_elf () {
@@ -409,12 +408,12 @@ uboot_deploy_spl_config () {
409 config=$1 408 config=$1
410 type=$2 409 type=$2
411 410
412 install -m 644 ${B}/${config}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_BINARYNAME}-${type}-${PV}-${PR}${SPL_DELIMITER}${SPL_SUFFIX} 411 install -m 644 ${B}/${config}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX}
413 rm -f ${DEPLOYDIR}/${SPL_BINARYFILE} ${DEPLOYDIR}/${SPL_SYMLINK} 412 rm -f ${DEPLOYDIR}/${SPL_BINARYFILE} ${DEPLOYDIR}/${SPL_SYMLINK}
414 ln -sf ${SPL_BINARYNAME}-${type}-${PV}-${PR}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_BINARYFILE}-${type} 413 ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_BINARYFILE}-${type}
415 ln -sf ${SPL_BINARYNAME}-${type}-${PV}-${PR}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_BINARYFILE} 414 ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_BINARYFILE}
416 ln -sf ${SPL_BINARYNAME}-${type}-${PV}-${PR}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_SYMLINK}-${type} 415 ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_SYMLINK}-${type}
417 ln -sf ${SPL_BINARYNAME}-${type}-${PV}-${PR}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_SYMLINK} 416 ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_SYMLINK}
418} 417}
419 418
420uboot_deploy_spl () { 419uboot_deploy_spl () {
diff --git a/meta/recipes-bsp/u-boot/u-boot_2025.04.bb b/meta/recipes-bsp/u-boot/u-boot_2025.04.bb
deleted file mode 100644
index db8b2d58b4..0000000000
--- a/meta/recipes-bsp/u-boot/u-boot_2025.04.bb
+++ /dev/null
@@ -1,4 +0,0 @@
1require u-boot-common.inc
2require u-boot.inc
3
4DEPENDS += "bc-native dtc-native gnutls-native python3-pyelftools-native"
diff --git a/meta/recipes-bsp/u-boot/u-boot_2025.07.bb b/meta/recipes-bsp/u-boot/u-boot_2025.07.bb
new file mode 100644
index 0000000000..25f264c961
--- /dev/null
+++ b/meta/recipes-bsp/u-boot/u-boot_2025.07.bb
@@ -0,0 +1,8 @@
1require u-boot-common.inc
2require u-boot.inc
3
4DEPENDS += "bc-native dtc-native gnutls-native python3-pyelftools-native"
5
6# workarounds for aarch64 kvm qemu boot regressions
7SRC_URI:append:qemuarm64 = " file://disable-CONFIG_BLOBLIST.cfg"
8SRC_URI:append:genericarm64 = " file://disable-CONFIG_BLOBLIST.cfg"
diff --git a/meta/recipes-bsp/v86d/v86d_0.1.10.bb b/meta/recipes-bsp/v86d/v86d_0.1.10.bb
index 6151f0a7e2..3bc9b24487 100644
--- a/meta/recipes-bsp/v86d/v86d_0.1.10.bb
+++ b/meta/recipes-bsp/v86d/v86d_0.1.10.bb
@@ -14,7 +14,6 @@ SRC_URI = "http://snapshot.debian.org/archive/debian/20110427T035506Z/pool/main/
14 file://Support-for-cross-compilation.patch \ 14 file://Support-for-cross-compilation.patch \
15" 15"
16 16
17SRC_URI[md5sum] = "889686ec8424468fe0d205742e77a4c2"
18SRC_URI[sha256sum] = "93575c82e4307d8c4c370ec6b767f5cf87e527b2378146d652a6d8e25d5bdbc5" 17SRC_URI[sha256sum] = "93575c82e4307d8c4c370ec6b767f5cf87e527b2378146d652a6d8e25d5bdbc5"
19 18
20PACKAGE_ARCH = "${MACHINE_ARCH}" 19PACKAGE_ARCH = "${MACHINE_ARCH}"