On Thu, May 28, 2015 at 02:59:09PM +0300, Gal Hammer wrote: > On 28/05/2015 13:25, Paolo Bonzini wrote: > > > > > >On 27/04/2015 13:19, Gal Hammer wrote: > >>+static void vmgenid_init(Object *obj) > >>+{ > >>+ SysBusDevice *sbd = SYS_BUS_DEVICE(obj); > >>+ VmGenIdState *s = VMGENID(obj); > >>+ > >>+ memory_region_init_io(&s->iomem, obj, &vmgenid_ram_ops, s, "vgid", 16); > > > >This is a small problem. The spec says the memory of the VMGENID should > >not be uncacheable, but MMIO _should_ be uncacheable. > > > >This is running on a VM so we maybe not care, but it's worth pointing it > >out. > > And the way I can fix it would be...? Is there another memory region I can > use? > > Thanks, > > Gal.
I think we hammered out an interesting alternative off-list: get hold of some AddressRegionNVS memory and copy data from MMIO or port io over there when you get an interrupt. > >Paolo > > > >>+ sysbus_init_mmio(sbd, &s->iomem); > >>+ > >>+ object_property_add_str(obj, PROPERTY_UUID, NULL, vmgenid_set_uuid, > >>NULL); > >>+} > >>+