diff options
author | Kenneth R Westerback <krw@cvs.openbsd.org> | 2000-06-29 00:04:33 +0000 |
---|---|---|
committer | Kenneth R Westerback <krw@cvs.openbsd.org> | 2000-06-29 00:04:33 +0000 |
commit | 18668e4eb3bcc3172992ccebe28df6e9a0ce9766 (patch) | |
tree | b01d82c40a71ea9ba5a0c3dd319570df8f6c559f /sys/dev/ic/adw.h | |
parent | b6672e65decb177eb46472fadc0ab109b79b8e66 (diff) |
Sync adw files with (almost) latest NetBSD versions:
adw.c synched with v1.23 (from v1.14)
adw.h v1.9 ( v1.5 )
adwlib.c v1.17 ( v1.7 )
adwlib.h v1.13 ( v1.7 )
adwmcode.c v1.5 ( v1.2 )
adwmcode.h v1.5 ( v1.2 )
microcode for cards is updated to latest version,
loss of carrier problems are solved in a more
robust manner than before, lots of code cleanup.
first support for upcoming U3W cards added, as
a result of which the driver is now too large
for RAMDISK and has been moved to RAMDISKB.
Most of the work done by dante@ NetBSD.
Diffstat (limited to 'sys/dev/ic/adw.h')
-rw-r--r-- | sys/dev/ic/adw.h | 59 |
1 files changed, 5 insertions, 54 deletions
diff --git a/sys/dev/ic/adw.h b/sys/dev/ic/adw.h index 0012ddb0eb6..546fd34dfb6 100644 --- a/sys/dev/ic/adw.h +++ b/sys/dev/ic/adw.h @@ -1,5 +1,5 @@ -/* $OpenBSD: adw.h,v 1.4 2000/04/29 20:15:59 krw Exp $ */ -/* $NetBSD: adw.h,v 1.5 2000/02/03 20:29:15 dante Exp $ */ +/* $OpenBSD: adw.h,v 1.5 2000/06/29 00:04:31 krw Exp $ */ +/* $NetBSD: adw.h,v 1.9 2000/05/26 15:13:43 dante Exp $ */ /* * Generic driver definitions and exported functions for the Advanced @@ -49,47 +49,6 @@ typedef void (* ADW_ASYNC_CALLBACK) (ADW_SOFTC *, u_int8_t); /* - * Every adw_carrier structure _MUST_ always be aligned on a 16 bytes boundary - */ -struct adw_carrier { -/* ---------- the microcode wants the field below ---------- */ - u_int32_t unused; /* Carrier Virtual Address -UNUSED- */ - u_int32_t carr_pa; /* Carrier Physical Address */ - u_int32_t areq_vpa; /* ADW_SCSI_REQ_Q Physical Address */ - /* - * next_vpa [31:4] Carrier Physical Next Pointer - * - * next_vpa [3:1] Reserved Bits - * next_vpa [0] Done Flag set in Response Queue. - */ - u_int32_t next_vpa; -/* ---------- ---------- */ - struct adw_carrier *nexthash; /* Carrier Virtual Address */ - - int id; - /* - * This DMA map maps the buffer involved in the carrier transfer. - */ -// bus_dmamap_t dmamap_xfer; -}; - -typedef struct adw_carrier ADW_CARRIER; - -#define ADW_CARRIER_SIZE ((((int)((sizeof(ADW_CARRIER)-1)/16))+1)*16) - - -/* - * Mask used to eliminate low 4 bits of carrier 'next_vpa' field. - */ -#define ASC_NEXT_VPA_MASK 0xFFFFFFF0 - -#define ASC_RQ_DONE 0x00000001 -#define ASC_CQ_STOPPER 0x00000000 - -#define ASC_GET_CARRP(carrp) ((carrp) & ASC_NEXT_VPA_MASK) - - -/* * per request scatter-gather element limit * We could have up to 256 SG lists. */ @@ -110,8 +69,6 @@ struct adw_ccb { ADW_SCSI_REQ_Q scsiq; ADW_SG_BLOCK sg_block[ADW_NUM_SG_BLOCK]; - ADW_CARRIER *carr_list; /* carriers involved */ - struct scsi_sense_data scsi_sense; TAILQ_ENTRY(adw_ccb) chain; @@ -122,6 +79,8 @@ struct adw_ccb { int flags; /* see below */ int timeout; + struct timeout to; + /* * This DMA map maps the buffer involved in the transfer. */ @@ -136,21 +95,14 @@ typedef struct adw_ccb ADW_CCB; #define CCB_ABORTED 0x04 -#define ADW_MAX_CARRIER 20 /* Max. number of host commands (253) */ -#define ADW_MAX_CCB 16 /* Max. number commands per device (63) */ +#define ADW_MAX_CCB 63 /* Max. number commands per device (63) */ struct adw_control { ADW_CCB ccbs[ADW_MAX_CCB]; /* all our control blocks */ ADW_CARRIER *carriers; /* all our carriers */ - bus_dmamap_t dmamap_xfer; }; /* - * Offset of a carrier from the beginning of the carriers DMA mapping. - */ -#define ADW_CARRIER_ADDR(sc, x) ((sc)->sc_dmamap_carrier->dm_segs[0].ds_addr + \ - (((u_long)x) - ((u_long)(sc)->sc_control->carriers))) -/* * Offset of a CCB from the beginning of the control DMA mapping. */ #define ADW_CCB_OFF(c) (offsetof(struct adw_control, ccbs[0]) + \ @@ -162,7 +114,6 @@ int adw_init __P((ADW_SOFTC *sc)); void adw_attach __P((ADW_SOFTC *sc)); int adw_intr __P((void *arg)); ADW_CCB *adw_ccb_phys_kv __P((ADW_SOFTC *, u_int32_t)); -ADW_CARRIER *adw_carrier_phys_kv __P((ADW_SOFTC *, u_int32_t)); /******************************************************************************/ |