[U-Boot] [PATCH 1/2] ARM: omap3: Set SPL stack size to 8KB, image to 54KB.

With older toolchains it is possible to not fit entirely into the 45KB that we had assigned to SPL. Adjust to allow for 8KB of stack (which should be more than required) and 54KB of text/data.
Cc: Vaibhav Hiremath hvaibhav@ti.com Cc: Nagendra T S nagendra@mistralsolutions.com Cc: Thomas Weber weber@corscience.de Cc: Ilya Yanok yanok@emcraft.com Cc: Steve Sakoman sakoman@gmail.com Cc: Stefano Babic sbabic@denx.de Signed-off-by: Tom Rini trini@ti.com --- doc/SPL/README.omap3 | 4 ++-- include/configs/am3517_crane.h | 2 +- include/configs/am3517_evm.h | 2 +- include/configs/devkit8000.h | 2 +- include/configs/mcx.h | 2 +- include/configs/omap3_beagle.h | 2 +- include/configs/omap3_evm_common.h | 2 +- include/configs/omap3_overo.h | 2 +- include/configs/tam3517-common.h | 2 +- include/configs/tricorder.h | 2 +- 10 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/doc/SPL/README.omap3 b/doc/SPL/README.omap3 index cc5d5c0..a543e65 100644 --- a/doc/SPL/README.omap3 +++ b/doc/SPL/README.omap3 @@ -34,14 +34,14 @@ DDR1: 0x80000000 - 0xBFFFFFFF
Option 1 (SPL only): 0x40200800 - 0x4020BBFF: Area for SPL text, data and rodata -0x4020BC00 - 0x4020FFFC: Area for the SPL stack. +0x4020E000 - 0x4020FFFC: Area for the SPL stack. 0x80000000 - 0x8007FFFF: Area for the SPL BSS. 0x80100000: CONFIG_SYS_TEXT_BASE of U-Boot 0x80208000 - 0x80307FFF: malloc() pool available to SPL.
Option 2 (SPL or X-Loader): 0x40200800 - 0x4020BBFF: Area for SPL text, data and rodata -0x4020BC00 - 0x4020FFFC: Area for the SPL stack. +0x4020E000 - 0x4020FFFC: Area for the SPL stack. 0x80008000: CONFIG_SYS_TEXT_BASE of U-Boot 0x87000000 - 0x8707FFFF: Area for the SPL BSS. 0x87080000 - 0x870FFFFF: malloc() pool available to SPL. diff --git a/include/configs/am3517_crane.h b/include/configs/am3517_crane.h index b0dd2f0..9843eae 100644 --- a/include/configs/am3517_crane.h +++ b/include/configs/am3517_crane.h @@ -326,7 +326,7 @@ #define CONFIG_SPL #define CONFIG_SPL_NAND_SIMPLE #define CONFIG_SPL_TEXT_BASE 0x40200800 -#define CONFIG_SPL_MAX_SIZE (45 * 1024) +#define CONFIG_SPL_MAX_SIZE (54 * 1024) /* 8 KB for stack */ #define CONFIG_SPL_STACK LOW_LEVEL_SRAM_STACK
#define CONFIG_SPL_BSS_START_ADDR 0x80000000 diff --git a/include/configs/am3517_evm.h b/include/configs/am3517_evm.h index b5f75d1..49e665d 100644 --- a/include/configs/am3517_evm.h +++ b/include/configs/am3517_evm.h @@ -326,7 +326,7 @@ #define CONFIG_SPL #define CONFIG_SPL_NAND_SIMPLE #define CONFIG_SPL_TEXT_BASE 0x40200800 -#define CONFIG_SPL_MAX_SIZE (45 * 1024) +#define CONFIG_SPL_MAX_SIZE (54 * 1024) /* 8 KB for stack */ #define CONFIG_SPL_STACK LOW_LEVEL_SRAM_STACK
#define CONFIG_SPL_BSS_START_ADDR 0x80000000 diff --git a/include/configs/devkit8000.h b/include/configs/devkit8000.h index eb7c376..248a5b2 100644 --- a/include/configs/devkit8000.h +++ b/include/configs/devkit8000.h @@ -324,7 +324,7 @@ #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 0xB400 /* 45 K */ +#define CONFIG_SPL_MAX_SIZE (54 * 1024) /* 8 KB for stack */ #define CONFIG_SPL_STACK LOW_LEVEL_SRAM_STACK
#define CONFIG_SPL_BSS_START_ADDR 0x80000500 /* leave space for bootargs*/ diff --git a/include/configs/mcx.h b/include/configs/mcx.h index 1315c3c..fd6a435 100644 --- a/include/configs/mcx.h +++ b/include/configs/mcx.h @@ -327,7 +327,7 @@ #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 (45 << 10) +#define CONFIG_SPL_MAX_SIZE (54 * 1024) /* 8 KB for stack */ #define CONFIG_SPL_STACK LOW_LEVEL_SRAM_STACK
/* move malloc and bss high to prevent clashing with the main image */ diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h index ddeb414..6bdc2c3 100644 --- a/include/configs/omap3_beagle.h +++ b/include/configs/omap3_beagle.h @@ -399,7 +399,7 @@ #define CONFIG_SPL #define CONFIG_SPL_NAND_SIMPLE #define CONFIG_SPL_TEXT_BASE 0x40200800 -#define CONFIG_SPL_MAX_SIZE (45 * 1024) +#define CONFIG_SPL_MAX_SIZE (54 * 1024) /* 8 KB for stack */ #define CONFIG_SPL_STACK LOW_LEVEL_SRAM_STACK
#define CONFIG_SPL_BSS_START_ADDR 0x80000000 diff --git a/include/configs/omap3_evm_common.h b/include/configs/omap3_evm_common.h index 4910dda..47ebbef 100644 --- a/include/configs/omap3_evm_common.h +++ b/include/configs/omap3_evm_common.h @@ -282,7 +282,7 @@ /* Defines for SPL */ #define CONFIG_SPL #define CONFIG_SPL_TEXT_BASE 0x40200800 -#define CONFIG_SPL_MAX_SIZE (45 * 1024) /* 45 KB */ +#define CONFIG_SPL_MAX_SIZE (54 * 1024) /* 8 KB for stack */ #define CONFIG_SPL_STACK LOW_LEVEL_SRAM_STACK
#define CONFIG_SPL_BSS_START_ADDR 0x80000000 diff --git a/include/configs/omap3_overo.h b/include/configs/omap3_overo.h index 64adc74..b0d144f 100644 --- a/include/configs/omap3_overo.h +++ b/include/configs/omap3_overo.h @@ -303,7 +303,7 @@ #define CONFIG_SPL #define CONFIG_SPL_NAND_SIMPLE #define CONFIG_SPL_TEXT_BASE 0x40200800 -#define CONFIG_SPL_MAX_SIZE (45 * 1024) +#define CONFIG_SPL_MAX_SIZE (54 * 1024) /* 8 KB for stack */ #define CONFIG_SPL_STACK LOW_LEVEL_SRAM_STACK
/* move malloc and bss high to prevent clashing with the main image */ diff --git a/include/configs/tam3517-common.h b/include/configs/tam3517-common.h index 4c4321d..de10f4f 100644 --- a/include/configs/tam3517-common.h +++ b/include/configs/tam3517-common.h @@ -258,7 +258,7 @@ #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 (45 << 10) /* 45 K */ +#define CONFIG_SPL_MAX_SIZE (54 * 1024) /* 8 KB for stack */ #define CONFIG_SPL_STACK LOW_LEVEL_SRAM_STACK
#define CONFIG_SYS_SPL_MALLOC_START 0x8f000000 diff --git a/include/configs/tricorder.h b/include/configs/tricorder.h index 801a24f..ab911aa 100644 --- a/include/configs/tricorder.h +++ b/include/configs/tricorder.h @@ -293,7 +293,7 @@ #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 0xB400 /* 45 K */ +#define CONFIG_SPL_MAX_SIZE (54 * 1024) /* 8 KB for stack */ #define CONFIG_SPL_STACK LOW_LEVEL_SRAM_STACK
#define CONFIG_SPL_BSS_START_ADDR 0x80000000 /*CONFIG_SYS_SDRAM_BASE*/

