stm32mp1: remove fdt_high and initrd_high in environment
authorPatrick Delaunay <patrick.delaunay@st.com>
Mon, 10 Feb 2020 10:54:11 +0000 (11:54 +0100)
committerPatrick Delaunay <patrick.delaunay@st.com>
Thu, 13 Feb 2020 17:47:00 +0000 (18:47 +0100)
Remove fdt_high and initrd_high (set to 0xffffffff) in stm32mp1 board
enviromnent, and U-Boot always relocate FDT and initrd in bootm command.

This relocation is limited by CONFIG_SYS_BOOTMAPSZ which indicates
the size of the memory region where it is safe to place data passed
to the Linux kernel (DTB, initrd), it is
a) Less than or equal to RAM size.
b) not within the kernel's highmem region

So 256M seems large enough in most circumstances and users
can override this value via environment variable "bootm_mapsize"
if needed.

This modification increases the boot time but avoid assumption
on aligned address for bootm command.

A user can still define this variables themselves if the FDT or
initrd is either left in-place or copied to a specific location.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
include/configs/stm32mp1.h

index a66534e..42717c1 100644 (file)
 #define CONFIG_SETUP_MEMORY_TAGS
 #define CONFIG_INITRD_TAG
 
+/*
+ * For booting Linux, use the first 256 MB of memory, since this is
+ * the maximum mapped by the Linux kernel during initialization.
+ */
+#define CONFIG_SYS_BOOTMAPSZ           SZ_256M
+
 /* Extend size of kernel image for uncompression */
-#define CONFIG_SYS_BOOTM_LEN                   SZ_32M
+#define CONFIG_SYS_BOOTM_LEN           SZ_32M
 
 /* SPL support */
 #ifdef CONFIG_SPL
        "pxefile_addr_r=0xc4200000\0" \
        "splashimage=0xc4300000\0"  \
        "ramdisk_addr_r=0xc4400000\0" \
-       "fdt_high=0xffffffff\0" \
-       "initrd_high=0xffffffff\0" \
        "altbootcmd=run bootcmd\0" \
        "env_default=1\0" \
        "env_check=if test $env_default -eq 1;"\