Home
last modified time | relevance | path

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

/titanic_41/usr/src/uts/sun4u/io/pci/
H A Dpci_iommu.c46 static void iommu_tlb_flushall(iommu_t *iommu_p);
47 static void iommu_preserve_tsb(iommu_t *iommu_p);
53 iommu_t *iommu_p; in iommu_create() local
67 iommu_p = (iommu_t *)kmem_zalloc(sizeof (iommu_t), KM_SLEEP); in iommu_create()
68 pci_p->pci_iommu_p = iommu_p; in iommu_create()
69 iommu_p->iommu_pci_p = pci_p; in iommu_create()
70 iommu_p->iommu_inst = ddi_get_instance(dip); in iommu_create()
75 iommu_p->iommu_dvma_end = pci_iommu_dvma_end; in iommu_create()
76 a = pci_iommu_setup(iommu_p); in iommu_create()
81 iommu_p->iommu_ctrl_reg = in iommu_create()
[all …]
H A Dpci_dma.c357 pci_dma_lmts2hdl(dev_info_t *dip, dev_info_t *rdip, iommu_t *iommu_p, in pci_dma_lmts2hdl() argument
362 uint64_t syslo = iommu_p->iommu_dvma_base; in pci_dma_lmts2hdl()
363 uint64_t syshi = iommu_p->iommu_dvma_end; in pci_dma_lmts2hdl()
364 uint64_t fasthi = iommu_p->iommu_dvma_fast_end; in pci_dma_lmts2hdl()
427 iommu_t *iommu_p = pci_p->pci_iommu_p; in pci_dma_attr2hdl() local
458 syslo = iommu_p->iommu_dma_bypass_base; in pci_dma_attr2hdl()
459 syshi = iommu_p->iommu_dma_bypass_end; in pci_dma_attr2hdl()
470 syslo = iommu_p->iommu_dvma_base; in pci_dma_attr2hdl()
471 syshi = iommu_p->iommu_dvma_end; in pci_dma_attr2hdl()
501 syshi = iommu_p->iommu_dvma_fast_end; in pci_dma_attr2hdl()
[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()
112 iommu_p->iommu_tsb_vaddr[pg_index + i] = tte | IOMMU_PTOB(pfn); 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()
207 if ((long)atomic_add_long_nv(&iommu_p->iommu_dvma_reserve, in pci_fdvma_reserve()
209 atomic_add_long(&iommu_p->iommu_dvma_reserve, npages); in pci_fdvma_reserve()
224 dvma_pg = IOMMU_BTOP((ulong_t)vmem_xalloc(iommu_p->iommu_dvma_map, in pci_fdvma_reserve()
229 atomic_add_long(&iommu_p->iommu_dvma_reserve, npages); in pci_fdvma_reserve()
[all …]
H A Dpcisch.c79 static void tm_vmem_free(ddi_dma_impl_t *mp, iommu_t *iommu_p,
1011 pci_iommu_get_dvma_context(iommu_t *iommu_p, dvma_addr_t dvma_pg_index) in pci_iommu_get_dvma_context() argument
1017 uint64_t *bucket_ptr = iommu_p->iommu_ctx_bitmap + bucket_no; in pci_iommu_get_dvma_context()
1040 DEBUG3(DBG_DMA_MAP, iommu_p->iommu_pci_p->pci_dip, in pci_iommu_get_dvma_context()
1047 pci_iommu_free_dvma_context(iommu_t *iommu_p, dvma_context_t ctx) in pci_iommu_free_dvma_context() argument
1052 uint64_t *bucket_ptr = iommu_p->iommu_ctx_bitmap + bucket_no; in pci_iommu_free_dvma_context()
1054 DEBUG1(DBG_DMA_MAP, iommu_p->iommu_pci_p->pci_dip, in pci_iommu_free_dvma_context()
1184 pci_iommu_setup(iommu_t *iommu_p) in pci_iommu_setup() argument
1190 pci_t *pci_p = iommu_p->iommu_pci_p; in pci_iommu_setup()
1199 iommu_p->iommu_mtlb_nreq = 0; in pci_iommu_setup()
[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.c1079 pci_iommu_get_dvma_context(iommu_t *iommu_p, dvma_addr_t dvma_pg_index) in pci_iommu_get_dvma_context() argument
1087 pci_iommu_free_dvma_context(iommu_t *iommu_p, dvma_context_t ctx) in pci_iommu_free_dvma_context() argument
1093 pci_iommu_config(iommu_t *iommu_p, uint64_t iommu_ctl, uint64_t cfgpa) in pci_iommu_config() argument
1096 get_pbm_reg_base(iommu_p->iommu_pci_p); in pci_iommu_config()
1099 volatile uint64_t *iommu_ctl_p = iommu_p->iommu_ctrl_reg; in pci_iommu_config()
1100 volatile uint64_t tsb_bar_val = iommu_p->iommu_tsb_paddr; in pci_iommu_config()
1101 volatile uint64_t *tsb_bar_p = iommu_p->iommu_tsb_base_addr_reg; in pci_iommu_config()
1103 DEBUG2(DBG_ATTACH, iommu_p->iommu_pci_p->pci_dip, in pci_iommu_config()
1106 DEBUG2(DBG_ATTACH|DBG_CONT, iommu_p->iommu_pci_p->pci_dip, in pci_iommu_config()
1109 DEBUG2(DBG_ATTACH|DBG_CONT, iommu_p->iommu_pci_p->pci_dip, in pci_iommu_config()
[all …]
H A Dpci.c573 iommu_t *iommu_p = pci_p->pci_iommu_p; in pci_dma_setup() local
581 if (!(mp = pci_dma_lmts2hdl(dip, rdip, iommu_p, dmareq))) in pci_dma_setup()
596 if (!pci_dvma_map_fast(iommu_p, mp)) in pci_dma_setup()
603 if (ret = pci_dvma_map(mp, dmareq, iommu_p)) in pci_dma_setup()
697 iommu_t *iommu_p = pci_p->pci_iommu_p; in pci_dma_bindhdl() local
721 if (!pci_dvma_map_fast(iommu_p, mp)) in pci_dma_bindhdl()
727 if (ret = pci_dvma_map(mp, dmareq, iommu_p)) in pci_dma_bindhdl()
771 iommu_t *iommu_p = pci_p->pci_iommu_p; in pci_dma_unbindhdl() local
786 pci_dvma_unmap(iommu_p, mp); in pci_dma_unbindhdl()
798 if (iommu_p->iommu_dvma_clid != 0) { in pci_dma_unbindhdl()
[all …]
/titanic_41/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
210 *(iommu_p)->iommu_flush_page_reg = IOMMU_PTOB(dvma_pg)
211 #define IOMMU_UNLOAD_TTE(iommu_p, pg_index) \ argument
212 (iommu_p)->iommu_tsb_vaddr[pg_index] = COMMON_IOMMU_INVALID_TTE
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
[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,