As originally reported against beagleboard we currently have the following error message reported in SPL:
U-Boot SPL 2012.04-00020-gb8310b9-dirty (Apr 25 2012 - 18:49:57) Texas Instruments Revision detection unimplemented OMAP SD/MMC: 0 timed out in wait_for_bb: I2C_STAT=1000 reading u-boot.img ....
The reason for above message is that when booting from MMC, I2C needs to be initialized to talk with the TWL4030. On OMAP3 I2C is only initalized in SPL if CONFIG_SPL_BOARD_INIT is set.
Cc: Thomas Weber weber@corscience.de Cc: Steve Sakoman sakoman@gmail.com
Original patch for Beagleboard is: Signed-off-by: Peter Meerwald p.meerwald@bct-electronic.com
Extended to cover all other boards: Signed-off-by: Tom Rini trini@ti.com --- include/configs/omap3_beagle.h | 1 + include/configs/omap3_evm_common.h | 1 + include/configs/omap3_overo.h | 1 + include/configs/tricorder.h | 1 + 4 files changed, 4 insertions(+)
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h index 6bdc2c3..b891ee4 100644 --- a/include/configs/omap3_beagle.h +++ b/include/configs/omap3_beagle.h @@ -410,6 +410,7 @@ #define CONFIG_SYS_MMC_SD_FAT_BOOT_PARTITION 1 #define CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME "u-boot.img"
+#define CONFIG_SPL_BOARD_INIT #define CONFIG_SPL_LIBCOMMON_SUPPORT #define CONFIG_SPL_LIBDISK_SUPPORT #define CONFIG_SPL_I2C_SUPPORT diff --git a/include/configs/omap3_evm_common.h b/include/configs/omap3_evm_common.h index 47ebbef..7b21a5c 100644 --- a/include/configs/omap3_evm_common.h +++ b/include/configs/omap3_evm_common.h @@ -288,6 +288,7 @@ #define CONFIG_SPL_BSS_START_ADDR 0x80000000 #define CONFIG_SPL_BSS_MAX_SIZE 0x80000 /* 512 KB */
+#define CONFIG_SPL_BOARD_INIT #define CONFIG_SPL_LIBCOMMON_SUPPORT #define CONFIG_SPL_LIBDISK_SUPPORT #define CONFIG_SPL_I2C_SUPPORT diff --git a/include/configs/omap3_overo.h b/include/configs/omap3_overo.h index b0d144f..a0a7a1c 100644 --- a/include/configs/omap3_overo.h +++ b/include/configs/omap3_overo.h @@ -317,6 +317,7 @@ #define CONFIG_SYS_MMC_SD_FAT_BOOT_PARTITION 1 #define CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME "u-boot.img"
+#define CONFIG_SPL_BOARD_INIT #define CONFIG_SPL_LIBCOMMON_SUPPORT #define CONFIG_SPL_LIBDISK_SUPPORT #define CONFIG_SPL_I2C_SUPPORT diff --git a/include/configs/tricorder.h b/include/configs/tricorder.h index ab911aa..9955fca 100644 --- a/include/configs/tricorder.h +++ b/include/configs/tricorder.h @@ -278,6 +278,7 @@ #define CONFIG_SPL #define CONFIG_SPL_NAND_SIMPLE
+#define CONFIG_SPL_BOARD_INIT #define CONFIG_SPL_LIBCOMMON_SUPPORT #define CONFIG_SPL_LIBDISK_SUPPORT #define CONFIG_SPL_I2C_SUPPORT

