
Hi Jean-Jacques,
On Thu, 23 May 2019 at 11:39, Jean-Jacques Hiblot jjhiblot@ti.com wrote:
The purpose of this series is to provide the SPL with ability to apply overlays for u-boot. this is only a RFC so far, to get a feedback on the approach.
Our use-case is the support of the daughter boards of the AM65x EVM. In Linux, each board is supported by a unique overlay. The presence of the boards is detected at runtime, and some useful features (like USB) are implemented on those daughter boards. Instead of providing multiple dtbs and fall in a combinatorial pit, we propose to use DT overlays.
Patch #1 "spl: fit: Add support for applying DT overlay" has been posted a few weeks ago by Michal Simek. Patch #2 to #5 amend Michal's patch. Patch #6 to #8 are simple fixes for the Makefile Patch #9 is not required but relates to this series and will be required later by the AM6x platform Patch #10 is used to reduce the complexity of the Makefile by having FIT generator scripts provide their dependencies Patch #12 adds a way to dynamically select the DT overlays. That is were we would use HW detection to select the required overlays. In that case, the board-level code tells what overlay it needs (it gives the name of the node).
On arm, if overlay are supported, this series increases the size of the SPL by 3.2 kB.
Travis build : https://travis-ci.org/jjhiblot/u-boot/builds/535686392 For a strange reason, buildman on travis show errors for sun8i ans sun50i, but pass when I run it locally.
Changes in v3:
- Add a new config option: SPL_LOAD_FIT_APPLY_OVERLAY. By default, it is
not selected.
- removed the RFC prefix. This work will be needed soon by TI's AM65x
platform. and can probably benefit other modular platforms
- removed the last patch that provided an example of how to use this with
on a DRA76.
- removed the patch that made u-boot.img a symlink to u-boot.itb because
it breaks the build of many platforms (because files required to build the ITB are missing)
- removed the patch to reduce the footprint of the am335x SPL. (already
merged)
- Made the boot flow more permissive (don't fail immediately if an overlay
is not present) and more verbose when an error occures
- handle the dependencies of the FIT generation in a more generic way
- use a dedicated kconfig option to enable the application of the overlays
by the SPL.
Changes in v2:
- reworked board_fit_get_additionnal_images() and how it used in spl_fit.c
- removed dtbo generation from dtso files and use .dts extension for the overlays
- add dynamic allocation usage in a separate patch
- defconfig change for the am335x_evm
Jean-Jacques Hiblot (11): spl: fit: Make room in the FDT before applying overlays spl: fit: allocate a temporary buffer to load the overlays spl: fit: Do not fail immediately if an overlay is not available spl: fit: be more verbose when an error occurs when applying the overlays Makefile.lib: include /__symbols__ in dtb if SPL_LOAD_FIT_APPLY_OVERLAY is enabled Makefile: Fix tests for CONFIG_SPL_LOAD_FIT and CONFIG_SPL_FIT_GENERATOR Makefile: Fix u-boot.itb generation when building outside the source tree Makefile: Pass the board name to the FIT generator scripts Makefile: Query the SPL Fit Generator for its dependencies spl: fit: constify the output parameter of spl_fit_get_image_name() spl: fit: Allow the board to tell if more images must be loaded from FIT
Michal Simek (1): spl: fit: Add support for applying DT overlay
Kconfig | 10 +++ Makefile | 23 +++-- arch/arm/mach-imx/mkimage_fit_atf.sh | 10 ++- arch/arm/mach-rockchip/make_fit_atf.py | 13 ++- board/sunxi/mksunxi_fit_atf.sh | 7 ++ .../lion_rk3368/fit_spl_atf.its | 6 +- .../puma_rk3399/fit_spl_atf.its | 8 +- common/spl/spl_fit.c | 90 +++++++++++++++++-- include/spl.h | 16 ++++ scripts/Makefile.lib | 4 + 10 files changed, 156 insertions(+), 31 deletions(-)
How about a test that uses sandbox to apply some overlays?
Regards, Simon