Tom, On Thu, Feb 14, 2019 at 10:20 AM Simon Goldschmidt <simon.k.r.goldschm...@gmail.com> wrote: > > On Thu, Feb 14, 2019 at 7:26 AM Heinrich Schuchardt <xypron.g...@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.g...@gmx.de> > > Reviewed-by: Simon Goldschmidt <simon.k.r.goldschm...@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 > > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot