Home | History | Annotate | Download | only in ic

Lines Matching refs:sc_c

111 	if ((sc->sc_c.features & SF_CHIP_RAM) == 0)
112 bus_dmamap_sync(sc->sc_c.sc_dmat, sc->sc_c.sc_scriptdma, 0,
121 if (sc->sc_c.features & SF_CHIP_RAM) {
122 return bus_space_read_4(sc->sc_c.sc_ramt, sc->sc_c.sc_ramh,
125 return le32toh(sc->sc_c.sc_script[offset]);
135 if (sc->sc_c.features & SF_CHIP_RAM) {
136 bus_space_write_4(sc->sc_c.sc_ramt, sc->sc_c.sc_ramh,
139 sc->sc_c.sc_script[offset] = htole32(val);
148 if (siop_common_attach(&sc->sc_c) != 0 )
157 aprint_debug_dev(sc->sc_c.sc_dev,
160 (uint32_t)sc->sc_c.sc_scriptaddr, sc->sc_c.sc_script);
163 sc->sc_c.sc_adapt.adapt_max_periph = ESIOP_NTAG;
164 sc->sc_c.sc_adapt.adapt_request = esiop_scsipi_request;
172 aprint_error_dev(sc->sc_c.sc_dev,
180 aprint_error_dev(sc->sc_c.sc_dev,
190 siop_resetbus(&sc->sc_c);
199 config_found(sc->sc_c.sc_dev, &sc->sc_c.sc_chan, scsiprint, CFARGS_NONE);
209 siop_common_reset(&sc->sc_c);
217 sc->sc_free_offset * sizeof(uint32_t) + sc->sc_c.sc_scriptaddr;
221 sc->sc_semoffset * sizeof(uint32_t) + sc->sc_c.sc_scriptaddr;
228 sc->sc_free_offset += sc->sc_c.sc_chan.chan_ntargets;
230 if (sc->sc_c.features & SF_CHIP_RAM) {
231 bus_space_write_region_4(sc->sc_c.sc_ramt, sc->sc_c.sc_ramh, 0,
235 bus_space_write_4(sc->sc_c.sc_ramt, sc->sc_c.sc_ramh,
240 bus_space_write_4(sc->sc_c.sc_ramt, sc->sc_c.sc_ramh,
245 bus_space_write_4(sc->sc_c.sc_ramt, sc->sc_c.sc_ramh,
249 bus_space_write_4(sc->sc_c.sc_ramt, sc->sc_c.sc_ramh,
253 if (sc->sc_c.features & SF_CHIP_LED0) {
254 bus_space_write_region_4(sc->sc_c.sc_ramt,
255 sc->sc_c.sc_ramh,
258 bus_space_write_region_4(sc->sc_c.sc_ramt,
259 sc->sc_c.sc_ramh,
262 bus_space_write_region_4(sc->sc_c.sc_ramt,
263 sc->sc_c.sc_ramh,
269 sc->sc_c.sc_script[j] = htole32(esiop_script[j]);
272 sc->sc_c.sc_script[E_tlq_offset_Used[j]] =
276 sc->sc_c.sc_script[E_saved_offset_offset_Used[j]] =
280 sc->sc_c.sc_script[E_abs_msgin2_Used[j]] =
284 sc->sc_c.sc_script[E_abs_sem_Used[j]] =
288 if (sc->sc_c.features & SF_CHIP_LED0) {
290 sc->sc_c.sc_script[
294 sc->sc_c.sc_script[
298 sc->sc_c.sc_script[
304 addr = sc->sc_c.sc_scriptaddr + sc->sc_shedoffset * sizeof(uint32_t);
311 bus_space_write_1(sc->sc_c.sc_rt, sc->sc_c.sc_rh, SIOP_SCRATCHE, 0);
312 bus_space_write_4(sc->sc_c.sc_rt, sc->sc_c.sc_rh, SIOP_SCRATCHD, addr);
328 bus_dmamap_sync(sc->sc_c.sc_dmat, sc->sc_done_map,
333 bus_space_write_1(sc->sc_c.sc_rt, sc->sc_c.sc_rh, SIOP_SCRATCHE + 2, 0);
334 bus_space_write_4(sc->sc_c.sc_rt, sc->sc_c.sc_rh, SIOP_SCRATCHF, addr);
345 bus_space_write_4(sc->sc_c.sc_rt, sc->sc_c.sc_rh, SIOP_SCRATCHC, 0);
348 sc->sc_c.sc_scriptaddr;
363 device_xname(sc->sc_c.sc_dev), sc->sc_target_table_offset,
368 for (i = 0; i < sc->sc_c.sc_chan.chan_ntargets; i++) {
369 if (sc->sc_c.targets[i])
373 if ((sc->sc_c.features & SF_CHIP_RAM) == 0) {
374 bus_dmamap_sync(sc->sc_c.sc_dmat, sc->sc_c.sc_scriptdma, 0,
377 bus_space_write_4(sc->sc_c.sc_rt, sc->sc_c.sc_rh, SIOP_DSP,
378 sc->sc_c.sc_scriptaddr + Ent_reselect);
385 sc->sc_c.sc_scriptaddr + ent); \
386 bus_space_write_4(sc->sc_c.sc_rt, sc->sc_c.sc_rh, \
387 SIOP_DSP, sc->sc_c.sc_scriptaddr + ent); \
391 bus_space_write_4(sc->sc_c.sc_rt, sc->sc_c.sc_rh, \
392 SIOP_DSP, sc->sc_c.sc_scriptaddr + ent); \
415 istat = bus_space_read_1(sc->sc_c.sc_rt, sc->sc_c.sc_rh, SIOP_ISTAT);
423 bus_space_write_1(sc->sc_c.sc_rt, sc->sc_c.sc_rh,
431 bus_space_write_1(sc->sc_c.sc_rt, sc->sc_c.sc_rh,
436 tflags = bus_space_read_4(sc->sc_c.sc_rt, sc->sc_c.sc_rh,
441 bus_space_read_4(sc->sc_c.sc_rt, sc->sc_c.sc_rh, SIOP_DSA),
442 (u_long)(bus_space_read_4(sc->sc_c.sc_rt, sc->sc_c.sc_rh,
444 sc->sc_c.sc_scriptaddr));
447 if (target > sc->sc_c.sc_chan.chan_ntargets) target = -1;
449 if (lun > sc->sc_c.sc_chan.chan_nluns) lun = -1;
453 esiop_target = (struct esiop_target *)sc->sc_c.targets[target];
491 dstat = bus_space_read_1(sc->sc_c.sc_rt, sc->sc_c.sc_rh,
496 siop_clearfifo(&sc->sc_c);
501 (int)(bus_space_read_4(sc->sc_c.sc_rt,
502 sc->sc_c.sc_rh, SIOP_DSP) -
503 sc->sc_c.sc_scriptaddr),
504 bus_space_read_4(sc->sc_c.sc_rt, sc->sc_c.sc_rh,
508 bus_space_write_1(sc->sc_c.sc_rt,
509 sc->sc_c.sc_rh, SIOP_DCNTL,
510 bus_space_read_1(sc->sc_c.sc_rt,
511 sc->sc_c.sc_rh, SIOP_DCNTL) | DCNTL_STD);
517 printf("%s: DMA IRQ:", device_xname(sc->sc_c.sc_dev));
527 siop_clearfifo(&sc->sc_c);
529 (int)(bus_space_read_4(sc->sc_c.sc_rt, sc->sc_c.sc_rh,
530 SIOP_DSP) - sc->sc_c.sc_scriptaddr),
531 bus_space_read_4(sc->sc_c.sc_rt, sc->sc_c.sc_rh, SIOP_DSA));
548 sist = bus_space_read_2(sc->sc_c.sc_rt, sc->sc_c.sc_rh,
550 sstat1 = bus_space_read_1(sc->sc_c.sc_rt, sc->sc_c.sc_rh,
555 bus_space_read_4(sc->sc_c.sc_rt, sc->sc_c.sc_rh, SIOP_DSA),
556 (u_long)(bus_space_read_4(sc->sc_c.sc_rt, sc->sc_c.sc_rh,
558 sc->sc_c.sc_scriptaddr));
569 printf("%s:", device_xname(sc->sc_c.sc_dev));
575 bus_space_read_4(sc->sc_c.sc_rt, sc->sc_c.sc_rh,
577 (u_long)(bus_space_read_4(sc->sc_c.sc_rt,
578 sc->sc_c.sc_rh, SIOP_DSP) -
579 sc->sc_c.sc_scriptaddr));
581 bus_space_read_1(sc->sc_c.sc_rt, sc->sc_c.sc_rh,
583 bus_space_read_1(sc->sc_c.sc_rt, sc->sc_c.sc_rh,
585 bus_space_read_1(sc->sc_c.sc_rt, sc->sc_c.sc_rh,
587 bus_space_read_1(sc->sc_c.sc_rt, sc->sc_c.sc_rh,
596 dstat = bus_space_read_1(sc->sc_c.sc_rt,
597 sc->sc_c.sc_rh, SIOP_DSTAT);
602 bus_space_write_4(sc->sc_c.sc_rt,
603 sc->sc_c.sc_rh,
605 scratchc0 = bus_space_read_1(sc->sc_c.sc_rt,
606 sc->sc_c.sc_rh, SIOP_SCRATCHC);
620 siop_clearfifo(&sc->sc_c);
633 siop_clearfifo(&sc->sc_c);
634 bus_space_write_1(sc->sc_c.sc_rt,
635 sc->sc_c.sc_rh, SIOP_SCRATCHC,
640 aprint_error_dev(sc->sc_c.sc_dev,
644 aprint_error_dev(sc->sc_c.sc_dev,
654 printf("%s:", device_xname(sc->sc_c.sc_dev));
665 slot = bus_space_read_1(sc->sc_c.sc_rt,
666 sc->sc_c.sc_rh, SIOP_SCRATCHE);
679 addr = bus_space_read_4(sc->sc_c.sc_rt,
680 sc->sc_c.sc_rh, SIOP_SCRATCHD);
682 bus_space_write_1(sc->sc_c.sc_rt,
683 sc->sc_c.sc_rh, SIOP_SCRATCHE, slot + 1);
686 bus_space_write_1(sc->sc_c.sc_rt,
687 sc->sc_c.sc_rh, SIOP_SCRATCHE, 0);
688 addr = sc->sc_c.sc_scriptaddr +
691 bus_space_write_4(sc->sc_c.sc_rt, sc->sc_c.sc_rh,
704 device_xname(sc->sc_c.sc_dev), target,
705 bus_space_read_1(sc->sc_c.sc_rt,
706 sc->sc_c.sc_rh, SIOP_SDID), slot);
720 aprint_error_dev(sc->sc_c.sc_dev,
726 if (siop_modechange(&sc->sc_c) == 0 || need_reset == 1)
739 bus_space_write_4(sc->sc_c.sc_rt, sc->sc_c.sc_rh,
741 bus_space_read_4(sc->sc_c.sc_rt, sc->sc_c.sc_rh,
746 aprint_error_dev(sc->sc_c.sc_dev,
749 bus_space_read_1(sc->sc_c.sc_rt, sc->sc_c.sc_rh,
751 bus_space_read_4(sc->sc_c.sc_rt, sc->sc_c.sc_rh, SIOP_DSA),
752 (int)(bus_space_read_4(sc->sc_c.sc_rt, sc->sc_c.sc_rh,
753 SIOP_DSP) - sc->sc_c.sc_scriptaddr));
764 siop_resetbus(&sc->sc_c);
771 irqcode = bus_space_read_4(sc->sc_c.sc_rt, sc->sc_c.sc_rh,
782 aprint_error_dev(sc->sc_c.sc_dev,
788 aprint_error_dev(sc->sc_c.sc_dev,
798 (int)(bus_space_read_4(sc->sc_c.sc_rt,
799 sc->sc_c.sc_rh, SIOP_DSP) -
800 sc->sc_c.sc_scriptaddr));
809 int msgin = bus_space_read_1(sc->sc_c.sc_rt,
810 sc->sc_c.sc_rh, SIOP_SFBR);
835 sc->sc_c.sc_dev));
847 siop_update_xfer_mode(&sc->sc_c,
856 sc->sc_c.st_minsync,
857 sc->sc_c.maxoff);
870 siop_update_xfer_mode(&sc->sc_c,
882 siop_update_xfer_mode(&sc->sc_c,
900 device_xname(sc->sc_c.sc_dev));
924 printf("%s: ", device_xname(sc->sc_c.sc_dev));
941 aprint_error_dev(sc->sc_c.sc_dev,
1058 offset = bus_space_read_1(sc->sc_c.sc_rt,
1059 sc->sc_c.sc_rh, SIOP_SCRATCHA + 1);
1078 device_xname(sc->sc_c.sc_dev));
1124 offset = bus_space_read_1(sc->sc_c.sc_rt, sc->sc_c.sc_rh,
1169 device_xname(sc->sc_c.sc_dev),
1193 bus_dmamap_sync(sc->sc_c.sc_dmat,
1198 bus_dmamap_unload(sc->sc_c.sc_dmat,
1201 bus_dmamap_unload(sc->sc_c.sc_dmat, esiop_cmd->cmd_c.dmamap_cmd);
1234 scsipi_channel_thaw(&sc->sc_c.sc_chan, 1);
1243 bus_dmamap_sync(sc->sc_c.sc_dmat, sc->sc_done_map,
1249 bus_dmamap_sync(sc->sc_c.sc_dmat, sc->sc_done_map,
1269 (struct esiop_target *)sc->sc_c.targets[target] : NULL;
1323 ((struct esiop_target *)sc->sc_c.targets[target])->esiop_lun[lun];
1368 (struct esiop_target*)sc->sc_c.targets[target];
1373 device_xname(sc->sc_c.sc_dev), target, lun, tag,
1378 aprint_error_dev(sc->sc_c.sc_dev,
1414 printf("%s: scsi bus reset\n", device_xname(sc->sc_c.sc_dev));
1421 scsipi_channel_thaw(&sc->sc_c.sc_chan, 1);
1428 for (target = 0; target < sc->sc_c.sc_chan.chan_ntargets; target++) {
1430 (struct esiop_target *)sc->sc_c.targets[target];
1438 ((sc->sc_c.targets[target]->flags & TARF_TAG) ?
1462 sc->sc_c.targets[target]->status = TARST_ASYNC;
1463 sc->sc_c.targets[target]->flags &= ~(TARF_ISWIDE | TARF_ISDT);
1464 sc->sc_c.targets[target]->period =
1465 sc->sc_c.targets[target]->offset = 0;
1466 siop_update_xfer_mode(&sc->sc_c, target);
1469 scsipi_async_event(&sc->sc_c.sc_chan, ASYNC_EVENT_RESET, NULL);
1519 esiop_target = (struct esiop_target*)sc->sc_c.targets[target];
1523 device_xname(sc->sc_c.sc_dev), target);
1525 sc->sc_c.targets[target] =
1528 if (sc->sc_c.targets[target] == NULL) {
1529 aprint_error_dev(sc->sc_c.sc_dev,
1541 (struct esiop_target*)sc->sc_c.targets[target];
1545 sc->sc_c.clock_div << 24; /* scntl3 */
1558 aprint_error_dev(sc->sc_c.sc_dev,
1570 esiop_cmd->cmd_c.siop_target = sc->sc_c.targets[target];
1576 error = bus_dmamap_load(sc->sc_c.sc_dmat,
1580 aprint_error_dev(sc->sc_c.sc_dev,
1592 error = bus_dmamap_load(sc->sc_c.sc_dmat,
1598 aprint_error_dev(sc->sc_c.sc_dev,
1604 bus_dmamap_unload(sc->sc_c.sc_dmat,
1612 bus_dmamap_sync(sc->sc_c.sc_dmat,
1618 bus_dmamap_sync(sc->sc_c.sc_dmat, esiop_cmd->cmd_c.dmamap_cmd,
1653 device_xname(sc->sc_c.sc_dev),
1654 sc->sc_c.sc_adapt.adapt_openings);
1662 if (sc->sc_c.targets[xm->xm_target] == NULL)
1666 sc->sc_c.targets[xm->xm_target]->flags |= TARF_TAG;
1669 lun < sc->sc_c.sc_chan.chan_nluns; lun++) {
1676 (sc->sc_c.features & SF_BUS_WIDE))
1677 sc->sc_c.targets[xm->xm_target]->flags |= TARF_WIDE;
1679 sc->sc_c.targets[xm->xm_target]->flags |= TARF_SYNC;
1681 (sc->sc_c.features & SF_CHIP_DT))
1682 sc->sc_c.targets[xm->xm_target]->flags |= TARF_DT;
1685 sc->sc_c.targets[xm->xm_target]->status == TARST_PROBING)
1686 sc->sc_c.targets[xm->xm_target]->status = TARST_ASYNC;
1717 scsipi_channel_freeze(&sc->sc_c.sc_chan, 1);
1732 esiop_target = (struct esiop_target*)sc->sc_c.targets[target];
1766 bus_dmamap_sync(sc->sc_c.sc_dmat,
1792 bus_space_write_1(sc->sc_c.sc_rt, sc->sc_c.sc_rh,
1827 bus_space_read_1(sc->sc_c.sc_rt, sc->sc_c.sc_rh, SIOP_ISTAT));
1829 (u_long)(bus_space_read_4(sc->sc_c.sc_rt, sc->sc_c.sc_rh, SIOP_DSP)
1830 - sc->sc_c.sc_scriptaddr),
1831 bus_space_read_4(sc->sc_c.sc_rt, sc->sc_c.sc_rh, SIOP_DSA));
1832 (void)bus_space_read_1(sc->sc_c.sc_rt, sc->sc_c.sc_rh, SIOP_CTEST2);
1834 bus_space_read_1(sc->sc_c.sc_rt, sc->sc_c.sc_rh, SIOP_ISTAT));
1841 siop_resetbus(&sc->sc_c);
1884 aprint_error_dev(sc->sc_c.sc_dev,
1894 aprint_error_dev(sc->sc_c.sc_dev,
1898 error = bus_dmamem_alloc(sc->sc_c.sc_dmat, PAGE_SIZE, PAGE_SIZE, 0,
1901 aprint_error_dev(sc->sc_c.sc_dev,
1906 error = bus_dmamem_map(sc->sc_c.sc_dmat, &seg, rseg, PAGE_SIZE,
1909 aprint_error_dev(sc->sc_c.sc_dev,
1914 error = bus_dmamap_create(sc->sc_c.sc_dmat, PAGE_SIZE, 1, PAGE_SIZE, 0,
1917 aprint_error_dev(sc->sc_c.sc_dev,
1921 error = bus_dmamap_load(sc->sc_c.sc_dmat, newcbd->xferdma,
1924 aprint_error_dev(sc->sc_c.sc_dev,
1929 aprint_debug_dev(sc->sc_c.sc_dev, "alloc newcdb at PHY addr 0x%lx\n",
1933 error = bus_dmamap_create(sc->sc_c.sc_dmat, MAXPHYS, SIOP_NSG,
1937 aprint_error_dev(sc->sc_c.sc_dev,
1942 error = bus_dmamap_create(sc->sc_c.sc_dmat,
1948 aprint_error_dev(sc->sc_c.sc_dev,
1952 newcbd->cmds[i].cmd_c.siop_sc = &sc->sc_c;
1988 sc->sc_c.sc_adapt.adapt_openings += SIOP_NCMDPB;
1992 bus_dmamap_unload(sc->sc_c.sc_dmat, newcbd->xferdma);
1993 bus_dmamap_destroy(sc->sc_c.sc_dmat, newcbd->xferdma);
1995 bus_dmamem_free(sc->sc_c.sc_dmat, &seg, rseg);
2016 aprint_error_dev(sc->sc_c.sc_dev,
2025 aprint_error_dev(sc->sc_c.sc_dev,
2029 error = bus_dmamem_alloc(sc->sc_c.sc_dmat, PAGE_SIZE, PAGE_SIZE, 0,
2032 aprint_error_dev(sc->sc_c.sc_dev,
2036 error = bus_dmamem_map(sc->sc_c.sc_dmat, &seg, rseg, PAGE_SIZE,
2039 aprint_error_dev(sc->sc_c.sc_dev,
2043 error = bus_dmamap_create(sc->sc_c.sc_dmat, PAGE_SIZE, 1, PAGE_SIZE, 0,
2046 aprint_error_dev(sc->sc_c.sc_dev,
2050 error = bus_dmamap_load(sc->sc_c.sc_dmat, newtblblk->blkmap,
2053 aprint_error_dev(sc->sc_c.sc_dev,
2059 device_xname(sc->sc_c.sc_dev),
2079 bus_dmamap_unload(sc->sc_c.sc_dmat, newtblblk->blkmap);
2080 bus_dmamap_destroy(sc->sc_c.sc_dmat, newtblblk->blkmap);
2082 bus_dmamem_free(sc->sc_c.sc_dmat, &seg, rseg);
2104 (struct esiop_target *)sc->sc_c.targets[target];
2136 device_xname(sc->sc_c.sc_dev), target, lun);
2138 if (sc->sc_c.targets[target] == NULL)
2140 esiop_target = (struct esiop_target *)sc->sc_c.targets[target];
2149 (struct esiop_target *)sc->sc_c.targets[target];
2155 sc->sc_free_offset += sc->sc_c.sc_chan.chan_nluns * 2 + 2;
2158 device_xname(sc->sc_c.sc_dev), target,
2169 sc->sc_c.sc_scriptaddr);
2171 for (lun = 0; lun < sc->sc_c.sc_chan.chan_nluns; lun++) {