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>
---

Notes:
    Changes in v2:
        - Rebase on current master
        - Rebase on my pending mips patch series:
          https://patchwork.ozlabs.org/project/uboot/list/?series=468232

 Kconfig                | 66 ++++++++++++++++++++++++++++++++++++++++++
 common/spl/Kconfig     | 45 ----------------------------
 common/spl/Kconfig.tpl |  7 -----
 common/spl/Kconfig.vpl |  7 -----
 4 files changed, 66 insertions(+), 59 deletions(-)

diff --git a/Kconfig b/Kconfig
index 99f7bb563df..ec20603883b 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 BOARD_SIZE_LIMIT
        int "Maximum size of the U-Boot image in bytes"
        default 524288 if RCAR_32
@@ -546,6 +548,70 @@ config BOARD_SIZE_LIMIT
          include SPL nor TPL, on platforms that use that functionality, they
          have separate options to restrict size.
 
+config UBOOT_WITH_SPL_SIZE_LIMIT
+       hex "Maximum size of u-boot-with-spl.bin"
+       default 0x0
+       help
+         Specifies the maximum length of the u-boot-with-spl.bin image.
+         If this value is zero, it is ignored.
+
+config SPL_SIZE_LIMIT
+       depends on SPL
+       hex "Maximum size of SPL image"
+       default 0x11000 if ARCH_MX6 && !MX6_OCRAM_256KB
+       default 0x31000 if ARCH_MX6 && MX6_OCRAM_256KB
+       default 0x30000 if ARCH_MVEBU && ARMADA_32BIT
+       default 0x0
+       help
+         Specifies the maximum length of the U-Boot SPL image.
+         If this value is zero, it is ignored.
+
+config SPL_SIZE_LIMIT_SUBTRACT_GD
+       bool "SPL image size check: provide space for global data"
+       depends on SPL_SIZE_LIMIT > 0
+       help
+         If enabled, aligned size of global data is reserved in
+         SPL_SIZE_LIMIT check to ensure such an image does not overflow SRAM
+         if SPL_SIZE_LIMIT describes the size of SRAM available for SPL when
+         pre-reloc global data is put into this SRAM, too.
+
+config SPL_SIZE_LIMIT_SUBTRACT_MALLOC
+       bool "SPL image size check: provide space for malloc() pool before 
relocation"
+       depends on SPL_SIZE_LIMIT > 0
+       help
+         If enabled, SPL_SYS_MALLOC_F_LEN is reserved in SPL_SIZE_LIMIT check
+         to ensure such an image does not overflow SRAM if SPL_SIZE_LIMIT
+         describes the size of SRAM available for SPL when pre-reloc malloc
+         pool is put into this SRAM, too.
+
+config SPL_SIZE_LIMIT_PROVIDE_STACK
+       hex "SPL image size check: provide stack space before relocation"
+       depends on SPL_SIZE_LIMIT > 0
+       default 0x0
+       help
+         If set, this size is reserved in SPL_SIZE_LIMIT check to ensure such
+         an image does not overflow SRAM if SPL_SIZE_LIMIT describes the size
+         of SRAM available for SPL when the stack required before reolcation
+         uses this SRAM, too.
+
+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.
+
+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.
+
+endmenu
+
 config SYS_CUSTOM_LDSCRIPT
        bool "Use a custom location for the U-Boot linker script"
        depends on !COMPILE_TEST
diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index b5c0c60ff6b..87a56bd8f8a 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -36,51 +36,6 @@ config SPL_FRAMEWORK_BOARD_INIT_F
          - initialize the serial (preloader_console_init)
          Unless you want to provide your own board_init_f, you should say Y.
 
-config UBOOT_WITH_SPL_SIZE_LIMIT
-       hex "Maximum size of u-boot-with-spl.bin"
-       default 0x0
-       help
-         Specifies the maximum length of the u-boot-with-spl.bin image.
-         If this value is zero, it is ignored.
-
-config SPL_SIZE_LIMIT
-       hex "Maximum size of SPL image"
-       default 0x11000 if ARCH_MX6 && !MX6_OCRAM_256KB
-       default 0x31000 if ARCH_MX6 && MX6_OCRAM_256KB
-       default 0x30000 if ARCH_MVEBU && ARMADA_32BIT
-       default 0x0
-       help
-         Specifies the maximum length of the U-Boot SPL image.
-         If this value is zero, it is ignored.
-
-config SPL_SIZE_LIMIT_SUBTRACT_GD
-       bool "SPL image size check: provide space for global data"
-       depends on SPL_SIZE_LIMIT > 0
-       help
-         If enabled, aligned size of global data is reserved in
-         SPL_SIZE_LIMIT check to ensure such an image does not overflow SRAM
-         if SPL_SIZE_LIMIT describes the size of SRAM available for SPL when
-         pre-reloc global data is put into this SRAM, too.
-
-config SPL_SIZE_LIMIT_SUBTRACT_MALLOC
-       bool "SPL image size check: provide space for malloc() pool before 
relocation"
-       depends on SPL_SIZE_LIMIT > 0
-       help
-         If enabled, SPL_SYS_MALLOC_F_LEN is reserved in SPL_SIZE_LIMIT check
-         to ensure such an image does not overflow SRAM if SPL_SIZE_LIMIT
-         describes the size of SRAM available for SPL when pre-reloc malloc
-         pool is put into this SRAM, too.
-
-config SPL_SIZE_LIMIT_PROVIDE_STACK
-       hex "SPL image size check: provide stack space before relocation"
-       depends on SPL_SIZE_LIMIT > 0
-       default 0x0
-       help
-         If set, this size is reserved in SPL_SIZE_LIMIT check to ensure such
-         an image does not overflow SRAM if SPL_SIZE_LIMIT describes the size
-         of SRAM available for SPL when the stack required before reolcation
-         uses this SRAM, too.
-
 config SPL_MAX_SIZE
        hex "Maximum size of the SPL image, excluding BSS"
        default 0x30000 if ARCH_MX6 && MX6_OCRAM_256KB
diff --git a/common/spl/Kconfig.tpl b/common/spl/Kconfig.tpl
index a535b61ecd3..515bbeec685 100644
--- a/common/spl/Kconfig.tpl
+++ b/common/spl/Kconfig.tpl
@@ -1,13 +1,6 @@
 menu "TPL configuration options"
        depends on TPL
 
-config TPL_SIZE_LIMIT
-       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.
-
 config TPL_BINMAN_SYMBOLS
        bool "Support binman symbols in TPL"
        depends on TPL_FRAMEWORK && BINMAN
diff --git a/common/spl/Kconfig.vpl b/common/spl/Kconfig.vpl
index 434562443ac..739f2805315 100644
--- a/common/spl/Kconfig.vpl
+++ b/common/spl/Kconfig.vpl
@@ -220,13 +220,6 @@ config VPL_SERIAL
          Enable support for serial in VPL. See SPL_SERIAL for
          details.
 
-config VPL_SIZE_LIMIT
-       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 VPL_SPI
        bool "Support SPI drivers"
        help
-- 
2.39.5

Reply via email to