[U-Boot] [PATCH 0/9] spl: dm: Make it possible for the SPL to pick its own DTB from a FIT

Jean-Jacques Hiblot jjhiblot at ti.com
Fri Jul 21 09:00:43 UTC 2017


+Tom Rini


On 20/07/2017 19:02, Jean-Jacques Hiblot wrote:
> Following the RFC, here is the series implementing the mechanism in a cleaner
> way. The idea is that the SPL may take advantage of selecting its DTB from a
> pool of available DTBs. To do that several DTBs are embedded in a compressed
> FIT image appended at the end of the SPL. The patch is done in such way that
> this mechanism can easilly be extended to other ways of loading the DTBs.
>
> changes since RFC:
>   - split the RFC patch in several patches.
>   - leverage work from Cooper Jr., Franklin (CONFIG_FIT_EMBED) as a big part
>     of the code is similar. Rename CONFIG_FIT_EMBED as CONFIG_MULTI_DTB_FIT
>     to prevent confusion with CONFIG_OF_EMBED.
>   - use the default configuration if no match is provided by
>     board_fit_config_name_match(). note that this is generic not just for this
>     feature.
>   - provide an option to not use dynamic memory allocation.
>   - added a patch related to board detection on omap that's required to take
>     advantage of this feature.
>   
>   
> Here are some numbers:
>                         +----------------------------------------+
>                         |  Size    |delta     |boot-time| delta  |
>                         |  (bytes) |(bytes)   |(ms)     | (ms)   |
> +---------------------------------------------------------------+
> | reference            |  120185  |          |  1331   |        |
> +---------------------------------------------------------------+
> | feature              |          |          |         |        |
> | deactiVated          |  120185  |   0      |  1330   |  -1    |
> +---------------------------------------------------------------+
> | 1 DTB   LZO          |  120208  |   2      |  1331   |  0     |
obviously the delta in bytes here is not 2 but 23.
> +---------------------------------------------------------------+
> | 4 DTB   LZO          |  120810  |   625    |  1336   |  5     |
> +---------------------------------------------------------------+
> | 4 DTB   LZO          |          |          |         |        |
> | no malloc            |  120746  |   561    |  1343   |  12    |
> +---------------------------------------------------------------+
> | 4 DTB   GZIP         |  128552  |   8367   |  1353   |  22    |
> +---------------------------------------------------------------+
> | 4 DTB   No comp      |  132352  |   12167  |  1351   |  20    |
> +----------------------+----------+----------+---------+--------+
>
>
>
> Jean-Jacques Hiblot (9):
>    dts: renamed FIT_EMBED to MULTI_DTB_FIT and moved it to the dts
>      Kconfig
>    fit: use 'const' for the input of fdt_offset() and locate_dtb_in_fit()
>    fit: fixed bug in locate_dtb_in_fit()
>    fit: If no matching config is found in fit_find_config_node(), use the
>      default one
>    lzo: add a function to check the validity of the header
>    gzip: add a function to parse the header
>    lib: allow building lzo and gunzip for the SPL
>    spl: dm: Make it possible for the SPL to pick its own DTB from a FIT
>    omap: detect board before spl_early_init()
>
>   Makefile                            |  2 +-
>   arch/arm/mach-omap2/hwinit-common.c |  4 +-
>   board/ti/ks2_evm/board_k2e.c        |  2 +-
>   board/ti/ks2_evm/board_k2g.c        |  2 +-
>   board/ti/ks2_evm/board_k2hk.c       |  2 +-
>   board/ti/ks2_evm/board_k2l.c        |  2 +-
>   common/Kconfig                      | 16 -------
>   common/Makefile                     |  2 +-
>   common/boot_fit.c                   |  6 +--
>   common/common_fit.c                 | 20 ++++++++
>   configs/k2e_evm_defconfig           |  2 +-
>   configs/k2g_evm_defconfig           |  2 +-
>   configs/k2hk_evm_defconfig          |  2 +-
>   configs/k2l_evm_defconfig           |  2 +-
>   dts/Kconfig                         | 96 ++++++++++++++++++++++++++++++++++++-
>   include/boot_fit.h                  |  4 +-
>   include/common.h                    |  1 +
>   include/linux/lzo.h                 |  3 ++
>   lib/Kconfig                         | 11 +++++
>   lib/Makefile                        |  6 +--
>   lib/fdtdec.c                        | 85 ++++++++++++++++++++++++++++----
>   lib/gunzip.c                        | 15 ++++--
>   lib/lzo/lzo1x_decompress.c          | 21 ++++++--
>   scripts/Makefile.spl                | 35 +++++++++++++-
>   24 files changed, 290 insertions(+), 53 deletions(-)
>



More information about the U-Boot mailing list