On 05/31/2012 05:19 PM, Alexander Graf wrote: > > On 01.06.2012, at 00:15, Scott Wood wrote: > >> On 05/30/2012 06:00 AM, Alexander Graf wrote: >>> We have a nice 64bit helper to ease the device tree generation and >>> make the code more readable when creating 64bit 2-cell parameters. >>> Use it when generating the device tree. >>> >>> Signed-off-by: Alexander Graf <ag...@suse.de> >>> --- >>> hw/ppce500_mpc8544ds.c | 10 ++++------ >>> 1 files changed, 4 insertions(+), 6 deletions(-) >>> >>> diff --git a/hw/ppce500_mpc8544ds.c b/hw/ppce500_mpc8544ds.c >>> index 2069891..32fbdd3 100644 >>> --- a/hw/ppce500_mpc8544ds.c >>> +++ b/hw/ppce500_mpc8544ds.c >>> @@ -91,7 +91,6 @@ static int mpc8544_load_device_tree(CPUPPCState *env, >>> const char *kernel_cmdline) >>> { >>> int ret = -1; >>> - uint32_t mem_reg_property[] = {0, cpu_to_be32(ramsize)}; >>> int fdt_size; >>> void *fdt; >>> uint8_t hypercall[16]; >>> @@ -128,8 +127,7 @@ static int mpc8544_load_device_tree(CPUPPCState *env, >>> >>> qemu_devtree_add_subnode(fdt, "/memory"); >>> qemu_devtree_setprop_string(fdt, "/memory", "device_type", "memory"); >>> - qemu_devtree_setprop(fdt, "/memory", "reg", mem_reg_property, >>> - sizeof(mem_reg_property)); >>> + qemu_devtree_setprop_cell64(fdt, "/memory", "reg", ramsize); >> >> The reg property is supposed to contain an address and a size, not just >> size. You're getting away with this because address happens to be zero >> and you happen to be writing a 64-bit size into a device tree that >> expects a 32-bit address followed by a 32-bit size (which should be >> changed to expect 64-bit of both). > > Ouch. How do I change it to mean 64-bit on both?
Change #address-cells and #size-cells to 2, and update all reg and ranges to match. -Scott