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

André Przywara andre.przywara at arm.com
Fri Mar 31 23:21:25 UTC 2017


On 31/03/17 23:43, Simon Glass wrote:
> Hi Andre,
> 
> On 31 March 2017 at 16:31, Andre Przywara <andre.przywara at arm.com> wrote:
>> Some minor fixes version of the SPL FIT loading series and the respective
>> patches to enable this feature on 64-bit Allwinner SoCs.
>> There is a new patch (6/19) fixing the SPL_FIT dependencies, above all
>> selecting SPL_OF_LIBFDT when SPL_FIT is enabled. This reduces the number
>> of Kconfig symbols a board has to select for the SPL fit loading from
>> four down to two, which leads to changes in the final patches enabling
>> this feature. Compared to the previous version the SPL FIT loading
>> is now selected in the Kconfig for both 64-bit sunxi SoCs, so there is
>> less burden on each individual defconfig.
>> Also following Olliver's suggestion a symbol in mksunxiboot has been renamed.
>> ---
>>
>> 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 and 15 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 final 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.
>>
>> I would be delighted if that series can make it into the next release,
>> as this finally enables the fully open source firmware for the 64-bit
>> Allwinner SoCs (including the ATF binary).
>>
>> This series is based on sunxi/master, rebased upon origin/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.
> 
> Do you have change logs for these patches? I'm not sure which ones to
> review or what has changed. Also if I previously reviewed one, can you
> please retail the review tag?

Please review this version, it has only minor changes to v2 (see below).
You previously reviewed v1 (many thanks for that!), I put your RBs into
the patches 7,8,10,11,12,14 (in this series' counting).
I think the important patches are the first five for the SPL FIT rework
plus the Makefile patch (13/19) to generate the FIT image.

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-bys from Simon and Lokesh

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)

HTH!

Cheers,
Andre.



More information about the U-Boot mailing list