Message ID | 1336498172-14063-1-git-send-email-trini@ti.com |
---|---|
State | Accepted |
Commit | e0820ccc38315d88192c19e98ea9b59d3ec7d4c8 |
Delegated to: | Tom Rini |
Headers | show |
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.
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 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
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 >
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.
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*/
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(-)