Revision 4b0c7aa3 hw/petalogix_s3adsp1800_mmu.c
b/hw/petalogix_s3adsp1800_mmu.c | ||
---|---|---|
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 | 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) { |
Also available in: Unified diff