diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2009-09-16 09:21:56 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2009-09-16 09:21:56 +0100 |
commit | a3713b97e8e1eb362a6cb52166170ba4d40717af (patch) | |
tree | 6595dbc972b78117dd56faae445a3cda41af4ef0 /xen/include/asm-x86/amd-iommu.h | |
parent | 74ebd6f95915e07912b36f07e37c84d095ec57c4 (diff) | |
download | xen-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.h | 11 |
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 */ |