From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dr. Philipp Tomsich Date: Tue, 14 Mar 2017 12:03:32 +0100 Subject: [U-Boot] [PATCH 00/17] SPL: extend FIT loading support In-Reply-To: <1488335129-12363-1-git-send-email-andre.przywara@arm.com> References: <1488335129-12363-1-git-send-email-andre.przywara@arm.com> Message-ID: <12FA6F80-E01C-4A08-BFF5-44631F4DFFF7@theobroma-systems.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Reviewed-by: Philipp Tomsich > On 01 Mar 2017, at 03:25, 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 > > -- > 2.8.2 > -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 496 bytes Desc: Message signed with OpenPGP using GPGMail URL: