[PATCH v3 1/5] Image size checks: Move all configs in one place

Philip Oberfichtner pro at denx.de
Fri Sep 5 10:13:36 CEST 2025


On Thu, Sep 04, 2025 at 03:54:54PM +0200, Marek Vasut wrote:
> On 9/4/25 10:12 AM, Philip Oberfichtner wrote:
> > On Wed, Sep 03, 2025 at 02:50:49PM +0200, Marek Vasut wrote:
> > > On 9/3/25 12:56 PM, Philip Oberfichtner wrote:
> > > > How image size limiting works in U-Boot should be easier to grasp if we
> > > > have all related options in one place.
> > > > 
> > > > Signed-off-by: Philip Oberfichtner <pro at denx.de>
> > > > ---
> > > >    Kconfig                | 59 ++++++++++++++++++++++++++++++++++++++++++
> > > >    common/spl/Kconfig     | 38 ---------------------------
> > > >    common/spl/Kconfig.tpl |  7 -----
> > > >    common/spl/Kconfig.vpl |  7 -----
> > > >    4 files changed, 59 insertions(+), 52 deletions(-)
> > > > 
> > > > diff --git a/Kconfig b/Kconfig
> > > > index 70125c4e5a6..f1a6be299e8 100644
> > > > --- a/Kconfig
> > > > +++ b/Kconfig
> > > > @@ -535,6 +535,8 @@ config BUILD_TARGET
> > > >    	  special image will be automatically built upon calling
> > > >    	  make / buildman.
> > > > +menu "Image size limits"
> > > > +
> > > >    config HAS_BOARD_SIZE_LIMIT
> > > >    	bool "Define a maximum size for the U-Boot image"
> > > >    	depends on !COMPILE_TEST
> > > > @@ -554,6 +556,63 @@ config BOARD_SIZE_LIMIT
> > > >    	  include SPL nor TPL, on platforms that use that functionality, they
> > > >    	  have separate options to restrict size.
> > > > +config VPL_SIZE_LIMIT
> > > > +	depends on VPL
> > > > +	hex "Maximum size of VPL image"
> > > > +	default 0x0
> > > > +	help
> > > > +	  Specifies the maximum length of the U-Boot VPL image.
> > > > +	  If this value is zero, it is ignored.
> > > > +
> > > > +config TPL_SIZE_LIMIT
> > > > +	depends on TPL
> > > > +	hex "Maximum size of TPL image"
> > > > +	default 0x0
> > > > +	help
> > > > +	  Specifies the maximum length of the U-Boot TPL image.
> > > > +	  If this value is zero, it is ignored.
> > > The point of separate common/spl/Kconfig.tpl and common/spl/Kconfig.vpl
> > > files is to group SPL / TPL / VPL symbols in those files .
> > 
> > There is "config TPL_" definitions literally all over the place. I think
> > there might actually even be more of them outside Kconfig.tpl than
> > inside.
> 
> That does not make it OK to make that situation worse.

It doesn't. Someone who stumbles over BOARD_SIZE_LIMIT might be asking
himself, if there's an analogous option for SPL, too. It'll jump right
into his eyes, after this patch of mine.

And apparently there were other contributers before me who found it
reasonable to group strongly related options together within one menu,
instead of spreading them out over many different places. Let me give
you a few examples (and this list is by far not exhaustive):


	Kconfig:
		config SYS_MALLOC_F
		config SPL_SYS_MALLOC_F
		config TPL_SYS_MALLOC_F
		config VPL_SYS_MALLOC_F

	arch/Kconfig 
		menu "Skipping low level initialization functions"
		config SKIP_LOWLEVEL_INIT
		config SPL_SKIP_LOWLEVEL_INIT
		config TPL_SKIP_LOWLEVEL_INIT

	boot/Kconfig
		menuconfig FIT
		config SPL_FIT
		config VPL_FIT
		config TPL_FIT


	common/Kconfig
		menu "Logging"
		config LOG
		config SPL_LOG
		config TPL_LOG
		config VPL_LOG

	dts/Kconfig
		menu "Device Tree Control"
		config OF_CONTROL
		config SPL_OF_CONTROL
		config TPL_OF_CONTROL
		config VPL_OF_CONTROL

	lib/Kconfig
		menu "Compression Support"
		config LZ4
		config SPL_LZ4
		config TPL_LZ4
		config VPL_LZ4


So how do these and many other cases differ from the SIZE_LIMIT case
discussed here? Or would it be better to tear all those menus apart?


More information about the U-Boot mailing list