[PATCH v3 1/7] arm: juno: Fix Juno address variables

Simon Glass sjg at chromium.org
Tue Apr 28 19:57:23 CEST 2020


On Mon, 27 Apr 2020 at 12:18, Andre Przywara <andre.przywara at arm.com> wrote:
>
> The U-Boot documentation explains that variables ending with "_r" hold
> addresses in DRAM, while those without that ending point to flash/ROM.
> The default variables for the Juno board pointing to the kernel and DTB
> load addresses were not complying with this scheme: they lack the
> extension, but point to DRAM. This is particularly confusing since the
> Juno board features parallel NOR flash, so there *is* a memory mapped
> NOR address holding a DTB, for instance.
>
> Fix the variables to use the proper names, changing initrd_addr to
> ramdisk_addr_r on the way, which seems to be more prevelant and
> documented. On the way adjust the FDT load address to be situated
> *before* the kernel, since users happened to overwrite the DTB by the
> kernel clearing its .BSS section during initialisation.
> Also remove the fdt_high and initrd_high variables (which were set
> to -1), to allow U-Boot moving those images around.
>
> This should avoid many problems in the future, but breaks loading
> Linux kernels < v4.2, since they expect the DTB to be loaded in the same
> 512MB region as the kernel. If you need to load such an old kernel,
> please set fdt_high to either 0xffffffffffffffff or 0xa0000000 (if you
> load the kernel to the beginning of DRAM).
>
> That fixes loading debug kernels, which happened to overwrite the DTB on
> certain setups.
>
> Signed-off-by: Andre Przywara <andre.przywara at arm.com>
> ---
>  include/configs/vexpress_aemv8a.h | 28 +++++++++++++---------------
>  1 file changed, 13 insertions(+), 15 deletions(-)

Reviewed-by: Simon Glass <sjg at chromium.org>


More information about the U-Boot mailing list