Hello Tom & Peter,
On 05/08/12 19:29, Tom Rini wrote:
As originally reported against beagleboard we currently have the following error message reported in SPL:
U-Boot SPL 2012.04-00020-gb8310b9-dirty (Apr 25 2012 - 18:49:57) Texas Instruments Revision detection unimplemented OMAP SD/MMC: 0 timed out in wait_for_bb: I2C_STAT=1000 reading u-boot.img ....
The reason for above message is that when booting from MMC, I2C needs to be initialized to talk with the TWL4030. On OMAP3 I2C is only initalized in SPL if CONFIG_SPL_BOARD_INIT is set.
On Tricorder there is no such message. I thought the I2C to TWL4030 is initialized by the ROM code. And why can the SPL read the u-boot.img in the next step?
Thomas
Cc: Thomas Weberweber@corscience.de Cc: Steve Sakomansakoman@gmail.com
Original patch for Beagleboard is: Signed-off-by: Peter Meerwaldp.meerwald@bct-electronic.com
Extended to cover all other boards: Signed-off-by: Tom Rinitrini@ti.com
include/configs/omap3_beagle.h | 1 + include/configs/omap3_evm_common.h | 1 + include/configs/omap3_overo.h | 1 + include/configs/tricorder.h | 1 + 4 files changed, 4 insertions(+)
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h index 6bdc2c3..b891ee4 100644 --- a/include/configs/omap3_beagle.h +++ b/include/configs/omap3_beagle.h @@ -410,6 +410,7 @@ #define CONFIG_SYS_MMC_SD_FAT_BOOT_PARTITION 1 #define CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME "u-boot.img"
+#define CONFIG_SPL_BOARD_INIT #define CONFIG_SPL_LIBCOMMON_SUPPORT #define CONFIG_SPL_LIBDISK_SUPPORT #define CONFIG_SPL_I2C_SUPPORT diff --git a/include/configs/omap3_evm_common.h b/include/configs/omap3_evm_common.h index 47ebbef..7b21a5c 100644 --- a/include/configs/omap3_evm_common.h +++ b/include/configs/omap3_evm_common.h @@ -288,6 +288,7 @@ #define CONFIG_SPL_BSS_START_ADDR 0x80000000 #define CONFIG_SPL_BSS_MAX_SIZE 0x80000 /* 512 KB */
+#define CONFIG_SPL_BOARD_INIT #define CONFIG_SPL_LIBCOMMON_SUPPORT #define CONFIG_SPL_LIBDISK_SUPPORT #define CONFIG_SPL_I2C_SUPPORT diff --git a/include/configs/omap3_overo.h b/include/configs/omap3_overo.h index b0d144f..a0a7a1c 100644 --- a/include/configs/omap3_overo.h +++ b/include/configs/omap3_overo.h @@ -317,6 +317,7 @@ #define CONFIG_SYS_MMC_SD_FAT_BOOT_PARTITION 1 #define CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME "u-boot.img"
+#define CONFIG_SPL_BOARD_INIT #define CONFIG_SPL_LIBCOMMON_SUPPORT #define CONFIG_SPL_LIBDISK_SUPPORT #define CONFIG_SPL_I2C_SUPPORT diff --git a/include/configs/tricorder.h b/include/configs/tricorder.h index ab911aa..9955fca 100644 --- a/include/configs/tricorder.h +++ b/include/configs/tricorder.h @@ -278,6 +278,7 @@ #define CONFIG_SPL #define CONFIG_SPL_NAND_SIMPLE
+#define CONFIG_SPL_BOARD_INIT #define CONFIG_SPL_LIBCOMMON_SUPPORT #define CONFIG_SPL_LIBDISK_SUPPORT #define CONFIG_SPL_I2C_SUPPORT

