| /freebsd-14.2/sys/x86/iommu/ |
| H A D | intel_ctx.c | 382 domain->dmar = dmar; in dmar_domain_alloc() 527 DMAR_LOCK(dmar); in dmar_get_ctx_for_dev1() 559 DMAR_LOCK(dmar); in dmar_get_ctx_for_dev1() 586 dmar->iommu.unit, dmar->segment, bus, slot, in dmar_get_ctx_for_dev1() 637 DMAR_UNLOCK(dmar); in dmar_get_ctx_for_dev1() 676 dmar = domain->dmar; in dmar_move_ctx_to_domain() 687 DMAR_LOCK(dmar); in dmar_move_ctx_to_domain() 726 DMAR_UNLOCK(dmar); in dmar_unref_domain_locked() 762 DMAR_UNLOCK(dmar); in dmar_free_ctx_locked() 765 DMAR_LOCK(dmar); in dmar_free_ctx_locked() [all …]
|
| H A D | intel_dmar.h | 87 #define DMAR2IOMMU(dmar) (&((dmar)->iommu)) argument 88 #define IOMMU2DMAR(dmar) \ argument 150 #define DMAR_LOCK(dmar) mtx_lock(&DMAR2IOMMU(dmar)->lock) argument 151 #define DMAR_UNLOCK(dmar) mtx_unlock(&DMAR2IOMMU(dmar)->lock) argument 152 #define DMAR_ASSERT_LOCKED(dmar) mtx_assert(&DMAR2IOMMU(dmar)->lock, MA_OWNED) argument 154 #define DMAR_FAULT_LOCK(dmar) mtx_lock_spin(&(dmar)->fault_lock) argument 155 #define DMAR_FAULT_UNLOCK(dmar) mtx_unlock_spin(&(dmar)->fault_lock) argument 156 #define DMAR_FAULT_ASSERT_LOCKED(dmar) mtx_assert(&(dmar)->fault_lock, MA_OWNED) argument 158 #define DMAR_IS_COHERENT(dmar) (((dmar)->hw_ecap & DMAR_ECAP_C) != 0) argument 159 #define DMAR_HAS_QI(dmar) (((dmar)->hw_ecap & DMAR_ECAP_QI) != 0) argument [all …]
|
| H A D | intel_utils.c | 472 DMAR_LOCK(dmar); in dmar_barrier_enter() 474 DMAR_UNLOCK(dmar); in dmar_barrier_enter() 480 dmar->barrier_flags |= f_wakeup; in dmar_barrier_enter() 481 msleep(&dmar->barrier_flags, &dmar->iommu.lock, 0, in dmar_barrier_enter() 487 DMAR_UNLOCK(dmar); in dmar_barrier_enter() 491 dmar->barrier_flags |= f_inproc; in dmar_barrier_enter() 492 DMAR_UNLOCK(dmar); in dmar_barrier_enter() 501 DMAR_ASSERT_LOCKED(dmar); in dmar_barrier_exit() 504 dmar->barrier_flags |= f_done; in dmar_barrier_exit() 506 wakeup(&dmar->barrier_flags); in dmar_barrier_exit() [all …]
|
| H A D | intel_quirks.c | 89 dmar_match_quirks(struct dmar_unit *dmar, in dmar_match_quirks() argument 112 device_printf(dmar->iommu.dev, in dmar_match_quirks() 116 nb_quirk->quirk(dmar, nb); in dmar_match_quirks() 120 device_printf(dmar->iommu.dev, in dmar_match_quirks() 140 device_printf(dmar->iommu.dev, in dmar_match_quirks() 144 cpu_quirk->quirk(dmar); in dmar_match_quirks() 226 struct dmar_unit *dmar; in dmar_quirks_pre_use() local 228 dmar = IOMMU2DMAR(unit); in dmar_quirks_pre_use() 232 DMAR_LOCK(dmar); in dmar_quirks_pre_use() 235 dmar_barrier_exit(dmar, DMAR_BARRIER_USEQ); in dmar_quirks_pre_use() [all …]
|
| H A D | intel_drv.c | 957 struct dmar_unit *dmar; member 1062 struct dmar_unit *dmar; in dmar_instantiate_rmrr_ctxs() local 1066 dmar = IOMMU2DMAR(unit); in dmar_instantiate_rmrr_ctxs() 1072 iria.dmar = dmar; in dmar_instantiate_rmrr_ctxs() 1074 DMAR_LOCK(dmar); in dmar_instantiate_rmrr_ctxs() 1078 dmar->iommu.unit)); in dmar_instantiate_rmrr_ctxs() 1082 dmar->iommu.unit); in dmar_instantiate_rmrr_ctxs() 1291 struct dmar_unit *dmar; in dmar_find_method() local 1294 return (&dmar->iommu); in dmar_find_method() 1300 struct dmar_unit *dmar; in dmar_get_x86_common() local [all …]
|
| H A D | intel_idpgtbl.c | 198 dmar_pglvl_supported(domain->dmar, tbl->pglvl) && in dmar_get_idmap_pgtbl() 217 dmar_pglvl_supported(domain->dmar, tbl->pglvl) && in dmar_get_idmap_pgtbl() 262 unit = domain->dmar; in dmar_get_idmap_pgtbl() 382 dmar_flush_pte_to_ram(domain->dmar, ptep); in dmar_pgtbl_map_pte() 463 dmar_flush_pte_to_ram(domain->dmar, pte); in dmar_map_buf_locked() 491 unit = domain->dmar; in dmar_map_buf() 571 dmar_flush_pte_to_ram(domain->dmar, pte); in dmar_unmap_clear_pte() 689 unit = domain->dmar; in dmar_domain_alloc_pgtbl() 716 KASSERT((domain->dmar->hw_ecap & DMAR_ECAP_PT) != 0 && in dmar_domain_free_pgtbl() 765 unit = domain->dmar; in dmar_flush_iotlb_sync()
|
| H A D | intel_qi.c | 194 unit = domain->dmar; in dmar_qi_invalidate_emit()
|
| H A D | iommu_utils.c | 190 SYSCTL_NODE(_hw_iommu, OID_AUTO, dmar, CTLFLAG_RD | CTLFLAG_MPSAFE,
|
| /freebsd-14.2/sys/amd64/vmm/intel/ |
| H A D | vtd.c | 311 ACPI_TABLE_DMAR *dmar; in vtd_init() local 335 status = AcpiGetTable(ACPI_SIG_DMAR, 0, (ACPI_TABLE_HEADER **)&dmar); in vtd_init() 339 end = (char *)dmar + dmar->Header.Length; in vtd_init() 340 remaining = dmar->Header.Length - sizeof(ACPI_TABLE_DMAR); in vtd_init()
|
| /freebsd-14.2/tools/tools/dmardump/ |
| H A D | dmardump.c | 226 ACPI_TABLE_DMAR *dmar; in acpi_handle_dmar() local 228 dmar = (ACPI_TABLE_DMAR *)sdp; in acpi_handle_dmar()
|
| /freebsd-14.2/usr.sbin/acpi/acpidump/ |
| H A D | acpi.c | 1477 ACPI_TABLE_DMAR *dmar; in acpi_handle_dmar() local 1481 dmar = (ACPI_TABLE_DMAR *)sdp; in acpi_handle_dmar() 1482 printf("\tHost Address Width=%d\n", dmar->Width + 1); in acpi_handle_dmar() 1487 PRINTFLAG(dmar->Flags, INTR_REMAP); in acpi_handle_dmar() 1488 PRINTFLAG(dmar->Flags, X2APIC_OPT_OUT); in acpi_handle_dmar()
|