[U-Boot] [RFC PATCH] armv7:omap4-common: Correct check of the SPL image size
Lokesh Vutla
lokeshvutla at ti.com
Mon Sep 2 09:56:03 CEST 2013
Hi Tom,
On Wednesday 28 August 2013 08:10 PM, Tom Rini wrote:
> On Wed, Jul 24, 2013 at 05:02:04PM +0300, Oleg Kosheliev wrote:
>
>> From: Oleg_Kosheliev <oleg.kosheliev at 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 at 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.
When I change the CONFIG_SPL_TEXT_BASE to 0x40304000 like below,
breaks on HS devices. There is a limitation on HS devices that first 0x350 space
should not be used.
Here is the diff:
diff --git a/arch/arm/include/asm/arch-omap4/omap.h b/arch/arm/include/asm/arch-omap4/omap.h
index 3823a37..3df0d48 100644
--- a/arch/arm/include/asm/arch-omap4/omap.h
+++ b/arch/arm/include/asm/arch-omap4/omap.h
@@ -111,7 +111,7 @@ struct s32ktimer {
*/
#define NON_SECURE_SRAM_START 0x40304000
#define NON_SECURE_SRAM_END 0x4030E000 /* Not inclusive */
-#define SRAM_SCRATCH_SPACE_ADDR NON_SECURE_SRAM_START
+#define SRAM_SCRATCH_SPACE_ADDR 0x4030C000
/* base address for indirect vectors (internal boot mode) */
#define SRAM_ROM_VECT_BASE 0x4030D000
diff --git a/include/configs/omap4_common.h b/include/configs/omap4_common.h
index e9f2383..f57ee95 100644
--- a/include/configs/omap4_common.h
+++ b/include/configs/omap4_common.h
@@ -250,8 +250,8 @@
/* Defines for SPL */
#define CONFIG_SPL
#define CONFIG_SPL_FRAMEWORK
-#define CONFIG_SPL_TEXT_BASE 0x40304350
-#define CONFIG_SPL_MAX_SIZE (38 * 1024)
+#define CONFIG_SPL_TEXT_BASE 0x40304000
+#define CONFIG_SPL_MAX_SIZE (0x4030C000 - CONFIG_SPL_TEXT_BASE)
#define CONFIG_SPL_STACK CONFIG_SYS_INIT_SP_ADDR
#define CONFIG_SPL_DISPLAY_PRINT
Not sure if this is same for OMAP5 devices.
Please correct me if I am wrong.
Thanks and regards,
Lokesh
>
>
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>
More information about the U-Boot
mailing list