mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-18 06:58:54 +00:00
ARM: zynq: Fix location of stack and malloc areas
The patch
"board_init: Change the logic to setup malloc_base"
(sha1: 9ac4fc8207
)
breaks SPL for Zynq because it puts early alloc area on the stack which
caused that stack was decreased by CONFIG_SYS_MALLOC_F_LEN (0x400)
and there was not enough space for regular stack.
This patch changes memory layout to better utilize the last 64k OCM
block.
0xffff0000 - 0xfff1000 - Full malloc space
0xffff1000 - 0xffff300 - Stack location
0xfffff300 - CONFIG_SYS_MALLOC_F_LEN - Early malloc space
0xfffffd00 - sizeof(GD) - GD
0xfffffe00 - 0xffffffff - SoC specific boot code
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Tested-by: Moritz Fischer <moritz.fischer@ettus.com>
This commit is contained in:
parent
e92fc6df7a
commit
83b6464daa
1 changed files with 8 additions and 8 deletions
|
@ -367,17 +367,17 @@
|
|||
/* The highest 64k OCM address */
|
||||
#define OCM_HIGH_ADDR 0xffff0000
|
||||
|
||||
/* Just define any reasonable size */
|
||||
#define CONFIG_SPL_STACK_SIZE 0x1000
|
||||
|
||||
/* SPL stack position - and stack goes down */
|
||||
#define CONFIG_SPL_STACK (OCM_HIGH_ADDR + CONFIG_SPL_STACK_SIZE)
|
||||
|
||||
/* On the top of OCM space */
|
||||
#define CONFIG_SYS_SPL_MALLOC_START (CONFIG_SPL_STACK + \
|
||||
GENERATED_GBL_DATA_SIZE)
|
||||
#define CONFIG_SYS_SPL_MALLOC_START OCM_HIGH_ADDR
|
||||
#define CONFIG_SYS_SPL_MALLOC_SIZE 0x1000
|
||||
|
||||
/*
|
||||
* SPL stack position - and stack goes down
|
||||
* 0xfffffe00 is used for putting wfi loop.
|
||||
* Set it up as limit for now.
|
||||
*/
|
||||
#define CONFIG_SPL_STACK 0xfffffe00
|
||||
|
||||
/* BSS setup */
|
||||
#define CONFIG_SPL_BSS_START_ADDR 0x100000
|
||||
#define CONFIG_SPL_BSS_MAX_SIZE 0x100000
|
||||
|
|
Loading…
Add table
Reference in a new issue