* [PATCH v2 1/2] u-boot: relocate SRC_URI_RISCV into recipe
2026-01-07 15:14 [PATCH v2 0/2] Move RISC-V recipe-specific configuration out of common includes João Marcos Costa
@ 2026-01-07 15:14 ` João Marcos Costa
2026-01-07 15:14 ` [PATCH v2 2/2] linux-yocto: relocate KERNEL_FEATURES_RISCV João Marcos Costa
2026-01-14 10:01 ` [PATCH v2 0/2] Move RISC-V recipe-specific configuration out of common includes Joao Marcos Costa
2 siblings, 0 replies; 7+ messages in thread
From: João Marcos Costa @ 2026-01-07 15:14 UTC (permalink / raw)
To: openembedded-core; +Cc: thomas.petazzoni, João Marcos Costa
In a custom u-boot recipe that requires u-boot-common.inc, the config
fragments end up in SRC_URI. However, the custom recipe's FILESPATH does
not contain the path to oe-core's u-boot directory (as expected), which
leads to the error below:
ERROR: .../build/../meta-custom/recipes-bsp/u-boot/u-boot-custom_2025.10.bb:
Unable to get checksum for u-boot-custom SRC_URI entry u-boot-riscv-isa_clear.cfg: file could not be found
The following paths were searched:
(...)
Move SRC_URI_RISCV - along with the appends - out of the common
definitions.
Signed-off-by: João Marcos Costa <joaomarcos.costa@bootlin.com>
---
meta/recipes-bsp/u-boot/u-boot-common.inc | 12 ------------
meta/recipes-bsp/u-boot/u-boot_2025.10.bb | 12 ++++++++++++
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/meta/recipes-bsp/u-boot/u-boot-common.inc b/meta/recipes-bsp/u-boot/u-boot-common.inc
index 93ff0ca6ca..08cd189f64 100644
--- a/meta/recipes-bsp/u-boot/u-boot-common.inc
+++ b/meta/recipes-bsp/u-boot/u-boot-common.inc
@@ -16,18 +16,6 @@ SRCREV = "e50b1e8715011def8aff1588081a2649a2c6cd47"
SRC_URI = "git://source.denx.de/u-boot/u-boot.git;protocol=https;branch=master;tag=v${PV}"
-SRC_URI_RISCV = "\
- file://u-boot-riscv-isa_clear.cfg \
- ${@bb.utils.contains ("TUNE_FEATURES", "a", "file://u-boot-riscv-isa_a.cfg", "", d)} \
- ${@bb.utils.contains ("TUNE_FEATURES", "f", "file://u-boot-riscv-isa_f.cfg", "", d)} \
- ${@bb.utils.contains ("TUNE_FEATURES", "d", "file://u-boot-riscv-isa_d.cfg", "", d)} \
- ${@bb.utils.contains_any("TUNE_FEATURES", "b zbb", "file://u-boot-riscv-isa_zbb.cfg", "", d)} \
- ${@bb.utils.contains ("TUNE_FEATURES", "zicbom", "file://u-boot-riscv-isa_zicbom.cfg", "", d)} \
- "
-
-SRC_URI:append:riscv32 = "${SRC_URI_RISCV}"
-SRC_URI:append:riscv64 = "${SRC_URI_RISCV}"
-
B = "${WORKDIR}/build"
inherit pkgconfig
diff --git a/meta/recipes-bsp/u-boot/u-boot_2025.10.bb b/meta/recipes-bsp/u-boot/u-boot_2025.10.bb
index 25f264c961..5259fd5832 100644
--- a/meta/recipes-bsp/u-boot/u-boot_2025.10.bb
+++ b/meta/recipes-bsp/u-boot/u-boot_2025.10.bb
@@ -6,3 +6,15 @@ DEPENDS += "bc-native dtc-native gnutls-native python3-pyelftools-native"
# workarounds for aarch64 kvm qemu boot regressions
SRC_URI:append:qemuarm64 = " file://disable-CONFIG_BLOBLIST.cfg"
SRC_URI:append:genericarm64 = " file://disable-CONFIG_BLOBLIST.cfg"
+
+SRC_URI_RISCV = "\
+ file://u-boot-riscv-isa_clear.cfg \
+ ${@bb.utils.contains ("TUNE_FEATURES", "a", "file://u-boot-riscv-isa_a.cfg", "", d)} \
+ ${@bb.utils.contains ("TUNE_FEATURES", "f", "file://u-boot-riscv-isa_f.cfg", "", d)} \
+ ${@bb.utils.contains ("TUNE_FEATURES", "d", "file://u-boot-riscv-isa_d.cfg", "", d)} \
+ ${@bb.utils.contains_any("TUNE_FEATURES", "b zbb", "file://u-boot-riscv-isa_zbb.cfg", "", d)} \
+ ${@bb.utils.contains ("TUNE_FEATURES", "zicbom", "file://u-boot-riscv-isa_zicbom.cfg", "", d)} \
+ "
+
+SRC_URI:append:riscv32 = "${SRC_URI_RISCV}"
+SRC_URI:append:riscv64 = "${SRC_URI_RISCV}"
--
2.47.0
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH v2 2/2] linux-yocto: relocate KERNEL_FEATURES_RISCV
2026-01-07 15:14 [PATCH v2 0/2] Move RISC-V recipe-specific configuration out of common includes João Marcos Costa
2026-01-07 15:14 ` [PATCH v2 1/2] u-boot: relocate SRC_URI_RISCV into recipe João Marcos Costa
@ 2026-01-07 15:14 ` João Marcos Costa
2026-02-10 9:05 ` Joao Marcos Costa
2026-01-14 10:01 ` [PATCH v2 0/2] Move RISC-V recipe-specific configuration out of common includes Joao Marcos Costa
2 siblings, 1 reply; 7+ messages in thread
From: João Marcos Costa @ 2026-01-07 15:14 UTC (permalink / raw)
To: openembedded-core; +Cc: thomas.petazzoni, João Marcos Costa
In a custom linux recipe that requires linux-yocto.inc, the metadata
files (*.scc) end up in KERNEL_FEATURES. However, the custom recipe's
FILESPATH does not contain the path to oe-core's linux-yocto directory
(as expected), which leads to the error below:
ERROR: linux-custom-6.12.15+git-r0 do_kernel_metadata:
Feature 'arch/riscv/tunes/riscv-isa-clear.scc' not found, this will cause configuration failures.
ERROR: linux-custom-6.12.15+git-r0 do_kernel_metadata:
Check the SRC_URI for meta-data repositories or directories that may be missing
Move KERNEL_FEATURES_RISCV - along with the appends - to a new file:
linux-yocto-features.inc.
Signed-off-by: João Marcos Costa <joaomarcos.costa@bootlin.com>
---
meta/recipes-kernel/linux/linux-yocto-dev.bb | 1 +
.../linux/linux-yocto-features.inc | 15 +++++++++++++++
meta/recipes-kernel/linux/linux-yocto-rt_6.12.bb | 1 +
meta/recipes-kernel/linux/linux-yocto-rt_6.16.bb | 1 +
meta/recipes-kernel/linux/linux-yocto-rt_6.18.bb | 1 +
.../linux/linux-yocto-tiny_6.12.bb | 1 +
.../linux/linux-yocto-tiny_6.16.bb | 1 +
.../linux/linux-yocto-tiny_6.18.bb | 1 +
meta/recipes-kernel/linux/linux-yocto.inc | 16 ----------------
meta/recipes-kernel/linux/linux-yocto_6.12.bb | 1 +
meta/recipes-kernel/linux/linux-yocto_6.16.bb | 1 +
meta/recipes-kernel/linux/linux-yocto_6.18.bb | 1 +
12 files changed, 25 insertions(+), 16 deletions(-)
create mode 100644 meta/recipes-kernel/linux/linux-yocto-features.inc
diff --git a/meta/recipes-kernel/linux/linux-yocto-dev.bb b/meta/recipes-kernel/linux/linux-yocto-dev.bb
index fb4e0864d2..a2e5b8308b 100644
--- a/meta/recipes-kernel/linux/linux-yocto-dev.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-dev.bb
@@ -10,6 +10,7 @@
inherit kernel
require recipes-kernel/linux/linux-yocto.inc
+require recipes-kernel/linux/linux-yocto-features.inc
# provide this .inc to set specific revisions
include recipes-kernel/linux/linux-yocto-dev-revisions.inc
diff --git a/meta/recipes-kernel/linux/linux-yocto-features.inc b/meta/recipes-kernel/linux/linux-yocto-features.inc
new file mode 100644
index 0000000000..300add606b
--- /dev/null
+++ b/meta/recipes-kernel/linux/linux-yocto-features.inc
@@ -0,0 +1,15 @@
+KERNEL_FEATURES_RISCV = "\
+ arch/riscv/tunes/riscv-isa-clear.scc \
+ ${@bb.utils.contains( 'TUNE_FEATURES', 'rv 32 i m a', 'arch/riscv/tunes/riscv-isa-rv32i.scc', '', d)} \
+ ${@bb.utils.contains( 'TUNE_FEATURES', 'rv 64 i m a', 'arch/riscv/tunes/riscv-isa-rv64i.scc', '', d)} \
+ ${@bb.utils.contains( 'TUNE_FEATURES', 'f d', 'arch/riscv/tunes/riscv-isa-fpu.scc', '', d)} \
+ ${@bb.utils.contains( 'TUNE_FEATURES', 'c', 'arch/riscv/tunes/riscv-isa-c.scc', '', d)} \
+ ${@bb.utils.contains( 'TUNE_FEATURES', 'v', 'arch/riscv/tunes/riscv-isa-v.scc', '', d)} \
+ ${@bb.utils.contains_any('TUNE_FEATURES', 'b zba', 'arch/riscv/tunes/riscv-isa-zba.scc', '', d)} \
+ ${@bb.utils.contains_any('TUNE_FEATURES', 'b zbb', 'arch/riscv/tunes/riscv-isa-zbb.scc', '', d)} \
+ ${@bb.utils.contains( 'TUNE_FEATURES', 'zbc', 'arch/riscv/tunes/riscv-isa-zbc.scc', '', d)} \
+ ${@bb.utils.contains( 'TUNE_FEATURES', 'zicbom', 'arch/riscv/tunes/riscv-isa-zicbom.scc', '', d)} \
+ "
+
+KERNEL_FEATURES:append:riscv32 = " ${KERNEL_FEATURES_RISCV}"
+KERNEL_FEATURES:append:riscv64 = " ${KERNEL_FEATURES_RISCV}"
diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_6.12.bb b/meta/recipes-kernel/linux/linux-yocto-rt_6.12.bb
index 9ac8507f9f..7dcf15a265 100644
--- a/meta/recipes-kernel/linux/linux-yocto-rt_6.12.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-rt_6.12.bb
@@ -1,6 +1,7 @@
KBRANCH ?= "v6.12/standard/preempt-rt/base"
require recipes-kernel/linux/linux-yocto.inc
+require recipes-kernel/linux/linux-yocto-features.inc
# CVE exclusions
include recipes-kernel/linux/cve-exclusion_6.12.inc
diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_6.16.bb b/meta/recipes-kernel/linux/linux-yocto-rt_6.16.bb
index 1230e4e805..79ea0c5492 100644
--- a/meta/recipes-kernel/linux/linux-yocto-rt_6.16.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-rt_6.16.bb
@@ -1,6 +1,7 @@
KBRANCH ?= "v6.16/standard/preempt-rt/base"
require recipes-kernel/linux/linux-yocto.inc
+require recipes-kernel/linux/linux-yocto-features.inc
# CVE exclusions
include recipes-kernel/linux/cve-exclusion_6.16.inc
diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_6.18.bb b/meta/recipes-kernel/linux/linux-yocto-rt_6.18.bb
index 32ed29f25e..ad6fa16bd3 100644
--- a/meta/recipes-kernel/linux/linux-yocto-rt_6.18.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-rt_6.18.bb
@@ -1,6 +1,7 @@
KBRANCH ?= "v6.18/standard/preempt-rt/base"
require recipes-kernel/linux/linux-yocto.inc
+require recipes-kernel/linux/linux-yocto-features.inc
# CVE exclusions
include recipes-kernel/linux/cve-exclusion_6.18.inc
diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_6.12.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_6.12.bb
index 940561352c..d401934e97 100644
--- a/meta/recipes-kernel/linux/linux-yocto-tiny_6.12.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-tiny_6.12.bb
@@ -4,6 +4,7 @@ LINUX_KERNEL_TYPE = "tiny"
KCONFIG_MODE = "--allnoconfig"
require recipes-kernel/linux/linux-yocto.inc
+require recipes-kernel/linux/linux-yocto-features.inc
# CVE exclusions
include recipes-kernel/linux/cve-exclusion_6.12.inc
diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_6.16.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_6.16.bb
index ffa15b0c1b..4ab250bf70 100644
--- a/meta/recipes-kernel/linux/linux-yocto-tiny_6.16.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-tiny_6.16.bb
@@ -4,6 +4,7 @@ LINUX_KERNEL_TYPE = "tiny"
KCONFIG_MODE = "--allnoconfig"
require recipes-kernel/linux/linux-yocto.inc
+require recipes-kernel/linux/linux-yocto-features.inc
# CVE exclusions
include recipes-kernel/linux/cve-exclusion_6.16.inc
diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_6.18.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_6.18.bb
index 2afdc02467..661aad0a95 100644
--- a/meta/recipes-kernel/linux/linux-yocto-tiny_6.18.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-tiny_6.18.bb
@@ -4,6 +4,7 @@ LINUX_KERNEL_TYPE = "tiny"
KCONFIG_MODE = "--allnoconfig"
require recipes-kernel/linux/linux-yocto.inc
+require recipes-kernel/linux/linux-yocto-features.inc
# CVE exclusions
include recipes-kernel/linux/cve-exclusion_6.18.inc
diff --git a/meta/recipes-kernel/linux/linux-yocto.inc b/meta/recipes-kernel/linux/linux-yocto.inc
index 4d0a726bb6..389329030d 100644
--- a/meta/recipes-kernel/linux/linux-yocto.inc
+++ b/meta/recipes-kernel/linux/linux-yocto.inc
@@ -37,22 +37,6 @@ KERNEL_FEATURES:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'efi', 'cfg/
KERNEL_FEATURES:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'numa', 'features/numa/numa.scc', '', d)}"
KERNEL_FEATURES:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'vfat', 'cfg/fs/vfat.scc', '', d)}"
-KERNEL_FEATURES_RISCV = "\
- arch/riscv/tunes/riscv-isa-clear.scc \
- ${@bb.utils.contains( 'TUNE_FEATURES', 'rv 32 i m a', 'arch/riscv/tunes/riscv-isa-rv32i.scc', '', d)} \
- ${@bb.utils.contains( 'TUNE_FEATURES', 'rv 64 i m a', 'arch/riscv/tunes/riscv-isa-rv64i.scc', '', d)} \
- ${@bb.utils.contains( 'TUNE_FEATURES', 'f d', 'arch/riscv/tunes/riscv-isa-fpu.scc', '', d)} \
- ${@bb.utils.contains( 'TUNE_FEATURES', 'c', 'arch/riscv/tunes/riscv-isa-c.scc', '', d)} \
- ${@bb.utils.contains( 'TUNE_FEATURES', 'v', 'arch/riscv/tunes/riscv-isa-v.scc', '', d)} \
- ${@bb.utils.contains_any('TUNE_FEATURES', 'b zba', 'arch/riscv/tunes/riscv-isa-zba.scc', '', d)} \
- ${@bb.utils.contains_any('TUNE_FEATURES', 'b zbb', 'arch/riscv/tunes/riscv-isa-zbb.scc', '', d)} \
- ${@bb.utils.contains( 'TUNE_FEATURES', 'zbc', 'arch/riscv/tunes/riscv-isa-zbc.scc', '', d)} \
- ${@bb.utils.contains( 'TUNE_FEATURES', 'zicbom', 'arch/riscv/tunes/riscv-isa-zicbom.scc', '', d)} \
- "
-
-KERNEL_FEATURES:append:riscv32 = " ${KERNEL_FEATURES_RISCV}"
-KERNEL_FEATURES:append:riscv64 = " ${KERNEL_FEATURES_RISCV}"
-
# A KMACHINE is the mapping of a yocto $MACHINE to what is built
# by the kernel. This is typically the branch that should be built,
# and it can be specific to the machine or shared
diff --git a/meta/recipes-kernel/linux/linux-yocto_6.12.bb b/meta/recipes-kernel/linux/linux-yocto_6.12.bb
index 84419f8c78..07b9084c05 100644
--- a/meta/recipes-kernel/linux/linux-yocto_6.12.bb
+++ b/meta/recipes-kernel/linux/linux-yocto_6.12.bb
@@ -1,6 +1,7 @@
KBRANCH ?= "v6.12/standard/base"
require recipes-kernel/linux/linux-yocto.inc
+require recipes-kernel/linux/linux-yocto-features.inc
# CVE exclusions
include recipes-kernel/linux/cve-exclusion.inc
diff --git a/meta/recipes-kernel/linux/linux-yocto_6.16.bb b/meta/recipes-kernel/linux/linux-yocto_6.16.bb
index 408f14b451..b823e13e8a 100644
--- a/meta/recipes-kernel/linux/linux-yocto_6.16.bb
+++ b/meta/recipes-kernel/linux/linux-yocto_6.16.bb
@@ -1,6 +1,7 @@
KBRANCH ?= "v6.16/standard/base"
require recipes-kernel/linux/linux-yocto.inc
+require recipes-kernel/linux/linux-yocto-features.inc
# CVE exclusions
include recipes-kernel/linux/cve-exclusion.inc
diff --git a/meta/recipes-kernel/linux/linux-yocto_6.18.bb b/meta/recipes-kernel/linux/linux-yocto_6.18.bb
index 562a997020..e82edc27c3 100644
--- a/meta/recipes-kernel/linux/linux-yocto_6.18.bb
+++ b/meta/recipes-kernel/linux/linux-yocto_6.18.bb
@@ -1,6 +1,7 @@
KBRANCH ?= "v6.18/standard/base"
require recipes-kernel/linux/linux-yocto.inc
+require recipes-kernel/linux/linux-yocto-features.inc
# CVE exclusions
include recipes-kernel/linux/cve-exclusion.inc
--
2.47.0
^ permalink raw reply related [flat|nested] 7+ messages in thread