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

Kever Yang kever.yang at rock-chips.com
Mon Mar 6 11:24:46 UTC 2017


Hi Andre,

     I have test this patch set on rk3399 with ATF support.

For patch 2~5, you can add:
Tested-by: Kever Yang <kever.yang at rock-chips.com>

Thanks,
- Kever
On 03/01/2017 10:25 AM, Andre Przywara wrote:
> This is an updated and slightly extended version of the SPL FIT loading
> series I posted as an RFC some weeks ago.
> I tried to fix all bugs that have been pointed out by the diligent
> reviewers, also added patches to automatically build the FIT images.
>
> The first patch is a bug fix for a regression introduced with -rc1.
> I put this in there to allow people testing the series and to provide
> an actual patch for this fix, which should make it still into 2017.03.
> The next four patches introduce the core of the extened SPL FIT loading
> support, see below for a description.
> Patches 6-9 make some room in the sunxi 64-bit SPL to allow
> compiling in the FIT loading bits. Patch 10 and 11 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 and 15 enable the SPL FIT support in the Pine64 and the
> OrangePi PC 2 defconfigs.
> The last two patches are new and eventually 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.
>
> Let me know what you think!
>
> Cheers,
> Andre.
>
> Based on top of sunxi/master (35affe7698e9).
>
> -------
> 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.
>
> Andre Przywara (15):
>    SPL: FIT: refactor FDT loading
>    SPL: FIT: rework U-Boot image loading
>    SPL: FIT: factor out spl_load_fit_image()
>    SPL: FIT: allow loading multiple images
>    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: A64: Pine64: introduce FIT generator script
>    sunxi: Pine64: defconfig: enable SPL FIT support
>    sunxi: OrangePi-PC2: defconfig: enable SPL FIT support
>    sunxi: use SPL header DT name for FIT board matching
>
> Philipp Tomsich (1):
>    armv8: spl: Call spl_relocate_stack_gd for ARMv8
>
> Siarhei Siamashka (1):
>    sunxi: Store the device tree name in the SPL header
>
>   Kconfig                                    |  17 ++
>   Makefile                                   |  20 +++
>   arch/arm/cpu/armv8/fsl-layerscape/Makefile |   1 +
>   arch/arm/include/asm/arch-sunxi/spl.h      |  19 ++-
>   arch/arm/lib/Makefile                      |   3 +-
>   arch/arm/lib/crt0_64.S                     |  14 +-
>   board/sunxi/board.c                        |  36 ++++-
>   board/sunxi/mksunxi_fit_atf.sh             |  73 +++++++++
>   common/spl/spl_fit.c                       | 246 +++++++++++++++++------------
>   configs/orangepi_pc2_defconfig             |   6 +
>   configs/pine64_plus_defconfig              |   6 +
>   include/configs/sunxi-common.h             |  17 +-
>   scripts/Makefile.spl                       |   3 +-
>   tools/mksunxiboot.c                        |  51 +++++-
>   14 files changed, 387 insertions(+), 125 deletions(-)
>   create mode 100755 board/sunxi/mksunxi_fit_atf.sh
>




More information about the U-Boot mailing list