Message ID | 20170305040626.GB87322@largo.jsg.id.au |
---|---|
State | Rejected |
Delegated to: | Jagannadha Sutradharudu Teki |
Headers | show |
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@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@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 >
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