ahc 121 arch/i386/isa/ahc_isa.c void aha2840_load_seeprom(struct ahc_softc *ahc);
ahc 336 arch/i386/isa/ahc_isa.c struct ahc_softc *ahc = (void *)self;
ahc 345 arch/i386/isa/ahc_isa.c ahc_set_name(ahc, ahc->sc_dev.dv_xname);
ahc 346 arch/i386/isa/ahc_isa.c ahc_set_unit(ahc, ahc->sc_dev.dv_unit);
ahc 349 arch/i386/isa/ahc_isa.c ahc->parent_dmat = ia->ia_dmat;
ahc 351 arch/i386/isa/ahc_isa.c ahc->chip = AHC_VL; /* We are a VL Bus Controller */
ahc 369 arch/i386/isa/ahc_isa.c ahc->channel = 'A';
ahc 370 arch/i386/isa/ahc_isa.c ahc->chip = AHC_AIC7770;
ahc 371 arch/i386/isa/ahc_isa.c ahc->features = AHC_AIC7770_FE;
ahc 372 arch/i386/isa/ahc_isa.c ahc->bugs |= AHC_TMODE_WIDEODD_BUG;
ahc 373 arch/i386/isa/ahc_isa.c ahc->flags |= AHC_PAGESCBS;
ahc 376 arch/i386/isa/ahc_isa.c ahc->tag = iot;
ahc 377 arch/i386/isa/ahc_isa.c ahc->bsh = ioh;
ahc 384 arch/i386/isa/ahc_isa.c printf( "%s: Using %s Interrupts\n", ahc_name(ahc),
ahc 385 arch/i386/isa/ahc_isa.c ahc->pause & IRQMS ? "Level Sensitive" : "Edge Triggered");
ahc 388 arch/i386/isa/ahc_isa.c if (ahc_reset(ahc, /*reinit*/FALSE) != 0)
ahc 392 arch/i386/isa/ahc_isa.c intdef = ahc_inb(ahc, INTDEF);
ahc 394 arch/i386/isa/ahc_isa.c ahc->flags |= AHC_EDGE_INTERRUPT;
ahc 400 arch/i386/isa/ahc_isa.c aha2840_load_seeprom(ahc);
ahc 415 arch/i386/isa/ahc_isa.c sblkctl_orig = ahc_inb(ahc, SBLKCTL);
ahc 417 arch/i386/isa/ahc_isa.c ahc_outb(ahc, SBLKCTL, sblkctl);
ahc 418 arch/i386/isa/ahc_isa.c sblkctl = ahc_inb(ahc, SBLKCTL);
ahc 426 arch/i386/isa/ahc_isa.c ahc_outb(ahc, SBLKCTL, sblkctl);
ahc 429 arch/i386/isa/ahc_isa.c ahc->flags |= AHC_PAGESCBS;
ahc 434 arch/i386/isa/ahc_isa.c printf("%s: %s", ahc_name(ahc), id_string);
ahc 439 arch/i386/isa/ahc_isa.c u_char hostconf = ahc_inb(ahc, HOSTCONF);
ahc 440 arch/i386/isa/ahc_isa.c ahc_outb(ahc, BUSSPD, hostconf & DFTHRSH);
ahc 441 arch/i386/isa/ahc_isa.c ahc_outb(ahc, BUSTIME, (hostconf << 2) & BOFF);
ahc 447 arch/i386/isa/ahc_isa.c if(ahc_init(ahc)){
ahc 448 arch/i386/isa/ahc_isa.c ahc_free(ahc);
ahc 455 arch/i386/isa/ahc_isa.c ahc_softc_insert(ahc);
ahc 460 arch/i386/isa/ahc_isa.c ahc_outb(ahc, BCTL, ENABLE);
ahc 466 arch/i386/isa/ahc_isa.c ahc->ih = isa_intr_establish(ia->ia_ic, irq,
ahc 467 arch/i386/isa/ahc_isa.c ahc->pause & IRQMS ? IST_LEVEL : IST_EDGE, IPL_BIO, ahc_platform_intr,
ahc 468 arch/i386/isa/ahc_isa.c ahc, ahc->sc_dev.dv_xname);
ahc 469 arch/i386/isa/ahc_isa.c if (ahc->ih == NULL) {
ahc 471 arch/i386/isa/ahc_isa.c ahc->sc_dev.dv_xname);
ahc 472 arch/i386/isa/ahc_isa.c ahc_free(ahc);
ahc 476 arch/i386/isa/ahc_isa.c ahc_intr_enable(ahc, TRUE);
ahc 479 arch/i386/isa/ahc_isa.c ahc_attach(ahc);
ahc 486 arch/i386/isa/ahc_isa.c aha2840_load_seeprom(struct ahc_softc *ahc)
ahc 494 arch/i386/isa/ahc_isa.c sd.sd_tag = ahc->tag;
ahc 495 arch/i386/isa/ahc_isa.c sd.sd_bsh = ahc->bsh;
ahc 509 arch/i386/isa/ahc_isa.c printf("%s: Reading SEEPROM...", ahc_name(ahc));
ahc 534 arch/i386/isa/ahc_isa.c printf("%s: No SEEPROM available\n", ahc_name(ahc));
ahc 535 arch/i386/isa/ahc_isa.c ahc->flags |= AHC_USEDEFAULTS;
ahc 542 arch/i386/isa/ahc_isa.c int max_targ = (ahc->features & AHC_WIDE) != 0 ? 16 : 8;
ahc 555 arch/i386/isa/ahc_isa.c ahc_outb(ahc, TARG_SCSIRATE + i, target_settings);
ahc 557 arch/i386/isa/ahc_isa.c ahc_outb(ahc, DISC_DSB, ~(discenable & 0xff));
ahc 558 arch/i386/isa/ahc_isa.c ahc_outb(ahc, DISC_DSB + 1, ~((discenable >> 8) & 0xff));
ahc 560 arch/i386/isa/ahc_isa.c ahc->our_id = sc.brtime_id & CFSCSIID;
ahc 562 arch/i386/isa/ahc_isa.c scsi_conf = (ahc->our_id & 0x7);
ahc 569 arch/i386/isa/ahc_isa.c ahc->flags |= AHC_EXTENDED_TRANS_A;
ahc 571 arch/i386/isa/ahc_isa.c ahc_outb(ahc, SCSICONF, scsi_conf);
ahc 574 arch/i386/isa/ahc_isa.c ahc->flags |= AHC_TERM_ENB_A;
ahc 144 dev/eisa/ahc_eisa.c struct ahc_softc *ahc = (void *)self;
ahc 157 dev/eisa/ahc_eisa.c ahc_set_name(ahc, ahc->sc_dev.dv_xname);
ahc 158 dev/eisa/ahc_eisa.c ahc_set_unit(ahc, ahc->sc_dev.dv_unit);
ahc 161 dev/eisa/ahc_eisa.c ahc->parent_dmat = ea->ea_dmat;
ahc 179 dev/eisa/ahc_eisa.c ahc->channel = 'A';
ahc 180 dev/eisa/ahc_eisa.c ahc->chip = AHC_AIC7770|AHC_EISA;
ahc 181 dev/eisa/ahc_eisa.c ahc->features = AHC_AIC7770_FE;
ahc 182 dev/eisa/ahc_eisa.c ahc->bugs |= AHC_TMODE_WIDEODD_BUG;
ahc 183 dev/eisa/ahc_eisa.c ahc->flags |= AHC_PAGESCBS;
ahc 185 dev/eisa/ahc_eisa.c if (ahc_reset(ahc, /*reinit*/FALSE) != 0)
ahc 189 dev/eisa/ahc_eisa.c intdef = ahc_inb(ahc, INTDEF);
ahc 191 dev/eisa/ahc_eisa.c ahc->flags |= AHC_EDGE_INTERRUPT;
ahc 195 dev/eisa/ahc_eisa.c ahc->sc_dev.dv_xname, irq);
ahc 205 dev/eisa/ahc_eisa.c ahc_name(ahc),
ahc 206 dev/eisa/ahc_eisa.c ahc->pause & IRQMS ?
ahc 216 dev/eisa/ahc_eisa.c biosctrl = ahc_inb(ahc, HA_274_BIOSCTRL);
ahc 217 dev/eisa/ahc_eisa.c scsiconf = ahc_inb(ahc, SCSICONF);
ahc 218 dev/eisa/ahc_eisa.c scsiconf1 = ahc_inb(ahc, SCSICONF + 1);
ahc 222 dev/eisa/ahc_eisa.c ahc->flags |= AHC_PRIMARY_CHANNEL;
ahc 225 dev/eisa/ahc_eisa.c ahc->flags |= AHC_USEDEFAULTS;
ahc 226 dev/eisa/ahc_eisa.c } else if ((ahc->features & AHC_WIDE) != 0) {
ahc 227 dev/eisa/ahc_eisa.c ahc->our_id = scsiconf1 & HWSCSIID;
ahc 229 dev/eisa/ahc_eisa.c ahc->flags |= AHC_TERM_ENB_A;
ahc 231 dev/eisa/ahc_eisa.c ahc->our_id = scsiconf & HSCSIID;
ahc 232 dev/eisa/ahc_eisa.c ahc->our_id_b = scsiconf1 & HSCSIID;
ahc 234 dev/eisa/ahc_eisa.c ahc->flags |= AHC_TERM_ENB_A;
ahc 236 dev/eisa/ahc_eisa.c ahc->flags |= AHC_TERM_ENB_B;
ahc 243 dev/eisa/ahc_eisa.c ahc->flags |= AHC_EXTENDED_TRANS_A|AHC_EXTENDED_TRANS_B;
ahc 258 dev/eisa/ahc_eisa.c sblkctl_orig = ahc_inb(ahc, SBLKCTL);
ahc 260 dev/eisa/ahc_eisa.c ahc_outb(ahc, SBLKCTL, sblkctl);
ahc 261 dev/eisa/ahc_eisa.c sblkctl = ahc_inb(ahc, SBLKCTL);
ahc 268 dev/eisa/ahc_eisa.c ahc_outb(ahc, SBLKCTL, sblkctl);
ahc 271 dev/eisa/ahc_eisa.c ahc->flags |= AHC_PAGESCBS;
ahc 275 dev/eisa/ahc_eisa.c printf("%s: %s", ahc_name(ahc), id_string);
ahc 280 dev/eisa/ahc_eisa.c u_char hostconf = ahc_inb(ahc, HOSTCONF);
ahc 281 dev/eisa/ahc_eisa.c ahc_outb(ahc, BUSSPD, hostconf & DFTHRSH);
ahc 282 dev/eisa/ahc_eisa.c ahc_outb(ahc, BUSTIME, (hostconf << 2) & BOFF);
ahc 288 dev/eisa/ahc_eisa.c if (ahc_init(ahc)) {
ahc 289 dev/eisa/ahc_eisa.c ahc_free(ahc);
ahc 296 dev/eisa/ahc_eisa.c ahc_softc_insert(ahc);
ahc 301 dev/eisa/ahc_eisa.c ahc_outb(ahc, BCTL, ENABLE);
ahc 308 dev/eisa/ahc_eisa.c ahc->ih = eisa_intr_establish(ec, ih,
ahc 309 dev/eisa/ahc_eisa.c ahc->pause & IRQMS ? IST_LEVEL : IST_EDGE, IPL_BIO,
ahc 310 dev/eisa/ahc_eisa.c ahc_platform_intr, ahc, ahc->sc_dev.dv_xname);
ahc 311 dev/eisa/ahc_eisa.c if (ahc->ih == NULL) {
ahc 313 dev/eisa/ahc_eisa.c ahc->sc_dev.dv_xname);
ahc 317 dev/eisa/ahc_eisa.c ahc_free(ahc);
ahc 321 dev/eisa/ahc_eisa.c printf("%s: interrupting at %s\n", ahc->sc_dev.dv_xname,
ahc 324 dev/eisa/ahc_eisa.c ahc_intr_enable(ahc, TRUE);
ahc 327 dev/eisa/ahc_eisa.c ahc_attach(ahc);
ahc 119 dev/ic/aic79xx_openbsd.h #define ahd_dmamap_sync(ahc, dma_tag, dmamap, offset, len, op) \
ahc 152 dev/ic/aic7xxx.c static void ahc_force_renegotiation(struct ahc_softc *ahc,
ahc 155 dev/ic/aic7xxx.c ahc_alloc_tstate(struct ahc_softc *ahc,
ahc 158 dev/ic/aic7xxx.c static void ahc_free_tstate(struct ahc_softc *ahc,
ahc 162 dev/ic/aic7xxx.c ahc_devlimited_syncrate(struct ahc_softc *ahc,
ahc 167 dev/ic/aic7xxx.c static void ahc_update_pending_scbs(struct ahc_softc *ahc);
ahc 168 dev/ic/aic7xxx.c static void ahc_fetch_devinfo(struct ahc_softc *ahc,
ahc 170 dev/ic/aic7xxx.c static void ahc_assert_atn(struct ahc_softc *ahc);
ahc 171 dev/ic/aic7xxx.c static void ahc_setup_initiator_msgout(struct ahc_softc *ahc,
ahc 174 dev/ic/aic7xxx.c static void ahc_build_transfer_msg(struct ahc_softc *ahc,
ahc 176 dev/ic/aic7xxx.c static void ahc_construct_sdtr(struct ahc_softc *ahc,
ahc 179 dev/ic/aic7xxx.c static void ahc_construct_wdtr(struct ahc_softc *ahc,
ahc 182 dev/ic/aic7xxx.c static void ahc_construct_ppr(struct ahc_softc *ahc,
ahc 186 dev/ic/aic7xxx.c static void ahc_clear_msg_state(struct ahc_softc *ahc);
ahc 187 dev/ic/aic7xxx.c static void ahc_handle_proto_violation(struct ahc_softc *ahc);
ahc 188 dev/ic/aic7xxx.c static void ahc_handle_message_phase(struct ahc_softc *ahc);
ahc 194 dev/ic/aic7xxx.c static int ahc_sent_msg(struct ahc_softc *ahc, ahc_msgtype type,
ahc 196 dev/ic/aic7xxx.c static int ahc_parse_msg(struct ahc_softc *ahc,
ahc 198 dev/ic/aic7xxx.c static int ahc_handle_msg_reject(struct ahc_softc *ahc,
ahc 200 dev/ic/aic7xxx.c static void ahc_handle_ign_wide_residue(struct ahc_softc *ahc,
ahc 202 dev/ic/aic7xxx.c static void ahc_reinitialize_dataptrs(struct ahc_softc *ahc);
ahc 203 dev/ic/aic7xxx.c static void ahc_handle_devreset(struct ahc_softc *ahc,
ahc 208 dev/ic/aic7xxx.c static void ahc_setup_target_msgin(struct ahc_softc *ahc,
ahc 214 dev/ic/aic7xxx.c static void ahc_build_free_scb_list(struct ahc_softc *ahc);
ahc 215 dev/ic/aic7xxx.c static int ahc_init_scbdata(struct ahc_softc *ahc);
ahc 216 dev/ic/aic7xxx.c static void ahc_fini_scbdata(struct ahc_softc *ahc);
ahc 217 dev/ic/aic7xxx.c static void ahc_qinfifo_requeue(struct ahc_softc *ahc,
ahc 220 dev/ic/aic7xxx.c static int ahc_qinfifo_count(struct ahc_softc *ahc);
ahc 221 dev/ic/aic7xxx.c static u_int ahc_rem_scb_from_disc_list(struct ahc_softc *ahc,
ahc 223 dev/ic/aic7xxx.c static void ahc_add_curscb_to_free_list(struct ahc_softc *ahc);
ahc 224 dev/ic/aic7xxx.c static u_int ahc_rem_wscb(struct ahc_softc *ahc,
ahc 226 dev/ic/aic7xxx.c static void ahc_reset_current_bus(struct ahc_softc *ahc);
ahc 228 dev/ic/aic7xxx.c static void ahc_dumpseq(struct ahc_softc *ahc);
ahc 230 dev/ic/aic7xxx.c static int ahc_loadseq(struct ahc_softc *ahc);
ahc 231 dev/ic/aic7xxx.c static int ahc_check_patch(struct ahc_softc *ahc,
ahc 234 dev/ic/aic7xxx.c static void ahc_download_instr(struct ahc_softc *ahc,
ahc 237 dev/ic/aic7xxx.c static void ahc_queue_lstate_event(struct ahc_softc *ahc,
ahc 242 dev/ic/aic7xxx.c static void ahc_update_scsiid(struct ahc_softc *ahc,
ahc 244 dev/ic/aic7xxx.c static int ahc_handle_target_cmd(struct ahc_softc *ahc,
ahc 270 dev/ic/aic7xxx.c ahc_restart(struct ahc_softc *ahc)
ahc 273 dev/ic/aic7xxx.c ahc_pause(ahc);
ahc 276 dev/ic/aic7xxx.c ahc_clear_msg_state(ahc);
ahc 278 dev/ic/aic7xxx.c ahc_outb(ahc, SCSISIGO, 0); /* De-assert BSY */
ahc 279 dev/ic/aic7xxx.c ahc_outb(ahc, MSG_OUT, MSG_NOOP); /* No message to send */
ahc 280 dev/ic/aic7xxx.c ahc_outb(ahc, SXFRCTL1, ahc_inb(ahc, SXFRCTL1) & ~BITBUCKET);
ahc 281 dev/ic/aic7xxx.c ahc_outb(ahc, LASTPHASE, P_BUSFREE);
ahc 282 dev/ic/aic7xxx.c ahc_outb(ahc, SAVED_SCSIID, 0xFF);
ahc 283 dev/ic/aic7xxx.c ahc_outb(ahc, SAVED_LUN, 0xFF);
ahc 292 dev/ic/aic7xxx.c ahc_outb(ahc, TQINPOS, ahc->tqinfifonext);
ahc 295 dev/ic/aic7xxx.c ahc_outb(ahc, SCSISEQ,
ahc 296 dev/ic/aic7xxx.c ahc_inb(ahc, SCSISEQ_TEMPLATE) & (ENSELI|ENRSELI|ENAUTOATNP));
ahc 297 dev/ic/aic7xxx.c if ((ahc->features & AHC_CMD_CHAN) != 0) {
ahc 299 dev/ic/aic7xxx.c ahc_outb(ahc, CCSCBCNT, 0);
ahc 300 dev/ic/aic7xxx.c ahc_outb(ahc, CCSGCTL, 0);
ahc 301 dev/ic/aic7xxx.c ahc_outb(ahc, CCSCBCTL, 0);
ahc 308 dev/ic/aic7xxx.c if ((ahc_inb(ahc, SEQ_FLAGS2) & SCB_DMA) != 0) {
ahc 309 dev/ic/aic7xxx.c ahc_add_curscb_to_free_list(ahc);
ahc 310 dev/ic/aic7xxx.c ahc_outb(ahc, SEQ_FLAGS2,
ahc 311 dev/ic/aic7xxx.c ahc_inb(ahc, SEQ_FLAGS2) & ~SCB_DMA);
ahc 319 dev/ic/aic7xxx.c ahc_outb(ahc, CLRINT, CLRSEQINT);
ahc 321 dev/ic/aic7xxx.c ahc_outb(ahc, MWI_RESIDUAL, 0);
ahc 322 dev/ic/aic7xxx.c ahc_outb(ahc, SEQCTL, ahc->seqctl);
ahc 323 dev/ic/aic7xxx.c ahc_outb(ahc, SEQADDR0, 0);
ahc 324 dev/ic/aic7xxx.c ahc_outb(ahc, SEQADDR1, 0);
ahc 326 dev/ic/aic7xxx.c ahc_unpause(ahc);
ahc 331 dev/ic/aic7xxx.c ahc_run_qoutfifo(struct ahc_softc *ahc)
ahc 336 dev/ic/aic7xxx.c ahc_sync_qoutfifo(ahc, BUS_DMASYNC_POSTREAD);
ahc 337 dev/ic/aic7xxx.c while (ahc->qoutfifo[ahc->qoutfifonext] != SCB_LIST_NULL) {
ahc 339 dev/ic/aic7xxx.c scb_index = ahc->qoutfifo[ahc->qoutfifonext];
ahc 341 dev/ic/aic7xxx.c if ((ahc->qoutfifonext & 0x1f) == 0x1f) {
ahc 351 dev/ic/aic7xxx.c modnext = ahc->qoutfifonext & ~0x1f;
ahc 352 dev/ic/aic7xxx.c nextp = (uint32_t *)(&ahc->qoutfifo[modnext]);
ahc 361 dev/ic/aic7xxx.c ahc_dmamap_sync(ahc, ahc->parent_dmat /*shared_data_dmat*/,
ahc 362 dev/ic/aic7xxx.c ahc->shared_data_dmamap,
ahc 367 dev/ic/aic7xxx.c if ((ahc->qoutfifonext & 0x03) == 0x03) {
ahc 377 dev/ic/aic7xxx.c modnext = ahc->qoutfifonext & ~0x3;
ahc 378 dev/ic/aic7xxx.c *((uint32_t *)(&ahc->qoutfifo[modnext])) = 0xFFFFFFFFUL;
ahc 379 dev/ic/aic7xxx.c ahc_dmamap_sync(ahc, ahc->parent_dmat /*shared_data_dmat*/,
ahc 380 dev/ic/aic7xxx.c ahc->shared_data_dmamap,
ahc 385 dev/ic/aic7xxx.c ahc->qoutfifonext++;
ahc 387 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scb_index);
ahc 391 dev/ic/aic7xxx.c ahc_name(ahc), scb_index,
ahc 392 dev/ic/aic7xxx.c (ahc->qoutfifonext - 1) & 0xFF);
ahc 400 dev/ic/aic7xxx.c ahc_update_residual(ahc, scb);
ahc 401 dev/ic/aic7xxx.c ahc_done(ahc, scb);
ahc 406 dev/ic/aic7xxx.c ahc_run_untagged_queues(struct ahc_softc *ahc)
ahc 411 dev/ic/aic7xxx.c ahc_run_untagged_queue(ahc, &ahc->untagged_queues[i]);
ahc 415 dev/ic/aic7xxx.c ahc_run_untagged_queue(struct ahc_softc *ahc, struct scb_tailq *queue)
ahc 419 dev/ic/aic7xxx.c if (ahc->untagged_queue_lock != 0)
ahc 425 dev/ic/aic7xxx.c ahc_queue_scb(ahc, scb);
ahc 431 dev/ic/aic7xxx.c ahc_handle_brkadrint(struct ahc_softc *ahc)
ahc 441 dev/ic/aic7xxx.c error = ahc_inb(ahc, ERROR);
ahc 445 dev/ic/aic7xxx.c ahc_name(ahc), ahc_hard_errors[i].errmesg,
ahc 446 dev/ic/aic7xxx.c ahc_inb(ahc, SEQADDR0) |
ahc 447 dev/ic/aic7xxx.c (ahc_inb(ahc, SEQADDR1) << 8));
ahc 449 dev/ic/aic7xxx.c ahc_dump_card_state(ahc);
ahc 453 dev/ic/aic7xxx.c ahc_abort_scbs(ahc, CAM_TARGET_WILDCARD, ALL_CHANNELS,
ahc 458 dev/ic/aic7xxx.c ahc_shutdown(ahc);
ahc 462 dev/ic/aic7xxx.c ahc_handle_seqint(struct ahc_softc *ahc, u_int intstat)
ahc 467 dev/ic/aic7xxx.c ahc_fetch_devinfo(ahc, &devinfo);
ahc 475 dev/ic/aic7xxx.c ahc_outb(ahc, CLRINT, CLRSEQINT);
ahc 487 dev/ic/aic7xxx.c ahc_outb(ahc, RETURN_1, 0);
ahc 498 dev/ic/aic7xxx.c scb_index = ahc_inb(ahc, SCB_TAG);
ahc 499 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scb_index);
ahc 501 dev/ic/aic7xxx.c ahc_print_devinfo(ahc, &devinfo);
ahc 505 dev/ic/aic7xxx.c ahc_dump_card_state(ahc);
ahc 525 dev/ic/aic7xxx.c ahc_freeze_devq(ahc, scb);
ahc 531 dev/ic/aic7xxx.c ahc_name(ahc));
ahc 543 dev/ic/aic7xxx.c ahc_print_path(ahc, scb);
ahc 552 dev/ic/aic7xxx.c targ_info = ahc_fetch_transinfo(ahc,
ahc 563 dev/ic/aic7xxx.c ahc_update_residual(ahc, scb);
ahc 566 dev/ic/aic7xxx.c ahc_print_path(ahc, scb);
ahc 570 dev/ic/aic7xxx.c sg->addr = ahc_get_sense_bufaddr(ahc, scb);
ahc 571 dev/ic/aic7xxx.c sg->len = ahc_get_sense_bufsize(ahc, scb);
ahc 607 dev/ic/aic7xxx.c ahc_update_neg_request(ahc, &devinfo,
ahc 622 dev/ic/aic7xxx.c bus_dmamap_sync(ahc->parent_dmat,
ahc 623 dev/ic/aic7xxx.c ahc->scb_data->sense_dmamap,
ahc 624 dev/ic/aic7xxx.c (scb - ahc->scb_data->scbarray) *
ahc 628 dev/ic/aic7xxx.c bus_dmamap_sync(ahc->parent_dmat,
ahc 632 dev/ic/aic7xxx.c bus_dmamap_sync(ahc->parent_dmat,
ahc 633 dev/ic/aic7xxx.c ahc->scb_data->hscb_dmamap,
ahc 634 dev/ic/aic7xxx.c 0, ahc->scb_data->hscb_dmamap->dm_mapsize,
ahc 639 dev/ic/aic7xxx.c ahc_qinfifo_requeue_tail(ahc, scb);
ahc 640 dev/ic/aic7xxx.c ahc_outb(ahc, RETURN_1, SEND_SENSE);
ahc 656 dev/ic/aic7xxx.c ahc_outb(ahc, SCSISEQ,
ahc 657 dev/ic/aic7xxx.c ahc_inb(ahc, SCSISEQ) & (ENSELI|ENRSELI|ENAUTOATNP));
ahc 661 dev/ic/aic7xxx.c ahc_name(ahc), devinfo.channel, devinfo.target);
ahc 664 dev/ic/aic7xxx.c ahc_inb(ahc, SAVED_SCSIID), ahc_inb(ahc, SAVED_LUN),
ahc 665 dev/ic/aic7xxx.c ahc_inb(ahc, ARG_1), ahc_inb(ahc, ACCUM));
ahc 668 dev/ic/aic7xxx.c ahc_inb(ahc, SEQ_FLAGS), ahc_inb(ahc, SCBPTR),
ahc 669 dev/ic/aic7xxx.c ahc_index_busy_tcl(ahc,
ahc 670 dev/ic/aic7xxx.c BUILD_TCL(ahc_inb(ahc, SAVED_SCSIID),
ahc 671 dev/ic/aic7xxx.c ahc_inb(ahc, SAVED_LUN))),
ahc 672 dev/ic/aic7xxx.c ahc_inb(ahc, SINDEX));
ahc 675 dev/ic/aic7xxx.c ahc_inb(ahc, SCSIID), ahc_inb(ahc, SCB_SCSIID),
ahc 676 dev/ic/aic7xxx.c ahc_inb(ahc, SCB_LUN), ahc_inb(ahc, SCB_TAG),
ahc 677 dev/ic/aic7xxx.c ahc_inb(ahc, SCB_CONTROL));
ahc 679 dev/ic/aic7xxx.c ahc_inb(ahc, SCSIBUSL), ahc_inb(ahc, SCSISIGI));
ahc 680 dev/ic/aic7xxx.c printf("SXFRCTL0 == 0x%x\n", ahc_inb(ahc, SXFRCTL0));
ahc 681 dev/ic/aic7xxx.c printf("SEQCTL == 0x%x\n", ahc_inb(ahc, SEQCTL));
ahc 682 dev/ic/aic7xxx.c ahc_dump_card_state(ahc);
ahc 683 dev/ic/aic7xxx.c ahc->msgout_buf[0] = MSG_BUS_DEV_RESET;
ahc 684 dev/ic/aic7xxx.c ahc->msgout_len = 1;
ahc 685 dev/ic/aic7xxx.c ahc->msgout_index = 0;
ahc 686 dev/ic/aic7xxx.c ahc->msg_type = MSG_TYPE_INITIATOR_MSGOUT;
ahc 687 dev/ic/aic7xxx.c ahc_outb(ahc, MSG_OUT, HOST_MSG);
ahc 688 dev/ic/aic7xxx.c ahc_assert_atn(ahc);
ahc 693 dev/ic/aic7xxx.c u_int rejbyte = ahc_inb(ahc, ACCUM);
ahc 696 dev/ic/aic7xxx.c ahc_name(ahc), devinfo.channel, devinfo.target, rejbyte);
ahc 701 dev/ic/aic7xxx.c ahc_handle_proto_violation(ahc);
ahc 705 dev/ic/aic7xxx.c ahc_handle_ign_wide_residue(ahc, &devinfo);
ahc 708 dev/ic/aic7xxx.c ahc_reinitialize_dataptrs(ahc);
ahc 714 dev/ic/aic7xxx.c lastphase = ahc_inb(ahc, LASTPHASE);
ahc 717 dev/ic/aic7xxx.c ahc_name(ahc), devinfo.channel, devinfo.target,
ahc 718 dev/ic/aic7xxx.c lastphase, ahc_inb(ahc, SCSISIGI));
ahc 725 dev/ic/aic7xxx.c lastphase = ahc_inb(ahc, LASTPHASE);
ahc 728 dev/ic/aic7xxx.c ahc_name(ahc), devinfo.channel, devinfo.target,
ahc 729 dev/ic/aic7xxx.c lastphase, ahc_inb(ahc, SCSISIGI));
ahc 730 dev/ic/aic7xxx.c ahc_restart(ahc);
ahc 746 dev/ic/aic7xxx.c if (ahc->msg_type == MSG_TYPE_NONE) {
ahc 751 dev/ic/aic7xxx.c bus_phase = ahc_inb(ahc, SCSISIGI) & PHASE_MASK;
ahc 761 dev/ic/aic7xxx.c ahc_clear_intstat(ahc);
ahc 762 dev/ic/aic7xxx.c ahc_restart(ahc);
ahc 766 dev/ic/aic7xxx.c scb_index = ahc_inb(ahc, SCB_TAG);
ahc 767 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scb_index);
ahc 774 dev/ic/aic7xxx.c ahc_setup_initiator_msgout(ahc,
ahc 778 dev/ic/aic7xxx.c ahc->msg_type =
ahc 780 dev/ic/aic7xxx.c ahc->msgin_index = 0;
ahc 786 dev/ic/aic7xxx.c ahc->msg_type =
ahc 788 dev/ic/aic7xxx.c ahc->msgin_index = 0;
ahc 791 dev/ic/aic7xxx.c ahc_setup_target_msgin(ahc,
ahc 798 dev/ic/aic7xxx.c ahc_handle_message_phase(ahc);
ahc 815 dev/ic/aic7xxx.c && (ahc_inb(ahc, SSTAT1) & SCSIPERR) != 0) {
ahc 817 dev/ic/aic7xxx.c if ((ahc->features & AHC_DT) == 0) {
ahc 826 dev/ic/aic7xxx.c curphase = ahc_inb(ahc, SCSISIGI) & PHASE_MASK;
ahc 827 dev/ic/aic7xxx.c ahc_outb(ahc, LASTPHASE, curphase);
ahc 828 dev/ic/aic7xxx.c ahc_outb(ahc, SCSISIGO, curphase);
ahc 830 dev/ic/aic7xxx.c if ((ahc_inb(ahc, SCSISIGI) & (CDI|MSGI)) == 0) {
ahc 839 dev/ic/aic7xxx.c ahc_outb(ahc, SXFRCTL1,
ahc 840 dev/ic/aic7xxx.c ahc_inb(ahc, SXFRCTL1) | BITBUCKET);
ahc 843 dev/ic/aic7xxx.c if ((ahc_inb(ahc, SCSISIGI)
ahc 848 dev/ic/aic7xxx.c ahc_outb(ahc, SXFRCTL1,
ahc 849 dev/ic/aic7xxx.c ahc_inb(ahc, SXFRCTL1) & ~BITBUCKET);
ahc 854 dev/ic/aic7xxx.c ahc_print_devinfo(ahc, &devinfo);
ahc 857 dev/ic/aic7xxx.c scb_index = ahc_inb(ahc, SCB_TAG);
ahc 858 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scb_index);
ahc 862 dev/ic/aic7xxx.c ahc_reset_channel(ahc, devinfo.channel,
ahc 866 dev/ic/aic7xxx.c ahc_inb(ahc, SCSIDATL);
ahc 881 dev/ic/aic7xxx.c u_int scbindex = ahc_inb(ahc, SCB_TAG);
ahc 882 dev/ic/aic7xxx.c u_int lastphase = ahc_inb(ahc, LASTPHASE);
ahc 885 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scbindex);
ahc 890 dev/ic/aic7xxx.c ahc_print_path(ahc, scb);
ahc 896 dev/ic/aic7xxx.c ahc_print_path(ahc, scb);
ahc 898 dev/ic/aic7xxx.c ahc_inb(ahc, SEQ_FLAGS) & DPHASE ? "Have" : "Haven't",
ahc 917 dev/ic/aic7xxx.c ahc_freeze_devq(ahc, scb);
ahc 926 dev/ic/aic7xxx.c if ((ahc->features & AHC_ULTRA2) != 0) {
ahc 931 dev/ic/aic7xxx.c ahc_outb(ahc, SXFRCTL0,
ahc 932 dev/ic/aic7xxx.c ahc_inb(ahc, SXFRCTL0) | CLRSTCNT|CLRCHN);
ahc 933 dev/ic/aic7xxx.c ahc_outb(ahc, SXFRCTL0,
ahc 934 dev/ic/aic7xxx.c ahc_inb(ahc, SXFRCTL0) | CLRSTCNT|CLRCHN);
ahc 936 dev/ic/aic7xxx.c if ((ahc->flags & AHC_39BIT_ADDRESSING) != 0) {
ahc 940 dev/ic/aic7xxx.c dscommand1 = ahc_inb(ahc, DSCOMMAND1);
ahc 941 dev/ic/aic7xxx.c ahc_outb(ahc, DSCOMMAND1, dscommand1 | HADDLDSEL0);
ahc 942 dev/ic/aic7xxx.c ahc_outb(ahc, HADDR, 0);
ahc 943 dev/ic/aic7xxx.c ahc_outb(ahc, DSCOMMAND1, dscommand1);
ahc 952 dev/ic/aic7xxx.c ahc_name(ahc), devinfo.channel, devinfo.target,
ahc 954 dev/ic/aic7xxx.c scbindex = ahc_inb(ahc, SCB_TAG);
ahc 955 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scbindex);
ahc 961 dev/ic/aic7xxx.c ahc_search_qinfifo(ahc, SCB_GET_TARGET(ahc, scb),
ahc 962 dev/ic/aic7xxx.c SCB_GET_CHANNEL(ahc, scb),
ahc 970 dev/ic/aic7xxx.c printf("%s: No free or disconnected SCBs\n", ahc_name(ahc));
ahc 971 dev/ic/aic7xxx.c ahc_dump_card_state(ahc);
ahc 979 dev/ic/aic7xxx.c scbptr = ahc_inb(ahc, SCBPTR);
ahc 981 dev/ic/aic7xxx.c scbptr, ahc_inb(ahc, ARG_1),
ahc 982 dev/ic/aic7xxx.c ahc->scb_data->hscbs[scbptr].tag);
ahc 983 dev/ic/aic7xxx.c ahc_dump_card_state(ahc);
ahc 990 dev/ic/aic7xxx.c printf("%s: BTT calculation out of range\n", ahc_name(ahc));
ahc 993 dev/ic/aic7xxx.c ahc_inb(ahc, SAVED_SCSIID), ahc_inb(ahc, SAVED_LUN),
ahc 994 dev/ic/aic7xxx.c ahc_inb(ahc, ARG_1), ahc_inb(ahc, ACCUM));
ahc 997 dev/ic/aic7xxx.c ahc_inb(ahc, SEQ_FLAGS), ahc_inb(ahc, SCBPTR),
ahc 998 dev/ic/aic7xxx.c ahc_index_busy_tcl(ahc,
ahc 999 dev/ic/aic7xxx.c BUILD_TCL(ahc_inb(ahc, SAVED_SCSIID),
ahc 1000 dev/ic/aic7xxx.c ahc_inb(ahc, SAVED_LUN))),
ahc 1001 dev/ic/aic7xxx.c ahc_inb(ahc, SINDEX),
ahc 1002 dev/ic/aic7xxx.c ahc_inb(ahc, ACCUM));
ahc 1005 dev/ic/aic7xxx.c ahc_inb(ahc, SCSIID), ahc_inb(ahc, SCB_SCSIID),
ahc 1006 dev/ic/aic7xxx.c ahc_inb(ahc, SCB_LUN), ahc_inb(ahc, SCB_TAG),
ahc 1007 dev/ic/aic7xxx.c ahc_inb(ahc, SCB_CONTROL));
ahc 1009 dev/ic/aic7xxx.c ahc_inb(ahc, SCSIBUSL), ahc_inb(ahc, SCSISIGI));
ahc 1011 dev/ic/aic7xxx.c ahc_dump_card_state(ahc);
ahc 1018 dev/ic/aic7xxx.c intstat, ahc_inb(ahc, SCSISIGI));
ahc 1027 dev/ic/aic7xxx.c ahc_unpause(ahc);
ahc 1031 dev/ic/aic7xxx.c ahc_handle_scsiint(struct ahc_softc *ahc, u_int intstat)
ahc 1040 dev/ic/aic7xxx.c if ((ahc->features & AHC_TWIN) != 0
ahc 1041 dev/ic/aic7xxx.c && ((ahc_inb(ahc, SBLKCTL) & SELBUSB) != 0))
ahc 1047 dev/ic/aic7xxx.c if ((ahc->features & AHC_ULTRA2) != 0)
ahc 1048 dev/ic/aic7xxx.c status0 = ahc_inb(ahc, SSTAT0) & IOERR;
ahc 1051 dev/ic/aic7xxx.c status = ahc_inb(ahc, SSTAT1) & (SELTO|SCSIRSTI|BUSFREE|SCSIPERR);
ahc 1053 dev/ic/aic7xxx.c if ((ahc->features & AHC_TWIN) != 0) {
ahc 1055 dev/ic/aic7xxx.c ahc_outb(ahc, SBLKCTL, ahc_inb(ahc, SBLKCTL) ^ SELBUSB);
ahc 1056 dev/ic/aic7xxx.c status = ahc_inb(ahc, SSTAT1)
ahc 1061 dev/ic/aic7xxx.c printf("%s: Spurious SCSI interrupt\n", ahc_name(ahc));
ahc 1062 dev/ic/aic7xxx.c ahc_outb(ahc, CLRINT, CLRSCSIINT);
ahc 1063 dev/ic/aic7xxx.c ahc_unpause(ahc);
ahc 1069 dev/ic/aic7xxx.c ahc_clear_critical_section(ahc);
ahc 1071 dev/ic/aic7xxx.c scb_index = ahc_inb(ahc, SCB_TAG);
ahc 1072 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scb_index);
ahc 1074 dev/ic/aic7xxx.c && (ahc_inb(ahc, SEQ_FLAGS) & NOT_IDENTIFIED) != 0)
ahc 1077 dev/ic/aic7xxx.c if ((ahc->features & AHC_ULTRA2) != 0
ahc 1081 dev/ic/aic7xxx.c now_lvd = ahc_inb(ahc, SBLKCTL) & ENAB40;
ahc 1083 dev/ic/aic7xxx.c ahc_name(ahc), now_lvd ? "LVD" : "SE");
ahc 1084 dev/ic/aic7xxx.c ahc_outb(ahc, CLRSINT0, CLRIOERR);
ahc 1095 dev/ic/aic7xxx.c ahc_reset_channel(ahc, intr_channel,
ahc 1099 dev/ic/aic7xxx.c ahc_name(ahc), intr_channel);
ahc 1101 dev/ic/aic7xxx.c ahc_outb(ahc, SBLKCTL, ahc_inb(ahc, SBLKCTL) ^ SELBUSB);
ahc 1102 dev/ic/aic7xxx.c ahc_reset_channel(ahc, intr_channel, /*Initiate Reset*/FALSE);
ahc 1124 dev/ic/aic7xxx.c lastphase = ahc_inb(ahc, LASTPHASE);
ahc 1125 dev/ic/aic7xxx.c curphase = ahc_inb(ahc, SCSISIGI) & PHASE_MASK;
ahc 1126 dev/ic/aic7xxx.c sstat2 = ahc_inb(ahc, SSTAT2);
ahc 1127 dev/ic/aic7xxx.c ahc_outb(ahc, CLRSINT1, CLRSCSIPERR);
ahc 1139 dev/ic/aic7xxx.c if ((ahc_inb(ahc, SSTAT1) & SCSIPERR) != 0
ahc 1155 dev/ic/aic7xxx.c ahc_print_path(ahc, scb);
ahc 1158 dev/ic/aic7xxx.c printf("%s:%c:%d: ", ahc_name(ahc), intr_channel,
ahc 1159 dev/ic/aic7xxx.c SCSIID_TARGET(ahc, ahc_inb(ahc, SAVED_SCSIID)));
ahc 1160 dev/ic/aic7xxx.c scsirate = ahc_inb(ahc, SCSIRATE);
ahc 1165 dev/ic/aic7xxx.c ahc_inw(ahc, SEQADDR0),
ahc 1167 dev/ic/aic7xxx.c if ((ahc->features & AHC_DT) != 0) {
ahc 1183 dev/ic/aic7xxx.c if ((ahc->features & AHC_DT) != 0
ahc 1201 dev/ic/aic7xxx.c if (ahc->msg_type != MSG_TYPE_NONE)
ahc 1202 dev/ic/aic7xxx.c ahc->send_msg_perror = TRUE;
ahc 1204 dev/ic/aic7xxx.c ahc_outb(ahc, MSG_OUT, mesg_out);
ahc 1211 dev/ic/aic7xxx.c ahc_fetch_devinfo(ahc, &devinfo);
ahc 1212 dev/ic/aic7xxx.c ahc_force_renegotiation(ahc, &devinfo);
ahc 1214 dev/ic/aic7xxx.c ahc_outb(ahc, CLRINT, CLRSCSIINT);
ahc 1215 dev/ic/aic7xxx.c ahc_unpause(ahc);
ahc 1220 dev/ic/aic7xxx.c ahc_outb(ahc, SCSISEQ, 0);
ahc 1223 dev/ic/aic7xxx.c ahc_clear_msg_state(ahc);
ahc 1226 dev/ic/aic7xxx.c ahc_outb(ahc, SIMODE1, ahc_inb(ahc, SIMODE1) & ~ENBUSFREE);
ahc 1227 dev/ic/aic7xxx.c ahc_outb(ahc, CLRSINT1, CLRSELTIMEO|CLRBUSFREE|CLRSCSIPERR);
ahc 1237 dev/ic/aic7xxx.c ahc_outb(ahc, CLRSINT0, CLRSELINGO);
ahc 1239 dev/ic/aic7xxx.c scbptr = ahc_inb(ahc, WAITING_SCBH);
ahc 1240 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, scbptr);
ahc 1241 dev/ic/aic7xxx.c scb_index = ahc_inb(ahc, SCB_TAG);
ahc 1243 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scb_index);
ahc 1247 dev/ic/aic7xxx.c ahc_name(ahc), scbptr, scb_index);
ahc 1248 dev/ic/aic7xxx.c ahc_dump_card_state(ahc);
ahc 1253 dev/ic/aic7xxx.c ahc_print_path(ahc, scb);
ahc 1258 dev/ic/aic7xxx.c ahc_scb_devinfo(ahc, &devinfo, scb);
ahc 1260 dev/ic/aic7xxx.c ahc_freeze_devq(ahc, scb);
ahc 1268 dev/ic/aic7xxx.c ahc_handle_devreset(ahc, &devinfo,
ahc 1273 dev/ic/aic7xxx.c ahc_outb(ahc, CLRINT, CLRSCSIINT);
ahc 1274 dev/ic/aic7xxx.c ahc_restart(ahc);
ahc 1276 dev/ic/aic7xxx.c && (ahc_inb(ahc, SIMODE1) & ENBUSFREE) != 0) {
ahc 1292 dev/ic/aic7xxx.c ahc_outb(ahc, SCSISEQ,
ahc 1293 dev/ic/aic7xxx.c ahc_inb(ahc, SCSISEQ) & (ENSELI|ENRSELI|ENAUTOATNP));
ahc 1301 dev/ic/aic7xxx.c ahc_outb(ahc, SIMODE1, ahc_inb(ahc, SIMODE1) & ~ENBUSFREE);
ahc 1302 dev/ic/aic7xxx.c ahc_outb(ahc, CLRSINT1, CLRBUSFREE|CLRSCSIPERR);
ahc 1310 dev/ic/aic7xxx.c lastphase = ahc_inb(ahc, LASTPHASE);
ahc 1311 dev/ic/aic7xxx.c saved_scsiid = ahc_inb(ahc, SAVED_SCSIID);
ahc 1312 dev/ic/aic7xxx.c saved_lun = ahc_inb(ahc, SAVED_LUN);
ahc 1313 dev/ic/aic7xxx.c target = SCSIID_TARGET(ahc, saved_scsiid);
ahc 1315 dev/ic/aic7xxx.c channel = SCSIID_CHANNEL(ahc, saved_scsiid);
ahc 1324 dev/ic/aic7xxx.c if (ahc_sent_msg(ahc, AHCMSG_1B, MSG_ABORT_TAG, TRUE)
ahc 1325 dev/ic/aic7xxx.c || ahc_sent_msg(ahc, AHCMSG_1B, MSG_ABORT, TRUE)) {
ahc 1326 dev/ic/aic7xxx.c if (ahc->msgout_buf[ahc->msgout_index - 1]
ahc 1329 dev/ic/aic7xxx.c ahc_print_path(ahc, scb);
ahc 1333 dev/ic/aic7xxx.c ahc_abort_scbs(ahc, target, channel,
ahc 1338 dev/ic/aic7xxx.c } else if (ahc_sent_msg(ahc, AHCMSG_1B,
ahc 1348 dev/ic/aic7xxx.c && ahc_match_scb(ahc, scb, target, channel,
ahc 1361 dev/ic/aic7xxx.c ahc_handle_devreset(ahc, &devinfo,
ahc 1366 dev/ic/aic7xxx.c } else if (ahc_sent_msg(ahc, AHCMSG_EXT,
ahc 1375 dev/ic/aic7xxx.c tinfo = ahc_fetch_transinfo(ahc,
ahc 1383 dev/ic/aic7xxx.c ahc_qinfifo_requeue_tail(ahc, scb);
ahc 1385 dev/ic/aic7xxx.c } else if (ahc_sent_msg(ahc, AHCMSG_EXT,
ahc 1391 dev/ic/aic7xxx.c ahc_set_width(ahc, &devinfo,
ahc 1395 dev/ic/aic7xxx.c ahc_qinfifo_requeue_tail(ahc, scb);
ahc 1397 dev/ic/aic7xxx.c } else if (ahc_sent_msg(ahc, AHCMSG_EXT,
ahc 1403 dev/ic/aic7xxx.c ahc_set_syncrate(ahc, &devinfo,
ahc 1409 dev/ic/aic7xxx.c ahc_qinfifo_requeue_tail(ahc, scb);
ahc 1423 dev/ic/aic7xxx.c ahc_print_path(ahc, scb);
ahc 1424 dev/ic/aic7xxx.c ahc_abort_scbs(ahc, target, channel,
ahc 1433 dev/ic/aic7xxx.c printf("%s: ", ahc_name(ahc));
ahc 1446 dev/ic/aic7xxx.c ahc_force_renegotiation(ahc, &devinfo);
ahc 1451 dev/ic/aic7xxx.c ahc_inb(ahc, SEQADDR0)
ahc 1452 dev/ic/aic7xxx.c | (ahc_inb(ahc, SEQADDR1) << 8));
ahc 1454 dev/ic/aic7xxx.c ahc_outb(ahc, CLRINT, CLRSCSIINT);
ahc 1455 dev/ic/aic7xxx.c ahc_restart(ahc);
ahc 1458 dev/ic/aic7xxx.c ahc_name(ahc), status);
ahc 1459 dev/ic/aic7xxx.c ahc_outb(ahc, CLRINT, CLRSCSIINT);
ahc 1468 dev/ic/aic7xxx.c ahc_force_renegotiation(struct ahc_softc *ahc, struct ahc_devinfo *devinfo)
ahc 1473 dev/ic/aic7xxx.c targ_info = ahc_fetch_transinfo(ahc,
ahc 1478 dev/ic/aic7xxx.c ahc_update_neg_request(ahc, devinfo, tstate,
ahc 1484 dev/ic/aic7xxx.c ahc_clear_critical_section(struct ahc_softc *ahc)
ahc 1491 dev/ic/aic7xxx.c if (ahc->num_critical_sections == 0)
ahc 1503 dev/ic/aic7xxx.c seqaddr = ahc_inb(ahc, SEQADDR0)
ahc 1504 dev/ic/aic7xxx.c | (ahc_inb(ahc, SEQADDR1) << 8);
ahc 1511 dev/ic/aic7xxx.c cs = ahc->critical_sections;
ahc 1512 dev/ic/aic7xxx.c for (i = 0; i < ahc->num_critical_sections; i++, cs++) {
ahc 1518 dev/ic/aic7xxx.c if (i == ahc->num_critical_sections)
ahc 1523 dev/ic/aic7xxx.c ahc_name(ahc));
ahc 1524 dev/ic/aic7xxx.c ahc_dump_card_state(ahc);
ahc 1537 dev/ic/aic7xxx.c simode0 = ahc_inb(ahc, SIMODE0);
ahc 1538 dev/ic/aic7xxx.c ahc_outb(ahc, SIMODE0, 0);
ahc 1539 dev/ic/aic7xxx.c simode1 = ahc_inb(ahc, SIMODE1);
ahc 1540 dev/ic/aic7xxx.c if ((ahc->features & AHC_DT) != 0)
ahc 1549 dev/ic/aic7xxx.c ahc_outb(ahc, SIMODE1, simode1 & ENBUSFREE);
ahc 1551 dev/ic/aic7xxx.c ahc_outb(ahc, SIMODE1, 0);
ahc 1552 dev/ic/aic7xxx.c ahc_outb(ahc, CLRINT, CLRSCSIINT);
ahc 1553 dev/ic/aic7xxx.c ahc_outb(ahc, SEQCTL, ahc->seqctl | STEP);
ahc 1556 dev/ic/aic7xxx.c if ((ahc->features & AHC_DT) != 0) {
ahc 1557 dev/ic/aic7xxx.c ahc_outb(ahc, CLRSINT1, CLRBUSFREE);
ahc 1558 dev/ic/aic7xxx.c ahc_outb(ahc, CLRINT, CLRSCSIINT);
ahc 1560 dev/ic/aic7xxx.c ahc_outb(ahc, HCNTRL, ahc->unpause);
ahc 1561 dev/ic/aic7xxx.c while (!ahc_is_paused(ahc))
ahc 1565 dev/ic/aic7xxx.c ahc_outb(ahc, SIMODE0, simode0);
ahc 1566 dev/ic/aic7xxx.c ahc_outb(ahc, SIMODE1, simode1);
ahc 1567 dev/ic/aic7xxx.c ahc_outb(ahc, SEQCTL, ahc->seqctl);
ahc 1575 dev/ic/aic7xxx.c ahc_clear_intstat(struct ahc_softc *ahc)
ahc 1578 dev/ic/aic7xxx.c ahc_outb(ahc, CLRSINT1, CLRSELTIMEO|CLRATNO|CLRSCSIRSTI
ahc 1581 dev/ic/aic7xxx.c ahc_flush_device_writes(ahc);
ahc 1582 dev/ic/aic7xxx.c ahc_outb(ahc, CLRSINT0, CLRSELDO|CLRSELDI|CLRSELINGO);
ahc 1583 dev/ic/aic7xxx.c ahc_flush_device_writes(ahc);
ahc 1584 dev/ic/aic7xxx.c ahc_outb(ahc, CLRINT, CLRSCSIINT);
ahc 1585 dev/ic/aic7xxx.c ahc_flush_device_writes(ahc);
ahc 1632 dev/ic/aic7xxx.c ahc_alloc_tstate(struct ahc_softc *ahc, u_int scsi_id, char channel)
ahc 1638 dev/ic/aic7xxx.c master_tstate = ahc->enabled_targets[ahc->our_id];
ahc 1641 dev/ic/aic7xxx.c master_tstate = ahc->enabled_targets[ahc->our_id_b + 8];
ahc 1643 dev/ic/aic7xxx.c if (ahc->enabled_targets[scsi_id] != NULL
ahc 1644 dev/ic/aic7xxx.c && ahc->enabled_targets[scsi_id] != master_tstate)
ahc 1646 dev/ic/aic7xxx.c ahc_name(ahc));
ahc 1670 dev/ic/aic7xxx.c ahc->enabled_targets[scsi_id] = tstate;
ahc 1680 dev/ic/aic7xxx.c ahc_free_tstate(struct ahc_softc *ahc, u_int scsi_id, char channel, int force)
ahc 1688 dev/ic/aic7xxx.c if (((channel == 'B' && scsi_id == ahc->our_id_b)
ahc 1689 dev/ic/aic7xxx.c || (channel == 'A' && scsi_id == ahc->our_id))
ahc 1695 dev/ic/aic7xxx.c tstate = ahc->enabled_targets[scsi_id];
ahc 1698 dev/ic/aic7xxx.c ahc->enabled_targets[scsi_id] = NULL;
ahc 1709 dev/ic/aic7xxx.c ahc_devlimited_syncrate(struct ahc_softc *ahc,
ahc 1716 dev/ic/aic7xxx.c if ((ahc->features & AHC_ULTRA2) != 0) {
ahc 1717 dev/ic/aic7xxx.c if ((ahc_inb(ahc, SBLKCTL) & ENAB40) != 0
ahc 1718 dev/ic/aic7xxx.c && (ahc_inb(ahc, SSTAT2) & EXP_ACTIVE) == 0) {
ahc 1725 dev/ic/aic7xxx.c } else if ((ahc->features & AHC_ULTRA) != 0) {
ahc 1755 dev/ic/aic7xxx.c return (ahc_find_syncrate(ahc, period, ppr_options, maxsync));
ahc 1764 dev/ic/aic7xxx.c ahc_find_syncrate(struct ahc_softc *ahc, u_int *period,
ahc 1769 dev/ic/aic7xxx.c if ((ahc->features & AHC_DT) == 0)
ahc 1785 dev/ic/aic7xxx.c if ((ahc->features & AHC_ULTRA2) != 0
ahc 1816 dev/ic/aic7xxx.c || ((ahc->features & AHC_ULTRA2) != 0
ahc 1831 dev/ic/aic7xxx.c ahc_find_period(struct ahc_softc *ahc, u_int scsirate, u_int maxsync)
ahc 1835 dev/ic/aic7xxx.c if ((ahc->features & AHC_ULTRA2) != 0)
ahc 1843 dev/ic/aic7xxx.c if ((ahc->features & AHC_ULTRA2) != 0) {
ahc 1861 dev/ic/aic7xxx.c ahc_validate_offset(struct ahc_softc *ahc,
ahc 1871 dev/ic/aic7xxx.c } else if ((ahc->features & AHC_ULTRA2) != 0) {
ahc 1893 dev/ic/aic7xxx.c ahc_validate_width(struct ahc_softc *ahc, struct ahc_initiator_tinfo *tinfo,
ahc 1898 dev/ic/aic7xxx.c if (ahc->features & AHC_WIDE) {
ahc 1923 dev/ic/aic7xxx.c ahc_update_neg_request(struct ahc_softc *ahc, struct ahc_devinfo *devinfo,
ahc 1937 dev/ic/aic7xxx.c if ((ahc->features & AHC_WIDE) != 0)
ahc 1966 dev/ic/aic7xxx.c ahc_set_syncrate(struct ahc_softc *ahc, struct ahc_devinfo *devinfo,
ahc 1986 dev/ic/aic7xxx.c tinfo = ahc_fetch_transinfo(ahc, devinfo->channel, devinfo->our_scsiid,
ahc 2013 dev/ic/aic7xxx.c if ((ahc->features & AHC_ULTRA2) != 0) {
ahc 2042 dev/ic/aic7xxx.c sxfrctl0 = ahc_inb(ahc, SXFRCTL0);
ahc 2046 dev/ic/aic7xxx.c ahc_outb(ahc, SXFRCTL0, sxfrctl0);
ahc 2050 dev/ic/aic7xxx.c ahc_outb(ahc, SCSIRATE, scsirate);
ahc 2051 dev/ic/aic7xxx.c if ((ahc->features & AHC_ULTRA2) != 0)
ahc 2052 dev/ic/aic7xxx.c ahc_outb(ahc, SCSIOFFSET, offset);
ahc 2060 dev/ic/aic7xxx.c ahc_send_async(ahc, devinfo->channel, devinfo->target,
ahc 2065 dev/ic/aic7xxx.c "offset = 0x%x\n", ahc_name(ahc),
ahc 2072 dev/ic/aic7xxx.c ahc_name(ahc), devinfo->target);
ahc 2077 dev/ic/aic7xxx.c update_needed += ahc_update_neg_request(ahc, devinfo, tstate,
ahc 2081 dev/ic/aic7xxx.c ahc_update_pending_scbs(ahc);
ahc 2093 dev/ic/aic7xxx.c ahc_set_width(struct ahc_softc *ahc, struct ahc_devinfo *devinfo,
ahc 2104 dev/ic/aic7xxx.c tinfo = ahc_fetch_transinfo(ahc, devinfo->channel, devinfo->our_scsiid,
ahc 2126 dev/ic/aic7xxx.c ahc_outb(ahc, SCSIRATE, scsirate);
ahc 2130 dev/ic/aic7xxx.c ahc_send_async(ahc, devinfo->channel, devinfo->target,
ahc 2134 dev/ic/aic7xxx.c ahc_name(ahc), devinfo->target,
ahc 2139 dev/ic/aic7xxx.c update_needed += ahc_update_neg_request(ahc, devinfo, tstate,
ahc 2142 dev/ic/aic7xxx.c ahc_update_pending_scbs(ahc);
ahc 2149 dev/ic/aic7xxx.c ahc_set_tags(struct ahc_softc *ahc, struct ahc_devinfo *devinfo,
ahc 2152 dev/ic/aic7xxx.c ahc_platform_set_tags(ahc, devinfo, alg);
ahc 2153 dev/ic/aic7xxx.c ahc_send_async(ahc, devinfo->channel, devinfo->target,
ahc 2163 dev/ic/aic7xxx.c ahc_update_pending_scbs(struct ahc_softc *ahc)
ahc 2176 dev/ic/aic7xxx.c LIST_FOREACH(pending_scb, &ahc->pending_scbs, pending_links) {
ahc 2182 dev/ic/aic7xxx.c ahc_scb_devinfo(ahc, &devinfo, pending_scb);
ahc 2183 dev/ic/aic7xxx.c tinfo = ahc_fetch_transinfo(ahc, devinfo.channel,
ahc 2197 dev/ic/aic7xxx.c ahc_sync_scb(ahc, pending_scb,
ahc 2205 dev/ic/aic7xxx.c if (ahc_is_paused(ahc)) {
ahc 2209 dev/ic/aic7xxx.c ahc_pause(ahc);
ahc 2212 dev/ic/aic7xxx.c saved_scbptr = ahc_inb(ahc, SCBPTR);
ahc 2214 dev/ic/aic7xxx.c for (i = 0; i < ahc->scb_data->maxhscbs; i++) {
ahc 2219 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, i);
ahc 2220 dev/ic/aic7xxx.c scb_tag = ahc_inb(ahc, SCB_TAG);
ahc 2221 dev/ic/aic7xxx.c pending_scb = ahc_lookup_scb(ahc, scb_tag);
ahc 2226 dev/ic/aic7xxx.c control = ahc_inb(ahc, SCB_CONTROL);
ahc 2229 dev/ic/aic7xxx.c ahc_outb(ahc, SCB_CONTROL, control);
ahc 2230 dev/ic/aic7xxx.c ahc_outb(ahc, SCB_SCSIRATE, pending_hscb->scsirate);
ahc 2231 dev/ic/aic7xxx.c ahc_outb(ahc, SCB_SCSIOFFSET, pending_hscb->scsioffset);
ahc 2233 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, saved_scbptr);
ahc 2236 dev/ic/aic7xxx.c ahc_unpause(ahc);
ahc 2241 dev/ic/aic7xxx.c ahc_fetch_devinfo(struct ahc_softc *ahc, struct ahc_devinfo *devinfo)
ahc 2247 dev/ic/aic7xxx.c if (ahc_inb(ahc, SSTAT0) & TARGET)
ahc 2253 dev/ic/aic7xxx.c && (ahc->features & AHC_MULTI_TID) != 0
ahc 2254 dev/ic/aic7xxx.c && (ahc_inb(ahc, SEQ_FLAGS)
ahc 2257 dev/ic/aic7xxx.c our_id = ahc_inb(ahc, TARGIDIN) & OID;
ahc 2258 dev/ic/aic7xxx.c } else if ((ahc->features & AHC_ULTRA2) != 0)
ahc 2259 dev/ic/aic7xxx.c our_id = ahc_inb(ahc, SCSIID_ULTRA2) & OID;
ahc 2261 dev/ic/aic7xxx.c our_id = ahc_inb(ahc, SCSIID) & OID;
ahc 2263 dev/ic/aic7xxx.c saved_scsiid = ahc_inb(ahc, SAVED_SCSIID);
ahc 2266 dev/ic/aic7xxx.c SCSIID_TARGET(ahc, saved_scsiid),
ahc 2267 dev/ic/aic7xxx.c ahc_inb(ahc, SAVED_LUN),
ahc 2268 dev/ic/aic7xxx.c SCSIID_CHANNEL(ahc, saved_scsiid),
ahc 2306 dev/ic/aic7xxx.c ahc_print_devinfo(struct ahc_softc *ahc, struct ahc_devinfo *devinfo)
ahc 2308 dev/ic/aic7xxx.c printf("%s:%c:%d:%d: ", ahc_name(ahc), devinfo->channel,
ahc 2313 dev/ic/aic7xxx.c ahc_scb_devinfo(struct ahc_softc *ahc, struct ahc_devinfo *devinfo,
ahc 2323 dev/ic/aic7xxx.c ahc_compile_devinfo(devinfo, our_id, SCB_GET_TARGET(ahc, scb),
ahc 2324 dev/ic/aic7xxx.c SCB_GET_LUN(scb), SCB_GET_CHANNEL(ahc, scb), role);
ahc 2330 dev/ic/aic7xxx.c ahc_assert_atn(struct ahc_softc *ahc)
ahc 2335 dev/ic/aic7xxx.c if ((ahc->features & AHC_DT) == 0)
ahc 2336 dev/ic/aic7xxx.c scsisigo |= ahc_inb(ahc, SCSISIGI);
ahc 2337 dev/ic/aic7xxx.c ahc_outb(ahc, SCSISIGO, scsisigo);
ahc 2347 dev/ic/aic7xxx.c ahc_setup_initiator_msgout(struct ahc_softc *ahc, struct ahc_devinfo *devinfo,
ahc 2355 dev/ic/aic7xxx.c ahc->msgout_index = 0;
ahc 2356 dev/ic/aic7xxx.c ahc->msgout_len = 0;
ahc 2359 dev/ic/aic7xxx.c && ahc_inb(ahc, MSG_OUT) == MSG_IDENTIFYFLAG) {
ahc 2365 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] = identify_msg;
ahc 2366 dev/ic/aic7xxx.c ahc->msgout_len++;
ahc 2369 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] =
ahc 2371 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] = scb->hscb->tag;
ahc 2372 dev/ic/aic7xxx.c ahc->msgout_len += 2;
ahc 2377 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] = MSG_BUS_DEV_RESET;
ahc 2378 dev/ic/aic7xxx.c ahc->msgout_len++;
ahc 2379 dev/ic/aic7xxx.c ahc_print_path(ahc, scb);
ahc 2388 dev/ic/aic7xxx.c ahc_outb(ahc, SCSISEQ, (ahc_inb(ahc, SCSISEQ) & ~ENSELO));
ahc 2391 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] = MSG_ABORT_TAG;
ahc 2393 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] = MSG_ABORT;
ahc 2394 dev/ic/aic7xxx.c ahc->msgout_len++;
ahc 2395 dev/ic/aic7xxx.c ahc_print_path(ahc, scb);
ahc 2405 dev/ic/aic7xxx.c ahc_outb(ahc, SCSISEQ, (ahc_inb(ahc, SCSISEQ) & ~ENSELO));
ahc 2407 dev/ic/aic7xxx.c ahc_build_transfer_msg(ahc, devinfo);
ahc 2415 dev/ic/aic7xxx.c ahc_inb(ahc, MSG_OUT), scb->flags);
ahc 2422 dev/ic/aic7xxx.c ahc_outb(ahc, SCB_CONTROL, ahc_inb(ahc, SCB_CONTROL) & ~MK_MESSAGE);
ahc 2424 dev/ic/aic7xxx.c ahc->msgout_index = 0;
ahc 2425 dev/ic/aic7xxx.c ahc->msg_type = MSG_TYPE_INITIATOR_MSGOUT;
ahc 2433 dev/ic/aic7xxx.c ahc_build_transfer_msg(struct ahc_softc *ahc, struct ahc_devinfo *devinfo)
ahc 2450 dev/ic/aic7xxx.c tinfo = ahc_fetch_transinfo(ahc, devinfo->channel, devinfo->our_scsiid,
ahc 2464 dev/ic/aic7xxx.c rate = ahc_devlimited_syncrate(ahc, tinfo, &period,
ahc 2485 dev/ic/aic7xxx.c if ((ahc->features & AHC_WIDE) != 0)
ahc 2491 dev/ic/aic7xxx.c ahc_print_devinfo(ahc, devinfo);
ahc 2511 dev/ic/aic7xxx.c ahc_validate_offset(ahc, tinfo, rate, &offset,
ahc 2516 dev/ic/aic7xxx.c ahc_construct_ppr(ahc, devinfo, period, offset,
ahc 2519 dev/ic/aic7xxx.c ahc_construct_sdtr(ahc, devinfo, period, offset);
ahc 2522 dev/ic/aic7xxx.c ahc_construct_wdtr(ahc, devinfo, tinfo->goal.width);
ahc 2531 dev/ic/aic7xxx.c ahc_construct_sdtr(struct ahc_softc *ahc, struct ahc_devinfo *devinfo,
ahc 2536 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] = MSG_EXTENDED;
ahc 2537 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] = MSG_EXT_SDTR_LEN;
ahc 2538 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] = MSG_EXT_SDTR;
ahc 2539 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] = period;
ahc 2540 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] = offset;
ahc 2541 dev/ic/aic7xxx.c ahc->msgout_len += 5;
ahc 2544 dev/ic/aic7xxx.c ahc_name(ahc), devinfo->channel, devinfo->target,
ahc 2554 dev/ic/aic7xxx.c ahc_construct_wdtr(struct ahc_softc *ahc, struct ahc_devinfo *devinfo,
ahc 2557 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] = MSG_EXTENDED;
ahc 2558 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] = MSG_EXT_WDTR_LEN;
ahc 2559 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] = MSG_EXT_WDTR;
ahc 2560 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] = bus_width;
ahc 2561 dev/ic/aic7xxx.c ahc->msgout_len += 4;
ahc 2564 dev/ic/aic7xxx.c ahc_name(ahc), devinfo->channel, devinfo->target,
ahc 2574 dev/ic/aic7xxx.c ahc_construct_ppr(struct ahc_softc *ahc, struct ahc_devinfo *devinfo,
ahc 2580 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] = MSG_EXTENDED;
ahc 2581 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] = MSG_EXT_PPR_LEN;
ahc 2582 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] = MSG_EXT_PPR;
ahc 2583 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] = period;
ahc 2584 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] = 0;
ahc 2585 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] = offset;
ahc 2586 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] = bus_width;
ahc 2587 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] = ppr_options;
ahc 2588 dev/ic/aic7xxx.c ahc->msgout_len += 8;
ahc 2591 dev/ic/aic7xxx.c "offset %x, ppr_options %x\n", ahc_name(ahc),
ahc 2601 dev/ic/aic7xxx.c ahc_clear_msg_state(struct ahc_softc *ahc)
ahc 2603 dev/ic/aic7xxx.c ahc->msgout_len = 0;
ahc 2604 dev/ic/aic7xxx.c ahc->msgin_index = 0;
ahc 2605 dev/ic/aic7xxx.c ahc->msg_type = MSG_TYPE_NONE;
ahc 2606 dev/ic/aic7xxx.c if ((ahc_inb(ahc, SCSISIGI) & ATNI) != 0) {
ahc 2611 dev/ic/aic7xxx.c ahc_outb(ahc, CLRSINT1, CLRATNO);
ahc 2613 dev/ic/aic7xxx.c ahc_outb(ahc, MSG_OUT, MSG_NOOP);
ahc 2614 dev/ic/aic7xxx.c ahc_outb(ahc, SEQ_FLAGS2,
ahc 2615 dev/ic/aic7xxx.c ahc_inb(ahc, SEQ_FLAGS2) & ~TARGET_MSG_PENDING);
ahc 2619 dev/ic/aic7xxx.c ahc_handle_proto_violation(struct ahc_softc *ahc)
ahc 2629 dev/ic/aic7xxx.c ahc_fetch_devinfo(ahc, &devinfo);
ahc 2630 dev/ic/aic7xxx.c scbid = ahc_inb(ahc, SCB_TAG);
ahc 2631 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scbid);
ahc 2632 dev/ic/aic7xxx.c seq_flags = ahc_inb(ahc, SEQ_FLAGS);
ahc 2633 dev/ic/aic7xxx.c curphase = ahc_inb(ahc, SCSISIGI) & PHASE_MASK;
ahc 2634 dev/ic/aic7xxx.c lastphase = ahc_inb(ahc, LASTPHASE);
ahc 2642 dev/ic/aic7xxx.c ahc_print_devinfo(ahc, &devinfo);
ahc 2651 dev/ic/aic7xxx.c ahc_print_devinfo(ahc, &devinfo);
ahc 2657 dev/ic/aic7xxx.c ahc_print_path(ahc, scb);
ahc 2659 dev/ic/aic7xxx.c } else if ((ahc_inb(ahc, SCB_CONTROL) & STATUS_RCVD) == 0) {
ahc 2667 dev/ic/aic7xxx.c ahc_print_path(ahc, scb);
ahc 2670 dev/ic/aic7xxx.c ahc_print_path(ahc, scb);
ahc 2672 dev/ic/aic7xxx.c ahc_dump_card_state(ahc);
ahc 2684 dev/ic/aic7xxx.c found = ahc_reset_channel(ahc, 'A', TRUE);
ahc 2686 dev/ic/aic7xxx.c "%d SCBs aborted\n", ahc_name(ahc), 'A', found);
ahc 2693 dev/ic/aic7xxx.c ahc_outb(ahc, SCSISEQ,
ahc 2694 dev/ic/aic7xxx.c ahc_inb(ahc, SCSISEQ) & ~ENSELO);
ahc 2695 dev/ic/aic7xxx.c ahc_assert_atn(ahc);
ahc 2696 dev/ic/aic7xxx.c ahc_outb(ahc, MSG_OUT, HOST_MSG);
ahc 2698 dev/ic/aic7xxx.c ahc_print_devinfo(ahc, &devinfo);
ahc 2699 dev/ic/aic7xxx.c ahc->msgout_buf[0] = MSG_ABORT_TASK;
ahc 2700 dev/ic/aic7xxx.c ahc->msgout_len = 1;
ahc 2701 dev/ic/aic7xxx.c ahc->msgout_index = 0;
ahc 2702 dev/ic/aic7xxx.c ahc->msg_type = MSG_TYPE_INITIATOR_MSGOUT;
ahc 2704 dev/ic/aic7xxx.c ahc_print_path(ahc, scb);
ahc 2716 dev/ic/aic7xxx.c ahc_handle_message_phase(struct ahc_softc *ahc)
ahc 2722 dev/ic/aic7xxx.c ahc_fetch_devinfo(ahc, &devinfo);
ahc 2724 dev/ic/aic7xxx.c bus_phase = ahc_inb(ahc, SCSISIGI) & PHASE_MASK;
ahc 2727 dev/ic/aic7xxx.c switch (ahc->msg_type) {
ahc 2734 dev/ic/aic7xxx.c if (ahc->msgout_len == 0)
ahc 2739 dev/ic/aic7xxx.c ahc_print_devinfo(ahc, &devinfo);
ahc 2759 dev/ic/aic7xxx.c ahc_outb(ahc, CLRSINT1, CLRATNO);
ahc 2760 dev/ic/aic7xxx.c ahc->send_msg_perror = FALSE;
ahc 2761 dev/ic/aic7xxx.c ahc->msg_type = MSG_TYPE_INITIATOR_MSGIN;
ahc 2762 dev/ic/aic7xxx.c ahc->msgin_index = 0;
ahc 2769 dev/ic/aic7xxx.c if (ahc->send_msg_perror) {
ahc 2770 dev/ic/aic7xxx.c ahc_outb(ahc, CLRSINT1, CLRATNO);
ahc 2771 dev/ic/aic7xxx.c ahc_outb(ahc, CLRSINT1, CLRREQINIT);
ahc 2774 dev/ic/aic7xxx.c printf(" byte 0x%x\n", ahc->send_msg_perror);
ahc 2776 dev/ic/aic7xxx.c ahc_outb(ahc, SCSIDATL, MSG_PARITY_ERROR);
ahc 2780 dev/ic/aic7xxx.c msgdone = ahc->msgout_index == ahc->msgout_len;
ahc 2787 dev/ic/aic7xxx.c ahc->msgout_index = 0;
ahc 2788 dev/ic/aic7xxx.c ahc_assert_atn(ahc);
ahc 2791 dev/ic/aic7xxx.c lastbyte = ahc->msgout_index == (ahc->msgout_len - 1);
ahc 2794 dev/ic/aic7xxx.c ahc_outb(ahc, CLRSINT1, CLRATNO);
ahc 2801 dev/ic/aic7xxx.c ahc_outb(ahc, CLRSINT1, CLRREQINIT);
ahc 2805 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index]);
ahc 2807 dev/ic/aic7xxx.c ahc_outb(ahc, SCSIDATL, ahc->msgout_buf[ahc->msgout_index++]);
ahc 2817 dev/ic/aic7xxx.c ahc_print_devinfo(ahc, &devinfo);
ahc 2830 dev/ic/aic7xxx.c ahc->msgin_index = 0;
ahc 2832 dev/ic/aic7xxx.c && (ahc->send_msg_perror == TRUE
ahc 2833 dev/ic/aic7xxx.c || (ahc->msgout_len != 0
ahc 2834 dev/ic/aic7xxx.c && ahc->msgout_index == 0))) {
ahc 2835 dev/ic/aic7xxx.c ahc->msg_type = MSG_TYPE_INITIATOR_MSGOUT;
ahc 2843 dev/ic/aic7xxx.c ahc->msgin_buf[ahc->msgin_index] = ahc_inb(ahc, SCSIBUSL);
ahc 2847 dev/ic/aic7xxx.c ahc->msgin_buf[ahc->msgin_index]);
ahc 2850 dev/ic/aic7xxx.c message_done = ahc_parse_msg(ahc, &devinfo);
ahc 2857 dev/ic/aic7xxx.c ahc->msgin_index = 0;
ahc 2864 dev/ic/aic7xxx.c if (ahc->msgout_len != 0) {
ahc 2867 dev/ic/aic7xxx.c ahc_print_devinfo(ahc, &devinfo);
ahc 2871 dev/ic/aic7xxx.c ahc_assert_atn(ahc);
ahc 2874 dev/ic/aic7xxx.c ahc->msgin_index++;
ahc 2880 dev/ic/aic7xxx.c ahc_outb(ahc, CLRSINT1, CLRREQINIT);
ahc 2881 dev/ic/aic7xxx.c ahc_inb(ahc, SCSIDATL);
ahc 2890 dev/ic/aic7xxx.c if (ahc->msgout_len == 0)
ahc 2899 dev/ic/aic7xxx.c if ((ahc_inb(ahc, SCSISIGI) & ATNI) != 0
ahc 2900 dev/ic/aic7xxx.c && ahc->msgout_index > 0)
ahc 2913 dev/ic/aic7xxx.c ahc->msg_type = MSG_TYPE_TARGET_MSGOUT;
ahc 2914 dev/ic/aic7xxx.c ahc_outb(ahc, SCSISIGO, P_MESGOUT | BSYO);
ahc 2915 dev/ic/aic7xxx.c ahc->msgin_index = 0;
ahc 2917 dev/ic/aic7xxx.c ahc_inb(ahc, SCSIDATL);
ahc 2918 dev/ic/aic7xxx.c ahc_outb(ahc, SXFRCTL0,
ahc 2919 dev/ic/aic7xxx.c ahc_inb(ahc, SXFRCTL0) | SPIOEN);
ahc 2923 dev/ic/aic7xxx.c msgdone = ahc->msgout_index == ahc->msgout_len;
ahc 2925 dev/ic/aic7xxx.c ahc_outb(ahc, SXFRCTL0,
ahc 2926 dev/ic/aic7xxx.c ahc_inb(ahc, SXFRCTL0) & ~SPIOEN);
ahc 2934 dev/ic/aic7xxx.c ahc_outb(ahc, SXFRCTL0, ahc_inb(ahc, SXFRCTL0) | SPIOEN);
ahc 2935 dev/ic/aic7xxx.c ahc_outb(ahc, SCSIDATL, ahc->msgout_buf[ahc->msgout_index++]);
ahc 2947 dev/ic/aic7xxx.c lastbyte = (ahc_inb(ahc, SCSISIGI) & ATNI) == 0;
ahc 2954 dev/ic/aic7xxx.c ahc_outb(ahc, SXFRCTL0, ahc_inb(ahc, SXFRCTL0) & ~SPIOEN);
ahc 2955 dev/ic/aic7xxx.c ahc->msgin_buf[ahc->msgin_index] = ahc_inb(ahc, SCSIDATL);
ahc 2956 dev/ic/aic7xxx.c msgdone = ahc_parse_msg(ahc, &devinfo);
ahc 2967 dev/ic/aic7xxx.c ahc->msgin_index++;
ahc 2974 dev/ic/aic7xxx.c ahc->msgin_index = 0;
ahc 2980 dev/ic/aic7xxx.c if (ahc->msgout_len != 0) {
ahc 2981 dev/ic/aic7xxx.c ahc_outb(ahc, SCSISIGO, P_MESGIN | BSYO);
ahc 2982 dev/ic/aic7xxx.c ahc_outb(ahc, SXFRCTL0,
ahc 2983 dev/ic/aic7xxx.c ahc_inb(ahc, SXFRCTL0) | SPIOEN);
ahc 2984 dev/ic/aic7xxx.c ahc->msg_type = MSG_TYPE_TARGET_MSGIN;
ahc 2985 dev/ic/aic7xxx.c ahc->msgin_index = 0;
ahc 2994 dev/ic/aic7xxx.c ahc_outb(ahc, SXFRCTL0,
ahc 2995 dev/ic/aic7xxx.c ahc_inb(ahc, SXFRCTL0) | SPIOEN);
ahc 3005 dev/ic/aic7xxx.c ahc_clear_msg_state(ahc);
ahc 3006 dev/ic/aic7xxx.c ahc_outb(ahc, RETURN_1, EXIT_MSG_LOOP);
ahc 3008 dev/ic/aic7xxx.c ahc_outb(ahc, RETURN_1, CONT_MSG_LOOP);
ahc 3018 dev/ic/aic7xxx.c ahc_sent_msg(struct ahc_softc *ahc, ahc_msgtype type, u_int msgval, int full)
ahc 3026 dev/ic/aic7xxx.c while (index < ahc->msgout_len) {
ahc 3027 dev/ic/aic7xxx.c if (ahc->msgout_buf[index] == MSG_EXTENDED) {
ahc 3030 dev/ic/aic7xxx.c end_index = index + 1 + ahc->msgout_buf[index + 1];
ahc 3031 dev/ic/aic7xxx.c if (ahc->msgout_buf[index+2] == msgval
ahc 3035 dev/ic/aic7xxx.c if (ahc->msgout_index > end_index)
ahc 3037 dev/ic/aic7xxx.c } else if (ahc->msgout_index > index)
ahc 3041 dev/ic/aic7xxx.c } else if (ahc->msgout_buf[index] >= MSG_SIMPLE_TASK
ahc 3042 dev/ic/aic7xxx.c && ahc->msgout_buf[index] <= MSG_IGN_WIDE_RESIDUE) {
ahc 3049 dev/ic/aic7xxx.c && ahc->msgout_buf[index] == msgval
ahc 3050 dev/ic/aic7xxx.c && ahc->msgout_index > index)
ahc 3065 dev/ic/aic7xxx.c ahc_parse_msg(struct ahc_softc *ahc, struct ahc_devinfo *devinfo)
ahc 3077 dev/ic/aic7xxx.c tinfo = ahc_fetch_transinfo(ahc, devinfo->channel, devinfo->our_scsiid,
ahc 3092 dev/ic/aic7xxx.c switch (ahc->msgin_buf[0]) {
ahc 3105 dev/ic/aic7xxx.c response = ahc_handle_msg_reject(ahc, devinfo);
ahc 3113 dev/ic/aic7xxx.c if (ahc->msgin_index < 2)
ahc 3115 dev/ic/aic7xxx.c switch (ahc->msgin_buf[2]) {
ahc 3124 dev/ic/aic7xxx.c if (ahc->msgin_buf[1] != MSG_EXT_SDTR_LEN) {
ahc 3136 dev/ic/aic7xxx.c if (ahc->msgin_index < (MSG_EXT_SDTR_LEN + 1))
ahc 3139 dev/ic/aic7xxx.c period = ahc->msgin_buf[3];
ahc 3141 dev/ic/aic7xxx.c saved_offset = offset = ahc->msgin_buf[4];
ahc 3142 dev/ic/aic7xxx.c syncrate = ahc_devlimited_syncrate(ahc, tinfo, &period,
ahc 3145 dev/ic/aic7xxx.c ahc_validate_offset(ahc, tinfo, syncrate, &offset,
ahc 3152 dev/ic/aic7xxx.c ahc_name(ahc), devinfo->channel,
ahc 3154 dev/ic/aic7xxx.c ahc->msgin_buf[3], saved_offset,
ahc 3157 dev/ic/aic7xxx.c ahc_set_syncrate(ahc, devinfo,
ahc 3168 dev/ic/aic7xxx.c if (ahc_sent_msg(ahc, AHCMSG_EXT, MSG_EXT_SDTR, TRUE)) {
ahc 3182 dev/ic/aic7xxx.c ahc_name(ahc), devinfo->channel,
ahc 3185 dev/ic/aic7xxx.c ahc->msgout_index = 0;
ahc 3186 dev/ic/aic7xxx.c ahc->msgout_len = 0;
ahc 3187 dev/ic/aic7xxx.c ahc_construct_sdtr(ahc, devinfo,
ahc 3189 dev/ic/aic7xxx.c ahc->msgout_index = 0;
ahc 3202 dev/ic/aic7xxx.c if (ahc->msgin_buf[1] != MSG_EXT_WDTR_LEN) {
ahc 3214 dev/ic/aic7xxx.c if (ahc->msgin_index < (MSG_EXT_WDTR_LEN + 1))
ahc 3217 dev/ic/aic7xxx.c bus_width = ahc->msgin_buf[3];
ahc 3219 dev/ic/aic7xxx.c ahc_validate_width(ahc, tinfo, &bus_width,
ahc 3224 dev/ic/aic7xxx.c ahc_name(ahc), devinfo->channel,
ahc 3229 dev/ic/aic7xxx.c if (ahc_sent_msg(ahc, AHCMSG_EXT, MSG_EXT_WDTR, TRUE)) {
ahc 3240 dev/ic/aic7xxx.c ahc_name(ahc), devinfo->channel,
ahc 3253 dev/ic/aic7xxx.c ahc_name(ahc), devinfo->channel,
ahc 3256 dev/ic/aic7xxx.c ahc->msgout_index = 0;
ahc 3257 dev/ic/aic7xxx.c ahc->msgout_len = 0;
ahc 3258 dev/ic/aic7xxx.c ahc_construct_wdtr(ahc, devinfo, bus_width);
ahc 3259 dev/ic/aic7xxx.c ahc->msgout_index = 0;
ahc 3272 dev/ic/aic7xxx.c ahc_update_neg_request(ahc, devinfo, tstate,
ahc 3274 dev/ic/aic7xxx.c ahc_set_width(ahc, devinfo, bus_width,
ahc 3282 dev/ic/aic7xxx.c ahc->msgout_index = 0;
ahc 3283 dev/ic/aic7xxx.c ahc->msgout_len = 0;
ahc 3284 dev/ic/aic7xxx.c ahc_build_transfer_msg(ahc, devinfo);
ahc 3285 dev/ic/aic7xxx.c ahc->msgout_index = 0;
ahc 3302 dev/ic/aic7xxx.c if (ahc->msgin_buf[1] != MSG_EXT_PPR_LEN) {
ahc 3314 dev/ic/aic7xxx.c if (ahc->msgin_index < (MSG_EXT_PPR_LEN + 1))
ahc 3317 dev/ic/aic7xxx.c period = ahc->msgin_buf[3];
ahc 3318 dev/ic/aic7xxx.c offset = ahc->msgin_buf[5];
ahc 3319 dev/ic/aic7xxx.c bus_width = ahc->msgin_buf[6];
ahc 3321 dev/ic/aic7xxx.c ppr_options = ahc->msgin_buf[7];
ahc 3342 dev/ic/aic7xxx.c ahc_validate_width(ahc, tinfo, &bus_width,
ahc 3344 dev/ic/aic7xxx.c syncrate = ahc_devlimited_syncrate(ahc, tinfo, &period,
ahc 3347 dev/ic/aic7xxx.c ahc_validate_offset(ahc, tinfo, syncrate,
ahc 3351 dev/ic/aic7xxx.c if (ahc_sent_msg(ahc, AHCMSG_EXT, MSG_EXT_PPR, TRUE)) {
ahc 3371 dev/ic/aic7xxx.c ahc_name(ahc), devinfo->channel,
ahc 3376 dev/ic/aic7xxx.c ahc_name(ahc), devinfo->channel,
ahc 3378 dev/ic/aic7xxx.c ahc->msgout_index = 0;
ahc 3379 dev/ic/aic7xxx.c ahc->msgout_len = 0;
ahc 3380 dev/ic/aic7xxx.c ahc_construct_ppr(ahc, devinfo, period, offset,
ahc 3382 dev/ic/aic7xxx.c ahc->msgout_index = 0;
ahc 3390 dev/ic/aic7xxx.c ahc_name(ahc), devinfo->channel,
ahc 3392 dev/ic/aic7xxx.c saved_width, ahc->msgin_buf[3],
ahc 3396 dev/ic/aic7xxx.c ahc_set_width(ahc, devinfo, bus_width,
ahc 3399 dev/ic/aic7xxx.c ahc_set_syncrate(ahc, devinfo,
ahc 3416 dev/ic/aic7xxx.c ahc_handle_devreset(ahc, devinfo,
ahc 3420 dev/ic/aic7xxx.c ahc_restart(ahc);
ahc 3435 dev/ic/aic7xxx.c if (ahc->msgin_buf[0] == MSG_ABORT_TAG)
ahc 3436 dev/ic/aic7xxx.c tag = ahc_inb(ahc, INITIATOR_TAG);
ahc 3437 dev/ic/aic7xxx.c ahc_abort_scbs(ahc, devinfo->target, devinfo->channel,
ahc 3441 dev/ic/aic7xxx.c tstate = ahc->enabled_targets[devinfo->our_scsiid];
ahc 3447 dev/ic/aic7xxx.c ahc_queue_lstate_event(ahc, lstate,
ahc 3449 dev/ic/aic7xxx.c ahc->msgin_buf[0],
ahc 3451 dev/ic/aic7xxx.c ahc_send_lstate_events(ahc, lstate);
ahc 3454 dev/ic/aic7xxx.c ahc_restart(ahc);
ahc 3469 dev/ic/aic7xxx.c ahc->msgout_index = 0;
ahc 3470 dev/ic/aic7xxx.c ahc->msgout_len = 1;
ahc 3471 dev/ic/aic7xxx.c ahc->msgout_buf[0] = MSG_MESSAGE_REJECT;
ahc 3478 dev/ic/aic7xxx.c ahc->msgout_len = 0;
ahc 3487 dev/ic/aic7xxx.c ahc_handle_msg_reject(struct ahc_softc *ahc, struct ahc_devinfo *devinfo)
ahc 3502 dev/ic/aic7xxx.c scb_index = ahc_inb(ahc, SCB_TAG);
ahc 3503 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scb_index);
ahc 3504 dev/ic/aic7xxx.c tinfo = ahc_fetch_transinfo(ahc, devinfo->channel,
ahc 3508 dev/ic/aic7xxx.c last_msg = ahc_inb(ahc, LAST_MSG);
ahc 3510 dev/ic/aic7xxx.c if (ahc_sent_msg(ahc, AHCMSG_EXT, MSG_EXT_PPR, /*full*/FALSE)) {
ahc 3518 dev/ic/aic7xxx.c ahc_name(ahc), devinfo->channel,
ahc 3524 dev/ic/aic7xxx.c ahc->msgout_index = 0;
ahc 3525 dev/ic/aic7xxx.c ahc->msgout_len = 0;
ahc 3526 dev/ic/aic7xxx.c ahc_build_transfer_msg(ahc, devinfo);
ahc 3527 dev/ic/aic7xxx.c ahc->msgout_index = 0;
ahc 3529 dev/ic/aic7xxx.c } else if (ahc_sent_msg(ahc, AHCMSG_EXT, MSG_EXT_WDTR, /*full*/FALSE)) {
ahc 3533 dev/ic/aic7xxx.c "8bit transfers\n", ahc_name(ahc),
ahc 3535 dev/ic/aic7xxx.c ahc_set_width(ahc, devinfo, MSG_EXT_WDTR_BUS_8_BIT,
ahc 3548 dev/ic/aic7xxx.c ahc->msgout_index = 0;
ahc 3549 dev/ic/aic7xxx.c ahc->msgout_len = 0;
ahc 3550 dev/ic/aic7xxx.c ahc_build_transfer_msg(ahc, devinfo);
ahc 3551 dev/ic/aic7xxx.c ahc->msgout_index = 0;
ahc 3554 dev/ic/aic7xxx.c } else if (ahc_sent_msg(ahc, AHCMSG_EXT, MSG_EXT_SDTR, /*full*/FALSE)) {
ahc 3556 dev/ic/aic7xxx.c ahc_set_syncrate(ahc, devinfo, /*syncrate*/NULL, /*period*/0,
ahc 3562 dev/ic/aic7xxx.c ahc_name(ahc), devinfo->channel,
ahc 3572 dev/ic/aic7xxx.c "Performing non-tagged I/O\n", ahc_name(ahc),
ahc 3574 dev/ic/aic7xxx.c ahc_set_tags(ahc, devinfo, AHC_QUEUE_NONE);
ahc 3579 dev/ic/aic7xxx.c ahc_name(ahc), devinfo->channel, devinfo->target,
ahc 3582 dev/ic/aic7xxx.c ahc_set_tags(ahc, devinfo, AHC_QUEUE_BASIC);
ahc 3590 dev/ic/aic7xxx.c ahc_outb(ahc, SCB_CONTROL,
ahc 3591 dev/ic/aic7xxx.c ahc_inb(ahc, SCB_CONTROL) & mask);
ahc 3595 dev/ic/aic7xxx.c ahc_outb(ahc, MSG_OUT, MSG_IDENTIFYFLAG);
ahc 3596 dev/ic/aic7xxx.c ahc_assert_atn(ahc);
ahc 3602 dev/ic/aic7xxx.c if ((ahc->flags & AHC_SCB_BTT) == 0) {
ahc 3606 dev/ic/aic7xxx.c &(ahc->untagged_queues[devinfo->target_offset]);
ahc 3610 dev/ic/aic7xxx.c ahc_busy_tcl(ahc, BUILD_TCL(scb->hscb->scsiid, devinfo->lun),
ahc 3618 dev/ic/aic7xxx.c ahc_search_qinfifo(ahc, SCB_GET_TARGET(ahc, scb),
ahc 3619 dev/ic/aic7xxx.c SCB_GET_CHANNEL(ahc, scb),
ahc 3628 dev/ic/aic7xxx.c ahc_name(ahc), devinfo->channel, devinfo->target,
ahc 3638 dev/ic/aic7xxx.c ahc_handle_ign_wide_residue(struct ahc_softc *ahc, struct ahc_devinfo *devinfo)
ahc 3643 dev/ic/aic7xxx.c scb_index = ahc_inb(ahc, SCB_TAG);
ahc 3644 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scb_index);
ahc 3649 dev/ic/aic7xxx.c if ((ahc_inb(ahc, SEQ_FLAGS) & DPHASE) == 0
ahc 3665 dev/ic/aic7xxx.c sgptr = ahc_inb(ahc, SCB_RESIDUAL_SGPTR);
ahc 3667 dev/ic/aic7xxx.c && (ahc_inb(ahc, SCB_LUN) & SCB_XFERLEN_ODD) != 0) {
ahc 3681 dev/ic/aic7xxx.c sgptr = ahc_inl(ahc, SCB_RESIDUAL_SGPTR);
ahc 3682 dev/ic/aic7xxx.c data_cnt = ahc_inl(ahc, SCB_RESIDUAL_DATACNT);
ahc 3693 dev/ic/aic7xxx.c data_addr = ahc_inl(ahc, SHADDR);
ahc 3727 dev/ic/aic7xxx.c ahc_outl(ahc, SCB_RESIDUAL_SGPTR, sgptr);
ahc 3728 dev/ic/aic7xxx.c ahc_outl(ahc, SCB_RESIDUAL_DATACNT, data_cnt);
ahc 3735 dev/ic/aic7xxx.c ahc_outb(ahc, SCB_LUN,
ahc 3736 dev/ic/aic7xxx.c ahc_inb(ahc, SCB_LUN) ^ SCB_XFERLEN_ODD);
ahc 3747 dev/ic/aic7xxx.c ahc_reinitialize_dataptrs(struct ahc_softc *ahc)
ahc 3756 dev/ic/aic7xxx.c scb_index = ahc_inb(ahc, SCB_TAG);
ahc 3757 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scb_index);
ahc 3758 dev/ic/aic7xxx.c sgptr = (ahc_inb(ahc, SCB_RESIDUAL_SGPTR + 3) << 24)
ahc 3759 dev/ic/aic7xxx.c | (ahc_inb(ahc, SCB_RESIDUAL_SGPTR + 2) << 16)
ahc 3760 dev/ic/aic7xxx.c | (ahc_inb(ahc, SCB_RESIDUAL_SGPTR + 1) << 8)
ahc 3761 dev/ic/aic7xxx.c | ahc_inb(ahc, SCB_RESIDUAL_SGPTR);
ahc 3769 dev/ic/aic7xxx.c resid = (ahc_inb(ahc, SCB_RESIDUAL_DATACNT + 2) << 16)
ahc 3770 dev/ic/aic7xxx.c | (ahc_inb(ahc, SCB_RESIDUAL_DATACNT + 1) << 8)
ahc 3771 dev/ic/aic7xxx.c | ahc_inb(ahc, SCB_RESIDUAL_DATACNT);
ahc 3776 dev/ic/aic7xxx.c if ((ahc->flags & AHC_39BIT_ADDRESSING) != 0) {
ahc 3779 dev/ic/aic7xxx.c dscommand1 = ahc_inb(ahc, DSCOMMAND1);
ahc 3780 dev/ic/aic7xxx.c ahc_outb(ahc, DSCOMMAND1, dscommand1 | HADDLDSEL0);
ahc 3781 dev/ic/aic7xxx.c ahc_outb(ahc, HADDR,
ahc 3783 dev/ic/aic7xxx.c ahc_outb(ahc, DSCOMMAND1, dscommand1);
ahc 3785 dev/ic/aic7xxx.c ahc_outb(ahc, HADDR + 3, dataptr >> 24);
ahc 3786 dev/ic/aic7xxx.c ahc_outb(ahc, HADDR + 2, dataptr >> 16);
ahc 3787 dev/ic/aic7xxx.c ahc_outb(ahc, HADDR + 1, dataptr >> 8);
ahc 3788 dev/ic/aic7xxx.c ahc_outb(ahc, HADDR, dataptr);
ahc 3789 dev/ic/aic7xxx.c ahc_outb(ahc, HCNT + 2, resid >> 16);
ahc 3790 dev/ic/aic7xxx.c ahc_outb(ahc, HCNT + 1, resid >> 8);
ahc 3791 dev/ic/aic7xxx.c ahc_outb(ahc, HCNT, resid);
ahc 3792 dev/ic/aic7xxx.c if ((ahc->features & AHC_ULTRA2) == 0) {
ahc 3793 dev/ic/aic7xxx.c ahc_outb(ahc, STCNT + 2, resid >> 16);
ahc 3794 dev/ic/aic7xxx.c ahc_outb(ahc, STCNT + 1, resid >> 8);
ahc 3795 dev/ic/aic7xxx.c ahc_outb(ahc, STCNT, resid);
ahc 3803 dev/ic/aic7xxx.c ahc_handle_devreset(struct ahc_softc *ahc, struct ahc_devinfo *devinfo,
ahc 3812 dev/ic/aic7xxx.c found = ahc_abort_scbs(ahc, devinfo->target, devinfo->channel,
ahc 3821 dev/ic/aic7xxx.c tstate = ahc->enabled_targets[devinfo->our_scsiid];
ahc 3830 dev/ic/aic7xxx.c ahc_queue_lstate_event(ahc, lstate, devinfo->our_scsiid,
ahc 3832 dev/ic/aic7xxx.c ahc_send_lstate_events(ahc, lstate);
ahc 3840 dev/ic/aic7xxx.c ahc_set_width(ahc, devinfo, MSG_EXT_WDTR_BUS_8_BIT,
ahc 3842 dev/ic/aic7xxx.c ahc_set_syncrate(ahc, devinfo, /*syncrate*/NULL,
ahc 3847 dev/ic/aic7xxx.c ahc_send_async(ahc, devinfo->channel, devinfo->target,
ahc 3852 dev/ic/aic7xxx.c printf("%s: %s on %c:%d. %d SCBs aborted\n", ahc_name(ahc),
ahc 3858 dev/ic/aic7xxx.c ahc_setup_target_msgin(struct ahc_softc *ahc, struct ahc_devinfo *devinfo,
ahc 3867 dev/ic/aic7xxx.c ahc->msgout_index = 0;
ahc 3868 dev/ic/aic7xxx.c ahc->msgout_len = 0;
ahc 3871 dev/ic/aic7xxx.c ahc_build_transfer_msg(ahc, devinfo);
ahc 3875 dev/ic/aic7xxx.c ahc->msgout_index = 0;
ahc 3876 dev/ic/aic7xxx.c ahc->msg_type = MSG_TYPE_TARGET_MSGIN;
ahc 3881 dev/ic/aic7xxx.c ahc_softc_init(struct ahc_softc *ahc)
ahc 3885 dev/ic/aic7xxx.c if ((ahc->chip & AHC_PCI) == 0)
ahc 3886 dev/ic/aic7xxx.c ahc->unpause = ahc_inb(ahc, HCNTRL) & IRQMS;
ahc 3888 dev/ic/aic7xxx.c ahc->unpause = 0;
ahc 3889 dev/ic/aic7xxx.c ahc->pause = ahc->unpause | PAUSE;
ahc 3891 dev/ic/aic7xxx.c if (ahc->scb_data == NULL) {
ahc 3892 dev/ic/aic7xxx.c ahc->scb_data = malloc(sizeof(*ahc->scb_data),
ahc 3894 dev/ic/aic7xxx.c if (ahc->scb_data == NULL)
ahc 3896 dev/ic/aic7xxx.c memset(ahc->scb_data, 0, sizeof(*ahc->scb_data));
ahc 3903 dev/ic/aic7xxx.c ahc_softc_insert(struct ahc_softc *ahc)
ahc 3912 dev/ic/aic7xxx.c if ((ahc->chip & AHC_BUS_MASK) == AHC_PCI
ahc 3913 dev/ic/aic7xxx.c && (ahc->features & AHC_MULTI_FUNC) != 0) {
ahc 3919 dev/ic/aic7xxx.c pci = ahc->dev_softc;
ahc 3927 dev/ic/aic7xxx.c slave = ahc;
ahc 3929 dev/ic/aic7xxx.c master = ahc;
ahc 3949 dev/ic/aic7xxx.c && ahc_softc_comp(ahc, list_ahc) <= 0)
ahc 3952 dev/ic/aic7xxx.c TAILQ_INSERT_BEFORE(list_ahc, ahc, links);
ahc 3954 dev/ic/aic7xxx.c TAILQ_INSERT_TAIL(&ahc_tailq, ahc, links);
ahc 3955 dev/ic/aic7xxx.c ahc->init_level++;
ahc 3959 dev/ic/aic7xxx.c ahc_set_unit(struct ahc_softc *ahc, int unit)
ahc 3961 dev/ic/aic7xxx.c ahc->unit = unit;
ahc 3965 dev/ic/aic7xxx.c ahc_set_name(struct ahc_softc *ahc, char *name)
ahc 3967 dev/ic/aic7xxx.c if (ahc->name != NULL)
ahc 3968 dev/ic/aic7xxx.c free(ahc->name, M_DEVBUF);
ahc 3969 dev/ic/aic7xxx.c ahc->name = name;
ahc 3973 dev/ic/aic7xxx.c ahc_free(struct ahc_softc *ahc)
ahc 3977 dev/ic/aic7xxx.c switch (ahc->init_level) {
ahc 3980 dev/ic/aic7xxx.c ahc_shutdown(ahc);
ahc 3983 dev/ic/aic7xxx.c bus_dmamap_unload(ahc->parent_dmat, ahc->shared_data_dmamap);
ahc 3984 dev/ic/aic7xxx.c bus_dmamap_destroy(ahc->parent_dmat, ahc->shared_data_dmamap);
ahc 3985 dev/ic/aic7xxx.c bus_dmamem_unmap(ahc->parent_dmat, (caddr_t)ahc->qoutfifo, ahc->shared_data_size);
ahc 3986 dev/ic/aic7xxx.c bus_dmamem_free(ahc->parent_dmat, &ahc->shared_data_seg, ahc->shared_data_nseg);
ahc 3992 dev/ic/aic7xxx.c ahc_platform_free(ahc);
ahc 3993 dev/ic/aic7xxx.c ahc_fini_scbdata(ahc);
ahc 3997 dev/ic/aic7xxx.c tstate = ahc->enabled_targets[i];
ahc 4016 dev/ic/aic7xxx.c if (ahc->black_hole != NULL) {
ahc 4018 dev/ic/aic7xxx.c free(ahc->black_hole, M_DEVBUF);
ahc 4022 dev/ic/aic7xxx.c if (ahc->name != NULL)
ahc 4023 dev/ic/aic7xxx.c free(ahc->name, M_DEVBUF);
ahc 4025 dev/ic/aic7xxx.c if (ahc->seep_config != NULL)
ahc 4026 dev/ic/aic7xxx.c free(ahc->seep_config, M_DEVBUF);
ahc 4028 dev/ic/aic7xxx.c free(ahc, M_DEVBUF);
ahc 4036 dev/ic/aic7xxx.c struct ahc_softc *ahc;
ahc 4039 dev/ic/aic7xxx.c ahc = (struct ahc_softc *)arg;
ahc 4042 dev/ic/aic7xxx.c ahc_reset(ahc, /*reinit*/FALSE);
ahc 4043 dev/ic/aic7xxx.c ahc_outb(ahc, SCSISEQ, 0);
ahc 4044 dev/ic/aic7xxx.c ahc_outb(ahc, SXFRCTL0, 0);
ahc 4045 dev/ic/aic7xxx.c ahc_outb(ahc, DSPCISTATUS, 0);
ahc 4048 dev/ic/aic7xxx.c ahc_outb(ahc, i, 0);
ahc 4061 dev/ic/aic7xxx.c ahc_reset(struct ahc_softc *ahc, int reinit)
ahc 4073 dev/ic/aic7xxx.c ahc_pause(ahc);
ahc 4075 dev/ic/aic7xxx.c if ((ahc->chip & AHC_CHIPID_MASK) == AHC_AIC7770) {
ahc 4082 dev/ic/aic7xxx.c sblkctl = ahc_inb(ahc, SBLKCTL);
ahc 4083 dev/ic/aic7xxx.c ahc_outb(ahc, SBLKCTL, sblkctl | SELBUSB);
ahc 4084 dev/ic/aic7xxx.c sxfrctl1_b = ahc_inb(ahc, SXFRCTL1);
ahc 4085 dev/ic/aic7xxx.c ahc_outb(ahc, SBLKCTL, sblkctl & ~SELBUSB);
ahc 4087 dev/ic/aic7xxx.c sxfrctl1_a = ahc_inb(ahc, SXFRCTL1);
ahc 4089 dev/ic/aic7xxx.c ahc_outb(ahc, HCNTRL, CHIPRST | ahc->pause);
ahc 4100 dev/ic/aic7xxx.c } while (--wait && !(ahc_inb(ahc, HCNTRL) & CHIPRSTACK));
ahc 4104 dev/ic/aic7xxx.c "Trying to initialize anyway.\n", ahc_name(ahc));
ahc 4106 dev/ic/aic7xxx.c ahc_outb(ahc, HCNTRL, ahc->pause);
ahc 4109 dev/ic/aic7xxx.c sblkctl = ahc_inb(ahc, SBLKCTL) & (SELBUSB|SELWIDE);
ahc 4111 dev/ic/aic7xxx.c if ((ahc->chip & AHC_PCI) != 0)
ahc 4119 dev/ic/aic7xxx.c ahc->features |= AHC_WIDE;
ahc 4123 dev/ic/aic7xxx.c ahc->features |= AHC_TWIN;
ahc 4138 dev/ic/aic7xxx.c if ((ahc->features & AHC_TWIN) != 0) {
ahc 4141 dev/ic/aic7xxx.c sblkctl = ahc_inb(ahc, SBLKCTL);
ahc 4142 dev/ic/aic7xxx.c ahc_outb(ahc, SBLKCTL, sblkctl | SELBUSB);
ahc 4143 dev/ic/aic7xxx.c ahc_outb(ahc, SXFRCTL1, sxfrctl1_b);
ahc 4144 dev/ic/aic7xxx.c ahc_outb(ahc, SBLKCTL, sblkctl & ~SELBUSB);
ahc 4146 dev/ic/aic7xxx.c ahc_outb(ahc, SXFRCTL1, sxfrctl1_a);
ahc 4154 dev/ic/aic7xxx.c error = ahc->bus_chip_init(ahc);
ahc 4157 dev/ic/aic7xxx.c ahc_dumpseq(ahc);
ahc 4167 dev/ic/aic7xxx.c ahc_probe_scbs(struct ahc_softc *ahc) {
ahc 4172 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, i);
ahc 4173 dev/ic/aic7xxx.c ahc_outb(ahc, SCB_BASE, i);
ahc 4174 dev/ic/aic7xxx.c if (ahc_inb(ahc, SCB_BASE) != i)
ahc 4176 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, 0);
ahc 4177 dev/ic/aic7xxx.c if (ahc_inb(ahc, SCB_BASE) != 0)
ahc 4195 dev/ic/aic7xxx.c ahc_build_free_scb_list(struct ahc_softc *ahc)
ahc 4201 dev/ic/aic7xxx.c if ((ahc->flags & AHC_LSCBS_ENABLED) != 0)
ahc 4204 dev/ic/aic7xxx.c for (i = 0; i < ahc->scb_data->maxhscbs; i++) {
ahc 4207 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, i);
ahc 4215 dev/ic/aic7xxx.c ahc_outb(ahc, SCB_BASE+j, 0xFF);
ahc 4218 dev/ic/aic7xxx.c ahc_outb(ahc, SCB_CONTROL, 0);
ahc 4221 dev/ic/aic7xxx.c if ((ahc->flags & AHC_PAGESCBS) != 0)
ahc 4222 dev/ic/aic7xxx.c ahc_outb(ahc, SCB_NEXT, i+1);
ahc 4224 dev/ic/aic7xxx.c ahc_outb(ahc, SCB_NEXT, SCB_LIST_NULL);
ahc 4227 dev/ic/aic7xxx.c ahc_outb(ahc, SCB_TAG, SCB_LIST_NULL);
ahc 4228 dev/ic/aic7xxx.c ahc_outb(ahc, SCB_SCSIID, 0xFF);
ahc 4229 dev/ic/aic7xxx.c ahc_outb(ahc, SCB_LUN, 0xFF);
ahc 4232 dev/ic/aic7xxx.c if ((ahc->flags & AHC_PAGESCBS) != 0) {
ahc 4234 dev/ic/aic7xxx.c ahc_outb(ahc, FREE_SCBH, 0);
ahc 4237 dev/ic/aic7xxx.c ahc_outb(ahc, FREE_SCBH, SCB_LIST_NULL);
ahc 4241 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, i-1);
ahc 4242 dev/ic/aic7xxx.c ahc_outb(ahc, SCB_NEXT, SCB_LIST_NULL);
ahc 4246 dev/ic/aic7xxx.c ahc_init_scbdata(struct ahc_softc *ahc)
ahc 4251 dev/ic/aic7xxx.c scb_data = ahc->scb_data;
ahc 4265 dev/ic/aic7xxx.c scb_data->maxhscbs = ahc_probe_scbs(ahc);
ahc 4266 dev/ic/aic7xxx.c if (ahc->scb_data->maxhscbs == 0) {
ahc 4267 dev/ic/aic7xxx.c printf("%s: No SCB space found\n", ahc_name(ahc));
ahc 4281 dev/ic/aic7xxx.c if (ahc_createdmamem(ahc->parent_dmat,
ahc 4282 dev/ic/aic7xxx.c AHC_SCB_MAX * sizeof(struct hardware_scb), ahc->sc_dmaflags,
ahc 4285 dev/ic/aic7xxx.c &scb_data->hscb_seg, &scb_data->hscb_nseg, ahc_name(ahc),
ahc 4291 dev/ic/aic7xxx.c if (ahc_createdmamem(ahc->parent_dmat,
ahc 4292 dev/ic/aic7xxx.c AHC_SCB_MAX * sizeof(struct scsi_sense_data), ahc->sc_dmaflags,
ahc 4295 dev/ic/aic7xxx.c &scb_data->sense_nseg, ahc_name(ahc), "sense buffers") < 0)
ahc 4305 dev/ic/aic7xxx.c ahc_alloc_scbs(ahc);
ahc 4312 dev/ic/aic7xxx.c ahc_name(ahc));
ahc 4319 dev/ic/aic7xxx.c ahc->next_queued_scb = ahc_get_scb(ahc);
ahc 4332 dev/ic/aic7xxx.c ahc_fini_scbdata(struct ahc_softc *ahc)
ahc 4336 dev/ic/aic7xxx.c scb_data = ahc->scb_data;
ahc 4348 dev/ic/aic7xxx.c ahc_freedmamem(ahc->parent_dmat, PAGE_SIZE,
ahc 4356 dev/ic/aic7xxx.c ahc_freedmamem(ahc->parent_dmat,
ahc 4362 dev/ic/aic7xxx.c ahc_freedmamem(ahc->parent_dmat,
ahc 4377 dev/ic/aic7xxx.c ahc_alloc_scbs(struct ahc_softc *ahc)
ahc 4387 dev/ic/aic7xxx.c scb_data = ahc->scb_data;
ahc 4400 dev/ic/aic7xxx.c if (ahc_createdmamem(ahc->parent_dmat, PAGE_SIZE, ahc->sc_dmaflags,
ahc 4403 dev/ic/aic7xxx.c &sg_map->sg_dmasegs, &sg_map->sg_nseg, ahc_name(ahc),
ahc 4436 dev/ic/aic7xxx.c next_scb->ahc_softc = ahc;
ahc 4439 dev/ic/aic7xxx.c error = bus_dmamap_create(ahc->parent_dmat,
ahc 4441 dev/ic/aic7xxx.c BUS_DMA_NOWAIT|BUS_DMA_ALLOCNOW|ahc->sc_dmaflags,
ahc 4447 dev/ic/aic7xxx.c next_scb->hscb->tag = ahc->scb_data->numscbs;
ahc 4448 dev/ic/aic7xxx.c SLIST_INSERT_HEAD(&ahc->scb_data->free_scbs,
ahc 4453 dev/ic/aic7xxx.c ahc->scb_data->numscbs++;
ahc 4459 dev/ic/aic7xxx.c ahc_controller_info(struct ahc_softc *ahc, char *buf, size_t buf_len)
ahc 4464 dev/ic/aic7xxx.c ahc_chip_names[ahc->chip & AHC_CHIPID_MASK]);
ahc 4466 dev/ic/aic7xxx.c if ((ahc->features & AHC_TWIN) != 0)
ahc 4469 dev/ic/aic7xxx.c "primary %c, ", ahc->our_id, ahc->our_id_b,
ahc 4470 dev/ic/aic7xxx.c (ahc->flags & AHC_PRIMARY_CHANNEL) + 'A');
ahc 4476 dev/ic/aic7xxx.c if ((ahc->features & AHC_ULTRA) != 0) {
ahc 4478 dev/ic/aic7xxx.c } else if ((ahc->features & AHC_DT) != 0) {
ahc 4480 dev/ic/aic7xxx.c } else if ((ahc->features & AHC_ULTRA2) != 0) {
ahc 4483 dev/ic/aic7xxx.c if ((ahc->features & AHC_WIDE) != 0) {
ahc 4490 dev/ic/aic7xxx.c speed, type, ahc->channel, ahc->our_id);
ahc 4494 dev/ic/aic7xxx.c if ((ahc->flags & AHC_PAGESCBS) != 0)
ahc 4496 dev/ic/aic7xxx.c ahc->scb_data->maxhscbs, AHC_MAX_QUEUE);
ahc 4499 dev/ic/aic7xxx.c ahc->scb_data->maxhscbs);
ahc 4504 dev/ic/aic7xxx.c ahc_chip_init(struct ahc_softc *ahc)
ahc 4513 dev/ic/aic7xxx.c ahc_outb(ahc, SEQ_FLAGS, 0);
ahc 4514 dev/ic/aic7xxx.c ahc_outb(ahc, SEQ_FLAGS2, 0);
ahc 4517 dev/ic/aic7xxx.c if (ahc->features & AHC_TWIN) {
ahc 4522 dev/ic/aic7xxx.c ahc_outb(ahc, SBLKCTL, ahc_inb(ahc, SBLKCTL) | SELBUSB);
ahc 4523 dev/ic/aic7xxx.c term = (ahc->flags & AHC_TERM_ENB_B) != 0 ? STPWEN : 0;
ahc 4524 dev/ic/aic7xxx.c ahc_outb(ahc, SCSIID, ahc->our_id_b);
ahc 4525 dev/ic/aic7xxx.c scsi_conf = ahc_inb(ahc, SCSICONF + 1);
ahc 4526 dev/ic/aic7xxx.c ahc_outb(ahc, SXFRCTL1, (scsi_conf & (ENSPCHK|STIMESEL))
ahc 4527 dev/ic/aic7xxx.c |term|ahc->seltime_b|ENSTIMER|ACTNEGEN);
ahc 4528 dev/ic/aic7xxx.c if ((ahc->features & AHC_ULTRA2) != 0)
ahc 4529 dev/ic/aic7xxx.c ahc_outb(ahc, SIMODE0, ahc_inb(ahc, SIMODE0)|ENIOERR);
ahc 4530 dev/ic/aic7xxx.c ahc_outb(ahc, SIMODE1, ENSELTIMO|ENSCSIRST|ENSCSIPERR);
ahc 4531 dev/ic/aic7xxx.c ahc_outb(ahc, SXFRCTL0, DFON|SPIOEN);
ahc 4534 dev/ic/aic7xxx.c ahc_outb(ahc, SBLKCTL, ahc_inb(ahc, SBLKCTL) & ~SELBUSB);
ahc 4536 dev/ic/aic7xxx.c term = (ahc->flags & AHC_TERM_ENB_A) != 0 ? STPWEN : 0;
ahc 4537 dev/ic/aic7xxx.c if ((ahc->features & AHC_ULTRA2) != 0)
ahc 4538 dev/ic/aic7xxx.c ahc_outb(ahc, SCSIID_ULTRA2, ahc->our_id);
ahc 4540 dev/ic/aic7xxx.c ahc_outb(ahc, SCSIID, ahc->our_id);
ahc 4541 dev/ic/aic7xxx.c scsi_conf = ahc_inb(ahc, SCSICONF);
ahc 4542 dev/ic/aic7xxx.c ahc_outb(ahc, SXFRCTL1, (scsi_conf & (ENSPCHK|STIMESEL))
ahc 4543 dev/ic/aic7xxx.c |term|ahc->seltime
ahc 4545 dev/ic/aic7xxx.c if ((ahc->features & AHC_ULTRA2) != 0)
ahc 4546 dev/ic/aic7xxx.c ahc_outb(ahc, SIMODE0, ahc_inb(ahc, SIMODE0)|ENIOERR);
ahc 4547 dev/ic/aic7xxx.c ahc_outb(ahc, SIMODE1, ENSELTIMO|ENSCSIRST|ENSCSIPERR);
ahc 4548 dev/ic/aic7xxx.c ahc_outb(ahc, SXFRCTL0, DFON|SPIOEN);
ahc 4552 dev/ic/aic7xxx.c ahc_unbusy_tcl(ahc, BUILD_TCL(i << 4, 0));
ahc 4553 dev/ic/aic7xxx.c if ((ahc->flags & AHC_SCB_BTT) != 0) {
ahc 4561 dev/ic/aic7xxx.c ahc_unbusy_tcl(ahc, BUILD_TCL(i << 4, lun));
ahc 4567 dev/ic/aic7xxx.c ahc->qoutfifo[i] = SCB_LIST_NULL;
ahc 4569 dev/ic/aic7xxx.c ahc_sync_qoutfifo(ahc, BUS_DMASYNC_PREWRITE|BUS_DMASYNC_PREREAD);
ahc 4571 dev/ic/aic7xxx.c ahc_sync_qoutfifo(ahc, BUS_DMASYNC_PREREAD);
ahc 4574 dev/ic/aic7xxx.c ahc->qinfifo[i] = SCB_LIST_NULL;
ahc 4576 dev/ic/aic7xxx.c if ((ahc->features & AHC_MULTI_TID) != 0) {
ahc 4577 dev/ic/aic7xxx.c ahc_outb(ahc, TARGID, 0);
ahc 4578 dev/ic/aic7xxx.c ahc_outb(ahc, TARGID + 1, 0);
ahc 4584 dev/ic/aic7xxx.c physaddr = ahc->scb_data->hscb_busaddr;
ahc 4585 dev/ic/aic7xxx.c ahc_outb(ahc, HSCB_ADDR, physaddr & 0xFF);
ahc 4586 dev/ic/aic7xxx.c ahc_outb(ahc, HSCB_ADDR + 1, (physaddr >> 8) & 0xFF);
ahc 4587 dev/ic/aic7xxx.c ahc_outb(ahc, HSCB_ADDR + 2, (physaddr >> 16) & 0xFF);
ahc 4588 dev/ic/aic7xxx.c ahc_outb(ahc, HSCB_ADDR + 3, (physaddr >> 24) & 0xFF);
ahc 4590 dev/ic/aic7xxx.c physaddr = ahc->shared_data_busaddr;
ahc 4591 dev/ic/aic7xxx.c ahc_outb(ahc, SHARED_DATA_ADDR, physaddr & 0xFF);
ahc 4592 dev/ic/aic7xxx.c ahc_outb(ahc, SHARED_DATA_ADDR + 1, (physaddr >> 8) & 0xFF);
ahc 4593 dev/ic/aic7xxx.c ahc_outb(ahc, SHARED_DATA_ADDR + 2, (physaddr >> 16) & 0xFF);
ahc 4594 dev/ic/aic7xxx.c ahc_outb(ahc, SHARED_DATA_ADDR + 3, (physaddr >> 24) & 0xFF);
ahc 4601 dev/ic/aic7xxx.c ahc_outb(ahc, CMDSIZE_TABLE, 5);
ahc 4602 dev/ic/aic7xxx.c ahc_outb(ahc, CMDSIZE_TABLE + 1, 9);
ahc 4603 dev/ic/aic7xxx.c ahc_outb(ahc, CMDSIZE_TABLE + 2, 9);
ahc 4604 dev/ic/aic7xxx.c ahc_outb(ahc, CMDSIZE_TABLE + 3, 0);
ahc 4605 dev/ic/aic7xxx.c ahc_outb(ahc, CMDSIZE_TABLE + 4, 15);
ahc 4606 dev/ic/aic7xxx.c ahc_outb(ahc, CMDSIZE_TABLE + 5, 11);
ahc 4607 dev/ic/aic7xxx.c ahc_outb(ahc, CMDSIZE_TABLE + 6, 0);
ahc 4608 dev/ic/aic7xxx.c ahc_outb(ahc, CMDSIZE_TABLE + 7, 0);
ahc 4610 dev/ic/aic7xxx.c if ((ahc->features & AHC_HS_MAILBOX) != 0)
ahc 4611 dev/ic/aic7xxx.c ahc_outb(ahc, HS_MAILBOX, 0);
ahc 4614 dev/ic/aic7xxx.c if ((ahc->features & AHC_TARGETMODE) != 0) {
ahc 4615 dev/ic/aic7xxx.c ahc->tqinfifonext = 1;
ahc 4616 dev/ic/aic7xxx.c ahc_outb(ahc, KERNEL_TQINPOS, ahc->tqinfifonext - 1);
ahc 4617 dev/ic/aic7xxx.c ahc_outb(ahc, TQINPOS, ahc->tqinfifonext);
ahc 4619 dev/ic/aic7xxx.c ahc->qinfifonext = 0;
ahc 4620 dev/ic/aic7xxx.c ahc->qoutfifonext = 0;
ahc 4621 dev/ic/aic7xxx.c if ((ahc->features & AHC_QUEUE_REGS) != 0) {
ahc 4622 dev/ic/aic7xxx.c ahc_outb(ahc, QOFF_CTLSTA, SCB_QSIZE_256);
ahc 4623 dev/ic/aic7xxx.c ahc_outb(ahc, HNSCB_QOFF, ahc->qinfifonext);
ahc 4624 dev/ic/aic7xxx.c ahc_outb(ahc, SNSCB_QOFF, ahc->qinfifonext);
ahc 4625 dev/ic/aic7xxx.c ahc_outb(ahc, SDSCB_QOFF, 0);
ahc 4627 dev/ic/aic7xxx.c ahc_outb(ahc, KERNEL_QINPOS, ahc->qinfifonext);
ahc 4628 dev/ic/aic7xxx.c ahc_outb(ahc, QINPOS, ahc->qinfifonext);
ahc 4629 dev/ic/aic7xxx.c ahc_outb(ahc, QOUTPOS, ahc->qoutfifonext);
ahc 4633 dev/ic/aic7xxx.c ahc_outb(ahc, WAITING_SCBH, SCB_LIST_NULL);
ahc 4636 dev/ic/aic7xxx.c ahc_outb(ahc, DISCONNECTED_SCBH, SCB_LIST_NULL);
ahc 4639 dev/ic/aic7xxx.c ahc_outb(ahc, MSG_OUT, MSG_NOOP);
ahc 4647 dev/ic/aic7xxx.c if ((ahc->flags & AHC_INITIATORROLE) != 0)
ahc 4649 dev/ic/aic7xxx.c ahc_outb(ahc, SCSISEQ_TEMPLATE, scsiseq_template);
ahc 4652 dev/ic/aic7xxx.c ahc_build_free_scb_list(ahc);
ahc 4657 dev/ic/aic7xxx.c ahc_outb(ahc, NEXT_QUEUED_SCB, ahc->next_queued_scb->hscb->tag);
ahc 4665 dev/ic/aic7xxx.c ahc_name(ahc));
ahc 4667 dev/ic/aic7xxx.c error = ahc_loadseq(ahc);
ahc 4671 dev/ic/aic7xxx.c if ((ahc->features & AHC_ULTRA2) != 0) {
ahc 4682 dev/ic/aic7xxx.c (ahc_inb(ahc, SBLKCTL) & (ENAB40|ENAB20)) == 0 && wait;
ahc 4686 dev/ic/aic7xxx.c ahc_restart(ahc);
ahc 4694 dev/ic/aic7xxx.c ahc_init(struct ahc_softc *ahc)
ahc 4706 dev/ic/aic7xxx.c ahc->flags |= AHC_SEQUENCER_DEBUG;
ahc 4715 dev/ic/aic7xxx.c printf (" 0x%x", ahc_inb(ahc, i));
ahc 4717 dev/ic/aic7xxx.c if ((ahc->features & AHC_MORE_SRAM) != 0) {
ahc 4722 dev/ic/aic7xxx.c printf (" 0x%x", ahc_inb(ahc, i));
ahc 4730 dev/ic/aic7xxx.c ahc_outb(ahc, CLRINT, CLRPARERR);
ahc 4731 dev/ic/aic7xxx.c ahc_outb(ahc, CLRINT, CLRBRKADRINT);
ahc 4738 dev/ic/aic7xxx.c if ((ahc->flags & AHC_USEDEFAULTS) != 0)
ahc 4739 dev/ic/aic7xxx.c ahc->our_id = ahc->our_id_b = 7;
ahc 4744 dev/ic/aic7xxx.c ahc->flags |= AHC_INITIATORROLE;
ahc 4750 dev/ic/aic7xxx.c ahc->features &= ~AHC_TARGETMODE;
ahc 4762 dev/ic/aic7xxx.c if ((ahc->features & AHC_TARGETMODE) != 0)
ahc 4766 dev/ic/aic7xxx.c ahc->init_level++;
ahc 4768 dev/ic/aic7xxx.c if (ahc_createdmamem(ahc->parent_dmat, driver_data_size,
ahc 4769 dev/ic/aic7xxx.c ahc->sc_dmaflags,
ahc 4770 dev/ic/aic7xxx.c &ahc->shared_data_dmamap, (caddr_t *)&ahc->qoutfifo,
ahc 4771 dev/ic/aic7xxx.c &ahc->shared_data_busaddr, &ahc->shared_data_seg,
ahc 4772 dev/ic/aic7xxx.c &ahc->shared_data_nseg, ahc_name(ahc), "shared data") < 0)
ahc 4775 dev/ic/aic7xxx.c ahc->init_level++;
ahc 4777 dev/ic/aic7xxx.c if ((ahc->features & AHC_TARGETMODE) != 0) {
ahc 4778 dev/ic/aic7xxx.c ahc->targetcmds = (struct target_cmd *)ahc->qoutfifo;
ahc 4779 dev/ic/aic7xxx.c ahc->qoutfifo = (uint8_t *)&ahc->targetcmds[AHC_TMODE_CMDS];
ahc 4780 dev/ic/aic7xxx.c ahc->dma_bug_buf = ahc->shared_data_busaddr
ahc 4784 dev/ic/aic7xxx.c ahc->targetcmds[i].cmd_valid = 0;
ahc 4786 dev/ic/aic7xxx.c ahc_sync_tqinfifo(ahc, BUS_DMASYNC_PREWRITE|BUS_DMASYNC_PREREAD);
ahc 4788 dev/ic/aic7xxx.c ahc_sync_tqinfifo(ahc, BUS_DMASYNC_PREREAD);
ahc 4790 dev/ic/aic7xxx.c ahc->qoutfifo = (uint8_t *)&ahc->targetcmds[256];
ahc 4792 dev/ic/aic7xxx.c ahc->qinfifo = &ahc->qoutfifo[256];
ahc 4794 dev/ic/aic7xxx.c ahc->init_level++;
ahc 4797 dev/ic/aic7xxx.c if (ahc->scb_data->maxhscbs == 0)
ahc 4798 dev/ic/aic7xxx.c if (ahc_init_scbdata(ahc) != 0)
ahc 4806 dev/ic/aic7xxx.c if (ahc_alloc_tstate(ahc, ahc->our_id, 'A') == NULL) {
ahc 4808 dev/ic/aic7xxx.c "Failing attach\n", ahc_name(ahc));
ahc 4812 dev/ic/aic7xxx.c if ((ahc->features & AHC_TWIN) != 0) {
ahc 4813 dev/ic/aic7xxx.c if (ahc_alloc_tstate(ahc, ahc->our_id_b, 'B') == NULL) {
ahc 4815 dev/ic/aic7xxx.c "Failing attach\n", ahc_name(ahc));
ahc 4820 dev/ic/aic7xxx.c ahc_outb(ahc, SEQ_FLAGS, 0);
ahc 4821 dev/ic/aic7xxx.c ahc_outb(ahc, SEQ_FLAGS2, 0);
ahc 4823 dev/ic/aic7xxx.c if (ahc->scb_data->maxhscbs < AHC_SCB_MAX_ALLOC) {
ahc 4824 dev/ic/aic7xxx.c ahc->flags |= AHC_PAGESCBS;
ahc 4826 dev/ic/aic7xxx.c ahc->flags &= ~AHC_PAGESCBS;
ahc 4833 dev/ic/aic7xxx.c ahc_name(ahc),
ahc 4844 dev/ic/aic7xxx.c if (ahc->features & AHC_TWIN) {
ahc 4845 dev/ic/aic7xxx.c scsi_conf = ahc_inb(ahc, SCSICONF + 1);
ahc 4847 dev/ic/aic7xxx.c && (ahc->flags & AHC_INITIATORROLE) != 0)
ahc 4848 dev/ic/aic7xxx.c ahc->flags |= AHC_RESET_BUS_B;
ahc 4851 dev/ic/aic7xxx.c scsi_conf = ahc_inb(ahc, SCSICONF);
ahc 4853 dev/ic/aic7xxx.c && (ahc->flags & AHC_INITIATORROLE) != 0)
ahc 4854 dev/ic/aic7xxx.c ahc->flags |= AHC_RESET_BUS_A;
ahc 4860 dev/ic/aic7xxx.c if ((ahc->flags & AHC_USEDEFAULTS) != 0) {
ahc 4862 dev/ic/aic7xxx.c "device parameters\n", ahc_name(ahc));
ahc 4863 dev/ic/aic7xxx.c ahc->flags |= AHC_EXTENDED_TRANS_A|AHC_EXTENDED_TRANS_B|
ahc 4866 dev/ic/aic7xxx.c if ((ahc->features & AHC_ULTRA) != 0)
ahc 4869 dev/ic/aic7xxx.c discenable = ~((ahc_inb(ahc, DISC_DSB + 1) << 8)
ahc 4870 dev/ic/aic7xxx.c | ahc_inb(ahc, DISC_DSB));
ahc 4871 dev/ic/aic7xxx.c if ((ahc->features & (AHC_ULTRA|AHC_ULTRA2)) != 0)
ahc 4872 dev/ic/aic7xxx.c ultraenb = (ahc_inb(ahc, ULTRA_ENB + 1) << 8)
ahc 4873 dev/ic/aic7xxx.c | ahc_inb(ahc, ULTRA_ENB);
ahc 4876 dev/ic/aic7xxx.c if ((ahc->features & (AHC_WIDE|AHC_TWIN)) == 0)
ahc 4887 dev/ic/aic7xxx.c our_id = ahc->our_id;
ahc 4889 dev/ic/aic7xxx.c if (i > 7 && (ahc->features & AHC_TWIN) != 0) {
ahc 4891 dev/ic/aic7xxx.c our_id = ahc->our_id_b;
ahc 4894 dev/ic/aic7xxx.c tinfo = ahc_fetch_transinfo(ahc, channel, our_id,
ahc 4898 dev/ic/aic7xxx.c if (ahc->flags & AHC_USEDEFAULTS) {
ahc 4899 dev/ic/aic7xxx.c if ((ahc->features & AHC_WIDE) != 0)
ahc 4913 dev/ic/aic7xxx.c scsirate = ahc_inb(ahc, TARG_SCSIRATE + i);
ahc 4915 dev/ic/aic7xxx.c if ((ahc->features & AHC_ULTRA2) != 0) {
ahc 4930 dev/ic/aic7xxx.c offset = ahc_inb(ahc, TARG_OFFSET + i);
ahc 4935 dev/ic/aic7xxx.c if ((ahc->features & AHC_DT) != 0)
ahc 4938 dev/ic/aic7xxx.c ahc_find_period(ahc, scsirate, maxsync);
ahc 4944 dev/ic/aic7xxx.c && (ahc->features & AHC_DT) != 0)
ahc 4955 dev/ic/aic7xxx.c ahc_find_period(ahc, scsirate,
ahc 4965 dev/ic/aic7xxx.c && (ahc->features & AHC_WIDE) != 0)
ahc 4968 dev/ic/aic7xxx.c if ((ahc->features & AHC_DT) != 0)
ahc 4980 dev/ic/aic7xxx.c ahc->user_discenable = discenable;
ahc 4981 dev/ic/aic7xxx.c ahc->user_tagenable = tagenable;
ahc 4983 dev/ic/aic7xxx.c return (ahc->bus_chip_init(ahc));
ahc 4987 dev/ic/aic7xxx.c ahc_intr_enable(struct ahc_softc *ahc, int enable)
ahc 4991 dev/ic/aic7xxx.c hcntrl = ahc_inb(ahc, HCNTRL);
ahc 4993 dev/ic/aic7xxx.c ahc->pause &= ~INTEN;
ahc 4994 dev/ic/aic7xxx.c ahc->unpause &= ~INTEN;
ahc 4997 dev/ic/aic7xxx.c ahc->pause |= INTEN;
ahc 4998 dev/ic/aic7xxx.c ahc->unpause |= INTEN;
ahc 5000 dev/ic/aic7xxx.c ahc_outb(ahc, HCNTRL, hcntrl);
ahc 5009 dev/ic/aic7xxx.c ahc_index_busy_tcl(struct ahc_softc *ahc, u_int tcl)
ahc 5014 dev/ic/aic7xxx.c if ((ahc->flags & AHC_SCB_BTT) != 0) {
ahc 5017 dev/ic/aic7xxx.c saved_scbptr = ahc_inb(ahc, SCBPTR);
ahc 5018 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, TCL_LUN(tcl));
ahc 5019 dev/ic/aic7xxx.c scbid = ahc_inb(ahc, SCB_64_BTT + TCL_TARGET_OFFSET(tcl));
ahc 5020 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, saved_scbptr);
ahc 5023 dev/ic/aic7xxx.c scbid = ahc_inb(ahc, BUSY_TARGETS + target_offset);
ahc 5030 dev/ic/aic7xxx.c ahc_unbusy_tcl(struct ahc_softc *ahc, u_int tcl)
ahc 5034 dev/ic/aic7xxx.c if ((ahc->flags & AHC_SCB_BTT) != 0) {
ahc 5037 dev/ic/aic7xxx.c saved_scbptr = ahc_inb(ahc, SCBPTR);
ahc 5038 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, TCL_LUN(tcl));
ahc 5039 dev/ic/aic7xxx.c ahc_outb(ahc, SCB_64_BTT+TCL_TARGET_OFFSET(tcl), SCB_LIST_NULL);
ahc 5040 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, saved_scbptr);
ahc 5043 dev/ic/aic7xxx.c ahc_outb(ahc, BUSY_TARGETS + target_offset, SCB_LIST_NULL);
ahc 5048 dev/ic/aic7xxx.c ahc_busy_tcl(struct ahc_softc *ahc, u_int tcl, u_int scbid)
ahc 5052 dev/ic/aic7xxx.c if ((ahc->flags & AHC_SCB_BTT) != 0) {
ahc 5055 dev/ic/aic7xxx.c saved_scbptr = ahc_inb(ahc, SCBPTR);
ahc 5056 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, TCL_LUN(tcl));
ahc 5057 dev/ic/aic7xxx.c ahc_outb(ahc, SCB_64_BTT + TCL_TARGET_OFFSET(tcl), scbid);
ahc 5058 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, saved_scbptr);
ahc 5061 dev/ic/aic7xxx.c ahc_outb(ahc, BUSY_TARGETS + target_offset, scbid);
ahc 5067 dev/ic/aic7xxx.c ahc_match_scb(struct ahc_softc *ahc, struct scb *scb, int target,
ahc 5076 dev/ic/aic7xxx.c targ = SCB_GET_TARGET(ahc, scb);
ahc 5077 dev/ic/aic7xxx.c chan = SCB_GET_CHANNEL(ahc, scb);
ahc 5108 dev/ic/aic7xxx.c ahc_freeze_devq(struct ahc_softc *ahc, struct scb *scb)
ahc 5114 dev/ic/aic7xxx.c target = SCB_GET_TARGET(ahc, scb);
ahc 5116 dev/ic/aic7xxx.c channel = SCB_GET_CHANNEL(ahc, scb);
ahc 5118 dev/ic/aic7xxx.c ahc_search_qinfifo(ahc, target, channel, lun,
ahc 5122 dev/ic/aic7xxx.c ahc_platform_freeze_devq(ahc, scb);
ahc 5126 dev/ic/aic7xxx.c ahc_qinfifo_requeue_tail(struct ahc_softc *ahc, struct scb *scb)
ahc 5131 dev/ic/aic7xxx.c if (ahc_qinfifo_count(ahc) != 0) {
ahc 5135 dev/ic/aic7xxx.c prev_pos = ahc->qinfifonext - 1;
ahc 5136 dev/ic/aic7xxx.c prev_tag = ahc->qinfifo[prev_pos];
ahc 5137 dev/ic/aic7xxx.c prev_scb = ahc_lookup_scb(ahc, prev_tag);
ahc 5139 dev/ic/aic7xxx.c ahc_qinfifo_requeue(ahc, prev_scb, scb);
ahc 5140 dev/ic/aic7xxx.c if ((ahc->features & AHC_QUEUE_REGS) != 0) {
ahc 5141 dev/ic/aic7xxx.c ahc_outb(ahc, HNSCB_QOFF, ahc->qinfifonext);
ahc 5143 dev/ic/aic7xxx.c ahc_outb(ahc, KERNEL_QINPOS, ahc->qinfifonext);
ahc 5148 dev/ic/aic7xxx.c ahc_qinfifo_requeue(struct ahc_softc *ahc, struct scb *prev_scb,
ahc 5152 dev/ic/aic7xxx.c ahc_outb(ahc, NEXT_QUEUED_SCB, scb->hscb->tag);
ahc 5155 dev/ic/aic7xxx.c ahc_sync_scb(ahc, prev_scb,
ahc 5158 dev/ic/aic7xxx.c ahc->qinfifo[ahc->qinfifonext] = scb->hscb->tag;
ahc 5159 dev/ic/aic7xxx.c ahc_dmamap_sync(ahc, ahc->parent_dmat, ahc->shared_data_dmamap,
ahc 5160 dev/ic/aic7xxx.c /*offset*/ahc->qinfifonext+256, /*len*/1,
ahc 5162 dev/ic/aic7xxx.c ahc->qinfifonext++;
ahc 5163 dev/ic/aic7xxx.c scb->hscb->next = ahc->next_queued_scb->hscb->tag;
ahc 5164 dev/ic/aic7xxx.c ahc_sync_scb(ahc, scb, BUS_DMASYNC_PREREAD|BUS_DMASYNC_PREWRITE);
ahc 5168 dev/ic/aic7xxx.c ahc_qinfifo_count(struct ahc_softc *ahc)
ahc 5173 dev/ic/aic7xxx.c if ((ahc->features & AHC_QUEUE_REGS) != 0) {
ahc 5174 dev/ic/aic7xxx.c qinpos = ahc_inb(ahc, SNSCB_QOFF);
ahc 5175 dev/ic/aic7xxx.c ahc_outb(ahc, SNSCB_QOFF, qinpos);
ahc 5177 dev/ic/aic7xxx.c qinpos = ahc_inb(ahc, QINPOS);
ahc 5178 dev/ic/aic7xxx.c diff = ahc->qinfifonext - qinpos;
ahc 5183 dev/ic/aic7xxx.c ahc_search_qinfifo(struct ahc_softc *ahc, int target, char channel,
ahc 5198 dev/ic/aic7xxx.c qintail = ahc->qinfifonext;
ahc 5199 dev/ic/aic7xxx.c have_qregs = (ahc->features & AHC_QUEUE_REGS) != 0;
ahc 5201 dev/ic/aic7xxx.c qinstart = ahc_inb(ahc, SNSCB_QOFF);
ahc 5202 dev/ic/aic7xxx.c ahc_outb(ahc, SNSCB_QOFF, qinstart);
ahc 5204 dev/ic/aic7xxx.c qinstart = ahc_inb(ahc, QINPOS);
ahc 5214 dev/ic/aic7xxx.c ahc_freeze_untagged_queues(ahc);
ahc 5221 dev/ic/aic7xxx.c ahc->qinfifonext = qinpos;
ahc 5222 dev/ic/aic7xxx.c ahc_outb(ahc, NEXT_QUEUED_SCB, ahc->next_queued_scb->hscb->tag);
ahc 5225 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, ahc->qinfifo[qinpos]);
ahc 5228 dev/ic/aic7xxx.c qinpos, ahc->qinfifo[qinpos]);
ahc 5232 dev/ic/aic7xxx.c if (ahc_match_scb(ahc, scb, target, channel, lun, tag, role)) {
ahc 5251 dev/ic/aic7xxx.c ahc_done(ahc, scb);
ahc 5258 dev/ic/aic7xxx.c ahc_qinfifo_requeue(ahc, prev_scb, scb);
ahc 5263 dev/ic/aic7xxx.c ahc_qinfifo_requeue(ahc, prev_scb, scb);
ahc 5269 dev/ic/aic7xxx.c if ((ahc->features & AHC_QUEUE_REGS) != 0) {
ahc 5270 dev/ic/aic7xxx.c ahc_outb(ahc, HNSCB_QOFF, ahc->qinfifonext);
ahc 5272 dev/ic/aic7xxx.c ahc_outb(ahc, KERNEL_QINPOS, ahc->qinfifonext);
ahc 5277 dev/ic/aic7xxx.c && (qinstart != ahc->qinfifonext)) {
ahc 5290 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, ahc->qinfifo[qinstart]);
ahc 5294 dev/ic/aic7xxx.c found, qinstart, ahc->qinfifonext);
ahc 5304 dev/ic/aic7xxx.c ahc->scb_data->scbindex[scb->hscb->tag] = NULL;
ahc 5305 dev/ic/aic7xxx.c ahc_swap_with_next_hscb(ahc, scb);
ahc 5307 dev/ic/aic7xxx.c ahc->qinfifo[qinstart] = scb->hscb->tag;
ahc 5310 dev/ic/aic7xxx.c ahc_outb(ahc, NEXT_QUEUED_SCB, scb->hscb->tag);
ahc 5313 dev/ic/aic7xxx.c qintail = ahc->qinfifonext - 1;
ahc 5314 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, ahc->qinfifo[qintail]);
ahc 5315 dev/ic/aic7xxx.c scb->hscb->next = ahc->next_queued_scb->hscb->tag;
ahc 5321 dev/ic/aic7xxx.c curscbptr = ahc_inb(ahc, SCBPTR);
ahc 5322 dev/ic/aic7xxx.c next = ahc_inb(ahc, WAITING_SCBH); /* Start at head of list. */
ahc 5328 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, next);
ahc 5329 dev/ic/aic7xxx.c scb_index = ahc_inb(ahc, SCB_TAG);
ahc 5330 dev/ic/aic7xxx.c if (scb_index >= ahc->scb_data->numscbs) {
ahc 5333 dev/ic/aic7xxx.c scb_index, ahc->scb_data->numscbs);
ahc 5334 dev/ic/aic7xxx.c ahc_dump_card_state(ahc);
ahc 5337 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scb_index);
ahc 5343 dev/ic/aic7xxx.c if (ahc_match_scb(ahc, scb, target, channel,
ahc 5363 dev/ic/aic7xxx.c ahc_done(ahc, scb);
ahc 5367 dev/ic/aic7xxx.c next = ahc_rem_wscb(ahc, next, prev);
ahc 5371 dev/ic/aic7xxx.c next = ahc_inb(ahc, SCB_NEXT);
ahc 5377 dev/ic/aic7xxx.c next = ahc_inb(ahc, SCB_NEXT);
ahc 5380 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, curscbptr);
ahc 5382 dev/ic/aic7xxx.c found += ahc_search_untagged_queues(ahc, /*scsi_xfer*/NULL, target,
ahc 5386 dev/ic/aic7xxx.c ahc_release_untagged_queues(ahc);
ahc 5391 dev/ic/aic7xxx.c ahc_search_untagged_queues(struct ahc_softc *ahc, struct scsi_xfer *xs,
ahc 5405 dev/ic/aic7xxx.c ahc_freeze_untagged_queues(ahc);
ahc 5410 dev/ic/aic7xxx.c if ((ahc->flags & AHC_SCB_BTT) == 0) {
ahc 5428 dev/ic/aic7xxx.c untagged_q = &(ahc->untagged_queues[i]);
ahc 5447 dev/ic/aic7xxx.c if (ahc_match_scb(ahc, scb, target, channel, lun,
ahc 5468 dev/ic/aic7xxx.c ahc_done(ahc, scb);
ahc 5482 dev/ic/aic7xxx.c ahc_release_untagged_queues(ahc);
ahc 5487 dev/ic/aic7xxx.c ahc_search_disc_list(struct ahc_softc *ahc, int target, char channel,
ahc 5498 dev/ic/aic7xxx.c next = ahc_inb(ahc, DISCONNECTED_SCBH);
ahc 5503 dev/ic/aic7xxx.c active_scb = ahc_inb(ahc, SCBPTR);
ahc 5511 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, next);
ahc 5512 dev/ic/aic7xxx.c scb_index = ahc_inb(ahc, SCB_TAG);
ahc 5513 dev/ic/aic7xxx.c if (scb_index >= ahc->scb_data->numscbs) {
ahc 5516 dev/ic/aic7xxx.c scb_index, ahc->scb_data->numscbs);
ahc 5517 dev/ic/aic7xxx.c ahc_dump_card_state(ahc);
ahc 5526 dev/ic/aic7xxx.c scbp = ahc_lookup_scb(ahc, scb_index);
ahc 5527 dev/ic/aic7xxx.c if (ahc_match_scb(ahc, scbp, target, channel, lun,
ahc 5532 dev/ic/aic7xxx.c ahc_rem_scb_from_disc_list(ahc, prev, next);
ahc 5535 dev/ic/aic7xxx.c next = ahc_inb(ahc, SCB_NEXT);
ahc 5541 dev/ic/aic7xxx.c next = ahc_inb(ahc, SCB_NEXT);
ahc 5545 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, active_scb);
ahc 5554 dev/ic/aic7xxx.c ahc_rem_scb_from_disc_list(struct ahc_softc *ahc, u_int prev, u_int scbptr)
ahc 5558 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, scbptr);
ahc 5559 dev/ic/aic7xxx.c next = ahc_inb(ahc, SCB_NEXT);
ahc 5561 dev/ic/aic7xxx.c ahc_outb(ahc, SCB_CONTROL, 0);
ahc 5563 dev/ic/aic7xxx.c ahc_add_curscb_to_free_list(ahc);
ahc 5566 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, prev);
ahc 5567 dev/ic/aic7xxx.c ahc_outb(ahc, SCB_NEXT, next);
ahc 5569 dev/ic/aic7xxx.c ahc_outb(ahc, DISCONNECTED_SCBH, next);
ahc 5580 dev/ic/aic7xxx.c ahc_add_curscb_to_free_list(struct ahc_softc *ahc)
ahc 5586 dev/ic/aic7xxx.c ahc_outb(ahc, SCB_TAG, SCB_LIST_NULL);
ahc 5588 dev/ic/aic7xxx.c if ((ahc->flags & AHC_PAGESCBS) != 0) {
ahc 5589 dev/ic/aic7xxx.c ahc_outb(ahc, SCB_NEXT, ahc_inb(ahc, FREE_SCBH));
ahc 5590 dev/ic/aic7xxx.c ahc_outb(ahc, FREE_SCBH, ahc_inb(ahc, SCBPTR));
ahc 5599 dev/ic/aic7xxx.c ahc_rem_wscb(struct ahc_softc *ahc, u_int scbpos, u_int prev)
ahc 5607 dev/ic/aic7xxx.c curscb = ahc_inb(ahc, SCBPTR);
ahc 5608 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, scbpos);
ahc 5609 dev/ic/aic7xxx.c next = ahc_inb(ahc, SCB_NEXT);
ahc 5612 dev/ic/aic7xxx.c ahc_outb(ahc, SCB_CONTROL, 0);
ahc 5614 dev/ic/aic7xxx.c ahc_add_curscb_to_free_list(ahc);
ahc 5619 dev/ic/aic7xxx.c ahc_outb(ahc, WAITING_SCBH, next);
ahc 5625 dev/ic/aic7xxx.c ahc_outb(ahc, SCSISEQ, (ahc_inb(ahc, SCSISEQ) & ~ENSELO));
ahc 5631 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, prev);
ahc 5632 dev/ic/aic7xxx.c ahc_outb(ahc, SCB_NEXT, next);
ahc 5638 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, curscb);
ahc 5650 dev/ic/aic7xxx.c ahc_abort_scbs(struct ahc_softc *ahc, int target, char channel,
ahc 5667 dev/ic/aic7xxx.c ahc_freeze_untagged_queues(ahc);
ahc 5670 dev/ic/aic7xxx.c active_scb = ahc_inb(ahc, SCBPTR);
ahc 5672 dev/ic/aic7xxx.c found = ahc_search_qinfifo(ahc, target, channel, lun, SCB_LIST_NULL,
ahc 5697 dev/ic/aic7xxx.c if ((ahc->flags & AHC_SCB_BTT) != 0)
ahc 5711 dev/ic/aic7xxx.c scbid = ahc_index_busy_tcl(ahc, tcl);
ahc 5712 dev/ic/aic7xxx.c scbp = ahc_lookup_scb(ahc, scbid);
ahc 5714 dev/ic/aic7xxx.c || ahc_match_scb(ahc, scbp, target, channel,
ahc 5717 dev/ic/aic7xxx.c ahc_unbusy_tcl(ahc, BUILD_TCL(i << 4, j));
ahc 5727 dev/ic/aic7xxx.c ahc_search_disc_list(ahc, target, channel, lun, tag,
ahc 5739 dev/ic/aic7xxx.c for (i = 0; i < ahc->scb_data->maxhscbs; i++) {
ahc 5742 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, i);
ahc 5743 dev/ic/aic7xxx.c scbid = ahc_inb(ahc, SCB_TAG);
ahc 5744 dev/ic/aic7xxx.c scbp = ahc_lookup_scb(ahc, scbid);
ahc 5747 dev/ic/aic7xxx.c && ahc_match_scb(ahc, scbp, target, channel, lun, tag, role)))
ahc 5748 dev/ic/aic7xxx.c ahc_add_curscb_to_free_list(ahc);
ahc 5757 dev/ic/aic7xxx.c scbp_next = LIST_FIRST(&ahc->pending_scbs);
ahc 5761 dev/ic/aic7xxx.c if (ahc_match_scb(ahc, scbp, target, channel, lun, tag, role)) {
ahc 5771 dev/ic/aic7xxx.c ahc_done(ahc, scbp);
ahc 5775 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, active_scb);
ahc 5776 dev/ic/aic7xxx.c ahc_platform_abort_scbs(ahc, target, channel, lun, tag, role, status);
ahc 5777 dev/ic/aic7xxx.c ahc_release_untagged_queues(ahc);
ahc 5782 dev/ic/aic7xxx.c ahc_reset_current_bus(struct ahc_softc *ahc)
ahc 5786 dev/ic/aic7xxx.c ahc_outb(ahc, SIMODE1, ahc_inb(ahc, SIMODE1) & ~ENSCSIRST);
ahc 5787 dev/ic/aic7xxx.c scsiseq = ahc_inb(ahc, SCSISEQ);
ahc 5788 dev/ic/aic7xxx.c ahc_outb(ahc, SCSISEQ, scsiseq | SCSIRSTO);
ahc 5789 dev/ic/aic7xxx.c ahc_flush_device_writes(ahc);
ahc 5792 dev/ic/aic7xxx.c ahc_outb(ahc, SCSISEQ, scsiseq & ~SCSIRSTO);
ahc 5794 dev/ic/aic7xxx.c ahc_clear_intstat(ahc);
ahc 5797 dev/ic/aic7xxx.c ahc_outb(ahc, SIMODE1, ahc_inb(ahc, SIMODE1) | ENSCSIRST);
ahc 5801 dev/ic/aic7xxx.c ahc_reset_channel(struct ahc_softc *ahc, char channel, int initiate_reset)
ahc 5812 dev/ic/aic7xxx.c ahc->pending_device = NULL;
ahc 5819 dev/ic/aic7xxx.c ahc_pause(ahc);
ahc 5822 dev/ic/aic7xxx.c ahc_clear_critical_section(ahc);
ahc 5829 dev/ic/aic7xxx.c ahc_run_qoutfifo(ahc);
ahc 5841 dev/ic/aic7xxx.c if ((ahc->flags & AHC_TARGETROLE) != 0) {
ahc 5842 dev/ic/aic7xxx.c ahc_run_tqinfifo(ahc, /*paused*/TRUE);
ahc 5849 dev/ic/aic7xxx.c sblkctl = ahc_inb(ahc, SBLKCTL);
ahc 5851 dev/ic/aic7xxx.c if ((ahc->features & AHC_TWIN) != 0
ahc 5854 dev/ic/aic7xxx.c scsiseq = ahc_inb(ahc, SCSISEQ_TEMPLATE);
ahc 5860 dev/ic/aic7xxx.c ahc_outb(ahc, SBLKCTL, sblkctl ^ SELBUSB);
ahc 5861 dev/ic/aic7xxx.c simode1 = ahc_inb(ahc, SIMODE1) & ~(ENBUSFREE|ENSCSIRST);
ahc 5868 dev/ic/aic7xxx.c if ((ahc->flags & AHC_TARGETROLE) != 0)
ahc 5871 dev/ic/aic7xxx.c ahc_outb(ahc, SIMODE1, simode1);
ahc 5873 dev/ic/aic7xxx.c ahc_reset_current_bus(ahc);
ahc 5874 dev/ic/aic7xxx.c ahc_clear_intstat(ahc);
ahc 5875 dev/ic/aic7xxx.c ahc_outb(ahc, SCSISEQ, scsiseq & (ENSELI|ENRSELI|ENAUTOATNP));
ahc 5876 dev/ic/aic7xxx.c ahc_outb(ahc, SBLKCTL, sblkctl);
ahc 5880 dev/ic/aic7xxx.c simode1 = ahc_inb(ahc, SIMODE1) & ~(ENBUSFREE|ENSCSIRST);
ahc 5887 dev/ic/aic7xxx.c if ((ahc->flags & AHC_TARGETROLE) != 0)
ahc 5890 dev/ic/aic7xxx.c ahc_outb(ahc, SIMODE1, simode1);
ahc 5892 dev/ic/aic7xxx.c ahc_reset_current_bus(ahc);
ahc 5893 dev/ic/aic7xxx.c ahc_clear_intstat(ahc);
ahc 5894 dev/ic/aic7xxx.c ahc_outb(ahc, SCSISEQ, scsiseq & (ENSELI|ENRSELI|ENAUTOATNP));
ahc 5902 dev/ic/aic7xxx.c found = ahc_abort_scbs(ahc, CAM_TARGET_WILDCARD, channel,
ahc 5906 dev/ic/aic7xxx.c max_scsiid = (ahc->features & AHC_WIDE) ? 15 : 7;
ahc 5917 dev/ic/aic7xxx.c tstate = ahc->enabled_targets[target];
ahc 5927 dev/ic/aic7xxx.c ahc_queue_lstate_event(ahc, lstate, CAM_TARGET_WILDCARD,
ahc 5929 dev/ic/aic7xxx.c ahc_send_lstate_events(ahc, lstate);
ahc 5934 dev/ic/aic7xxx.c ahc_send_async(ahc, devinfo.channel, CAM_TARGET_WILDCARD,
ahc 5942 dev/ic/aic7xxx.c if (ahc->enabled_targets[target] == NULL)
ahc 5950 dev/ic/aic7xxx.c ahc_set_width(ahc, &devinfo, MSG_EXT_WDTR_BUS_8_BIT,
ahc 5952 dev/ic/aic7xxx.c ahc_set_syncrate(ahc, &devinfo, /*syncrate*/NULL,
ahc 5960 dev/ic/aic7xxx.c ahc_restart(ahc);
ahc 5962 dev/ic/aic7xxx.c ahc_unpause(ahc);
ahc 5972 dev/ic/aic7xxx.c ahc_calc_residual(struct ahc_softc *ahc, struct scb *scb)
ahc 6047 dev/ic/aic7xxx.c ahc_print_path(ahc, scb);
ahc 6060 dev/ic/aic7xxx.c ahc_queue_lstate_event(struct ahc_softc *ahc, struct ahc_tmode_lstate *lstate,
ahc 6111 dev/ic/aic7xxx.c ahc_send_lstate_events(struct ahc_softc *ahc, struct ahc_tmode_lstate *lstate)
ahc 6147 dev/ic/aic7xxx.c ahc_dumpseq(struct ahc_softc* ahc)
ahc 6151 dev/ic/aic7xxx.c ahc_outb(ahc, SEQCTL, PERRORDIS|FAILDIS|FASTMODE|LOADRAM);
ahc 6152 dev/ic/aic7xxx.c ahc_outb(ahc, SEQADDR0, 0);
ahc 6153 dev/ic/aic7xxx.c ahc_outb(ahc, SEQADDR1, 0);
ahc 6154 dev/ic/aic7xxx.c for (i = 0; i < ahc->instruction_ram_size; i++) {
ahc 6157 dev/ic/aic7xxx.c ahc_insb(ahc, SEQRAM, ins_bytes, 4);
ahc 6167 dev/ic/aic7xxx.c ahc_loadseq(struct ahc_softc *ahc)
ahc 6192 dev/ic/aic7xxx.c if (ahc->targetcmds != NULL)
ahc 6195 dev/ic/aic7xxx.c download_consts[CACHESIZE_MASK] = ahc->pci_cachesize - 1;
ahc 6196 dev/ic/aic7xxx.c download_consts[INVERTED_CACHESIZE_MASK] = ~(ahc->pci_cachesize - 1);
ahc 6197 dev/ic/aic7xxx.c sg_prefetch_cnt = ahc->pci_cachesize;
ahc 6207 dev/ic/aic7xxx.c ahc_outb(ahc, SEQCTL, PERRORDIS|FAILDIS|FASTMODE|LOADRAM);
ahc 6208 dev/ic/aic7xxx.c ahc_outb(ahc, SEQADDR0, 0);
ahc 6209 dev/ic/aic7xxx.c ahc_outb(ahc, SEQADDR1, 0);
ahc 6212 dev/ic/aic7xxx.c if (ahc_check_patch(ahc, &cur_patch, i, &skip_addr) == 0) {
ahc 6220 dev/ic/aic7xxx.c if (downloaded == ahc->instruction_ram_size) {
ahc 6227 dev/ic/aic7xxx.c "size of %d!\n", ahc_name(ahc),
ahc 6228 dev/ic/aic7xxx.c ahc->instruction_ram_size);
ahc 6253 dev/ic/aic7xxx.c ahc_download_instr(ahc, i, download_consts);
ahc 6257 dev/ic/aic7xxx.c ahc->num_critical_sections = cs_count;
ahc 6261 dev/ic/aic7xxx.c ahc->critical_sections = malloc(cs_count, M_DEVBUF, M_NOWAIT);
ahc 6262 dev/ic/aic7xxx.c if (ahc->critical_sections == NULL)
ahc 6264 dev/ic/aic7xxx.c memcpy(ahc->critical_sections, cs_table, cs_count);
ahc 6266 dev/ic/aic7xxx.c ahc_outb(ahc, SEQCTL, PERRORDIS|FAILDIS|FASTMODE);
ahc 6271 dev/ic/aic7xxx.c ahc_name(ahc), ahc->features, ahc->bugs, ahc->flags);
ahc 6277 dev/ic/aic7xxx.c ahc_check_patch(struct ahc_softc *ahc, const struct patch **start_patch,
ahc 6290 dev/ic/aic7xxx.c if (cur_patch->patch_func(ahc) == 0) {
ahc 6313 dev/ic/aic7xxx.c ahc_download_instr(struct ahc_softc *ahc, u_int instrptr, uint8_t *dconsts)
ahc 6354 dev/ic/aic7xxx.c ahc_check_patch(ahc, &cur_patch, i, &skip_addr);
ahc 6380 dev/ic/aic7xxx.c if ((ahc->features & AHC_CMD_CHAN) == 0
ahc 6391 dev/ic/aic7xxx.c ahc_name(ahc));
ahc 6397 dev/ic/aic7xxx.c if ((ahc->features & AHC_ULTRA2) != 0) {
ahc 6429 dev/ic/aic7xxx.c ahc_outsb(ahc, SEQRAM, instr.bytes, 4);
ahc 6486 dev/ic/aic7xxx.c ahc_dump_card_state(struct ahc_softc *ahc)
ahc 6503 dev/ic/aic7xxx.c if (ahc_is_paused(ahc)) {
ahc 6507 dev/ic/aic7xxx.c ahc_pause(ahc);
ahc 6510 dev/ic/aic7xxx.c saved_scbptr = ahc_inb(ahc, SCBPTR);
ahc 6511 dev/ic/aic7xxx.c last_phase = ahc_inb(ahc, LASTPHASE);
ahc 6514 dev/ic/aic7xxx.c ahc_name(ahc), ahc_lookup_phase_entry(last_phase)->phasemsg,
ahc 6515 dev/ic/aic7xxx.c ahc_inb(ahc, SEQADDR0) | (ahc_inb(ahc, SEQADDR1) << 8));
ahc 6519 dev/ic/aic7xxx.c ahc_inb(ahc, ACCUM), ahc_inb(ahc, SINDEX), ahc_inb(ahc, DINDEX),
ahc 6520 dev/ic/aic7xxx.c ahc_inb(ahc, ARG_2));
ahc 6521 dev/ic/aic7xxx.c printf("HCNT = 0x%x SCBPTR = 0x%x\n", ahc_inb(ahc, HCNT),
ahc 6522 dev/ic/aic7xxx.c ahc_inb(ahc, SCBPTR));
ahc 6524 dev/ic/aic7xxx.c if ((ahc->features & AHC_DT) != 0)
ahc 6525 dev/ic/aic7xxx.c ahc_scsiphase_print(ahc_inb(ahc, SCSIPHASE), &cur_col, 50);
ahc 6526 dev/ic/aic7xxx.c ahc_scsisigi_print(ahc_inb(ahc, SCSISIGI), &cur_col, 50);
ahc 6527 dev/ic/aic7xxx.c ahc_error_print(ahc_inb(ahc, ERROR), &cur_col, 50);
ahc 6528 dev/ic/aic7xxx.c ahc_scsibusl_print(ahc_inb(ahc, SCSIBUSL), &cur_col, 50);
ahc 6529 dev/ic/aic7xxx.c ahc_lastphase_print(ahc_inb(ahc, LASTPHASE), &cur_col, 50);
ahc 6530 dev/ic/aic7xxx.c ahc_scsiseq_print(ahc_inb(ahc, SCSISEQ), &cur_col, 50);
ahc 6531 dev/ic/aic7xxx.c ahc_sblkctl_print(ahc_inb(ahc, SBLKCTL), &cur_col, 50);
ahc 6532 dev/ic/aic7xxx.c ahc_scsirate_print(ahc_inb(ahc, SCSIRATE), &cur_col, 50);
ahc 6533 dev/ic/aic7xxx.c ahc_seqctl_print(ahc_inb(ahc, SEQCTL), &cur_col, 50);
ahc 6534 dev/ic/aic7xxx.c ahc_seq_flags_print(ahc_inb(ahc, SEQ_FLAGS), &cur_col, 50);
ahc 6535 dev/ic/aic7xxx.c ahc_sstat0_print(ahc_inb(ahc, SSTAT0), &cur_col, 50);
ahc 6536 dev/ic/aic7xxx.c ahc_sstat1_print(ahc_inb(ahc, SSTAT1), &cur_col, 50);
ahc 6537 dev/ic/aic7xxx.c ahc_sstat2_print(ahc_inb(ahc, SSTAT2), &cur_col, 50);
ahc 6538 dev/ic/aic7xxx.c ahc_sstat3_print(ahc_inb(ahc, SSTAT3), &cur_col, 50);
ahc 6539 dev/ic/aic7xxx.c ahc_simode0_print(ahc_inb(ahc, SIMODE0), &cur_col, 50);
ahc 6540 dev/ic/aic7xxx.c ahc_simode1_print(ahc_inb(ahc, SIMODE1), &cur_col, 50);
ahc 6541 dev/ic/aic7xxx.c ahc_sxfrctl0_print(ahc_inb(ahc, SXFRCTL0), &cur_col, 50);
ahc 6542 dev/ic/aic7xxx.c ahc_dfcntrl_print(ahc_inb(ahc, DFCNTRL), &cur_col, 50);
ahc 6543 dev/ic/aic7xxx.c ahc_dfstatus_print(ahc_inb(ahc, DFSTATUS), &cur_col, 50);
ahc 6548 dev/ic/aic7xxx.c printf(" 0x%x", ahc_inb(ahc, STACK)|(ahc_inb(ahc, STACK) << 8));
ahc 6549 dev/ic/aic7xxx.c printf("\nSCB count = %d\n", ahc->scb_data->numscbs);
ahc 6550 dev/ic/aic7xxx.c printf("Kernel NEXTQSCB = %d\n", ahc->next_queued_scb->hscb->tag);
ahc 6551 dev/ic/aic7xxx.c printf("Card NEXTQSCB = %d\n", ahc_inb(ahc, NEXT_QUEUED_SCB));
ahc 6554 dev/ic/aic7xxx.c if ((ahc->features & AHC_QUEUE_REGS) != 0) {
ahc 6555 dev/ic/aic7xxx.c qinpos = ahc_inb(ahc, SNSCB_QOFF);
ahc 6556 dev/ic/aic7xxx.c ahc_outb(ahc, SNSCB_QOFF, qinpos);
ahc 6558 dev/ic/aic7xxx.c qinpos = ahc_inb(ahc, QINPOS);
ahc 6559 dev/ic/aic7xxx.c qintail = ahc->qinfifonext;
ahc 6561 dev/ic/aic7xxx.c printf("%d ", ahc->qinfifo[qinpos]);
ahc 6567 dev/ic/aic7xxx.c scb_index = ahc_inb(ahc, WAITING_SCBH);
ahc 6570 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, scb_index);
ahc 6571 dev/ic/aic7xxx.c printf("%d:%d ", scb_index, ahc_inb(ahc, SCB_TAG));
ahc 6572 dev/ic/aic7xxx.c scb_index = ahc_inb(ahc, SCB_NEXT);
ahc 6577 dev/ic/aic7xxx.c scb_index = ahc_inb(ahc, DISCONNECTED_SCBH);
ahc 6580 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, scb_index);
ahc 6581 dev/ic/aic7xxx.c printf("%d:%d ", scb_index, ahc_inb(ahc, SCB_TAG));
ahc 6582 dev/ic/aic7xxx.c scb_index = ahc_inb(ahc, SCB_NEXT);
ahc 6586 dev/ic/aic7xxx.c ahc_sync_qoutfifo(ahc, BUS_DMASYNC_POSTREAD);
ahc 6588 dev/ic/aic7xxx.c qoutpos = ahc->qoutfifonext;
ahc 6590 dev/ic/aic7xxx.c while (ahc->qoutfifo[qoutpos] != SCB_LIST_NULL && i++ < 256) {
ahc 6591 dev/ic/aic7xxx.c printf("%d ", ahc->qoutfifo[qoutpos]);
ahc 6597 dev/ic/aic7xxx.c scb_index = ahc_inb(ahc, FREE_SCBH);
ahc 6600 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, scb_index);
ahc 6602 dev/ic/aic7xxx.c scb_index = ahc_inb(ahc, SCB_NEXT);
ahc 6607 dev/ic/aic7xxx.c for (i = 0; i < ahc->scb_data->maxhscbs; i++) {
ahc 6608 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, i);
ahc 6611 dev/ic/aic7xxx.c ahc_scb_control_print(ahc_inb(ahc, SCB_CONTROL), &cur_col, 60);
ahc 6612 dev/ic/aic7xxx.c ahc_scb_scsiid_print(ahc_inb(ahc, SCB_SCSIID), &cur_col, 60);
ahc 6613 dev/ic/aic7xxx.c ahc_scb_lun_print(ahc_inb(ahc, SCB_LUN), &cur_col, 60);
ahc 6614 dev/ic/aic7xxx.c ahc_scb_tag_print(ahc_inb(ahc, SCB_TAG), &cur_col, 60);
ahc 6620 dev/ic/aic7xxx.c LIST_FOREACH(scb, &ahc->pending_scbs, pending_links) {
ahc 6627 dev/ic/aic7xxx.c if ((ahc->flags & AHC_PAGESCBS) == 0) {
ahc 6628 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, scb->hscb->tag);
ahc 6630 dev/ic/aic7xxx.c ahc_scb_control_print(ahc_inb(ahc, SCB_CONTROL),
ahc 6632 dev/ic/aic7xxx.c ahc_scb_tag_print(ahc_inb(ahc, SCB_TAG), &cur_col, 60);
ahc 6640 dev/ic/aic7xxx.c SLIST_FOREACH(scb, &ahc->scb_data->free_scbs, links.sle) {
ahc 6647 dev/ic/aic7xxx.c maxtarget = (ahc->features & (AHC_WIDE|AHC_TWIN)) ? 15 : 7;
ahc 6649 dev/ic/aic7xxx.c untagged_q = &ahc->untagged_queues[target];
ahc 6662 dev/ic/aic7xxx.c ahc_platform_dump_card_state(ahc);
ahc 6664 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, saved_scbptr);
ahc 6666 dev/ic/aic7xxx.c ahc_unpause(ahc);
ahc 6673 dev/ic/aic7xxx.c ahc_find_tmode_devs(struct ahc_softc *ahc, struct cam_sim *sim, union ccb *ccb,
ahc 6679 dev/ic/aic7xxx.c if ((ahc->features & AHC_TARGETMODE) == 0)
ahc 6689 dev/ic/aic7xxx.c *lstate = ahc->black_hole;
ahc 6693 dev/ic/aic7xxx.c max_id = (ahc->features & AHC_WIDE) ? 15 : 7;
ahc 6700 dev/ic/aic7xxx.c *tstate = ahc->enabled_targets[ccb->ccb_h.target_id];
ahc 6714 dev/ic/aic7xxx.c ahc_handle_en_lun(struct ahc_softc *ahc, struct cam_sim *sim, union ccb *ccb)
ahc 6728 dev/ic/aic7xxx.c status = ahc_find_tmode_devs(ahc, sim, ccb, &tstate, &lstate,
ahc 6737 dev/ic/aic7xxx.c our_id = ahc->our_id;
ahc 6739 dev/ic/aic7xxx.c our_id = ahc->our_id_b;
ahc 6761 dev/ic/aic7xxx.c if ((ahc->features & AHC_MULTIROLE) != 0) {
ahc 6763 dev/ic/aic7xxx.c if ((ahc->features & AHC_MULTI_TID) != 0
ahc 6764 dev/ic/aic7xxx.c && (ahc->flags & AHC_INITIATORROLE) != 0) {
ahc 6773 dev/ic/aic7xxx.c } else if ((ahc->flags & AHC_INITIATORROLE) != 0
ahc 6774 dev/ic/aic7xxx.c || ahc->enabled_luns > 0) {
ahc 6784 dev/ic/aic7xxx.c } else if ((ahc->features & AHC_MULTI_TID) == 0
ahc 6785 dev/ic/aic7xxx.c && ahc->enabled_luns > 0) {
ahc 6800 dev/ic/aic7xxx.c if ((ahc->flags & AHC_TARGETROLE) == 0
ahc 6807 dev/ic/aic7xxx.c if (LIST_FIRST(&ahc->pending_scbs) != NULL) {
ahc 6812 dev/ic/aic7xxx.c saved_flags = ahc->flags;
ahc 6813 dev/ic/aic7xxx.c ahc->flags |= AHC_TARGETROLE;
ahc 6814 dev/ic/aic7xxx.c if ((ahc->features & AHC_MULTIROLE) == 0)
ahc 6815 dev/ic/aic7xxx.c ahc->flags &= ~AHC_INITIATORROLE;
ahc 6816 dev/ic/aic7xxx.c ahc_pause(ahc);
ahc 6817 dev/ic/aic7xxx.c error = ahc_loadseq(ahc);
ahc 6827 dev/ic/aic7xxx.c ahc->flags = saved_flags;
ahc 6828 dev/ic/aic7xxx.c (void)ahc_loadseq(ahc);
ahc 6829 dev/ic/aic7xxx.c ahc_restart(ahc);
ahc 6834 dev/ic/aic7xxx.c ahc_restart(ahc);
ahc 6840 dev/ic/aic7xxx.c channel = SIM_CHANNEL(ahc, sim);
ahc 6872 dev/ic/aic7xxx.c tstate = ahc_alloc_tstate(ahc, target, channel);
ahc 6902 dev/ic/aic7xxx.c ahc_pause(ahc);
ahc 6905 dev/ic/aic7xxx.c ahc->enabled_luns++;
ahc 6907 dev/ic/aic7xxx.c if ((ahc->features & AHC_MULTI_TID) != 0) {
ahc 6910 dev/ic/aic7xxx.c targid_mask = ahc_inb(ahc, TARGID)
ahc 6911 dev/ic/aic7xxx.c | (ahc_inb(ahc, TARGID + 1) << 8);
ahc 6914 dev/ic/aic7xxx.c ahc_outb(ahc, TARGID, targid_mask);
ahc 6915 dev/ic/aic7xxx.c ahc_outb(ahc, TARGID+1, (targid_mask >> 8));
ahc 6917 dev/ic/aic7xxx.c ahc_update_scsiid(ahc, targid_mask);
ahc 6922 dev/ic/aic7xxx.c channel = SIM_CHANNEL(ahc, sim);
ahc 6923 dev/ic/aic7xxx.c our_id = SIM_SCSI_ID(ahc, sim);
ahc 6934 dev/ic/aic7xxx.c sblkctl = ahc_inb(ahc, SBLKCTL);
ahc 6937 dev/ic/aic7xxx.c if ((ahc->features & AHC_TWIN) == 0)
ahc 6941 dev/ic/aic7xxx.c ahc->our_id = target;
ahc 6943 dev/ic/aic7xxx.c ahc->our_id_b = target;
ahc 6946 dev/ic/aic7xxx.c ahc_outb(ahc, SBLKCTL,
ahc 6949 dev/ic/aic7xxx.c ahc_outb(ahc, SCSIID, target);
ahc 6952 dev/ic/aic7xxx.c ahc_outb(ahc, SBLKCTL, sblkctl);
ahc 6956 dev/ic/aic7xxx.c ahc->black_hole = lstate;
ahc 6958 dev/ic/aic7xxx.c if (ahc->black_hole != NULL && ahc->enabled_luns > 0) {
ahc 6959 dev/ic/aic7xxx.c scsiseq = ahc_inb(ahc, SCSISEQ_TEMPLATE);
ahc 6961 dev/ic/aic7xxx.c ahc_outb(ahc, SCSISEQ_TEMPLATE, scsiseq);
ahc 6962 dev/ic/aic7xxx.c scsiseq = ahc_inb(ahc, SCSISEQ);
ahc 6964 dev/ic/aic7xxx.c ahc_outb(ahc, SCSISEQ, scsiseq);
ahc 6966 dev/ic/aic7xxx.c ahc_unpause(ahc);
ahc 6983 dev/ic/aic7xxx.c LIST_FOREACH(scb, &ahc->pending_scbs, pending_links) {
ahc 7016 dev/ic/aic7xxx.c ahc_pause(ahc);
ahc 7020 dev/ic/aic7xxx.c ahc->enabled_luns--;
ahc 7028 dev/ic/aic7xxx.c ahc_free_tstate(ahc, target, channel,
ahc 7030 dev/ic/aic7xxx.c if (ahc->features & AHC_MULTI_TID) {
ahc 7033 dev/ic/aic7xxx.c targid_mask = ahc_inb(ahc, TARGID)
ahc 7034 dev/ic/aic7xxx.c | (ahc_inb(ahc, TARGID + 1)
ahc 7038 dev/ic/aic7xxx.c ahc_outb(ahc, TARGID, targid_mask);
ahc 7039 dev/ic/aic7xxx.c ahc_outb(ahc, TARGID+1,
ahc 7041 dev/ic/aic7xxx.c ahc_update_scsiid(ahc, targid_mask);
ahc 7046 dev/ic/aic7xxx.c ahc->black_hole = NULL;
ahc 7054 dev/ic/aic7xxx.c if (ahc->enabled_luns == 0) {
ahc 7058 dev/ic/aic7xxx.c scsiseq = ahc_inb(ahc, SCSISEQ_TEMPLATE);
ahc 7060 dev/ic/aic7xxx.c ahc_outb(ahc, SCSISEQ_TEMPLATE, scsiseq);
ahc 7061 dev/ic/aic7xxx.c scsiseq = ahc_inb(ahc, SCSISEQ);
ahc 7063 dev/ic/aic7xxx.c ahc_outb(ahc, SCSISEQ, scsiseq);
ahc 7065 dev/ic/aic7xxx.c if ((ahc->features & AHC_MULTIROLE) == 0) {
ahc 7067 dev/ic/aic7xxx.c ahc->flags &= ~AHC_TARGETROLE;
ahc 7068 dev/ic/aic7xxx.c ahc->flags |= AHC_INITIATORROLE;
ahc 7073 dev/ic/aic7xxx.c (void)ahc_loadseq(ahc);
ahc 7074 dev/ic/aic7xxx.c ahc_restart(ahc);
ahc 7081 dev/ic/aic7xxx.c ahc_unpause(ahc);
ahc 7087 dev/ic/aic7xxx.c ahc_update_scsiid(struct ahc_softc *ahc, u_int targid_mask)
ahc 7092 dev/ic/aic7xxx.c if ((ahc->features & AHC_MULTI_TID) == 0)
ahc 7101 dev/ic/aic7xxx.c if ((ahc->features & AHC_ULTRA2) != 0)
ahc 7102 dev/ic/aic7xxx.c scsiid = ahc_inb(ahc, SCSIID_ULTRA2);
ahc 7104 dev/ic/aic7xxx.c scsiid = ahc_inb(ahc, SCSIID);
ahc 7112 dev/ic/aic7xxx.c our_id = ahc->our_id;
ahc 7118 dev/ic/aic7xxx.c if ((ahc->features & AHC_ULTRA2) != 0)
ahc 7119 dev/ic/aic7xxx.c ahc_outb(ahc, SCSIID_ULTRA2, scsiid);
ahc 7121 dev/ic/aic7xxx.c ahc_outb(ahc, SCSIID, scsiid);
ahc 7126 dev/ic/aic7xxx.c ahc_run_tqinfifo(struct ahc_softc *ahc, int paused)
ahc 7135 dev/ic/aic7xxx.c if ((ahc->features & AHC_AUTOPAUSE) != 0)
ahc 7138 dev/ic/aic7xxx.c ahc_sync_tqinfifo(ahc, BUS_DMASYNC_POSTREAD);
ahc 7139 dev/ic/aic7xxx.c while ((cmd = &ahc->targetcmds[ahc->tqinfifonext])->cmd_valid != 0) {
ahc 7145 dev/ic/aic7xxx.c if (ahc_handle_target_cmd(ahc, cmd) != 0)
ahc 7149 dev/ic/aic7xxx.c ahc_dmamap_sync(ahc, ahc->parent_dmat/*shared_data_dmat*/,
ahc 7150 dev/ic/aic7xxx.c ahc->shared_data_dmamap,
ahc 7151 dev/ic/aic7xxx.c ahc_targetcmd_offset(ahc, ahc->tqinfifonext),
ahc 7158 dev/ic/aic7xxx.c ahc->tqinfifonext++;
ahc 7164 dev/ic/aic7xxx.c if ((ahc->tqinfifonext & (HOST_TQINPOS - 1)) == 1) {
ahc 7165 dev/ic/aic7xxx.c if ((ahc->features & AHC_HS_MAILBOX) != 0) {
ahc 7168 dev/ic/aic7xxx.c hs_mailbox = ahc_inb(ahc, HS_MAILBOX);
ahc 7170 dev/ic/aic7xxx.c hs_mailbox |= ahc->tqinfifonext & HOST_TQINPOS;
ahc 7171 dev/ic/aic7xxx.c ahc_outb(ahc, HS_MAILBOX, hs_mailbox);
ahc 7174 dev/ic/aic7xxx.c ahc_pause(ahc);
ahc 7175 dev/ic/aic7xxx.c ahc_outb(ahc, KERNEL_TQINPOS,
ahc 7176 dev/ic/aic7xxx.c ahc->tqinfifonext & HOST_TQINPOS);
ahc 7178 dev/ic/aic7xxx.c ahc_unpause(ahc);
ahc 7186 dev/ic/aic7xxx.c ahc_handle_target_cmd(struct ahc_softc *ahc, struct target_cmd *cmd)
ahc 7196 dev/ic/aic7xxx.c initiator = SCSIID_TARGET(ahc, cmd->scsiid);
ahc 7201 dev/ic/aic7xxx.c tstate = ahc->enabled_targets[target];
ahc 7210 dev/ic/aic7xxx.c lstate = ahc->black_hole;
ahc 7214 dev/ic/aic7xxx.c ahc->flags |= AHC_TQINFIFO_BLOCKED;
ahc 7219 dev/ic/aic7xxx.c printf("%s: ATIOs exhausted\n", ahc_name(ahc));
ahc 7222 dev/ic/aic7xxx.c ahc->flags &= ~AHC_TQINFIFO_BLOCKED;
ahc 7226 dev/ic/aic7xxx.c lstate == ahc->black_hole ? "(Black Holed)" : "");
ahc 7230 dev/ic/aic7xxx.c if (lstate == ahc->black_hole) {
ahc 7288 dev/ic/aic7xxx.c initiator, target, lun, ahc->pending_device);
ahc 7290 dev/ic/aic7xxx.c ahc->pending_device = lstate;
ahc 62 dev/ic/aic7xxx_inline.h IO_INLINE void ahc_pause_bug_fix(struct ahc_softc *ahc);
ahc 63 dev/ic/aic7xxx_inline.h IO_INLINE int ahc_is_paused(struct ahc_softc *ahc);
ahc 64 dev/ic/aic7xxx_inline.h IO_INLINE void ahc_pause(struct ahc_softc *ahc);
ahc 65 dev/ic/aic7xxx_inline.h IO_INLINE void ahc_unpause(struct ahc_softc *ahc);
ahc 77 dev/ic/aic7xxx_inline.h ahc_pause_bug_fix(struct ahc_softc *ahc)
ahc 79 dev/ic/aic7xxx_inline.h if ((ahc->features & AHC_ULTRA2) != 0)
ahc 80 dev/ic/aic7xxx_inline.h (void)ahc_inb(ahc, CCSCBCTL);
ahc 88 dev/ic/aic7xxx_inline.h ahc_is_paused(struct ahc_softc *ahc)
ahc 90 dev/ic/aic7xxx_inline.h return ((ahc_inb(ahc, HCNTRL) & PAUSE) != 0);
ahc 101 dev/ic/aic7xxx_inline.h ahc_pause(struct ahc_softc *ahc)
ahc 103 dev/ic/aic7xxx_inline.h ahc_outb(ahc, HCNTRL, ahc->pause);
ahc 109 dev/ic/aic7xxx_inline.h while (ahc_is_paused(ahc) == 0)
ahc 112 dev/ic/aic7xxx_inline.h ahc_pause_bug_fix(ahc);
ahc 126 dev/ic/aic7xxx_inline.h ahc_unpause(struct ahc_softc *ahc)
ahc 128 dev/ic/aic7xxx_inline.h if ((ahc_inb(ahc, INTSTAT) & (SCSIINT | SEQINT | BRKADRINT)) == 0)
ahc 129 dev/ic/aic7xxx_inline.h ahc_outb(ahc, HCNTRL, ahc->unpause);
ahc 134 dev/ic/aic7xxx_inline.h IO_INLINE void ahc_freeze_untagged_queues(struct ahc_softc *ahc);
ahc 135 dev/ic/aic7xxx_inline.h IO_INLINE void ahc_release_untagged_queues(struct ahc_softc *ahc);
ahc 143 dev/ic/aic7xxx_inline.h ahc_freeze_untagged_queues(struct ahc_softc *ahc)
ahc 145 dev/ic/aic7xxx_inline.h if ((ahc->flags & AHC_SCB_BTT) == 0)
ahc 146 dev/ic/aic7xxx_inline.h ahc->untagged_queue_lock++;
ahc 156 dev/ic/aic7xxx_inline.h ahc_release_untagged_queues(struct ahc_softc *ahc)
ahc 158 dev/ic/aic7xxx_inline.h if ((ahc->flags & AHC_SCB_BTT) == 0) {
ahc 159 dev/ic/aic7xxx_inline.h ahc->untagged_queue_lock--;
ahc 160 dev/ic/aic7xxx_inline.h if (ahc->untagged_queue_lock == 0)
ahc 161 dev/ic/aic7xxx_inline.h ahc_run_untagged_queues(ahc);
ahc 175 dev/ic/aic7xxx_inline.h ahc_hscb_busaddr(struct ahc_softc *ahc, u_int index);
ahc 176 dev/ic/aic7xxx_inline.h IO_INLINE void ahc_sync_scb(struct ahc_softc *ahc,
ahc 180 dev/ic/aic7xxx_inline.h ahc_targetcmd_offset(struct ahc_softc *ahc,
ahc 210 dev/ic/aic7xxx_inline.h ahc_hscb_busaddr(struct ahc_softc *ahc, u_int index)
ahc 212 dev/ic/aic7xxx_inline.h return (ahc->scb_data->hscb_busaddr
ahc 217 dev/ic/aic7xxx_inline.h ahc_sync_scb(struct ahc_softc *ahc, struct scb *scb, int op)
ahc 219 dev/ic/aic7xxx_inline.h ahc_dmamap_sync(ahc, ahc->parent_dmat,
ahc 220 dev/ic/aic7xxx_inline.h ahc->scb_data->hscb_dmamap,
ahc 221 dev/ic/aic7xxx_inline.h /*offset*/(scb->hscb - ahc->scb_data->hscbs) * sizeof(*scb->hscb),
ahc 227 dev/ic/aic7xxx_inline.h ahc_targetcmd_offset(struct ahc_softc *ahc, u_int index)
ahc 229 dev/ic/aic7xxx_inline.h return (((uint8_t *)&ahc->targetcmds[index]) - ahc->qoutfifo);
ahc 235 dev/ic/aic7xxx_inline.h static __inline char *ahc_name(struct ahc_softc *ahc);
ahc 238 dev/ic/aic7xxx_inline.h ahc_name(struct ahc_softc *ahc)
ahc 240 dev/ic/aic7xxx_inline.h return (ahc->name);
ahc 245 dev/ic/aic7xxx_inline.h IO_INLINE void ahc_update_residual(struct ahc_softc *ahc,
ahc 248 dev/ic/aic7xxx_inline.h ahc_fetch_transinfo(struct ahc_softc *ahc,
ahc 254 dev/ic/aic7xxx_inline.h ahc_inw(struct ahc_softc *ahc, u_int port);
ahc 255 dev/ic/aic7xxx_inline.h IO_INLINE void ahc_outw(struct ahc_softc *ahc, u_int port,
ahc 258 dev/ic/aic7xxx_inline.h ahc_inl(struct ahc_softc *ahc, u_int port);
ahc 259 dev/ic/aic7xxx_inline.h IO_INLINE void ahc_outl(struct ahc_softc *ahc, u_int port,
ahc 262 dev/ic/aic7xxx_inline.h ahc_get_scb(struct ahc_softc *ahc);
ahc 263 dev/ic/aic7xxx_inline.h IO_INLINE void ahc_free_scb(struct ahc_softc *ahc, struct scb *scb);
ahc 264 dev/ic/aic7xxx_inline.h IO_INLINE struct scb *ahc_lookup_scb(struct ahc_softc *ahc, u_int tag);
ahc 265 dev/ic/aic7xxx_inline.h IO_INLINE void ahc_swap_with_next_hscb(struct ahc_softc *ahc,
ahc 267 dev/ic/aic7xxx_inline.h IO_INLINE void ahc_queue_scb(struct ahc_softc *ahc, struct scb *scb);
ahc 269 dev/ic/aic7xxx_inline.h ahc_get_sense_buf(struct ahc_softc *ahc,
ahc 272 dev/ic/aic7xxx_inline.h ahc_get_sense_bufaddr(struct ahc_softc *ahc,
ahc 282 dev/ic/aic7xxx_inline.h ahc_update_residual(struct ahc_softc *ahc, struct scb *scb)
ahc 288 dev/ic/aic7xxx_inline.h ahc_calc_residual(ahc, scb);
ahc 296 dev/ic/aic7xxx_inline.h ahc_fetch_transinfo(struct ahc_softc *ahc, char channel, u_int our_id,
ahc 307 dev/ic/aic7xxx_inline.h *tstate = ahc->enabled_targets[our_id];
ahc 312 dev/ic/aic7xxx_inline.h ahc_inw(struct ahc_softc *ahc, u_int port)
ahc 314 dev/ic/aic7xxx_inline.h return ((ahc_inb(ahc, port+1) << 8) | ahc_inb(ahc, port));
ahc 318 dev/ic/aic7xxx_inline.h ahc_outw(struct ahc_softc *ahc, u_int port, u_int value)
ahc 320 dev/ic/aic7xxx_inline.h ahc_outb(ahc, port, value & 0xFF);
ahc 321 dev/ic/aic7xxx_inline.h ahc_outb(ahc, port+1, (value >> 8) & 0xFF);
ahc 325 dev/ic/aic7xxx_inline.h ahc_inl(struct ahc_softc *ahc, u_int port)
ahc 327 dev/ic/aic7xxx_inline.h return ((ahc_inb(ahc, port))
ahc 328 dev/ic/aic7xxx_inline.h | (ahc_inb(ahc, port+1) << 8)
ahc 329 dev/ic/aic7xxx_inline.h | (ahc_inb(ahc, port+2) << 16)
ahc 330 dev/ic/aic7xxx_inline.h | (ahc_inb(ahc, port+3) << 24));
ahc 334 dev/ic/aic7xxx_inline.h ahc_outl(struct ahc_softc *ahc, u_int port, uint32_t value)
ahc 336 dev/ic/aic7xxx_inline.h ahc_outb(ahc, port, (value) & 0xFF);
ahc 337 dev/ic/aic7xxx_inline.h ahc_outb(ahc, port+1, ((value) >> 8) & 0xFF);
ahc 338 dev/ic/aic7xxx_inline.h ahc_outb(ahc, port+2, ((value) >> 16) & 0xFF);
ahc 339 dev/ic/aic7xxx_inline.h ahc_outb(ahc, port+3, ((value) >> 24) & 0xFF);
ahc 346 dev/ic/aic7xxx_inline.h ahc_get_scb(struct ahc_softc *ahc)
ahc 350 dev/ic/aic7xxx_inline.h scb = SLIST_FIRST(&ahc->scb_data->free_scbs);
ahc 353 dev/ic/aic7xxx_inline.h SLIST_REMOVE_HEAD(&ahc->scb_data->free_scbs, links.sle);
ahc 362 dev/ic/aic7xxx_inline.h ahc_free_scb(struct ahc_softc *ahc, struct scb *scb)
ahc 368 dev/ic/aic7xxx_inline.h ahc->scb_data->scbindex[hscb->tag] = NULL;
ahc 372 dev/ic/aic7xxx_inline.h SLIST_INSERT_HEAD(&ahc->scb_data->free_scbs, scb, links.sle);
ahc 375 dev/ic/aic7xxx_inline.h ahc_platform_scb_free(ahc, scb);
ahc 380 dev/ic/aic7xxx_inline.h ahc_lookup_scb(struct ahc_softc *ahc, u_int tag)
ahc 384 dev/ic/aic7xxx_inline.h scb = ahc->scb_data->scbindex[tag];
ahc 386 dev/ic/aic7xxx_inline.h ahc_sync_scb(ahc, scb,
ahc 393 dev/ic/aic7xxx_inline.h ahc_swap_with_next_hscb(struct ahc_softc *ahc, struct scb *scb)
ahc 410 dev/ic/aic7xxx_inline.h q_hscb = ahc->next_queued_scb->hscb;
ahc 415 dev/ic/aic7xxx_inline.h aic_htole32(ahc_hscb_busaddr(ahc, q_hscb->tag)
ahc 422 dev/ic/aic7xxx_inline.h ahc->next_queued_scb->hscb = scb->hscb;
ahc 426 dev/ic/aic7xxx_inline.h ahc->scb_data->scbindex[scb->hscb->tag] = scb;
ahc 433 dev/ic/aic7xxx_inline.h ahc_queue_scb(struct ahc_softc *ahc, struct scb *scb)
ahc 435 dev/ic/aic7xxx_inline.h ahc_swap_with_next_hscb(ahc, scb);
ahc 452 dev/ic/aic7xxx_inline.h ahc->qinfifo[ahc->qinfifonext] = scb->hscb->tag;
ahc 453 dev/ic/aic7xxx_inline.h ahc_dmamap_sync(ahc, ahc->parent_dmat, ahc->shared_data_dmamap,
ahc 454 dev/ic/aic7xxx_inline.h /*offset*/ahc->qinfifonext+256, /*len*/1,
ahc 456 dev/ic/aic7xxx_inline.h ahc->qinfifonext++;
ahc 462 dev/ic/aic7xxx_inline.h ahc_sync_scb(ahc, scb, BUS_DMASYNC_PREREAD|BUS_DMASYNC_PREWRITE);
ahc 465 dev/ic/aic7xxx_inline.h if ((ahc->features & AHC_QUEUE_REGS) != 0) {
ahc 466 dev/ic/aic7xxx_inline.h ahc_outb(ahc, HNSCB_QOFF, ahc->qinfifonext);
ahc 468 dev/ic/aic7xxx_inline.h if ((ahc->features & AHC_AUTOPAUSE) == 0)
ahc 469 dev/ic/aic7xxx_inline.h ahc_pause(ahc);
ahc 470 dev/ic/aic7xxx_inline.h ahc_outb(ahc, KERNEL_QINPOS, ahc->qinfifonext);
ahc 471 dev/ic/aic7xxx_inline.h if ((ahc->features & AHC_AUTOPAUSE) == 0)
ahc 472 dev/ic/aic7xxx_inline.h ahc_unpause(ahc);
ahc 478 dev/ic/aic7xxx_inline.h ahc_get_sense_buf(struct ahc_softc *ahc, struct scb *scb)
ahc 482 dev/ic/aic7xxx_inline.h offset = scb - ahc->scb_data->scbarray;
ahc 483 dev/ic/aic7xxx_inline.h return (&ahc->scb_data->sense[offset]);
ahc 487 dev/ic/aic7xxx_inline.h ahc_get_sense_bufaddr(struct ahc_softc *ahc, struct scb *scb)
ahc 491 dev/ic/aic7xxx_inline.h offset = scb - ahc->scb_data->scbarray;
ahc 492 dev/ic/aic7xxx_inline.h return (ahc->scb_data->sense_busaddr
ahc 498 dev/ic/aic7xxx_inline.h IO_INLINE void ahc_sync_qoutfifo(struct ahc_softc *ahc, int op);
ahc 499 dev/ic/aic7xxx_inline.h IO_INLINE void ahc_sync_tqinfifo(struct ahc_softc *ahc, int op);
ahc 500 dev/ic/aic7xxx_inline.h IO_INLINE u_int ahc_check_cmdcmpltqueues(struct ahc_softc *ahc);
ahc 501 dev/ic/aic7xxx_inline.h IO_INLINE int ahc_intr(struct ahc_softc *ahc);
ahc 505 dev/ic/aic7xxx_inline.h ahc_sync_qoutfifo(struct ahc_softc *ahc, int op)
ahc 507 dev/ic/aic7xxx_inline.h ahc_dmamap_sync(ahc, ahc->parent_dmat, ahc->shared_data_dmamap,
ahc 512 dev/ic/aic7xxx_inline.h ahc_sync_tqinfifo(struct ahc_softc *ahc, int op)
ahc 515 dev/ic/aic7xxx_inline.h if ((ahc->flags & AHC_TARGETROLE) != 0) {
ahc 516 dev/ic/aic7xxx_inline.h ahc_dmamap_sync(ahc, ahc->parent_dmat /*shared_data_dmat*/,
ahc 517 dev/ic/aic7xxx_inline.h ahc->shared_data_dmamap,
ahc 518 dev/ic/aic7xxx_inline.h ahc_targetcmd_offset(ahc, 0),
ahc 532 dev/ic/aic7xxx_inline.h ahc_check_cmdcmpltqueues(struct ahc_softc *ahc)
ahc 537 dev/ic/aic7xxx_inline.h ahc_dmamap_sync(ahc, ahc->parent_dmat /*shared_data_dmat*/, ahc->shared_data_dmamap,
ahc 538 dev/ic/aic7xxx_inline.h /*offset*/ahc->qoutfifonext, /*len*/1,
ahc 540 dev/ic/aic7xxx_inline.h if (ahc->qoutfifo[ahc->qoutfifonext] != SCB_LIST_NULL)
ahc 543 dev/ic/aic7xxx_inline.h if ((ahc->flags & AHC_TARGETROLE) != 0
ahc 544 dev/ic/aic7xxx_inline.h && (ahc->flags & AHC_TQINFIFO_BLOCKED) == 0) {
ahc 545 dev/ic/aic7xxx_inline.h ahc_dmamap_sync(ahc, ahc->parent_dmat /*shared_data_dmat*/,
ahc 546 dev/ic/aic7xxx_inline.h ahc->shared_data_dmamap,
ahc 547 dev/ic/aic7xxx_inline.h ahc_targetcmd_offset(ahc, ahc->tqinfifonext),
ahc 550 dev/ic/aic7xxx_inline.h if (ahc->targetcmds[ahc->tqinfifonext].cmd_valid != 0)
ahc 562 dev/ic/aic7xxx_inline.h ahc_intr(struct ahc_softc *ahc)
ahc 566 dev/ic/aic7xxx_inline.h if ((ahc->pause & INTEN) == 0) {
ahc 581 dev/ic/aic7xxx_inline.h if ((ahc->flags & (AHC_ALL_INTERRUPTS|AHC_EDGE_INTERRUPT)) == 0
ahc 582 dev/ic/aic7xxx_inline.h && (ahc_check_cmdcmpltqueues(ahc) != 0))
ahc 585 dev/ic/aic7xxx_inline.h intstat = ahc_inb(ahc, INTSTAT);
ahc 589 dev/ic/aic7xxx_inline.h ahc_outb(ahc, CLRINT, CLRCMDINT);
ahc 599 dev/ic/aic7xxx_inline.h ahc_flush_device_writes(ahc);
ahc 600 dev/ic/aic7xxx_inline.h ahc_run_qoutfifo(ahc);
ahc 602 dev/ic/aic7xxx_inline.h if ((ahc->flags & AHC_TARGETROLE) != 0)
ahc 603 dev/ic/aic7xxx_inline.h ahc_run_tqinfifo(ahc, /*paused*/FALSE);
ahc 607 dev/ic/aic7xxx_inline.h if (intstat == 0xFF && (ahc->features & AHC_REMOVABLE) != 0)
ahc 613 dev/ic/aic7xxx_inline.h if (ahc->unsolicited_ints > 500) {
ahc 614 dev/ic/aic7xxx_inline.h ahc->unsolicited_ints = 0;
ahc 615 dev/ic/aic7xxx_inline.h if ((ahc->chip & AHC_PCI) != 0
ahc 616 dev/ic/aic7xxx_inline.h && (ahc_inb(ahc, ERROR) & PCIERRSTAT) != 0)
ahc 617 dev/ic/aic7xxx_inline.h ahc->bus_intr(ahc);
ahc 619 dev/ic/aic7xxx_inline.h ahc->unsolicited_ints++;
ahc 623 dev/ic/aic7xxx_inline.h ahc->unsolicited_ints = 0;
ahc 626 dev/ic/aic7xxx_inline.h ahc_handle_brkadrint(ahc);
ahc 632 dev/ic/aic7xxx_inline.h ahc_pause_bug_fix(ahc);
ahc 635 dev/ic/aic7xxx_inline.h ahc_handle_seqint(ahc, intstat);
ahc 638 dev/ic/aic7xxx_inline.h ahc_handle_scsiint(ahc, intstat);
ahc 88 dev/ic/aic7xxx_openbsd.c ahc_attach(struct ahc_softc *ahc)
ahc 98 dev/ic/aic7xxx_openbsd.c ahc->sc_channel.adapter_target = ahc->our_id;
ahc 99 dev/ic/aic7xxx_openbsd.c if (ahc->features & AHC_WIDE)
ahc 100 dev/ic/aic7xxx_openbsd.c ahc->sc_channel.adapter_buswidth = 16;
ahc 101 dev/ic/aic7xxx_openbsd.c ahc->sc_channel.adapter_softc = ahc;
ahc 102 dev/ic/aic7xxx_openbsd.c ahc->sc_channel.adapter = &ahc_switch;
ahc 103 dev/ic/aic7xxx_openbsd.c ahc->sc_channel.openings = 16;
ahc 104 dev/ic/aic7xxx_openbsd.c ahc->sc_channel.device = &ahc_dev;
ahc 106 dev/ic/aic7xxx_openbsd.c if (ahc->features & AHC_TWIN) {
ahc 108 dev/ic/aic7xxx_openbsd.c ahc->sc_channel_b = ahc->sc_channel;
ahc 109 dev/ic/aic7xxx_openbsd.c ahc->sc_channel_b.adapter_target = ahc->our_id_b;
ahc 115 dev/ic/aic7xxx_openbsd.c ahc_controller_info(ahc, ahc_info, sizeof ahc_info);
ahc 116 dev/ic/aic7xxx_openbsd.c printf("%s: %s\n", ahc->sc_dev.dv_xname, ahc_info);
ahc 120 dev/ic/aic7xxx_openbsd.c ahc_intr_enable(ahc, TRUE);
ahc 122 dev/ic/aic7xxx_openbsd.c if (ahc->flags & AHC_RESET_BUS_A)
ahc 123 dev/ic/aic7xxx_openbsd.c ahc_reset_channel(ahc, 'A', TRUE);
ahc 124 dev/ic/aic7xxx_openbsd.c if ((ahc->features & AHC_TWIN) && ahc->flags & AHC_RESET_BUS_B)
ahc 125 dev/ic/aic7xxx_openbsd.c ahc_reset_channel(ahc, 'B', TRUE);
ahc 128 dev/ic/aic7xxx_openbsd.c if ((ahc->flags & AHC_PRIMARY_CHANNEL) == 0) {
ahc 129 dev/ic/aic7xxx_openbsd.c saa.saa_sc_link = &ahc->sc_channel;
ahc 130 dev/ic/aic7xxx_openbsd.c ahc->sc_child = config_found((void *)&ahc->sc_dev,
ahc 132 dev/ic/aic7xxx_openbsd.c if (ahc->features & AHC_TWIN) {
ahc 133 dev/ic/aic7xxx_openbsd.c saa.saa_sc_link = &ahc->sc_channel_b;
ahc 134 dev/ic/aic7xxx_openbsd.c ahc->sc_child_b = config_found((void *)&ahc->sc_dev,
ahc 138 dev/ic/aic7xxx_openbsd.c if (ahc->features & AHC_TWIN) {
ahc 139 dev/ic/aic7xxx_openbsd.c saa.saa_sc_link = &ahc->sc_channel_b;
ahc 140 dev/ic/aic7xxx_openbsd.c ahc->sc_child = config_found((void *)&ahc->sc_dev,
ahc 143 dev/ic/aic7xxx_openbsd.c saa.saa_sc_link = &ahc->sc_channel;
ahc 144 dev/ic/aic7xxx_openbsd.c ahc->sc_child_b = config_found((void *)&ahc->sc_dev,
ahc 158 dev/ic/aic7xxx_openbsd.c struct ahc_softc *ahc = (struct ahc_softc *)arg;
ahc 160 dev/ic/aic7xxx_openbsd.c bus_dmamap_sync(ahc->parent_dmat, ahc->scb_data->hscb_dmamap,
ahc 161 dev/ic/aic7xxx_openbsd.c 0, ahc->scb_data->hscb_dmamap->dm_mapsize,
ahc 164 dev/ic/aic7xxx_openbsd.c return ahc_intr(ahc);
ahc 173 dev/ic/aic7xxx_openbsd.c ahc_done(struct ahc_softc *ahc, struct scb *scb)
ahc 178 dev/ic/aic7xxx_openbsd.c bus_dmamap_sync(ahc->parent_dmat, ahc->scb_data->hscb_dmamap,
ahc 179 dev/ic/aic7xxx_openbsd.c 0, ahc->scb_data->hscb_dmamap->dm_mapsize,
ahc 187 dev/ic/aic7xxx_openbsd.c target_offset = SCB_GET_TARGET_OFFSET(ahc, scb);
ahc 188 dev/ic/aic7xxx_openbsd.c untagged_q = &ahc->untagged_queues[target_offset];
ahc 191 dev/ic/aic7xxx_openbsd.c ahc_run_untagged_queue(ahc, untagged_q);
ahc 203 dev/ic/aic7xxx_openbsd.c bus_dmamap_sync(ahc->parent_dmat, scb->dmamap, 0,
ahc 205 dev/ic/aic7xxx_openbsd.c bus_dmamap_unload(ahc->parent_dmat, scb->dmamap);
ahc 277 dev/ic/aic7xxx_openbsd.c memcpy(&xs->sense, ahc_get_sense_buf(ahc, scb),
ahc 283 dev/ic/aic7xxx_openbsd.c ahc_free_scb(ahc, scb);
ahc 310 dev/ic/aic7xxx_openbsd.c struct ahc_softc *ahc;
ahc 319 dev/ic/aic7xxx_openbsd.c ahc = (struct ahc_softc *)xs->sc_link->adapter_softc;
ahc 325 dev/ic/aic7xxx_openbsd.c our_id = SCSI_SCSI_ID(ahc, xs->sc_link);
ahc 331 dev/ic/aic7xxx_openbsd.c if ((scb = ahc_get_scb(ahc)) == NULL) {
ahc 347 dev/ic/aic7xxx_openbsd.c hscb->scsiid = BUILD_SCSIID(ahc, xs->sc_link, target_id, our_id);
ahc 356 dev/ic/aic7xxx_openbsd.c return (ahc_setup_data(ahc, xs, scb));
ahc 364 dev/ic/aic7xxx_openbsd.c struct ahc_softc *ahc;
ahc 375 dev/ic/aic7xxx_openbsd.c ahc = (struct ahc_softc *)xs->sc_link->adapter_softc;
ahc 410 dev/ic/aic7xxx_openbsd.c bus_dmamap_sync(ahc->parent_dmat, scb->dmamap, 0,
ahc 416 dev/ic/aic7xxx_openbsd.c bus_dmamap_sync(ahc->parent_dmat, scb->sg_map->sg_dmamap,
ahc 439 dev/ic/aic7xxx_openbsd.c bus_dmamap_unload(ahc->parent_dmat, scb->dmamap);
ahc 441 dev/ic/aic7xxx_openbsd.c ahc_free_scb(ahc, scb);
ahc 446 dev/ic/aic7xxx_openbsd.c tinfo = ahc_fetch_transinfo(ahc, SCSIID_CHANNEL(ahc, scb->hscb->scsiid),
ahc 448 dev/ic/aic7xxx_openbsd.c SCSIID_TARGET(ahc, scb->hscb->scsiid),
ahc 451 dev/ic/aic7xxx_openbsd.c mask = SCB_GET_TARGET_MASK(ahc, scb);
ahc 469 dev/ic/aic7xxx_openbsd.c bus_dmamap_sync(ahc->parent_dmat, ahc->scb_data->hscb_dmamap,
ahc 470 dev/ic/aic7xxx_openbsd.c 0, ahc->scb_data->hscb_dmamap->dm_mapsize,
ahc 473 dev/ic/aic7xxx_openbsd.c LIST_INSERT_HEAD(&ahc->pending_scbs, scb, pending_links);
ahc 489 dev/ic/aic7xxx_openbsd.c && (ahc->flags & AHC_SCB_BTT) == 0) {
ahc 493 dev/ic/aic7xxx_openbsd.c target_offset = SCB_GET_TARGET_OFFSET(ahc, scb);
ahc 494 dev/ic/aic7xxx_openbsd.c untagged_q = &(ahc->untagged_queues[target_offset]);
ahc 510 dev/ic/aic7xxx_openbsd.c ahc->scb_data->scbindex[scb->hscb->tag] = scb;
ahc 511 dev/ic/aic7xxx_openbsd.c ahc_pause(ahc);
ahc 512 dev/ic/aic7xxx_openbsd.c if ((ahc->flags & AHC_PAGESCBS) == 0)
ahc 513 dev/ic/aic7xxx_openbsd.c ahc_outb(ahc, SCBPTR, scb->hscb->tag);
ahc 514 dev/ic/aic7xxx_openbsd.c ahc_outb(ahc, TARG_IMMEDIATE_SCB, scb->hscb->tag);
ahc 515 dev/ic/aic7xxx_openbsd.c ahc_unpause(ahc);
ahc 517 dev/ic/aic7xxx_openbsd.c ahc_queue_scb(ahc, scb);
ahc 521 dev/ic/aic7xxx_openbsd.c if (ahc->inited_target[xs->sc_link->target] == 0) {
ahc 524 dev/ic/aic7xxx_openbsd.c ahc_adapter_req_set_xfer_mode(ahc, scb);
ahc 525 dev/ic/aic7xxx_openbsd.c ahc_scb_devinfo(ahc, &devinfo, scb);
ahc 526 dev/ic/aic7xxx_openbsd.c ahc_update_neg_request(ahc, &devinfo, tstate, tinfo,
ahc 529 dev/ic/aic7xxx_openbsd.c ahc->inited_target[xs->sc_link->target] = 1;
ahc 542 dev/ic/aic7xxx_openbsd.c if (ahc_poll(ahc, xs->timeout)) {
ahc 555 dev/ic/aic7xxx_openbsd.c ahc_poll(struct ahc_softc *ahc, int wait)
ahc 559 dev/ic/aic7xxx_openbsd.c if (ahc_inb(ahc, INTSTAT) & INT_PEND)
ahc 564 dev/ic/aic7xxx_openbsd.c printf("%s: board is not responding\n", ahc_name(ahc));
ahc 568 dev/ic/aic7xxx_openbsd.c ahc_intr((void *)ahc);
ahc 573 dev/ic/aic7xxx_openbsd.c ahc_setup_data(struct ahc_softc *ahc, struct scsi_xfer *xs,
ahc 586 dev/ic/aic7xxx_openbsd.c ahc_free_scb(ahc, scb);
ahc 605 dev/ic/aic7xxx_openbsd.c error = bus_dmamap_load(ahc->parent_dmat,
ahc 614 dev/ic/aic7xxx_openbsd.c ahc_name(ahc), error);
ahc 617 dev/ic/aic7xxx_openbsd.c ahc_free_scb(ahc, scb);
ahc 634 dev/ic/aic7xxx_openbsd.c struct ahc_softc *ahc;
ahc 640 dev/ic/aic7xxx_openbsd.c ahc = (struct ahc_softc *)scb->xs->sc_link->adapter_softc;
ahc 645 dev/ic/aic7xxx_openbsd.c printf("%s: SCB %d timed out\n", ahc_name(ahc), scb->hscb->tag);
ahc 646 dev/ic/aic7xxx_openbsd.c ahc_dump_card_state(ahc);
ahc 649 dev/ic/aic7xxx_openbsd.c ahc_pause(ahc);
ahc 652 dev/ic/aic7xxx_openbsd.c channel = SCB_GET_CHANNEL(ahc, scb);
ahc 659 dev/ic/aic7xxx_openbsd.c LIST_FOREACH(list_scb, &ahc->pending_scbs, pending_links) {
ahc 663 dev/ic/aic7xxx_openbsd.c found = ahc_reset_channel(ahc, channel, /*Initiate Reset*/TRUE);
ahc 666 dev/ic/aic7xxx_openbsd.c ahc_name(ahc), channel, found);
ahc 670 dev/ic/aic7xxx_openbsd.c ahc_unpause(ahc);
ahc 676 dev/ic/aic7xxx_openbsd.c ahc_platform_set_tags(struct ahc_softc *ahc,
ahc 681 dev/ic/aic7xxx_openbsd.c ahc_fetch_transinfo(ahc, devinfo->channel, devinfo->our_scsiid,
ahc 698 dev/ic/aic7xxx_openbsd.c ahc_platform_alloc(struct ahc_softc *ahc, void *platform_arg)
ahc 701 dev/ic/aic7xxx_openbsd.c ahc->platform_data = malloc(sizeof(struct ahc_platform_data),
ahc 703 dev/ic/aic7xxx_openbsd.c if (ahc->platform_data == NULL)
ahc 705 dev/ic/aic7xxx_openbsd.c bzero(ahc->platform_data, sizeof(struct ahc_platform_data));
ahc 712 dev/ic/aic7xxx_openbsd.c ahc_platform_free(struct ahc_softc *ahc)
ahc 715 dev/ic/aic7xxx_openbsd.c free(ahc->platform_data, M_DEVBUF);
ahc 725 dev/ic/aic7xxx_openbsd.c ahc_send_async(struct ahc_softc *ahc, char channel, u_int target, u_int lun,
ahc 732 dev/ic/aic7xxx_openbsd.c ahc_adapter_req_set_xfer_mode(struct ahc_softc *ahc, struct scb *scb)
ahc 744 dev/ic/aic7xxx_openbsd.c ahc_scb_devinfo(ahc, &devinfo, scb);
ahc 746 dev/ic/aic7xxx_openbsd.c tinfo = ahc_fetch_transinfo(ahc, devinfo.channel,
ahc 749 dev/ic/aic7xxx_openbsd.c tstate->discenable |= (ahc->user_discenable & devinfo.target_mask);
ahc 753 dev/ic/aic7xxx_openbsd.c else if (ahc->user_tagenable & devinfo.target_mask)
ahc 761 dev/ic/aic7xxx_openbsd.c ahc_validate_width(ahc, NULL, &width, ROLE_UNKNOWN);
ahc 764 dev/ic/aic7xxx_openbsd.c ahc_set_width(ahc, &devinfo, width, AHC_TRANS_GOAL, FALSE);
ahc 784 dev/ic/aic7xxx_openbsd.c syncrate = ahc_find_syncrate(ahc, &period, &ppr_options,
ahc 786 dev/ic/aic7xxx_openbsd.c ahc_validate_offset(ahc, NULL, syncrate, &offset, width,
ahc 799 dev/ic/aic7xxx_openbsd.c ahc_set_syncrate(ahc, &devinfo, syncrate, period, offset, ppr_options,
ahc 90 dev/ic/aic7xxx_openbsd.h #define SCSI_IS_SCSIBUS_B(ahc, sc_link) \
ahc 91 dev/ic/aic7xxx_openbsd.h ((sc_link)->scsibus == (ahc)->sc_channel_b.scsibus)
ahc 92 dev/ic/aic7xxx_openbsd.h #define SCSI_SCSI_ID(ahc, sc_link) \
ahc 93 dev/ic/aic7xxx_openbsd.h (SCSI_IS_SCSIBUS_B(ahc, sc_link) ? ahc->our_id_b : ahc->our_id)
ahc 94 dev/ic/aic7xxx_openbsd.h #define SCSI_CHANNEL(ahc, sc_link) \
ahc 95 dev/ic/aic7xxx_openbsd.h (SCSI_IS_SCSIBUS_B(ahc, sc_link) ? 'B' : 'A')
ahc 96 dev/ic/aic7xxx_openbsd.h #define BUILD_SCSIID(ahc, sc_link, target_id, our_id) \
ahc 98 dev/ic/aic7xxx_openbsd.h | (SCSI_IS_SCSIBUS_B(ahc, sc_link) ? TWIN_CHNLB : 0))
ahc 109 dev/ic/aic7xxx_openbsd.h #define ahc_dmamap_sync(ahc, dma_tag, dmamap, offset, len, op) \
ahc 179 dev/ic/aic7xxx_openbsd.h #define ahc_inb(ahc, port) \
ahc 180 dev/ic/aic7xxx_openbsd.h bus_space_read_1((ahc)->tag, (ahc)->bsh, port)
ahc 182 dev/ic/aic7xxx_openbsd.h #define ahc_outb(ahc, port, value) \
ahc 183 dev/ic/aic7xxx_openbsd.h bus_space_write_1((ahc)->tag, (ahc)->bsh, port, value)
ahc 185 dev/ic/aic7xxx_openbsd.h #define ahc_outsb(ahc, port, valp, count) \
ahc 186 dev/ic/aic7xxx_openbsd.h bus_space_write_multi_1((ahc)->tag, (ahc)->bsh, port, valp, count)
ahc 188 dev/ic/aic7xxx_openbsd.h #define ahc_insb(ahc, port, valp, count) \
ahc 189 dev/ic/aic7xxx_openbsd.h bus_space_read_multi_1((ahc)->tag, (ahc)->bsh, port, valp, count)
ahc 194 dev/ic/aic7xxx_openbsd.h ahc_flush_device_writes(struct ahc_softc *ahc)
ahc 197 dev/ic/aic7xxx_openbsd.h ahc_inb(ahc, INTSTAT);
ahc 293 dev/ic/aic7xxx_openbsd.h ahc_get_sense_bufsize(struct ahc_softc *ahc, struct scb *scb)
ahc 304 dev/ic/aic7xxx_openbsd.h ahc_platform_freeze_devq(struct ahc_softc *ahc, struct scb *scb)
ahc 309 dev/ic/aic7xxx_openbsd.h ahc_platform_abort_scbs(struct ahc_softc *ahc, int target,
ahc 317 dev/ic/aic7xxx_openbsd.h ahc_platform_scb_free(struct ahc_softc *ahc, struct scb *scb)
ahc 323 dev/ic/aic7xxx_openbsd.h if ((ahc->flags & AHC_RESOURCE_SHORTAGE) != 0) {
ahc 324 dev/ic/aic7xxx_openbsd.h ahc->flags &= ~AHC_RESOURCE_SHORTAGE;
ahc 393 dev/ic/aic7xxx_openbsd.h ahc_print_path(struct ahc_softc *ahc, struct scb *scb)
ahc 399 dev/ic/aic7xxx_openbsd.h ahc_platform_dump_card_state(struct ahc_softc *ahc)
ahc 403 dev/ic/aic7xxx_openbsd.h ahc->features, ahc->flags, ahc->chip, ahc->bugs);
ahc 422 dev/ic/aic7xxx_openbsd.h ahc_platform_flushwork(struct ahc_softc *ahc)
ahc 98 dev/ic/aic7xxx_seeprom.c ahc_check_extport(struct ahc_softc *ahc, u_int *sxfrctl1)
ahc 105 dev/ic/aic7xxx_seeprom.c sd.sd_tag = ahc->tag;
ahc 106 dev/ic/aic7xxx_seeprom.c sd.sd_bsh = ahc->bsh;
ahc 111 dev/ic/aic7xxx_seeprom.c sc = ahc->seep_config;
ahc 119 dev/ic/aic7xxx_seeprom.c if (ahc->flags & AHC_LARGE_SEEPROM)
ahc 131 dev/ic/aic7xxx_seeprom.c have_seeprom = ahc_acquire_seeprom(ahc, &sd);
ahc 135 dev/ic/aic7xxx_seeprom.c printf("%s: Reading SEEPROM...", ahc_name(ahc));
ahc 140 dev/ic/aic7xxx_seeprom.c start_addr = 32 * (ahc->channel - 'A');
ahc 170 dev/ic/aic7xxx_seeprom.c ahc_outb(ahc, SCBPTR, 2);
ahc 171 dev/ic/aic7xxx_seeprom.c if (ahc_inb(ahc, SCB_BASE) == 'A'
ahc 172 dev/ic/aic7xxx_seeprom.c && ahc_inb(ahc, SCB_BASE + 1) == 'D'
ahc 173 dev/ic/aic7xxx_seeprom.c && ahc_inb(ahc, SCB_BASE + 2) == 'P'
ahc 174 dev/ic/aic7xxx_seeprom.c && ahc_inb(ahc, SCB_BASE + 3) == 'T') {
ahc 183 dev/ic/aic7xxx_seeprom.c *sc_data = ahc_inb(ahc, SRAM_BASE + j)
ahc 184 dev/ic/aic7xxx_seeprom.c | ahc_inb(ahc, SRAM_BASE + j + 1) << 8;
ahc 188 dev/ic/aic7xxx_seeprom.c ahc->flags |= AHC_SCB_CONFIG_USED;
ahc 194 dev/ic/aic7xxx_seeprom.c ahc_outb(ahc, CLRINT, CLRPARERR);
ahc 195 dev/ic/aic7xxx_seeprom.c ahc_outb(ahc, CLRINT, CLRBRKADRINT);
ahc 200 dev/ic/aic7xxx_seeprom.c printf("%s: No SEEPROM available.\n", ahc_name(ahc));
ahc 201 dev/ic/aic7xxx_seeprom.c ahc->flags |= AHC_USEDEFAULTS | AHC_NO_BIOS_INIT;
ahc 202 dev/ic/aic7xxx_seeprom.c free(ahc->seep_config, M_DEVBUF);
ahc 203 dev/ic/aic7xxx_seeprom.c ahc->seep_config = NULL;
ahc 206 dev/ic/aic7xxx_seeprom.c ahc_parse_pci_eeprom(ahc, sc);
ahc 222 dev/ic/aic7xxx_seeprom.c if ((ahc->features & AHC_SPIOCAP) != 0) {
ahc 223 dev/ic/aic7xxx_seeprom.c if ((ahc_inb(ahc, SPIOCAP) & SSPIOCPS) == 0)
ahc 228 dev/ic/aic7xxx_seeprom.c ahc_acquire_seeprom(ahc, &sd);
ahc 229 dev/ic/aic7xxx_seeprom.c configure_termination(ahc, &sd, sc->adapter_control, sxfrctl1);
ahc 237 dev/ic/aic7xxx_seeprom.c ahc_name(ahc),
ahc 243 dev/ic/aic7xxx_seeprom.c ahc_parse_pci_eeprom(struct ahc_softc *ahc, struct seeprom_config *sc)
ahc 264 dev/ic/aic7xxx_seeprom.c ahc->flags |= AHC_NEWEEPROM_FMT;
ahc 277 dev/ic/aic7xxx_seeprom.c if ((ahc->flags & AHC_NEWEEPROM_FMT) != 0) {
ahc 289 dev/ic/aic7xxx_seeprom.c if ((ahc->features & AHC_ULTRA2) != 0) {
ahc 296 dev/ic/aic7xxx_seeprom.c ahc_outb(ahc, TARG_OFFSET + i, offset);
ahc 314 dev/ic/aic7xxx_seeprom.c ahc_outb(ahc, TARG_SCSIRATE + i, scsirate);
ahc 316 dev/ic/aic7xxx_seeprom.c ahc->our_id = sc->brtime_id & CFSCSIID;
ahc 318 dev/ic/aic7xxx_seeprom.c scsi_conf = (ahc->our_id & 0x7);
ahc 324 dev/ic/aic7xxx_seeprom.c ahc->flags |= (sc->adapter_control & CFBOOTCHAN) >> CFBOOTCHANSHIFT;
ahc 327 dev/ic/aic7xxx_seeprom.c ahc->flags |= AHC_EXTENDED_TRANS_A;
ahc 330 dev/ic/aic7xxx_seeprom.c ahc->flags |= AHC_BIOS_ENABLED;
ahc 331 dev/ic/aic7xxx_seeprom.c if (ahc->features & AHC_ULTRA
ahc 332 dev/ic/aic7xxx_seeprom.c && (ahc->flags & AHC_NEWEEPROM_FMT) == 0) {
ahc 344 dev/ic/aic7xxx_seeprom.c devconfig = pci_conf_read(ahc->bd->pc, ahc->bd->tag, DEVCONFIG);
ahc 348 dev/ic/aic7xxx_seeprom.c pci_conf_write(ahc->bd->pc, ahc->bd->tag, DEVCONFIG, devconfig);
ahc 351 dev/ic/aic7xxx_seeprom.c ahc_outb(ahc, SCSICONF, scsi_conf);
ahc 352 dev/ic/aic7xxx_seeprom.c ahc_outb(ahc, DISC_DSB, ~(discenable & 0xff));
ahc 353 dev/ic/aic7xxx_seeprom.c ahc_outb(ahc, DISC_DSB + 1, ~((discenable >> 8) & 0xff));
ahc 354 dev/ic/aic7xxx_seeprom.c ahc_outb(ahc, ULTRA_ENB, ultraenb & 0xff);
ahc 355 dev/ic/aic7xxx_seeprom.c ahc_outb(ahc, ULTRA_ENB + 1, (ultraenb >> 8) & 0xff);
ahc 359 dev/ic/aic7xxx_seeprom.c configure_termination(struct ahc_softc *ahc,
ahc 381 dev/ic/aic7xxx_seeprom.c || (ahc->features & AHC_NEW_TERMCTL) != 0) {
ahc 396 dev/ic/aic7xxx_seeprom.c if ((ahc->features & AHC_NEW_TERMCTL) != 0) {
ahc 397 dev/ic/aic7xxx_seeprom.c ahc_new_term_detect(ahc, &enableSEC_low,
ahc 405 dev/ic/aic7xxx_seeprom.c ahc_name(ahc));
ahc 413 dev/ic/aic7xxx_seeprom.c ahc_name(ahc));
ahc 421 dev/ic/aic7xxx_seeprom.c } else if ((ahc->features & AHC_SPIOCAP) != 0) {
ahc 422 dev/ic/aic7xxx_seeprom.c aic785X_cable_detect(ahc, &internal50_present,
ahc 428 dev/ic/aic7xxx_seeprom.c aic787X_cable_detect(ahc, &internal50_present,
ahc 434 dev/ic/aic7xxx_seeprom.c if ((ahc->features & AHC_WIDE) == 0)
ahc 438 dev/ic/aic7xxx_seeprom.c && (ahc->features & AHC_ULTRA2) == 0) {
ahc 440 dev/ic/aic7xxx_seeprom.c ahc_name(ahc),
ahc 443 dev/ic/aic7xxx_seeprom.c if ((ahc->features & AHC_WIDE) != 0)
ahc 447 dev/ic/aic7xxx_seeprom.c ahc_name(ahc),
ahc 452 dev/ic/aic7xxx_seeprom.c ahc_name(ahc), eeprom_present ? "is" : "not");
ahc 454 dev/ic/aic7xxx_seeprom.c if ((ahc->flags & AHC_INT50_SPEEDFLEX) != 0) {
ahc 473 dev/ic/aic7xxx_seeprom.c if ((ahc->features & AHC_ULTRA2) == 0
ahc 480 dev/ic/aic7xxx_seeprom.c "time!\n", ahc_name(ahc));
ahc 492 dev/ic/aic7xxx_seeprom.c if ((ahc->features & AHC_WIDE) != 0
ahc 498 dev/ic/aic7xxx_seeprom.c if ((ahc->flags & AHC_INT50_SPEEDFLEX) != 0)
ahc 500 dev/ic/aic7xxx_seeprom.c "Enabled\n", ahc_name(ahc));
ahc 503 dev/ic/aic7xxx_seeprom.c "Enabled\n", ahc_name(ahc),
ahc 512 dev/ic/aic7xxx_seeprom.c if ((ahc->features & AHC_ULTRA2) != 0)
ahc 517 dev/ic/aic7xxx_seeprom.c if ((ahc->flags & AHC_INT50_SPEEDFLEX) != 0)
ahc 519 dev/ic/aic7xxx_seeprom.c "Enabled\n", ahc_name(ahc));
ahc 522 dev/ic/aic7xxx_seeprom.c "Enabled\n", ahc_name(ahc),
ahc 532 dev/ic/aic7xxx_seeprom.c "Enabled\n", ahc_name(ahc));
ahc 539 dev/ic/aic7xxx_seeprom.c ahc_outb(ahc, SXFRCTL1, *sxfrctl1);
ahc 546 dev/ic/aic7xxx_seeprom.c ahc_name(ahc));
ahc 549 dev/ic/aic7xxx_seeprom.c write_brdctl(ahc, brddat);
ahc 557 dev/ic/aic7xxx_seeprom.c ahc_name(ahc),
ahc 558 dev/ic/aic7xxx_seeprom.c (ahc->features & AHC_ULTRA2) ? "Primary "
ahc 563 dev/ic/aic7xxx_seeprom.c && (ahc->features & AHC_WIDE) != 0) {
ahc 567 dev/ic/aic7xxx_seeprom.c ahc_name(ahc),
ahc 568 dev/ic/aic7xxx_seeprom.c (ahc->features & AHC_ULTRA2)
ahc 576 dev/ic/aic7xxx_seeprom.c ahc_outb(ahc, SXFRCTL1, *sxfrctl1);
ahc 578 dev/ic/aic7xxx_seeprom.c if ((ahc->features & AHC_WIDE) != 0)
ahc 579 dev/ic/aic7xxx_seeprom.c write_brdctl(ahc, brddat);
ahc 585 dev/ic/aic7xxx_seeprom.c ahc_new_term_detect(struct ahc_softc *ahc, int *enableSEC_low,
ahc 598 dev/ic/aic7xxx_seeprom.c brdctl = read_brdctl(ahc);
ahc 607 dev/ic/aic7xxx_seeprom.c aic787X_cable_detect(struct ahc_softc *ahc, int *internal50_present,
ahc 620 dev/ic/aic7xxx_seeprom.c write_brdctl(ahc, 0);
ahc 627 dev/ic/aic7xxx_seeprom.c brdctl = read_brdctl(ahc);
ahc 635 dev/ic/aic7xxx_seeprom.c write_brdctl(ahc, BRDDAT5);
ahc 642 dev/ic/aic7xxx_seeprom.c brdctl = read_brdctl(ahc);
ahc 648 dev/ic/aic7xxx_seeprom.c aic785X_cable_detect(struct ahc_softc *ahc, int *internal50_present,
ahc 654 dev/ic/aic7xxx_seeprom.c spiocap = ahc_inb(ahc, SPIOCAP);
ahc 657 dev/ic/aic7xxx_seeprom.c ahc_outb(ahc, SPIOCAP, spiocap);
ahc 658 dev/ic/aic7xxx_seeprom.c ahc_outb(ahc, BRDCTL, BRDRW|BRDCS);
ahc 659 dev/ic/aic7xxx_seeprom.c ahc_outb(ahc, BRDCTL, 0);
ahc 660 dev/ic/aic7xxx_seeprom.c brdctl = ahc_inb(ahc, BRDCTL);
ahc 664 dev/ic/aic7xxx_seeprom.c *eeprom_present = (ahc_inb(ahc, SPIOCAP) & EEPROM) ? 1 : 0;
ahc 668 dev/ic/aic7xxx_seeprom.c ahc_acquire_seeprom(struct ahc_softc *ahc, struct seeprom_descriptor *sd)
ahc 672 dev/ic/aic7xxx_seeprom.c if ((ahc->features & AHC_SPIOCAP) != 0
ahc 673 dev/ic/aic7xxx_seeprom.c && (ahc_inb(ahc, SPIOCAP) & SEEPROM) == 0)
ahc 703 dev/ic/aic7xxx_seeprom.c write_brdctl(struct ahc_softc *ahc, uint8_t value)
ahc 707 dev/ic/aic7xxx_seeprom.c if ((ahc->chip & AHC_CHIPID_MASK) == AHC_AIC7895) {
ahc 709 dev/ic/aic7xxx_seeprom.c if (ahc->channel == 'B')
ahc 711 dev/ic/aic7xxx_seeprom.c } else if ((ahc->features & AHC_ULTRA2) != 0) {
ahc 716 dev/ic/aic7xxx_seeprom.c ahc_outb(ahc, BRDCTL, brdctl);
ahc 717 dev/ic/aic7xxx_seeprom.c ahc_flush_device_writes(ahc);
ahc 719 dev/ic/aic7xxx_seeprom.c ahc_outb(ahc, BRDCTL, brdctl);
ahc 720 dev/ic/aic7xxx_seeprom.c ahc_flush_device_writes(ahc);
ahc 721 dev/ic/aic7xxx_seeprom.c if ((ahc->features & AHC_ULTRA2) != 0)
ahc 725 dev/ic/aic7xxx_seeprom.c ahc_outb(ahc, BRDCTL, brdctl);
ahc 726 dev/ic/aic7xxx_seeprom.c ahc_flush_device_writes(ahc);
ahc 727 dev/ic/aic7xxx_seeprom.c if ((ahc->features & AHC_ULTRA2) != 0)
ahc 731 dev/ic/aic7xxx_seeprom.c ahc_outb(ahc, BRDCTL, brdctl);
ahc 735 dev/ic/aic7xxx_seeprom.c read_brdctl(ahc)
ahc 736 dev/ic/aic7xxx_seeprom.c struct ahc_softc *ahc;
ahc 741 dev/ic/aic7xxx_seeprom.c if ((ahc->chip & AHC_CHIPID_MASK) == AHC_AIC7895) {
ahc 743 dev/ic/aic7xxx_seeprom.c if (ahc->channel == 'B')
ahc 745 dev/ic/aic7xxx_seeprom.c } else if ((ahc->features & AHC_ULTRA2) != 0) {
ahc 750 dev/ic/aic7xxx_seeprom.c ahc_outb(ahc, BRDCTL, brdctl);
ahc 751 dev/ic/aic7xxx_seeprom.c ahc_flush_device_writes(ahc);
ahc 752 dev/ic/aic7xxx_seeprom.c value = ahc_inb(ahc, BRDCTL);
ahc 753 dev/ic/aic7xxx_seeprom.c ahc_outb(ahc, BRDCTL, 0);
ahc 85 dev/ic/aic7xxxvar.h #define SCSIID_TARGET(ahc, scsiid) \
ahc 86 dev/ic/aic7xxxvar.h (((scsiid) & ((((ahc)->features & AHC_TWIN) != 0) ? TWIN_TID : TID)) \
ahc 90 dev/ic/aic7xxxvar.h #define SCSIID_CHANNEL(ahc, scsiid) \
ahc 91 dev/ic/aic7xxxvar.h ((((ahc)->features & AHC_TWIN) != 0) \
ahc 94 dev/ic/aic7xxxvar.h #define SCB_IS_SCSIBUS_B(ahc, scb) \
ahc 95 dev/ic/aic7xxxvar.h (SCSIID_CHANNEL(ahc, (scb)->hscb->scsiid) == 'B')
ahc 98 dev/ic/aic7xxxvar.h #define SCB_GET_TARGET(ahc, scb) \
ahc 99 dev/ic/aic7xxxvar.h SCSIID_TARGET((ahc), (scb)->hscb->scsiid)
ahc 100 dev/ic/aic7xxxvar.h #define SCB_GET_CHANNEL(ahc, scb) \
ahc 101 dev/ic/aic7xxxvar.h SCSIID_CHANNEL(ahc, (scb)->hscb->scsiid)
ahc 104 dev/ic/aic7xxxvar.h #define SCB_GET_TARGET_OFFSET(ahc, scb) \
ahc 105 dev/ic/aic7xxxvar.h (SCB_GET_TARGET(ahc, scb))
ahc 106 dev/ic/aic7xxxvar.h #define SCB_GET_TARGET_MASK(ahc, scb) \
ahc 107 dev/ic/aic7xxxvar.h (0x01 << (SCB_GET_TARGET_OFFSET(ahc, scb)))
ahc 1214 dev/ic/aic7xxxvar.h void ahc_run_untagged_queues(struct ahc_softc *ahc);
ahc 1215 dev/ic/aic7xxxvar.h void ahc_run_untagged_queue(struct ahc_softc *ahc,
ahc 1217 dev/ic/aic7xxxvar.h void ahc_qinfifo_requeue_tail(struct ahc_softc *ahc,
ahc 1219 dev/ic/aic7xxxvar.h int ahc_match_scb(struct ahc_softc *ahc, struct scb *scb,
ahc 1228 dev/ic/aic7xxxvar.h int ahc_chip_init(struct ahc_softc *ahc);
ahc 1229 dev/ic/aic7xxxvar.h int ahc_init(struct ahc_softc *ahc);
ahc 1230 dev/ic/aic7xxxvar.h void ahc_intr_enable(struct ahc_softc *ahc, int enable);
ahc 1234 dev/ic/aic7xxxvar.h void ahc_alloc_scbs(struct ahc_softc *ahc);
ahc 1235 dev/ic/aic7xxxvar.h void ahc_free(struct ahc_softc *ahc);
ahc 1236 dev/ic/aic7xxxvar.h int ahc_reset(struct ahc_softc *ahc, int reinit);
ahc 1244 dev/ic/aic7xxxvar.h void ahc_run_tqinfifo(struct ahc_softc *ahc, int paused);
ahc 1246 dev/ic/aic7xxxvar.h void ahc_handle_brkadrint(struct ahc_softc *ahc);
ahc 1247 dev/ic/aic7xxxvar.h void ahc_handle_seqint(struct ahc_softc *ahc, u_int intstat);
ahc 1248 dev/ic/aic7xxxvar.h void ahc_handle_scsiint(struct ahc_softc *ahc,
ahc 1250 dev/ic/aic7xxxvar.h void ahc_clear_critical_section(struct ahc_softc *ahc);
ahc 1279 dev/ic/aic7xxxvar.h struct ahc_syncrate* ahc_find_syncrate(struct ahc_softc *ahc, u_int *period,
ahc 1281 dev/ic/aic7xxxvar.h u_int ahc_find_period(struct ahc_softc *ahc,
ahc 1283 dev/ic/aic7xxxvar.h void ahc_validate_offset(struct ahc_softc *ahc,
ahc 1288 dev/ic/aic7xxxvar.h void ahc_validate_width(struct ahc_softc *ahc,
ahc 1319 dev/ic/aic7xxxvar.h void ahc_set_tags(struct ahc_softc *ahc,
ahc 1353 dev/ic/aic7xxxvar.h void ahc_print_devinfo(struct ahc_softc *ahc,
ahc 1355 dev/ic/aic7xxxvar.h void ahc_dump_card_state(struct ahc_softc *ahc);
ahc 1364 dev/ic/aic7xxxvar.h int ahc_acquire_seeprom(struct ahc_softc *ahc,
ahc 892 dev/microcode/aic7xxx/aic7xxx_seq.h typedef int ahc_patch_func_t (struct ahc_softc *ahc);
ahc 896 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch23_func(struct ahc_softc *ahc)
ahc 898 dev/microcode/aic7xxx/aic7xxx_seq.h return ((ahc->bugs & AHC_SCBCHAN_UPLOAD_BUG) != 0);
ahc 904 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch22_func(struct ahc_softc *ahc)
ahc 906 dev/microcode/aic7xxx/aic7xxx_seq.h return ((ahc->features & AHC_CMD_CHAN) == 0);
ahc 912 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch21_func(struct ahc_softc *ahc)
ahc 914 dev/microcode/aic7xxx/aic7xxx_seq.h return ((ahc->features & AHC_QUEUE_REGS) == 0);
ahc 920 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch20_func(struct ahc_softc *ahc)
ahc 922 dev/microcode/aic7xxx/aic7xxx_seq.h return ((ahc->features & AHC_WIDE) != 0);
ahc 928 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch19_func(struct ahc_softc *ahc)
ahc 930 dev/microcode/aic7xxx/aic7xxx_seq.h return ((ahc->flags & AHC_SCB_BTT) != 0);
ahc 936 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch18_func(struct ahc_softc *ahc)
ahc 938 dev/microcode/aic7xxx/aic7xxx_seq.h return ((ahc->bugs & AHC_PCI_2_1_RETRY_BUG) != 0);
ahc 944 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch17_func(struct ahc_softc *ahc)
ahc 946 dev/microcode/aic7xxx/aic7xxx_seq.h return ((ahc->bugs & AHC_TMODE_WIDEODD_BUG) != 0);
ahc 952 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch16_func(struct ahc_softc *ahc)
ahc 954 dev/microcode/aic7xxx/aic7xxx_seq.h return ((ahc->bugs & AHC_AUTOFLUSH_BUG) != 0);
ahc 960 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch15_func(struct ahc_softc *ahc)
ahc 962 dev/microcode/aic7xxx/aic7xxx_seq.h return ((ahc->features & AHC_ULTRA2) == 0);
ahc 968 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch14_func(struct ahc_softc *ahc)
ahc 970 dev/microcode/aic7xxx/aic7xxx_seq.h return ((ahc->bugs & AHC_PCI_MWI_BUG) != 0 && ahc->pci_cachesize != 0);
ahc 976 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch13_func(struct ahc_softc *ahc)
ahc 978 dev/microcode/aic7xxx/aic7xxx_seq.h return ((ahc->flags & AHC_39BIT_ADDRESSING) != 0);
ahc 984 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch12_func(struct ahc_softc *ahc)
ahc 986 dev/microcode/aic7xxx/aic7xxx_seq.h return ((ahc->features & AHC_HS_MAILBOX) != 0);
ahc 992 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch11_func(struct ahc_softc *ahc)
ahc 994 dev/microcode/aic7xxx/aic7xxx_seq.h return ((ahc->features & AHC_ULTRA) != 0);
ahc 1000 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch10_func(struct ahc_softc *ahc)
ahc 1002 dev/microcode/aic7xxx/aic7xxx_seq.h return ((ahc->features & AHC_MULTI_TID) != 0);
ahc 1008 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch9_func(struct ahc_softc *ahc)
ahc 1010 dev/microcode/aic7xxx/aic7xxx_seq.h return ((ahc->features & AHC_CMD_CHAN) != 0);
ahc 1016 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch8_func(struct ahc_softc *ahc)
ahc 1018 dev/microcode/aic7xxx/aic7xxx_seq.h return ((ahc->flags & AHC_INITIATORROLE) != 0);
ahc 1024 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch7_func(struct ahc_softc *ahc)
ahc 1026 dev/microcode/aic7xxx/aic7xxx_seq.h return ((ahc->flags & AHC_TARGETROLE) != 0);
ahc 1032 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch6_func(struct ahc_softc *ahc)
ahc 1034 dev/microcode/aic7xxx/aic7xxx_seq.h return ((ahc->features & AHC_DT) == 0);
ahc 1040 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch5_func(struct ahc_softc *ahc)
ahc 1042 dev/microcode/aic7xxx/aic7xxx_seq.h return ((ahc->flags & AHC_SEQUENCER_DEBUG) != 0);
ahc 1048 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch4_func(struct ahc_softc *ahc)
ahc 1050 dev/microcode/aic7xxx/aic7xxx_seq.h return ((ahc->flags & AHC_PAGESCBS) != 0);
ahc 1056 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch3_func(struct ahc_softc *ahc)
ahc 1058 dev/microcode/aic7xxx/aic7xxx_seq.h return ((ahc->features & AHC_QUEUE_REGS) != 0);
ahc 1064 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch2_func(struct ahc_softc *ahc)
ahc 1066 dev/microcode/aic7xxx/aic7xxx_seq.h return ((ahc->features & AHC_TWIN) != 0);
ahc 1072 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch1_func(struct ahc_softc *ahc)
ahc 1074 dev/microcode/aic7xxx/aic7xxx_seq.h return ((ahc->features & AHC_ULTRA2) != 0);
ahc 1080 dev/microcode/aic7xxx/aic7xxx_seq.h ahc_patch0_func(struct ahc_softc *ahc)
ahc 639 dev/pci/ahc_pci.c static int ahc_ext_scbram_present(struct ahc_softc *ahc);
ahc 640 dev/pci/ahc_pci.c static void ahc_scbram_config(struct ahc_softc *ahc, int enable,
ahc 642 dev/pci/ahc_pci.c static void ahc_probe_ext_scbram(struct ahc_softc *ahc);
ahc 643 dev/pci/ahc_pci.c static int ahc_pci_chip_init(struct ahc_softc *ahc);
ahc 707 dev/pci/ahc_pci.c struct ahc_softc *ahc = (void *)self;
ahc 735 dev/pci/ahc_pci.c LIST_INIT(&ahc->pending_scbs);
ahc 736 dev/pci/ahc_pci.c ahc->channel = 'A';
ahc 737 dev/pci/ahc_pci.c ahc->seqctl = FASTMODE;
ahc 739 dev/pci/ahc_pci.c TAILQ_INIT(&ahc->untagged_queues[i]);
ahc 745 dev/pci/ahc_pci.c ahc->sc_channel_b.scsibus = 0xff;
ahc 747 dev/pci/ahc_pci.c ahc->dev_softc = pa;
ahc 749 dev/pci/ahc_pci.c ahc_set_name(ahc, ahc->sc_dev.dv_xname);
ahc 750 dev/pci/ahc_pci.c ahc->parent_dmat = pa->pa_dmat;
ahc 760 dev/pci/ahc_pci.c printf("%s: unable to allocate bus-specific data\n", ahc_name(ahc));
ahc 771 dev/pci/ahc_pci.c ahc->bd = bd;
ahc 773 dev/pci/ahc_pci.c error = entry->setup(ahc);
ahc 797 dev/pci/ahc_pci.c ahc_name(ahc), memt, (u_int32_t)memh, (u_int32_t)iot, ioh);
ahc 812 dev/pci/ahc_pci.c ahc->tag = st;
ahc 813 dev/pci/ahc_pci.c ahc->bsh = sh;
ahc 815 dev/pci/ahc_pci.c ahc->chip |= AHC_PCI;
ahc 822 dev/pci/ahc_pci.c ahc_intr_enable(ahc, FALSE);
ahc 838 dev/pci/ahc_pci.c if ((ahc->flags & AHC_39BIT_ADDRESSING) != 0) {
ahc 842 dev/pci/ahc_pci.c ahc_name(ahc));
ahc 857 dev/pci/ahc_pci.c if ((ahc->flags & AHC_DISABLE_PCI_PERR) != 0) {
ahc 865 dev/pci/ahc_pci.c ahc->flags |= AHC_PAGESCBS;
ahc 866 dev/pci/ahc_pci.c error = ahc_softc_init(ahc);
ahc 870 dev/pci/ahc_pci.c ahc->bus_intr = ahc_pci_intr;
ahc 871 dev/pci/ahc_pci.c ahc->bus_chip_init = ahc_pci_chip_init;
ahc 874 dev/pci/ahc_pci.c if ((ahc_inb(ahc, HCNTRL) & POWRDN) == 0) {
ahc 875 dev/pci/ahc_pci.c ahc_pause(ahc);
ahc 876 dev/pci/ahc_pci.c if ((ahc->features & AHC_ULTRA2) != 0)
ahc 877 dev/pci/ahc_pci.c our_id = ahc_inb(ahc, SCSIID_ULTRA2) & OID;
ahc 879 dev/pci/ahc_pci.c our_id = ahc_inb(ahc, SCSIID) & OID;
ahc 880 dev/pci/ahc_pci.c sxfrctl1 = ahc_inb(ahc, SXFRCTL1) & STPWEN;
ahc 881 dev/pci/ahc_pci.c scsiseq = ahc_inb(ahc, SCSISEQ);
ahc 888 dev/pci/ahc_pci.c error = ahc_reset(ahc, /*reinit*/FALSE);
ahc 892 dev/pci/ahc_pci.c if ((ahc->features & AHC_DT) != 0) {
ahc 896 dev/pci/ahc_pci.c sfunct = ahc_inb(ahc, SFUNCT) & ~ALT_MODE;
ahc 897 dev/pci/ahc_pci.c ahc_outb(ahc, SFUNCT, sfunct | ALT_MODE);
ahc 898 dev/pci/ahc_pci.c ahc_outb(ahc, OPTIONMODE,
ahc 900 dev/pci/ahc_pci.c ahc_outb(ahc, SFUNCT, sfunct);
ahc 903 dev/pci/ahc_pci.c ahc_outb(ahc, CRCCONTROL1, CRCVALCHKEN|CRCENDCHKEN|CRCREQCHKEN
ahc 908 dev/pci/ahc_pci.c printf("%s: couldn't map interrupt\n", ahc_name(ahc));
ahc 909 dev/pci/ahc_pci.c ahc_free(ahc);
ahc 913 dev/pci/ahc_pci.c ahc->ih = pci_intr_establish(pa->pa_pc, ih, IPL_BIO,
ahc 914 dev/pci/ahc_pci.c ahc_platform_intr, ahc, ahc->sc_dev.dv_xname);
ahc 915 dev/pci/ahc_pci.c if (ahc->ih == NULL) {
ahc 920 dev/pci/ahc_pci.c ahc_free(ahc);
ahc 925 dev/pci/ahc_pci.c dscommand0 = ahc_inb(ahc, DSCOMMAND0);
ahc 927 dev/pci/ahc_pci.c if ((ahc->features & AHC_ULTRA2) != 0) {
ahc 940 dev/pci/ahc_pci.c if ((ahc->bugs & AHC_CACHETHEN_DIS_BUG) != 0)
ahc 943 dev/pci/ahc_pci.c if ((ahc->bugs & AHC_CACHETHEN_BUG) != 0)
ahc 946 dev/pci/ahc_pci.c ahc_outb(ahc, DSCOMMAND0, dscommand0);
ahc 948 dev/pci/ahc_pci.c ahc->pci_cachesize =
ahc 950 dev/pci/ahc_pci.c ahc->pci_cachesize *= 4;
ahc 952 dev/pci/ahc_pci.c if ((ahc->bugs & AHC_PCI_2_1_RETRY_BUG) != 0
ahc 953 dev/pci/ahc_pci.c && ahc->pci_cachesize == 4) {
ahc 955 dev/pci/ahc_pci.c ahc->pci_cachesize = 0;
ahc 962 dev/pci/ahc_pci.c if ((ahc->features & AHC_ULTRA) != 0) {
ahc 967 dev/pci/ahc_pci.c ahc->features &= ~AHC_ULTRA;
ahc 970 dev/pci/ahc_pci.c ahc->seep_config = malloc(sizeof(*ahc->seep_config),
ahc 972 dev/pci/ahc_pci.c if (ahc->seep_config == NULL)
ahc 975 dev/pci/ahc_pci.c memset(ahc->seep_config, 0, sizeof(*ahc->seep_config));
ahc 978 dev/pci/ahc_pci.c ahc_check_extport(ahc, &sxfrctl1);
ahc 983 dev/pci/ahc_pci.c sblkctl = ahc_inb(ahc, SBLKCTL);
ahc 984 dev/pci/ahc_pci.c ahc_outb(ahc, SBLKCTL, (sblkctl & ~(DIAGLEDEN|DIAGLEDON)));
ahc 986 dev/pci/ahc_pci.c if ((ahc->features & AHC_ULTRA2) != 0) {
ahc 987 dev/pci/ahc_pci.c ahc_outb(ahc, DFF_THRSH, RD_DFTHRSH_MAX|WR_DFTHRSH_MAX);
ahc 989 dev/pci/ahc_pci.c ahc_outb(ahc, DSPCISTATUS, DFTHRSH_100);
ahc 992 dev/pci/ahc_pci.c if (ahc->flags & AHC_USEDEFAULTS) {
ahc 999 dev/pci/ahc_pci.c if ((ahc->flags & AHC_NO_BIOS_INIT) == 0
ahc 1002 dev/pci/ahc_pci.c ahc_name(ahc));
ahc 1003 dev/pci/ahc_pci.c ahc->flags &= ~AHC_USEDEFAULTS;
ahc 1004 dev/pci/ahc_pci.c ahc->flags |= AHC_BIOS_ENABLED;
ahc 1013 dev/pci/ahc_pci.c ahc_outb(ahc, SCSICONF, our_id|ENSPCHK|RESET_SCSI);
ahc 1015 dev/pci/ahc_pci.c ahc->our_id = our_id;
ahc 1023 dev/pci/ahc_pci.c ahc_probe_ext_scbram(ahc);
ahc 1030 dev/pci/ahc_pci.c ahc->flags |= AHC_TERM_ENB_A;
ahc 1036 dev/pci/ahc_pci.c ahc->bus_softc.pci_softc.devconfig =
ahc 1038 dev/pci/ahc_pci.c ahc->bus_softc.pci_softc.command =
ahc 1040 dev/pci/ahc_pci.c ahc->bus_softc.pci_softc.csize_lattime =
ahc 1042 dev/pci/ahc_pci.c ahc->bus_softc.pci_softc.dscommand0 = ahc_inb(ahc, DSCOMMAND0);
ahc 1043 dev/pci/ahc_pci.c ahc->bus_softc.pci_softc.dspcistatus = ahc_inb(ahc, DSPCISTATUS);
ahc 1044 dev/pci/ahc_pci.c if ((ahc->features & AHC_DT) != 0) {
ahc 1047 dev/pci/ahc_pci.c sfunct = ahc_inb(ahc, SFUNCT) & ~ALT_MODE;
ahc 1048 dev/pci/ahc_pci.c ahc_outb(ahc, SFUNCT, sfunct | ALT_MODE);
ahc 1049 dev/pci/ahc_pci.c ahc->bus_softc.pci_softc.optionmode = ahc_inb(ahc, OPTIONMODE);
ahc 1050 dev/pci/ahc_pci.c ahc->bus_softc.pci_softc.targcrccnt = ahc_inw(ahc, TARGCRCCNT);
ahc 1051 dev/pci/ahc_pci.c ahc_outb(ahc, SFUNCT, sfunct);
ahc 1052 dev/pci/ahc_pci.c ahc->bus_softc.pci_softc.crccontrol1 =
ahc 1053 dev/pci/ahc_pci.c ahc_inb(ahc, CRCCONTROL1);
ahc 1055 dev/pci/ahc_pci.c if ((ahc->features & AHC_MULTI_FUNC) != 0)
ahc 1056 dev/pci/ahc_pci.c ahc->bus_softc.pci_softc.scbbaddr = ahc_inb(ahc, SCBBADDR);
ahc 1058 dev/pci/ahc_pci.c if ((ahc->features & AHC_ULTRA2) != 0)
ahc 1059 dev/pci/ahc_pci.c ahc->bus_softc.pci_softc.dff_thrsh = ahc_inb(ahc, DFF_THRSH);
ahc 1062 dev/pci/ahc_pci.c if (ahc_init(ahc))
ahc 1065 dev/pci/ahc_pci.c ahc_attach(ahc);
ahc 1070 dev/pci/ahc_pci.c ahc_free(ahc);
ahc 1114 dev/pci/ahc_pci.c ahc_ext_scbram_present(struct ahc_softc *ahc)
ahc 1121 dev/pci/ahc_pci.c chip = ahc->chip & AHC_CHIPID_MASK;
ahc 1122 dev/pci/ahc_pci.c devconfig = pci_conf_read(ahc->bd->pc, ahc->bd->tag, DEVCONFIG);
ahc 1125 dev/pci/ahc_pci.c if ((ahc->features & AHC_ULTRA2) != 0)
ahc 1126 dev/pci/ahc_pci.c ramps = (ahc_inb(ahc, DSCOMMAND0) & RAMPS) != 0;
ahc 1149 dev/pci/ahc_pci.c ahc_scbram_config(struct ahc_softc *ahc, int enable, int pcheck,
ahc 1154 dev/pci/ahc_pci.c if (ahc->features & AHC_MULTI_FUNC) {
ahc 1159 dev/pci/ahc_pci.c ahc_outb(ahc, SCBBADDR, ahc->bd->func);
ahc 1162 dev/pci/ahc_pci.c ahc->flags &= ~AHC_LSCBS_ENABLED;
ahc 1164 dev/pci/ahc_pci.c ahc->flags |= AHC_LSCBS_ENABLED;
ahc 1165 dev/pci/ahc_pci.c devconfig = pci_conf_read(ahc->bd->pc, ahc->bd->tag, DEVCONFIG);
ahc 1166 dev/pci/ahc_pci.c if ((ahc->features & AHC_ULTRA2) != 0) {
ahc 1169 dev/pci/ahc_pci.c dscommand0 = ahc_inb(ahc, DSCOMMAND0);
ahc 1178 dev/pci/ahc_pci.c ahc_outb(ahc, DSCOMMAND0, dscommand0);
ahc 1198 dev/pci/ahc_pci.c pci_conf_write(ahc->bd->pc, ahc->bd->tag, DEVCONFIG, devconfig);
ahc 1207 dev/pci/ahc_pci.c ahc_probe_ext_scbram(struct ahc_softc *ahc)
ahc 1222 dev/pci/ahc_pci.c if (ahc_ext_scbram_present(ahc) == 0)
ahc 1228 dev/pci/ahc_pci.c ahc_scbram_config(ahc, /*enable*/TRUE, pcheck, fast, large);
ahc 1229 dev/pci/ahc_pci.c num_scbs = ahc_probe_scbs(ahc);
ahc 1241 dev/pci/ahc_pci.c ahc_outb(ahc, SEQCTL, 0);
ahc 1242 dev/pci/ahc_pci.c ahc_outb(ahc, CLRINT, CLRPARERR);
ahc 1243 dev/pci/ahc_pci.c ahc_outb(ahc, CLRINT, CLRBRKADRINT);
ahc 1246 dev/pci/ahc_pci.c ahc_scbram_config(ahc, enable, /*pcheck*/TRUE, fast, large);
ahc 1247 dev/pci/ahc_pci.c num_scbs = ahc_probe_scbs(ahc);
ahc 1248 dev/pci/ahc_pci.c if ((ahc_inb(ahc, INTSTAT) & BRKADRINT) == 0
ahc 1249 dev/pci/ahc_pci.c || (ahc_inb(ahc, ERROR) & MPARERR) == 0)
ahc 1253 dev/pci/ahc_pci.c ahc_outb(ahc, CLRINT, CLRPARERR);
ahc 1254 dev/pci/ahc_pci.c ahc_outb(ahc, CLRINT, CLRBRKADRINT);
ahc 1257 dev/pci/ahc_pci.c ahc_scbram_config(ahc, enable, pcheck, /*fast*/TRUE, large);
ahc 1258 dev/pci/ahc_pci.c test_num_scbs = ahc_probe_scbs(ahc);
ahc 1260 dev/pci/ahc_pci.c && ((ahc_inb(ahc, INTSTAT) & BRKADRINT) == 0
ahc 1261 dev/pci/ahc_pci.c || (ahc_inb(ahc, ERROR) & MPARERR) == 0))
ahc 1268 dev/pci/ahc_pci.c if ((ahc->features & AHC_LARGE_SCBS) != 0) {
ahc 1269 dev/pci/ahc_pci.c ahc_scbram_config(ahc, enable, pcheck, fast, /*large*/TRUE);
ahc 1270 dev/pci/ahc_pci.c test_num_scbs = ahc_probe_scbs(ahc);
ahc 1281 dev/pci/ahc_pci.c ahc->flags |= AHC_SCB_BTT;
ahc 1290 dev/pci/ahc_pci.c ahc_outb(ahc, SEQCTL, PERRORDIS|FAILDIS);
ahc 1292 dev/pci/ahc_pci.c ahc_outb(ahc, CLRINT, CLRPARERR);
ahc 1293 dev/pci/ahc_pci.c ahc_outb(ahc, CLRINT, CLRBRKADRINT);
ahc 1296 dev/pci/ahc_pci.c ahc_name(ahc), fast ? "fast" : "slow",
ahc 1300 dev/pci/ahc_pci.c ahc_scbram_config(ahc, enable, pcheck, fast, large);
ahc 1309 dev/pci/ahc_pci.c ahc_pci_test_register_access(struct ahc_softc *ahc)
ahc 1322 dev/pci/ahc_pci.c cmd = pci_conf_read(ahc->bd->pc, ahc->bd->tag, PCIR_COMMAND);
ahc 1323 dev/pci/ahc_pci.c pci_conf_write(ahc->bd->pc, ahc->bd->tag, PCIR_COMMAND,
ahc 1334 dev/pci/ahc_pci.c hcntrl = ahc_inb(ahc, HCNTRL);
ahc 1345 dev/pci/ahc_pci.c ahc_outb(ahc, HCNTRL, hcntrl|PAUSE);
ahc 1346 dev/pci/ahc_pci.c while (ahc_is_paused(ahc) == 0)
ahc 1348 dev/pci/ahc_pci.c ahc_outb(ahc, SEQCTL, PERRORDIS);
ahc 1349 dev/pci/ahc_pci.c ahc_outb(ahc, SCBPTR, 0);
ahc 1350 dev/pci/ahc_pci.c ahc_outl(ahc, SCB_BASE, 0x5aa555aa);
ahc 1351 dev/pci/ahc_pci.c if (ahc_inl(ahc, SCB_BASE) != 0x5aa555aa)
ahc 1354 dev/pci/ahc_pci.c status1 = pci_conf_read(ahc->bd->pc, ahc->bd->tag,
ahc 1363 dev/pci/ahc_pci.c status1 = pci_conf_read(ahc->bd->pc, ahc->bd->tag, PCI_COMMAND_STATUS_REG + 1);
ahc 1364 dev/pci/ahc_pci.c ahc_pci_write_config(ahc->dev_softc, PCIR_STATUS + 1,
ahc 1366 dev/pci/ahc_pci.c ahc_outb(ahc, CLRINT, CLRPARERR);
ahc 1367 dev/pci/ahc_pci.c ahc_outb(ahc, SEQCTL, PERRORDIS|FAILDIS);
ahc 1368 dev/pci/ahc_pci.c ahc_pci_write_config(ahc->dev_softc, PCIR_COMMAND, cmd, /*bytes*/2);
ahc 1374 dev/pci/ahc_pci.c ahc_pci_intr(struct ahc_softc *ahc)
ahc 1379 dev/pci/ahc_pci.c error = ahc_inb(ahc, ERROR);
ahc 1383 dev/pci/ahc_pci.c status1 = pci_conf_read(ahc->bd->pc, ahc->bd->tag, PCI_COMMAND_STATUS_REG);
ahc 1386 dev/pci/ahc_pci.c ahc_name(ahc),
ahc 1387 dev/pci/ahc_pci.c ahc_inb(ahc, SEQADDR0) | (ahc_inb(ahc, SEQADDR1) << 8));
ahc 1391 dev/pci/ahc_pci.c "or write data phase\n", ahc_name(ahc));
ahc 1394 dev/pci/ahc_pci.c printf("%s: Signal System Error Detected\n", ahc_name(ahc));
ahc 1397 dev/pci/ahc_pci.c printf("%s: Received a Master Abort\n", ahc_name(ahc));
ahc 1400 dev/pci/ahc_pci.c printf("%s: Received a Target Abort\n", ahc_name(ahc));
ahc 1403 dev/pci/ahc_pci.c printf("%s: Signaled a Target Abort\n", ahc_name(ahc));
ahc 1407 dev/pci/ahc_pci.c ahc_name(ahc));
ahc 1411 dev/pci/ahc_pci.c pci_conf_write(ahc->bd->pc, ahc->bd->tag, PCI_COMMAND_STATUS_REG, status1);
ahc 1415 dev/pci/ahc_pci.c "no status bits set\n", ahc_name(ahc));
ahc 1417 dev/pci/ahc_pci.c ahc_outb(ahc, CLRINT, CLRPARERR);
ahc 1420 dev/pci/ahc_pci.c ahc_unpause(ahc);
ahc 1424 dev/pci/ahc_pci.c ahc_pci_chip_init(struct ahc_softc *ahc)
ahc 1426 dev/pci/ahc_pci.c ahc_outb(ahc, DSCOMMAND0, ahc->bus_softc.pci_softc.dscommand0);
ahc 1427 dev/pci/ahc_pci.c ahc_outb(ahc, DSPCISTATUS, ahc->bus_softc.pci_softc.dspcistatus);
ahc 1428 dev/pci/ahc_pci.c if ((ahc->features & AHC_DT) != 0) {
ahc 1431 dev/pci/ahc_pci.c sfunct = ahc_inb(ahc, SFUNCT) & ~ALT_MODE;
ahc 1432 dev/pci/ahc_pci.c ahc_outb(ahc, SFUNCT, sfunct | ALT_MODE);
ahc 1433 dev/pci/ahc_pci.c ahc_outb(ahc, OPTIONMODE, ahc->bus_softc.pci_softc.optionmode);
ahc 1434 dev/pci/ahc_pci.c ahc_outw(ahc, TARGCRCCNT, ahc->bus_softc.pci_softc.targcrccnt);
ahc 1435 dev/pci/ahc_pci.c ahc_outb(ahc, SFUNCT, sfunct);
ahc 1436 dev/pci/ahc_pci.c ahc_outb(ahc, CRCCONTROL1,
ahc 1437 dev/pci/ahc_pci.c ahc->bus_softc.pci_softc.crccontrol1);
ahc 1439 dev/pci/ahc_pci.c if ((ahc->features & AHC_MULTI_FUNC) != 0)
ahc 1440 dev/pci/ahc_pci.c ahc_outb(ahc, SCBBADDR, ahc->bus_softc.pci_softc.scbbaddr);
ahc 1442 dev/pci/ahc_pci.c if ((ahc->features & AHC_ULTRA2) != 0)
ahc 1443 dev/pci/ahc_pci.c ahc_outb(ahc, DFF_THRSH, ahc->bus_softc.pci_softc.dff_thrsh);
ahc 1445 dev/pci/ahc_pci.c return (ahc_chip_init(ahc));
ahc 1449 dev/pci/ahc_pci.c ahc_aic785X_setup(struct ahc_softc *ahc)
ahc 1453 dev/pci/ahc_pci.c ahc->channel = 'A';
ahc 1454 dev/pci/ahc_pci.c ahc->chip = AHC_AIC7850;
ahc 1455 dev/pci/ahc_pci.c ahc->features = AHC_AIC7850_FE;
ahc 1456 dev/pci/ahc_pci.c ahc->bugs |= AHC_TMODE_WIDEODD_BUG|AHC_CACHETHEN_BUG|AHC_PCI_MWI_BUG;
ahc 1457 dev/pci/ahc_pci.c rev = PCI_REVISION(ahc->bd->class);
ahc 1459 dev/pci/ahc_pci.c ahc->bugs |= AHC_PCI_2_1_RETRY_BUG;
ahc 1460 dev/pci/ahc_pci.c ahc->instruction_ram_size = 512;
ahc 1465 dev/pci/ahc_pci.c ahc_aic7860_setup(struct ahc_softc *ahc)
ahc 1469 dev/pci/ahc_pci.c ahc->channel = 'A';
ahc 1470 dev/pci/ahc_pci.c ahc->chip = AHC_AIC7860;
ahc 1471 dev/pci/ahc_pci.c ahc->features = AHC_AIC7860_FE;
ahc 1472 dev/pci/ahc_pci.c ahc->bugs |= AHC_TMODE_WIDEODD_BUG|AHC_CACHETHEN_BUG|AHC_PCI_MWI_BUG;
ahc 1473 dev/pci/ahc_pci.c rev = PCI_REVISION(ahc->bd->class);
ahc 1475 dev/pci/ahc_pci.c ahc->bugs |= AHC_PCI_2_1_RETRY_BUG;
ahc 1476 dev/pci/ahc_pci.c ahc->instruction_ram_size = 512;
ahc 1481 dev/pci/ahc_pci.c ahc_apa1480_setup(struct ahc_softc *ahc)
ahc 1485 dev/pci/ahc_pci.c error = ahc_aic7860_setup(ahc);
ahc 1488 dev/pci/ahc_pci.c ahc->features |= AHC_REMOVABLE;
ahc 1493 dev/pci/ahc_pci.c ahc_aic7870_setup(struct ahc_softc *ahc)
ahc 1496 dev/pci/ahc_pci.c ahc->channel = 'A';
ahc 1497 dev/pci/ahc_pci.c ahc->chip = AHC_AIC7870;
ahc 1498 dev/pci/ahc_pci.c ahc->features = AHC_AIC7870_FE;
ahc 1499 dev/pci/ahc_pci.c ahc->bugs |= AHC_TMODE_WIDEODD_BUG|AHC_CACHETHEN_BUG|AHC_PCI_MWI_BUG;
ahc 1500 dev/pci/ahc_pci.c ahc->instruction_ram_size = 512;
ahc 1505 dev/pci/ahc_pci.c ahc_aha394X_setup(struct ahc_softc *ahc)
ahc 1509 dev/pci/ahc_pci.c error = ahc_aic7870_setup(ahc);
ahc 1511 dev/pci/ahc_pci.c error = ahc_aha394XX_setup(ahc);
ahc 1516 dev/pci/ahc_pci.c ahc_aha398X_setup(struct ahc_softc *ahc)
ahc 1520 dev/pci/ahc_pci.c error = ahc_aic7870_setup(ahc);
ahc 1522 dev/pci/ahc_pci.c error = ahc_aha398XX_setup(ahc);
ahc 1527 dev/pci/ahc_pci.c ahc_aha494X_setup(struct ahc_softc *ahc)
ahc 1531 dev/pci/ahc_pci.c error = ahc_aic7870_setup(ahc);
ahc 1533 dev/pci/ahc_pci.c error = ahc_aha494XX_setup(ahc);
ahc 1538 dev/pci/ahc_pci.c ahc_aic7880_setup(struct ahc_softc *ahc)
ahc 1542 dev/pci/ahc_pci.c ahc->channel = 'A';
ahc 1543 dev/pci/ahc_pci.c ahc->chip = AHC_AIC7880;
ahc 1544 dev/pci/ahc_pci.c ahc->features = AHC_AIC7880_FE;
ahc 1545 dev/pci/ahc_pci.c ahc->bugs |= AHC_TMODE_WIDEODD_BUG;
ahc 1546 dev/pci/ahc_pci.c rev = PCI_REVISION(ahc->bd->class);
ahc 1548 dev/pci/ahc_pci.c ahc->bugs |= AHC_PCI_2_1_RETRY_BUG;
ahc 1550 dev/pci/ahc_pci.c ahc->bugs |= AHC_CACHETHEN_BUG|AHC_PCI_MWI_BUG;
ahc 1552 dev/pci/ahc_pci.c ahc->instruction_ram_size = 512;
ahc 1557 dev/pci/ahc_pci.c ahc_aha2940Pro_setup(struct ahc_softc *ahc)
ahc 1560 dev/pci/ahc_pci.c ahc->flags |= AHC_INT50_SPEEDFLEX;
ahc 1561 dev/pci/ahc_pci.c return (ahc_aic7880_setup(ahc));
ahc 1565 dev/pci/ahc_pci.c ahc_aha394XU_setup(struct ahc_softc *ahc)
ahc 1569 dev/pci/ahc_pci.c error = ahc_aic7880_setup(ahc);
ahc 1571 dev/pci/ahc_pci.c error = ahc_aha394XX_setup(ahc);
ahc 1576 dev/pci/ahc_pci.c ahc_aha398XU_setup(struct ahc_softc *ahc)
ahc 1580 dev/pci/ahc_pci.c error = ahc_aic7880_setup(ahc);
ahc 1582 dev/pci/ahc_pci.c error = ahc_aha398XX_setup(ahc);
ahc 1587 dev/pci/ahc_pci.c ahc_aic7890_setup(struct ahc_softc *ahc)
ahc 1591 dev/pci/ahc_pci.c ahc->channel = 'A';
ahc 1592 dev/pci/ahc_pci.c ahc->chip = AHC_AIC7890;
ahc 1593 dev/pci/ahc_pci.c ahc->features = AHC_AIC7890_FE;
ahc 1594 dev/pci/ahc_pci.c ahc->flags |= AHC_NEWEEPROM_FMT;
ahc 1595 dev/pci/ahc_pci.c rev = PCI_REVISION(ahc->bd->class);
ahc 1597 dev/pci/ahc_pci.c ahc->bugs |= AHC_AUTOFLUSH_BUG|AHC_CACHETHEN_BUG;
ahc 1598 dev/pci/ahc_pci.c ahc->instruction_ram_size = 768;
ahc 1603 dev/pci/ahc_pci.c ahc_aic7892_setup(struct ahc_softc *ahc)
ahc 1606 dev/pci/ahc_pci.c ahc->channel = 'A';
ahc 1607 dev/pci/ahc_pci.c ahc->chip = AHC_AIC7892;
ahc 1608 dev/pci/ahc_pci.c ahc->features = AHC_AIC7892_FE;
ahc 1609 dev/pci/ahc_pci.c ahc->flags |= AHC_NEWEEPROM_FMT;
ahc 1610 dev/pci/ahc_pci.c ahc->bugs |= AHC_SCBCHAN_UPLOAD_BUG;
ahc 1611 dev/pci/ahc_pci.c ahc->instruction_ram_size = 1024;
ahc 1616 dev/pci/ahc_pci.c ahc_aic7895_setup(struct ahc_softc *ahc)
ahc 1620 dev/pci/ahc_pci.c ahc->channel = (ahc->bd->func == 1) ? 'B' : 'A';
ahc 1624 dev/pci/ahc_pci.c rev = PCI_REVISION(ahc->bd->class);
ahc 1626 dev/pci/ahc_pci.c ahc->chip = AHC_AIC7895C;
ahc 1627 dev/pci/ahc_pci.c ahc->features = AHC_AIC7895C_FE;
ahc 1631 dev/pci/ahc_pci.c ahc->chip = AHC_AIC7895;
ahc 1632 dev/pci/ahc_pci.c ahc->features = AHC_AIC7895_FE;
ahc 1640 dev/pci/ahc_pci.c command = pci_conf_read(ahc->bd->pc, ahc->bd->tag, PCI_COMMAND_STATUS_REG);
ahc 1642 dev/pci/ahc_pci.c pci_conf_write(ahc->bd->pc, ahc->bd->tag, PCI_COMMAND_STATUS_REG, command);
ahc 1643 dev/pci/ahc_pci.c ahc->bugs |= AHC_PCI_MWI_BUG;
ahc 1649 dev/pci/ahc_pci.c ahc->bugs |= AHC_TMODE_WIDEODD_BUG|AHC_PCI_2_1_RETRY_BUG
ahc 1659 dev/pci/ahc_pci.c pci_conf_write(ahc->bd->pc, ahc->bd->tag, CSIZE_LATTIME, 0);
ahc 1660 dev/pci/ahc_pci.c devconfig = pci_conf_read(ahc->bd->pc, ahc->bd->tag, DEVCONFIG);
ahc 1662 dev/pci/ahc_pci.c pci_conf_write(ahc->bd->pc, ahc->bd->tag, DEVCONFIG, devconfig);
ahc 1664 dev/pci/ahc_pci.c ahc->flags |= AHC_NEWEEPROM_FMT;
ahc 1665 dev/pci/ahc_pci.c ahc->instruction_ram_size = 512;
ahc 1670 dev/pci/ahc_pci.c ahc_aic7896_setup(struct ahc_softc *ahc)
ahc 1672 dev/pci/ahc_pci.c ahc->channel = (ahc->bd->func == 1) ? 'B' : 'A';
ahc 1673 dev/pci/ahc_pci.c ahc->chip = AHC_AIC7896;
ahc 1674 dev/pci/ahc_pci.c ahc->features = AHC_AIC7896_FE;
ahc 1675 dev/pci/ahc_pci.c ahc->flags |= AHC_NEWEEPROM_FMT;
ahc 1676 dev/pci/ahc_pci.c ahc->bugs |= AHC_CACHETHEN_DIS_BUG;
ahc 1677 dev/pci/ahc_pci.c ahc->instruction_ram_size = 768;
ahc 1682 dev/pci/ahc_pci.c ahc_aic7899_setup(struct ahc_softc *ahc)
ahc 1684 dev/pci/ahc_pci.c ahc->channel = (ahc->bd->func == 1) ? 'B' : 'A';
ahc 1685 dev/pci/ahc_pci.c ahc->chip = AHC_AIC7899;
ahc 1686 dev/pci/ahc_pci.c ahc->features = AHC_AIC7899_FE;
ahc 1687 dev/pci/ahc_pci.c ahc->flags |= AHC_NEWEEPROM_FMT;
ahc 1688 dev/pci/ahc_pci.c ahc->bugs |= AHC_SCBCHAN_UPLOAD_BUG;
ahc 1689 dev/pci/ahc_pci.c ahc->instruction_ram_size = 1024;
ahc 1694 dev/pci/ahc_pci.c ahc_aha29160C_setup(struct ahc_softc *ahc)
ahc 1698 dev/pci/ahc_pci.c error = ahc_aic7899_setup(ahc);
ahc 1701 dev/pci/ahc_pci.c ahc->features |= AHC_REMOVABLE;
ahc 1706 dev/pci/ahc_pci.c ahc_raid_setup(struct ahc_softc *ahc)
ahc 1713 dev/pci/ahc_pci.c ahc_aha394XX_setup(struct ahc_softc *ahc)
ahc 1716 dev/pci/ahc_pci.c switch (ahc->bd->dev) {
ahc 1718 dev/pci/ahc_pci.c ahc->channel = 'A';
ahc 1721 dev/pci/ahc_pci.c ahc->channel = 'B';
ahc 1726 dev/pci/ahc_pci.c ahc->bd->dev);
ahc 1727 dev/pci/ahc_pci.c ahc->channel = 'A';
ahc 1733 dev/pci/ahc_pci.c ahc_aha398XX_setup(struct ahc_softc *ahc)
ahc 1736 dev/pci/ahc_pci.c switch (ahc->bd->dev) {
ahc 1738 dev/pci/ahc_pci.c ahc->channel = 'A';
ahc 1741 dev/pci/ahc_pci.c ahc->channel = 'B';
ahc 1744 dev/pci/ahc_pci.c ahc->channel = 'C';
ahc 1749 dev/pci/ahc_pci.c ahc->bd->dev);
ahc 1750 dev/pci/ahc_pci.c ahc->channel = 'A';
ahc 1753 dev/pci/ahc_pci.c ahc->flags |= AHC_LARGE_SEEPROM;
ahc 1758 dev/pci/ahc_pci.c ahc_aha494XX_setup(struct ahc_softc *ahc)
ahc 1761 dev/pci/ahc_pci.c switch (ahc->bd->dev) {
ahc 1763 dev/pci/ahc_pci.c ahc->channel = 'A';
ahc 1766 dev/pci/ahc_pci.c ahc->channel = 'B';
ahc 1769 dev/pci/ahc_pci.c ahc->channel = 'C';
ahc 1772 dev/pci/ahc_pci.c ahc->channel = 'D';
ahc 1777 dev/pci/ahc_pci.c ahc->bd->dev);
ahc 1778 dev/pci/ahc_pci.c ahc->channel = 'A';
ahc 1780 dev/pci/ahc_pci.c ahc->flags |= AHC_LARGE_SEEPROM;