diff mbox series

[master,3/3] meta-ti-bsp: convert DTB prefix matching into class

Message ID 20250725204836.2549216-3-denis@denix.org
State Under Review
Delegated to: Ryan Eatmon
Headers show
Series [master,1/3] meta-ti-bsp: move KERNEL_DTBVENDORED settings | expand

Commit Message

Denys Dmytriyenko July 25, 2025, 8:48 p.m. UTC
From: Denys Dmytriyenko <denys@konsulko.com>

Convert devicetree prefix matching functionality into a generic
class that can be used by the kernel and wic images. That way
dynamically generated KERNEL_DEVICETREE list will be the same
when populating /boot dir of rootfs and/or FAT boot partition
of a wic image.

Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
---
 .../ti-devicetree-prefix.bbclass}                         | 7 +++++--
 meta-ti-bsp/conf/machine/include/ti-soc.inc               | 8 ++++++++
 meta-ti-bsp/recipes-kernel/linux/linux-ti-next_git.bb     | 2 --
 meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_6.12.bb | 1 -
 meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_6.6.bb  | 1 -
 meta-ti-bsp/recipes-kernel/linux/ti-kernel-fitimage.bb    | 2 +-
 6 files changed, 14 insertions(+), 7 deletions(-)
 rename meta-ti-bsp/{recipes-kernel/linux/ti-kernel-devicetree-prefix.inc => classes/ti-devicetree-prefix.bbclass} (87%)
diff mbox series

Patch

diff --git a/meta-ti-bsp/recipes-kernel/linux/ti-kernel-devicetree-prefix.inc b/meta-ti-bsp/classes/ti-devicetree-prefix.bbclass
similarity index 87%
rename from meta-ti-bsp/recipes-kernel/linux/ti-kernel-devicetree-prefix.inc
rename to meta-ti-bsp/classes/ti-devicetree-prefix.bbclass
index 2d7be280..5858cc65 100644
--- a/meta-ti-bsp/recipes-kernel/linux/ti-kernel-devicetree-prefix.inc
+++ b/meta-ti-bsp/classes/ti-devicetree-prefix.bbclass
@@ -1,3 +1,4 @@ 
+# Generate list of DTBs from the kernel source
 def get_dtbs_from_kernel(dts_dir, dts_prefix):
     import os
     import glob
@@ -17,6 +18,8 @@  def get_dtbs_from_kernel(dts_dir, dts_prefix):
             matches.append(filename)
     return ' '.join(matches)
 
+# Generate list of "merged" DTBs from the kernel source
+# It is TI custom feature to merge DTB overlays into a single DTB
 def get_merge_dtbs_from_kernel(dts_dir, dts_pattern):
     import os
     matches = []
@@ -32,9 +35,9 @@  def get_merge_dtbs_from_kernel(dts_dir, dts_pattern):
                     matches.append(pattern)
     return ' '.join(matches)
 
-KERNEL_DEVICETREE_DTBMERGE ?= ""
-
 KERNEL_DEVICETREE = " \
     ${@get_dtbs_from_kernel('${STAGING_KERNEL_DIR}/arch/${ARCH}/boot/dts/', '${KERNEL_DEVICETREE_PREFIX}')} \
     ${@get_merge_dtbs_from_kernel('${STAGING_KERNEL_DIR}/arch/${ARCH}/boot/dts/', '${KERNEL_DEVICETREE_DTBMERGE}')} \
 "
+
+do_image_wic[depends] += "virtual/kernel:do_shared_workdir"
diff --git a/meta-ti-bsp/conf/machine/include/ti-soc.inc b/meta-ti-bsp/conf/machine/include/ti-soc.inc
index e605d14b..3f11e31d 100644
--- a/meta-ti-bsp/conf/machine/include/ti-soc.inc
+++ b/meta-ti-bsp/conf/machine/include/ti-soc.inc
@@ -22,3 +22,11 @@  KERNEL_DTBVENDORED = "1"
 
 # Also build a non-vendored list w/o dir structure
 DEVICETREE_FILES = "${@' '.join([os.path.basename(f) for f in d.getVar("KERNEL_DEVICETREE").split()])}"
