From 82f766d1d2c580a29bed340ea4dd9fa1b8ff05e0 Mon Sep 17 00:00:00 2001 From: Alex Deymo Date: Sun, 2 Apr 2017 01:25:20 -0700 Subject: Allow boards to initialize the DT at runtime. In some boards like the Raspberry Pi the initial bootloader will pass a DT to the kernel. When using U-Boot as such kernel, the board code in U-Boot should be able to provide U-Boot with this, already assembled device tree blob. This patch introduces a new config option CONFIG_OF_BOARD to use instead of CONFIG_OF_EMBED or CONFIG_OF_SEPARATE which will initialize the DT from a board-specific funtion instead of bundling one with U-Boot or as a separated file. This allows boards like the Raspberry Pi to reuse the device tree passed from the bootcode.bin and start.elf firmware files, including the run-time selected device tree overlays. Signed-off-by: Alex Deymo Reviewed-by: Simon Glass --- lib/fdtdec.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lib') diff --git a/lib/fdtdec.c b/lib/fdtdec.c index 94372cc6cd5..c072e54cffa 100644 --- a/lib/fdtdec.c +++ b/lib/fdtdec.c @@ -1255,6 +1255,9 @@ int fdtdec_setup(void) /* FDT is at end of image */ gd->fdt_blob = (ulong *)&_end; # endif +# elif defined(CONFIG_OF_BOARD) + /* Allow the board to override the fdt address. */ + gd->fdt_blob = board_fdt_blob_setup(); # elif defined(CONFIG_OF_HOSTFILE) if (sandbox_read_fdt_from_file()) { puts("Failed to read control FDT\n"); -- cgit v1.3.1