[PATCH 2/3] mksunxi_fit_atf.sh: Update FIT component descriptions

Samuel Holland samuel at sholland.org
Sat May 9 21:02:19 CEST 2020


Hi,

On 5/8/20 4:45 AM, Patrick Wildt wrote:
> Hi,
> 
> now this really confuses me.
> 
> commit 0db0ba6141f402b1d496ef53d9fa69978f75ec61 has explicitly made
> u-boot the firmware and moved atf into the loadables on NXP i.MX.
> Here you do the complete opposite for sunxi.
> 
> Can people please make up their minds how it is *supposed* to work?

I don't think that commit is suggesting how things are supposed to work; it's a
workaround responding to the existing limitations in SPL_FIT_IMAGE_TINY.
Specifically, that "firmware" is assumed to be U-Boot, and "loadables" are
assumed to be something else.

The first patch in this series removes those limitations by actually looking at
the "os" property. With my first patch applied, U-Boot would be detected in
either list, so booting would work with or without commit 0db0ba6141f4.

So for the reasons I outline below (the functionality of the "switch
(spl_image.os)" in board_init_r), it might make sense to revert that commit
after applying this series.

Cheers,
Samuel

> Oh, and your previous diff about the "minimal os parsing", I need that
> too for my use-case, so I like that one!
> 
> Patrick
> 
> On Thu, May 07, 2020 at 06:20:34PM -0500, Samuel Holland wrote:
>> Since commit d879616e9e64 ("spl: fit: simplify logic for FDT loading for
>> non-OS boots"), the SPL looks at the "os" properties of FIT images to
>> determine where to append the FDT.
>>
>> The "os" property of the "firmware" image also determines how to execute
>> the next stage of the boot process, as in 1d3790905d9c ("spl: atf:
>> introduce spl_invoke_atf and make bl31_entry private").
>>
>> To support this additional functionality, and to properly model the boot
>> process, where ATF runs before U-Boot, add the "os" properties and swap
>> the firmware/loadable images in the FIT image.
>>
>> Signed-off-by: Samuel Holland <samuel at sholland.org>
>> ---
>>  board/sunxi/mksunxi_fit_atf.sh | 6 ++++--
>>  1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/board/sunxi/mksunxi_fit_atf.sh b/board/sunxi/mksunxi_fit_atf.sh
>> index 88ad719747..4dfd22db78 100755
>> --- a/board/sunxi/mksunxi_fit_atf.sh
>> +++ b/board/sunxi/mksunxi_fit_atf.sh
>> @@ -31,6 +31,7 @@ cat << __HEADER_EOF
>>  			description = "U-Boot (64-bit)";
>>  			data = /incbin/("u-boot-nodtb.bin");
>>  			type = "standalone";
>> +			os = "u-boot";
>>  			arch = "arm64";
>>  			compression = "none";
>>  			load = <0x4a000000>;
>> @@ -39,6 +40,7 @@ cat << __HEADER_EOF
>>  			description = "ARM Trusted Firmware";
>>  			data = /incbin/("$BL31");
>>  			type = "firmware";
>> +			os = "arm-trusted-firmware";
>>  			arch = "arm64";
>>  			compression = "none";
>>  			load = <$BL31_ADDR>;
>> @@ -73,8 +75,8 @@ do
>>  	cat << __CONF_SECTION_EOF
>>  		config_$cnt {
>>  			description = "$(basename $dtname .dtb)";
>> -			firmware = "uboot";
>> -			loadables = "atf";
>> +			firmware = "atf";
>> +			loadables = "uboot";
>>  			fdt = "fdt_$cnt";
>>  		};
>>  __CONF_SECTION_EOF
>> -- 
>> 2.24.1
>>



More information about the U-Boot mailing list