On 05/09/2012 12:44 AM, Thomas Weber wrote:
Hello Tom & Peter,
On 05/08/12 19:29, Tom Rini wrote:
As originally reported against beagleboard we currently have the following error message reported in SPL:
U-Boot SPL 2012.04-00020-gb8310b9-dirty (Apr 25 2012 - 18:49:57) Texas Instruments Revision detection unimplemented OMAP SD/MMC: 0 timed out in wait_for_bb: I2C_STAT=1000 reading u-boot.img ....
The reason for above message is that when booting from MMC, I2C needs to be initialized to talk with the TWL4030. On OMAP3 I2C is only initalized in SPL if CONFIG_SPL_BOARD_INIT is set.
On Tricorder there is no such message. I thought the I2C to TWL4030 is initialized by the ROM code. And why can the SPL read the u-boot.img in the next step?
Things must be setup to a certain extent or we couldn't have been loaded by ROM, yes. Since am35x parts are a different family from the omap3 boards, I'll double check what the am3517 evm I have says here as well. For correctness however, we currently are turning on the i2c support in SPL and then not using it. So something should be changed :)

On 05/09/2012 12:44 AM, Thomas Weber wrote:
Hello Tom & Peter,
On 05/08/12 19:29, Tom Rini wrote:
As originally reported against beagleboard we currently have the following error message reported in SPL:
U-Boot SPL 2012.04-00020-gb8310b9-dirty (Apr 25 2012 - 18:49:57) Texas Instruments Revision detection unimplemented OMAP SD/MMC: 0 timed out in wait_for_bb: I2C_STAT=1000 reading u-boot.img ....
The reason for above message is that when booting from MMC, I2C needs to be initialized to talk with the TWL4030. On OMAP3 I2C is only initalized in SPL if CONFIG_SPL_BOARD_INIT is set.
On Tricorder there is no such message. I thought the I2C to TWL4030 is initialized by the ROM code. And why can the SPL read the u-boot.img in the next step?
I think we need this still, on correctness grounds. We include the i2c code (and twl4030 code) to have the MMC driver link and behave as in full U-Boot. I don't see this timed out message on my am3517 evm nor my "omap3evm" with an am37x SOM (iirc anyhow). I do see it on cold power on, on my beagle however, but not warm (which might be why I missed this before).

