The Linux kernel cannot unpack a ramdisk that's stored in high memory. Unless the initrd_high environment variable is explicitly set, abide by that restriction using the getenv_bootm_low() and getenv_bootm_mapsize() helpers.
Signed-off-by: Thierry Reding <tred...@nvidia.com> --- Changes in v2: - update function header comment common/image.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/common/image.c b/common/image.c index 2c88091..47336f2 100644 --- a/common/image.c +++ b/common/image.c @@ -966,7 +966,8 @@ int boot_get_ramdisk(int argc, char * const argv[], bootm_headers_t *images, * end address (after possible relocation) * * boot_ramdisk_high() takes a relocation hint from "initrd_high" environement - * variable and if requested ramdisk data is moved to a specified location. + * variable and if requested ramdisk data is moved to a specified location. If + * no such hint is given, the default is to relocate the initrd to low memory. * * Initrd_start and initrd_end are set to final (after relocation) ramdisk * start/end addresses if ramdisk image start and len were provided, @@ -991,8 +992,8 @@ int boot_ramdisk_high(struct lmb *lmb, ulong rd_data, ulong rd_len, if (initrd_high == ~0) initrd_copy_to_ram = 0; } else { - /* not set, no restrictions to load high */ - initrd_high = ~0; + /* make sure to put ramdisk in low memory */ + initrd_high = getenv_bootm_low() + getenv_bootm_mapsize(); } -- 1.8.4 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot