arm64: zynqmp: Set initrd_high to as high as possible

This patch is setting up the initrd_high to as high as possible by leaving
max stack size for u-boot so that bigger rootfs can also be loaded by
u-boot for booting kernel.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
This commit is contained in:
T Karthik Reddy 2019-08-20 09:30:57 +05:30 committed by Michal Simek
parent 085201c246
commit a69814c815
3 changed files with 8 additions and 3 deletions

View File

@ -464,7 +464,7 @@ config TPL_USE_ARCH_MEMSET
config SET_STACK_SIZE config SET_STACK_SIZE
bool "Enable an option to set max stack size that can be used" bool "Enable an option to set max stack size that can be used"
default y if ARCH_VERSAL default y if ARCH_VERSAL || ARCH_ZYNQMP
help help
This will enable an option to set max stack size that can be This will enable an option to set max stack size that can be
used by u-boot. used by u-boot.
@ -472,7 +472,7 @@ config SET_STACK_SIZE
config STACK_SIZE config STACK_SIZE
hex "Define max stack size that can be used by u-boot" hex "Define max stack size that can be used by u-boot"
depends on SET_STACK_SIZE depends on SET_STACK_SIZE
default 0x4000000 if ARCH_VERSAL default 0x4000000 if ARCH_VERSAL || ARCH_ZYNQMP
help help
Defines Max stack size that can be used by u-boot so that the Defines Max stack size that can be used by u-boot so that the
initrd_high will be calculated as base stack pointer minus this initrd_high will be calculated as base stack pointer minus this

View File

@ -22,6 +22,7 @@
#include <dwc3-uboot.h> #include <dwc3-uboot.h>
#include <zynqmppl.h> #include <zynqmppl.h>
#include <g_dnl.h> #include <g_dnl.h>
#include <linux/sizes.h>
#include "pm_cfg_obj.h" #include "pm_cfg_obj.h"
@ -530,6 +531,7 @@ int board_late_init(void)
char *new_targets; char *new_targets;
char *env_targets; char *env_targets;
int ret; int ret;
ulong initrd_hi;
#if defined(CONFIG_USB_ETHER) && !defined(CONFIG_USB_GADGET_DOWNLOAD) #if defined(CONFIG_USB_ETHER) && !defined(CONFIG_USB_GADGET_DOWNLOAD)
usb_ether_init(); usb_ether_init();
@ -647,6 +649,10 @@ int board_late_init(void)
env_set("boot_targets", new_targets); env_set("boot_targets", new_targets);
initrd_hi = gd->start_addr_sp - CONFIG_STACK_SIZE;
initrd_hi = round_down(initrd_hi, SZ_16M);
env_set_addr("initrd_high", (void *)initrd_hi);
reset_reason(); reset_reason();
return 0; return 0;

View File

@ -109,7 +109,6 @@
#define ENV_MEM_LAYOUT_SETTINGS \ #define ENV_MEM_LAYOUT_SETTINGS \
"fdt_high=10000000\0" \ "fdt_high=10000000\0" \
"initrd_high=10000000\0" \
"fdt_addr_r=0x40000000\0" \ "fdt_addr_r=0x40000000\0" \
"pxefile_addr_r=0x10000000\0" \ "pxefile_addr_r=0x10000000\0" \
"kernel_addr_r=0x18000000\0" \ "kernel_addr_r=0x18000000\0" \