summaryrefslogtreecommitdiffstats
path: root/meta/classes/kernel-fitimage.bbclass
diff options
context:
space:
mode:
authorMing Liu <liu.ming50@gmail.com>2021-03-18 13:47:58 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-03-20 18:54:56 +0000
commit959291c84963420922155a8f57b52b5e774648ef (patch)
treeab58ebda492b46e7976d22ecd42c6596d5d2c1b5 /meta/classes/kernel-fitimage.bbclass
parentb24332906d7d3f057a1b75a2fc6a5704396aa7b4 (diff)
downloadpoky-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.bbclass10
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}