Home
last modified time | relevance | path

Searched refs:iodom (Results 1 – 18 of 18) 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
1729 iodom = &domain->iodom; in smmu_domain_alloc()
1735 iodom->end = MAXADDR_48BIT; in smmu_domain_alloc()
1737 return (iodom); in smmu_domain_alloc()
1741 smmu_domain_free(device_t dev, struct iommu_domain *iodom) in smmu_domain_free() argument
1800 smmu_ctx_alloc(device_t dev,struct iommu_domain * iodom,device_t child,bool disabled) smmu_ctx_alloc() argument
1825 struct iommu_domain *iodom; smmu_ctx_init() local
[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/riscv/iommu/
H A Diommu_frontend.c75 iommu_domain_unmap_buf(struct iommu_domain *iodom, in iommu_domain_unmap_buf() argument
81 iommu = iodom->iommu; in iommu_domain_unmap_buf()
82 error = IOMMU_UNMAP(iommu->dev, iodom, entry->start, entry->end - in iommu_domain_unmap_buf()
88 iommu_domain_map_buf(struct iommu_domain *iodom, struct iommu_map_entry *entry, in iommu_domain_map_buf() argument
105 iommu = iodom->iommu; in iommu_domain_map_buf()
106 error = IOMMU_MAP(iommu->dev, iodom, va, ma, entry->end - in iommu_domain_map_buf()
119 struct iommu_domain *iodom; in iommu_domain_alloc() local
121 iodom = IOMMU_DOMAIN_ALLOC(iommu->dev, iommu); in iommu_domain_alloc()
122 if (iodom == NULL) in iommu_domain_alloc()
125 KASSERT(iodom->end != 0, ("domain end is not set")); in iommu_domain_alloc()
[all …]
H A Diommu.c1051 IOMMU_DOMAIN_LOCK(&domain->iodom); in riscv_iommu_ctx_lookup()
1055 IOMMU_DOMAIN_UNLOCK(&domain->iodom); in riscv_iommu_ctx_lookup()
1059 IOMMU_DOMAIN_UNLOCK(&domain->iodom); in riscv_iommu_ctx_lookup()
1066 riscv_iommu_unmap(device_t dev, struct iommu_domain *iodom, in riscv_iommu_unmap() argument
1076 domain = (struct riscv_iommu_domain *)iodom; in riscv_iommu_unmap()
1099 riscv_iommu_map(device_t dev, struct iommu_domain *iodom, in riscv_iommu_map() argument
1111 domain = (struct riscv_iommu_domain *)iodom; in riscv_iommu_map()
1132 struct iommu_domain *iodom; in riscv_iommu_domain_alloc() local
1166 iodom = &domain->iodom; in riscv_iommu_domain_alloc()
1173 iodom->end = (1ULL << va_bits) - 1; in riscv_iommu_domain_alloc()
[all …]
H A Diommu_if.m63 struct iommu_domain *iodom;
75 struct iommu_domain *iodom;
93 struct iommu_domain *iodom;
116 struct iommu_domain *iodom;
H A Diommu.h144 struct iommu_domain iodom; member
/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.c89 if (bus_get_domain(domain->iodom.iommu->dev, &dom) == 0) in amdiommu_domain_alloc_pgtbl()
99 domain->iodom.flags |= IOMMU_DOMAIN_PGTBL_INITED; in amdiommu_domain_alloc_pgtbl()
113 KASSERT((domain->iodom.flags & IOMMU_DOMAIN_IDMAP) != 0, in amdiommu_domain_free_pgtbl()
232 amdiommu_map_buf(struct iommu_domain *iodom, struct iommu_map_entry *entry, in amdiommu_map_buf() argument
247 domain = IODOM2DOM(iodom); in amdiommu_map_buf()
249 KASSERT((iodom->flags & IOMMU_DOMAIN_IDMAP) == 0, in amdiommu_map_buf()
259 KASSERT(base < iodom->end, in amdiommu_map_buf()
261 (uintmax_t)size, (uintmax_t)iodom->end)); in amdiommu_map_buf()
262 KASSERT(base + size < iodom->end, in amdiommu_map_buf()
264 (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.c474 dmar_map_buf(struct iommu_domain *iodom, struct iommu_map_entry *entry, in dmar_map_buf() argument
491 domain = IODOM2DOM(iodom); in dmar_map_buf()
494 KASSERT((iodom->flags & IOMMU_DOMAIN_IDMAP) == 0, in dmar_map_buf()
607 KASSERT((domain->iodom.flags & IOMMU_DOMAIN_IDMAP) == 0, in dmar_unmap_buf_locked()
666 dmar_unmap_buf(struct iommu_domain *iodom, struct iommu_map_entry *entry, in dmar_unmap_buf() argument
672 domain = IODOM2DOM(iodom); in dmar_unmap_buf()
704 domain->iodom.flags |= IOMMU_DOMAIN_PGTBL_INITED; in dmar_domain_alloc_pgtbl()
719 (domain->iodom.flags & IOMMU_DOMAIN_IDMAP) != 0, in dmar_domain_free_pgtbl()
726 if ((domain->iodom.flags & IOMMU_DOMAIN_IDMAP) != 0) { in dmar_domain_free_pgtbl()
728 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.c1109 struct iommu_domain *iodom;
1111 iodom = DOM2IODOM(domain);
1117 (uintmax_t)domain->iodom.end, domain->refs, domain->ctx_cnt, in dmar_print_domain()
1118 domain->iodom.flags, domain->pgtbl_obj, domain->iodom.entries_cnt); in dmar_print_domain()
1120 iommu_db_domain_print_contexts(iodom); in dmar_print_domain()
1123 iommu_db_domain_print_mappings(iodom); in dmar_print_domain()
1178 LIST_FOREACH(ctx, &domain->iodom.contexts, link) { in DB_SHOW_COMMAND_FLAGS()
1116 struct iommu_domain *iodom; dmar_print_domain() local
H A Damd_drv.c1119 struct iommu_domain *iodom; in amdiommu_print_domain()
1121 iodom = DOM2IODOM(domain); in amdiommu_print_domain()
1127 (uintmax_t)domain->iodom.end, domain->refs, domain->ctx_cnt, in amdiommu_print_domain()
1128 domain->iodom.flags, domain->pgtbl_obj, domain->iodom.entries_cnt); in amdiommu_print_domain()
1130 iommu_db_domain_print_contexts(iodom); in amdiommu_print_domain()
1133 iommu_db_domain_print_mappings(iodom); in amdiommu_print_domain()
1120 struct iommu_domain *iodom; amdiommu_print_domain() local
H A Dintel_qi.c193 domain = __containerof(idomain, struct dmar_domain, iodom); in dmar_qi_invalidate_emit()