diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2008-02-28 13:21:49 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2008-02-28 13:21:49 +0000 |
commit | 974373490d7598b177da9b449ce20bec559867fc (patch) | |
tree | bbf8110ebbd06043e59176d5aa1fbb97d0223b05 /xen/include/asm-x86/amd-iommu.h | |
parent | 912ede3b1ae1ef0ad3010424f046f951972d7605 (diff) | |
download | xen-974373490d7598b177da9b449ce20bec559867fc.tar.gz xen-974373490d7598b177da9b449ce20bec559867fc.tar.bz2 xen-974373490d7598b177da9b449ce20bec559867fc.zip |
Add ACPI tables support for AMD IOMMU
Configuration information for AMD IOMMU control fields are descirbed
by I/O virtualization Reporting Structure (IVRS) table, this patch set
parses IVRS table and updates iommu control flags according to the result.
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 | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/xen/include/asm-x86/amd-iommu.h b/xen/include/asm-x86/amd-iommu.h index e91158b6a7..6c373977a3 100644 --- a/xen/include/asm-x86/amd-iommu.h +++ b/xen/include/asm-x86/amd-iommu.h @@ -43,15 +43,26 @@ struct amd_iommu { struct list_head list; spinlock_t lock; /* protect iommu */ - int iotlb_support; - int ht_tunnel_support; - int not_present_cached; + u16 bdf; + u8 cap_offset; u8 revision; + u8 unit_id; + u8 msi_number; u8 root_bus; u8 first_devfn; u8 last_devfn; + u8 pte_not_present_cached; + u8 ht_tunnel_support; + u8 iotlb_support; + + u8 isochronous; + u8 coherent; + u8 res_pass_pw; + u8 pass_pw; + u8 ht_tunnel_enable; + int last_downstream_bus; int downstream_bus_present[PCI_MAX_BUS_COUNT]; @@ -61,10 +72,23 @@ struct amd_iommu { struct table_struct dev_table; struct table_struct cmd_buffer; u32 cmd_buffer_tail; + struct table_struct event_log; + u32 event_log_head; - int exclusion_enabled; + int exclusion_enable; + int exclusion_allow_all; unsigned long exclusion_base; unsigned long exclusion_limit; }; +struct ivrs_mappings { + u16 dte_requestor_id; + u8 dte_sys_mgt_enable; + u8 dte_allow_exclusion; + u8 unity_map_enable; + u8 write_permission; + u8 read_permission; + unsigned long addr_range_start; + unsigned long addr_range_length; +}; #endif /* _ASM_X86_64_AMD_IOMMU_H */ |