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

Simon Glass sjg at chromium.org
Wed Apr 5 10:29:42 UTC 2017


Hi Andre,

On 31 March 2017 at 17:21, André Przywara <andre.przywara at arm.com> wrote:
> 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!
>

OK thanks, yes that helps. If you do another rev, can you put the
change log with each patch? If you use patman it does this for you and
then creates a full change log in the cover letter.

Regards,
Simon


More information about the U-Boot mailing list