[U-Boot] [PATCH v4 00/20] SPL: extend FIT loading support

Jagan Teki jagannadh.teki at gmail.com
Wed May 17 17:59:28 UTC 2017


On Wed, Apr 26, 2017 at 6:02 AM, Andre Przywara <andre.przywara at arm.com> wrote:
> Another round of smaller fixes for the SPL FIT loading series and the
> respective patches to enable this feature on 64-bit Allwinner SoCs.
> The README has been changed to address all 64-bit Allwinner boards and
> has consequently been renamed to README.sunxi64. Also we can now point
> U-Boot to the ARM Trusted Firmware build by specifying the filename in
> the BL31 environment variable. If this is not set, we default to look
> for bl31.bin in U-Boot's build directory.
> The other minor fixes are detailed in the Changelog below.
> ---
>
> The first five patches introduce the core of the extened SPL FIT loading
> support, see below for a description. Patch 6 fixes a Kconfig dependency
> to simplify the usage of this option.
> Patches 7-10 make some room in the sunxi 64-bit SPL to allow
> compiling in the FIT loading bits. Patch 11 and 12 let the SPL choose
> the proper DT from the FIT image.
> The next two patches add the infrastructure and an actual generator script,
> so the FIT image is automatically created at build time.
> Patches 14, 15 and 16 enable the SPL FIT support for Allwinner 64-bit SoCs in
> general and for the Pine64 and OrangePi PC 2 in particular.
> The following two patches store a DT file name in the SPL header, so
> U-Boot can easily pick the proper DT when scanning the FIT image.
> The idea is that this DT name should stay with the board, ideally on
> eMMC or SPI flash. So both U-Boot and a firmware update tool could
> identify a board, updating with compatible firmware while keeping the
> DT name in place. Ideally a board vendor would once seed this name
> onto on-board storage like SPI flash.
> I kept those two patches in, as the work on replacing mksunxiboot with
> an mkimage extension is not ready yet. Feel free to drop those from
> the series if this is a problem.
> The penultimate patch updates the Pine64 README file to document the current
> way of building U-Boot, which now includes the ARM Trusted Firmware build
> in its image.
> The last patch moves the maintainership from Hans over to me.
>
> I would be delighted if that series could get merged into the sunxi tree.
> This finally enables the fully open source firmware for the 64-bit
> Allwinner SoCs (including the ATF binary).
>
> This series is based on current sunxi/master.
>
> Cheers,
> Andre.
>
> -------
> 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 remaining patches prepare ane finally enable this scheme for the 64-bit
> Allwinner boards.
>
> Changelog v3 ... v4:
> - [01/20]: return proper error codes instead of just -1 (+Simon's RB)
> - [02/20]: improve kernel-doc comment (+Simon's RB)
> - [03/20]: return proper error codes instead of just -1 (+Simon's RB)
> - [04/20]: improve kernel-doc comment and error codes (+Simon's RB)
> - [05/20]: add example .its source file (+Simon's RB)
> - [10,11,12/20]: add Maxime's Acked-by
> - [14/20]: add BL31 environment variable (+Maxime's Acked-by)
> - [15/20]: drop unneeded OrangePi PC2 change
> - [16/20]: add Maxime's Acked-by
> - [19/20]: rewrite to be more generic, rename to README.sunxi64
> - [20/20]: new patch to change maintainership
>
> Changelog v2 ... v3:
> - new patch 06/19 to improve SPL_FIT Kconfig dependencies
> - rename symbol in mksunxiboot (SUNXI_SRAM instead of SUN4I_SRAM)
> - enable SPL_LOAD_FIT for all Allwinner A64 and H5 boards in Kconfig
> - add only CONFIG_OF_LIST to defconfigs (patch 15/19)
>
> Changelog v1 ... v2:
> - Add some function comments to spl_fit.c (patch 1-5)
> - Improve error handling in SPL FIT code (patch 1-5)
> - Fix bisectability (observing entry-point property)
> - add documentation to doc/uImage.FIT/howto.txt
> - fix Freescale CCN504 build failure
> - (no changes in the last 10 patches)
> - update README.pine64 (new last patch)
> - add Reviewed-by's from Simon and Lokesh
>
> --
> Andre Przywara (19):
>   SPL: FIT: refactor FDT loading
>   SPL: FIT: rework U-Boot image loading
>   SPL: FIT: improve error handling
>   SPL: FIT: factor out spl_load_fit_image()
>   SPL: FIT: allow loading multiple images
>   Kconfig: fix SPL_FIT dependency

Remove change from configs/evb-rk3399_defconfig

>   tools: mksunxiboot: allow larger SPL binaries
>   armv8: SPL: only compile GIC code if needed
>   armv8: fsl: move ccn504 code into FSL Makefile
>   sunxi: A64: move SPL stack to end of SRAM A2
>   sunxi: SPL: store RAM size in gd
>   sunxi: SPL: add FIT config selector for Pine64 boards
>   Makefile: add rules to generate SPL FIT images
>   sunxi: 64-bit SoCs: introduce FIT generator script
>   sunxi: defconfig: add supported DT list for Pine64
>   sunxi: enable automatic FIT build for 64-bit SoCs

Update Kconfig path to arch/arm/mach-sunxi/ while applying.

>   sunxi: use SPL header DT name for FIT board matching
>   sunxi: update Pine64 README
>   sunxi: Move maintainership for Pine64
>
> Siarhei Siamashka (1):
>   sunxi: Store the device tree name in the SPL header

Series tested on pine64 board.

Applied to u-boot-sunxi/master

thanks!
-- 
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.


More information about the U-Boot mailing list