• A
    arm: juno: Fix Juno address variables · 7d6dae0d
    Andre Przywara 提交于
    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: NAndre Przywara <andre.przywara@arm.com>
    Reviewed-by: NSimon Glass <sjg@chromium.org>
    7d6dae0d
vexpress_aemv8a.h 6.9 KB