PPC: e500: allow users to set the /compatible property via -machine
Device trees usually have a node /compatible, which indicate which machine type we're looking at. For quick prototyping, it can be very useful to change the contents of that node via the command line. Thus, introduce a new option to -machine called dt_compatible, which when set changes the /compatible contents to its value. Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
45e9dfb2fd
commit
caedc737d2
@ -119,7 +119,8 @@ static int mpc8544_load_device_tree(CPUPPCState *env,
|
||||
uint32_t clock_freq = 400000000;
|
||||
uint32_t tb_freq = 400000000;
|
||||
int i;
|
||||
char compatible[] = "MPC8544DS\0MPC85xxDS";
|
||||
const char *compatible = "MPC8544DS\0MPC85xxDS";
|
||||
int compatible_len = sizeof("MPC8544DS\0MPC85xxDS");
|
||||
char compatible_sb[] = "fsl,mpc8544-immr\0simple-bus";
|
||||
char model[] = "MPC8544DS";
|
||||
char soc[128];
|
||||
@ -144,8 +145,14 @@ static int mpc8544_load_device_tree(CPUPPCState *env,
|
||||
|
||||
machine_opts = qemu_opts_find(qemu_find_opts("machine"), 0);
|
||||
if (machine_opts) {
|
||||
const char *tmp;
|
||||
dumpdtb = qemu_opt_get(machine_opts, "dumpdtb");
|
||||
dtb_file = qemu_opt_get(machine_opts, "dtb");
|
||||
tmp = qemu_opt_get(machine_opts, "dt_compatible");
|
||||
if (tmp) {
|
||||
compatible = tmp;
|
||||
compatible_len = strlen(compatible) + 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (dtb_file) {
|
||||
@ -169,8 +176,7 @@ static int mpc8544_load_device_tree(CPUPPCState *env,
|
||||
|
||||
/* Manipulate device tree in memory. */
|
||||
qemu_devtree_setprop_string(fdt, "/", "model", model);
|
||||
qemu_devtree_setprop(fdt, "/", "compatible", compatible,
|
||||
sizeof(compatible));
|
||||
qemu_devtree_setprop(fdt, "/", "compatible", compatible, compatible_len);
|
||||
qemu_devtree_setprop_cell(fdt, "/", "#address-cells", 2);
|
||||
qemu_devtree_setprop_cell(fdt, "/", "#size-cells", 2);
|
||||
|
||||
|
@ -591,6 +591,10 @@ static QemuOptsList qemu_machine_opts = {
|
||||
.name = "phandle_start",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "The first phandle ID we may generate dynamically",
|
||||
}, {
|
||||
.name = "dt_compatible",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "Overrides the \"compatible\" property of the dt root node",
|
||||
},
|
||||
{ /* End of list */ }
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user