Message ID | a68ed9d8538004aeb11eb9b87e3c11c6abb6692f.1629811520.git.michal.simek@xilinx.com |
---|---|
State | Accepted |
Commit | 229cb5c6ba3469cbc4a0bcc69389fe61c51fd3b4 |
Delegated to: | Michal Simek |
Headers | show |
Series | xilinx: zynqmp: Enable stack relocation to DDR | expand |
Ășt 24. 8. 2021 v 15:25 odesĂlatel Michal Simek <michal.simek@xilinx.com> napsal: > > There is no space in OCM for SPL stack because the space in OCM is occupied > by TF-A. That's why move relocate stack to DDR to 0x18000000 address > and also enable SPL_SIZE_LIMIT not to be more then 0xfffea000 which is > default address for TFA. > > It is good to summarize current DDR usage in SPL flow. > 0-0x80000 is used for BSS > (CONFIG_SPL_BSS_START_ADDR, CONFIG_SPL_BSS_MAX_SIZE) > 0x100000 is used for DTB passing address > (CONFIG_XILINX_OF_BOARD_DTB_ADDR) > 0x17fffe70 - CONFIG_SPL_STACK_R_ADDR - is used for GD > 0x18000000 is used for SPL stack > (CONFIG_SPL_STACK_R_ADDR) > 0x20000000-0x21000000 is used for SPL malloc area > (CONFIG_SYS_SPL_MALLOC_START, CONFIG_SYS_SPL_MALLOC_SIZE) > > Signed-off-by: Michal Simek <michal.simek@xilinx.com> > --- > > configs/xilinx_zynqmp_virt_defconfig | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/configs/xilinx_zynqmp_virt_defconfig b/configs/xilinx_zynqmp_virt_defconfig > index 8d82fe918a60..00f7133d775a 100644 > --- a/configs/xilinx_zynqmp_virt_defconfig > +++ b/configs/xilinx_zynqmp_virt_defconfig > @@ -8,6 +8,9 @@ CONFIG_SYS_MEMTEST_END=0x00001000 > CONFIG_SYS_SPI_U_BOOT_OFFS=0x100000 > CONFIG_DM_GPIO=y > CONFIG_DEFAULT_DEVICE_TREE="zynqmp-zcu100-revC" > +CONFIG_SPL_STACK_R_ADDR=0x18000000 > +CONFIG_SPL_SIZE_LIMIT=0x2a000 > +CONFIG_SPL_SIZE_LIMIT_PROVIDE_STACK=0x0 > CONFIG_SPL=y > CONFIG_SPL_SPI_FLASH_SUPPORT=y > CONFIG_SPL_SPI_SUPPORT=y > @@ -28,6 +31,7 @@ CONFIG_USE_PREBOOT=y > CONFIG_PREBOOT="run scsi_init;usb start" > CONFIG_BOARD_EARLY_INIT_F=y > CONFIG_BOARD_EARLY_INIT_R=y > +CONFIG_SPL_STACK_R=y > CONFIG_SPL_FPGA=y > CONFIG_SPL_OS_BOOT=y > CONFIG_SPL_RAM_SUPPORT=y > -- > 2.33.0 > Applied. M
diff --git a/configs/xilinx_zynqmp_virt_defconfig b/configs/xilinx_zynqmp_virt_defconfig index 8d82fe918a60..00f7133d775a 100644 --- a/configs/xilinx_zynqmp_virt_defconfig +++ b/configs/xilinx_zynqmp_virt_defconfig @@ -8,6 +8,9 @@ CONFIG_SYS_MEMTEST_END=0x00001000 CONFIG_SYS_SPI_U_BOOT_OFFS=0x100000 CONFIG_DM_GPIO=y CONFIG_DEFAULT_DEVICE_TREE="zynqmp-zcu100-revC" +CONFIG_SPL_STACK_R_ADDR=0x18000000 +CONFIG_SPL_SIZE_LIMIT=0x2a000 +CONFIG_SPL_SIZE_LIMIT_PROVIDE_STACK=0x0 CONFIG_SPL=y CONFIG_SPL_SPI_FLASH_SUPPORT=y CONFIG_SPL_SPI_SUPPORT=y @@ -28,6 +31,7 @@ CONFIG_USE_PREBOOT=y CONFIG_PREBOOT="run scsi_init;usb start" CONFIG_BOARD_EARLY_INIT_F=y CONFIG_BOARD_EARLY_INIT_R=y +CONFIG_SPL_STACK_R=y CONFIG_SPL_FPGA=y CONFIG_SPL_OS_BOOT=y CONFIG_SPL_RAM_SUPPORT=y
There is no space in OCM for SPL stack because the space in OCM is occupied by TF-A. That's why move relocate stack to DDR to 0x18000000 address and also enable SPL_SIZE_LIMIT not to be more then 0xfffea000 which is default address for TFA. It is good to summarize current DDR usage in SPL flow. 0-0x80000 is used for BSS (CONFIG_SPL_BSS_START_ADDR, CONFIG_SPL_BSS_MAX_SIZE) 0x100000 is used for DTB passing address (CONFIG_XILINX_OF_BOARD_DTB_ADDR) 0x17fffe70 - CONFIG_SPL_STACK_R_ADDR - is used for GD 0x18000000 is used for SPL stack (CONFIG_SPL_STACK_R_ADDR) 0x20000000-0x21000000 is used for SPL malloc area (CONFIG_SYS_SPL_MALLOC_START, CONFIG_SYS_SPL_MALLOC_SIZE) Signed-off-by: Michal Simek <michal.simek@xilinx.com> --- configs/xilinx_zynqmp_virt_defconfig | 4 ++++ 1 file changed, 4 insertions(+)