From: Arslan Ahmad <arslan_ah...@mentor.com> The current check for default dtb image checks if the file exists and is not empty but appends a slash to the path due to which the file is never found. It also doesn't replace slash in filename with _ as done when populating the DTB variable. A better way to check the existence of the device tree would be from the list of DTBs since this is used during compilation.
Signed-off-by: Arslan Ahmad <arslan_ah...@mentor.com> --- meta/classes/kernel-fitimage.bbclass | 30 +++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/meta/classes/kernel-fitimage.bbclass b/meta/classes/kernel-fitimage.bbclass index 27e17db951..c75d4e071f 100644 --- a/meta/classes/kernel-fitimage.bbclass +++ b/meta/classes/kernel-fitimage.bbclass @@ -345,6 +345,7 @@ EOF # $5 ... u-boot script ID # $6 ... config ID # $7 ... default flag +# $8 ... default DTB image name fitimage_emit_section_config() { conf_csum="${FIT_HASH_ALG}" @@ -361,6 +362,7 @@ fitimage_emit_section_config() { bootscr_id="$5" config_id="$6" default_flag="$7" + default_dtb_image="$8" # Test if we have any DTBs at all sep="" @@ -372,7 +374,6 @@ fitimage_emit_section_config() { bootscr_line="" setup_line="" default_line="" - default_dtb_image="${FIT_CONF_DEFAULT_DTB}" # conf node name is selected based on dtb ID if it is present, # otherwise its selected based on kernel ID @@ -418,11 +419,7 @@ fitimage_emit_section_config() { # Select default node as user specified dtb when # multiple dtb exists. if [ -n "$default_dtb_image" ]; then - if [ -s "${EXTERNAL_KERNEL_DEVICETREE}/$default_dtb_image" ]; then - default_line="default = \"${FIT_CONF_PREFIX}$default_dtb_image\";" - else - bbwarn "Couldn't find a valid user specified dtb in ${EXTERNAL_KERNEL_DEVICETREE}/$default_dtb_image" - fi + default_line="default = \"${FIT_CONF_PREFIX}$default_dtb_image\";" else default_line="default = \"${FIT_CONF_PREFIX}$dtb_image\";" fi @@ -504,6 +501,7 @@ fitimage_assemble() { ramdiskcount=$3 setupcount="" bootscr_id="" + default_dtb_image="" rm -f $1 arch/${ARCH}/boot/$2 if [ -n "${UBOOT_SIGN_IMG_KEYNAME}" -a "${UBOOT_SIGN_KEYNAME}" = "${UBOOT_SIGN_IMG_KEYNAME}" ]; then @@ -542,6 +540,11 @@ fitimage_assemble() { DTB_PATH="arch/${ARCH}/boot/$DTB" fi + # Set the default dtb image if it exists in the devicetree. + if [ ${FIT_CONF_DEFAULT_DTB} = $DTB ];then + default_dtb_image=$(echo "$DTB" | tr '/' '_') + fi + DTB=$(echo "$DTB" | tr '/' '_') # Skip DTB if we've picked it up previously @@ -556,6 +559,11 @@ fitimage_assemble() { dtbcount=1 for DTB in $(find "${EXTERNAL_KERNEL_DEVICETREE}" -name '*.dtb' -printf '%P\n' | sort) \ $(find "${EXTERNAL_KERNEL_DEVICETREE}" -name '*.dtbo' -printf '%P\n' | sort); do + # Set the default dtb image if it exists in the devicetree. + if [ ${FIT_CONF_DEFAULT_DTB} = $DTB ];then + default_dtb_image=$(echo "$DTB" | tr '/' '_') + fi + DTB=$(echo "$DTB" | tr '/' '_') # Skip DTB/DTBO if we've picked it up previously @@ -566,6 +574,10 @@ fitimage_assemble() { done fi + if [ -n "${FIT_CONF_DEFAULT_DTB}" ] && [ -z $default_dtb_image ]; then + bbwarn "${FIT_CONF_DEFAULT_DTB} is not available in the list of device trees." + fi + # # Step 3: Prepare a u-boot script section # @@ -638,15 +650,15 @@ fitimage_assemble() { for DTB in ${DTBS}; do dtb_ext=${DTB##*.} if [ "$dtb_ext" = "dtbo" ]; then - fitimage_emit_section_config $1 "" "$DTB" "" "$bootscr_id" "" "`expr $i = $dtbcount`" + fitimage_emit_section_config $1 "" "$DTB" "" "$bootscr_id" "" "`expr $i = $dtbcount`" "$default_dtb_image" else - fitimage_emit_section_config $1 $kernelcount "$DTB" "$ramdiskcount" "$bootscr_id" "$setupcount" "`expr $i = $dtbcount`" + fitimage_emit_section_config $1 $kernelcount "$DTB" "$ramdiskcount" "$bootscr_id" "$setupcount" "`expr $i = $dtbcount`" "$default_dtb_image" fi i=`expr $i + 1` done else defaultconfigcount=1 - fitimage_emit_section_config $1 $kernelcount "" "$ramdiskcount" "$bootscr_id" "$setupcount" $defaultconfigcount + fitimage_emit_section_config $1 $kernelcount "" "$ramdiskcount" "$bootscr_id" "$setupcount" $defaultconfigcount "$default_dtb_image" fi fitimage_emit_section_maint $1 sectend -- 2.40.0
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#179400): https://lists.openembedded.org/g/openembedded-core/message/179400 Mute This Topic: https://lists.openembedded.org/mt/97968048/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-