/freebsd/sys/x86/iommu/ |
H A D | intel_dmar.h | 36 struct dmar_unit; 66 struct dmar_unit *dmar; /* (c) */ 89 __containerof((dmar), struct dmar_unit, iommu) 107 struct dmar_unit { struct 169 struct dmar_unit *dmar_find(device_t dev, bool verbose); argument 170 struct dmar_unit *dmar_find_hpet(device_t dev, uint16_t *rid); 171 struct dmar_unit *dmar_find_ioapic(u_int apic_id, uint16_t *rid); 174 bool dmar_pglvl_supported(struct dmar_unit *unit, int pglvl); 176 int dmar_maxaddr2mgaw(struct dmar_unit *unit, iommu_gaddr_t maxaddr, 180 int calc_am(struct dmar_unit *unit, iommu_gaddr_t base, iommu_gaddr_t size, [all …]
|
H A D | intel_qi.c | 62 dmar_enable_qi(struct dmar_unit *unit) in dmar_enable_qi() 75 dmar_disable_qi(struct dmar_unit *unit) in dmar_disable_qi() 90 struct dmar_unit *unit; in dmar_qi_advance_tail() 100 struct dmar_unit *unit; in dmar_qi_ensure() 138 dmar_qi_emit(struct dmar_unit *unit, uint64_t data1, uint64_t data2) in dmar_qi_emit() 172 struct dmar_unit *unit; in dmar_qi_emit_wait_descr() 188 struct dmar_unit *unit; in dmar_qi_invalidate_emit() 209 dmar_qi_invalidate_glob_impl(struct dmar_unit *unit, uint64_t data1) in dmar_qi_invalidate_glob_impl() 224 dmar_qi_invalidate_ctx_glob_locked(struct dmar_unit *unit) in dmar_qi_invalidate_ctx_glob_locked() 231 dmar_qi_invalidate_iotlb_glob_locked(struct dmar_unit *unit) in dmar_qi_invalidate_iotlb_glob_locked() [all …]
|
H A D | intel_utils.c | 111 dmar_pglvl_supported(struct dmar_unit *unit, int pglvl) in dmar_pglvl_supported() 153 dmar_maxaddr2mgaw(struct dmar_unit *unit, iommu_gaddr_t maxaddr, bool allow_less) in dmar_maxaddr2mgaw() 203 calc_am(struct dmar_unit *unit, iommu_gaddr_t base, iommu_gaddr_t size, in calc_am() 224 dmar_flush_transl_to_ram(struct dmar_unit *unit, void *dst, size_t sz) in dmar_flush_transl_to_ram() 237 dmar_flush_pte_to_ram(struct dmar_unit *unit, iommu_pte_t *dst) in dmar_flush_pte_to_ram() 244 dmar_flush_ctx_to_ram(struct dmar_unit *unit, dmar_ctx_entry_t *dst) in dmar_flush_ctx_to_ram() 251 dmar_flush_root_to_ram(struct dmar_unit *unit, dmar_root_entry_t *dst) in dmar_flush_root_to_ram() 262 dmar_load_root_entry_ptr(struct dmar_unit *unit) in dmar_load_root_entry_ptr() 288 dmar_inv_ctx_glob(struct dmar_unit *unit) in dmar_inv_ctx_glob() 315 dmar_inv_iotlb_glob(struct dmar_unit *unit) in dmar_inv_iotlb_glob() [all …]
|
H A D | intel_intrmap.c | 62 static struct dmar_unit *dmar_ir_find(device_t src, uint16_t *rid, 64 static void dmar_ir_program_irte(struct dmar_unit *unit, u_int idx, 66 static int dmar_ir_free_irte(struct dmar_unit *unit, u_int cookie); 71 struct dmar_unit *unit; in dmar_alloc_msi_intr() 100 struct dmar_unit *unit; in dmar_map_msi_intr() 145 struct dmar_unit *unit; in dmar_unmap_msi_intr() 157 struct dmar_unit *unit; in dmar_map_ioapic_intr() 219 struct dmar_unit *unit; in dmar_unmap_ioapic_intr() 232 static struct dmar_unit * 236 struct dmar_unit *unit; in dmar_ir_find() [all …]
|
H A D | intel_quirks.c | 64 typedef void (*dmar_quirk_cpu_fun)(struct dmar_unit *); 76 typedef void (*dmar_quirk_nb_fun)(struct dmar_unit *, device_t nb); 88 dmar_match_quirks(struct dmar_unit *dmar, in dmar_match_quirks() 150 nb_5400_no_low_high_prot_mem(struct dmar_unit *unit, device_t nb __unused) in nb_5400_no_low_high_prot_mem() 157 nb_no_ir(struct dmar_unit *unit, device_t nb __unused) in nb_no_ir() 164 nb_5500_no_ir_rev13(struct dmar_unit *unit, device_t nb) in nb_5500_no_ir_rev13() 207 cpu_e5_am9(struct dmar_unit *unit) in cpu_e5_am9() 225 struct dmar_unit *dmar; in dmar_quirks_pre_use() 238 dmar_quirks_post_ident(struct dmar_unit *dmar) in dmar_quirks_post_ident()
|
H A D | intel_fault.c | 80 dmar_fault_next(struct dmar_unit *unit, int faultp) in dmar_fault_next() 90 dmar_fault_intr_clear(struct dmar_unit *unit, uint32_t fsts) in dmar_fault_intr_clear() 124 struct dmar_unit *unit; in dmar_fault_intr() 190 struct dmar_unit *unit; in dmar_fault_task() 244 dmar_clear_faults(struct dmar_unit *unit) in dmar_clear_faults() 261 dmar_init_fault_log(struct dmar_unit *unit) in dmar_init_fault_log() 288 dmar_fini_fault_log(struct dmar_unit *unit) in dmar_fini_fault_log() 311 struct dmar_unit *unit; in dmar_enable_fault_intr() 324 struct dmar_unit *unit; in dmar_disable_fault_intr()
|
H A D | intel_ctx.c | 74 static void dmar_unref_domain_locked(struct dmar_unit *dmar, 78 static void dmar_free_ctx_locked(struct dmar_unit *dmar, struct dmar_ctx *ctx); 81 dmar_ensure_ctx_page(struct dmar_unit *dmar, int bus) in dmar_ensure_ctx_page() 115 struct dmar_unit *dmar; in dmar_map_ctx_entry() 154 struct dmar_unit *unit; in ctx_id_entry_init() 189 dmar_flush_for_ctx_entry(struct dmar_unit *dmar, bool force) in dmar_flush_for_ctx_entry() 363 dmar_domain_alloc(struct dmar_unit *dmar, bool id_mapped) in dmar_domain_alloc() 472 struct dmar_unit *dmar; in dmar_domain_destroy() 501 dmar_get_ctx_for_dev1(struct dmar_unit *dmar, device_t dev, uint16_t rid, in dmar_get_ctx_for_dev1() 641 dmar_get_ctx_for_dev(struct dmar_unit *dmar, device_t dev, uint16_t rid, in dmar_get_ctx_for_dev() [all …]
|
H A D | intel_drv.c | 265 dmar_release_resources(device_t dev, struct dmar_unit *unit) in dmar_release_resources() 297 struct dmar_unit *unit; in dmar_remap_intr() 330 dmar_print_caps(device_t dev, struct dmar_unit *unit, in dmar_print_caps() 362 struct dmar_unit *unit; in dmar_attach() 583 sizeof(struct dmar_unit), 702 dmar_match_by_path(struct dmar_unit *unit, int dev_domain, int dev_busno, in dmar_match_by_path() 738 static struct dmar_unit * 742 struct dmar_unit *unit; in dmar_find_by_scope() 756 struct dmar_unit * 759 struct dmar_unit *unit; in dmar_find() [all …]
|
H A D | intel_idpgtbl.c | 168 struct dmar_unit *unit; in dmar_get_idmap_pgtbl() 476 struct dmar_unit *unit; in dmar_map_buf() 683 struct dmar_unit *unit; in dmar_domain_alloc_pgtbl() 740 dmar_wait_iotlb_flush(struct dmar_unit *unit, uint64_t wt, int iro) in dmar_wait_iotlb_flush() 759 struct dmar_unit *unit; in dmar_flush_iotlb_sync()
|