On Fri, Aug 26, 2016 at 12:30 PM, Tom Rini <tr...@konsulko.com> 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 >
Tested on LogicPD DM3730 Torpedo Tested by Adam Ford <aford...@gmail.com> > Cc: Albert Aribaud <albert.u.b...@aribaud.net> > Cc: Nagendra T S <nagen...@mistralsolutions.com> > Cc: Vaibhav Hiremath <hvaib...@ti.com> > Cc: Lokesh Vutla <lokeshvu...@ti.com> > Cc: Felipe Balbi <ba...@ti.com> > Cc: Igor Grinberg <grinb...@compulab.co.il> > Cc: Nikita Kiryanov <nik...@compulab.co.il> > Cc: Paul Kocialkowski <cont...@paulk.fr> > Cc: Enric Balletbo i Serra <eballe...@gmail.com> > Cc: Adam Ford <aford...@gmail.com> > Cc: Steve Sakoman <sako...@gmail.com> > Cc: Stefan Roese <s...@denx.de> > Cc: Thomas Weber <we...@corscience.de> > Cc: Hannes Schmelzer <oe5...@oevsv.at> > Cc: Thomas Chou <tho...@wytron.com.tw> > Cc: Masahiro Yamada <yamada.masah...@socionext.com> > Cc: Simon Glass <s...@chromium.org> > Cc: Joe Hershberger <joe.hershber...@ni.com> > Cc: Sam Protsenko <semen.protse...@linaro.org> > Cc: Heiko Schocher <h...@denx.de> > Cc: Samuel Egli <samuel.e...@siemens.com> > Cc: Michal Simek <michal.si...@xilinx.com> > Cc: Wolfgang Denk <w...@denx.de> > Cc: Mateusz Kulikowski <mateusz.kulikow...@gmail.com> > Cc: Ben Whitten <ben.whit...@gmail.com> > Cc: Stefano Babic <sba...@denx.de> > Cc: Bin Meng <bmeng...@gmail.com> > Cc: Sekhar Nori <nsek...@ti.com> > Cc: Mugunthan V N <mugunthan...@ti.com> > Cc: "B, Ravi" <ravib...@ti.com> > Cc: "Matwey V. Kornilov" <matwey.korni...@gmail.com> > Cc: Ladislav Michl <la...@linux-mips.org> > Cc: Ash Charles <ashchar...@gmail.com> > Cc: "Kipisz, Steven" <s-kipi...@ti.com> > Cc: Daniel Allred <d-all...@ti.com> > Signed-off-by: Tom Rini <tr...@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 > -- > 1.9.1 > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot