* [U-Boot] [PATCH 0/2] arm64: Setting up initrd_hi at run time
@ 2019-09-11 7:28 Michal Simek
2019-09-11 7:28 ` [U-Boot] [PATCH 1/2] arm64: versal: Set initrd_high to as high as possible Michal Simek
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Michal Simek @ 2019-09-11 7:28 UTC (permalink / raw)
To: u-boot
Hi,
we are running one u-boot configurations on various boards with different
amount of memory that setting up initrd_high is problematic. There
shouldn't be a problem to setup initrd_high at run time based on DDR size
detection.
The same changes are done for ZynqMP and Versal.
Thanks,
Michal
Siva Durga Prasad Paladugu (1):
arm64: versal: Set initrd_high to as high as possible
T Karthik Reddy (1):
arm64: zynqmp: Set initrd_high to as high as possible
arch/arm/Kconfig | 16 ++++++++++++++++
board/xilinx/versal/board.c | 6 ++++++
board/xilinx/zynqmp/zynqmp.c | 6 ++++++
include/configs/xilinx_versal.h | 1 -
include/configs/xilinx_zynqmp.h | 1 -
5 files changed, 28 insertions(+), 2 deletions(-)
--
2.17.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH 1/2] arm64: versal: Set initrd_high to as high as possible
2019-09-11 7:28 [U-Boot] [PATCH 0/2] arm64: Setting up initrd_hi at run time Michal Simek
@ 2019-09-11 7:28 ` Michal Simek
2019-09-11 7:28 ` [U-Boot] [PATCH 2/2] arm64: zynqmp: " Michal Simek
2019-10-08 7:30 ` [U-Boot] [PATCH 0/2] arm64: Setting up initrd_hi at run time Michal Simek
2 siblings, 0 replies; 4+ messages in thread
From: Michal Simek @ 2019-09-11 7:28 UTC (permalink / raw)
To: u-boot
From: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>
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: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---
arch/arm/Kconfig | 16 ++++++++++++++++
board/xilinx/versal/board.c | 6 ++++++
include/configs/xilinx_versal.h | 1 -
3 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index a93138aa0ada..33cb3e065830 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -462,6 +462,22 @@ config TPL_USE_ARCH_MEMSET
Such implementation may be faster under some conditions
but may increase the binary size.
+config SET_STACK_SIZE
+ bool "Enable an option to set max stack size that can be used"
+ default y if ARCH_VERSAL
+ help
+ This will enable an option to set max stack size that can be
+ used by u-boot.
+
+config STACK_SIZE
+ hex "Define max stack size that can be used by u-boot"
+ depends on SET_STACK_SIZE
+ default 0x4000000 if ARCH_VERSAL
+ help
+ 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
+ stack size.
+
config ARM64_SUPPORT_AARCH32
bool "ARM64 system support AArch32 execution state"
depends on ARM64
diff --git a/board/xilinx/versal/board.c b/board/xilinx/versal/board.c
index a2b00aa0b662..2b4edd8738b4 100644
--- a/board/xilinx/versal/board.c
+++ b/board/xilinx/versal/board.c
@@ -12,6 +12,7 @@
#include <dm/device.h>
#include <dm/uclass.h>
#include <versalpl.h>
+#include <linux/sizes.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -88,6 +89,7 @@ int board_late_init(void)
const char *mode;
char *new_targets;
char *env_targets;
+ ulong initrd_hi;
if (!(gd->flags & GD_FLG_ENV_DEFAULT)) {
debug("Saved variables - Skipping\n");
@@ -183,6 +185,10 @@ int board_late_init(void)
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);
+
return 0;
}
diff --git a/include/configs/xilinx_versal.h b/include/configs/xilinx_versal.h
index 296f4502c652..1e0951c1d92d 100644
--- a/include/configs/xilinx_versal.h
+++ b/include/configs/xilinx_versal.h
@@ -65,7 +65,6 @@
#define ENV_MEM_LAYOUT_SETTINGS \
"fdt_high=10000000\0" \
- "initrd_high=10000000\0" \
"fdt_addr_r=0x40000000\0" \
"pxefile_addr_r=0x10000000\0" \
"kernel_addr_r=0x18000000\0" \
--
2.17.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH 2/2] arm64: zynqmp: Set initrd_high to as high as possible
2019-09-11 7:28 [U-Boot] [PATCH 0/2] arm64: Setting up initrd_hi at run time Michal Simek
2019-09-11 7:28 ` [U-Boot] [PATCH 1/2] arm64: versal: Set initrd_high to as high as possible Michal Simek
@ 2019-09-11 7:28 ` Michal Simek
2019-10-08 7:30 ` [U-Boot] [PATCH 0/2] arm64: Setting up initrd_hi at run time Michal Simek
2 siblings, 0 replies; 4+ messages in thread
From: Michal Simek @ 2019-09-11 7:28 UTC (permalink / raw)
To: u-boot
From: T Karthik Reddy <t.karthik.reddy@xilinx.com>
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>
---
arch/arm/Kconfig | 4 ++--
board/xilinx/zynqmp/zynqmp.c | 6 ++++++
include/configs/xilinx_zynqmp.h | 1 -
3 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 33cb3e065830..257a98d795e5 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -464,7 +464,7 @@ config TPL_USE_ARCH_MEMSET
config SET_STACK_SIZE
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
This will enable an option to set max stack size that can be
used by u-boot.
@@ -472,7 +472,7 @@ config SET_STACK_SIZE
config STACK_SIZE
hex "Define max stack size that can be used by u-boot"
depends on SET_STACK_SIZE
- default 0x4000000 if ARCH_VERSAL
+ default 0x4000000 if ARCH_VERSAL || ARCH_ZYNQMP
help
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
diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c
index d649daba96d4..0c331e332230 100644
--- a/board/xilinx/zynqmp/zynqmp.c
+++ b/board/xilinx/zynqmp/zynqmp.c
@@ -22,6 +22,7 @@
#include <dwc3-uboot.h>
#include <zynqmppl.h>
#include <g_dnl.h>
+#include <linux/sizes.h>
#include "pm_cfg_obj.h"
@@ -530,6 +531,7 @@ int board_late_init(void)
char *new_targets;
char *env_targets;
int ret;
+ ulong initrd_hi;
#if defined(CONFIG_USB_ETHER) && !defined(CONFIG_USB_GADGET_DOWNLOAD)
usb_ether_init();
@@ -647,6 +649,10 @@ int board_late_init(void)
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();
return 0;
diff --git a/include/configs/xilinx_zynqmp.h b/include/configs/xilinx_zynqmp.h
index ddeb24a0af6e..cdcf853fceb3 100644
--- a/include/configs/xilinx_zynqmp.h
+++ b/include/configs/xilinx_zynqmp.h
@@ -109,7 +109,6 @@
#define ENV_MEM_LAYOUT_SETTINGS \
"fdt_high=10000000\0" \
- "initrd_high=10000000\0" \
"fdt_addr_r=0x40000000\0" \
"pxefile_addr_r=0x10000000\0" \
"kernel_addr_r=0x18000000\0" \
--
2.17.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH 0/2] arm64: Setting up initrd_hi at run time
2019-09-11 7:28 [U-Boot] [PATCH 0/2] arm64: Setting up initrd_hi at run time Michal Simek
2019-09-11 7:28 ` [U-Boot] [PATCH 1/2] arm64: versal: Set initrd_high to as high as possible Michal Simek
2019-09-11 7:28 ` [U-Boot] [PATCH 2/2] arm64: zynqmp: " Michal Simek
@ 2019-10-08 7:30 ` Michal Simek
2 siblings, 0 replies; 4+ messages in thread
From: Michal Simek @ 2019-10-08 7:30 UTC (permalink / raw)
To: u-boot
st 11. 9. 2019 v 9:28 odesÃlatel Michal Simek <michal.simek@xilinx.com> napsal:
>
> Hi,
>
> we are running one u-boot configurations on various boards with different
> amount of memory that setting up initrd_high is problematic. There
> shouldn't be a problem to setup initrd_high at run time based on DDR size
> detection.
> The same changes are done for ZynqMP and Versal.
>
> Thanks,
> Michal
>
>
> Siva Durga Prasad Paladugu (1):
> arm64: versal: Set initrd_high to as high as possible
>
> T Karthik Reddy (1):
> arm64: zynqmp: Set initrd_high to as high as possible
>
> arch/arm/Kconfig | 16 ++++++++++++++++
> board/xilinx/versal/board.c | 6 ++++++
> board/xilinx/zynqmp/zynqmp.c | 6 ++++++
> include/configs/xilinx_versal.h | 1 -
> include/configs/xilinx_zynqmp.h | 1 -
> 5 files changed, 28 insertions(+), 2 deletions(-)
>
> --
> 2.17.1
>
Applied.
M
--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal SoCs
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-10-08 7:30 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-11 7:28 [U-Boot] [PATCH 0/2] arm64: Setting up initrd_hi at run time Michal Simek
2019-09-11 7:28 ` [U-Boot] [PATCH 1/2] arm64: versal: Set initrd_high to as high as possible Michal Simek
2019-09-11 7:28 ` [U-Boot] [PATCH 2/2] arm64: zynqmp: " Michal Simek
2019-10-08 7:30 ` [U-Boot] [PATCH 0/2] arm64: Setting up initrd_hi at run time Michal Simek
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.