[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