]> code.ossystems Code Review - openembedded-core.git/commitdiff
kernel-fitimage.bbclass: support both KERNEL_DEVICETREE/EXTERNAL_KERNEL_DEVICETREE
authorMing Liu <liu.ming50@gmail.com>
Thu, 18 Mar 2021 12:47:58 +0000 (13:47 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 20 Mar 2021 18:50:05 +0000 (18:50 +0000)
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 <liu.ming50@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/kernel-fitimage.bbclass

index f5082c93dfac3ccb7739c5d9bd37d2698b242849..b9d82700274a3d4ebe2613def49c17542e951999 100644 (file)
@@ -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
+}