On Tue, May 08, 2012 at 22:59:31, Rini, Tom wrote:
With older toolchains it is possible to not fit entirely into the 45KB that we had assigned to SPL. Adjust to allow for 8KB of stack (which should be more than required) and 54KB of text/data.
Tom,
Can you provide more details on why 45Kb is not sufficient for SPL? You may have done some memory analysis on this; can you share that here? Also, do we know how much ROM code is using out of 64KB of RAM?
Thanks, Vaibhav
Cc: Vaibhav Hiremath hvaibhav@ti.com Cc: Nagendra T S nagendra@mistralsolutions.com Cc: Thomas Weber weber@corscience.de Cc: Ilya Yanok yanok@emcraft.com Cc: Steve Sakoman sakoman@gmail.com Cc: Stefano Babic sbabic@denx.de Signed-off-by: Tom Rini trini@ti.com
doc/SPL/README.omap3 | 4 ++-- include/configs/am3517_crane.h | 2 +- include/configs/am3517_evm.h | 2 +- include/configs/devkit8000.h | 2 +- include/configs/mcx.h | 2 +- include/configs/omap3_beagle.h | 2 +- include/configs/omap3_evm_common.h | 2 +- include/configs/omap3_overo.h | 2 +- include/configs/tam3517-common.h | 2 +- include/configs/tricorder.h | 2 +- 10 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/doc/SPL/README.omap3 b/doc/SPL/README.omap3 index cc5d5c0..a543e65 100644 --- a/doc/SPL/README.omap3 +++ b/doc/SPL/README.omap3 @@ -34,14 +34,14 @@ DDR1: 0x80000000 - 0xBFFFFFFF
Option 1 (SPL only): 0x40200800 - 0x4020BBFF: Area for SPL text, data and rodata -0x4020BC00 - 0x4020FFFC: Area for the SPL stack. +0x4020E000 - 0x4020FFFC: Area for the SPL stack. 0x80000000 - 0x8007FFFF: Area for the SPL BSS. 0x80100000: CONFIG_SYS_TEXT_BASE of U-Boot 0x80208000 - 0x80307FFF: malloc() pool available to SPL.
Option 2 (SPL or X-Loader): 0x40200800 - 0x4020BBFF: Area for SPL text, data and rodata -0x4020BC00 - 0x4020FFFC: Area for the SPL stack. +0x4020E000 - 0x4020FFFC: Area for the SPL stack. 0x80008000: CONFIG_SYS_TEXT_BASE of U-Boot 0x87000000 - 0x8707FFFF: Area for the SPL BSS. 0x87080000 - 0x870FFFFF: malloc() pool available to SPL. diff --git a/include/configs/am3517_crane.h b/include/configs/am3517_crane.h index b0dd2f0..9843eae 100644 --- a/include/configs/am3517_crane.h +++ b/include/configs/am3517_crane.h @@ -326,7 +326,7 @@ #define CONFIG_SPL #define CONFIG_SPL_NAND_SIMPLE #define CONFIG_SPL_TEXT_BASE 0x40200800 -#define CONFIG_SPL_MAX_SIZE (45 * 1024) +#define CONFIG_SPL_MAX_SIZE (54 * 1024) /* 8 KB for stack */ #define CONFIG_SPL_STACK LOW_LEVEL_SRAM_STACK
#define CONFIG_SPL_BSS_START_ADDR 0x80000000 diff --git a/include/configs/am3517_evm.h b/include/configs/am3517_evm.h index b5f75d1..49e665d 100644 --- a/include/configs/am3517_evm.h +++ b/include/configs/am3517_evm.h @@ -326,7 +326,7 @@ #define CONFIG_SPL #define CONFIG_SPL_NAND_SIMPLE #define CONFIG_SPL_TEXT_BASE 0x40200800 -#define CONFIG_SPL_MAX_SIZE (45 * 1024) +#define CONFIG_SPL_MAX_SIZE (54 * 1024) /* 8 KB for stack */ #define CONFIG_SPL_STACK LOW_LEVEL_SRAM_STACK
#define CONFIG_SPL_BSS_START_ADDR 0x80000000 diff --git a/include/configs/devkit8000.h b/include/configs/devkit8000.h index eb7c376..248a5b2 100644 --- a/include/configs/devkit8000.h +++ b/include/configs/devkit8000.h @@ -324,7 +324,7 @@ #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 0xB400 /* 45 K */ +#define CONFIG_SPL_MAX_SIZE (54 * 1024) /* 8 KB for stack */ #define CONFIG_SPL_STACK LOW_LEVEL_SRAM_STACK
#define CONFIG_SPL_BSS_START_ADDR 0x80000500 /* leave space for bootargs*/ diff --git a/include/configs/mcx.h b/include/configs/mcx.h index 1315c3c..fd6a435 100644 --- a/include/configs/mcx.h +++ b/include/configs/mcx.h @@ -327,7 +327,7 @@ #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 (45 << 10) +#define CONFIG_SPL_MAX_SIZE (54 * 1024) /* 8 KB for stack */ #define CONFIG_SPL_STACK LOW_LEVEL_SRAM_STACK
/* move malloc and bss high to prevent clashing with the main image */ diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h index ddeb414..6bdc2c3 100644 --- a/include/configs/omap3_beagle.h +++ b/include/configs/omap3_beagle.h @@ -399,7 +399,7 @@ #define CONFIG_SPL #define CONFIG_SPL_NAND_SIMPLE #define CONFIG_SPL_TEXT_BASE 0x40200800 -#define CONFIG_SPL_MAX_SIZE (45 * 1024) +#define CONFIG_SPL_MAX_SIZE (54 * 1024) /* 8 KB for stack */ #define CONFIG_SPL_STACK LOW_LEVEL_SRAM_STACK
#define CONFIG_SPL_BSS_START_ADDR 0x80000000 diff --git a/include/configs/omap3_evm_common.h b/include/configs/omap3_evm_common.h index 4910dda..47ebbef 100644 --- a/include/configs/omap3_evm_common.h +++ b/include/configs/omap3_evm_common.h @@ -282,7 +282,7 @@ /* Defines for SPL */ #define CONFIG_SPL #define CONFIG_SPL_TEXT_BASE 0x40200800 -#define CONFIG_SPL_MAX_SIZE (45 * 1024) /* 45 KB */ +#define CONFIG_SPL_MAX_SIZE (54 * 1024) /* 8 KB for stack */ #define CONFIG_SPL_STACK LOW_LEVEL_SRAM_STACK
#define CONFIG_SPL_BSS_START_ADDR 0x80000000 diff --git a/include/configs/omap3_overo.h b/include/configs/omap3_overo.h index 64adc74..b0d144f 100644 --- a/include/configs/omap3_overo.h +++ b/include/configs/omap3_overo.h @@ -303,7 +303,7 @@ #define CONFIG_SPL #define CONFIG_SPL_NAND_SIMPLE #define CONFIG_SPL_TEXT_BASE 0x40200800 -#define CONFIG_SPL_MAX_SIZE (45 * 1024) +#define CONFIG_SPL_MAX_SIZE (54 * 1024) /* 8 KB for stack */ #define CONFIG_SPL_STACK LOW_LEVEL_SRAM_STACK
/* move malloc and bss high to prevent clashing with the main image */ diff --git a/include/configs/tam3517-common.h b/include/configs/tam3517-common.h index 4c4321d..de10f4f 100644 --- a/include/configs/tam3517-common.h +++ b/include/configs/tam3517-common.h @@ -258,7 +258,7 @@ #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 (45 << 10) /* 45 K */ +#define CONFIG_SPL_MAX_SIZE (54 * 1024) /* 8 KB for stack */ #define CONFIG_SPL_STACK LOW_LEVEL_SRAM_STACK
#define CONFIG_SYS_SPL_MALLOC_START 0x8f000000 diff --git a/include/configs/tricorder.h b/include/configs/tricorder.h index 801a24f..ab911aa 100644 --- a/include/configs/tricorder.h +++ b/include/configs/tricorder.h @@ -293,7 +293,7 @@ #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 0xB400 /* 45 K */ +#define CONFIG_SPL_MAX_SIZE (54 * 1024) /* 8 KB for stack */ #define CONFIG_SPL_STACK LOW_LEVEL_SRAM_STACK
#define CONFIG_SPL_BSS_START_ADDR 0x80000000 /*CONFIG_SYS_SDRAM_BASE*/
1.7.9.5

