/illumos-gate/usr/src/uts/i86pc/io/amd_iommu/ |
H A D | amd_iommu_impl.c | 40 static int amd_iommu_fini(amd_iommu_t *iommu, int type); 41 static void amd_iommu_teardown_interrupts(amd_iommu_t *iommu); 42 static void amd_iommu_stop(amd_iommu_t *iommu); 69 static int unmap_current_window(amd_iommu_t *iommu, dev_info_t *rdip, 115 amd_iommu_register(amd_iommu_t *iommu) in amd_iommu_register() argument 117 dev_info_t *dip = iommu->aiomt_dip; in amd_iommu_register() 128 iommulib_ops->ilops_data = (void *)iommu; in amd_iommu_register() 129 iommu->aiomt_iommulib_ops = iommulib_ops; in amd_iommu_register() 134 "failed idx=%d", f, driver, instance, iommu->aiomt_idx); in amd_iommu_register() 139 iommu->aiomt_iommulib_handle = handle; in amd_iommu_register() [all …]
|
H A D | amd_iommu_cmd.c | 34 amd_iommu_wait_for_completion(amd_iommu_t *iommu) in amd_iommu_wait_for_completion() argument 36 ASSERT(MUTEX_HELD(&iommu->aiomt_cmdlock)); in amd_iommu_wait_for_completion() 38 iommu->aiomt_reg_status_va), AMD_IOMMU_COMWAIT_INT) != 1) { in amd_iommu_wait_for_completion() 39 AMD_IOMMU_REG_SET64(REGADDR64(iommu->aiomt_reg_ctrl_va), in amd_iommu_wait_for_completion() 46 create_compl_wait_cmd(amd_iommu_t *iommu, amd_iommu_cmdargs_t *cmdargsp, in create_compl_wait_cmd() argument 49 const char *driver = ddi_driver_name(iommu->aiomt_dip); in create_compl_wait_cmd() 50 int instance = ddi_get_instance(iommu->aiomt_dip); in create_compl_wait_cmd() 58 f, driver, instance, iommu->aiomt_idx); in create_compl_wait_cmd() 78 create_inval_devtab_entry_cmd(amd_iommu_t *iommu, amd_iommu_cmdargs_t *cmdargsp, in create_inval_devtab_entry_cmd() argument 81 const char *driver = ddi_driver_name(iommu->aiomt_dip); in create_inval_devtab_entry_cmd() [all …]
|
H A D | amd_iommu_log.c | 116 devtab_illegal_entry(amd_iommu_t *iommu, uint32_t *event) in devtab_illegal_entry() argument 125 const char *driver = ddi_driver_name(iommu->aiomt_dip); in devtab_illegal_entry() 126 int instance = ddi_get_instance(iommu->aiomt_dip); in devtab_illegal_entry() 155 f, driver, instance, iommu->aiomt_idx, in devtab_illegal_entry() 165 io_page_fault(amd_iommu_t *iommu, uint32_t *event) in io_page_fault() argument 177 const char *driver = ddi_driver_name(iommu->aiomt_dip); in io_page_fault() 178 int instance = ddi_get_instance(iommu->aiomt_dip); in io_page_fault() 209 f, driver, instance, iommu->aiomt_idx, in io_page_fault() 223 devtab_hw_error(amd_iommu_t *iommu, uint32_t *event) in devtab_hw_error() argument 233 const char *driver = ddi_driver_name(iommu->aiomt_dip); in devtab_hw_error() [all …]
|
H A D | amd_iommu_page_tables.c | 64 amd_iommu_get_src_bdf(amd_iommu_t *iommu, int32_t bdf, int32_t *src_bdfp) in amd_iommu_get_src_bdf() argument 87 amd_iommu_get_domain(amd_iommu_t *iommu, dev_info_t *rdip, int alias, in amd_iommu_get_domain() argument 124 amd_iommu_init_page_tables(amd_iommu_t *iommu) in amd_iommu_init_page_tables() argument 132 amd_iommu_fini_page_tables(amd_iommu_t *iommu) in amd_iommu_fini_page_tables() argument 142 amd_iommu_lookup_domain(amd_iommu_t *iommu, domain_id_t domainid, in amd_iommu_lookup_domain() argument 170 iommu->aiomt_idx, domainid); in amd_iommu_lookup_domain() 196 amd_iommu_teardown_domain(amd_iommu_t *iommu, amd_iommu_domain_t *dp) in amd_iommu_teardown_domain() argument 228 if (amd_iommu_cmd(iommu, AMD_IOMMU_CMD_INVAL_IOMMU_PAGES, in amd_iommu_teardown_domain() 232 f, iommu->aiomt_idx, cmdargs.ca_domainid); in amd_iommu_teardown_domain() 237 amd_iommu_get_deviceid(amd_iommu_t *iommu, dev_info_t *rdip, int32_t *deviceid, in amd_iommu_get_deviceid() argument [all …]
|
H A D | amd_iommu_page_tables.h | 118 int amd_iommu_map_pa2va(amd_iommu_t *iommu, dev_info_t *rdip, 122 int amd_iommu_unmap_va(amd_iommu_t *iommu, dev_info_t *rdip, 124 void amd_iommu_init_page_tables(amd_iommu_t *iommu); 125 void amd_iommu_fini_page_tables(amd_iommu_t *iommu); 126 void amd_iommu_set_passthru(amd_iommu_t *iommu, dev_info_t *rdip);
|
H A D | amd_iommu_acpi.c | 801 set_deventry(amd_iommu_t *iommu, int entry, amd_iommu_acpi_ivhd_t *hinfop) in set_deventry() argument 806 &iommu->aiomt_devtbl[entry * AMD_IOMMU_DEVTBL_ENTRY_SZ]; in set_deventry() 814 amd_iommu_acpi_init_devtbl(amd_iommu_t *iommu) in amd_iommu_acpi_init_devtbl() argument 823 if (hinfop->ach_IOMMU_deviceid != iommu->aiomt_bdf) in amd_iommu_acpi_init_devtbl() 829 set_deventry(iommu, j, hinfop); in amd_iommu_acpi_init_devtbl() 833 set_deventry(iommu, in amd_iommu_acpi_init_devtbl() 842 set_deventry(iommu, j, hinfop); in amd_iommu_acpi_init_devtbl() 847 set_deventry(iommu, in amd_iommu_acpi_init_devtbl() 904 amd_iommu_lookup_any_ivhd(amd_iommu_t *iommu) in amd_iommu_lookup_any_ivhd() argument 912 hinfop->ach_IOMMU_deviceid == iommu->aiomt_bdf) in amd_iommu_lookup_any_ivhd()
|
H A D | amd_iommu.conf | 27 amd-iommu="no";
|
H A D | amd_iommu_impl.h | 480 int amd_iommu_cmd(amd_iommu_t *iommu, amd_iommu_cmd_t cmd, 485 int amd_iommu_read_log(amd_iommu_t *iommu, amd_iommu_log_op_t op);
|
H A D | amd_iommu_acpi.h | 302 int amd_iommu_acpi_init_devtbl(amd_iommu_t *iommu);
|
/illumos-gate/usr/src/uts/sun4u/sys/pci/ |
H A D | pci_iommu.h | 124 typedef struct iommu iommu_t; 125 struct iommu { struct
|
/illumos-gate/usr/src/uts/intel/io/vmm/ |
H A D | Makefile.vmm | 58 iommu.o \
|
H A D | vmm.c | 196 void *iommu; /* (x) iommu-specific data */ member 534 vm->iommu = NULL; in vm_init() 672 if (vm->iommu != NULL) in vm_cleanup() 673 iommu_destroy_domain(vm->iommu); in vm_cleanup() 1128 iommu_create_mapping(vm->iommu, gpa, hpa, sz); in vm_iommu_modify() 1130 iommu_remove_mapping(vm->iommu, gpa, sz); in vm_iommu_modify() 1142 iommu_invalidate_tlb(vm->iommu); in vm_iommu_modify() 1168 KASSERT(vm->iommu == NULL, in vm_assign_pptdev() 1171 vm->iommu = iommu_create_domain(maxaddr); in vm_assign_pptdev() 1172 if (vm->iommu == NULL) in vm_assign_pptdev() [all …]
|