From 4b0c7aa3647d8d273395ff1e6176850e61f2d331 Mon Sep 17 00:00:00 2001 From: "Edgar E. Iglesias" Date: Wed, 3 Jun 2009 21:54:31 +0200 Subject: [PATCH] microblaze: Fix loading of petalogix s3adsp1800 dtb. Provide a petalogix-s3adsp1800.dtb blob. Correct loading of the petalogix dtb. Signed-off-by: Edgar E. Iglesias --- Makefile | 2 +- hw/petalogix_s3adsp1800_mmu.c | 20 +++++++++++--------- pc-bios/petalogix-s3adsp1800.dtb | Bin 0 -> 8259 bytes 3 files changed, 12 insertions(+), 10 deletions(-) create mode 100644 pc-bios/petalogix-s3adsp1800.dtb diff --git a/Makefile b/Makefile index d7b99859dd..601a97df2e 100644 --- a/Makefile +++ b/Makefile @@ -271,7 +271,7 @@ ifdef INSTALL_BLOBS BLOBS=bios.bin vgabios.bin vgabios-cirrus.bin ppc_rom.bin \ video.x openbios-sparc32 openbios-sparc64 openbios-ppc \ pxe-ne2k_pci.bin pxe-rtl8139.bin pxe-pcnet.bin pxe-e1000.bin \ -bamboo.dtb +bamboo.dtb petalogix-s3adsp1800.dtb else BLOBS= endif diff --git a/hw/petalogix_s3adsp1800_mmu.c b/hw/petalogix_s3adsp1800_mmu.c index 80097df818..9ccd12b9d7 100644 --- a/hw/petalogix_s3adsp1800_mmu.c +++ b/hw/petalogix_s3adsp1800_mmu.c @@ -54,22 +54,20 @@ static int petalogix_load_device_tree(target_phys_addr_t addr, { #ifdef HAVE_FDT void *fdt; - char *path = NULL; - int pathlen; int r; #endif + char *path; int fdt_size; #ifdef HAVE_FDT /* Try the local "mb.dtb" override. */ fdt = load_device_tree("mb.dtb", &fdt_size); if (!fdt) { - pathlen = snprintf(NULL, 0, "%s/%s", - bios_dir, BINARY_DEVICE_TREE_FILE) + 1; - path = qemu_malloc(pathlen); - snprintf(path, pathlen, "%s/%s", bios_dir, BINARY_DEVICE_TREE_FILE); - fdt = load_device_tree(BINARY_DEVICE_TREE_FILE, &fdt_size); - free(path); + path = qemu_find_file(QEMU_FILE_TYPE_BIOS, BINARY_DEVICE_TREE_FILE); + if (path) { + fdt = load_device_tree(path, &fdt_size); + qemu_free(path); + } if (!fdt) return 0; } @@ -83,7 +81,11 @@ static int petalogix_load_device_tree(target_phys_addr_t addr, to the kernel. */ fdt_size = load_image_targphys("mb.dtb", addr, 0x10000); if (fdt_size < 0) { - fdt_size = load_image_targphys(BINARY_DEVICE_TREE_FILE, addr, 0x10000); + path = qemu_find_file(QEMU_FILE_TYPE_BIOS, BINARY_DEVICE_TREE_FILE); + if (path) { + fdt_size = load_image_targphys(path, addr, 0x10000); + qemu_free(path); + } } if (kernel_cmdline) { diff --git a/pc-bios/petalogix-s3adsp1800.dtb b/pc-bios/petalogix-s3adsp1800.dtb new file mode 100644 index 0000000000000000000000000000000000000000..93c5973fd81244268aace6e5e6006ad6fb4d6199 GIT binary patch literal 8259 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