[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 07/13] intel_iommu: handle interrupt remap enable
From: |
Peter Xu |
Subject: |
[Qemu-devel] [PATCH 07/13] intel_iommu: handle interrupt remap enable |
Date: |
Fri, 19 Feb 2016 11:30:12 +0800 |
Handle writting to IRE bit in global command register.
Signed-off-by: Peter Xu <address@hidden>
---
hw/i386/intel_iommu.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
index 62f0fa7..f1cb574 100644
--- a/hw/i386/intel_iommu.c
+++ b/hw/i386/intel_iommu.c
@@ -1179,6 +1179,22 @@ static void vtd_handle_gcmd_te(IntelIOMMUState *s, bool
en)
}
}
+/* Handle Interrupt Remap Enable/Disable */
+static void vtd_handle_gcmd_ire(IntelIOMMUState *s, bool en)
+{
+ VTD_DPRINTF(CSR, "Interrupt Remap Enable %s", (en ? "on" : "off"));
+
+ if (en) {
+ s->intr_enabled = true;
+ /* Ok - report back to driver */
+ vtd_set_clear_mask_long(s, DMAR_GSTS_REG, 0, VTD_GSTS_IRES);
+ } else {
+ s->intr_enabled = false;
+ /* Ok - report back to driver */
+ vtd_set_clear_mask_long(s, DMAR_GSTS_REG, VTD_GSTS_IRES, 0);
+ }
+}
+
/* Handle write to Global Command Register */
static void vtd_handle_gcmd_write(IntelIOMMUState *s)
{
@@ -1203,6 +1219,10 @@ static void vtd_handle_gcmd_write(IntelIOMMUState *s)
/* Set/update the interrupt remapping root-table pointer */
vtd_handle_gcmd_sirtp(s);
}
+ if (changed & VTD_GCMD_IRE) {
+ /* Interrupt remap enable/disable */
+ vtd_handle_gcmd_ire(s, val & VTD_GCMD_IRE);
+ }
}
/* Handle write to Context Command Register */
--
2.4.3
- Re: [Qemu-devel] [PATCH 02/13] acpi: enable INTR for DMAR report structure, (continued)
[Qemu-devel] [PATCH 06/13] intel_iommu: define interrupt remap table addr register, Peter Xu, 2016/02/18
[Qemu-devel] [PATCH 07/13] intel_iommu: handle interrupt remap enable,
Peter Xu <=
[Qemu-devel] [PATCH 08/13] intel_iommu: define several structs for IOMMU IR, Peter Xu, 2016/02/18
[Qemu-devel] [PATCH 09/13] intel_iommu: provide helper function vtd_get_iommu, Peter Xu, 2016/02/18
[Qemu-devel] [PATCH 10/13] ioapic-common: add iommu for IOAPICCommonState, Peter Xu, 2016/02/18
[Qemu-devel] [PATCH 11/13] intel_iommu: add IR translation faults defines, Peter Xu, 2016/02/18
[Qemu-devel] [PATCH 12/13] intel_iommu: ioapic: IR support for emulated IOAPIC, Peter Xu, 2016/02/18
[Qemu-devel] [PATCH 13/13] intel_iommu: Add support for PCI MSI remap, Peter Xu, 2016/02/18
Re: [Qemu-devel] [PATCH 00/13] IOMMU: Enable interrupt remapping for Intel IOMMU, Jan Kiszka, 2016/02/19