[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v11 08/28] intel_iommu: set IR bit for ECAP register
From: |
Peter Xu |
Subject: |
[Qemu-devel] [PATCH v11 08/28] intel_iommu: set IR bit for ECAP register |
Date: |
Tue, 5 Jul 2016 16:19:09 +0800 |
Enable IR in IOMMU Extended Capability register.
Signed-off-by: Peter Xu <address@hidden>
---
hw/i386/intel_iommu.c | 6 ++++++
hw/i386/intel_iommu_internal.h | 2 ++
2 files changed, 8 insertions(+)
diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
index 8ea408d..3d99544 100644
--- a/hw/i386/intel_iommu.c
+++ b/hw/i386/intel_iommu.c
@@ -1958,6 +1958,8 @@ static AddressSpace *vtd_find_add_as(X86IOMMUState
*x86_iommu, PCIBus *bus,
*/
static void vtd_init(IntelIOMMUState *s)
{
+ X86IOMMUState *x86_iommu = X86_IOMMU_DEVICE(s);
+
memset(s->csr, 0, DMAR_REG_SIZE);
memset(s->wmask, 0, DMAR_REG_SIZE);
memset(s->w1cmask, 0, DMAR_REG_SIZE);
@@ -1979,6 +1981,10 @@ static void vtd_init(IntelIOMMUState *s)
VTD_CAP_SAGAW | VTD_CAP_MAMV | VTD_CAP_PSI | VTD_CAP_SLLPS;
s->ecap = VTD_ECAP_QI | VTD_ECAP_IRO;
+ if (x86_iommu->intr_supported) {
+ s->ecap |= VTD_ECAP_IR;
+ }
+
vtd_reset_context_cache(s);
vtd_reset_iotlb(s);
diff --git a/hw/i386/intel_iommu_internal.h b/hw/i386/intel_iommu_internal.h
index b648e69..5b98a11 100644
--- a/hw/i386/intel_iommu_internal.h
+++ b/hw/i386/intel_iommu_internal.h
@@ -176,6 +176,8 @@
/* (offset >> 4) << 8 */
#define VTD_ECAP_IRO (DMAR_IOTLB_REG_OFFSET << 4)
#define VTD_ECAP_QI (1ULL << 1)
+/* Interrupt Remapping support */
+#define VTD_ECAP_IR (1ULL << 3)
/* CAP_REG */
/* (offset >> 4) << 24 */
--
2.4.11
- Re: [Qemu-devel] [PATCH v11 04/28] x86-iommu: q35: generalize find_add_as(), (continued)
- Re: [Qemu-devel] [PATCH v11 04/28] x86-iommu: q35: generalize find_add_as(), Peter Xu, 2016/07/11
- Re: [Qemu-devel] [PATCH v11 04/28] x86-iommu: q35: generalize find_add_as(), David Kiarie, 2016/07/11
- Re: [Qemu-devel] [PATCH v11 04/28] x86-iommu: q35: generalize find_add_as(), Peter Xu, 2016/07/11
- Re: [Qemu-devel] [PATCH v11 04/28] x86-iommu: q35: generalize find_add_as(), Paolo Bonzini, 2016/07/11
- Re: [Qemu-devel] [PATCH v11 04/28] x86-iommu: q35: generalize find_add_as(), Peter Xu, 2016/07/11
- Re: [Qemu-devel] [PATCH v11 04/28] x86-iommu: q35: generalize find_add_as(), David Kiarie, 2016/07/11
- Re: [Qemu-devel] [PATCH v11 04/28] x86-iommu: q35: generalize find_add_as(), Peter Xu, 2016/07/11
[Qemu-devel] [PATCH v11 05/28] x86-iommu: introduce "intremap" property, Peter Xu, 2016/07/05
[Qemu-devel] [PATCH v11 06/28] acpi: enable INTR for DMAR report structure, Peter Xu, 2016/07/05
[Qemu-devel] [PATCH v11 07/28] intel_iommu: allow queued invalidation for IR, Peter Xu, 2016/07/05
[Qemu-devel] [PATCH v11 08/28] intel_iommu: set IR bit for ECAP register,
Peter Xu <=
[Qemu-devel] [PATCH v11 09/28] acpi: add DMAR scope definition for root IOAPIC, Peter Xu, 2016/07/05
[Qemu-devel] [PATCH v11 10/28] intel_iommu: define interrupt remap table addr register, Peter Xu, 2016/07/05
[Qemu-devel] [PATCH v11 11/28] intel_iommu: handle interrupt remap enable, Peter Xu, 2016/07/05
[Qemu-devel] [PATCH v11 12/28] intel_iommu: define several structs for IOMMU IR, Peter Xu, 2016/07/05
[Qemu-devel] [PATCH v11 13/28] intel_iommu: add IR translation faults defines, Peter Xu, 2016/07/05
[Qemu-devel] [PATCH v11 14/28] intel_iommu: Add support for PCI MSI remap, Peter Xu, 2016/07/05
[Qemu-devel] [PATCH v11 15/28] q35: ioapic: add support for emulated IOAPIC IR, Peter Xu, 2016/07/05
[Qemu-devel] [PATCH v11 16/28] ioapic: introduce ioapic_entry_parse() helper, Peter Xu, 2016/07/05