Get devicetree from a bloblist if it exists. If not, fallback to get FDT from the specified memory address.
Signed-off-by: Raymond Mao <raymond....@linaro.org> --- board/emulation/qemu-arm/qemu-arm.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/board/emulation/qemu-arm/qemu-arm.c b/board/emulation/qemu-arm/qemu-arm.c index 72e0a97567..455c042a9a 100644 --- a/board/emulation/qemu-arm/qemu-arm.c +++ b/board/emulation/qemu-arm/qemu-arm.c @@ -148,9 +148,20 @@ int dram_init_banksize(void) void *board_fdt_blob_setup(int *err) { + void *fdt = NULL; *err = 0; - /* QEMU loads a generated DTB for us at the start of RAM. */ - return (void *)CFG_SYS_SDRAM_BASE; + + /* Check if a DTB exists in bloblist */ + if (IS_ENABLED(CONFIG_BLOBLIST)) { + if (bloblist_maybe_init()) + return (void *)CFG_SYS_SDRAM_BASE; + fdt = bloblist_find(BLOBLISTT_CONTROL_FDT, 0); + } + if (!fdt) + /* QEMU loads a generated DTB for us at the start of RAM. */ + return (void *)CFG_SYS_SDRAM_BASE; + else + return fdt; } int board_bloblist_from_boot_arg(unsigned long addr, unsigned long size) -- 2.25.1