Sync with MI ncr5380sbc changes.
XXX CXD1180 quirk code should be merged into the MI ncr5380sbc driver...
This commit is contained in:
parent
3fe78f266a
commit
78557dc2c6
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: ncr5380sbc.c,v 1.1 1999/12/09 14:53:06 tsutsui Exp $ */
|
||||
/* $NetBSD: ncr5380sbc.c,v 1.2 2000/03/19 16:28:04 tsutsui Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1995 David Jones, Gordon W. Ross
|
||||
|
@ -95,6 +95,7 @@
|
|||
#include <dev/ic/ncr5380reg.h>
|
||||
#include <dev/ic/ncr5380var.h>
|
||||
|
||||
static void ncr5380_reset_scsibus __P((struct ncr5380_softc *));
|
||||
static void ncr5380_sched __P((struct ncr5380_softc *));
|
||||
static void ncr5380_done __P((struct ncr5380_softc *));
|
||||
|
||||
|
@ -367,10 +368,6 @@ ncr5380_init(sc)
|
|||
for (j = 0; j < 8; j++)
|
||||
sc->sc_matrix[i][j] = NULL;
|
||||
|
||||
sc->sc_link.openings = 2; /* XXX - Not SCI_OPENINGS */
|
||||
sc->sc_link.scsipi_scsi.max_target = 7;
|
||||
sc->sc_link.scsipi_scsi.max_lun = 7;
|
||||
sc->sc_link.type = BUS_SCSI;
|
||||
sc->sc_prevphase = PHASE_INVALID;
|
||||
sc->sc_state = NCR_IDLE;
|
||||
|
||||
|
@ -391,7 +388,7 @@ ncr5380_init(sc)
|
|||
}
|
||||
|
||||
|
||||
void
|
||||
static void
|
||||
ncr5380_reset_scsibus(sc)
|
||||
struct ncr5380_softc *sc;
|
||||
{
|
||||
|
@ -419,9 +416,10 @@ ncr5380_reset_scsibus(sc)
|
|||
* This may also called for a DMA timeout (at splbio).
|
||||
*/
|
||||
int
|
||||
ncr5380_intr(sc)
|
||||
struct ncr5380_softc *sc;
|
||||
ncr5380_intr(arg)
|
||||
void *arg;
|
||||
{
|
||||
struct ncr5380_softc *sc = arg;
|
||||
int claimed = 0;
|
||||
|
||||
/*
|
||||
|
@ -2606,6 +2604,63 @@ ncr5380_show_state()
|
|||
db_printf("sc_prevphase=%d\n", sc->sc_prevphase);
|
||||
db_printf("sc_msgpriq=0x%x\n", sc->sc_msgpriq);
|
||||
}
|
||||
|
||||
#endif /* DDB */
|
||||
#endif /* NCR5380_DEBUG */
|
||||
|
||||
struct scsipi_device ncr5380_dev = {
|
||||
NULL, /* Use default error handler */
|
||||
NULL, /* have a queue, served by this */
|
||||
NULL, /* have no async handler */
|
||||
NULL, /* Use default 'done' routine */
|
||||
};
|
||||
|
||||
void
|
||||
ncr5380_attach(sc)
|
||||
struct ncr5380_softc *sc;
|
||||
{
|
||||
|
||||
/*
|
||||
* Fill in the adapter.
|
||||
*/
|
||||
sc->sc_adapter.scsipi_cmd = ncr5380_scsi_cmd;
|
||||
|
||||
/*
|
||||
* Fill in the prototype scsipi_link
|
||||
*/
|
||||
sc->sc_link.scsipi_scsi.channel = SCSI_CHANNEL_ONLY_ONE;
|
||||
sc->sc_link.adapter_softc = sc;
|
||||
sc->sc_link.adapter = &sc->sc_adapter;
|
||||
sc->sc_link.device = &ncr5380_dev;
|
||||
sc->sc_link.openings = 2;
|
||||
sc->sc_link.scsipi_scsi.max_target = 7;
|
||||
sc->sc_link.scsipi_scsi.max_lun = 7;
|
||||
sc->sc_link.type = BUS_SCSI;
|
||||
|
||||
/*
|
||||
* Add reference to adapter so that we drop the reference after
|
||||
* config_found() to make sure the adatper is disabled.
|
||||
*/
|
||||
if (scsipi_adapter_addref(&sc->sc_link) != 0) {
|
||||
printf("%s: unable to enable controller\n",
|
||||
sc->sc_dev.dv_xname);
|
||||
return;
|
||||
}
|
||||
|
||||
ncr5380_init(sc); /* Init chip and driver */
|
||||
ncr5380_reset_scsibus(sc);
|
||||
|
||||
/*
|
||||
* Ask the adapter what subunits are present
|
||||
*/
|
||||
(void) config_found(&sc->sc_dev, &sc->sc_link, scsiprint);
|
||||
scsipi_adapter_delref(&sc->sc_link);
|
||||
}
|
||||
|
||||
int
|
||||
ncr5380_detach(sc, flags)
|
||||
struct ncr5380_softc *sc;
|
||||
int flags;
|
||||
{
|
||||
|
||||
return (EOPNOTSUPP);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: si.c,v 1.3 2000/02/08 16:17:32 tsutsui Exp $ */
|
||||
/* $NetBSD: si.c,v 1.4 2000/03/19 16:28:04 tsutsui Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1996 The NetBSD Foundation, Inc.
|
||||
|
@ -90,13 +90,6 @@ void si_dma_poll __P((struct ncr5380_softc *));
|
|||
void si_dma_eop __P((struct ncr5380_softc *));
|
||||
void si_dma_stop __P((struct ncr5380_softc *));
|
||||
|
||||
struct scsipi_device si_scsidev = {
|
||||
NULL, /* use default error handler */
|
||||
NULL, /* do not have a start functio */
|
||||
NULL, /* have no async handler */
|
||||
NULL, /* Use default done routine */
|
||||
};
|
||||
|
||||
struct cfattach si_ca = {
|
||||
sizeof(struct si_softc), si_match, si_attach
|
||||
};
|
||||
|
@ -189,23 +182,14 @@ si_attach(parent, self, aux)
|
|||
ncr_sc->sc_pio_in = ncr5380_pio_in;
|
||||
ncr_sc->sc_pio_out = ncr5380_pio_out;
|
||||
|
||||
ncr_sc->sc_adapter.scsipi_cmd = ncr5380_scsi_cmd;
|
||||
ncr_sc->sc_adapter.scsipi_minphys = minphys;
|
||||
|
||||
ncr_sc->sc_link.scsipi_scsi.channel = SCSI_CHANNEL_ONLY_ONE;
|
||||
ncr_sc->sc_link.adapter_softc = sc;
|
||||
ncr_sc->sc_link.scsipi_scsi.adapter_target = 7;
|
||||
ncr_sc->sc_link.adapter = &ncr_sc->sc_adapter;
|
||||
ncr_sc->sc_link.device = &si_scsidev;
|
||||
ncr_sc->sc_link.type = BUS_SCSI;
|
||||
|
||||
/* soft reset DMAC */
|
||||
sc->sc_regs = (void *)IIOV(DMAC_BASE);
|
||||
sc->sc_regs->ctl = DC_CTL_RST;
|
||||
|
||||
ncr5380_init(ncr_sc);
|
||||
ncr5380_reset_scsibus(ncr_sc);
|
||||
config_found(&(ncr_sc->sc_dev), &(ncr_sc->sc_link), scsiprint);
|
||||
ncr5380_attach(ncr_sc);
|
||||
}
|
||||
|
||||
int
|
||||
|
|
Loading…
Reference in New Issue