On 05/08/2012 10:40 AM, Hiremath, Vaibhav wrote:
On Tue, May 08, 2012 at 22:59:31, Rini, Tom wrote:
With older toolchains it is possible to not fit entirely into the 45KB that we had assigned to SPL. Adjust to allow for 8KB of stack (which should be more than required) and 54KB of text/data.
Tom,
Can you provide more details on why 45Kb is not sufficient for SPL?
A combination of toolchains and enabled options will break this limit (for example, beagle is size-broken once we enable i2c to whack the twl4030 with ELDK4.2). Rather than giving just one more KB to fix the problem today, but run into it tomorrow, I'm pushing towards the biggest split we can use.
You may have done some memory analysis on this; can you share that here? Also, do we know how much ROM code is using out of 64KB of RAM?
We know that ROM loads us to 0x40200800 and we're allowed from there to the end of SRAM to do as we please. This is just adjusting the split SPL makes into text+data and stack.

On Tue, May 08, 2012 at 23:45:19, Rini, Tom wrote:
On 05/08/2012 10:40 AM, Hiremath, Vaibhav wrote:
On Tue, May 08, 2012 at 22:59:31, Rini, Tom wrote:
With older toolchains it is possible to not fit entirely into the 45KB that we had assigned to SPL. Adjust to allow for 8KB of stack (which should be more than required) and 54KB of text/data.
Tom,
Can you provide more details on why 45Kb is not sufficient for SPL?
A combination of toolchains and enabled options will break this limit (for example, beagle is size-broken once we enable i2c to whack the twl4030 with ELDK4.2). Rather than giving just one more KB to fix the problem today, but run into it tomorrow, I'm pushing towards the biggest split we can use.
Exactly, I understand the need here. Can you please update the commit description with above details, the original patch commit description only talks about toolchain, but it is not only the toolchain, right?
Else looks ok to me.
Acked-by: Vaibhav Hiremath hvaibhav@ti.com
Thanks, Vaibhav
You may have done some memory analysis on this; can you share that here? Also, do we know how much ROM code is using out of 64KB of RAM?
We know that ROM loads us to 0x40200800 and we're allowed from there to the end of SRAM to do as we please. This is just adjusting the split SPL makes into text+data and stack.
-- Tom

