mirror of
https://github.com/qemu/qemu.git
synced 2026-02-04 02:24:51 +00:00
hw/arm/virt: Set msi-gpa property
Set the MSI doorbell GPA property for accelerated SMMUv3 devices for use by KVM MSI setup. Also, since any meaningful use of vfio-pci devices with an accelerated SMMUv3 requires both KVM and a kernel irqchip, ensure those are specified when accel=on is selected. Reviewed-by: Nicolin Chen <nicolinc@nvidia.com> Tested-by: Eric Auger <eric.auger@redhat.com> Tested-by: Zhangfei Gao <zhangfei.gao@linaro.org> Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com> Signed-off-by: Shameer Kolothum <skolothumtho@nvidia.com> Message-id: 20260126104342.253965-19-skolothumtho@nvidia.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
committed by
Peter Maydell
parent
3558c85392
commit
5ec2700dcb
@@ -3061,6 +3061,26 @@ static void virt_machine_device_pre_plug_cb(HotplugHandler *hotplug_dev,
|
||||
object_property_set_link(OBJECT(dev), "secure-memory",
|
||||
OBJECT(vms->secure_sysmem), NULL);
|
||||
}
|
||||
if (object_property_find(OBJECT(dev), "accel") &&
|
||||
object_property_get_bool(OBJECT(dev), "accel", &error_abort)) {
|
||||
hwaddr db_start = 0;
|
||||
|
||||
if (!kvm_enabled() || !kvm_irqchip_in_kernel()) {
|
||||
error_setg(errp, "SMMUv3 accel=on requires KVM with "
|
||||
"kernel-irqchip=on support");
|
||||
return;
|
||||
}
|
||||
|
||||
if (vms->msi_controller == VIRT_MSI_CTRL_ITS) {
|
||||
/* GITS_TRANSLATER page + offset */
|
||||
db_start = base_memmap[VIRT_GIC_ITS].base + 0x10000 + 0x40;
|
||||
} else if (vms->msi_controller == VIRT_MSI_CTRL_GICV2M) {
|
||||
/* MSI_SETSPI_NS page + offset */
|
||||
db_start = base_memmap[VIRT_GIC_V2M].base + 0x40;
|
||||
}
|
||||
object_property_set_uint(OBJECT(dev), "msi-gpa", db_start,
|
||||
&error_abort);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user