Home
last modified time | relevance | path

Searched refs:iommu_p (Results 1 – 10 of 10) sorted by relevance

/illumos-gate/usr/src/uts/sun4u/io/pci/
H A Dpci_iommu.c53 iommu_t *iommu_p; in iommu_create() local
96 iommu_p->iommu_tsb_paddr = va_to_pa((caddr_t)iommu_p->iommu_tsb_vaddr); in iommu_create()
100 iommu_p->iommu_dvma_base = iommu_p->iommu_dvma_end + 1 in iommu_create()
102 iommu_p->dvma_base_pg = IOMMU_BTOP(iommu_p->iommu_dvma_base); in iommu_create()
104 iommu_p->dvma_end_pg = IOMMU_BTOP(iommu_p->iommu_dvma_end); in iommu_create()
114 iommu_p->iommu_dvma_end - iommu_p->iommu_dvma_base + 1; in iommu_create()
120 iommu_p->iommu_ctrl_reg, iommu_p->iommu_tsb_base_addr_reg); in iommu_create()
122 iommu_p->iommu_flush_page_reg, iommu_p->iommu_flush_ctx_reg); in iommu_create()
124 iommu_p->iommu_tsb_vaddr, iommu_p->iommu_tsb_paddr); in iommu_create()
132 iommu_p->iommu_tsb_size, iommu_p->iommu_tsb_entries, in iommu_create()
[all …]
H A Dpci_dma.c976 if (DVMA_DBG_ON(iommu_p)) in pci_dvma_map_fast()
1531 iommu_p->dvma_alloc_rec = iommu_p->dvma_free_rec = NULL; in pci_dvma_debug_fini()
1556 if (!iommu_p->dvma_alloc_rec) in pci_dvma_alloc_debug()
1557 pci_dvma_debug_init(iommu_p); in pci_dvma_alloc_debug()
1558 if (DVMA_DBG_OFF(iommu_p)) { in pci_dvma_alloc_debug()
1563 ptr = &iommu_p->dvma_alloc_rec[iommu_p->dvma_alloc_rec_index]; in pci_dvma_alloc_debug()
1577 iommu_p->dvma_active_count++; in pci_dvma_alloc_debug()
1589 if (!iommu_p->dvma_alloc_rec) in pci_dvma_free_debug()
1591 if (DVMA_DBG_OFF(iommu_p)) { in pci_dvma_free_debug()
1596 ptr = &iommu_p->dvma_free_rec[iommu_p->dvma_free_rec_index]; in pci_dvma_free_debug()
[all …]
H A Dpci_fdvma.c55 iommu_t *iommu_p = pci_p->pci_iommu_p; in pci_fdvma_load() local
86 pg_index = dvma_pg - iommu_p->dvma_base_pg; in pci_fdvma_load()
113 IOMMU_PAGE_FLUSH(iommu_p, (dvma_pg + i)); in pci_fdvma_load()
183 iommu_t *iommu_p = pci_p->pci_iommu_p; in pci_fdvma_reserve() local
200 if ((lo >= hi) || (hi < iommu_p->iommu_dvma_base)) in pci_fdvma_reserve()
209 atomic_add_long(&iommu_p->iommu_dvma_reserve, npages); in pci_fdvma_reserve()
229 atomic_add_long(&iommu_p->iommu_dvma_reserve, npages); in pci_fdvma_reserve()
273 iommu_t *iommu_p = pci_p->pci_iommu_p; in pci_fdvma_release() local
292 atomic_add_long(&iommu_p->iommu_dvma_reserve, npages); in pci_fdvma_release()
296 if (iommu_p->iommu_dvma_clid != 0) { in pci_fdvma_release()
[all …]
H A Dpcisch.c1199 iommu_p->iommu_mtlb_nreq = 0; in pci_iommu_setup()
1200 iommu_p->iommu_mtlb_npgs = 0; in pci_iommu_setup()
1226 iommu_p->iommu_ctx_bitmap = in pci_iommu_setup()
1236 iommu_p->iommu_flush_ctx_reg = in pci_iommu_setup()
1239 iommu_p->iommu_tfar_reg = in pci_iommu_setup()
1248 iommu_ctx_free(iommu_p); in pci_iommu_teardown()
1254 iommu_p->iommu_mtlb_nreq = 0; in pci_iommu_teardown()
1255 iommu_p->iommu_mtlb_npgs = iommu_p->iommu_mtlb_maxpgs = 0; in pci_iommu_teardown()
3599 if (iommu_p->iommu_mtlb_npgs <= iommu_p->iommu_mtlb_maxpgs) in tm_vmem_free()
3621 pci_vmem_do_free(iommu_p, in tm_vmem_free()
[all …]
H A Dpci_reloc.c194 iommu_t *iommu_p = pci_p->pci_iommu_p; in pci_dvma_remap() local
209 iommu_remap_pages(iommu_p, mp, dvma_pg, npgs, idx); in pci_dvma_remap()
220 iommu_t *iommu_p = pci_p->pci_iommu_p; in pci_fdvma_remap() local
223 dvma_addr_t pg_index = dvma_pg - iommu_p->dvma_base_pg; in pci_fdvma_remap()
241 iommu_p->iommu_tsb_vaddr[pg_index + i]); in pci_fdvma_remap()
250 iommu_p->iommu_tsb_vaddr[pg_index + i] = tte | IOMMU_PTOB(pfn); in pci_fdvma_remap()
251 IOMMU_PAGE_FLUSH(iommu_p, (dvma_pg + i)); in pci_fdvma_remap()
H A Dpcipsy.c1069 get_pbm_reg_base(iommu_p->iommu_pci_p); in pci_iommu_config()
1072 volatile uint64_t *iommu_ctl_p = iommu_p->iommu_ctrl_reg; in pci_iommu_config()
1073 volatile uint64_t tsb_bar_val = iommu_p->iommu_tsb_paddr; in pci_iommu_config()
1076 DEBUG2(DBG_ATTACH, iommu_p->iommu_pci_p->pci_dip, in pci_iommu_config()
1159 pci_iommu_setup(iommu_t *iommu_p) in pci_iommu_setup() argument
1164 pci_t *pci_p = iommu_p->iommu_pci_p; in pci_iommu_setup()
1179 iommu_p->iommu_dvma_end = dvma_prop->dvma_base + in pci_iommu_setup()
1194 iommu_p->iommu_ctx_bitmap = NULL; in pci_iommu_setup()
1195 iommu_p->iommu_flush_ctx_reg = NULL; in pci_iommu_setup()
1208 pci_iommu_teardown(iommu_t *iommu_p) in pci_iommu_teardown() argument
[all …]
H A Dpci.c575 iommu_t *iommu_p = pci_p->pci_iommu_p; in pci_dma_setup() local
583 if (!(mp = pci_dma_lmts2hdl(dip, rdip, iommu_p, dmareq))) in pci_dma_setup()
598 if (!pci_dvma_map_fast(iommu_p, mp)) in pci_dma_setup()
605 if (ret = pci_dvma_map(mp, dmareq, iommu_p)) in pci_dma_setup()
699 iommu_t *iommu_p = pci_p->pci_iommu_p; in pci_dma_bindhdl() local
723 if (!pci_dvma_map_fast(iommu_p, mp)) in pci_dma_bindhdl()
729 if (ret = pci_dvma_map(mp, dmareq, iommu_p)) in pci_dma_bindhdl()
779 iommu_t *iommu_p = pci_p->pci_iommu_p; in pci_dma_unbindhdl() local
794 pci_dvma_unmap(iommu_p, mp); in pci_dma_unbindhdl()
806 if (iommu_p->iommu_dvma_clid != 0) { in pci_dma_unbindhdl()
[all …]
/illumos-gate/usr/src/uts/sun4u/sys/pci/
H A Dpci_iommu.h208 #define IOMMU_PAGE_INDEX(iommu_p, dvma_pg) ((dvma_pg) - (iommu_p)->dvma_base_pg) argument
209 #define IOMMU_PAGE_FLUSH(iommu_p, dvma_pg) \ argument
211 #define IOMMU_UNLOAD_TTE(iommu_p, pg_index) \ argument
213 #define IOMMU_PAGE_TTEPA(iommu_p, dvma_pg) \ argument
214 ((iommu_p)->iommu_tsb_paddr + (IOMMU_PAGE_INDEX(iommu_p, dvma_pg) << 3))
225 #define DVMA_DBG_ON(iommu_p) \ argument
226 ((1ull << (iommu_p)->iommu_inst) & pci_dvma_debug_on)
227 #define DVMA_DBG_OFF(iommu_p) \ argument
230 extern void pci_dvma_debug_fini(iommu_t *iommu_p);
243 extern void iommu_map_window(iommu_t *iommu_p,
[all …]
H A Dpci_chip.h77 extern uintptr_t pci_iommu_setup(iommu_t *iommu_p);
78 extern void pci_iommu_teardown(iommu_t *iommu_p);
79 extern void pci_iommu_config(iommu_t *iommu_p, uint64_t iommu_ctl,
82 extern dvma_context_t pci_iommu_get_dvma_context(iommu_t *iommu_p,
84 extern void pci_iommu_free_dvma_context(iommu_t *iommu_p, dvma_context_t ctx);
116 extern void pci_vmem_free(iommu_t *iommu_p, ddi_dma_impl_t *mp,
H A Dpci_dma.h239 iommu_t *iommu_p, ddi_dma_req_t *dmareq);
246 extern int pci_dvma_map_fast(iommu_t *iommu_p, ddi_dma_impl_t *mp);
248 iommu_t *iommu_p);
249 extern void pci_dvma_unmap(iommu_t *iommu_p, ddi_dma_impl_t *mp);
260 extern void pci_vmem_do_free(iommu_t *iommu_p, void *base_addr, size_t npages,