diff mbox series

[u-boot,v2019.04-aspeed-openbmc,1/2] ast2600: Modify SPL SRAM layout

Message ID 20210125045846.448399-2-joel@jms.id.au
State New
Headers show
Series FIT verification | expand

Commit Message

Joel Stanley Jan. 25, 2021, 4:58 a.m. UTC
The SRAM is 89KB on the A1 and beyond:

 0x1000_0000 to 0x1000_ffff: 64KB, with parity check
 0x1001_0000 to 0x1001_5fff: 24KB, w/o parity check
 0x1001_6000 to 0x1001_63ff: 1KB, w/o parity check, each byte write once

Allow the image to fill the full 64KB payload size (max that secure boot
supports) and plcae the stack at the top of the 24KB of SRAM.

Signed-off-by: Joel Stanley <joel@jms.id.au>
---
 include/configs/evb_ast2600a1_spl.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Klaus Heinrich Kiwi Jan. 27, 2021, 1:55 a.m. UTC | #1
Hi Joel,

On 1/25/2021 1:58 AM, Joel Stanley wrote:
> The SRAM is 89KB on the A1 and beyond:

I guess I'll have to trust you on that one.

> 
>   0x1000_0000 to 0x1000_ffff: 64KB, with parity check
>   0x1001_0000 to 0x1001_5fff: 24KB, w/o parity check
>   0x1001_6000 to 0x1001_63ff: 1KB, w/o parity check, each byte write once
> 
> Allow the image to fill the full 64KB payload size (max that secure boot
> supports) and plcae the stack at the top of the 24KB of SRAM.
typo

> @@ -25,8 +25,8 @@
> 
>   /* SPL */
>   #define CONFIG_SPL_TEXT_BASE		0x00000000
> -#define CONFIG_SPL_MAX_SIZE		0x0000E800
> -#define CONFIG_SPL_STACK		0x10010000
> +#define CONFIG_SPL_MAX_SIZE		0x00010000
> +#define CONFIG_SPL_STACK		0x10016000
>   #define CONFIG_SPL_BSS_START_ADDR	0x90000000
>   #define CONFIG_SPL_BSS_MAX_SIZE		0x00100000
> 

Got the following when I tried this patch (Ubuntu 18.04.5, gcc 7.5.0, binutils 2.30). Am I missing something?

   LD      spl/u-boot-spl
