[U-Boot] [PATCH v4 2/2] rpi: passthrough of the firmware provided FDT blob
Stephen Warren
swarren at wwwdotorg.org
Fri Nov 11 17:52:11 CET 2016
On 11/11/2016 03:59 AM, Cédric Schieli wrote:
> Raspberry firmware used to pass a FDT blob at a fixed address (0x100),
> but this is not true anymore. The address now depends on both the
> memory size and the blob size [1].
>
> If one wants to passthrough this FDT blob to the kernel, the most
> reliable way is to save its address from the r2/x0 register in the
> U-Boot entry point and expose it in a environment variable for
> further processing.
>
> This patch just does this:
> - save the provided address in the global variable fw_dtb_pointer
> - expose it in ${fdt_addr} if it points to a a valid FDT blob
>
> There are many different ways to use it. One can, for example, use
> the following script which will extract from the tree the command
> line built by the firmware, then hand over the blob to a previously
> loaded kernel:
>
> fdt addr ${fdt_addr}
> fdt get value bootargs /chosen bootargs
> bootz ${kernel_addr_r} - ${fdt_addr}
>
> Alternatively, users relying on sysboot/pxe can simply omit any FDT
> statement in their extlinux.conf file, U-Boot will automagically pick
> ${fdt_addr} and pass it to the kernel.
>
> [1] https://www.raspberrypi.org/forums//viewtopic.php?f=107&t=134018
Acked-by: Stephen Warren <swarren at nvidia.com>
More information about the U-Boot
mailing list