hw/arm/boot: load DTB as a ROM image
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Fri, 12 Sep 2014 13:06:50 +0000 (14:06 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 12 Sep 2014 13:06:50 +0000 (14:06 +0100)
In order to make the device tree blob (DTB) available in memory not only at
first boot, but also after system reset, use rom_blob_add_fixed() to install
it into memory.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Message-id: 1410453915-9344-2-git-send-email-ard.biesheuvel@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/arm/boot.c

index e32f2f4..50eca93 100644 (file)
@@ -396,7 +396,10 @@ static int load_dtb(hwaddr addr, const struct arm_boot_info *binfo)
 
     qemu_fdt_dumpdtb(fdt, size);
 
-    cpu_physical_memory_write(addr, fdt, size);
+    /* Put the DTB into the memory map as a ROM image: this will ensure
+     * the DTB is copied again upon reset, even if addr points into RAM.
+     */
+    rom_add_blob_fixed("dtb", fdt, size, addr);
 
     g_free(fdt);