spl: support TPL_STACK, TPL_MAX_SIZE and TPL_TEXT_BASE via Kconfig
authorPhilipp Tomsich <philipp.tomsich@theobroma-systems.com>
Fri, 28 Jul 2017 18:02:34 +0000 (20:02 +0200)
committerPhilipp Tomsich <philipp.tomsich@theobroma-systems.com>
Sun, 13 Aug 2017 15:12:34 +0000 (17:12 +0200)
Let's clean up behind ourselves and move the (newly defined)
TPL_STACK, TPL_MAX_SIZE and TPL_TEXT_BASE into Kconfig.  Given that
0x0 might be considered to be valid values for TPL_TEXT_BASE and
TPL_STACK, we need to introduce helper config options
("TPL_NEEDS_SEPARATE_...") to indicate that these symbols are used
(and not inherited from their SPL variants) for any given
target-platform.

Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
common/spl/Kconfig

index 3342c04aa53c486dc17d5f1fa4a26d6c098d8286..1a905884927e1570fbb22e58acbca1899bd10ef5 100644 (file)
@@ -726,6 +726,45 @@ config TPL_LDSCRIPT
          U-Boot stage.  Set this to the path of the linker-script to
          be used for TPL.
 
+         May be left empty to trigger the Makefile infrastructure to
+         fall back to the linker-script used for the SPL stage.
+
+config TPL_NEEDS_SEPARATE_TEXT_BASE
+        bool "TPL needs a separate text-base"
+       default n
+       depends on TPL
+       help
+         Enable, if the TPL stage should not inherit its text-base
+         from the SPL stage.  When enabled, a base address for the
+         .text sections of the TPL stage has to be set below.
+
+config TPL_NEEDS_SEPARATE_STACK
+        bool "TPL needs a separate initial stack-pointer"
+       default n
+       depends on TPL
+       help
+         Enable, if the TPL stage should not inherit its initial
+         stack-pointer from the settings for the SPL stage.
+
+config TPL_TEXT_BASE
+        hex "Base address for the .text section of the TPL stage"
+       depends on TPL_NEEDS_SEPARATE_TEXT_BASE
+       help
+         The base address for the .text section of the TPL stage.
+
+config TPL_MAX_SIZE
+        int "Maximum size (in bytes) for the TPL stage"
+       depends on TPL
+       help
+         The maximum size (in bytes) of the TPL stage.
+
+config TPL_STACK
+        hex "Address of the initial stack-pointer for the TPL stage"
+       depends on TPL_NEEDS_SEPARATE_STACK
+       help
+         The address of the initial stack-pointer for the TPL stage.
+         Usually this will be the (aligned) top-of-stack.
+
 config TPL_BOOTROM_SUPPORT
         bool "Support returning to the BOOTROM (from TPL)"
        help