diff options
Diffstat (limited to 'include/configs/rpi-common.h')
-rw-r--r-- | include/configs/rpi-common.h | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/include/configs/rpi-common.h b/include/configs/rpi-common.h index 927bae78eb..48f5fc2d03 100644 --- a/include/configs/rpi-common.h +++ b/include/configs/rpi-common.h @@ -144,8 +144,14 @@ /* * 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 low in memory to avoid conflicts. + * I suspect address 0 is used as the SMP pen on the RPi2, so avoid this. + * + * fdt_addr_r simply shouldn't overlap anything else. However, the RPi's + * binary firmware loads a DT to address 0x100, so we choose this address to + * match it. This allows custom boot scripts to pass this DT on to Linux + * simply by not over-writing the data at this address. When using U-Boot, + * U-Boot (and scripts it executes) typicaly ignore the DT loaded by the FW + * and loads its own DT from disk (triggered by boot.scr or extlinux.conf). * * pxefile_addr_r can be pretty much anywhere that doesn't conflict with * something else. Put it low in memory to avoid conflicts. @@ -159,13 +165,14 @@ * 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. + * scriptaddr can be pretty much anywhere that doesn't conflict with something + * else. Choosing 32M allows for the compressed kernel to be up to 16M. * * 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. + * for any boot script to be up to 1M, which is hopefully plenty. */ #define ENV_MEM_LAYOUT_SETTINGS \ + "fdt_high=ffffffff\0" \ "fdt_addr_r=0x00000100\0" \ "pxefile_addr_r=0x00100000\0" \ "kernel_addr_r=0x01000000\0" \ |