[U-Boot,RFC] armv7:omap4-common: Correct check of the SPL image size

Submitted by Oleg Kosheliev on July 24, 2013, 2:02 p.m.

Details

Message ID 1374674524-26188-1-git-send-email-Oleg.Kosheliev@ti.com
State Changes Requested
Delegated to: Tom Rini
Headers show

Commit Message

Oleg Kosheliev July 24, 2013, 2:02 p.m.
From: Oleg_Kosheliev <oleg.kosheliev@ti.com>

The u-boot-spl image must be stored in SRAM at
addresses from 0x40300000 till 0x4030bfff.
Higher than that area is located the ROM code stack.
Thus we should check that the highest address
of the SPL image is not in the stack area or higher.
In this patch CONFIG_SPL_MAX_SIZE is corrected based
on the max allowed for SPL image address.

Signed-off-by: Oleg Kosheliev <oleg.kosheliev@ti.com>
---
 include/configs/omap4_common.h |    9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

Comments

Tom Rini Aug. 28, 2013, 2:40 p.m.
On Wed, Jul 24, 2013 at 05:02:04PM +0300, Oleg Kosheliev wrote:

> From: Oleg_Kosheliev <oleg.kosheliev@ti.com>
> 
> The u-boot-spl image must be stored in SRAM at
> addresses from 0x40300000 till 0x4030bfff.
> Higher than that area is located the ROM code stack.
> Thus we should check that the highest address
> of the SPL image is not in the stack area or higher.
> In this patch CONFIG_SPL_MAX_SIZE is corrected based
> on the max allowed for SPL image address.
> 
> Signed-off-by: Oleg Kosheliev <oleg.kosheliev@ti.com>
> ---
>  include/configs/omap4_common.h |    9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/include/configs/omap4_common.h b/include/configs/omap4_common.h
> index 2fa4382..aeeef6c 100644
> --- a/include/configs/omap4_common.h
> +++ b/include/configs/omap4_common.h
> @@ -266,7 +266,14 @@
>  #define CONFIG_SPL
>  #define CONFIG_SPL_FRAMEWORK
>  #define CONFIG_SPL_TEXT_BASE		0x40304350
> -#define CONFIG_SPL_MAX_SIZE		(38 * 1024)
> +/*
> + * The allowed space in SRAM for SPL is from 0x40300000 till 0x4030bfff.
> + * The space above 0x4030c000 is used by ROM code stack
> + * and this area must not be rewritten by the SPL

Note that we are allowed to use the public stack area (and should, for
our scratch space) but must not exceed the download image area of
0x40300000 - 0x4030bfff.  See include/configs/ti_armv7_common.h for how
the comment should look.  And if you have time, please convert the OMAP4
platforms to use ti_armv7_common.h

> +#define CONFIG_SPL_MAX_ADDR		0x4030bfff
> +#define CONFIG_SPL_MAX_SIZE		(CONFIG_SPL_MAX_ADDR - \
> +					 CONFIG_SPL_TEXT_BASE)

Just say:
#define CONFIG_SPL_MAX_SIZE		(0x4030C000 - \
					 CONFIG_SPL_TEXT_BASE)

>  #define CONFIG_SPL_STACK		CONFIG_SYS_INIT_SP_ADDR
>  #define CONFIG_SPL_DISPLAY_PRINT

We need to change things like in
http://patchwork.ozlabs.org/patch/268511/ including changing the scratch
area.

Patch hide | download patch | download mbox

diff --git a/include/configs/omap4_common.h b/include/configs/omap4_common.h
index 2fa4382..aeeef6c 100644
--- a/include/configs/omap4_common.h
+++ b/include/configs/omap4_common.h
@@ -266,7 +266,14 @@ 
 #define CONFIG_SPL
 #define CONFIG_SPL_FRAMEWORK
 #define CONFIG_SPL_TEXT_BASE		0x40304350
-#define CONFIG_SPL_MAX_SIZE		(38 * 1024)
+/*
+ * The allowed space in SRAM for SPL is from 0x40300000 till 0x4030bfff.
+ * The space above 0x4030c000 is used by ROM code stack
+ * and this area must not be rewritten by the SPL
+ */
+#define CONFIG_SPL_MAX_ADDR		0x4030bfff
+#define CONFIG_SPL_MAX_SIZE		(CONFIG_SPL_MAX_ADDR - \
+					 CONFIG_SPL_TEXT_BASE)
 #define CONFIG_SPL_STACK		CONFIG_SYS_INIT_SP_ADDR
 #define CONFIG_SPL_DISPLAY_PRINT