From c461b245076be066512ac7b074020f6032056b8d Mon Sep 17 00:00:00 2001 From: Ming Liu Date: Thu, 18 Mar 2021 13:47:58 +0100 Subject: kernel-fitimage.bbclass: support both KERNEL_DEVICETREE/EXTERNAL_KERNEL_DEVICETREE There are user cases that a developer wants to add both in-tree and out-of-tree devicetrees to fitimage, and this is quite normal, for instance, a developer might need the devicetrees from kernel source meanwhile maintaining his/her own devicetree overlays to be applied on top of them. To support that, we now allow KERNEL_DEVICETREE and EXTERNAL_KERNEL_DEVICETREE to be both set in configuration files, and the devicetrees in EXTERNAL_KERNEL_DEVICETREE have higher priority to override the same names in KERNEL_DEVICETREE. Signed-off-by: Ming Liu Signed-off-by: Richard Purdie --- meta/classes/kernel-fitimage.bbclass | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'meta/classes/kernel-fitimage.bbclass') diff --git a/meta/classes/kernel-fitimage.bbclass b/meta/classes/kernel-fitimage.bbclass index f5082c93df..b9d8270027 100644 --- a/meta/classes/kernel-fitimage.bbclass +++ b/meta/classes/kernel-fitimage.bbclass @@ -535,13 +535,19 @@ fitimage_assemble() { # Step 2: Prepare a DTB image section # - if [ -z "${EXTERNAL_KERNEL_DEVICETREE}" ] && [ -n "${KERNEL_DEVICETREE}" ]; then + if [ -n "${KERNEL_DEVICETREE}" ]; then dtbcount=1 for DTB in ${KERNEL_DEVICETREE}; do if echo ${DTB} | grep -q '/dts/'; then bbwarn "${DTB} contains the full path to the the dts file, but only the dtb name should be used." DTB=`basename ${DTB} | sed 's,\.dts$,.dtb,g'` fi + + # Skip ${DTB} if it's also provided in ${EXTERNAL_KERNEL_DEVICETREE} + if [ -n "${EXTERNAL_KERNEL_DEVICETREE}" ] && [ -s ${EXTERNAL_KERNEL_DEVICETREE}/${DTB} ]; then + continue + fi + DTB_PATH="arch/${ARCH}/boot/dts/${DTB}" if [ ! -e "${DTB_PATH}" ]; then DTB_PATH="arch/${ARCH}/boot/${DTB}" @@ -769,4 +775,4 @@ python () { bb.build.deltask('do_assemble_fitimage', d) bb.build.deltask('generate_rsa_keys', d) bb.build.addtask('generate_rsa_keys', 'do_assemble_fitimage_initramfs', 'do_bundle_initramfs', d) -} \ No newline at end of file +} -- cgit 1.2.3-korg