aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86/amd-iommu.h
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-09-16 09:21:56 +0100
committerKeir Fraser <keir.fraser@citrix.com>2009-09-16 09:21:56 +0100
commita3713b97e8e1eb362a6cb52166170ba4d40717af (patch)
tree6595dbc972b78117dd56faae445a3cda41af4ef0 /xen/include/asm-x86/amd-iommu.h
parent74ebd6f95915e07912b36f07e37c84d095ec57c4 (diff)
downloadxen-a3713b97e8e1eb362a6cb52166170ba4d40717af.tar.gz
xen-a3713b97e8e1eb362a6cb52166170ba4d40717af.tar.bz2
xen-a3713b97e8e1eb362a6cb52166170ba4d40717af.zip
AMD IOMMU: Rework of interrupt remapping
1) Parsing IVRS special device entry in order to handle ioapic remapping correctly. 2) Allocating per-device interrupt remapping tables instead of using a global interrupt remapping table. 3) Some system devices like io-apic for north-bridge cannot be discovered during pci device enumeration procedure. To remap interrupt of those devices, device table update is split into 2 steps, so that interrupt tables can be bound to device table entry earlier than I/O page tables. Signed-off-by: Wei Wang <wei.wang2@amd.com>
Diffstat (limited to 'xen/include/asm-x86/amd-iommu.h')
-rw-r--r--xen/include/asm-x86/amd-iommu.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/xen/include/asm-x86/amd-iommu.h b/xen/include/asm-x86/amd-iommu.h
index c2811f9ab7..d679cc9bb0 100644
--- a/xen/include/asm-x86/amd-iommu.h
+++ b/xen/include/asm-x86/amd-iommu.h
@@ -92,5 +92,16 @@ struct ivrs_mappings {
unsigned long addr_range_start;
unsigned long addr_range_length;
struct amd_iommu *iommu;
+
+ /* per device interrupt remapping table */
+ void *intremap_table;
+ spinlock_t intremap_lock;
+
+ /* interrupt remapping settings */
+ u8 dte_lint1_pass;
+ u8 dte_lint0_pass;
+ u8 dte_nmi_pass;
+ u8 dte_ext_int_pass;
+ u8 dte_init_pass;
};
#endif /* _ASM_X86_64_AMD_IOMMU_H */