#include "config.h"
#include "qemu-common.h"
+#include "qemu/error-report.h"
#include "sysemu/device_tree.h"
#include "sysemu/sysemu.h"
#include "hw/loader.h"
}
ret = fdt_open_into(fdt, fdt, *sizep);
if (ret) {
- fprintf(stderr, "Unable to copy device tree in memory\n");
+ error_report("Unable to copy device tree in memory");
exit(1);
}
return fdt;
fail:
- fprintf(stderr, "%s Couldn't create dt: %s\n", __func__, fdt_strerror(ret));
+ error_report("%s Couldn't create dt: %s", __func__, fdt_strerror(ret));
exit(1);
}
*sizep = 0;
dt_size = get_image_size(filename_path);
if (dt_size < 0) {
- printf("Unable to get size of device tree file '%s'\n",
- filename_path);
+ error_report("Unable to get size of device tree file '%s'",
+ filename_path);
goto fail;
}
dt_file_load_size = load_image(filename_path, fdt);
if (dt_file_load_size < 0) {
- printf("Unable to open device tree file '%s'\n",
- filename_path);
+ error_report("Unable to open device tree file '%s'",
+ filename_path);
goto fail;
}
ret = fdt_open_into(fdt, fdt, dt_size);
if (ret) {
- printf("Unable to copy device tree in memory\n");
+ error_report("Unable to copy device tree in memory");
goto fail;
}
/* Check sanity of device tree */
if (fdt_check_header(fdt)) {
- printf ("Device tree file loaded into memory is invalid: %s\n",
- filename_path);
+ error_report("Device tree file loaded into memory is invalid: %s",
+ filename_path);
goto fail;
}
*sizep = dt_size;
offset = fdt_path_offset(fdt, node_path);
if (offset < 0) {
- fprintf(stderr, "%s Couldn't find node %s: %s\n", __func__, node_path,
- fdt_strerror(offset));
+ error_report("%s Couldn't find node %s: %s", __func__, node_path,
+ fdt_strerror(offset));
exit(1);
}
r = fdt_setprop(fdt, findnode_nofail(fdt, node_path), property, val, size);
if (r < 0) {
- fprintf(stderr, "%s: Couldn't set %s/%s: %s\n", __func__, node_path,
- property, fdt_strerror(r));
+ error_report("%s: Couldn't set %s/%s: %s", __func__, node_path,
+ property, fdt_strerror(r));
exit(1);
}
r = fdt_setprop_cell(fdt, findnode_nofail(fdt, node_path), property, val);
if (r < 0) {
- fprintf(stderr, "%s: Couldn't set %s/%s = %#08x: %s\n", __func__,
- node_path, property, val, fdt_strerror(r));
+ error_report("%s: Couldn't set %s/%s = %#08x: %s", __func__,
+ node_path, property, val, fdt_strerror(r));
exit(1);
}
r = fdt_setprop_string(fdt, findnode_nofail(fdt, node_path), property, string);
if (r < 0) {
- fprintf(stderr, "%s: Couldn't set %s/%s = %s: %s\n", __func__,
- node_path, property, string, fdt_strerror(r));
+ error_report("%s: Couldn't set %s/%s = %s: %s", __func__,
+ node_path, property, string, fdt_strerror(r));
exit(1);
}
}
r = fdt_getprop(fdt, findnode_nofail(fdt, node_path), property, lenp);
if (!r) {
- fprintf(stderr, "%s: Couldn't get %s/%s: %s\n", __func__,
- node_path, property, fdt_strerror(*lenp));
+ error_report("%s: Couldn't get %s/%s: %s", __func__,
+ node_path, property, fdt_strerror(*lenp));
exit(1);
}
return r;
int len;
const uint32_t *p = qemu_fdt_getprop(fdt, node_path, property, &len);
if (len != 4) {
- fprintf(stderr, "%s: %s/%s not 4 bytes long (not a cell?)\n",
- __func__, node_path, property);
+ error_report("%s: %s/%s not 4 bytes long (not a cell?)",
+ __func__, node_path, property);
exit(1);
}
return be32_to_cpu(*p);
r = fdt_get_phandle(fdt, findnode_nofail(fdt, path));
if (r == 0) {
- fprintf(stderr, "%s: Couldn't get phandle for %s: %s\n", __func__,
- path, fdt_strerror(r));
+ error_report("%s: Couldn't get phandle for %s: %s", __func__,
+ path, fdt_strerror(r));
exit(1);
}
r = fdt_nop_node(fdt, findnode_nofail(fdt, node_path));
if (r < 0) {
- fprintf(stderr, "%s: Couldn't nop node %s: %s\n", __func__, node_path,
- fdt_strerror(r));
+ error_report("%s: Couldn't nop node %s: %s", __func__, node_path,
+ fdt_strerror(r));
exit(1);
}
retval = fdt_add_subnode(fdt, parent, basename);
if (retval < 0) {
- fprintf(stderr, "FDT: Failed to create subnode %s: %s\n", name,
- fdt_strerror(retval));
+ error_report("FDT: Failed to create subnode %s: %s", name,
+ fdt_strerror(retval));
exit(1);
}