Hi Andre, On 27 January 2017 at 17:47, André Przywara <andre.przyw...@arm.com> wrote: > On 27/01/17 21:29, Simon Glass wrote: > > Hi Simon, > >> On 19 January 2017 at 18:53, Andre Przywara <andre.przyw...@arm.com> wrote: >>> Currently the FIT format is not used to its full potential in the SPL: >>> It only loads the first image from the /images node and appends the >>> proper FDT. >>> Some boards and platforms would benefit from loading more images before >>> starting U-Boot proper, notably Allwinner A64 and ARMv8 Rockchip boards, >>> which use an ARM Trusted Firmware (ATF) image to be executed before U-Boot. >>> >>> This series tries to solve this in a board agnostic and generic way: >>> We extend the SPL FIT loading scheme to allow loading multiple images. >>> So apart from loading the image which is referenced by the "firmware" >>> property in the respective configuration node and placing the DTB right >>> behind it, we iterate over all strings in the "loadable" property. >>> Each image referenced there will be loaded to its specified load address. >>> The entry point U-Boot eventually branches to will be taken from the >>> first image to explicitly provide the "entry" property, or, if none >>> of them does so, from the load address of the "firmware" image. >>> This keeps the scheme compatible with the FIT images our Makefile creates >>> automatically at the moment. >>> >>> Apart from the already mentioned ATF scenario this opens up more usage >>> scenarios, of which the commit message of patch 04/11 lists some. >>> >>> The first three patches rework the SPL FIT support to be more flexible >>> and to allow easier usage in the fourth patch, which introduces the >>> multiple-image loading facility. >>> The remaining patches enable that support for the Pine64 board to make >>> its SPL support finally useful and to demonstrate usage of this scheme: >>> patches 5-7 extend the usable SPL size by about 4 KB to allow AArch64 >>> compilation of the SPL with FIT support enabled. Patch 8 implements the >>> board selector routine, which selects either the Pine64 or Pine64+ DTB >>> depending on the detected DRAM size. Patch 9 enables SPL FIT support in >>> the Pine64 defconfig. >>> To demonstrate the usage, patch 10 provides a FIT source file, which >>> loads and executes ATF before the U-Boot proper. Users are expected to >>> compile this with "mkimage -f boards/sunxi/pine64_atf.its -E pine64.itb", >>> then write the resulting file behind the SPL on an SD card (or any other >>> U-Boot supported boot media, for that matter). >>> Patch 11 then adds FIT support to the sunxi SPL SPI loading routine, >>> which allows to load ATF on boards with SPI flash as well. >>> >>> Questions: >>> 1) Is this scheme the right one (usage of "firmware" and "loadables", >>> determination of entry point)? Shall we make use of the "setup" >>> property? >> >> Seems reasonable to me. >> >>> 2) Shall we extend mkimage to allow supplying "loadable" files on the >>> command line, which would allow to build the .itb file automatically? >> >> Yes. > > I was thinking about this a bit more, as Andrew pointed out before it > may become hairy to add tons of options to mkimage. > I came up with a simple shell script, mostly using here documents > (cat << _EOF) to generate the .its file on the fly, adding all DTs given > on the command line. It's pretty easy, yet readable and adaptable. So > each platform could provide one, if needed, and could hard code things > like ATF in here.
That sounds reasonable. But I do think it is valuable to support the basic case without needing a script, so long as you can do it with only a few mkimage options? [..] Regards, Simon -- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.