Message ID | 1338375646-15064-16-git-send-email-agraf@suse.de |
---|---|
State | New |
Headers | show |
On 05/30/2012 06:00 AM, Alexander Graf wrote: > @@ -179,6 +182,20 @@ static int mpc8544_load_device_tree(CPUPPCState *env, > } > } > > + /* XXX These should go into their respective devices' code */ > + sprintf(soc, "/soc8544@%x", MPC8544_CCSRBAR_BASE); This should just be "/soc@%x" (something like "ccsr@%x" or "immr@%x" would be better, but hasn't really caught on yet). "soc8544"-type names have been discouraged for a while now. > + qemu_devtree_setprop_string(fdt, soc, "compatible", "simple-bus"); It should also have a compatible of "fsl,mpc8544-immr". > + qemu_devtree_setprop_cell2(fdt, soc, "reg", MPC8544_CCSRBAR_BASE, > + MPC8544_CCSRBAR_REGSIZE); We don't need reg here anymore. I realize this was probably meant to produce the same output as the current device tree, but if we're introducing new code to generate this stuff we should follow current best practices. -Scott
On 31.05.2012, at 23:58, Scott Wood wrote: > On 05/30/2012 06:00 AM, Alexander Graf wrote: >> @@ -179,6 +182,20 @@ static int mpc8544_load_device_tree(CPUPPCState *env, >> } >> } >> >> + /* XXX These should go into their respective devices' code */ >> + sprintf(soc, "/soc8544@%x", MPC8544_CCSRBAR_BASE); > > This should just be "/soc@%x" (something like "ccsr@%x" or "immr@%x" > would be better, but hasn't really caught on yet). "soc8544"-type names > have been discouraged for a while now. > >> + qemu_devtree_setprop_string(fdt, soc, "compatible", "simple-bus"); > > It should also have a compatible of "fsl,mpc8544-immr". > >> + qemu_devtree_setprop_cell2(fdt, soc, "reg", MPC8544_CCSRBAR_BASE, >> + MPC8544_CCSRBAR_REGSIZE); > > We don't need reg here anymore. > > I realize this was probably meant to produce the same output as the > current device tree, but if we're introducing new code to generate this > stuff we should follow current best practices. Good point. I guess we should clean that up as a patch at the end of the series though. First convert the state 1:1 over, then improve it. Alex
diff --git a/hw/ppce500_mpc8544ds.c b/hw/ppce500_mpc8544ds.c index 63515bb..5ff2d24 100644 --- a/hw/ppce500_mpc8544ds.c +++ b/hw/ppce500_mpc8544ds.c @@ -43,6 +43,8 @@ #define RAM_SIZES_ALIGN (64UL << 20) #define MPC8544_CCSRBAR_BASE 0xE0000000 +#define MPC8544_CCSRBAR_REGSIZE 0x00001000 +#define MPC8544_CCSRBAR_SIZE 0x00100000 #define MPC8544_MPIC_REGS_BASE (MPC8544_CCSRBAR_BASE + 0x40000) #define MPC8544_SERIAL0_REGS_BASE (MPC8544_CCSRBAR_BASE + 0x4500) #define MPC8544_SERIAL1_REGS_BASE (MPC8544_CCSRBAR_BASE + 0x4600) @@ -78,6 +80,7 @@ static int mpc8544_load_device_tree(CPUPPCState *env, int i; char compatible[] = "MPC8544DS\0MPC85xxDS"; char model[] = "MPC8544DS"; + char soc[128]; filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, BINARY_DEVICE_TREE_FILE); if (!filename) { @@ -179,6 +182,20 @@ static int mpc8544_load_device_tree(CPUPPCState *env, } } + /* XXX These should go into their respective devices' code */ + sprintf(soc, "/soc8544@%x", MPC8544_CCSRBAR_BASE); + qemu_devtree_add_subnode(fdt, soc); + qemu_devtree_setprop_string(fdt, soc, "device_type", "soc"); + qemu_devtree_setprop_string(fdt, soc, "compatible", "simple-bus"); + qemu_devtree_setprop_cell(fdt, soc, "#address-cells", 1); + qemu_devtree_setprop_cell(fdt, soc, "#size-cells", 1); + qemu_devtree_setprop_cell3(fdt, soc, "ranges", 0x0, MPC8544_CCSRBAR_BASE, + MPC8544_CCSRBAR_SIZE); + qemu_devtree_setprop_cell2(fdt, soc, "reg", MPC8544_CCSRBAR_BASE, + MPC8544_CCSRBAR_REGSIZE); + /* XXX should contain a reasonable value */ + qemu_devtree_setprop_cell(fdt, soc, "bus-frequency", 0); + ret = rom_add_blob_fixed(BINARY_DEVICE_TREE_FILE, fdt, fdt_size, addr); if (ret < 0) { goto out; diff --git a/pc-bios/mpc8544ds.dts b/pc-bios/mpc8544ds.dts index 1eac8ef..01b53ba 100644 --- a/pc-bios/mpc8544ds.dts +++ b/pc-bios/mpc8544ds.dts @@ -18,15 +18,6 @@ }; soc8544@e0000000 { - #address-cells = <1>; - #size-cells = <1>; - device_type = "soc"; - compatible = "simple-bus"; - - ranges = <0x0 0xe0000000 0x100000>; - reg = <0xe0000000 0x1000>; // CCSRBAR 1M - bus-frequency = <0>; // Filled out by uboot. - serial0: serial@4500 { cell-index = <0>; device_type = "serial";
Signed-off-by: Alexander Graf <agraf@suse.de> --- hw/ppce500_mpc8544ds.c | 17 +++++++++++++++++ pc-bios/mpc8544ds.dts | 9 --------- 2 files changed, 17 insertions(+), 9 deletions(-)