Home
last modified time | relevance | path

Searched refs:iodom (Results 1 – 14 of 14) sorted by relevance

/freebsd/sys/arm64/iommu/
H A Diommu.c83 iommu_domain_unmap_buf(struct iommu_domain *iodom, in iommu_domain_unmap_buf() argument
89 iommu = iodom->iommu; in iommu_domain_unmap_buf()
90 error = IOMMU_UNMAP(iommu->dev, iodom, entry->start, entry->end - in iommu_domain_unmap_buf()
96 iommu_domain_map_buf(struct iommu_domain *iodom, struct iommu_map_entry *entry, in iommu_domain_map_buf() argument
113 iommu = iodom->iommu; in iommu_domain_map_buf()
114 error = IOMMU_MAP(iommu->dev, iodom, va, ma, entry->end - in iommu_domain_map_buf()
127 struct iommu_domain *iodom; in iommu_domain_alloc() local
129 iodom = IOMMU_DOMAIN_ALLOC(iommu->dev, iommu); in iommu_domain_alloc()
130 if (iodom == NULL) in iommu_domain_alloc()
133 KASSERT(iodom->end != 0, ("domain end is not set")); in iommu_domain_alloc()
[all …]
H A Dsmmu.c1623 smmu_unmap(device_t dev, struct iommu_domain *iodom, in smmu_unmap() argument
1633 domain = (struct smmu_domain *)iodom; in smmu_unmap()
1656 smmu_map(device_t dev, struct iommu_domain *iodom, in smmu_map() argument
1668 domain = (struct smmu_domain *)iodom; in smmu_map()
1690 struct iommu_domain *iodom; in smmu_domain_alloc() local
1730 iodom = &domain->iodom; in smmu_domain_alloc()
1736 iodom->end = MAXADDR_48BIT; in smmu_domain_alloc()
1738 return (iodom); in smmu_domain_alloc()
1742 smmu_domain_free(device_t dev, struct iommu_domain *iodom) in smmu_domain_free() argument
1750 domain = (struct smmu_domain *)iodom; in smmu_domain_free()
[all …]
H A Diommu_if.m68 struct iommu_domain *iodom;
80 struct iommu_domain *iodom;
98 struct iommu_domain *iodom;
121 struct iommu_domain *iodom;
/freebsd/sys/x86/iommu/
H A Dintel_ctx.c167 if ((domain->iodom.flags & IOMMU_DOMAIN_IDMAP) != 0 && in ctx_id_entry_init()
245 domain->iodom.iommu->unit, bus, slot, func, in domain_init_rmrr()
257 domain->iodom.iommu->unit, start, end); in domain_init_rmrr()
277 IOMMU_LOCK(domain->iodom.iommu); in domain_init_rmrr()
279 domain->iodom.flags |= IOMMU_DOMAIN_RMRR; in domain_init_rmrr()
280 IOMMU_UNLOCK(domain->iodom.iommu); in domain_init_rmrr()
288 domain->iodom.iommu->unit, start, end, in domain_init_rmrr()
313 struct iommu_domain *iodom; in dmar_reserve_pci_regions() local
319 iodom = DOM2IODOM(domain); in dmar_reserve_pci_regions()
328 error = iommu_gas_reserve_region_extend(iodom, base, limit + 1); in dmar_reserve_pci_regions()
[all …]
H A Damd_ctx.c100 iommu_qi_invalidate_locked(&domain->iodom, entry, true); in amdiommu_domain_unload_entry()
103 iommu_qi_invalidate_sync(&domain->iodom, entry->start, in amdiommu_domain_unload_entry()
117 amdiommu_domain_unload(struct iommu_domain *iodom, in amdiommu_domain_unload() argument
125 domain = IODOM2DOM(iodom); in amdiommu_domain_unload()
131 error = iodom->ops->unmap(iodom, entry, in amdiommu_domain_unload()
141 iommu_qi_invalidate_locked(&domain->iodom, entry, in amdiommu_domain_unload()
150 struct iommu_domain *iodom; in amdiommu_domain_destroy() local
153 iodom = DOM2IODOM(domain); in amdiommu_domain_destroy()
155 KASSERT(TAILQ_EMPTY(&domain->iodom.unload_entries), in amdiommu_domain_destroy()
157 KASSERT(LIST_EMPTY(&iodom->contexts), in amdiommu_domain_destroy()
[all …]
H A Damd_idpgtbl.c88 if (bus_get_domain(domain->iodom.iommu->dev, &dom) == 0) in amdiommu_domain_alloc_pgtbl()
98 domain->iodom.flags |= IOMMU_DOMAIN_PGTBL_INITED; in amdiommu_domain_alloc_pgtbl()
111 KASSERT((domain->iodom.flags & IOMMU_DOMAIN_IDMAP) != 0, in amdiommu_domain_free_pgtbl()
229 amdiommu_map_buf(struct iommu_domain *iodom, struct iommu_map_entry *entry, in amdiommu_map_buf() argument
244 domain = IODOM2DOM(iodom); in amdiommu_map_buf()
246 KASSERT((iodom->flags & IOMMU_DOMAIN_IDMAP) == 0, in amdiommu_map_buf()
256 KASSERT(base < iodom->end, in amdiommu_map_buf()
258 (uintmax_t)size, (uintmax_t)iodom->end)); in amdiommu_map_buf()
259 KASSERT(base + size < iodom->end, in amdiommu_map_buf()
261 (uintmax_t)size, (uintmax_t)iodom->end)); in amdiommu_map_buf()
[all …]
H A Damd_iommu.h41 struct iommu_domain iodom; member
118 #define DOM2IODOM(domain) (&((domain)->iodom))
120 __containerof((domain), struct amdiommu_domain, iodom)
130 #define AMDIOMMU_DOMAIN_LOCK(dom) mtx_lock(&(dom)->iodom.lock)
131 #define AMDIOMMU_DOMAIN_UNLOCK(dom) mtx_unlock(&(dom)->iodom.lock)
133 mtx_assert(&(dom)->iodom.lock, MA_OWNED)
214 void amdiommu_domain_unload(struct iommu_domain *iodom,
H A Dintel_dmar.h57 struct iommu_domain iodom; member
83 #define DMAR_DOMAIN_LOCK(dom) mtx_lock(&(dom)->iodom.lock)
84 #define DMAR_DOMAIN_UNLOCK(dom) mtx_unlock(&(dom)->iodom.lock)
85 #define DMAR_DOMAIN_ASSERT_LOCKED(dom) mtx_assert(&(dom)->iodom.lock, MA_OWNED)
91 #define DOM2IODOM(domain) (&((domain)->iodom))
93 __containerof((domain), struct dmar_domain, iodom)
245 void dmar_domain_unload(struct iommu_domain *iodom,
H A Dintel_idpgtbl.c472 dmar_map_buf(struct iommu_domain *iodom, struct iommu_map_entry *entry, in dmar_map_buf() argument
489 domain = IODOM2DOM(iodom); in dmar_map_buf()
492 KASSERT((iodom->flags & IOMMU_DOMAIN_IDMAP) == 0, in dmar_map_buf()
605 KASSERT((domain->iodom.flags & IOMMU_DOMAIN_IDMAP) == 0, in dmar_unmap_buf_locked()
664 dmar_unmap_buf(struct iommu_domain *iodom, struct iommu_map_entry *entry, in dmar_unmap_buf() argument
670 domain = IODOM2DOM(iodom); in dmar_unmap_buf()
702 domain->iodom.flags |= IOMMU_DOMAIN_PGTBL_INITED; in dmar_domain_alloc_pgtbl()
716 (domain->iodom.flags & IOMMU_DOMAIN_IDMAP) != 0, in dmar_domain_free_pgtbl()
723 if ((domain->iodom.flags & IOMMU_DOMAIN_IDMAP) != 0) { in dmar_domain_free_pgtbl()
725 domain->iodom.flags &= ~IOMMU_DOMAIN_IDMAP; in dmar_domain_free_pgtbl()
H A Dx86_iommu.h78 void (*domain_unload)(struct iommu_domain *iodom,
199 void iommu_db_domain_print_contexts(struct iommu_domain *iodom);
200 void iommu_db_domain_print_mappings(struct iommu_domain *iodom);
H A Diommu_utils.c272 iommu_domain_unload(struct iommu_domain *iodom, in iommu_domain_unload() argument
275 x86_iommu->domain_unload(iodom, entries, cansleep); in iommu_domain_unload()
808 iommu_db_domain_print_contexts(struct iommu_domain *iodom) in iommu_db_domain_print_contexts() argument
812 if (LIST_EMPTY(&iodom->contexts)) in iommu_db_domain_print_contexts()
816 LIST_FOREACH(ctx, &iodom->contexts, link) in iommu_db_domain_print_contexts()
821 iommu_db_domain_print_mappings(struct iommu_domain *iodom) in iommu_db_domain_print_mappings() argument
826 RB_FOREACH(entry, iommu_gas_entries_tree, &iodom->rb_root) { in iommu_db_domain_print_mappings()
834 TAILQ_FOREACH(entry, &iodom->unload_entries, dmamap_link) { in iommu_db_domain_print_mappings()
H A Dintel_drv.c1107 struct iommu_domain *iodom; in dmar_print_domain() local
1109 iodom = DOM2IODOM(domain); in dmar_print_domain()
1115 (uintmax_t)domain->iodom.end, domain->refs, domain->ctx_cnt, in dmar_print_domain()
1116 domain->iodom.flags, domain->pgtbl_obj, domain->iodom.entries_cnt); in dmar_print_domain()
1118 iommu_db_domain_print_contexts(iodom); in dmar_print_domain()
1121 iommu_db_domain_print_mappings(iodom); in dmar_print_domain()
1176 LIST_FOREACH(ctx, &domain->iodom.contexts, link) { in DB_SHOW_COMMAND_FLAGS()
H A Damd_drv.c1112 struct iommu_domain *iodom; in amdiommu_print_domain() local
1114 iodom = DOM2IODOM(domain); in amdiommu_print_domain()
1120 (uintmax_t)domain->iodom.end, domain->refs, domain->ctx_cnt, in amdiommu_print_domain()
1121 domain->iodom.flags, domain->pgtbl_obj, domain->iodom.entries_cnt); in amdiommu_print_domain()
1123 iommu_db_domain_print_contexts(iodom); in amdiommu_print_domain()
1126 iommu_db_domain_print_mappings(iodom); in amdiommu_print_domain()
H A Dintel_qi.c193 domain = __containerof(idomain, struct dmar_domain, iodom); in dmar_qi_invalidate_emit()