[U-Boot] [PATCH] ARM: tegra: use standard variables to define load addresses
Simon Glass
sjg at chromium.org
Fri Sep 21 00:53:56 CEST 2012
Hi Stephen,
On Thu, Sep 20, 2012 at 3:20 PM, Stephen Warren <swarren at wwwdotorg.org> wrote:
> From: Stephen Warren <swarren at nvidia.com>
>
> Currently, Tegra's default environment uses non-standard variables to define
> where boot scripts should load the kernel, FDT, and initrd. This change both
> changes the variable names to match those described in U-Boot's README, and
> shuffles their values around a little so that the values make a little more
> sense; see comments in the patch for rationale behind the values chosen.
>
> Note that this patch does remove the old non-standard variable "fdt_load" from
> the default environment, so this patch requires people to change their boot
> scripts.
>
> Signed-off-by: Stephen Warren <swarren at nvidia.com>
Acked-by: Simon Glass <sjg at chromium.org>
> ---
> include/configs/tegra-common-post.h | 31 ++++++++++++++++++++++++++++---
> 1 files changed, 28 insertions(+), 3 deletions(-)
>
> diff --git a/include/configs/tegra-common-post.h b/include/configs/tegra-common-post.h
> index 1e7aea9..048ecbb 100644
> --- a/include/configs/tegra-common-post.h
> +++ b/include/configs/tegra-common-post.h
> @@ -95,8 +95,6 @@
> #endif
>
> #define BOOTCMDS_COMMON \
> - "scriptaddr=0x400000\0" \
> - \
> "rootpart=1\0" \
> \
> "script_boot=" \
> @@ -140,9 +138,36 @@
>
> #endif
>
> +/*
> + * Memory layout for where various images get loaded by boot scripts:
> + *
> + * scriptaddr can be pretty much anywhere that doesn't conflict with something
> + * else. Put it above BOOTMAPSZ to eliminate conflicts.
> + *
> + * kernel_addr_r must be within the first 128M of RAM in order for the
> + * kernel's CONFIG_AUTO_ZRELADDR option to work. Since the kernel will
> + * decompress itself to 0x8000 after the start of RAM, kernel_addr_r
Does this work for T30? I suppose that's for another day anyway.
> + * should not overlap that area, or the kernel will have to copy itself
> + * somewhere else before decompression. Similarly, the address of any other
> + * data passed to the kernel shouldn't overlap the start of RAM. Pushing
> + * this up to 16M allows for a sizable kernel to be decompressed below the
> + * compressed load address.
> + *
> + * fdt_addr_r simply shouldn't overlap anything else. Choosing 32M allows for
> + * the compressed kernel to be up to 16M too.
> + *
> + * ramdisk_addr_r simply shouldn't overlap anything else. Choosing 33M allows
> + * for the FDT/DTB to be up to 1M, which is hopefully plenty.
> + */
> +#define MEM_LAYOUT_ENV_SETTINGS \
> + "scriptaddr=0x10000000\0" \
> + "kernel_addr_r=0x01000000\0" \
> + "fdt_addr_r=0x02000000\0" \
> + "ramdisk_addr_r=0x02100000\0" \
I'm not sure you need the 0x since they should be hex anyway. But it
does no harm and I'm not sure if there is a convention for it.
> +
> #define CONFIG_EXTRA_ENV_SETTINGS \
> TEGRA_DEVICE_SETTINGS \
> - "fdt_load=0x01000000\0" \
> + MEM_LAYOUT_ENV_SETTINGS \
> BOOTCMDS_COMMON
>
> /* overrides for SPL build here */
> --
> 1.7.0.4
>
Regards,
Simon
More information about the U-Boot
mailing list