[PATCH 5/5] qemu-arm: get FDT from bloblist

Raymond Mao raymond.mao at linaro.org
Tue Dec 19 22:11:12 CET 2023


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.mao at 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



More information about the U-Boot mailing list