[U-Boot] [PATCH] TI: Rework SRAM definitions and maximums

Lokesh Vutla lokeshvutla at ti.com
Sat Aug 27 13:59:44 CEST 2016



On Friday 26 August 2016 11:00 PM, Tom Rini wrote:
> On all TI platforms the ROM defines a "downloaded image" area at or near
> the start of SRAM which is followed by a reserved area.  As it is at
> best bad form and at worst possibly harmful in corner cases to write in
> this reserved area, we stop doing that by adding in the define
> NON_SECURE_SRAM_IMG_END to say where the end of the downloaded image
> area is and make SRAM_SCRATCH_SPACE_ADDR be one kilobyte before this.
> At current we define the end of scratch space at 0x228 bytes past the
> start of scratch space this this gives us a lot of room to grow.  As
> these scratch uses are non-optional today, all targets are modified to
> respect this boundary.
> 
> Tested on OMAP4 Pandaboard, OMAP3 Beagle xM

Verified on AM437x-GP EVM.

Tested-by: Lokesh Vutla <lokeshvutla at ti.com>
Acked-by: Lokesh Vutla <lokeshvutla at ti.com>

Thanks and regards,
Lokesh


> 
> Cc: Albert Aribaud <albert.u.boot at aribaud.net>
> Cc: Nagendra T S <nagendra at mistralsolutions.com>
> Cc: Vaibhav Hiremath <hvaibhav at ti.com>
> Cc: Lokesh Vutla <lokeshvutla at ti.com>
> Cc: Felipe Balbi <balbi at ti.com>
> Cc: Igor Grinberg <grinberg at compulab.co.il>
> Cc: Nikita Kiryanov <nikita at compulab.co.il>
> Cc: Paul Kocialkowski <contact at paulk.fr>
> Cc: Enric Balletbo i Serra <eballetbo at gmail.com>
> Cc: Adam Ford <aford173 at gmail.com>
> Cc: Steve Sakoman <sakoman at gmail.com>
> Cc: Stefan Roese <sr at denx.de>
> Cc: Thomas Weber <weber at corscience.de>
> Cc: Hannes Schmelzer <oe5hpm at oevsv.at>
> Cc: Thomas Chou <thomas at wytron.com.tw>
> Cc: Masahiro Yamada <yamada.masahiro at socionext.com>
> Cc: Simon Glass <sjg at chromium.org>
> Cc: Joe Hershberger <joe.hershberger at ni.com>
> Cc: Sam Protsenko <semen.protsenko at linaro.org>
> Cc: Heiko Schocher <hs at denx.de>
> Cc: Samuel Egli <samuel.egli at siemens.com>
> Cc: Michal Simek <michal.simek at xilinx.com>
> Cc: Wolfgang Denk <wd at denx.de>
> Cc: Mateusz Kulikowski <mateusz.kulikowski at gmail.com>
> Cc: Ben Whitten <ben.whitten at gmail.com>
> Cc: Stefano Babic <sbabic at denx.de>
> Cc: Bin Meng <bmeng.cn at gmail.com>
> Cc: Sekhar Nori <nsekhar at ti.com>
> Cc: Mugunthan V N <mugunthanvnm at ti.com>
> Cc: "B, Ravi" <ravibabu at ti.com>
> Cc: "Matwey V. Kornilov" <matwey.kornilov at gmail.com>
> Cc: Ladislav Michl <ladis at linux-mips.org>
> Cc: Ash Charles <ashcharles at gmail.com>
> Cc: "Kipisz, Steven" <s-kipisz2 at ti.com>
> Cc: Daniel Allred <d-allred at ti.com>
> Signed-off-by: Tom Rini <trini at konsulko.com>
> ---
>  arch/arm/include/asm/arch-am33xx/omap.h | 13 ++++++-------
>  arch/arm/include/asm/arch-omap3/omap.h  |  5 ++++-
>  arch/arm/include/asm/arch-omap4/omap.h  |  5 ++++-
>  arch/arm/include/asm/arch-omap5/omap.h  |  6 +++++-
>  include/configs/am3517_crane.h          |  3 ++-
>  include/configs/am3517_evm.h            |  3 ++-
>  include/configs/am43xx_evm.h            |  3 ---
>  include/configs/am57xx_evm.h            |  2 --
>  include/configs/bur_am335x_common.h     |  6 ++++--
>  include/configs/cm_t35.h                |  3 ++-
>  include/configs/cm_t43.h                |  1 -
>  include/configs/dra7xx_evm.h            |  2 --
>  include/configs/kc1.h                   |  3 ++-
>  include/configs/omap3_evm.h             |  3 ++-
>  include/configs/omap3_igep00x0.h        |  8 ++++----
>  include/configs/omap3_logic.h           | 10 ++++++----
>  include/configs/omap3_overo.h           |  8 +++++---
>  include/configs/siemens-am33x-common.h  |  3 ++-
>  include/configs/sniper.h                |  3 ++-
>  include/configs/tam3517-common.h        |  3 ++-
>  include/configs/tao3530.h               |  3 ++-
>  include/configs/ti814x_evm.h            |  3 ++-
>  include/configs/ti816x_evm.h            |  3 ++-
>  include/configs/ti_am335x_common.h      |  1 -
>  include/configs/ti_armv7_common.h       | 21 +++++++++++++--------
>  include/configs/ti_omap3_common.h       |  1 -
>  include/configs/ti_omap4_common.h       |  1 -
>  include/configs/ti_omap5_common.h       |  7 -------
>  include/configs/tricorder.h             |  3 ++-
>  29 files changed, 75 insertions(+), 61 deletions(-)
> 
> diff --git a/arch/arm/include/asm/arch-am33xx/omap.h b/arch/arm/include/asm/arch-am33xx/omap.h
> index 47962dadf59c..3293caaca4ab 100644
> --- a/arch/arm/include/asm/arch-am33xx/omap.h
> +++ b/arch/arm/include/asm/arch-am33xx/omap.h
> @@ -15,24 +15,23 @@
>  #ifndef _OMAP_H_
>  #define _OMAP_H_
>  
> +#include <linux/sizes.h>
> +
>  #ifdef CONFIG_AM33XX
>  #define NON_SECURE_SRAM_START	0x402F0400
>  #define NON_SECURE_SRAM_END	0x40310000
> -#define SRAM_SCRATCH_SPACE_ADDR	0x4030B800
> +#define NON_SECURE_SRAM_IMG_END	0x4030B800
>  #elif defined(CONFIG_TI81XX)
>  #define NON_SECURE_SRAM_START	0x40300000
>  #define NON_SECURE_SRAM_END	0x40320000
> -#define SRAM_SCRATCH_SPACE_ADDR	0x4031B800
> +#define NON_SECURE_SRAM_IMG_END	0x4031B800
>  #elif defined(CONFIG_AM43XX)
>  #define NON_SECURE_SRAM_START	0x402F0400
>  #define NON_SECURE_SRAM_END	0x40340000
> -#define SRAM_SCRATCH_SPACE_ADDR	0x40337C00
> -#define AM4372_BOARD_NAME_START	SRAM_SCRATCH_SPACE_ADDR
> -#define AM4372_BOARD_NAME_END	SRAM_SCRATCH_SPACE_ADDR + 0xC
> -#define AM4372_BOARD_VERSION_START	SRAM_SCRATCH_SPACE_ADDR + 0xD
> -#define AM4372_BOARD_VERSION_END	SRAM_SCRATCH_SPACE_ADDR + 0x14
> +#define NON_SECURE_SRAM_IMG_END	0x40337DE0
>  #define QSPI_BASE              0x47900000
>  #endif
> +#define SRAM_SCRATCH_SPACE_ADDR	(NON_SECURE_SRAM_IMG_END - SZ_1K)
>  
>  /* Boot parameters */
>  #ifndef __ASSEMBLY__
> diff --git a/arch/arm/include/asm/arch-omap3/omap.h b/arch/arm/include/asm/arch-omap3/omap.h
> index bc0e02a200cb..417ff895f19e 100644
> --- a/arch/arm/include/asm/arch-omap3/omap.h
> +++ b/arch/arm/include/asm/arch-omap3/omap.h
> @@ -10,6 +10,8 @@
>  #ifndef _OMAP3_H_
>  #define _OMAP3_H_
>  
> +#include <linux/sizes.h>
> +
>  /* Stuff on L3 Interconnect */
>  #define SMX_APE_BASE			0x68000000
>  
> @@ -145,7 +147,8 @@ struct gpio {
>  
>  #define NON_SECURE_SRAM_START		0x40208000 /* Works for GP & EMU */
>  #define NON_SECURE_SRAM_END		0x40210000
> -#define SRAM_SCRATCH_SPACE_ADDR		0x4020E000
> +#define NON_SECURE_SRAM_IMG_END		0x4020F000
> +#define SRAM_SCRATCH_SPACE_ADDR		(NON_SECURE_SRAM_IMG_END - SZ_1K)
>  
>  #define LOW_LEVEL_SRAM_STACK		0x4020FFFC
>  
> diff --git a/arch/arm/include/asm/arch-omap4/omap.h b/arch/arm/include/asm/arch-omap4/omap.h
> index 5ccda6ee94ce..b86a7768401c 100644
> --- a/arch/arm/include/asm/arch-omap4/omap.h
> +++ b/arch/arm/include/asm/arch-omap4/omap.h
> @@ -19,6 +19,8 @@
>  #include <asm/types.h>
>  #endif /* !(__KERNEL_STRICT_NAMES || __ASSEMBLY__) */
>  
> +#include <linux/sizes.h>
> +
>  /*
>   * L4 Peripherals - L4 Wakeup and L4 Core now
>   */
> @@ -109,7 +111,8 @@ struct s32ktimer {
>   */
>  #define NON_SECURE_SRAM_START	0x40304000
>  #define NON_SECURE_SRAM_END	0x4030E000	/* Not inclusive */
> -#define SRAM_SCRATCH_SPACE_ADDR	0x4030C000
> +#define NON_SECURE_SRAM_IMG_END	0x4030C000
> +#define SRAM_SCRATCH_SPACE_ADDR	(NON_SECURE_SRAM_IMG_END - SZ_1K)
>  /* base address for indirect vectors (internal boot mode) */
>  #define SRAM_ROM_VECT_BASE	0x4030D000
>  
> diff --git a/arch/arm/include/asm/arch-omap5/omap.h b/arch/arm/include/asm/arch-omap5/omap.h
> index 2fd5cda6238f..ef8e9752450e 100644
> --- a/arch/arm/include/asm/arch-omap5/omap.h
> +++ b/arch/arm/include/asm/arch-omap5/omap.h
> @@ -16,6 +16,8 @@
>  #include <asm/types.h>
>  #endif /* !(__KERNEL_STRICT_NAMES || __ASSEMBLY__) */
>  
> +#include <linux/sizes.h>
> +
>  /*
>   * L4 Peripherals - L4 Wakeup and L4 Core now
>   */
> @@ -186,11 +188,13 @@ struct s32ktimer {
>  #if defined(CONFIG_DRA7XX) || defined(CONFIG_AM57XX)
>  #define NON_SECURE_SRAM_START	0x40300000
>  #define NON_SECURE_SRAM_END	0x40380000	/* Not inclusive */
> +#define NON_SECURE_SRAM_IMG_END	0x4037E000
>  #else
>  #define NON_SECURE_SRAM_START	0x40300000
>  #define NON_SECURE_SRAM_END	0x40320000	/* Not inclusive */
> +#define NON_SECURE_SRAM_IMG_END	0x4031E000
>  #endif
> -#define SRAM_SCRATCH_SPACE_ADDR	0x4031E000
> +#define SRAM_SCRATCH_SPACE_ADDR	(NON_SECURE_SRAM_IMG_END - SZ_1K)
>  
>  /* base address for indirect vectors (internal boot mode) */
>  #define SRAM_ROM_VECT_BASE	0x4031F000
> diff --git a/include/configs/am3517_crane.h b/include/configs/am3517_crane.h
> index a65d1a884b01..7855e88c6922 100644
> --- a/include/configs/am3517_crane.h
> +++ b/include/configs/am3517_crane.h
> @@ -279,7 +279,8 @@
>  #define CONFIG_SPL_BOARD_INIT
>  #define CONFIG_SPL_NAND_SIMPLE
>  #define CONFIG_SPL_TEXT_BASE		0x40200800
> -#define CONFIG_SPL_MAX_SIZE		(54 * 1024)	/* 8 KB for stack */
> +#define CONFIG_SPL_MAX_SIZE		(SRAM_SCRATCH_SPACE_ADDR - \
> +					 CONFIG_SPL_TEXT_BASE)
>  
>  #define CONFIG_SPL_BSS_START_ADDR	0x80000000
>  #define CONFIG_SPL_BSS_MAX_SIZE		0x80000		/* 512 KB */
> diff --git a/include/configs/am3517_evm.h b/include/configs/am3517_evm.h
> index 4d88aac63750..b0779c387cab 100644
> --- a/include/configs/am3517_evm.h
> +++ b/include/configs/am3517_evm.h
> @@ -337,7 +337,8 @@
>  #define CONFIG_SPL_BOARD_INIT
>  #define CONFIG_SPL_NAND_SIMPLE
>  #define CONFIG_SPL_TEXT_BASE		0x40200000
> -#define CONFIG_SPL_MAX_SIZE		(64 * 1024)
> +#define CONFIG_SPL_MAX_SIZE		(SRAM_SCRATCH_SPACE_ADDR - \
> +					 CONFIG_SPL_TEXT_BASE)
>  
>  #define CONFIG_SPL_BSS_START_ADDR	0x80000000
>  #define CONFIG_SPL_BSS_MAX_SIZE		0x80000		/* 512 KB */
> diff --git a/include/configs/am43xx_evm.h b/include/configs/am43xx_evm.h
> index 0467953566c6..4ce133e46ee5 100644
> --- a/include/configs/am43xx_evm.h
> +++ b/include/configs/am43xx_evm.h
> @@ -38,9 +38,6 @@
>  
>  /* SPL defines. */
>  #define CONFIG_SPL_TEXT_BASE		CONFIG_ISW_ENTRY_ADDR
> -#define CONFIG_SPL_MAX_SIZE		(NON_SECURE_SRAM_END - \
> -					CONFIG_PUB_ROM_DATA_SIZE - \
> -					CONFIG_SPL_TEXT_BASE)
>  #define CONFIG_SYS_SPL_ARGS_ADDR	(CONFIG_SYS_SDRAM_BASE + \
>  					 (128 << 20))
>  #define CONFIG_SPL_POWER_SUPPORT
> diff --git a/include/configs/am57xx_evm.h b/include/configs/am57xx_evm.h
> index 46e8d4cfd715..cf74dbe740ab 100644
> --- a/include/configs/am57xx_evm.h
> +++ b/include/configs/am57xx_evm.h
> @@ -102,8 +102,6 @@
>  #ifdef CONFIG_SPL_BUILD
>  #undef CONFIG_DM_SPI
>  #undef CONFIG_DM_SPI_FLASH
> -#undef CONFIG_SPL_MAX_SIZE
> -#define CONFIG_SPL_MAX_SIZE             (256 << 10) /* 256 KiB */
>  #endif
>  
>  /* SPI SPL */
> diff --git a/include/configs/bur_am335x_common.h b/include/configs/bur_am335x_common.h
> index a94b1e271155..a6a4f0c94384 100644
> --- a/include/configs/bur_am335x_common.h
> +++ b/include/configs/bur_am335x_common.h
> @@ -47,10 +47,12 @@
>   * area between 0x402F0400 and 0x4030B800 as a download area and
>   * 0x4030B800 to 0x4030CE00 as a public stack area.  The ROM also
>   * supports X-MODEM loading via UART, and we leverage this and then use
> - * Y-MODEM to load u-boot.img, when booted over UART.
> + * Y-MODEM to load u-boot.img, when booted over UART.  We must also include
> + * the scratch space that U-Boot uses in SRAM.
>   */
>  #define CONFIG_SPL_TEXT_BASE		0x402F0400
> -#define CONFIG_SPL_MAX_SIZE		(0x4030B800 - CONFIG_SPL_TEXT_BASE)
> +#define CONFIG_SPL_MAX_SIZE		(SRAM_SCRATCH_SPACE_ADDR - \
> +					 CONFIG_SPL_TEXT_BASE)
>  
>  /*
>   * Since SPL did pll and ddr initialization for us,
> diff --git a/include/configs/cm_t35.h b/include/configs/cm_t35.h
> index 03dc3cc0d919..5d717a4a5284 100644
> --- a/include/configs/cm_t35.h
> +++ b/include/configs/cm_t35.h
> @@ -344,7 +344,8 @@
>  #define CONFIG_SYS_NAND_U_BOOT_OFFS	0x80000
>  
>  #define CONFIG_SPL_TEXT_BASE		0x40200800
> -#define CONFIG_SPL_MAX_SIZE		(54 * 1024)	/* 8 KB for stack */
> +#define CONFIG_SPL_MAX_SIZE		(SRAM_SCRATCH_SPACE_ADDR - \
> +					 CONFIG_SPL_TEXT_BASE)
>  
>  /*
>   * Use 0x80008000 as TEXT_BASE here for compatibility reasons with the
> diff --git a/include/configs/cm_t43.h b/include/configs/cm_t43.h
> index 5d94f133cba9..a0f981625a7d 100644
> --- a/include/configs/cm_t43.h
> +++ b/include/configs/cm_t43.h
> @@ -154,7 +154,6 @@
>  
>  /* SPL defines. */
>  #define CONFIG_SPL_TEXT_BASE		0x40300350
> -#define CONFIG_SPL_MAX_SIZE		(64 * 1024)
>  #define CONFIG_SYS_SPL_ARGS_ADDR	(CONFIG_SYS_SDRAM_BASE + (128 << 20))
>  #define CONFIG_SPL_POWER_SUPPORT
>  #define CONFIG_SYS_SPI_U_BOOT_OFFS	(256 * 1024)
> diff --git a/include/configs/dra7xx_evm.h b/include/configs/dra7xx_evm.h
> index b66949f4155b..ed1ee5453fbb 100644
> --- a/include/configs/dra7xx_evm.h
> +++ b/include/configs/dra7xx_evm.h
> @@ -185,8 +185,6 @@
>  /* In SPL, use the environment and discard MMC support for space. */
>  #ifdef CONFIG_SPL_BUILD
>  #undef CONFIG_SPL_MMC_SUPPORT
> -#undef CONFIG_SPL_MAX_SIZE
> -#define CONFIG_SPL_MAX_SIZE             (64 << 10) /* 64 KiB */
>  #endif
>  #define CONFIG_SPL_ENV_SUPPORT
>  #define CONFIG_ENV_IS_IN_SPI_FLASH
> diff --git a/include/configs/kc1.h b/include/configs/kc1.h
> index b08cf2161db7..b30aca6047cd 100644
> --- a/include/configs/kc1.h
> +++ b/include/configs/kc1.h
> @@ -120,7 +120,8 @@
>  #define CONFIG_SPL_FRAMEWORK
>  
>  #define CONFIG_SPL_TEXT_BASE		0x40300000
> -#define CONFIG_SPL_MAX_SIZE		(48 * 1024)
> +#define CONFIG_SPL_MAX_SIZE		(SRAM_SCRATCH_SPACE_ADDR - \
> +					 CONFIG_SPL_TEXT_BASE)
>  #define CONFIG_SPL_BSS_START_ADDR	0x80000000
>  #define CONFIG_SPL_BSS_MAX_SIZE		(512 * 1024)
>  #define CONFIG_SYS_SPL_MALLOC_START	0x80208000
> diff --git a/include/configs/omap3_evm.h b/include/configs/omap3_evm.h
> index 52a24d37b882..83af42686c8c 100644
> --- a/include/configs/omap3_evm.h
> +++ b/include/configs/omap3_evm.h
> @@ -345,7 +345,8 @@
>  /* Defines for SPL */
>  #define CONFIG_SPL_FRAMEWORK
>  #define CONFIG_SPL_TEXT_BASE		0x40200800
> -#define CONFIG_SPL_MAX_SIZE		(54 * 1024)	/* 8 KB for stack */
> +#define CONFIG_SPL_MAX_SIZE		(SRAM_SCRATCH_SPACE_ADDR - \
> +					 CONFIG_SPL_TEXT_BASE)
>  
>  #define CONFIG_SPL_BSS_START_ADDR	0x80000000
>  #define CONFIG_SPL_BSS_MAX_SIZE		0x80000		/* 512 KB */
> diff --git a/include/configs/omap3_igep00x0.h b/include/configs/omap3_igep00x0.h
> index e0d25937f735..3389bf316472 100644
> --- a/include/configs/omap3_igep00x0.h
> +++ b/include/configs/omap3_igep00x0.h
> @@ -16,11 +16,11 @@
>  #include <configs/ti_omap3_common.h>
>  #include <asm/mach-types.h>
>  
> -/* SRAM starts at 0x40200000 and ends at 0x4020FFFF (64KB) */
> -#undef CONFIG_SPL_MAX_SIZE
> +/*
> + * We are only ever GP parts and will utilize all of the "downloaded image"
> + * area in SRAM which starts at 0x40200000 and ends at 0x4020FFFF (64KB).
> + */
>  #undef CONFIG_SPL_TEXT_BASE
> -
> -#define CONFIG_SPL_MAX_SIZE		(SRAM_SCRATCH_SPACE_ADDR - CONFIG_SPL_TEXT_BASE)
>  #define CONFIG_SPL_TEXT_BASE		0x40200000
>  
>  /*
> diff --git a/include/configs/omap3_logic.h b/include/configs/omap3_logic.h
> index 49a8b3f5ef43..2ed89efa0ba5 100644
> --- a/include/configs/omap3_logic.h
> +++ b/include/configs/omap3_logic.h
> @@ -30,11 +30,13 @@
>  
>  #include <configs/ti_omap3_common.h>
>  
> -/* Override default SPL info to minimize empty space and allow BCH8 in SPL */
> +/*
> + * We are only ever GP parts and will utilize all of the "downloaded image"
> + * area in SRAM which starts at 0x40200000 and ends at 0x4020FFFF (64KB) in
> + * order to allow for BCH8 to fit in.
> + */
>  #undef CONFIG_SPL_TEXT_BASE
> -#undef CONFIG_SPL_MAX_SIZE
> -#define CONFIG_SPL_TEXT_BASE   0x40200000
> -#define CONFIG_SPL_MAX_SIZE    (SRAM_SCRATCH_SPACE_ADDR - CONFIG_SPL_TEXT_BASE)
> +#define CONFIG_SPL_TEXT_BASE		0x40200000
>  
>  /* Display CPU and Board information */
>  
> diff --git a/include/configs/omap3_overo.h b/include/configs/omap3_overo.h
> index fbd0c2a07085..be7159bee35b 100644
> --- a/include/configs/omap3_overo.h
> +++ b/include/configs/omap3_overo.h
> @@ -11,10 +11,12 @@
>  #define CONFIG_NAND
>  
>  #include <configs/ti_omap3_common.h>
> -#undef CONFIG_SPL_MAX_SIZE
> +/*
> + * We are only ever GP parts and will utilize all of the "downloaded image"
> + * area in SRAM which starts at 0x40200000 and ends at 0x4020FFFF (64KB).
> + */
>  #undef CONFIG_SPL_TEXT_BASE
> -#define CONFIG_SPL_TEXT_BASE	0x40200000
> -#define CONFIG_SPL_MAX_SIZE    (SRAM_SCRATCH_SPACE_ADDR - CONFIG_SPL_TEXT_BASE)
> +#define CONFIG_SPL_TEXT_BASE		0x40200000
>  
>  #define CONFIG_BCH
>  
> diff --git a/include/configs/siemens-am33x-common.h b/include/configs/siemens-am33x-common.h
> index eab665c2866b..5ca94b06d869 100644
> --- a/include/configs/siemens-am33x-common.h
> +++ b/include/configs/siemens-am33x-common.h
> @@ -126,7 +126,8 @@
>  /* Defines for SPL */
>  #define CONFIG_SPL_FRAMEWORK
>  #define CONFIG_SPL_TEXT_BASE		0x402F0400
> -#define CONFIG_SPL_MAX_SIZE		(101 * 1024)
> +#define CONFIG_SPL_MAX_SIZE		(SRAM_SCRATCH_SPACE_ADDR - \
> +					 CONFIG_SPL_TEXT_BASE)
>  
>  #define CONFIG_SPL_BSS_START_ADDR	0x80000000
>  #define CONFIG_SPL_BSS_MAX_SIZE		0x80000		/* 512 KB */
> diff --git a/include/configs/sniper.h b/include/configs/sniper.h
> index fb348a5cd26e..cd303c3c201d 100644
> --- a/include/configs/sniper.h
> +++ b/include/configs/sniper.h
> @@ -128,7 +128,8 @@
>  #define CONFIG_SPL_FRAMEWORK
>  
>  #define CONFIG_SPL_TEXT_BASE		0x40200000
> -#define CONFIG_SPL_MAX_SIZE		(54 * 1024)
> +#define CONFIG_SPL_MAX_SIZE		(SRAM_SCRATCH_SPACE_ADDR - \
> +					 CONFIG_SPL_TEXT_BASE)
>  #define CONFIG_SPL_BSS_START_ADDR	0x80000000
>  #define CONFIG_SPL_BSS_MAX_SIZE		(512 * 1024)
>  #define CONFIG_SYS_SPL_MALLOC_START	0x80208000
> diff --git a/include/configs/tam3517-common.h b/include/configs/tam3517-common.h
> index 73ff416aed2a..06aca6a3b3da 100644
> --- a/include/configs/tam3517-common.h
> +++ b/include/configs/tam3517-common.h
> @@ -220,7 +220,8 @@
>  #define CONFIG_SPL_LDSCRIPT		"$(CPUDIR)/omap-common/u-boot-spl.lds"
>  
>  #define CONFIG_SPL_TEXT_BASE		0x40200000 /*CONFIG_SYS_SRAM_START*/
> -#define CONFIG_SPL_MAX_SIZE		(54 * 1024)	/* 8 KB for stack */
> +#define CONFIG_SPL_MAX_SIZE		(SRAM_SCRATCH_SPACE_ADDR - \
> +					 CONFIG_SPL_TEXT_BASE)
>  #define CONFIG_SPL_STACK		LOW_LEVEL_SRAM_STACK
>  
>  #define CONFIG_SYS_SPL_MALLOC_START	0x8f000000
> diff --git a/include/configs/tao3530.h b/include/configs/tao3530.h
> index 6616d7396e74..15243c99dd72 100644
> --- a/include/configs/tao3530.h
> +++ b/include/configs/tao3530.h
> @@ -328,7 +328,8 @@
>  #define CONFIG_SYS_NAND_U_BOOT_OFFS	0x80000
>  
>  #define CONFIG_SPL_TEXT_BASE		0x40200800
> -#define CONFIG_SPL_MAX_SIZE		(54 * 1024)	/* 8 KB for stack */
> +#define CONFIG_SPL_MAX_SIZE		(SRAM_SCRATCH_SPACE_ADDR - \
> +					 CONFIG_SPL_TEXT_BASE)
>  
>  /*
>   * Use 0x80008000 as TEXT_BASE here for compatibility reasons with the
> diff --git a/include/configs/ti814x_evm.h b/include/configs/ti814x_evm.h
> index 3c058832e176..bc9282faba55 100644
> --- a/include/configs/ti814x_evm.h
> +++ b/include/configs/ti814x_evm.h
> @@ -159,7 +159,8 @@
>  /* Defines for SPL */
>  #define CONFIG_SPL_FRAMEWORK
>  #define CONFIG_SPL_TEXT_BASE		0x40300000
> -#define CONFIG_SPL_MAX_SIZE		((128 - 18) * 1024)
> +#define CONFIG_SPL_MAX_SIZE		(SRAM_SCRATCH_SPACE_ADDR - \
> +					 CONFIG_SPL_TEXT_BASE)
>  
>  #define CONFIG_SPL_BSS_START_ADDR	0x80000000
>  #define CONFIG_SPL_BSS_MAX_SIZE		0x80000		/* 512 KB */
> diff --git a/include/configs/ti816x_evm.h b/include/configs/ti816x_evm.h
> index 05fd00fd5d27..6f4926647487 100644
> --- a/include/configs/ti816x_evm.h
> +++ b/include/configs/ti816x_evm.h
> @@ -125,7 +125,8 @@
>  /* Defines for SPL */
>  #define CONFIG_SPL_FRAMEWORK
>  #define CONFIG_SPL_TEXT_BASE    0x40400000
> -#define CONFIG_SPL_MAX_SIZE     ((128 - 18) * 1024)
> +#define CONFIG_SPL_MAX_SIZE		(SRAM_SCRATCH_SPACE_ADDR - \
> +					 CONFIG_SPL_TEXT_BASE)
>  
>  #define CONFIG_SPL_BSS_START_ADDR   0x80000000
>  #define CONFIG_SPL_BSS_MAX_SIZE     0x80000     /* 512 KB */
> diff --git a/include/configs/ti_am335x_common.h b/include/configs/ti_am335x_common.h
> index bcd56fc08dc1..38be5b6e2c40 100644
> --- a/include/configs/ti_am335x_common.h
> +++ b/include/configs/ti_am335x_common.h
> @@ -59,7 +59,6 @@
>   * Y-MODEM to load u-boot.img, when booted over UART.
>   */
>  #define CONFIG_SPL_TEXT_BASE		0x402F0400
> -#define CONFIG_SPL_MAX_SIZE		(0x4030B800 - CONFIG_SPL_TEXT_BASE)
>  #define CONFIG_SYS_SPL_ARGS_ADDR	(CONFIG_SYS_SDRAM_BASE + \
>  					 (128 << 20))
>  
> diff --git a/include/configs/ti_armv7_common.h b/include/configs/ti_armv7_common.h
> index 9f947eeb87ed..d60d213d5448 100644
> --- a/include/configs/ti_armv7_common.h
> +++ b/include/configs/ti_armv7_common.h
> @@ -212,14 +212,14 @@
>  /*
>   * Place the image at the start of the ROM defined image space (per
>   * CONFIG_SPL_TEXT_BASE and we limit our size to the ROM-defined
> - * downloaded image area.  We initalize DRAM as soon as we can so that
> - * we can place stack, malloc and BSS there.  We load U-Boot itself into
> - * memory at 0x80800000 for legacy reasons (to not conflict with older
> - * SPLs).  We have our BSS be placed 2MiB after this, to allow for the
> - * default Linux kernel address of 0x80008000 to work with most sized
> - * kernels, in the Falcon Mode case.  We have the SPL malloc pool at the
> - * end of the BSS area.  We suggest that the stack be placed at 32MiB after
> - * the start of DRAM to allow room for all of the above (handled in Kconfig).
> + * downloaded image area minus 1KiB for scratch space.  We initalize DRAM as
> + * soon as we can so that we can place stack, malloc and BSS there.  We load
> + * U-Boot itself into memory at 0x80800000 for legacy reasons (to not conflict
> + * with older SPLs).  We have our BSS be placed 2MiB after this, to allow for
> + * the default Linux kernel address of 0x80008000 to work with most sized
> + * kernels, in the Falcon Mode case.  We have the SPL malloc pool at the end
> + * of the BSS area.  We suggest that the stack be placed at 32MiB after the
> + * start of DRAM to allow room for all of the above (handled in Kconfig).
>   */
>  #ifndef CONFIG_SYS_TEXT_BASE
>  #define CONFIG_SYS_TEXT_BASE		0x80800000
> @@ -233,6 +233,11 @@
>  					 CONFIG_SPL_BSS_MAX_SIZE)
>  #define CONFIG_SYS_SPL_MALLOC_SIZE	CONFIG_SYS_MALLOC_LEN
>  #endif
> +#ifndef CONFIG_SPL_MAX_SIZE
> +#define CONFIG_SPL_MAX_SIZE		(SRAM_SCRATCH_SPACE_ADDR - \
> +					 CONFIG_SPL_TEXT_BASE)
> +#endif
> +
>  
>  /* RAW SD card / eMMC locations. */
>  #define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR	0x300 /* address 0x60000 */
> diff --git a/include/configs/ti_omap3_common.h b/include/configs/ti_omap3_common.h
> index 32877d1964de..843f87d93081 100644
> --- a/include/configs/ti_omap3_common.h
> +++ b/include/configs/ti_omap3_common.h
> @@ -70,7 +70,6 @@
>  
>  /* SPL */
>  #define CONFIG_SPL_TEXT_BASE		0x40200800
> -#define CONFIG_SPL_MAX_SIZE		(54 * 1024)
>  #define CONFIG_SPL_LDSCRIPT		"$(CPUDIR)/omap-common/u-boot-spl.lds"
>  #define CONFIG_SPL_POWER_SUPPORT
>  #define CONFIG_SYS_SPL_ARGS_ADDR	(CONFIG_SYS_SDRAM_BASE + \
> diff --git a/include/configs/ti_omap4_common.h b/include/configs/ti_omap4_common.h
> index 5fad3c1242c5..34de087469fd 100644
> --- a/include/configs/ti_omap4_common.h
> +++ b/include/configs/ti_omap4_common.h
> @@ -152,7 +152,6 @@
>   * So moving TEXT_BASE down to non-HS limit.
>   */
>  #define CONFIG_SPL_TEXT_BASE		0x40300000
> -#define CONFIG_SPL_MAX_SIZE		(0x4030C000 - CONFIG_SPL_TEXT_BASE)
>  #define CONFIG_SPL_DISPLAY_PRINT
>  #define CONFIG_SPL_LDSCRIPT "$(CPUDIR)/omap-common/u-boot-spl.lds"
>  #define CONFIG_SYS_SPL_ARGS_ADDR	(CONFIG_SYS_SDRAM_BASE + \
> diff --git a/include/configs/ti_omap5_common.h b/include/configs/ti_omap5_common.h
> index 3589cdc3a88e..e68e23c2fddf 100644
> --- a/include/configs/ti_omap5_common.h
> +++ b/include/configs/ti_omap5_common.h
> @@ -156,13 +156,6 @@
>  #define CONFIG_SPL_TEXT_BASE	0x40300000
>  #endif
>  
> -/* DRA7xx/AM57xx have 512K of SRAM, OMAP5 only 128K */
> -#if defined(CONFIG_DRA7XX) || defined(CONFIG_AM57XX)
> -#define TI_ROM_BOOT_LOAD_END		0x4037E000
> -#else
> -#define TI_ROM_BOOT_LOAD_END		0x4031E000
> -#endif
> -#define CONFIG_SPL_MAX_SIZE     (TI_ROM_BOOT_LOAD_END - CONFIG_SPL_TEXT_BASE)
>  #define CONFIG_SPL_DISPLAY_PRINT
>  #define CONFIG_SPL_LDSCRIPT "$(CPUDIR)/omap-common/u-boot-spl.lds"
>  #define CONFIG_SYS_SPL_ARGS_ADDR	(CONFIG_SYS_SDRAM_BASE + \
> diff --git a/include/configs/tricorder.h b/include/configs/tricorder.h
> index 127a9689482f..d14f8f13c688 100644
> --- a/include/configs/tricorder.h
> +++ b/include/configs/tricorder.h
> @@ -340,7 +340,8 @@
>  #define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR 0x300 /* address 0x60000 */
>  
>  #define CONFIG_SPL_TEXT_BASE		0x40200000 /*CONFIG_SYS_SRAM_START*/
> -#define CONFIG_SPL_MAX_SIZE		(57 * 1024)	/* 7 KB for stack */
> +#define CONFIG_SPL_MAX_SIZE		(SRAM_SCRATCH_SPACE_ADDR - \
> +					 CONFIG_SPL_TEXT_BASE)
>  
>  #define CONFIG_SPL_BSS_START_ADDR	0x80000000 /*CONFIG_SYS_SDRAM_BASE*/
>  #define CONFIG_SPL_BSS_MAX_SIZE		0x80000
> 


More information about the U-Boot mailing list