[RFC,v6,6/9] hw/arm/virt: Add tlbi-on-map property to the smmuv3 node

Message ID 1502461354-11327-7-git-send-email-eric.auger@redhat.com
State New
Headers show

Commit Message

Auger Eric Aug. 11, 2017, 2:22 p.m.
For VFIO integration we need to update physical IOMMU mappings
each time the guest updates the vIOMMU translation structures.
For that, we rely on a special smmuv3 option, "tlbi-on-map"
which forces TLB invalidations on map (this mode is similar to
the Intel VTD caching Mode). The smmuv3 driver then sends
SMMU_CMD_TLBI_NH_VA commands, upon which we will update the physical

Signed-off-by: Eric Auger <eric.auger@redhat.com>
 hw/arm/virt.c | 1 +
 1 file changed, 1 insertion(+)


diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index b758173..c2ac8c6 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -1034,6 +1034,7 @@  static void create_smmu(const VirtMachineState *vms, qemu_irq *pic)
     qemu_fdt_setprop_cell(vms->fdt, smmu, "clocks", vms->clock_phandle);
     qemu_fdt_setprop_string(vms->fdt, smmu, "clock-names", "apb_pclk");
     qemu_fdt_setprop(vms->fdt, smmu, "dma-coherent", NULL, 0);
+    qemu_fdt_setprop(vms->fdt, smmu, "tlbi-on-map", NULL, 0);
     qemu_fdt_setprop_cell(vms->fdt, smmu, "#iommu-cells", 1);