[U-Boot] [PATCH v3 1/1] configs: rk3288: Tinker Board SPL file must fit into 32 KiB

Simon Goldschmidt simon.k.r.goldschmidt at gmail.com
Wed Feb 27 10:15:23 UTC 2019


Tom,

On Thu, Feb 14, 2019 at 10:20 AM Simon Goldschmidt
<simon.k.r.goldschmidt at gmail.com> wrote:
>
> On Thu, Feb 14, 2019 at 7:26 AM Heinrich Schuchardt <xypron.glpk at gmx.de> wrote:
> >
> > The SPL image for the Tinker Board has to fit into 32 KiB. This includes
> > up to 2 KiB for the file header.
> >
> > A new configuration variable CONFIG_SPL_WITH_DTB_SIZE_LIMIT is introduced
> > to define the board specific limit.
> >
> > Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
>
> Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt at gmail.com>

Is this planned for v2019.04? I know we're in rc phase, but this patch
adds a new config
option so shouldn't interfere with boards not using it.

Plus if we have this SPL size check in v2019.04, it would probably
enable more board
maintainers testing/fixing the SPL size check after the release.

Regards,
Simon

>
> > ---
> > v3
> >         The maximum size should of the image should be 30 KiB. Allowing
> >         2 KiB for the header. This is 30720 and not 32700 bytes.
> > v2
> >         Instead of using CONFIG_SPL_MAX_SIZE with an estimate of the FDT
> >         size introduce a new test in scripts/Makefile.spl.
> > ---
> >  Kconfig                         |  8 ++++++++
> >  configs/tinker-rk3288_defconfig |  1 +
> >  scripts/Makefile.spl            | 16 ++++++++++++++++
> >  3 files changed, 25 insertions(+)
> >
> > diff --git a/Kconfig b/Kconfig
> > index 512c7beb89..7cce53da74 100644
> > --- a/Kconfig
> > +++ b/Kconfig
> > @@ -172,6 +172,14 @@ config TPL_SYS_MALLOC_F_LEN
> >           particular needs this to operate, so that it can allocate the
> >           initial serial device and any others that are needed.
> >
> > +config SPL_WITH_DTB_SIZE_LIMIT
> > +       int "Maximum size of SPL image including device tree"
> > +       depends on SPL
> > +       default 0
> > +       help
> > +         Specifies the maximum length of the U-Boot SPL image including the
> > +         device tree. If this value is zero, it is ignored.
> > +
> >  menuconfig EXPERT
> >         bool "Configure standard U-Boot features (expert users)"
> >         default y
> > diff --git a/configs/tinker-rk3288_defconfig b/configs/tinker-rk3288_defconfig
> > index fdcab28185..cc5e59bcf1 100644
> > --- a/configs/tinker-rk3288_defconfig
> > +++ b/configs/tinker-rk3288_defconfig
> > @@ -3,6 +3,7 @@ CONFIG_ARCH_ROCKCHIP=y
> >  CONFIG_SYS_TEXT_BASE=0x00000000
> >  CONFIG_SYS_MALLOC_F_LEN=0x2000
> >  CONFIG_ROCKCHIP_RK3288=y
> > +CONFIG_SPL_WITH_DTB_SIZE_LIMIT=30720
> >  CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
> >  CONFIG_TARGET_TINKER_RK3288=y
> >  CONFIG_DEBUG_UART_BASE=0xff690000
> > diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl
> > index 9d5921606e..afc329a410 100644
> > --- a/scripts/Makefile.spl
> > +++ b/scripts/Makefile.spl
> > @@ -254,11 +254,27 @@ FINAL_DTB_CONTAINER = $(obj)/$(SPL_BIN).multidtb.fit
> >  endif
> >
> >
> > +ifneq ($(CONFIG_SPL_WITH_DTB_SIZE_LIMIT),0)
> > +SPL_WITH_DTB_SIZE_CHECK = \
> > +       @actual=`wc -c $@ | awk '{print $$1}'`; \
> > +       limit=`printf "%d" $(CONFIG_SPL_WITH_DTB_SIZE_LIMIT)`; \
> > +       if test $$actual -gt $$limit; then \
> > +               echo "$@ exceeds file size limit:" >&2 ; \
> > +               echo "  limit:  $$limit bytes" >&2 ; \
> > +               echo "  actual: $$actual bytes" >&2 ; \
> > +               echo "  excess: $$((actual - limit)) bytes" >&2; \
> > +               exit 1; \
> > +       fi
> > +else
> > +SPL_WITH_DTB_SIZE_CHECK =
> > +endif
> > +
> >  ifeq ($(CONFIG_$(SPL_TPL_)OF_CONTROL)$(CONFIG_OF_SEPARATE)$(CONFIG_$(SPL_TPL_)OF_PLATDATA),yy)
> >  $(obj)/$(SPL_BIN)-dtb.bin: $(obj)/$(SPL_BIN)-nodtb.bin \
> >                 $(if $(CONFIG_SPL_SEPARATE_BSS),,$(obj)/$(SPL_BIN)-pad.bin) \
> >                 $(FINAL_DTB_CONTAINER)  FORCE
> >         $(call if_changed,cat)
> > +       $(SPL_WITH_DTB_SIZE_CHECK)
> >
> >  $(obj)/$(SPL_BIN).bin: $(obj)/$(SPL_BIN)-dtb.bin FORCE
> >         $(call if_changed,copy)
> > --
> > 2.20.1
> >


More information about the U-Boot mailing list