Commit 4b0c7aa3647d8d273395ff1e6176850e61f2d331

Authored by Edgar E. Iglesias
1 parent 40905a6a

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 <edgar.iglesias@gmail.com>
Makefile
... ... @@ -271,7 +271,7 @@ ifdef INSTALL_BLOBS
271 271 BLOBS=bios.bin vgabios.bin vgabios-cirrus.bin ppc_rom.bin \
272 272 video.x openbios-sparc32 openbios-sparc64 openbios-ppc \
273 273 pxe-ne2k_pci.bin pxe-rtl8139.bin pxe-pcnet.bin pxe-e1000.bin \
274   -bamboo.dtb
  274 +bamboo.dtb petalogix-s3adsp1800.dtb
275 275 else
276 276 BLOBS=
277 277 endif
... ...
hw/petalogix_s3adsp1800_mmu.c
... ... @@ -54,22 +54,20 @@ static int petalogix_load_device_tree(target_phys_addr_t addr,
54 54 {
55 55 #ifdef HAVE_FDT
56 56 void *fdt;
57   - char *path = NULL;
58   - int pathlen;
59 57 int r;
60 58 #endif
  59 + char *path;
61 60 int fdt_size;
62 61  
63 62 #ifdef HAVE_FDT
64 63 /* Try the local "mb.dtb" override. */
65 64 fdt = load_device_tree("mb.dtb", &fdt_size);
66 65 if (!fdt) {
67   - pathlen = snprintf(NULL, 0, "%s/%s",
68   - bios_dir, BINARY_DEVICE_TREE_FILE) + 1;
69   - path = qemu_malloc(pathlen);
70   - snprintf(path, pathlen, "%s/%s", bios_dir, BINARY_DEVICE_TREE_FILE);
71   - fdt = load_device_tree(BINARY_DEVICE_TREE_FILE, &fdt_size);
72   - free(path);
  66 + path = qemu_find_file(QEMU_FILE_TYPE_BIOS, BINARY_DEVICE_TREE_FILE);
  67 + if (path) {
  68 + fdt = load_device_tree(path, &fdt_size);
  69 + qemu_free(path);
  70 + }
73 71 if (!fdt)
74 72 return 0;
75 73 }
... ... @@ -83,7 +81,11 @@ static int petalogix_load_device_tree(target_phys_addr_t addr,
83 81 to the kernel. */
84 82 fdt_size = load_image_targphys("mb.dtb", addr, 0x10000);
85 83 if (fdt_size < 0) {
86   - fdt_size = load_image_targphys(BINARY_DEVICE_TREE_FILE, addr, 0x10000);
  84 + path = qemu_find_file(QEMU_FILE_TYPE_BIOS, BINARY_DEVICE_TREE_FILE);
  85 + if (path) {
  86 + fdt_size = load_image_targphys(path, addr, 0x10000);
  87 + qemu_free(path);
  88 + }
87 89 }
88 90  
89 91 if (kernel_cmdline) {
... ...
pc-bios/petalogix-s3adsp1800.dtb 0 → 100644
No preview for this file type