On Fri, Sep 05, 2025 at 10:13:36AM +0200, Philip Oberfichtner wrote: > 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 <p...@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?
We are not consistent about this, and it really becomes a stylistic argument. Roughly speaking, common/spl/Kconfig.* is for things core to a given phase (SPL, TPL, VPL) which is why often but not always, say compression algorithms are with the compression algorithms. In this case, limits are a core part of the phase so I think Marek's point is valid here. -- Tom
signature.asc
Description: PGP signature