summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorStefan Agner <stefan@agner.ch>2015-10-14 10:58:43 -0700
committerStefano Babic <sbabic@denx.de>2015-10-15 11:22:07 +0200
commitcf04ad3219260c3c39ec3dbfe2427e3463e8dbd5 (patch)
tree4e65b7987a548115b7fdd857b65aa68bbd4b8273 /include
parentd45fd018c8ed233f55c9b4e219d06c71abf9e299 (diff)
downloadu-boot-imx-cf04ad3219260c3c39ec3dbfe2427e3463e8dbd5.zip
u-boot-imx-cf04ad3219260c3c39ec3dbfe2427e3463e8dbd5.tar.gz
u-boot-imx-cf04ad3219260c3c39ec3dbfe2427e3463e8dbd5.tar.bz2
arm: vf610twr: improve memory layout
Currently, the device tree relocation is disabled, likely to keep some DDR3 RAM at the end for Cortex-M4 firmwares. This can be archived using bootm_size, which limits the image processing range of the boot commands. Move the device tree standard load address to a higher address which aligns better with what we are doing on other boards. Signed-off-by: Stefan Agner <stefan@agner.ch> Acked-by: Otavio Salvador <otavio@ossystems.com.br>
Diffstat (limited to 'include')
-rw-r--r--include/configs/vf610twr.h27
1 files changed, 21 insertions, 6 deletions
diff --git a/include/configs/vf610twr.h b/include/configs/vf610twr.h
index 324ba8f..7f4260a 100644
--- a/include/configs/vf610twr.h
+++ b/include/configs/vf610twr.h
@@ -116,20 +116,37 @@
#define CONFIG_BOOTDELAY 3
-#define CONFIG_LOADADDR 0x82000000
+#define CONFIG_SYS_LOAD_ADDR 0x82000000
/* We boot from the gfxRAM area of the OCRAM. */
#define CONFIG_SYS_TEXT_BASE 0x3f408000
#define CONFIG_BOARD_SIZE_LIMIT 524288
+/*
+ * We do have 128MB of memory on the Vybrid Tower board. Leave the last
+ * 16MB alone to avoid conflicts with Cortex-M4 firmwares running from
+ * DDR3. Hence, limit the memory range for image processing to 112MB
+ * using bootm_size. All of the following must be within this range.
+ * We have the default load at 32MB into DDR (for the kernel), FDT at
+ * 64MB and the ramdisk 512KB above that (allowing for hopefully never
+ * seen large trees). This allows a reasonable split between ramdisk
+ * and kernel size, where the ram disk can be a bit larger.
+ */
+#define MEM_LAYOUT_ENV_SETTINGS \
+ "bootm_size=0x07000000\0" \
+ "loadaddr=0x82000000\0" \
+ "kernel_addr_r=0x82000000\0" \
+ "fdt_addr=0x84000000\0" \
+ "fdt_addr_r=0x84000000\0" \
+ "rdaddr=0x84080000\0" \
+ "ramdisk_addr_r=0x84080000\0"
+
#define CONFIG_EXTRA_ENV_SETTINGS \
+ MEM_LAYOUT_ENV_SETTINGS \
"script=boot.scr\0" \
"image=zImage\0" \
"console=ttyLP1\0" \
- "fdt_high=0xffffffff\0" \
- "initrd_high=0xffffffff\0" \
"fdt_file=vf610-twr.dtb\0" \
- "fdt_addr=0x81000000\0" \
"boot_fdt=try\0" \
"ip_dyn=yes\0" \
"mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
@@ -224,8 +241,6 @@
#define CONFIG_SYS_MEMTEST_START 0x80010000
#define CONFIG_SYS_MEMTEST_END 0x87C00000
-#define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR
-
/*
* Stack sizes
* The stack sizes are set up in start.S using the settings below