arm-linux-gnueabihf-ld.bfd: u-boot-spl section `.u_boot_list' will not fit in region `flash'
arm-linux-gnueabihf-ld.bfd: region `flash' overflowed by 1612 bytes
scripts/Makefile.spl:384: recipe for target 'spl/u-boot-spl' failed
make[1]: *** [spl/u-boot-spl] Error 1
Makefile:1663: recipe for target 'spl/u-boot-spl' failed
make: *** [spl/u-boot-spl] Error 2
Joel Stanley Jan. 27, 2021, 6:56 a.m. UTC | #2
On Wed, 27 Jan 2021 at 01:55, Klaus Heinrich Kiwi
<klaus@linux.vnet.ibm.com> wrote:
>
> Hi Joel,
>
> On 1/25/2021 1:58 AM, Joel Stanley wrote:
> > The SRAM is 89KB on the A1 and beyond:
>
> I guess I'll have to trust you on that one.

You have access to the datasheet and can verify this.

>
> >
> >   0x1000_0000 to 0x1000_ffff: 64KB, with parity check
> >   0x1001_0000 to 0x1001_5fff: 24KB, w/o parity check
> >   0x1001_6000 to 0x1001_63ff: 1KB, w/o parity check, each byte write once
> >
> > Allow the image to fill the full 64KB payload size (max that secure boot
> > supports) and plcae the stack at the top of the 24KB of SRAM.
> typo
>
> > @@ -25,8 +25,8 @@
> >
> >   /* SPL */
> >   #define CONFIG_SPL_TEXT_BASE                0x00000000
> > -#define CONFIG_SPL_MAX_SIZE          0x0000E800
> > -#define CONFIG_SPL_STACK             0x10010000
> > +#define CONFIG_SPL_MAX_SIZE          0x00010000
> > +#define CONFIG_SPL_STACK             0x10016000
> >   #define CONFIG_SPL_BSS_START_ADDR   0x90000000
> >   #define CONFIG_SPL_BSS_MAX_SIZE             0x00100000
> >
>
> Got the following when I tried this patch (Ubuntu 18.04.5, gcc 7.5.0, binutils 2.30). Am I missing something?

This is a very out of date compiler. We use GCC 10 for openbmc.

I will submit a v2 with some new features for reducing the image size.


>
>    LD      spl/u-boot-spl
> arm-linux-gnueabihf-ld.bfd: u-boot-spl section `.u_boot_list' will not fit in region `flash'
> arm-linux-gnueabihf-ld.bfd: region `flash' overflowed by 1612 bytes
> scripts/Makefile.spl:384: recipe for target 'spl/u-boot-spl' failed
> make[1]: *** [spl/u-boot-spl] Error 1
> Makefile:1663: recipe for target 'spl/u-boot-spl' failed
> make: *** [spl/u-boot-spl] Error 2
>
>
> --
> Klaus Heinrich Kiwi <klaus@linux.vnet.ibm.com>
Klaus Heinrich Kiwi Jan. 27, 2021, 12:13 p.m. UTC | #3
On 1/27/2021 3:56 AM, Joel Stanley wrote:
> On Wed, 27 Jan 2021 at 01:55, Klaus Heinrich Kiwi
> <klaus@linux.vnet.ibm.com> wrote:
>>
>> Hi Joel,
>>
>> On 1/25/2021 1:58 AM, Joel Stanley wrote:
>>> The SRAM is 89KB on the A1 and beyond:
>>
>> I guess I'll have to trust you on that one.
> 
> You have access to the datasheet and can verify this.

I'm not sure where to find it. Is that published somewhere?
  
>>
>>>
>>>    0x1000_0000 to 0x1000_ffff: 64KB, with parity check
>>>    0x1001_0000 to 0x1001_5fff: 24KB, w/o parity check
>>>    0x1001_6000 to 0x1001_63ff: 1KB, w/o parity check, each byte write once
>>>
>>> Allow the image to fill the full 64KB payload size (max that secure boot
>>> supports) and plcae the stack at the top of the 24KB of SRAM.
>> typo
>>
>>> @@ -25,8 +25,8 @@
>>>
>>>    /* SPL */
>>>    #define CONFIG_SPL_TEXT_BASE                0x00000000
>>> -#define CONFIG_SPL_MAX_SIZE          0x0000E800
>>> -#define CONFIG_SPL_STACK             0x10010000
>>> +#define CONFIG_SPL_MAX_SIZE          0x00010000
>>> +#define CONFIG_SPL_STACK             0x10016000
>>>    #define CONFIG_SPL_BSS_START_ADDR   0x90000000
>>>    #define CONFIG_SPL_BSS_MAX_SIZE             0x00100000
>>>
>>
>> Got the following when I tried this patch (Ubuntu 18.04.5, gcc 7.5.0, binutils 2.30). Am I missing something?
> 
> This is a very out of date compiler. We use GCC 10 for openbmc.

What compiler version did you test this on?
|   (cd spl && arm-openbmc-linux-gnueabi-ld.bfd   -T u-boot-spl.lds  --gc-sections -Bstatic --gc-sections -pie  --no-dynamic-linker -Ttext 0x00000000 arch/arm/cpu/armv7/start.o --start-group arch/arm/mach-aspeed/built-in.o arch/arm/cpu/armv7/built-in.o arch/arm/cpu/built-in.o arch/arm/lib/built-in.o board/aspeed/evb_ast2600a1/built-in.o common/spl/built-in.o common/init/built-in.o common/built-in.o cmd/built-in.o env/built-in.o lib/built-in.o disk/built-in.o drivers/built-in.o dts/built-in.o fs/built-in.o  --end-group arch/arm/lib/eabi_compat.o arch/arm/lib/lib.a -Map u-boot-spl.map -o u-boot-spl)
| arm-openbmc-linux-gnueabi-ld.bfd: u-boot-spl section `.u_boot_list' will not fit in region `flash'
| arm-openbmc-linux-gnueabi-ld.bfd: region `flash' overflowed by 1736 bytes

$ ./arm-openbmc-linux-gnueabi-gcc --version
arm-openbmc-linux-gnueabi-gcc (GCC) 10.2.0


> 
> I will submit a v2 with some new features for reducing the image size.

Thank you.
diff mbox series

Patch

diff --git a/include/configs/evb_ast2600a1_spl.h b/include/configs/evb_ast2600a1_spl.h
index 69f3c32ce1d5..a39988820add 100644
--- a/include/configs/evb_ast2600a1_spl.h
+++ b/include/configs/evb_ast2600a1_spl.h
@@ -25,8 +25,8 @@ 
 
 /* SPL */
 #define CONFIG_SPL_TEXT_BASE		0x00000000
-#define CONFIG_SPL_MAX_SIZE		0x0000E800
-#define CONFIG_SPL_STACK		0x10010000
+#define CONFIG_SPL_MAX_SIZE		0x00010000
+#define CONFIG_SPL_STACK		0x10016000
 #define CONFIG_SPL_BSS_START_ADDR	0x90000000
 #define CONFIG_SPL_BSS_MAX_SIZE		0x00100000