diff mbox series

imx: move ATF to the back of the FIT to fix loading over yModem

Message ID 20200508095947.GA60002@ryzen.blueri.se
State Accepted
Commit 0e9c045b2b6a0409d650dd39265b4f6924a69832
Headers show
Series imx: move ATF to the back of the FIT to fix loading over yModem | expand

Commit Message

Patrick Wildt May 8, 2020, 9:59 a.m. UTC
With yModem the FIT Image is only supplied once, so we can only
seek forward in the yModem supplied image and never backwards.
With the recent changes to the SPL mechanism, including loading
U-Boot first, FDT after, then the loadables, we must also reorder
the FIT image script to make sure that the loadables are last in
the FIT image.

Signed-off-by: Patrick Wildt <patrick at blueri.se>

Comments

Patrick Wildt May 28, 2020, 7:27 p.m. UTC | #1
Ping?

On Fri, May 08, 2020 at 11:59:47AM +0200, Patrick Wildt wrote:
> With yModem the FIT Image is only supplied once, so we can only
> seek forward in the yModem supplied image and never backwards.
> With the recent changes to the SPL mechanism, including loading
> U-Boot first, FDT after, then the loadables, we must also reorder
> the FIT image script to make sure that the loadables are last in
> the FIT image.
> 
> Signed-off-by: Patrick Wildt <patrick at blueri.se>
> 
> diff --git a/arch/arm/mach-imx/mkimage_fit_atf.sh b/arch/arm/mach-imx/mkimage_fit_atf.sh
> index dd1ca5ad3fd..fe12b7bb4bd 100755
> --- a/arch/arm/mach-imx/mkimage_fit_atf.sh
> +++ b/arch/arm/mach-imx/mkimage_fit_atf.sh
> @@ -62,6 +62,23 @@ cat << __HEADER_EOF
>  			compression = "none";
>  			load = <$BL33_LOAD_ADDR>;
>  		};
> +__HEADER_EOF
> +
> +cnt=1
> +for dtname in $*
> +do
> +	cat << __FDT_IMAGE_EOF
> +		fdt@$cnt {
> +			description = "$(basename $dtname .dtb)";
> +			data = /incbin/("$dtname");
> +			type = "flat_dt";
> +			compression = "none";
> +		};
> +__FDT_IMAGE_EOF
> +cnt=$((cnt+1))
> +done
> +
> +cat << __HEADER_EOF
>  		atf at 1 {
>  			description = "ARM Trusted Firmware";
>  			os = "arm-trusted-firmware";
> @@ -88,20 +105,6 @@ cat << __HEADER_EOF
>  __HEADER_EOF
>  fi
>  
> -cnt=1
> -for dtname in $*
> -do
> -	cat << __FDT_IMAGE_EOF
> -		fdt@$cnt {
> -			description = "$(basename $dtname .dtb)";
> -			data = /incbin/("$dtname");
> -			type = "flat_dt";
> -			compression = "none";
> -		};
> -__FDT_IMAGE_EOF
> -cnt=$((cnt+1))
> -done
> -
>  cat << __CONF_HEADER_EOF
>  	};
>  	configurations {
Sébastien Szymanski May 29, 2020, 6:30 a.m. UTC | #2
Hi,

On 5/8/20 11:59 AM, Patrick Wildt wrote:
> With yModem the FIT Image is only supplied once, so we can only
> seek forward in the yModem supplied image and never backwards.
> With the recent changes to the SPL mechanism, including loading
> U-Boot first, FDT after, then the loadables, we must also reorder
> the FIT image script to make sure that the loadables are last in
> the FIT image.
> 
> Signed-off-by: Patrick Wildt <patrick at blueri.se>
> 

Thanks to this patch, I was able to push a FIT image (ATF, U-Boot, dtb)
using yModem, so:

Tested-by: S?bastien Szymanski <sebastien.szymanski at armadeus.com>

Regards,
diff mbox series

Patch

diff --git a/arch/arm/mach-imx/mkimage_fit_atf.sh b/arch/arm/mach-imx/mkimage_fit_atf.sh
index dd1ca5ad3fd..fe12b7bb4bd 100755
--- a/arch/arm/mach-imx/mkimage_fit_atf.sh
+++ b/arch/arm/mach-imx/mkimage_fit_atf.sh
@@ -62,6 +62,23 @@  cat << __HEADER_EOF
 			compression = "none";
 			load = <$BL33_LOAD_ADDR>;
 		};
+__HEADER_EOF
+
+cnt=1
+for dtname in $*
+do
+	cat << __FDT_IMAGE_EOF
+		fdt@$cnt {
+			description = "$(basename $dtname .dtb)";
+			data = /incbin/("$dtname");
+			type = "flat_dt";
+			compression = "none";
+		};
+__FDT_IMAGE_EOF
+cnt=$((cnt+1))
+done
+
+cat << __HEADER_EOF
 		atf at 1 {
 			description = "ARM Trusted Firmware";
 			os = "arm-trusted-firmware";
@@ -88,20 +105,6 @@  cat << __HEADER_EOF
 __HEADER_EOF
 fi
 
-cnt=1
-for dtname in $*
-do
-	cat << __FDT_IMAGE_EOF
-		fdt@$cnt {
-			description = "$(basename $dtname .dtb)";
-			data = /incbin/("$dtname");
-			type = "flat_dt";
-			compression = "none";
-		};
-__FDT_IMAGE_EOF
-cnt=$((cnt+1))
-done
-
 cat << __CONF_HEADER_EOF
 	};
 	configurations {