On Tue, Apr 21, 2015 at 03:47:13PM +0100, Peter Maydell wrote: [...]
> > @@ -340,9 +357,31 @@ static void fdt_add_gic_node(VirtBoardInfo *vbi) > > 2, vbi->memmap[VIRT_GIC_DIST].size, > > 2, vbi->memmap[VIRT_GIC_CPU].base, > > 2, vbi->memmap[VIRT_GIC_CPU].size); > > + qemu_fdt_setprop_cell(vbi->fdt, "/intc", "#address-cells", 0x2); > > + qemu_fdt_setprop_cell(vbi->fdt, "/intc", "#size-cells", 0x2); > > + qemu_fdt_setprop(vbi->fdt, "/intc", "ranges", NULL, 0); > > > > Why do we need an empty ranges attribute? > Without it, Linux fails to make things work. I suspect this is related to specifically setting the #address-cells and #size-cells. I forgot by now, but I think when I originally wrote this patch I traced through the Linux code and found out that it was required somewhere. I also think the AMD GICv2m FDT has the empty ranges property. -Christoffer