@@ -85,7 +85,8 @@ python do_compile() {
# Copy the dtb or dtbo file into the FIT image assembly directory
shutil.copyfile(os.path.join(kernel_deploydir, dtb_name), dtb_name)
root_node.fitimage_emit_section_dtb(dtb_name, dtb_name,
- d.getVar("UBOOT_DTB_LOADADDRESS"), d.getVar("UBOOT_DTBO_LOADADDRESS"))
+ d.getVar("UBOOT_DTB_LOADADDRESS"), d.getVar("UBOOT_DTBO_LOADADDRESS"),
+ add_compatible = bb.utils.to_boolean(d.getVar("FIT_DTB_ADD_COMPATIBLE"), False))
if external_kernel_devicetree:
# iterate over all .dtb and .dtbo files in the external kernel devicetree directory
@@ -47,6 +47,9 @@ FIT_LINUX_BIN ?= "linux.bin"
# Allow user to select the default DTB for FIT image when multiple dtb's exists.
FIT_CONF_DEFAULT_DTB ?= ""
+# Allow user to choose if DTB in FIT image can have compatible strings.
+FIT_DTB_ADD_COMPATIBLE ?= "False"
+
# length of address in number of <u32> cells
# ex: 1 32bits address, 2 64bits address
FIT_ADDRESS_CELLS ?= "1"
At present, the kernel-fit-image bbclass is adding compatible strings only for external DTBs, omitting them for DTBs built from the kernel tree. This behavior is limiting the ability to clearly identify the DTBs in FIT image that includes multiple kernel built-in DTBs and possibly mix of in tree and external ones, due to lack of consistent compatible strings. To fix this, introduce a new BitBake variable, FIT_DTB_ADD_COMPATIBLE when set to "True", the bbclass will extract and include the compatible string from kernel-built DTBs also in the .its file, just like it does for external DTBs. Signed-off-by: Kavinaya S <kavinaya@qti.qualcomm.com> --- meta/classes-recipe/kernel-fit-image.bbclass | 3 ++- meta/conf/image-fitimage.conf | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-)