Revision 71193433
b/device_tree.c | ||
---|---|---|
304 | 304 |
g_free(dupname); |
305 | 305 |
return retval; |
306 | 306 |
} |
307 |
|
|
308 |
void qemu_devtree_dumpdtb(void *fdt, int size) |
|
309 |
{ |
|
310 |
QemuOpts *machine_opts; |
|
311 |
|
|
312 |
machine_opts = qemu_opts_find(qemu_find_opts("machine"), 0); |
|
313 |
if (machine_opts) { |
|
314 |
const char *dumpdtb = qemu_opt_get(machine_opts, "dumpdtb"); |
|
315 |
if (dumpdtb) { |
|
316 |
/* Dump the dtb to a file and quit */ |
|
317 |
FILE *f = fopen(dumpdtb, "wb"); |
|
318 |
size_t len; |
|
319 |
len = fwrite(fdt, size, 1, f); |
|
320 |
fclose(f); |
|
321 |
if (len != size) { |
|
322 |
exit(1); |
|
323 |
} |
|
324 |
exit(0); |
|
325 |
} |
|
326 |
} |
|
327 |
|
|
328 |
} |
b/device_tree.h | ||
---|---|---|
49 | 49 |
sizeof(qdt_tmp)); \ |
50 | 50 |
} while (0) |
51 | 51 |
|
52 |
void qemu_devtree_dumpdtb(void *fdt, int size); |
|
53 |
|
|
52 | 54 |
#endif /* __DEVICE_TREE_H__ */ |
b/hw/ppc/e500.c | ||
---|---|---|
139 | 139 |
0x0, 0x10000, |
140 | 140 |
}; |
141 | 141 |
QemuOpts *machine_opts; |
142 |
const char *dumpdtb = NULL; |
|
143 | 142 |
const char *dtb_file = NULL; |
144 | 143 |
|
145 | 144 |
machine_opts = qemu_opts_find(qemu_find_opts("machine"), 0); |
146 | 145 |
if (machine_opts) { |
147 |
dumpdtb = qemu_opt_get(machine_opts, "dumpdtb"); |
|
148 | 146 |
dtb_file = qemu_opt_get(machine_opts, "dtb"); |
149 | 147 |
toplevel_compat = qemu_opt_get(machine_opts, "dt_compatible"); |
150 | 148 |
} |
... | ... | |
334 | 332 |
} |
335 | 333 |
|
336 | 334 |
done: |
337 |
if (dumpdtb) { |
|
338 |
/* Dump the dtb to a file and quit */ |
|
339 |
FILE *f = fopen(dumpdtb, "wb"); |
|
340 |
size_t len; |
|
341 |
len = fwrite(fdt, fdt_size, 1, f); |
|
342 |
fclose(f); |
|
343 |
if (len != fdt_size) { |
|
344 |
exit(1); |
|
345 |
} |
|
346 |
exit(0); |
|
347 |
} |
|
348 |
|
|
335 |
qemu_devtree_dumpdtb(fdt, fdt_size); |
|
349 | 336 |
ret = rom_add_blob_fixed(BINARY_DEVICE_TREE_FILE, fdt, fdt_size, addr); |
350 | 337 |
if (ret < 0) { |
351 | 338 |
goto out; |
Also available in: Unified diff