public inbox for openembedded-core@lists.openembedded.org
 help / color / mirror / Atom feed
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Arslan Ahmad <arslan_ahmad@mentor.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [OE-core] [PATCH] kernel-fitimage: Fix the default dtb config check
Date: Wed, 5 Apr 2023 16:22:28 +0200	[thread overview]
Message-ID: <202304051422288e84bbf3@mail.local> (raw)
In-Reply-To: <20230331061705.435976-1-arslan_ahmad@mentor.com>

Hello,

On 31/03/2023 11:17:04+0500, Arslan Ahmad wrote:
> From: Arslan Ahmad <arslan_ahmad@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_ahmad@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
> 

> 
> -=-=-=-=-=-=-=-=-=-=-=-
> 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/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
> 


-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


      reply	other threads:[~2023-04-05 14:22 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-31  6:17 [PATCH] kernel-fitimage: Fix the default dtb config check arslan_ahmad
2023-04-05 14:22 ` Alexandre Belloni [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202304051422288e84bbf3@mail.local \
    --to=alexandre.belloni@bootlin.com \
    --cc=arslan_ahmad@mentor.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox