[U-Boot] [linux-sunxi] Re: [PATCH 14/17] sunxi: Pine64: defconfig: enable SPL FIT support

André Przywara andre.przywara at arm.com
Sun Mar 5 10:40:54 UTC 2017


On 05/03/17 04:06, Jonathan Gray wrote:
> On Fri, Mar 03, 2017 at 09:55:25AM +0000, Andre Przywara wrote:
>> Hi,
>>
>> On 03/03/17 09:22, Maxime Ripard wrote:
>>> On Thu, Mar 02, 2017 at 12:03:20AM +0800, Icenowy Zheng wrote:
>>>>
>>>> 2017???3???1??? 23:51??? Maxime Ripard <maxime.ripard at free-electrons.com>?????????
>>>>>
>>>>> Hi Andre, 
>>>>>
>>>>> On Wed, Mar 01, 2017 at 02:25:26AM +0000, Andre Przywara wrote: 
>>>>>> The Pine64 (and all other 64-bit Allwinner boards) need to load an 
>>>>>> ARM Trusted Firmware image beside the actual U-Boot proper. 
>>>>>> This can now be easily achieved by using the just extended SPL FIT 
>>>>>> loading support, so enable it in the Pine64 defconfig. 
>>>>>> Also add the FIT image as a build target to 64-bit sunxi board to 
>>>>>> trigger the respective Makefile rules. 
>>>>>>
>>>>>> Signed-off-by: Andre Przywara <andre.przywara at arm.com> 
>>>>>> --- 
>>>>>>   configs/pine64_plus_defconfig  | 6 ++++++ 
>>>>>>   include/configs/sunxi-common.h | 4 ++++ 
>>>>>>   2 files changed, 10 insertions(+) 
>>>>>>
>>>>>> diff --git a/configs/pine64_plus_defconfig b/configs/pine64_plus_defconfig 
>>>>>> index 7c7d86f..2b47157 100644 
>>>>>> --- a/configs/pine64_plus_defconfig 
>>>>>> +++ b/configs/pine64_plus_defconfig 
>>>>>> @@ -3,9 +3,14 @@ CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y 
>>>>>>   CONFIG_ARCH_SUNXI=y 
>>>>>>   CONFIG_MACH_SUN50I=y 
>>>>>>   CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-pine64-plus" 
>>>>>> +CONFIG_OF_LIST="sun50i-a64-pine64 sun50i-a64-pine64-plus" 
>>>>>>   # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set 
>>>>>>   CONFIG_CONSOLE_MUX=y 
>>>>>>   CONFIG_SPL=y 
>>>>>> +CONFIG_FIT=y 
>>>>>> +CONFIG_SPL_FIT=y 
>>>>>> +CONFIG_SPL_LOAD_FIT=y 
>>>>>> +CONFIG_SPL_OF_LIBFDT=y 
>>>>>
>>>>> I'm not sure we want to force down that support to all our users. 
>>>>
>>>> A64 boards are now unusable without proper ATF.
>>>
>>> That's debatable, but that's not really what I meant. What I meant was
>>> that they're perfectly usable without FIT.
>>
>> But this is a defconfig for a certain, and the Pine64 is not really
>> usable without ATF at the moment in an upstream tree.
> 
> Could board/sunxi/README.pine64 be updated for the current state of
> things?

Ah, right, I forgot this, thanks for the heads up.

> Without FIT is it now possible with u-boot 2017.03 to use sunxi-spl.bin
> as a drop in replacement for Allwinner's boot0 and get a working
> combination of SPL/u-boot/ATF that can be redistributed when combining
> the parts with boot0img?

Yes, it boots - into U-Boot, but not yet into Linux. For this you need
ATF and thus this series.

> Using your repositories
> https://github.com/apritzel/arm-trusted-firmware/tree/allwinner (for ATF)

Yes.

> https://github.com/apritzel/pine64 (for boot0img)

This is now obsolete, at least with this series.

> README.pine64 still states that there is no SPL available.
> 
> Does it make any sense to build a combined spl+u-boot as is done with
> the armv7 sunxi targets without ATF?  Or will this not boot?

It will load and run U-Boot proper, but will crash once you try to load
Linux, because the ATF is missing.
But it would make sense to combine the SPL + u-boot.itb (which contains
the ATF) to one file. I just need to have a look what needs to be done
in the Makefile for this.

Cheers,
Andre.

> diff --git a/arch/arm/cpu/armv8/config.mk b/arch/arm/cpu/armv8/config.mk
> index 27b66d41b1..a323faf563 100644
> --- a/arch/arm/cpu/armv8/config.mk
> +++ b/arch/arm/cpu/armv8/config.mk
> @@ -12,3 +12,12 @@ PLATFORM_CPPFLAGS += $(PF_NO_UNALIGNED)
>  EFI_LDS := elf_aarch64_efi.lds
>  EFI_CRT0 := crt0_aarch64_efi.o
>  EFI_RELOC := reloc_aarch64_efi.o
> +
> +# Build a combined spl + u-boot image
> +ifdef CONFIG_ARCH_SUNXI
> +ifdef CONFIG_SPL
> +ifndef CONFIG_SPL_BUILD
> +ALL-y += u-boot-sunxi-with-spl.bin
> +endif
> +endif
> +endif
> 



More information about the U-Boot mailing list