+
+KERNEL_DEVICETREE_DTBMERGE ?= ""
+
+# Dynamically build DTBs list based on prefix matching
+CLASS_DEVICETREE_PREFIX = "${@ 'ti-devicetree-prefix' if d.getVar('KERNEL_DEVICETREE_PREFIX') else ''}"
+
+KERNEL_CLASSES += "${CLASS_DEVICETREE_PREFIX}"
+IMAGE_CLASSES += "${CLASS_DEVICETREE_PREFIX}"
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-next_git.bb b/meta-ti-bsp/recipes-kernel/linux/linux-ti-next_git.bb
index 1feb7564..60b647f1 100644
--- a/meta-ti-bsp/recipes-kernel/linux/linux-ti-next_git.bb
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-next_git.bb
@@ -2,8 +2,6 @@  require linux-ti-mainline_git.bb
 
 SUMMARY = "Linux-next kernel for TI devices"
 
-include ${@ 'recipes-kernel/linux/ti-kernel-devicetree-prefix.inc' if d.getVar('KERNEL_DEVICETREE_PREFIX') else ''}
-
 # 6.6.0-rc3+ version
 SRCREV = "6465e260f48790807eef06b583b38ca9789b6072"
 PV = "6.6.0-rc3+git"
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_6.12.bb b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_6.12.bb
index 40742fe6..db180e11 100644
--- a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_6.12.bb
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_6.12.bb
@@ -7,7 +7,6 @@  inherit ${KERNEL_BASE_CLASS}
 
 require recipes-kernel/linux/setup-defconfig.inc
 require recipes-kernel/linux/ti-kernel.inc
-include ${@ 'recipes-kernel/linux/ti-kernel-devicetree-prefix.inc' if d.getVar('KERNEL_DEVICETREE_PREFIX') else ''}
 include ${@ 'recipes-kernel/linux/ti-extras.inc' if d.getVar('TI_EXTRAS') else ''}
 
 DEPENDS += "gmp-native libmpc-native"
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_6.6.bb b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_6.6.bb
index d550a031..321cdcbb 100644
--- a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_6.6.bb
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_6.6.bb
@@ -7,7 +7,6 @@  inherit ${KERNEL_BASE_CLASS}
 
 require recipes-kernel/linux/setup-defconfig.inc
 require recipes-kernel/linux/ti-kernel.inc
-include ${@ 'recipes-kernel/linux/ti-kernel-devicetree-prefix.inc' if d.getVar('KERNEL_DEVICETREE_PREFIX') else ''}
 include ${@ 'recipes-kernel/linux/ti-extras.inc' if d.getVar('TI_EXTRAS') else ''}
 
 DEPENDS += "gmp-native libmpc-native"
diff --git a/meta-ti-bsp/recipes-kernel/linux/ti-kernel-fitimage.bb b/meta-ti-bsp/recipes-kernel/linux/ti-kernel-fitimage.bb
index fc20b713..cc90d390 100644
--- a/meta-ti-bsp/recipes-kernel/linux/ti-kernel-fitimage.bb
+++ b/meta-ti-bsp/recipes-kernel/linux/ti-kernel-fitimage.bb
@@ -7,6 +7,6 @@  require recipes-kernel/linux/linux-yocto-fitimage.bb
 
 inherit ti-secdev
 
-include ${@ 'recipes-kernel/linux/ti-kernel-devicetree-prefix.inc' if d.getVar('KERNEL_DEVICETREE_PREFIX') else ''}
+inherit ${@ 'ti-devicetree-prefix' if d.getVar('KERNEL_DEVICETREE_PREFIX') else ''}
 
 do_compile[depends] += "virtual/kernel:do_shared_workdir"