diff options
author | Ming Liu <liu.ming50@gmail.com> | 2021-03-18 13:47:58 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2021-03-20 18:54:56 +0000 |
commit | 959291c84963420922155a8f57b52b5e774648ef (patch) | |
tree | ab58ebda492b46e7976d22ecd42c6596d5d2c1b5 /meta/classes/kernel-fitimage.bbclass | |
parent | b24332906d7d3f057a1b75a2fc6a5704396aa7b4 (diff) | |
download | poky-959291c84963420922155a8f57b52b5e774648ef.tar.gz |
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.
(From OE-Core rev: c461b245076be066512ac7b074020f6032056b8d)
Signed-off-by: Ming Liu <liu.ming50@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/kernel-fitimage.bbclass')
-rw-r--r-- | meta/classes/kernel-fitimage.bbclass | 10 |
1 files changed, 8 insertions, 2 deletions
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() { | |||
535 | # Step 2: Prepare a DTB image section | 535 | # Step 2: Prepare a DTB image section |
536 | # | 536 | # |
537 | 537 | ||
538 | if [ -z "${EXTERNAL_KERNEL_DEVICETREE}" ] && [ -n "${KERNEL_DEVICETREE}" ]; then | 538 | if [ -n "${KERNEL_DEVICETREE}" ]; then |
539 | dtbcount=1 | 539 | dtbcount=1 |
540 | for DTB in ${KERNEL_DEVICETREE}; do | 540 | for DTB in ${KERNEL_DEVICETREE}; do |
541 | if echo ${DTB} | grep -q '/dts/'; then | 541 | if echo ${DTB} | grep -q '/dts/'; then |
542 | bbwarn "${DTB} contains the full path to the the dts file, but only the dtb name should be used." | 542 | bbwarn "${DTB} contains the full path to the the dts file, but only the dtb name should be used." |
543 | DTB=`basename ${DTB} | sed 's,\.dts$,.dtb,g'` | 543 | DTB=`basename ${DTB} | sed 's,\.dts$,.dtb,g'` |
544 | fi | 544 | fi |
545 | |||
546 | # Skip ${DTB} if it's also provided in ${EXTERNAL_KERNEL_DEVICETREE} | ||
547 | if [ -n "${EXTERNAL_KERNEL_DEVICETREE}" ] && [ -s ${EXTERNAL_KERNEL_DEVICETREE}/${DTB} ]; then | ||
548 | continue | ||
549 | fi | ||
550 | |||
545 | DTB_PATH="arch/${ARCH}/boot/dts/${DTB}" | 551 | DTB_PATH="arch/${ARCH}/boot/dts/${DTB}" |
546 | if [ ! -e "${DTB_PATH}" ]; then | 552 | if [ ! -e "${DTB_PATH}" ]; then |
547 | DTB_PATH="arch/${ARCH}/boot/${DTB}" | 553 | DTB_PATH="arch/${ARCH}/boot/${DTB}" |
@@ -769,4 +775,4 @@ python () { | |||
769 | bb.build.deltask('do_assemble_fitimage', d) | 775 | bb.build.deltask('do_assemble_fitimage', d) |
770 | bb.build.deltask('generate_rsa_keys', d) | 776 | bb.build.deltask('generate_rsa_keys', d) |
771 | bb.build.addtask('generate_rsa_keys', 'do_assemble_fitimage_initramfs', 'do_bundle_initramfs', d) | 777 | bb.build.addtask('generate_rsa_keys', 'do_assemble_fitimage_initramfs', 'do_bundle_initramfs', d) |
772 | } \ No newline at end of file | 778 | } |