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.c586 DRIVER_MODULE(dmar, acpi, dmar_driver, 0, 0);
587 MODULE_DEPEND(dmar, acpi, 1, 1, 1);
959 struct dmar_unit *dmar; member
1004 if (resmem->Segment != iria->dmar->segment) in dmar_inst_rmrr_iter()
1027 iria->dmar->iommu.unit, in dmar_inst_rmrr_iter()
1039 if (iria->dmar != unit) in dmar_inst_rmrr_iter()
1041 dmar_get_ctx_for_devpath(iria->dmar, rid, in dmar_inst_rmrr_iter()
1047 if (iria->dmar != unit) in dmar_inst_rmrr_iter()
1049 iommu_instantiate_ctx(&(iria)->dmar->iommu, in dmar_inst_rmrr_iter()
1064 struct dmar_unit *dmar; in dmar_instantiate_rmrr_ctxs() local
[all …]
H A Dintel_idpgtbl.c197 dmar_pglvl_supported(domain->dmar, tbl->pglvl) && in dmar_get_idmap_pgtbl()
216 dmar_pglvl_supported(domain->dmar, tbl->pglvl) && in dmar_get_idmap_pgtbl()
261 unit = domain->dmar; in dmar_get_idmap_pgtbl()
381 dmar_flush_pte_to_ram(domain->dmar, ptep); in dmar_pgtbl_map_pte()
462 dmar_flush_pte_to_ram(domain->dmar, pte); in dmar_map_buf_locked()
490 unit = domain->dmar; in dmar_map_buf()
570 dmar_flush_pte_to_ram(domain->dmar, pte); in dmar_unmap_clear_pte()
688 unit = domain->dmar; in dmar_domain_alloc_pgtbl()
715 KASSERT((domain->dmar->hw_ecap & DMAR_ECAP_PT) != 0 && in dmar_domain_free_pgtbl()
764 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.c1617 ACPI_TABLE_DMAR *dmar; in acpi_handle_dmar() local
1621 dmar = (ACPI_TABLE_DMAR *)sdp; in acpi_handle_dmar()
1622 printf("\tHost Address Width=%d\n", dmar->Width + 1); in acpi_handle_dmar()
1627 PRINTFLAG(dmar->Flags, INTR_REMAP); in acpi_handle_dmar()
1628 PRINTFLAG(dmar->Flags, X2APIC_OPT_OUT); in acpi_handle_dmar()