Hello, On 31/03/2023 11:17:04+0500, Arslan Ahmad wrote: > 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(-)
This doesn't apply on master, can you rebase? > > 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 > > > > -- Alexandre Belloni, co-owner and COO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#179736): https://lists.openembedded.org/g/openembedded-core/message/179736 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] -=-=-=-=-=-=-=-=-=-=-=-