Hi Tom, [snip]
Option 1 (SPL only): 0x40200800 - 0x4020BBFF: Area for SPL text, data and rodata
You wanted to change the above comment to 0x40200800 - 0x4020DFFC as well ?
-0x4020BC00 - 0x4020FFFC: Area for the SPL stack. +0x4020E000 - 0x4020FFFC: Area for the SPL stack. 0x80000000 - 0x8007FFFF: Area for the SPL BSS. 0x80100000: CONFIG_SYS_TEXT_BASE of U-Boot 0x80208000 - 0x80307FFF: malloc() pool available to SPL.
Option 2 (SPL or X-Loader): 0x40200800 - 0x4020BBFF: Area for SPL text, data and rodata -0x4020BC00 - 0x4020FFFC: Area for the SPL stack. +0x4020E000 - 0x4020FFFC: Area for the SPL stack. 0x80008000: CONFIG_SYS_TEXT_BASE of U-Boot 0x87000000 - 0x8707FFFF: Area for the SPL BSS. 0x87080000 - 0x870FFFFF: malloc() pool available to SPL.
Thanks, Sricharan

On 05/08/2012 11:51 PM, R, Sricharan wrote:
Hi Tom, [snip]
Option 1 (SPL only): 0x40200800 - 0x4020BBFF: Area for SPL text, data and rodata
You wanted to change the above comment to 0x40200800 - 0x4020DFFC as well ?
Ah yes, thanks for catching that.

On 08/05/2012 19:29, Tom Rini wrote:
With older toolchains it is possible to not fit entirely into the 45KB that we had assigned to SPL. Adjust to allow for 8KB of stack (which should be more than required) and 54KB of text/data.
Cc: Vaibhav Hiremath hvaibhav@ti.com Cc: Nagendra T S nagendra@mistralsolutions.com Cc: Thomas Weber weber@corscience.de Cc: Ilya Yanok yanok@emcraft.com Cc: Steve Sakoman sakoman@gmail.com Cc: Stefano Babic sbabic@denx.de Signed-off-by: Tom Rini trini@ti.com
Acked-by: Stefano Babic sbabic@denx.de
Best regards, Stefano Babic
participants (5)
-
Hiremath, Vaibhav
-
R, Sricharan
-
Stefano Babic
-
Thomas Weber
-
Tom Rini