[U-Boot] [PATCH 045/126] spl: Add a size check for TPL

Simon Goldschmidt simon.k.r.goldschmidt at gmail.com
Thu Sep 26 12:22:45 UTC 2019


Hi Simon,

On Wed, Sep 25, 2019 at 5:36 PM Simon Glass <sjg at chromium.org> wrote:
>
> We have the ability to enforce a maximum size for SPL but not yet for TPL.
> Add a new option for this.
>
> Document the size check macro while we are here.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
>  Makefile           | 7 +++++++
>  common/spl/Kconfig | 8 ++++++++
>  2 files changed, 15 insertions(+)
>
> diff --git a/Makefile b/Makefile
> index a7a48b6aef3..43961af590f 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -806,6 +806,12 @@ else
>  SPL_SIZE_CHECK =
>  endif
>
> +ifneq ($(CONFIG_TPL_SIZE_LIMIT),0)
> +TPL_SIZE_CHECK = @$(call size_check,$@,$(CONFIG_TPL_SIZE_LIMIT))

Using a constant here is not what SPL does by now: some months ago, I
implemented a more sophisticated size check for SPL that also integrates
'gd', stack and heap usage into the size check. Wouldn't that be required for
TPL as well (at least on platforms where everything must fit into SRAM)?

Regards,
Simon


> +else
> +TPL_SIZE_CHECK =
> +endif
> +
>  # Statically apply RELA-style relocations (currently arm64 only)
>  # This is useful for arm64 where static relocation needs to be performed on
>  # the raw binary, but certain simulators only accept an ELF file (but don't
> @@ -1786,6 +1792,7 @@ spl/boot.bin: spl/u-boot-spl
>  tpl/u-boot-tpl.bin: tools prepare \
>                 $(if $(CONFIG_OF_SEPARATE)$(CONFIG_OF_EMBED)$(CONFIG_SPL_OF_PLATDATA),dts/dt.dtb)
>         $(Q)$(MAKE) obj=tpl -f $(srctree)/scripts/Makefile.spl all
> +       $(TPL_SIZE_CHECK)
>
>  TAG_SUBDIRS := $(patsubst %,$(srctree)/%,$(u-boot-dirs) include)
>
> diff --git a/common/spl/Kconfig b/common/spl/Kconfig
> index ef4fb19e52c..b6d7bc81802 100644
> --- a/common/spl/Kconfig
> +++ b/common/spl/Kconfig
> @@ -1183,6 +1183,14 @@ config TPL
>
>  if TPL
>
> +config TPL_SIZE_LIMIT
> +       hex "Maximum size of TPL image"
> +       depends on TPL
> +       default 0
> +       help
> +         Specifies the maximum length of the U-Boot TPL image.
> +         If this value is zero, it is ignored.
> +
>  config TPL_HANDOFF
>         bool "Pass hand-off information from TPL to SPL and U-Boot proper"
>         depends on HANDOFF && TPL_BLOBLIST
> --
> 2.23.0.444.g18eeb5a265-goog
>


More information about the U-Boot mailing list