Home
last modified time | relevance | path

Searched refs:dmar (Results 1 – 11 of 11) sorted by relevance

/freebsd/sys/x86/iommu/
H A Dintel_ctx.c74 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() argument
90 ctxm = iommu_pgalloc(dmar->ctx_obj, 1 + bus, IOMMU_PGF_NOALLOC); in dmar_ensure_ctx_page()
101 ctxm = iommu_pgalloc(dmar->ctx_obj, 1 + bus, IOMMU_PGF_ZERO | in dmar_ensure_ctx_page()
103 re = iommu_map_pgtbl(dmar->ctx_obj, 0, IOMMU_PGF_NOALLOC, &sf); in dmar_ensure_ctx_page()
107 dmar_flush_root_to_ram(dmar, re); in dmar_ensure_ctx_page()
115 struct dmar_unit *dmar; in dmar_map_ctx_entry() local
118 dmar = CTX2DMAR(ctx); in dmar_map_ctx_entry()
120 ctxp = iommu_map_pgtbl(dmar->ctx_obj, 1 + PCI_RID2BUS(ctx->context.rid), in dmar_map_ctx_entry()
[all …]
H A Dintel_dmar.h66 struct dmar_unit *dmar; /* (c) */ member
87 #define DMAR2IOMMU(dmar) (&((dmar)->iommu)) argument
88 #define IOMMU2DMAR(dmar) \ argument
89 __containerof((dmar), struct dmar_unit, iommu)
100 #define CTX2DMAR(ctx) (CTX2DOM(ctx)->dmar)
101 #define DOM2DMAR(domain) ((domain)->dmar)
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
[all …]
H A Dintel_utils.c130 sagaw = DMAR_CAP_SAGAW(domain->dmar->hw_cap); in domain_set_agaw()
139 device_printf(domain->dmar->iommu.dev, in domain_set_agaw()
191 cap_sps = DMAR_CAP_SPS(domain->dmar->hw_cap); in domain_is_sp_lvl()
467 dmar_barrier_enter(struct dmar_unit *dmar, u_int barrier_id) in dmar_barrier_enter() argument
471 DMAR_LOCK(dmar); in dmar_barrier_enter()
472 if ((dmar->barrier_flags & f_done) != 0) { in dmar_barrier_enter()
473 DMAR_UNLOCK(dmar); in dmar_barrier_enter()
477 if ((dmar->barrier_flags & f_inproc) != 0) { in dmar_barrier_enter()
478 while ((dmar->barrier_flags & f_inproc) != 0) { in dmar_barrier_enter()
479 dmar->barrier_flags |= f_wakeup; in dmar_barrier_enter()
[all …]
H A Dintel_quirks.c88 dmar_match_quirks(struct dmar_unit *dmar, in dmar_match_quirks() argument
111 device_printf(dmar->iommu.dev, in dmar_match_quirks()
115 nb_quirk->quirk(dmar, nb); in dmar_match_quirks()
119 device_printf(dmar->iommu.dev, in dmar_match_quirks()
139 device_printf(dmar->iommu.dev, in dmar_match_quirks()
143 cpu_quirk->quirk(dmar); in dmar_match_quirks()
225 struct dmar_unit *dmar; in dmar_quirks_pre_use() local
227 dmar = IOMMU2DMAR(unit); in dmar_quirks_pre_use()
229 if (!dmar_barrier_enter(dmar, DMAR_BARRIER_USEQ)) in dmar_quirks_pre_use()
231 DMAR_LOCK(dmar); in dmar_quirks_pre_use()
[all …]
H A Dintel_drv.c197 if (acpi_disabled("dmar")) in dmar_identify()
199 TUNABLE_INT_FETCH("hw.dmar.enable", &dmar_enable); in dmar_identify()
202 TUNABLE_INT_FETCH("hw.dmar.rmrr_enable", &dmar_rmrr_enable); in dmar_identify()
230 dmar_devs[i] = BUS_ADD_CHILD(parent, 1, "dmar", i); in dmar_identify()
239 "dmar%d: unable to alloc register window at 0x%08jx: error %d\n", in dmar_identify()
395 TUNABLE_UINT64_FETCH("hw.iommu.dmar.timeout", &timeout); in dmar_attach()
516 TUNABLE_INT_FETCH("hw.dmar.pmr.disable", &disable_pmr); in dmar_attach()
583 "dmar",
588 DRIVER_MODULE(dmar, acpi, dmar_driver, 0, 0);
589 MODULE_DEPEND(dmar, acp
961 struct dmar_unit *dmar; global() member
1073 struct dmar_unit *dmar; dmar_instantiate_rmrr_ctxs() local
1270 DB_SHOW_COMMAND(dmar,db_dmar_print) DB_SHOW_COMMAND() argument
1302 struct dmar_unit *dmar; dmar_find_method() local
1311 struct dmar_unit *dmar; dmar_get_x86_common() local
[all...]
H A Dintel_idpgtbl.c199 dmar_pglvl_supported(domain->dmar, tbl->pglvl) && in dmar_get_idmap_pgtbl()
218 dmar_pglvl_supported(domain->dmar, tbl->pglvl) && in dmar_get_idmap_pgtbl()
263 unit = domain->dmar; in dmar_get_idmap_pgtbl()
383 dmar_flush_pte_to_ram(domain->dmar, ptep); in dmar_pgtbl_map_pte()
464 dmar_flush_pte_to_ram(domain->dmar, pte); in dmar_map_buf_locked()
492 unit = domain->dmar; in dmar_map_buf()
572 dmar_flush_pte_to_ram(domain->dmar, pte); in dmar_unmap_clear_pte()
690 unit = domain->dmar; in dmar_domain_alloc_pgtbl()
718 KASSERT((domain->dmar->hw_ecap & DMAR_ECAP_PT) != 0 && in dmar_domain_free_pgtbl()
768 unit = domain->dmar; in dmar_flush_iotlb_sync()
H A Dintel_qi.c194 unit = domain->dmar; in dmar_qi_invalidate_emit()
H A Diommu_utils.c190 SYSCTL_NODE(_hw_iommu, OID_AUTO, dmar, CTLFLAG_RD | CTLFLAG_MPSAFE,
/freebsd/sys/amd64/vmm/intel/
H A Dvtd.c310 ACPI_TABLE_DMAR *dmar; in vtd_init() local
334 status = AcpiGetTable(ACPI_SIG_DMAR, 0, (ACPI_TABLE_HEADER **)&dmar); in vtd_init()
338 end = (char *)dmar + dmar->Header.Length; in vtd_init()
339 remaining = dmar->Header.Length - sizeof(ACPI_TABLE_DMAR); in vtd_init()
/freebsd/tools/tools/dmardump/
H A Ddmardump.c225 ACPI_TABLE_DMAR *dmar; in acpi_handle_dmar() local
227 dmar = (ACPI_TABLE_DMAR *)sdp; in acpi_handle_dmar()
/freebsd/usr.sbin/acpi/acpidump/
H A Dacpi.c1797 ACPI_TABLE_DMAR *dmar; in acpi_handle_dmar() local
1801 dmar = (ACPI_TABLE_DMAR *)sdp; in acpi_handle_dmar()
1802 printf("\tHost Address Width=%d\n", dmar->Width + 1); in acpi_handle_dmar()
1807 PRINTFLAG(dmar->Flags, INTR_REMAP); in acpi_handle_dmar()
1808 PRINTFLAG(dmar->Flags, X2APIC_OPT_OUT); in acpi_handle_dmar()