summaryrefslogtreecommitdiff
path: root/include/configs
diff options
context:
space:
mode:
authorStephen Warren <swarren@nvidia.com>2014-06-19 10:52:59 -0600
committerTom Warren <twarren@nvidia.com>2014-06-19 10:47:20 -0700
commitfe7b7cd26683b29bed407bf5ab778e8d80201d73 (patch)
treed685eac710483fce1aa0103bfb098462dab49b30 /include/configs
parent72638b02f4c380879b0f90b67bcb8d1081dd2eab (diff)
downloadu-boot-imx-fe7b7cd26683b29bed407bf5ab778e8d80201d73.zip
u-boot-imx-fe7b7cd26683b29bed407bf5ab778e8d80201d73.tar.gz
u-boot-imx-fe7b7cd26683b29bed407bf5ab778e8d80201d73.tar.bz2
ARM: tegra: set initrd_high so boot scripts work
During bootm/z, U-Boot relocates the DTB and initrd to high memory so they are out of the way of the kernel. On ARM at least, some parts of high memory are "highmem" and can't be accessed at early boot. To solve this, we need to restrict this relocation process to use lower parts of RAM that area accessible. For the DTB, an earlier patch of mine set CONFIG_SYS_BOOTMAPSZ. However, since some platforms have different restrictions on DTB and initrd location, that config option doesn't affect the initrd. We need to set the initrd_high environment variable to control the initrd relocation. Since we have carefully chosen the load addresses for the DTB and initrd (see comments in include/configs/tegraNNN-common.h re: values in MEM_LAYOUT_ENV_SETTINGS), we don't actually need any DTB or initrd relocation at all. Skipping relocation removes some redundant work. Hence, set both fdt_high and initrd_high to ffffffff which completely disables relocation. If the user does something unusual, such as using custom locations for the DTB/initrd load address or wanting to use DTB/initrd relocation for some reason, they can simply set these variables to custom values to override these environment defaults. With this change, cmd_sysboot works correctly for a filesystem created by the Fedora installer. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Tom Warren <twarren@nvidia.com>
Diffstat (limited to 'include/configs')
-rw-r--r--include/configs/tegra-common-post.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/configs/tegra-common-post.h b/include/configs/tegra-common-post.h
index 8cfc17a..1c770c9 100644
--- a/include/configs/tegra-common-post.h
+++ b/include/configs/tegra-common-post.h
@@ -173,6 +173,8 @@
#define CONFIG_EXTRA_ENV_SETTINGS \
TEGRA_DEVICE_SETTINGS \
MEM_LAYOUT_ENV_SETTINGS \
+ "fdt_high=ffffffff\0" \
+ "initrd_high=ffffffff\0" \
BOOTCMDS_COMMON \
BOARD_EXTRA_ENV_SETTINGS