Home | History | Annotate | Download | only in dev

Lines Matching defs:pbm

147 	struct schizo_pbm *pbm;
183 pbm = kmem_zalloc(sizeof(*pbm), KM_SLEEP);
185 sc->sc_pbm = pbm;
187 pbm->sp_sc = sc;
188 pbm->sp_regt = sc->sc_bustag;
191 pbm->sp_bus_a = 1;
193 pbm->sp_bus_a = 0;
200 BUS_SPACE_MAP_LINEAR, &pbm->sp_intrh)) {
202 kmem_free(pbm, sizeof(*pbm));
213 BUS_SPACE_MAP_LINEAR, &pbm->sp_ichiph)) {
215 kmem_free(pbm, sizeof(*pbm));
221 &pbm->sp_nrange, (void **)&pbm->sp_range))
230 sc->sc_ign, pbm->sp_bus_a ? 'A' : 'B', busranges[0], busranges[1]);
233 if (bus_space_subregion(pbm->sp_regt, sc->sc_ctrlh,
234 pbm->sp_bus_a ? offsetof(struct schizo_regs, pbm_a) :
237 &pbm->sp_regh)) {
238 panic("schizo: unable to create PBM handle");
241 is = &pbm->sp_is;
242 pbm->sp_sb.sb_is = is;
247 vaddr_t va = (vaddr_t)&pbm->sp_flush[0x40];
254 is->is_sb[0] = &pbm->sp_sb;
257 bus_space_subregion(pbm->sp_regt, pbm->sp_regh,
265 schizo_init_iommu(sc, pbm);
267 pbm->sp_memt = schizo_alloc_mem_tag(pbm);
268 pbm->sp_iot = schizo_alloc_io_tag(pbm);
269 pbm->sp_cfgt = schizo_alloc_config_tag(pbm);
270 pbm->sp_dmat = schizo_alloc_dma_tag(pbm);
271 pbm->sp_flags = (pbm->sp_memt ? PCI_FLAGS_MEM_OKAY : 0) |
272 (pbm->sp_iot ? PCI_FLAGS_IO_OKAY : 0);
274 if (bus_space_map(pbm->sp_cfgt, 0, 0x1000000, 0, &pbm->sp_cfgh))
277 pbm->sp_pc = schizo_alloc_chipset(pbm, sc->sc_node,
279 pbm->sp_pc->spc_busmax = busranges[1];
280 pbm->sp_pc->spc_busnode = kmem_zalloc(sizeof(*pbm->sp_pc->spc_busnode),
285 pba.pba_pc = pbm->sp_pc;
286 pba.pba_flags = pbm->sp_flags;
287 pba.pba_dmat = pbm->sp_dmat;
289 pba.pba_memt = pbm->sp_memt;
290 pba.pba_iot = pbm->sp_iot;
294 schizo_pbm_write(pbm, SCZ_PCI_INTR_RETRY, 5);
297 schizo_pbm_write(pbm, SCZ_PCI_CTRL, schizo_pbm_read(pbm, SCZ_PCI_CTRL));
298 schizo_pbm_write(pbm, SCZ_PCI_AFSR, schizo_pbm_read(pbm, SCZ_PCI_AFSR));
299 schizo_cfg_write(pbm, PCI_COMMAND_STATUS_REG,
300 schizo_cfg_read(pbm, PCI_COMMAND_STATUS_REG));
302 reg = schizo_pbm_read(pbm, SCZ_PCI_CTRL);
318 schizo_pbm_write(pbm, SCZ_PCI_CTRL, reg);
320 reg = schizo_pbm_read(pbm, SCZ_PCI_DIAG);
323 schizo_pbm_write(pbm, SCZ_PCI_DIAG, reg);
328 if (pbm->sp_bus_a)
339 schizo_set_intr(sc, pbm, PIL_HIGH, schizo_pci_error,
340 pbm, SCZ_PCIERR_A_INO, "pci_a");
342 schizo_set_intr(sc, pbm, PIL_HIGH, schizo_pci_error,
343 pbm, SCZ_PCIERR_B_INO, "pci_b");
345 schizo_set_intr(sc, pbm, PIL_HIGH, schizo_ue, sc, SCZ_UE_INO,
348 schizo_set_intr(sc, pbm, PIL_HIGH, schizo_ce, sc, SCZ_CE_INO,
351 schizo_set_intr(sc, pbm, PIL_HIGH, schizo_safari_error, sc,
365 schizo_pbm_write(pbm, SCZ_PCI_IOCACHE_CSR, iocache_csr);
467 schizo_init_iommu(struct schizo_softc *sc, struct schizo_pbm *pbm)
469 struct iommu_state *is = &pbm->sp_is;
475 is->is_bustag = pbm->sp_regt;
476 bus_space_subregion(is->is_bustag, pbm->sp_regh,
574 schizo_set_intr(struct schizo_softc *sc, struct schizo_pbm *pbm, int ipl,
594 intrregs = (uintptr_t)bus_space_vaddr(pbm->sp_regt, pbm->sp_intrh);
599 ih->ih_number = INTVEC(schizo_pbm_read(pbm, mapoff));
604 schizo_pbm_write(pbm, mapoff,
606 schizo_pbm_write(pbm, clroff, 0);
628 schizo_alloc_bus_tag(struct schizo_pbm *pbm, const char *name, int type)
630 struct schizo_softc *sc = pbm->sp_sc;
634 bt->cookie = pbm;
644 schizo_alloc_dma_tag(struct schizo_pbm *pbm)
646 struct schizo_softc *sc = pbm->sp_sc;
650 dt->_cookie = pbm;
671 schizo_alloc_chipset(struct schizo_pbm *pbm, int node, pci_chipset_tag_t pc)
677 npc->cookie = pbm;
692 struct schizo_pbm *pbm = t->_cookie;
698 (*dmamp)->_dm_cookie = &pbm->sp_sb;
703 get_schizorange(struct schizo_pbm *pbm, int ss)
707 for (i = 0; i < pbm->sp_nrange; i++) {
708 if (((pbm->sp_range[i].cspace >> 24) & 0x03) == ss)
709 return (&pbm->sp_range[i]);
720 struct schizo_pbm *pbm = t->cookie;
721 struct schizo_softc *sc = pbm->sp_sc;
740 sr = get_schizorange(pbm, ss);
759 struct schizo_pbm *pbm = t->cookie;
760 struct schizo_softc *sc = pbm->sp_sc;
775 sr = get_schizorange(pbm, ss);
795 struct schizo_pbm *pbm = pa->pa_pc->cookie;
796 struct schizo_softc *sc = pbm->sp_sc;
808 struct schizo_pbm *pbm = t->cookie;
839 intrregs = (uintptr_t)bus_space_vaddr(pbm->sp_regt, pbm->sp_intrh);
844 ino |= schizo_pbm_readintr(pbm, mapoff) & INTMAP_IGN;
872 imap = schizo_pbm_readintr(pbm, mapoff);
880 schizo_pbm_writeintr(pbm, mapoff, imap);
881 imap = schizo_pbm_readintr(pbm, mapoff);
888 schizo_pbm_writeintr(pbm, clroff, 0);
899 struct schizo_pbm *pbm = (struct schizo_pbm *)pc->cookie;
902 cookie = bus_intr_establish(pbm->sp_memt, ih, level, func, arg);
914 struct schizo_pbm *pbm;
936 pbm = sc->sc_pbm;
938 pbm->sp_bus_a ? 'A' : 'B');
977 if ((pbm->sp_bus_a &&
979 (!pbm->sp_bus_a &&
982 reg = schizo_pbm_read(pbm, r->offset + i);
996 reg = schizo_pbm_read(pbm, r->offset + i);
1015 reg = schizo_pbm_read(pbm, r->offset + i);
1029 reg = schizo_pbm_read(pbm, r->offset + i);
1048 reg = schizo_pbm_readintr(pbm, r->offset + i);
1065 reg = tomatillo_pbm_readichip(pbm,