Home | History | Annotate | Line # | Download | only in aic7xxx
aic79xx.reg revision 1.9
      1  1.9      wiz /*	$NetBSD: aic79xx.reg,v 1.9 2004/02/24 15:16:05 wiz Exp $	*/
      2  1.4  thorpej 
      3  1.1     fvdl /*
      4  1.1     fvdl  * Aic79xx register and scratch ram definitions.
      5  1.1     fvdl  *
      6  1.1     fvdl  * Copyright (c) 1994-2001 Justin T. Gibbs.
      7  1.1     fvdl  * Copyright (c) 2000-2002 Adaptec Inc.
      8  1.1     fvdl  * All rights reserved.
      9  1.1     fvdl  *
     10  1.1     fvdl  * Redistribution and use in source and binary forms, with or without
     11  1.1     fvdl  * modification, are permitted provided that the following conditions
     12  1.1     fvdl  * are met:
     13  1.1     fvdl  * 1. Redistributions of source code must retain the above copyright
     14  1.1     fvdl  *    notice, this list of conditions, and the following disclaimer,
     15  1.1     fvdl  *    without modification.
     16  1.1     fvdl  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
     17  1.1     fvdl  *    substantially similar to the "NO WARRANTY" disclaimer below
     18  1.1     fvdl  *    ("Disclaimer") and any redistribution must be conditioned upon
     19  1.1     fvdl  *    including a substantially similar Disclaimer requirement for further
     20  1.1     fvdl  *    binary redistribution.
     21  1.1     fvdl  * 3. Neither the names of the above-listed copyright holders nor the names
     22  1.1     fvdl  *    of any contributors may be used to endorse or promote products derived
     23  1.1     fvdl  *    from this software without specific prior written permission.
     24  1.1     fvdl  *
     25  1.1     fvdl  * Alternatively, this software may be distributed under the terms of the
     26  1.1     fvdl  * GNU General Public License ("GPL") version 2 as published by the Free
     27  1.1     fvdl  * Software Foundation.
     28  1.1     fvdl  *
     29  1.1     fvdl  * NO WARRANTY
     30  1.1     fvdl  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     31  1.1     fvdl  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     32  1.1     fvdl  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
     33  1.1     fvdl  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     34  1.1     fvdl  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     35  1.1     fvdl  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     36  1.1     fvdl  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     37  1.1     fvdl  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     38  1.1     fvdl  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
     39  1.1     fvdl  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     40  1.1     fvdl  * POSSIBILITY OF SUCH DAMAGES.
     41  1.1     fvdl  *
     42  1.8  thorpej  * $FreeBSD: src/sys/dev/aic7xxx/aic79xx.reg,v 1.15 2003/06/10 03:25:24 gibbs Exp $
     43  1.1     fvdl  */
     44  1.8  thorpej VERSION = "Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#70 $"
     45  1.1     fvdl 
     46  1.1     fvdl /*
     47  1.1     fvdl  * This file is processed by the aic7xxx_asm utility for use in assembling
     48  1.1     fvdl  * firmware for the aic79xx family of SCSI host adapters as well as to generate
     49  1.1     fvdl  * a C header file for use in the kernel portion of the Aic79xx driver.
     50  1.1     fvdl  */
     51  1.1     fvdl 
     52  1.1     fvdl /* Register window Modes */
     53  1.1     fvdl #define M_DFF0		0
     54  1.1     fvdl #define M_DFF1		1
     55  1.1     fvdl #define M_CCHAN		2
     56  1.1     fvdl #define M_SCSI		3
     57  1.1     fvdl #define M_CFG		4
     58  1.1     fvdl #define M_DST_SHIFT	4
     59  1.1     fvdl 
     60  1.1     fvdl #define MK_MODE(src, dst) ((src) | ((dst) << M_DST_SHIFT))
     61  1.1     fvdl #define SET_MODE(src, dst)						\
     62  1.1     fvdl 	SET_SRC_MODE	src;						\
     63  1.1     fvdl 	SET_DST_MODE	dst;						\
     64  1.1     fvdl 	if ((ahd->bugs & AHD_SET_MODE_BUG) != 0) {			\
     65  1.1     fvdl 		mvi	MK_MODE(src, dst) call set_mode_work_around;	\
     66  1.1     fvdl 	} else {							\
     67  1.1     fvdl 		mvi	MODE_PTR, MK_MODE(src, dst);			\
     68  1.1     fvdl 	}
     69  1.1     fvdl 
     70  1.1     fvdl #define TOGGLE_DFF_MODE							\
     71  1.1     fvdl 	if ((ahd->bugs & AHD_SET_MODE_BUG) != 0) {			\
     72  1.1     fvdl 		call	toggle_dff_mode_work_around;			\
     73  1.1     fvdl 	} else {							\
     74  1.1     fvdl 		xor	MODE_PTR, MK_MODE(M_DFF1, M_DFF1);		\
     75  1.1     fvdl 	}
     76  1.1     fvdl 
     77  1.1     fvdl #define RESTORE_MODE(mode)						\
     78  1.1     fvdl 	if ((ahd->bugs & AHD_SET_MODE_BUG) != 0) {			\
     79  1.1     fvdl 		mov	mode call set_mode_work_around;			\
     80  1.1     fvdl 	} else {							\
     81  1.1     fvdl 		mov	MODE_PTR, mode;					\
     82  1.1     fvdl 	}
     83  1.1     fvdl 
     84  1.1     fvdl #define SET_SEQINTCODE(code)						\
     85  1.1     fvdl 	if ((ahd->bugs & AHD_INTCOLLISION_BUG) != 0) {			\
     86  1.1     fvdl 		mvi	code call set_seqint_work_around;		\
     87  1.1     fvdl 	} else {							\
     88  1.1     fvdl 		mvi	SEQINTCODE, code;				\
     89  1.1     fvdl 	}
     90  1.1     fvdl 
     91  1.1     fvdl /*
     92  1.1     fvdl  * Mode Pointer
     93  1.1     fvdl  * Controls which of the 5, 512byte, address spaces should be used
     94  1.1     fvdl  * as the source and destination of any register accesses in our
     95  1.1     fvdl  * register window.
     96  1.1     fvdl  */
     97  1.1     fvdl register MODE_PTR {
     98  1.1     fvdl 	address			0x000
     99  1.1     fvdl 	access_mode	RW
    100  1.1     fvdl 	field	DST_MODE	0x70
    101  1.1     fvdl 	field	SRC_MODE	0x07
    102  1.1     fvdl 	mode_pointer
    103  1.1     fvdl }
    104  1.1     fvdl 
    105  1.1     fvdl const SRC_MODE_SHIFT	0
    106  1.1     fvdl const DST_MODE_SHIFT	4
    107  1.1     fvdl 
    108  1.1     fvdl /*
    109  1.1     fvdl  * Host Interrupt Status
    110  1.1     fvdl  */
    111  1.1     fvdl register INTSTAT {
    112  1.1     fvdl 	address			0x001
    113  1.1     fvdl 	access_mode	RW
    114  1.1     fvdl 	field	HWERRINT	0x80
    115  1.1     fvdl 	field	BRKADRINT	0x40
    116  1.1     fvdl 	field	SWTMINT		0x20
    117  1.1     fvdl 	field	PCIINT		0x10
    118  1.1     fvdl 	field	SCSIINT		0x08
    119  1.1     fvdl 	field	SEQINT		0x04
    120  1.1     fvdl 	field	CMDCMPLT	0x02
    121  1.1     fvdl 	field	SPLTINT		0x01
    122  1.1     fvdl 	mask	INT_PEND 0xFF
    123  1.1     fvdl }
    124  1.1     fvdl 
    125  1.1     fvdl /*
    126  1.1     fvdl  * Sequencer Interrupt Code
    127  1.1     fvdl  */
    128  1.1     fvdl register SEQINTCODE {
    129  1.1     fvdl 	address			0x002
    130  1.1     fvdl 	access_mode	RW
    131  1.1     fvdl 	field {
    132  1.1     fvdl 		NO_SEQINT,			/* No seqint pending. */
    133  1.1     fvdl 		BAD_PHASE,			/* unknown scsi bus phase */
    134  1.1     fvdl 		SEND_REJECT,			/* sending a message reject */
    135  1.1     fvdl 		PROTO_VIOLATION, 		/* Protocol Violation */
    136  1.1     fvdl 		NO_MATCH,			/* no cmd match for reconnect */
    137  1.1     fvdl 		IGN_WIDE_RES,			/* Complex IGN Wide Res Msg */
    138  1.1     fvdl 		PDATA_REINIT,			/*
    139  1.1     fvdl 						 * Returned to data phase
    140  1.1     fvdl 						 * that requires data
    141  1.1     fvdl 						 * transfer pointers to be
    142  1.1     fvdl 						 * recalculated from the
    143  1.1     fvdl 						 * transfer residual.
    144  1.1     fvdl 						 */
    145  1.1     fvdl 		HOST_MSG_LOOP,			/*
    146  1.1     fvdl 						 * The bus is ready for the
    147  1.1     fvdl 						 * host to perform another
    148  1.1     fvdl 						 * message transaction.  This
    149  1.1     fvdl 						 * mechanism is used for things
    150  1.1     fvdl 						 * like sync/wide negotiation
    151  1.1     fvdl 						 * that require a kernel based
    152  1.1     fvdl 						 * message state engine.
    153  1.1     fvdl 						 */
    154  1.1     fvdl 		BAD_STATUS,			/* Bad status from target */
    155  1.1     fvdl 		DATA_OVERRUN,			/*
    156  1.1     fvdl 						 * Target attempted to write
    157  1.1     fvdl 						 * beyond the bounds of its
    158  1.1     fvdl 						 * command.
    159  1.1     fvdl 						 */
    160  1.1     fvdl 		MKMSG_FAILED,			/*
    161  1.1     fvdl 						 * Target completed command
    162  1.1     fvdl 						 * without honoring our ATN
    163  1.1     fvdl 						 * request to issue a message.
    164  1.1     fvdl 						 */
    165  1.1     fvdl 		MISSED_BUSFREE,			/*
    166  1.1     fvdl 						 * The sequencer never saw
    167  1.1     fvdl 						 * the bus go free after
    168  1.1     fvdl 						 * either a command complete
    169  1.1     fvdl 						 * or disconnect message.
    170  1.1     fvdl 						 */
    171  1.1     fvdl 		DUMP_CARD_STATE,
    172  1.1     fvdl 		ILLEGAL_PHASE,
    173  1.1     fvdl 		INVALID_SEQINT,
    174  1.1     fvdl 		CFG4ISTAT_INTR,
    175  1.1     fvdl 		STATUS_OVERRUN,
    176  1.1     fvdl 		CFG4OVERRUN,
    177  1.1     fvdl 		ENTERING_NONPACK,
    178  1.1     fvdl 		TASKMGMT_FUNC_COMPLETE,		/*
    179  1.1     fvdl 						 * Task management function
    180  1.1     fvdl 						 * request completed with
    181  1.1     fvdl 						 * an expected busfree.
    182  1.1     fvdl 						 */
    183  1.1     fvdl 		TASKMGMT_CMD_CMPLT_OKAY,	/*
    184  1.1     fvdl 						 * A command with a non-zero
    185  1.1     fvdl 						 * task management function
    186  1.1     fvdl 						 * has completed via the normal
    187  1.1     fvdl 						 * command completion method
    188  1.1     fvdl 						 * for commands with a zero
    189  1.1     fvdl 						 * task management function.
    190  1.1     fvdl 						 * This happens when an attempt
    191  1.1     fvdl 						 * to abort a command loses
    192  1.1     fvdl 						 * the race for the command to
    193  1.1     fvdl 						 * complete normally.
    194  1.1     fvdl 						 */
    195  1.1     fvdl 		TRACEPOINT0,
    196  1.1     fvdl 		TRACEPOINT1,
    197  1.1     fvdl 		TRACEPOINT2,
    198  1.1     fvdl 		TRACEPOINT3,
    199  1.4  thorpej 		SAW_HWERR,
    200  1.4  thorpej 		BAD_SCB_STATUS
    201  1.1     fvdl 	}
    202  1.1     fvdl }
    203  1.1     fvdl 
    204  1.1     fvdl /*
    205  1.1     fvdl  * Clear Host Interrupt
    206  1.1     fvdl  */
    207  1.1     fvdl register CLRINT {
    208  1.1     fvdl 	address			0x003
    209  1.1     fvdl 	access_mode	WO
    210  1.1     fvdl 	field	CLRHWERRINT	0x80 /* Rev B or greater */
    211  1.1     fvdl 	field	CLRBRKADRINT	0x40
    212  1.1     fvdl 	field	CLRSWTMINT	0x20
    213  1.1     fvdl 	field	CLRPCIINT	0x10
    214  1.1     fvdl 	field	CLRSCSIINT	0x08
    215  1.1     fvdl 	field	CLRSEQINT	0x04
    216  1.1     fvdl 	field	CLRCMDINT	0x02
    217  1.1     fvdl 	field	CLRSPLTINT	0x01
    218  1.1     fvdl }
    219  1.1     fvdl 
    220  1.1     fvdl /*
    221  1.1     fvdl  * Error Register
    222  1.1     fvdl  */
    223  1.1     fvdl register ERROR {
    224  1.1     fvdl 	address			0x004
    225  1.1     fvdl 	access_mode	RO
    226  1.1     fvdl 	field	CIOPARERR	0x80
    227  1.1     fvdl 	field	CIOACCESFAIL	0x40 /* Rev B or greater */
    228  1.1     fvdl 	field	MPARERR		0x20
    229  1.1     fvdl 	field	DPARERR		0x10
    230  1.1     fvdl 	field	SQPARERR	0x08
    231  1.1     fvdl 	field	ILLOPCODE	0x04
    232  1.1     fvdl 	field	DSCTMOUT	0x02
    233  1.1     fvdl }
    234  1.1     fvdl 
    235  1.1     fvdl /*
    236  1.1     fvdl  * Clear Error
    237  1.1     fvdl  */
    238  1.1     fvdl register CLRERR {
    239  1.1     fvdl 	address			0x004
    240  1.1     fvdl 	access_mode 	WO
    241  1.1     fvdl 	field	CLRCIOPARERR	0x80
    242  1.1     fvdl 	field	CLRCIOACCESFAIL	0x40 /* Rev B or greater */
    243  1.1     fvdl 	field	CLRMPARERR	0x20
    244  1.1     fvdl 	field	CLRDPARERR	0x10
    245  1.1     fvdl 	field	CLRSQPARERR	0x08
    246  1.1     fvdl 	field	CLRILLOPCODE	0x04
    247  1.1     fvdl 	field	CLRDSCTMOUT	0x02
    248  1.1     fvdl }
    249  1.1     fvdl 
    250  1.1     fvdl /*
    251  1.1     fvdl  * Host Control Register
    252  1.1     fvdl  * Overall host control of the device.
    253  1.1     fvdl  */
    254  1.1     fvdl register HCNTRL {
    255  1.1     fvdl 	address			0x005
    256  1.1     fvdl 	access_mode	RW
    257  1.1     fvdl 	field	SEQ_RESET	0x80 /* Rev B or greater */
    258  1.1     fvdl 	field	POWRDN		0x40
    259  1.1     fvdl 	field	SWINT		0x10
    260  1.1     fvdl 	field	SWTIMER_START_B	0x08 /* Rev B or greater */
    261  1.1     fvdl 	field	PAUSE		0x04
    262  1.1     fvdl 	field	INTEN		0x02
    263  1.1     fvdl 	field	CHIPRST		0x01
    264  1.1     fvdl 	field	CHIPRSTACK	0x01
    265  1.1     fvdl }
    266  1.1     fvdl 
    267  1.1     fvdl /*
    268  1.1     fvdl  * Host New SCB Queue Offset
    269  1.1     fvdl  */
    270  1.1     fvdl register HNSCB_QOFF {
    271  1.1     fvdl 	address			0x006
    272  1.1     fvdl 	access_mode	RW
    273  1.1     fvdl 	size		2
    274  1.1     fvdl }
    275  1.1     fvdl 
    276  1.1     fvdl /*
    277  1.1     fvdl  * Host Empty SCB Queue Offset
    278  1.1     fvdl  */
    279  1.1     fvdl register HESCB_QOFF {
    280  1.1     fvdl 	address			0x008
    281  1.1     fvdl 	access_mode	RW
    282  1.1     fvdl }
    283  1.1     fvdl 
    284  1.1     fvdl /*
    285  1.1     fvdl  * Host Mailbox
    286  1.1     fvdl  */
    287  1.1     fvdl register HS_MAILBOX {
    288  1.1     fvdl 	address			0x00B
    289  1.1     fvdl 	access_mode	RW
    290  1.1     fvdl 	mask	HOST_TQINPOS	0x80	/* Boundary at either 0 or 128 */
    291  1.3      wiz 	mask	ENINT_COALESCE	0x40	/* Perform interrupt coalescing */
    292  1.1     fvdl }
    293  1.1     fvdl 
    294  1.1     fvdl /*
    295  1.9      wiz  * Sequencer Interrupt Status
    296  1.1     fvdl  */
    297  1.1     fvdl register SEQINTSTAT {
    298  1.1     fvdl 	address			0x00C
    299  1.1     fvdl 	access_mode	RO
    300  1.1     fvdl 	field	SEQ_SWTMRTO	0x10
    301  1.1     fvdl 	field	SEQ_SEQINT	0x08
    302  1.1     fvdl 	field	SEQ_SCSIINT	0x04
    303  1.1     fvdl 	field	SEQ_PCIINT	0x02
    304  1.1     fvdl 	field	SEQ_SPLTINT	0x01
    305  1.1     fvdl }
    306  1.1     fvdl 
    307  1.1     fvdl /*
    308  1.1     fvdl  * Clear SEQ Interrupt
    309  1.1     fvdl  */
    310  1.1     fvdl register CLRSEQINTSTAT {
    311  1.1     fvdl 	address			0x00C
    312  1.1     fvdl 	access_mode	WO
    313  1.1     fvdl 	field	CLRSEQ_SWTMRTO	0x10
    314  1.1     fvdl 	field	CLRSEQ_SEQINT	0x08
    315  1.1     fvdl 	field	CLRSEQ_SCSIINT	0x04
    316  1.1     fvdl 	field	CLRSEQ_PCIINT	0x02
    317  1.1     fvdl 	field	CLRSEQ_SPLTINT	0x01
    318  1.1     fvdl }
    319  1.1     fvdl 
    320  1.1     fvdl /*
    321  1.1     fvdl  * Software Timer
    322  1.1     fvdl  */
    323  1.1     fvdl register SWTIMER {
    324  1.1     fvdl 	address			0x00E
    325  1.1     fvdl 	access_mode	RW
    326  1.1     fvdl 	size		2
    327  1.1     fvdl }
    328  1.1     fvdl 
    329  1.1     fvdl /*
    330  1.1     fvdl  * SEQ New SCB Queue Offset
    331  1.1     fvdl  */
    332  1.1     fvdl register SNSCB_QOFF {
    333  1.1     fvdl 	address			0x010
    334  1.1     fvdl 	access_mode	RW
    335  1.1     fvdl 	size		2
    336  1.1     fvdl 	modes		M_CCHAN
    337  1.1     fvdl }
    338  1.1     fvdl 
    339  1.1     fvdl /*
    340  1.1     fvdl  * SEQ Empty SCB Queue Offset
    341  1.1     fvdl  */
    342  1.1     fvdl register SESCB_QOFF {
    343  1.1     fvdl 	address			0x012
    344  1.1     fvdl 	access_mode	RW
    345  1.1     fvdl 	modes		M_CCHAN
    346  1.1     fvdl }
    347  1.1     fvdl 
    348  1.1     fvdl /*
    349  1.1     fvdl  * SEQ Done SCB Queue Offset
    350  1.1     fvdl  */
    351  1.1     fvdl register SDSCB_QOFF {
    352  1.1     fvdl 	address			0x014
    353  1.1     fvdl 	access_mode	RW
    354  1.1     fvdl 	modes		M_CCHAN
    355  1.1     fvdl 	size		2
    356  1.1     fvdl }
    357  1.1     fvdl 
    358  1.1     fvdl /*
    359  1.1     fvdl  * Queue Offset Control & Status
    360  1.1     fvdl  */
    361  1.1     fvdl register QOFF_CTLSTA {
    362  1.1     fvdl 	address			0x016
    363  1.1     fvdl 	access_mode	RW
    364  1.1     fvdl 	modes		M_CCHAN
    365  1.1     fvdl 	field	EMPTY_SCB_AVAIL	0x80
    366  1.1     fvdl 	field	NEW_SCB_AVAIL	0x40
    367  1.1     fvdl 	field	SDSCB_ROLLOVR	0x20
    368  1.1     fvdl 	field	HS_MAILBOX_ACT	0x10
    369  1.1     fvdl 	field	SCB_QSIZE	0x0F {
    370  1.1     fvdl 		SCB_QSIZE_4,
    371  1.1     fvdl 		SCB_QSIZE_8,
    372  1.1     fvdl 		SCB_QSIZE_16,
    373  1.1     fvdl 		SCB_QSIZE_32,
    374  1.1     fvdl 		SCB_QSIZE_64,
    375  1.1     fvdl 		SCB_QSIZE_128,
    376  1.1     fvdl 		SCB_QSIZE_256,
    377  1.1     fvdl 		SCB_QSIZE_512,
    378  1.1     fvdl 		SCB_QSIZE_1024,
    379  1.1     fvdl 		SCB_QSIZE_2048,
    380  1.1     fvdl 		SCB_QSIZE_4096,
    381  1.1     fvdl 		SCB_QSIZE_8192,
    382  1.1     fvdl 		SCB_QSIZE_16384
    383  1.1     fvdl 	}
    384  1.1     fvdl }
    385  1.1     fvdl 
    386  1.1     fvdl /*
    387  1.1     fvdl  * Interrupt Control
    388  1.1     fvdl  */
    389  1.1     fvdl register INTCTL {
    390  1.1     fvdl 	address			0x018
    391  1.1     fvdl 	access_mode	RW
    392  1.1     fvdl 	field	SWTMINTMASK	0x80
    393  1.1     fvdl 	field	SWTMINTEN	0x40
    394  1.1     fvdl 	field	SWTIMER_START	0x20
    395  1.1     fvdl 	field	AUTOCLRCMDINT	0x10
    396  1.1     fvdl 	field	PCIINTEN	0x08
    397  1.1     fvdl 	field	SCSIINTEN	0x04
    398  1.1     fvdl 	field	SEQINTEN	0x02
    399  1.1     fvdl 	field	SPLTINTEN	0x01
    400  1.1     fvdl }
    401  1.1     fvdl 
    402  1.1     fvdl /*
    403  1.1     fvdl  * Data FIFO Control
    404  1.1     fvdl  */
    405  1.1     fvdl register DFCNTRL {
    406  1.1     fvdl 	address			0x019
    407  1.1     fvdl 	access_mode	RW
    408  1.1     fvdl 	modes		M_DFF0, M_DFF1
    409  1.1     fvdl 	field	PRELOADEN	0x80
    410  1.1     fvdl 	field	SCSIENWRDIS	0x40	/* Rev B only. */
    411  1.1     fvdl 	field	SCSIEN		0x20
    412  1.1     fvdl 	field	SCSIENACK	0x20
    413  1.1     fvdl 	field	HDMAEN		0x08
    414  1.1     fvdl 	field	HDMAENACK	0x08
    415  1.1     fvdl 	field	DIRECTION	0x04
    416  1.1     fvdl 	field	DIRECTIONACK	0x04
    417  1.1     fvdl 	field	FIFOFLUSH	0x02
    418  1.1     fvdl 	field	FIFOFLUSHACK	0x02
    419  1.1     fvdl 	field	DIRECTIONEN	0x01
    420  1.1     fvdl }
    421  1.1     fvdl 
    422  1.1     fvdl /*
    423  1.1     fvdl  * Device Space Command 0
    424  1.1     fvdl  */
    425  1.1     fvdl register DSCOMMAND0 {
    426  1.1     fvdl 	address			0x019
    427  1.1     fvdl 	access_mode	RW
    428  1.1     fvdl 	modes		M_CFG
    429  1.1     fvdl 	field	CACHETHEN	0x80	/* Cache Threshold enable */
    430  1.1     fvdl 	field	DPARCKEN	0x40	/* Data Parity Check Enable */
    431  1.1     fvdl 	field	MPARCKEN	0x20	/* Memory Parity Check Enable */
    432  1.1     fvdl 	field	EXTREQLCK	0x10	/* External Request Lock */
    433  1.1     fvdl 	field	DISABLE_TWATE	0x02	/* Rev B or greater */
    434  1.1     fvdl 	field	CIOPARCKEN	0x01	/* Internal bus parity error enable */
    435  1.1     fvdl }
    436  1.1     fvdl 
    437  1.1     fvdl /*
    438  1.1     fvdl  * Data FIFO Status
    439  1.1     fvdl  */
    440  1.1     fvdl register DFSTATUS {
    441  1.1     fvdl 	address			0x01A
    442  1.1     fvdl 	access_mode	RO
    443  1.1     fvdl 	modes		M_DFF0, M_DFF1
    444  1.1     fvdl 	field	PRELOAD_AVAIL		0x80
    445  1.1     fvdl 	field	PKT_PRELOAD_AVAIL	0x40
    446  1.1     fvdl 	field	MREQPEND		0x10
    447  1.1     fvdl 	field	HDONE			0x08
    448  1.1     fvdl 	field	DFTHRESH		0x04
    449  1.1     fvdl 	field	FIFOFULL		0x02
    450  1.1     fvdl 	field	FIFOEMP			0x01
    451  1.1     fvdl }
    452  1.1     fvdl 
    453  1.1     fvdl /*
    454  1.1     fvdl  * S/G Cache Pointer
    455  1.1     fvdl  */
    456  1.1     fvdl register SG_CACHE_PRE {
    457  1.1     fvdl 	address			0x01B
    458  1.1     fvdl 	access_mode	WO
    459  1.1     fvdl 	modes		M_DFF0, M_DFF1
    460  1.1     fvdl 	field	SG_ADDR_MASK	0xf8
    461  1.1     fvdl 	field	ODD_SEG		0x04
    462  1.1     fvdl 	field	LAST_SEG	0x02
    463  1.1     fvdl }
    464  1.1     fvdl 
    465  1.1     fvdl register SG_CACHE_SHADOW {
    466  1.1     fvdl 	address			0x01B
    467  1.1     fvdl 	access_mode	RO
    468  1.1     fvdl 	modes		M_DFF0, M_DFF1
    469  1.1     fvdl 	field	SG_ADDR_MASK	0xf8
    470  1.1     fvdl 	field	ODD_SEG		0x04
    471  1.1     fvdl 	field	LAST_SEG	0x02
    472  1.1     fvdl 	field	LAST_SEG_DONE	0x01
    473  1.1     fvdl }
    474  1.1     fvdl 
    475  1.1     fvdl /*
    476  1.1     fvdl  * Arbiter Control
    477  1.1     fvdl  */
    478  1.1     fvdl register ARBCTL {
    479  1.1     fvdl 	address			0x01B
    480  1.1     fvdl 	access_mode	RW
    481  1.1     fvdl 	modes		M_CFG
    482  1.1     fvdl 	field	RESET_HARB	0x80
    483  1.1     fvdl 	field	RETRY_SWEN	0x08
    484  1.1     fvdl 	field	USE_TIME	0x07
    485  1.1     fvdl }
    486  1.1     fvdl 
    487  1.1     fvdl /*
    488  1.1     fvdl  * Data Channel Host Address
    489  1.1     fvdl  */
    490  1.1     fvdl register HADDR {
    491  1.1     fvdl 	address			0x070
    492  1.1     fvdl 	access_mode	RW
    493  1.1     fvdl 	size		8
    494  1.1     fvdl 	modes		M_DFF0, M_DFF1
    495  1.1     fvdl }
    496  1.1     fvdl 
    497  1.1     fvdl /*
    498  1.1     fvdl  * Host Overlay DMA Address
    499  1.1     fvdl  */
    500  1.1     fvdl register HODMAADR {
    501  1.1     fvdl 	address			0x070
    502  1.1     fvdl 	access_mode	RW
    503  1.1     fvdl 	size		8
    504  1.1     fvdl 	modes		M_SCSI
    505  1.1     fvdl }
    506  1.1     fvdl 
    507  1.1     fvdl /*
    508  1.1     fvdl  * PCI PLL Delay.
    509  1.1     fvdl  */
    510  1.1     fvdl register PLLDELAY {
    511  1.1     fvdl 	address			0x070
    512  1.1     fvdl 	access_mode	RW
    513  1.1     fvdl 	size		1
    514  1.1     fvdl 	modes		M_CFG
    515  1.1     fvdl 	field	SPLIT_DROP_REQ	0x80
    516  1.1     fvdl }
    517  1.1     fvdl 
    518  1.1     fvdl /*
    519  1.1     fvdl  * Data Channel Host Count
    520  1.1     fvdl  */
    521  1.1     fvdl register HCNT {
    522  1.1     fvdl 	address			0x078
    523  1.1     fvdl 	access_mode	RW
    524  1.1     fvdl 	size		3
    525  1.1     fvdl 	modes		M_DFF0, M_DFF1
    526  1.1     fvdl }
    527  1.1     fvdl 
    528  1.1     fvdl /*
    529  1.1     fvdl  * Host Overlay DMA Count
    530  1.1     fvdl  */
    531  1.1     fvdl register HODMACNT {
    532  1.1     fvdl 	address			0x078
    533  1.1     fvdl 	access_mode	RW
    534  1.1     fvdl 	size		2
    535  1.1     fvdl 	modes		M_SCSI
    536  1.1     fvdl }
    537  1.1     fvdl 
    538  1.1     fvdl /*
    539  1.1     fvdl  * Host Overlay DMA Enable
    540  1.1     fvdl  */
    541  1.1     fvdl register HODMAEN {
    542  1.1     fvdl 	address			0x07A
    543  1.1     fvdl 	access_mode	RW
    544  1.1     fvdl 	modes		M_SCSI
    545  1.1     fvdl }
    546  1.1     fvdl 
    547  1.1     fvdl /*
    548  1.1     fvdl  * Scatter/Gather Host Address
    549  1.1     fvdl  */
    550  1.1     fvdl register SGHADDR {
    551  1.1     fvdl 	address			0x07C
    552  1.1     fvdl 	access_mode	RW
    553  1.1     fvdl 	size		8
    554  1.1     fvdl 	modes		M_DFF0, M_DFF1
    555  1.1     fvdl }
    556  1.1     fvdl 
    557  1.1     fvdl /*
    558  1.1     fvdl  * SCB Host Address
    559  1.1     fvdl  */
    560  1.1     fvdl register SCBHADDR {
    561  1.1     fvdl 	address			0x07C
    562  1.1     fvdl 	access_mode	RW
    563  1.1     fvdl 	size		8
    564  1.1     fvdl 	modes		M_CCHAN
    565  1.1     fvdl }
    566  1.1     fvdl 
    567  1.1     fvdl /*
    568  1.1     fvdl  * Scatter/Gather Host Count
    569  1.1     fvdl  */
    570  1.1     fvdl register SGHCNT {
    571  1.1     fvdl 	address			0x084
    572  1.1     fvdl 	access_mode	RW
    573  1.1     fvdl 	modes		M_DFF0, M_DFF1
    574  1.1     fvdl }
    575  1.1     fvdl 
    576  1.1     fvdl /*
    577  1.1     fvdl  * SCB Host Count
    578  1.1     fvdl  */
    579  1.1     fvdl register SCBHCNT {
    580  1.1     fvdl 	address			0x084
    581  1.1     fvdl 	access_mode	RW
    582  1.1     fvdl 	modes		M_CCHAN
    583  1.1     fvdl }
    584  1.1     fvdl 
    585  1.1     fvdl /*
    586  1.1     fvdl  * Data FIFO Threshold
    587  1.1     fvdl  */
    588  1.1     fvdl register DFF_THRSH {
    589  1.1     fvdl 	address			0x088
    590  1.1     fvdl 	access_mode	RW
    591  1.1     fvdl 	modes		M_CFG
    592  1.1     fvdl 	field	WR_DFTHRSH	0x70 {
    593  1.1     fvdl 		WR_DFTHRSH_MIN,
    594  1.1     fvdl 		WR_DFTHRSH_25,
    595  1.1     fvdl 		WR_DFTHRSH_50,
    596  1.1     fvdl 		WR_DFTHRSH_63,
    597  1.1     fvdl 		WR_DFTHRSH_75,
    598  1.1     fvdl 		WR_DFTHRSH_85,
    599  1.1     fvdl 		WR_DFTHRSH_90,
    600  1.1     fvdl 		WR_DFTHRSH_MAX
    601  1.1     fvdl 	}
    602  1.1     fvdl 	field	RD_DFTHRSH	0x07 {
    603  1.1     fvdl 		RD_DFTHRSH_MIN,
    604  1.1     fvdl 		RD_DFTHRSH_25,
    605  1.1     fvdl 		RD_DFTHRSH_50,
    606  1.1     fvdl 		RD_DFTHRSH_63,
    607  1.1     fvdl 		RD_DFTHRSH_75,
    608  1.1     fvdl 		RD_DFTHRSH_85,
    609  1.1     fvdl 		RD_DFTHRSH_90,
    610  1.1     fvdl 		RD_DFTHRSH_MAX
    611  1.1     fvdl 	}
    612  1.1     fvdl }
    613  1.1     fvdl 
    614  1.1     fvdl /*
    615  1.1     fvdl  * ROM Address
    616  1.1     fvdl  */
    617  1.1     fvdl register ROMADDR {
    618  1.1     fvdl 	address			0x08A
    619  1.1     fvdl 	access_mode	RW
    620  1.1     fvdl 	size		3
    621  1.1     fvdl }
    622  1.1     fvdl 
    623  1.1     fvdl /*
    624  1.1     fvdl  * ROM Control
    625  1.1     fvdl  */
    626  1.1     fvdl register ROMCNTRL {
    627  1.1     fvdl 	address			0x08D
    628  1.1     fvdl 	access_mode	RW
    629  1.1     fvdl 	field	ROMOP		0xE0
    630  1.1     fvdl 	field	ROMSPD		0x18
    631  1.1     fvdl 	field	REPEAT		0x02
    632  1.1     fvdl 	field	RDY		0x01
    633  1.1     fvdl }
    634  1.1     fvdl 
    635  1.1     fvdl /*
    636  1.1     fvdl  * ROM Data
    637  1.1     fvdl  */
    638  1.1     fvdl register ROMDATA {
    639  1.1     fvdl 	address			0x08E
    640  1.1     fvdl 	access_mode	RW
    641  1.1     fvdl }
    642  1.1     fvdl 
    643  1.1     fvdl /*
    644  1.1     fvdl  * Data Channel Receive Message 0
    645  1.1     fvdl  */
    646  1.1     fvdl register DCHRXMSG0 {
    647  1.1     fvdl 	address			0x090
    648  1.1     fvdl 	access_mode	RO
    649  1.1     fvdl 	modes		M_DFF0, M_DFF1
    650  1.1     fvdl 	field		CDNUM	0xF8
    651  1.1     fvdl 	field		CFNUM	0x07
    652  1.1     fvdl }
    653  1.1     fvdl 
    654  1.1     fvdl /*
    655  1.1     fvdl  * CMC Recieve Message 0
    656  1.1     fvdl  */
    657  1.1     fvdl register CMCRXMSG0 {
    658  1.1     fvdl 	address			0x090
    659  1.1     fvdl 	access_mode	RO
    660  1.1     fvdl 	modes		M_CCHAN
    661  1.1     fvdl 	field		CDNUM	0xF8
    662  1.1     fvdl 	field		CFNUM	0x07
    663  1.1     fvdl }
    664  1.1     fvdl 
    665  1.1     fvdl /*
    666  1.1     fvdl  * Overlay Recieve Message 0
    667  1.1     fvdl  */
    668  1.1     fvdl register OVLYRXMSG0 {
    669  1.1     fvdl 	address			0x090
    670  1.1     fvdl 	access_mode	RO
    671  1.1     fvdl 	modes		M_SCSI
    672  1.1     fvdl 	field		CDNUM	0xF8
    673  1.1     fvdl 	field		CFNUM	0x07
    674  1.1     fvdl }
    675  1.1     fvdl 
    676  1.1     fvdl /*
    677  1.1     fvdl  * Relaxed Order Enable
    678  1.1     fvdl  */
    679  1.1     fvdl register ROENABLE {
    680  1.1     fvdl 	address			0x090
    681  1.1     fvdl 	access_mode	RW
    682  1.1     fvdl 	modes		M_CFG
    683  1.1     fvdl 	field	MSIROEN		0x20
    684  1.1     fvdl 	field	OVLYROEN	0x10
    685  1.1     fvdl 	field	CMCROEN		0x08
    686  1.1     fvdl 	field	SGROEN		0x04
    687  1.1     fvdl 	field	DCH1ROEN	0x02
    688  1.1     fvdl 	field	DCH0ROEN	0x01
    689  1.1     fvdl }
    690  1.1     fvdl 
    691  1.1     fvdl /*
    692  1.1     fvdl  * Data Channel Receive Message 1
    693  1.1     fvdl  */
    694  1.1     fvdl register DCHRXMSG1 {
    695  1.1     fvdl 	address			0x091
    696  1.1     fvdl 	access_mode	RO
    697  1.1     fvdl 	modes		M_DFF0, M_DFF1
    698  1.1     fvdl 	field	CBNUM		0xFF
    699  1.1     fvdl }
    700  1.1     fvdl 
    701  1.1     fvdl /*
    702  1.1     fvdl  * CMC Recieve Message 1
    703  1.1     fvdl  */
    704  1.1     fvdl register CMCRXMSG1 {
    705  1.1     fvdl 	address			0x091
    706  1.1     fvdl 	access_mode	RO
    707  1.1     fvdl 	modes		M_CCHAN
    708  1.1     fvdl 	field	CBNUM		0xFF
    709  1.1     fvdl }
    710  1.1     fvdl 
    711  1.1     fvdl /*
    712  1.1     fvdl  * Overlay Recieve Message 1
    713  1.1     fvdl  */
    714  1.1     fvdl register OVLYRXMSG1 {
    715  1.1     fvdl 	address			0x091
    716  1.1     fvdl 	access_mode	RO
    717  1.1     fvdl 	modes		M_SCSI
    718  1.1     fvdl 	field	CBNUM		0xFF
    719  1.1     fvdl }
    720  1.1     fvdl 
    721  1.1     fvdl /*
    722  1.1     fvdl  * No Snoop Enable
    723  1.1     fvdl  */
    724  1.1     fvdl register NSENABLE {
    725  1.1     fvdl 	address			0x091
    726  1.1     fvdl 	access_mode	RW
    727  1.1     fvdl 	modes		M_CFG
    728  1.1     fvdl 	field	MSINSEN		0x20
    729  1.1     fvdl 	field	OVLYNSEN	0x10
    730  1.1     fvdl 	field	CMCNSEN		0x08
    731  1.1     fvdl 	field	SGNSEN		0x04
    732  1.1     fvdl 	field	DCH1NSEN	0x02
    733  1.1     fvdl 	field	DCH0NSEN	0x01
    734  1.1     fvdl }
    735  1.1     fvdl 
    736  1.1     fvdl /*
    737  1.1     fvdl  * Data Channel Receive Message 2
    738  1.1     fvdl  */
    739  1.1     fvdl register DCHRXMSG2 {
    740  1.1     fvdl 	address			0x092
    741  1.1     fvdl 	access_mode	RO
    742  1.1     fvdl 	modes		M_DFF0, M_DFF1
    743  1.1     fvdl 	field	MINDEX		0xFF
    744  1.1     fvdl }
    745  1.1     fvdl 
    746  1.1     fvdl /*
    747  1.1     fvdl  * CMC Recieve Message 2
    748  1.1     fvdl  */
    749  1.1     fvdl register CMCRXMSG2 {
    750  1.1     fvdl 	address			0x092
    751  1.1     fvdl 	access_mode	RO
    752  1.1     fvdl 	modes		M_CCHAN
    753  1.1     fvdl 	field	MINDEX		0xFF
    754  1.1     fvdl }
    755  1.1     fvdl 
    756  1.1     fvdl /*
    757  1.1     fvdl  * Overlay Recieve Message 2
    758  1.1     fvdl  */
    759  1.1     fvdl register OVLYRXMSG2 {
    760  1.1     fvdl 	address			0x092
    761  1.1     fvdl 	access_mode	RO
    762  1.1     fvdl 	modes		M_SCSI
    763  1.1     fvdl 	field	MINDEX		0xFF
    764  1.1     fvdl }
    765  1.1     fvdl 
    766  1.1     fvdl /*
    767  1.1     fvdl  * Outstanding Split Transactions
    768  1.1     fvdl  */
    769  1.1     fvdl register OST {
    770  1.1     fvdl 	address			0x092
    771  1.1     fvdl 	access_mode	RW
    772  1.1     fvdl 	modes		M_CFG
    773  1.1     fvdl }
    774  1.1     fvdl 
    775  1.1     fvdl /*
    776  1.1     fvdl  * Data Channel Receive Message 3
    777  1.1     fvdl  */
    778  1.1     fvdl register DCHRXMSG3 {
    779  1.1     fvdl 	address			0x093
    780  1.1     fvdl 	access_mode	RO
    781  1.1     fvdl 	modes		M_DFF0, M_DFF1
    782  1.1     fvdl 	field	MCLASS		0x0F
    783  1.1     fvdl }
    784  1.1     fvdl 
    785  1.1     fvdl /*
    786  1.1     fvdl  * CMC Recieve Message 3
    787  1.1     fvdl  */
    788  1.1     fvdl register CMCRXMSG3 {
    789  1.1     fvdl 	address			0x093
    790  1.1     fvdl 	access_mode	RO
    791  1.1     fvdl 	modes		M_CCHAN
    792  1.1     fvdl 	field	MCLASS		0x0F
    793  1.1     fvdl }
    794  1.1     fvdl 
    795  1.1     fvdl /*
    796  1.1     fvdl  * Overlay Recieve Message 3
    797  1.1     fvdl  */
    798  1.1     fvdl register OVLYRXMSG3 {
    799  1.1     fvdl 	address			0x093
    800  1.1     fvdl 	access_mode	RO
    801  1.1     fvdl 	modes		M_SCSI
    802  1.1     fvdl 	field	MCLASS		0x0F
    803  1.1     fvdl }
    804  1.1     fvdl 
    805  1.1     fvdl /*
    806  1.1     fvdl  * PCI-X Control
    807  1.1     fvdl  */
    808  1.1     fvdl register PCIXCTL {
    809  1.1     fvdl 	address			0x093
    810  1.1     fvdl 	access_mode	RW
    811  1.1     fvdl 	modes		M_CFG
    812  1.1     fvdl 	field	SERRPULSE	0x80
    813  1.1     fvdl 	field	UNEXPSCIEN	0x20
    814  1.1     fvdl 	field	SPLTSMADIS	0x10
    815  1.1     fvdl 	field	SPLTSTADIS	0x08
    816  1.1     fvdl 	field	SRSPDPEEN	0x04
    817  1.1     fvdl 	field	TSCSERREN	0x02
    818  1.1     fvdl 	field	CMPABCDIS	0x01
    819  1.1     fvdl }
    820  1.1     fvdl 
    821  1.1     fvdl /*
    822  1.1     fvdl  * CMC Sequencer Byte Count
    823  1.1     fvdl  */
    824  1.1     fvdl register CMCSEQBCNT {
    825  1.1     fvdl 	address			0x094
    826  1.1     fvdl 	access_mode	RO
    827  1.1     fvdl 	modes		M_CCHAN
    828  1.1     fvdl }
    829  1.1     fvdl 
    830  1.1     fvdl /*
    831  1.1     fvdl  * Overlay Sequencer Byte Count
    832  1.1     fvdl  */
    833  1.1     fvdl register OVLYSEQBCNT {
    834  1.1     fvdl 	address			0x094
    835  1.1     fvdl 	access_mode	RO
    836  1.1     fvdl 	modes		M_SCSI
    837  1.1     fvdl }
    838  1.1     fvdl 
    839  1.1     fvdl /*
    840  1.1     fvdl  * Data Channel Sequencer Byte Count
    841  1.1     fvdl  */
    842  1.1     fvdl register DCHSEQBCNT {
    843  1.1     fvdl 	address			0x094
    844  1.1     fvdl 	access_mode	RO
    845  1.1     fvdl 	size		2
    846  1.1     fvdl 	modes		M_DFF0, M_DFF1
    847  1.1     fvdl }
    848  1.1     fvdl 
    849  1.1     fvdl /*
    850  1.1     fvdl  * Data Channel Split Status 0
    851  1.1     fvdl  */
    852  1.1     fvdl register DCHSPLTSTAT0 {
    853  1.1     fvdl 	address			0x096
    854  1.1     fvdl 	access_mode	RW
    855  1.1     fvdl 	modes		M_DFF0, M_DFF1
    856  1.1     fvdl 	field	STAETERM	0x80
    857  1.1     fvdl 	field	SCBCERR		0x40
    858  1.1     fvdl 	field	SCADERR		0x20
    859  1.1     fvdl 	field	SCDATBUCKET	0x10
    860  1.1     fvdl 	field	CNTNOTCMPLT	0x08
    861  1.1     fvdl 	field	RXOVRUN		0x04
    862  1.1     fvdl 	field	RXSCEMSG	0x02
    863  1.1     fvdl 	field	RXSPLTRSP	0x01
    864  1.1     fvdl }
    865  1.1     fvdl 
    866  1.1     fvdl /*
    867  1.1     fvdl  * CMC Split Status 0
    868  1.1     fvdl  */
    869  1.1     fvdl register CMCSPLTSTAT0 {
    870  1.1     fvdl 	address			0x096
    871  1.1     fvdl 	access_mode	RW
    872  1.1     fvdl 	modes		M_CCHAN
    873  1.1     fvdl 	field	STAETERM	0x80
    874  1.1     fvdl 	field	SCBCERR		0x40
    875  1.1     fvdl 	field	SCADERR		0x20
    876  1.1     fvdl 	field	SCDATBUCKET	0x10
    877  1.1     fvdl 	field	CNTNOTCMPLT	0x08
    878  1.1     fvdl 	field	RXOVRUN		0x04
    879  1.1     fvdl 	field	RXSCEMSG	0x02
    880  1.1     fvdl 	field	RXSPLTRSP	0x01
    881  1.1     fvdl }
    882  1.1     fvdl 
    883  1.1     fvdl /*
    884  1.1     fvdl  * Overlay Split Status 0
    885  1.1     fvdl  */
    886  1.1     fvdl register OVLYSPLTSTAT0 {
    887  1.1     fvdl 	address			0x096
    888  1.1     fvdl 	access_mode	RW
    889  1.1     fvdl 	modes		M_SCSI
    890  1.1     fvdl 	field	STAETERM	0x80
    891  1.1     fvdl 	field	SCBCERR		0x40
    892  1.1     fvdl 	field	SCADERR		0x20
    893  1.1     fvdl 	field	SCDATBUCKET	0x10
    894  1.1     fvdl 	field	CNTNOTCMPLT	0x08
    895  1.1     fvdl 	field	RXOVRUN		0x04
    896  1.1     fvdl 	field	RXSCEMSG	0x02
    897  1.1     fvdl 	field	RXSPLTRSP	0x01
    898  1.1     fvdl }
    899  1.1     fvdl 
    900  1.1     fvdl /*
    901  1.1     fvdl  * Data Channel Split Status 1
    902  1.1     fvdl  */
    903  1.1     fvdl register DCHSPLTSTAT1 {
    904  1.1     fvdl 	address			0x097
    905  1.1     fvdl 	access_mode	RW
    906  1.1     fvdl 	modes		M_DFF0, M_DFF1
    907  1.1     fvdl 	field	RXDATABUCKET	0x01
    908  1.1     fvdl }
    909  1.1     fvdl 
    910  1.1     fvdl /*
    911  1.1     fvdl  * CMC Split Status 1
    912  1.1     fvdl  */
    913  1.1     fvdl register CMCSPLTSTAT1 {
    914  1.1     fvdl 	address			0x097
    915  1.1     fvdl 	access_mode	RW
    916  1.1     fvdl 	modes		M_CCHAN
    917  1.1     fvdl 	field	RXDATABUCKET	0x01
    918  1.1     fvdl }
    919  1.1     fvdl 
    920  1.1     fvdl /*
    921  1.1     fvdl  * Overlay Split Status 1
    922  1.1     fvdl  */
    923  1.1     fvdl register OVLYSPLTSTAT1 {
    924  1.1     fvdl 	address			0x097
    925  1.1     fvdl 	access_mode	RW
    926  1.1     fvdl 	modes		M_SCSI
    927  1.1     fvdl 	field	RXDATABUCKET	0x01
    928  1.1     fvdl }
    929  1.1     fvdl 
    930  1.1     fvdl /*
    931  1.1     fvdl  * S/G Receive Message 0
    932  1.1     fvdl  */
    933  1.1     fvdl register SGRXMSG0 {
    934  1.1     fvdl 	address			0x098
    935  1.1     fvdl 	access_mode	RO
    936  1.1     fvdl 	modes		M_DFF0, M_DFF1
    937  1.1     fvdl 	field		CDNUM	0xF8
    938  1.1     fvdl 	field		CFNUM	0x07
    939  1.1     fvdl }
    940  1.1     fvdl 
    941  1.1     fvdl /*
    942  1.1     fvdl  * S/G Receive Message 1
    943  1.1     fvdl  */
    944  1.1     fvdl register SGRXMSG1 {
    945  1.1     fvdl 	address			0x099
    946  1.1     fvdl 	access_mode	RO
    947  1.1     fvdl 	modes		M_DFF0, M_DFF1
    948  1.1     fvdl 	field	CBNUM		0xFF
    949  1.1     fvdl }
    950  1.1     fvdl 
    951  1.1     fvdl /*
    952  1.1     fvdl  * S/G Receive Message 2
    953  1.1     fvdl  */
    954  1.1     fvdl register SGRXMSG2 {
    955  1.1     fvdl 	address			0x09A
    956  1.1     fvdl 	access_mode	RO
    957  1.1     fvdl 	modes		M_DFF0, M_DFF1
    958  1.1     fvdl 	field	MINDEX		0xFF
    959  1.1     fvdl }
    960  1.1     fvdl 
    961  1.1     fvdl /*
    962  1.1     fvdl  * S/G Receive Message 3
    963  1.1     fvdl  */
    964  1.1     fvdl register SGRXMSG3 {
    965  1.1     fvdl 	address			0x09B
    966  1.1     fvdl 	access_mode	RO
    967  1.1     fvdl 	modes		M_DFF0, M_DFF1
    968  1.1     fvdl 	field	MCLASS		0x0F
    969  1.1     fvdl }
    970  1.1     fvdl 
    971  1.1     fvdl /*
    972  1.1     fvdl  * Slave Split Out Address 0
    973  1.1     fvdl  */
    974  1.1     fvdl register SLVSPLTOUTADR0 {
    975  1.1     fvdl 	address			0x098
    976  1.1     fvdl 	access_mode	RO
    977  1.1     fvdl 	modes		M_SCSI
    978  1.1     fvdl 	field	LOWER_ADDR	0x7F
    979  1.1     fvdl }
    980  1.1     fvdl 
    981  1.1     fvdl /*
    982  1.1     fvdl  * Slave Split Out Address 1
    983  1.1     fvdl  */
    984  1.1     fvdl register SLVSPLTOUTADR1 {
    985  1.1     fvdl 	address			0x099
    986  1.1     fvdl 	access_mode	RO
    987  1.1     fvdl 	modes		M_SCSI
    988  1.1     fvdl 	field	REQ_DNUM	0xF8
    989  1.1     fvdl 	field	REQ_FNUM	0x07
    990  1.1     fvdl }
    991  1.1     fvdl 
    992  1.1     fvdl /*
    993  1.1     fvdl  * Slave Split Out Address 2
    994  1.1     fvdl  */
    995  1.1     fvdl register SLVSPLTOUTADR2 {
    996  1.1     fvdl 	address			0x09A
    997  1.1     fvdl 	access_mode	RO
    998  1.1     fvdl 	modes		M_SCSI
    999  1.1     fvdl 	field	REQ_BNUM	0xFF
   1000  1.1     fvdl }
   1001  1.1     fvdl 
   1002  1.1     fvdl /*
   1003  1.1     fvdl  * Slave Split Out Address 3
   1004  1.1     fvdl  */
   1005  1.1     fvdl register SLVSPLTOUTADR3 {
   1006  1.1     fvdl 	address			0x09B
   1007  1.1     fvdl 	access_mode	RO
   1008  1.1     fvdl 	modes		M_SCSI
   1009  1.1     fvdl 	field	RLXORD		020
   1010  1.1     fvdl 	field	TAG_NUM		0x1F
   1011  1.1     fvdl }
   1012  1.1     fvdl 
   1013  1.1     fvdl /*
   1014  1.1     fvdl  * SG Sequencer Byte Count
   1015  1.1     fvdl  */
   1016  1.1     fvdl register SGSEQBCNT {
   1017  1.1     fvdl 	address			0x09C
   1018  1.1     fvdl 	access_mode	RO
   1019  1.1     fvdl 	modes		M_DFF0, M_DFF1
   1020  1.1     fvdl }
   1021  1.1     fvdl 
   1022  1.1     fvdl /*
   1023  1.1     fvdl  * Slave Split Out Attribute 0
   1024  1.1     fvdl  */
   1025  1.1     fvdl register SLVSPLTOUTATTR0 {
   1026  1.1     fvdl 	address			0x09C
   1027  1.1     fvdl 	access_mode	RO
   1028  1.1     fvdl 	modes		M_SCSI
   1029  1.1     fvdl 	field	LOWER_BCNT	0xFF
   1030  1.1     fvdl }
   1031  1.1     fvdl 
   1032  1.1     fvdl /*
   1033  1.1     fvdl  * Slave Split Out Attribute 1
   1034  1.1     fvdl  */
   1035  1.1     fvdl register SLVSPLTOUTATTR1 {
   1036  1.1     fvdl 	address			0x09D
   1037  1.1     fvdl 	access_mode	RO
   1038  1.1     fvdl 	modes		M_SCSI
   1039  1.1     fvdl 	field	CMPLT_DNUM	0xF8
   1040  1.1     fvdl 	field	CMPLT_FNUM	0x07
   1041  1.1     fvdl }
   1042  1.1     fvdl 
   1043  1.1     fvdl /*
   1044  1.1     fvdl  * Slave Split Out Attribute 2
   1045  1.1     fvdl  */
   1046  1.1     fvdl register SLVSPLTOUTATTR2 {
   1047  1.1     fvdl 	address			0x09E
   1048  1.1     fvdl 	access_mode	RO
   1049  1.1     fvdl 	size		2
   1050  1.1     fvdl 	modes		M_SCSI
   1051  1.1     fvdl 	field	CMPLT_BNUM	0xFF
   1052  1.1     fvdl }
   1053  1.1     fvdl /*
   1054  1.1     fvdl  * S/G Split Status 0
   1055  1.1     fvdl  */
   1056  1.1     fvdl register SGSPLTSTAT0 {
   1057  1.1     fvdl 	address			0x09E
   1058  1.1     fvdl 	access_mode	RW
   1059  1.1     fvdl 	modes		M_DFF0, M_DFF1
   1060  1.1     fvdl 	field	STAETERM	0x80
   1061  1.1     fvdl 	field	SCBCERR		0x40
   1062  1.1     fvdl 	field	SCADERR		0x20
   1063  1.1     fvdl 	field	SCDATBUCKET	0x10
   1064  1.1     fvdl 	field	CNTNOTCMPLT	0x08
   1065  1.1     fvdl 	field	RXOVRUN		0x04
   1066  1.1     fvdl 	field	RXSCEMSG	0x02
   1067  1.1     fvdl 	field	RXSPLTRSP	0x01
   1068  1.1     fvdl }
   1069  1.1     fvdl 
   1070  1.1     fvdl /*
   1071  1.1     fvdl  * S/G Split Status 1
   1072  1.1     fvdl  */
   1073  1.1     fvdl register SGSPLTSTAT1 {
   1074  1.1     fvdl 	address			0x09F
   1075  1.1     fvdl 	access_mode	RW
   1076  1.1     fvdl 	modes		M_DFF0, M_DFF1
   1077  1.1     fvdl 	field	RXDATABUCKET	0x01
   1078  1.1     fvdl }
   1079  1.1     fvdl 
   1080  1.1     fvdl /*
   1081  1.1     fvdl  * Special Function
   1082  1.1     fvdl  */
   1083  1.1     fvdl register SFUNCT {
   1084  1.1     fvdl 	address			0x09f
   1085  1.1     fvdl 	access_mode	RW
   1086  1.1     fvdl 	modes		M_CFG
   1087  1.1     fvdl 	field	TEST_GROUP	0xF0
   1088  1.1     fvdl 	field	TEST_NUM	0x0F
   1089  1.1     fvdl }
   1090  1.1     fvdl 
   1091  1.1     fvdl /*
   1092  1.1     fvdl  * Data FIFO 0 PCI Status
   1093  1.1     fvdl  */
   1094  1.1     fvdl register DF0PCISTAT {
   1095  1.1     fvdl 	address			0x0A0
   1096  1.1     fvdl 	access_mode	RW
   1097  1.1     fvdl 	modes		M_CFG
   1098  1.1     fvdl 	field	DPE		0x80
   1099  1.1     fvdl 	field	SSE		0x40
   1100  1.1     fvdl 	field	RMA		0x20
   1101  1.1     fvdl 	field	RTA		0x10
   1102  1.1     fvdl 	field	SCAAPERR	0x08
   1103  1.1     fvdl 	field	RDPERR		0x04
   1104  1.1     fvdl 	field	TWATERR		0x02
   1105  1.1     fvdl 	field	DPR		0x01
   1106  1.1     fvdl }
   1107  1.1     fvdl 
   1108  1.1     fvdl /*
   1109  1.1     fvdl  * Data FIFO 1 PCI Status
   1110  1.1     fvdl  */
   1111  1.1     fvdl register DF1PCISTAT {
   1112  1.1     fvdl 	address			0x0A1
   1113  1.1     fvdl 	access_mode	RW
   1114  1.1     fvdl 	modes		M_CFG
   1115  1.1     fvdl 	field	DPE		0x80
   1116  1.1     fvdl 	field	SSE		0x40
   1117  1.1     fvdl 	field	RMA		0x20
   1118  1.1     fvdl 	field	RTA		0x10
   1119  1.1     fvdl 	field	SCAAPERR	0x08
   1120  1.1     fvdl 	field	RDPERR		0x04
   1121  1.1     fvdl 	field	TWATERR		0x02
   1122  1.1     fvdl 	field	DPR		0x01
   1123  1.1     fvdl }
   1124  1.1     fvdl 
   1125  1.1     fvdl /*
   1126  1.1     fvdl  * S/G PCI Status
   1127  1.1     fvdl  */
   1128  1.1     fvdl register SGPCISTAT {
   1129  1.1     fvdl 	address			0x0A2
   1130  1.1     fvdl 	access_mode	RW
   1131  1.1     fvdl 	modes		M_CFG
   1132  1.1     fvdl 	field	DPE		0x80
   1133  1.1     fvdl 	field	SSE		0x40
   1134  1.1     fvdl 	field	RMA		0x20
   1135  1.1     fvdl 	field	RTA		0x10
   1136  1.1     fvdl 	field	SCAAPERR	0x08
   1137  1.1     fvdl 	field	RDPERR		0x04
   1138  1.1     fvdl 	field	DPR		0x01
   1139  1.1     fvdl }
   1140  1.1     fvdl 
   1141  1.1     fvdl /*
   1142  1.1     fvdl  * CMC PCI Status
   1143  1.1     fvdl  */
   1144  1.1     fvdl register CMCPCISTAT {
   1145  1.1     fvdl 	address			0x0A3
   1146  1.1     fvdl 	access_mode	RW
   1147  1.1     fvdl 	modes		M_CFG
   1148  1.1     fvdl 	field	DPE		0x80
   1149  1.1     fvdl 	field	SSE		0x40
   1150  1.1     fvdl 	field	RMA		0x20
   1151  1.1     fvdl 	field	RTA		0x10
   1152  1.1     fvdl 	field	SCAAPERR	0x08
   1153  1.1     fvdl 	field	RDPERR		0x04
   1154  1.1     fvdl 	field	TWATERR		0x02
   1155  1.1     fvdl 	field	DPR		0x01
   1156  1.1     fvdl }
   1157  1.1     fvdl 
   1158  1.1     fvdl /*
   1159  1.1     fvdl  * Overlay PCI Status
   1160  1.1     fvdl  */
   1161  1.1     fvdl register OVLYPCISTAT {
   1162  1.1     fvdl 	address			0x0A4
   1163  1.1     fvdl 	access_mode	RW
   1164  1.1     fvdl 	modes		M_CFG
   1165  1.1     fvdl 	field	DPE		0x80
   1166  1.1     fvdl 	field	SSE		0x40
   1167  1.1     fvdl 	field	RMA		0x20
   1168  1.1     fvdl 	field	RTA		0x10
   1169  1.1     fvdl 	field	SCAAPERR	0x08
   1170  1.1     fvdl 	field	RDPERR		0x04
   1171  1.1     fvdl 	field	DPR		0x01
   1172  1.1     fvdl }
   1173  1.1     fvdl 
   1174  1.1     fvdl /*
   1175  1.1     fvdl  * PCI Status for MSI Master DMA Transfer
   1176  1.1     fvdl  */
   1177  1.1     fvdl register MSIPCISTAT {
   1178  1.1     fvdl 	address			0x0A6
   1179  1.1     fvdl 	access_mode	RW
   1180  1.1     fvdl 	modes		M_CFG
   1181  1.1     fvdl 	field	SSE		0x40
   1182  1.1     fvdl 	field	RMA		0x20
   1183  1.1     fvdl 	field	RTA		0x10
   1184  1.1     fvdl 	field	CLRPENDMSI	0x08
   1185  1.1     fvdl 	field	TWATERR		0x02
   1186  1.1     fvdl 	field	DPR		0x01
   1187  1.1     fvdl }
   1188  1.1     fvdl 
   1189  1.1     fvdl /*
   1190  1.1     fvdl  * PCI Status for Target
   1191  1.1     fvdl  */
   1192  1.1     fvdl register TARGPCISTAT {
   1193  1.1     fvdl 	address			0x0A7
   1194  1.1     fvdl 	access_mode	RW
   1195  1.1     fvdl 	modes		M_CFG
   1196  1.1     fvdl 	field	DPE		0x80
   1197  1.1     fvdl 	field	SSE		0x40
   1198  1.1     fvdl 	field	STA		0x08
   1199  1.1     fvdl 	field	TWATERR		0x02
   1200  1.1     fvdl }
   1201  1.1     fvdl 
   1202  1.1     fvdl /*
   1203  1.1     fvdl  * LQ Packet In
   1204  1.1     fvdl  * The last LQ Packet recieved
   1205  1.1     fvdl  */
   1206  1.1     fvdl register LQIN {
   1207  1.1     fvdl 	address			0x020
   1208  1.1     fvdl 	access_mode	RW
   1209  1.1     fvdl 	size		20
   1210  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   1211  1.1     fvdl }
   1212  1.1     fvdl 
   1213  1.1     fvdl /*
   1214  1.1     fvdl  * SCB Type Pointer
   1215  1.1     fvdl  * SCB offset for Target Mode SCB type information
   1216  1.1     fvdl  */
   1217  1.1     fvdl register TYPEPTR {
   1218  1.1     fvdl 	address			0x020
   1219  1.1     fvdl 	access_mode	RW
   1220  1.1     fvdl 	modes		M_CFG
   1221  1.1     fvdl }
   1222  1.1     fvdl 
   1223  1.1     fvdl /*
   1224  1.1     fvdl  * Queue Tag Pointer
   1225  1.1     fvdl  * SCB offset to the Two Byte tag identifier used for target mode.
   1226  1.1     fvdl  */
   1227  1.1     fvdl register TAGPTR {
   1228  1.1     fvdl 	address			0x021
   1229  1.1     fvdl 	access_mode	RW
   1230  1.1     fvdl 	modes		M_CFG
   1231  1.1     fvdl }
   1232  1.1     fvdl 
   1233  1.1     fvdl /*
   1234  1.1     fvdl  * Logical Unit Number Pointer
   1235  1.1     fvdl  * SCB offset to the LSB (little endian) of the lun field.
   1236  1.1     fvdl  */
   1237  1.1     fvdl register LUNPTR {
   1238  1.1     fvdl 	address			0x022
   1239  1.1     fvdl 	access_mode	RW
   1240  1.1     fvdl 	modes		M_CFG
   1241  1.1     fvdl }
   1242  1.1     fvdl 
   1243  1.1     fvdl /*
   1244  1.1     fvdl  * Data Length Pointer
   1245  1.1     fvdl  * SCB offset for the 4 byte data length field in target mode.
   1246  1.1     fvdl  */
   1247  1.1     fvdl register DATALENPTR {
   1248  1.1     fvdl 	address			0x023
   1249  1.1     fvdl 	access_mode	RW
   1250  1.1     fvdl 	modes		M_CFG
   1251  1.1     fvdl }
   1252  1.1     fvdl 
   1253  1.1     fvdl /*
   1254  1.1     fvdl  * Status Length Pointer
   1255  1.1     fvdl  * SCB offset to the two byte status field in target SCBs.
   1256  1.1     fvdl  */
   1257  1.1     fvdl register STATLENPTR {
   1258  1.1     fvdl 	address			0x024
   1259  1.1     fvdl 	access_mode	RW
   1260  1.1     fvdl 	modes		M_CFG
   1261  1.1     fvdl }
   1262  1.1     fvdl 
   1263  1.1     fvdl /*
   1264  1.1     fvdl  * Command Length Pointer
   1265  1.1     fvdl  * Scb offset for the CDB length field in initiator SCBs.
   1266  1.1     fvdl  */
   1267  1.1     fvdl register CMDLENPTR {
   1268  1.1     fvdl 	address			0x025
   1269  1.1     fvdl 	access_mode	RW
   1270  1.1     fvdl 	modes		M_CFG
   1271  1.1     fvdl }
   1272  1.1     fvdl 
   1273  1.1     fvdl /*
   1274  1.1     fvdl  * Task Attribute Pointer
   1275  1.1     fvdl  * Scb offset for the byte field specifying the attribute byte
   1276  1.1     fvdl  * to be used in command packets.
   1277  1.1     fvdl  */
   1278  1.1     fvdl register ATTRPTR {
   1279  1.1     fvdl 	address			0x026
   1280  1.1     fvdl 	access_mode	RW
   1281  1.1     fvdl 	modes		M_CFG
   1282  1.1     fvdl }
   1283  1.1     fvdl 
   1284  1.1     fvdl /*
   1285  1.1     fvdl  * Task Management Flags Pointer
   1286  1.1     fvdl  * Scb offset for the byte field specifying the attribute flags
   1287  1.1     fvdl  * byte to be used in command packets.
   1288  1.1     fvdl  */
   1289  1.1     fvdl register FLAGPTR {
   1290  1.1     fvdl 	address			0x027
   1291  1.1     fvdl 	access_mode	RW
   1292  1.1     fvdl 	modes		M_CFG
   1293  1.1     fvdl }
   1294  1.1     fvdl 
   1295  1.1     fvdl /*
   1296  1.1     fvdl  * Command Pointer
   1297  1.1     fvdl  * Scb offset for the first byte in the CDB for initiator SCBs.
   1298  1.1     fvdl  */
   1299  1.1     fvdl register CMDPTR {
   1300  1.1     fvdl 	address			0x028
   1301  1.1     fvdl 	access_mode	RW
   1302  1.1     fvdl 	modes		M_CFG
   1303  1.1     fvdl }
   1304  1.1     fvdl 
   1305  1.1     fvdl /*
   1306  1.1     fvdl  * Queue Next Pointer
   1307  1.1     fvdl  * Scb offset for the 2 byte "next scb link".
   1308  1.1     fvdl  */
   1309  1.1     fvdl register QNEXTPTR {
   1310  1.1     fvdl 	address			0x029
   1311  1.1     fvdl 	access_mode	RW
   1312  1.1     fvdl 	modes		M_CFG
   1313  1.1     fvdl }
   1314  1.1     fvdl 
   1315  1.1     fvdl /*
   1316  1.1     fvdl  * SCSI ID Pointer
   1317  1.1     fvdl  * Scb offset to the value to place in the SCSIID register
   1318  1.1     fvdl  * during target mode connections.
   1319  1.1     fvdl  */
   1320  1.1     fvdl register IDPTR {
   1321  1.1     fvdl 	address			0x02A
   1322  1.1     fvdl 	access_mode	RW
   1323  1.1     fvdl 	modes		M_CFG
   1324  1.1     fvdl }
   1325  1.1     fvdl 
   1326  1.1     fvdl /*
   1327  1.1     fvdl  * Command Aborted Byte Pointer
   1328  1.1     fvdl  * Offset to the SCB flags field that includes the
   1329  1.1     fvdl  * "SCB aborted" status bit.
   1330  1.1     fvdl  */
   1331  1.1     fvdl register ABRTBYTEPTR {
   1332  1.1     fvdl 	address			0x02B
   1333  1.1     fvdl 	access_mode	RW
   1334  1.1     fvdl 	modes		M_CFG
   1335  1.1     fvdl }
   1336  1.1     fvdl 
   1337  1.1     fvdl /*
   1338  1.1     fvdl  * Command Aborted Bit Pointer
   1339  1.1     fvdl  * Bit offset in the SCB flags field for "SCB aborted" status.
   1340  1.1     fvdl  */
   1341  1.1     fvdl register ABRTBITPTR {
   1342  1.1     fvdl 	address			0x02C
   1343  1.1     fvdl 	access_mode	RW
   1344  1.1     fvdl 	modes		M_CFG
   1345  1.1     fvdl }
   1346  1.1     fvdl 
   1347  1.1     fvdl /*
   1348  1.1     fvdl  * Rev B or greater.
   1349  1.1     fvdl  */
   1350  1.1     fvdl register MAXCMDBYTES {
   1351  1.1     fvdl 	address			0x02D
   1352  1.1     fvdl 	access_mode	RW
   1353  1.1     fvdl 	modes		M_CFG
   1354  1.1     fvdl }
   1355  1.1     fvdl 
   1356  1.1     fvdl /*
   1357  1.1     fvdl  * Rev B or greater.
   1358  1.1     fvdl  */
   1359  1.1     fvdl register MAXCMD2RCV {
   1360  1.1     fvdl 	address			0x02E
   1361  1.1     fvdl 	access_mode	RW
   1362  1.1     fvdl 	modes		M_CFG
   1363  1.1     fvdl }
   1364  1.1     fvdl 
   1365  1.1     fvdl /*
   1366  1.1     fvdl  * Rev B or greater.
   1367  1.1     fvdl  */
   1368  1.1     fvdl register SHORTTHRESH {
   1369  1.1     fvdl 	address			0x02F
   1370  1.1     fvdl 	access_mode	RW
   1371  1.1     fvdl 	modes		M_CFG
   1372  1.1     fvdl }
   1373  1.1     fvdl 
   1374  1.1     fvdl /*
   1375  1.1     fvdl  * Logical Unit Number Length
   1376  1.1     fvdl  * The length, in bytes, of the SCB lun field.
   1377  1.1     fvdl  */
   1378  1.1     fvdl register LUNLEN {
   1379  1.1     fvdl 	address			0x030
   1380  1.1     fvdl 	access_mode	RW
   1381  1.1     fvdl 	modes		M_CFG
   1382  1.6  thorpej 	mask		ILUNLEN	0x0F
   1383  1.6  thorpej 	mask		TLUNLEN	0xF0
   1384  1.1     fvdl }
   1385  1.6  thorpej const LUNLEN_SINGLE_LEVEL_LUN 0xF
   1386  1.1     fvdl 
   1387  1.1     fvdl /*
   1388  1.1     fvdl  * CDB Limit
   1389  1.1     fvdl  * The size, in bytes, of the embedded CDB field in initator SCBs.
   1390  1.1     fvdl  */
   1391  1.1     fvdl register CDBLIMIT {
   1392  1.1     fvdl 	address			0x031
   1393  1.1     fvdl 	access_mode	RW
   1394  1.1     fvdl 	modes		M_CFG
   1395  1.1     fvdl }
   1396  1.1     fvdl 
   1397  1.1     fvdl /*
   1398  1.1     fvdl  * Maximum Commands
   1399  1.1     fvdl  * The maximum number of commands to issue during a
   1400  1.1     fvdl  * single packetized connection.
   1401  1.1     fvdl  */
   1402  1.1     fvdl register MAXCMD {
   1403  1.1     fvdl 	address			0x032
   1404  1.1     fvdl 	access_mode	RW
   1405  1.1     fvdl 	modes		M_CFG
   1406  1.1     fvdl }
   1407  1.1     fvdl 
   1408  1.1     fvdl /*
   1409  1.1     fvdl  * Maximum Command Counter
   1410  1.1     fvdl  * The number of commands already sent during this connection
   1411  1.1     fvdl  */
   1412  1.1     fvdl register MAXCMDCNT {
   1413  1.1     fvdl 	address			0x033
   1414  1.1     fvdl 	access_mode	RW
   1415  1.1     fvdl 	modes		M_CFG
   1416  1.1     fvdl }
   1417  1.1     fvdl 
   1418  1.1     fvdl /*
   1419  1.1     fvdl  * LQ Packet Reserved Bytes
   1420  1.1     fvdl  * The bytes to be sent in the currently reserved fileds
   1421  1.1     fvdl  * of all LQ packets.
   1422  1.1     fvdl  */
   1423  1.1     fvdl register LQRSVD01 {
   1424  1.1     fvdl 	address			0x034
   1425  1.1     fvdl 	access_mode	RW
   1426  1.1     fvdl 	modes		M_SCSI
   1427  1.1     fvdl }
   1428  1.1     fvdl register LQRSVD16 {
   1429  1.1     fvdl 	address			0x035
   1430  1.1     fvdl 	access_mode	RW
   1431  1.1     fvdl 	modes		M_SCSI
   1432  1.1     fvdl }
   1433  1.1     fvdl register LQRSVD17 {
   1434  1.1     fvdl 	address			0x036
   1435  1.1     fvdl 	access_mode	RW
   1436  1.1     fvdl 	modes		M_SCSI
   1437  1.1     fvdl }
   1438  1.1     fvdl 
   1439  1.1     fvdl /*
   1440  1.1     fvdl  * Command Reserved 0
   1441  1.1     fvdl  * The byte to be sent for the reserved byte 0 of
   1442  1.1     fvdl  * outgoing command packets.
   1443  1.1     fvdl  */
   1444  1.1     fvdl register CMDRSVD0 {
   1445  1.1     fvdl 	address			0x037
   1446  1.1     fvdl 	access_mode	RW
   1447  1.1     fvdl 	modes		M_CFG
   1448  1.1     fvdl }
   1449  1.1     fvdl 
   1450  1.1     fvdl /*
   1451  1.1     fvdl  * LQ Manager Control 0
   1452  1.1     fvdl  */
   1453  1.1     fvdl register LQCTL0 {
   1454  1.1     fvdl 	address			0x038
   1455  1.1     fvdl 	access_mode	RW
   1456  1.1     fvdl 	modes		M_CFG
   1457  1.1     fvdl 	field	LQITARGCLT	0xC0
   1458  1.1     fvdl 	field	LQIINITGCLT	0x30
   1459  1.1     fvdl 	field	LQ0TARGCLT	0x0C
   1460  1.1     fvdl 	field	LQ0INITGCLT	0x03
   1461  1.1     fvdl }
   1462  1.1     fvdl 
   1463  1.1     fvdl /*
   1464  1.1     fvdl  * LQ Manager Control 1
   1465  1.1     fvdl  */
   1466  1.1     fvdl register LQCTL1 {
   1467  1.1     fvdl 	address			0x038
   1468  1.1     fvdl 	access_mode	RW
   1469  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   1470  1.1     fvdl 	field	PCI2PCI		0x04
   1471  1.1     fvdl 	field	SINGLECMD	0x02
   1472  1.1     fvdl 	field	ABORTPENDING	0x01
   1473  1.1     fvdl }
   1474  1.1     fvdl 
   1475  1.1     fvdl /*
   1476  1.1     fvdl  * LQ Manager Control 2
   1477  1.1     fvdl  */
   1478  1.1     fvdl register LQCTL2 {
   1479  1.1     fvdl 	address			0x039
   1480  1.1     fvdl 	access_mode	RW
   1481  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   1482  1.1     fvdl 	field	LQIRETRY	0x80
   1483  1.1     fvdl 	field	LQICONTINUE	0x40
   1484  1.1     fvdl 	field	LQITOIDLE	0x20
   1485  1.1     fvdl 	field	LQIPAUSE	0x10
   1486  1.1     fvdl 	field	LQORETRY	0x08
   1487  1.1     fvdl 	field	LQOCONTINUE	0x04
   1488  1.1     fvdl 	field	LQOTOIDLE	0x02
   1489  1.1     fvdl 	field	LQOPAUSE	0x01
   1490  1.1     fvdl }
   1491  1.1     fvdl 
   1492  1.1     fvdl /*
   1493  1.1     fvdl  * SCSI RAM BIST0
   1494  1.1     fvdl  */
   1495  1.1     fvdl register SCSBIST0 {
   1496  1.1     fvdl 	address			0x039
   1497  1.1     fvdl 	access_mode	RW
   1498  1.1     fvdl 	modes		M_CFG
   1499  1.1     fvdl 	field	GSBISTERR	0x40
   1500  1.1     fvdl 	field	GSBISTDONE	0x20
   1501  1.1     fvdl 	field	GSBISTRUN	0x10
   1502  1.1     fvdl 	field	OSBISTERR	0x04
   1503  1.1     fvdl 	field	OSBISTDONE	0x02
   1504  1.1     fvdl 	field	OSBISTRUN	0x01
   1505  1.1     fvdl }
   1506  1.1     fvdl 
   1507  1.1     fvdl /*
   1508  1.1     fvdl  * SCSI Sequence Control0
   1509  1.1     fvdl  */
   1510  1.1     fvdl register SCSISEQ0 {
   1511  1.1     fvdl 	address			0x03A
   1512  1.1     fvdl 	access_mode	RW
   1513  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   1514  1.1     fvdl 	field	TEMODEO		0x80
   1515  1.1     fvdl 	field	ENSELO		0x40
   1516  1.1     fvdl 	field	ENARBO		0x20
   1517  1.1     fvdl 	field	FORCEBUSFREE	0x10
   1518  1.1     fvdl 	field	SCSIRSTO	0x01
   1519  1.1     fvdl }
   1520  1.1     fvdl 
   1521  1.1     fvdl /*
   1522  1.1     fvdl  * SCSI RAM BIST 1
   1523  1.1     fvdl  */
   1524  1.1     fvdl register SCSBIST1 {
   1525  1.1     fvdl 	address			0x03A
   1526  1.1     fvdl 	access_mode	RW
   1527  1.1     fvdl 	modes		M_CFG
   1528  1.1     fvdl 	field	NTBISTERR	0x04
   1529  1.1     fvdl 	field	NTBISTDONE	0x02
   1530  1.1     fvdl 	field	NTBISTRUN	0x01
   1531  1.1     fvdl }
   1532  1.1     fvdl 
   1533  1.1     fvdl /*
   1534  1.1     fvdl  * SCSI Sequence Control 1
   1535  1.1     fvdl  */
   1536  1.1     fvdl register SCSISEQ1 {
   1537  1.1     fvdl 	address			0x03B
   1538  1.1     fvdl 	access_mode	RW
   1539  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   1540  1.1     fvdl 	field	MANUALCTL	0x40
   1541  1.1     fvdl 	field	ENSELI		0x20
   1542  1.1     fvdl 	field	ENRSELI		0x10
   1543  1.1     fvdl 	field	MANUALP		0x0C
   1544  1.1     fvdl 	field	ENAUTOATNP	0x02
   1545  1.1     fvdl 	field	ALTSTIM		0x01
   1546  1.1     fvdl }
   1547  1.1     fvdl 
   1548  1.1     fvdl /*
   1549  1.1     fvdl  * SCSI Transfer Control 0
   1550  1.1     fvdl  */
   1551  1.1     fvdl register SXFRCTL0 {
   1552  1.1     fvdl 	address			0x03C
   1553  1.1     fvdl 	access_mode	RW
   1554  1.1     fvdl 	modes		M_SCSI
   1555  1.1     fvdl 	field	DFON		0x80
   1556  1.1     fvdl 	field	DFPEXP		0x40
   1557  1.1     fvdl 	field	BIOSCANCELEN	0x10
   1558  1.1     fvdl 	field	SPIOEN		0x08
   1559  1.1     fvdl }
   1560  1.1     fvdl 
   1561  1.1     fvdl /*
   1562  1.1     fvdl  * SCSI Transfer Control 1
   1563  1.1     fvdl  */
   1564  1.1     fvdl register SXFRCTL1 {
   1565  1.1     fvdl 	address			0x03D
   1566  1.1     fvdl 	access_mode	RW
   1567  1.1     fvdl 	modes		M_SCSI
   1568  1.1     fvdl 	field	BITBUCKET	0x80
   1569  1.1     fvdl 	field	ENSACHK		0x40
   1570  1.1     fvdl 	field	ENSPCHK		0x20
   1571  1.1     fvdl 	field	STIMESEL	0x18
   1572  1.1     fvdl 	field	ENSTIMER	0x04
   1573  1.1     fvdl 	field	ACTNEGEN	0x02
   1574  1.1     fvdl 	field	STPWEN		0x01
   1575  1.1     fvdl }
   1576  1.1     fvdl 
   1577  1.1     fvdl /*
   1578  1.1     fvdl  * SCSI Transfer Control 2
   1579  1.1     fvdl  */
   1580  1.1     fvdl register SXFRCTL2 {
   1581  1.1     fvdl 	address			0x03E
   1582  1.1     fvdl 	access_mode	RW
   1583  1.1     fvdl 	modes		M_SCSI
   1584  1.1     fvdl 	field	AUTORSTDIS	0x10
   1585  1.1     fvdl 	field	CMDDMAEN	0x08
   1586  1.1     fvdl 	field	ASU		0x07
   1587  1.1     fvdl }
   1588  1.1     fvdl 
   1589  1.1     fvdl /*
   1590  1.1     fvdl  * SCSI Bus Initiator IDs
   1591  1.1     fvdl  * Bitmask of observed initiators on the bus.
   1592  1.1     fvdl  */
   1593  1.1     fvdl register BUSINITID {
   1594  1.1     fvdl 	address			0x03C
   1595  1.1     fvdl 	access_mode	RW
   1596  1.1     fvdl 	modes		M_CFG
   1597  1.1     fvdl 	size		2
   1598  1.1     fvdl }
   1599  1.1     fvdl 
   1600  1.1     fvdl /*
   1601  1.1     fvdl  * Data Length Counters
   1602  1.1     fvdl  * Packet byte counter.
   1603  1.1     fvdl  */
   1604  1.1     fvdl register DLCOUNT {
   1605  1.1     fvdl 	address			0x03C
   1606  1.1     fvdl 	access_mode	RW
   1607  1.1     fvdl 	modes		M_DFF0, M_DFF1
   1608  1.1     fvdl 	size		3
   1609  1.1     fvdl }
   1610  1.1     fvdl 
   1611  1.1     fvdl /*
   1612  1.1     fvdl  * Data FIFO Status
   1613  1.1     fvdl  */
   1614  1.1     fvdl register DFFSTAT {
   1615  1.1     fvdl 	address			0x03F
   1616  1.1     fvdl 	access_mode	RW
   1617  1.1     fvdl 	modes		M_SCSI
   1618  1.1     fvdl 	field	FIFO1FREE	0x20
   1619  1.1     fvdl 	field	FIFO0FREE	0x10
   1620  1.1     fvdl 	/*
   1621  1.1     fvdl 	 * On the B, this enum only works
   1622  1.1     fvdl 	 * in the read direction.  For writes,
   1623  1.1     fvdl 	 * you must use the B version of the
   1624  1.1     fvdl 	 * CURRFIFO_0 definition which is defined
   1625  1.1     fvdl 	 * as a constant outside of this register
   1626  1.1     fvdl 	 * definition to avoid confusing the
   1627  1.1     fvdl 	 * register pretty printing code.
   1628  1.1     fvdl 	 */
   1629  1.1     fvdl 	enum	CURRFIFO	0x03 {
   1630  1.1     fvdl 		CURRFIFO_0,
   1631  1.1     fvdl 		CURRFIFO_1,
   1632  1.1     fvdl 		CURRFIFO_NONE	0x3
   1633  1.1     fvdl 	}
   1634  1.1     fvdl }
   1635  1.1     fvdl 
   1636  1.1     fvdl const B_CURRFIFO_0 0x2
   1637  1.1     fvdl 
   1638  1.1     fvdl /*
   1639  1.1     fvdl  * SCSI Bus Target IDs
   1640  1.1     fvdl  * Bitmask of observed targets on the bus.
   1641  1.1     fvdl  */
   1642  1.1     fvdl register BUSTARGID {
   1643  1.1     fvdl 	address			0x03E
   1644  1.1     fvdl 	access_mode	RW
   1645  1.1     fvdl 	modes		M_CFG
   1646  1.1     fvdl 	size		2
   1647  1.1     fvdl }
   1648  1.1     fvdl 
   1649  1.1     fvdl /*
   1650  1.1     fvdl  * SCSI Control Signal Out
   1651  1.1     fvdl  */
   1652  1.1     fvdl register SCSISIGO {
   1653  1.1     fvdl 	address			0x040
   1654  1.1     fvdl 	access_mode	RW
   1655  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   1656  1.1     fvdl 	field	CDO		0x80
   1657  1.1     fvdl 	field	IOO		0x40
   1658  1.1     fvdl 	field	MSGO		0x20
   1659  1.1     fvdl 	field	ATNO		0x10
   1660  1.1     fvdl 	field	SELO		0x08
   1661  1.1     fvdl 	field	BSYO		0x04
   1662  1.1     fvdl 	field	REQO		0x02
   1663  1.1     fvdl 	field	ACKO		0x01
   1664  1.1     fvdl /*
   1665  1.1     fvdl  * Possible phases to write into SCSISIG0
   1666  1.1     fvdl  */
   1667  1.1     fvdl 	enum	PHASE_MASK  CDO|IOO|MSGO {
   1668  1.1     fvdl 		P_DATAOUT	0x0,
   1669  1.1     fvdl 		P_DATAIN	IOO,
   1670  1.1     fvdl 		P_DATAOUT_DT	P_DATAOUT|MSGO,
   1671  1.1     fvdl 		P_DATAIN_DT	P_DATAIN|MSGO,
   1672  1.1     fvdl 		P_COMMAND	CDO,
   1673  1.1     fvdl 		P_MESGOUT	CDO|MSGO,
   1674  1.1     fvdl 		P_STATUS	CDO|IOO,
   1675  1.1     fvdl 		P_MESGIN	CDO|IOO|MSGO
   1676  1.1     fvdl 	}
   1677  1.1     fvdl }
   1678  1.1     fvdl 
   1679  1.1     fvdl register SCSISIGI {
   1680  1.1     fvdl 	address			0x041
   1681  1.1     fvdl 	access_mode	RO
   1682  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   1683  1.1     fvdl 	field	CDI		0x80
   1684  1.1     fvdl 	field	IOI		0x40
   1685  1.1     fvdl 	field	MSGI		0x20
   1686  1.1     fvdl 	field	ATNI		0x10
   1687  1.1     fvdl 	field	SELI		0x08
   1688  1.1     fvdl 	field	BSYI		0x04
   1689  1.1     fvdl 	field	REQI		0x02
   1690  1.1     fvdl 	field	ACKI		0x01
   1691  1.1     fvdl /*
   1692  1.1     fvdl  * Possible phases in SCSISIGI
   1693  1.1     fvdl  */
   1694  1.1     fvdl 	enum	PHASE_MASK  CDO|IOO|MSGO {
   1695  1.1     fvdl 		P_DATAOUT	0x0,
   1696  1.1     fvdl 		P_DATAIN	IOO,
   1697  1.1     fvdl 		P_DATAOUT_DT	P_DATAOUT|MSGO,
   1698  1.1     fvdl 		P_DATAIN_DT	P_DATAIN|MSGO,
   1699  1.1     fvdl 		P_COMMAND	CDO,
   1700  1.1     fvdl 		P_MESGOUT	CDO|MSGO,
   1701  1.1     fvdl 		P_STATUS	CDO|IOO,
   1702  1.1     fvdl 		P_MESGIN	CDO|IOO|MSGO
   1703  1.1     fvdl 	}
   1704  1.1     fvdl }
   1705  1.1     fvdl 
   1706  1.1     fvdl /*
   1707  1.1     fvdl  * Multiple Target IDs
   1708  1.1     fvdl  * Bitmask of ids to respond as a target.
   1709  1.1     fvdl  */
   1710  1.1     fvdl register MULTARGID {
   1711  1.1     fvdl 	address			0x040
   1712  1.1     fvdl 	access_mode	RW
   1713  1.1     fvdl 	modes		M_CFG
   1714  1.1     fvdl 	size		2
   1715  1.1     fvdl }
   1716  1.1     fvdl 
   1717  1.1     fvdl /*
   1718  1.1     fvdl  * SCSI Phase
   1719  1.1     fvdl  */
   1720  1.1     fvdl register SCSIPHASE {
   1721  1.1     fvdl 	address			0x042
   1722  1.1     fvdl 	access_mode	RO
   1723  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   1724  1.1     fvdl 	field	STATUS_PHASE	0x20
   1725  1.1     fvdl 	field	COMMAND_PHASE	0x10
   1726  1.1     fvdl 	field	MSG_IN_PHASE	0x08
   1727  1.1     fvdl 	field	MSG_OUT_PHASE	0x04
   1728  1.1     fvdl 	field	DATA_PHASE_MASK	0x03 {
   1729  1.1     fvdl 		DATA_OUT_PHASE	0x01,
   1730  1.1     fvdl 		DATA_IN_PHASE	0x02
   1731  1.1     fvdl 	}
   1732  1.1     fvdl }
   1733  1.1     fvdl 
   1734  1.1     fvdl /*
   1735  1.1     fvdl  * SCSI Data 0 Image
   1736  1.1     fvdl  */
   1737  1.1     fvdl register SCSIDAT0_IMG {
   1738  1.1     fvdl 	address			0x043
   1739  1.1     fvdl 	access_mode	RW
   1740  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   1741  1.1     fvdl }
   1742  1.1     fvdl 
   1743  1.1     fvdl /*
   1744  1.1     fvdl  * SCSI Latched Data
   1745  1.1     fvdl  */
   1746  1.1     fvdl register SCSIDAT {
   1747  1.1     fvdl 	address			0x044
   1748  1.1     fvdl 	access_mode	RW
   1749  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   1750  1.1     fvdl 	size		2
   1751  1.1     fvdl }
   1752  1.1     fvdl 
   1753  1.1     fvdl /*
   1754  1.1     fvdl  * SCSI Data Bus
   1755  1.1     fvdl  */
   1756  1.1     fvdl register SCSIBUS {
   1757  1.1     fvdl 	address			0x046
   1758  1.1     fvdl 	access_mode	RW
   1759  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   1760  1.1     fvdl 	size		2
   1761  1.1     fvdl }
   1762  1.1     fvdl 
   1763  1.1     fvdl /*
   1764  1.1     fvdl  * Target ID In
   1765  1.1     fvdl  */
   1766  1.1     fvdl register TARGIDIN {
   1767  1.1     fvdl 	address			0x048
   1768  1.1     fvdl 	access_mode	RO
   1769  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   1770  1.1     fvdl 	field	CLKOUT		0x80
   1771  1.1     fvdl 	field	TARGID		0x0F
   1772  1.1     fvdl }
   1773  1.1     fvdl 
   1774  1.1     fvdl /*
   1775  1.1     fvdl  * Selection/Reselection ID
   1776  1.1     fvdl  * Upper four bits are the device id.  The ONEBIT is set when the re/selecting
   1777  1.1     fvdl  * device did not set its own ID.
   1778  1.1     fvdl  */
   1779  1.1     fvdl register SELID {
   1780  1.1     fvdl 	address			0x049
   1781  1.1     fvdl 	access_mode	RW
   1782  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   1783  1.1     fvdl 	field	SELID_MASK	0xf0
   1784  1.1     fvdl 	field	ONEBIT		0x08
   1785  1.1     fvdl }
   1786  1.1     fvdl 
   1787  1.1     fvdl /*
   1788  1.1     fvdl  * SCSI Block Control
   1789  1.1     fvdl  * Controls Bus type and channel selection.  SELWIDE allows for the
   1790  1.1     fvdl  * coexistence of 8bit and 16bit devices on a wide bus.
   1791  1.1     fvdl  */
   1792  1.1     fvdl register SBLKCTL {
   1793  1.1     fvdl 	address			0x04A
   1794  1.1     fvdl 	access_mode	RW
   1795  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   1796  1.1     fvdl 	field	DIAGLEDEN	0x80
   1797  1.1     fvdl 	field	DIAGLEDON	0x40
   1798  1.1     fvdl 	field	ENAB40		0x08	/* LVD transceiver active */
   1799  1.1     fvdl 	field	ENAB20		0x04	/* SE/HVD transceiver active */
   1800  1.1     fvdl 	field	SELWIDE		0x02
   1801  1.1     fvdl }
   1802  1.1     fvdl 
   1803  1.1     fvdl /*
   1804  1.1     fvdl  * Option Mode
   1805  1.1     fvdl  */
   1806  1.1     fvdl register OPTIONMODE {
   1807  1.1     fvdl 	address			0x04A
   1808  1.1     fvdl 	access_mode	RW
   1809  1.1     fvdl 	modes		M_CFG
   1810  1.1     fvdl 	field	BIOSCANCTL		0x80
   1811  1.1     fvdl 	field	AUTOACKEN		0x40
   1812  1.1     fvdl 	field	BIASCANCTL		0x20
   1813  1.1     fvdl 	field	BUSFREEREV		0x10
   1814  1.1     fvdl 	field	ENDGFORMCHK		0x04
   1815  1.1     fvdl 	field	AUTO_MSGOUT_DE		0x02
   1816  1.1     fvdl 	mask	OPTIONMODE_DEFAULTS	AUTO_MSGOUT_DE
   1817  1.1     fvdl }
   1818  1.1     fvdl 
   1819  1.1     fvdl /*
   1820  1.1     fvdl  * SCSI Status 0
   1821  1.1     fvdl  */
   1822  1.1     fvdl register SSTAT0	{
   1823  1.1     fvdl 	address			0x04B
   1824  1.1     fvdl 	access_mode	RO
   1825  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   1826  1.1     fvdl 	field	TARGET		0x80	/* Board acting as target */
   1827  1.1     fvdl 	field	SELDO		0x40	/* Selection Done */
   1828  1.1     fvdl 	field	SELDI		0x20	/* Board has been selected */
   1829  1.1     fvdl 	field	SELINGO		0x10	/* Selection In Progress */
   1830  1.1     fvdl 	field	IOERR		0x08	/* LVD Tranceiver mode changed */
   1831  1.1     fvdl 	field	OVERRUN		0x04	/* SCSI Offset overrun detected */
   1832  1.1     fvdl 	field	SPIORDY		0x02	/* SCSI PIO Ready */
   1833  1.1     fvdl 	field	ARBDO		0x01	/* Arbitration Done Out */
   1834  1.1     fvdl }
   1835  1.1     fvdl 
   1836  1.1     fvdl /*
   1837  1.1     fvdl  * Clear SCSI Interrupt 0
   1838  1.1     fvdl  * Writing a 1 to a bit clears the associated SCSI Interrupt in SSTAT0.
   1839  1.1     fvdl  */
   1840  1.1     fvdl register CLRSINT0 {
   1841  1.1     fvdl 	address			0x04B
   1842  1.1     fvdl 	access_mode	WO
   1843  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   1844  1.1     fvdl 	field	CLRSELDO	0x40
   1845  1.1     fvdl 	field	CLRSELDI	0x20
   1846  1.1     fvdl 	field	CLRSELINGO	0x10
   1847  1.1     fvdl 	field	CLRIOERR	0x08
   1848  1.1     fvdl 	field	CLROVERRUN	0x04
   1849  1.1     fvdl 	field	CLRSPIORDY	0x02
   1850  1.1     fvdl 	field	CLRARBDO	0x01
   1851  1.1     fvdl }
   1852  1.1     fvdl 
   1853  1.1     fvdl /*
   1854  1.1     fvdl  * SCSI Interrupt Mode 0
   1855  1.1     fvdl  * Setting any bit will enable the corresponding function
   1856  1.1     fvdl  * in SIMODE0 to interrupt via the IRQ pin.
   1857  1.1     fvdl  */
   1858  1.1     fvdl register SIMODE0 {
   1859  1.1     fvdl 	address			0x04B
   1860  1.1     fvdl 	access_mode	RW
   1861  1.1     fvdl 	modes		M_CFG
   1862  1.1     fvdl 	field	ENSELDO		0x40
   1863  1.1     fvdl 	field	ENSELDI		0x20
   1864  1.1     fvdl 	field	ENSELINGO	0x10
   1865  1.1     fvdl 	field	ENIOERR		0x08
   1866  1.1     fvdl 	field	ENOVERRUN	0x04
   1867  1.1     fvdl 	field	ENSPIORDY	0x02
   1868  1.1     fvdl 	field	ENARBDO		0x01
   1869  1.1     fvdl }
   1870  1.1     fvdl 
   1871  1.1     fvdl /*
   1872  1.1     fvdl  * SCSI Status 1
   1873  1.1     fvdl  */
   1874  1.1     fvdl register SSTAT1 {
   1875  1.1     fvdl 	address			0x04C
   1876  1.1     fvdl 	access_mode	RO
   1877  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   1878  1.1     fvdl 	field	SELTO		0x80
   1879  1.1     fvdl 	field	ATNTARG 	0x40
   1880  1.1     fvdl 	field	SCSIRSTI	0x20
   1881  1.1     fvdl 	field	PHASEMIS	0x10
   1882  1.1     fvdl 	field	BUSFREE		0x08
   1883  1.1     fvdl 	field	SCSIPERR	0x04
   1884  1.1     fvdl 	field	STRB2FAST	0x02
   1885  1.1     fvdl 	field	REQINIT		0x01
   1886  1.1     fvdl }
   1887  1.1     fvdl 
   1888  1.1     fvdl /*
   1889  1.1     fvdl  * Clear SCSI Interrupt 1
   1890  1.1     fvdl  * Writing a 1 to a bit clears the associated SCSI Interrupt in SSTAT1.
   1891  1.1     fvdl  */
   1892  1.1     fvdl register CLRSINT1 {
   1893  1.1     fvdl 	address			0x04C
   1894  1.1     fvdl 	access_mode	WO
   1895  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   1896  1.1     fvdl 	field	CLRSELTIMEO	0x80
   1897  1.1     fvdl 	field	CLRATNO		0x40
   1898  1.1     fvdl 	field	CLRSCSIRSTI	0x20
   1899  1.1     fvdl 	field	CLRBUSFREE	0x08
   1900  1.1     fvdl 	field	CLRSCSIPERR	0x04
   1901  1.1     fvdl 	field	CLRSTRB2FAST	0x02
   1902  1.1     fvdl 	field	CLRREQINIT	0x01
   1903  1.1     fvdl }
   1904  1.1     fvdl 
   1905  1.1     fvdl /*
   1906  1.1     fvdl  * SCSI Status 2
   1907  1.1     fvdl  */
   1908  1.1     fvdl register SSTAT2 {
   1909  1.1     fvdl 	address			0x04d
   1910  1.1     fvdl 	access_mode	RO
   1911  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   1912  1.1     fvdl 	field	BUSFREETIME	0xc0 {
   1913  1.1     fvdl 		BUSFREE_LQO	0x40,
   1914  1.1     fvdl 		BUSFREE_DFF0	0x80,
   1915  1.1     fvdl 		BUSFREE_DFF1	0xC0
   1916  1.1     fvdl 	}
   1917  1.1     fvdl 	field	NONPACKREQ	0x20
   1918  1.1     fvdl 	field	EXP_ACTIVE	0x10	/* SCSI Expander Active */
   1919  1.1     fvdl 	field	BSYX		0x08	/* Busy Expander */
   1920  1.1     fvdl 	field	WIDE_RES	0x04	/* Modes 0 and 1 only */
   1921  1.1     fvdl 	field	SDONE		0x02	/* Modes 0 and 1 only */
   1922  1.1     fvdl 	field	DMADONE		0x01	/* Modes 0 and 1 only */
   1923  1.1     fvdl }
   1924  1.1     fvdl 
   1925  1.1     fvdl /*
   1926  1.1     fvdl  * Clear SCSI Interrupt 2
   1927  1.1     fvdl  */
   1928  1.1     fvdl register CLRSINT2 {
   1929  1.1     fvdl 	address			0x04D
   1930  1.1     fvdl 	access_mode	WO
   1931  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   1932  1.1     fvdl 	field	CLRNONPACKREQ	0x20
   1933  1.1     fvdl 	field	CLRWIDE_RES	0x04	/* Modes 0 and 1 only */
   1934  1.1     fvdl 	field	CLRSDONE	0x02	/* Modes 0 and 1 only */
   1935  1.1     fvdl 	field	CLRDMADONE	0x01	/* Modes 0 and 1 only */
   1936  1.1     fvdl }
   1937  1.1     fvdl 
   1938  1.1     fvdl /*
   1939  1.1     fvdl  * SCSI Interrupt Mode 2
   1940  1.1     fvdl  */
   1941  1.1     fvdl register SIMODE2 {
   1942  1.1     fvdl 	address			0x04D
   1943  1.1     fvdl 	access_mode	RW
   1944  1.1     fvdl 	modes		M_CFG
   1945  1.1     fvdl 	field	ENWIDE_RES	0x04
   1946  1.1     fvdl 	field	ENSDONE		0x02
   1947  1.1     fvdl 	field	ENDMADONE	0x01
   1948  1.1     fvdl }
   1949  1.1     fvdl 
   1950  1.1     fvdl /*
   1951  1.1     fvdl  * Physical Error Diagnosis
   1952  1.1     fvdl  */
   1953  1.1     fvdl register PERRDIAG {
   1954  1.1     fvdl 	address			0x04E
   1955  1.1     fvdl 	access_mode	RO
   1956  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   1957  1.1     fvdl 	field	HIZERO		0x80
   1958  1.1     fvdl 	field	HIPERR		0x40
   1959  1.1     fvdl 	field	PREVPHASE	0x20
   1960  1.1     fvdl 	field	PARITYERR	0x10
   1961  1.1     fvdl 	field	AIPERR		0x08
   1962  1.1     fvdl 	field	CRCERR		0x04
   1963  1.1     fvdl 	field	DGFORMERR	0x02
   1964  1.1     fvdl 	field	DTERR		0x01
   1965  1.1     fvdl }
   1966  1.1     fvdl 
   1967  1.1     fvdl /*
   1968  1.1     fvdl  * LQI Manager Current State
   1969  1.1     fvdl  */
   1970  1.1     fvdl register LQISTATE {
   1971  1.1     fvdl 	address			0x04E
   1972  1.1     fvdl 	access_mode	RO
   1973  1.1     fvdl 	modes		M_CFG
   1974  1.1     fvdl }
   1975  1.1     fvdl 
   1976  1.1     fvdl /*
   1977  1.1     fvdl  * SCSI Offset Count
   1978  1.1     fvdl  */
   1979  1.1     fvdl register SOFFCNT {
   1980  1.1     fvdl 	address			0x04F
   1981  1.1     fvdl 	access_mode	RO
   1982  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   1983  1.1     fvdl }
   1984  1.1     fvdl 
   1985  1.1     fvdl /*
   1986  1.1     fvdl  * LQO Manager Current State
   1987  1.1     fvdl  */
   1988  1.1     fvdl register LQOSTATE {
   1989  1.1     fvdl 	address			0x04F
   1990  1.1     fvdl 	access_mode	RO
   1991  1.1     fvdl 	modes		M_CFG
   1992  1.1     fvdl }
   1993  1.1     fvdl 
   1994  1.1     fvdl /*
   1995  1.1     fvdl  * LQI Manager Status
   1996  1.1     fvdl  */
   1997  1.1     fvdl register LQISTAT0 {
   1998  1.1     fvdl 	address			0x050
   1999  1.1     fvdl 	access_mode	RO
   2000  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   2001  1.1     fvdl 	field	LQIATNQAS	0x20
   2002  1.1     fvdl 	field	LQICRCT1	0x10
   2003  1.1     fvdl 	field	LQICRCT2	0x08
   2004  1.1     fvdl 	field	LQIBADLQT	0x04
   2005  1.1     fvdl 	field	LQIATNLQ	0x02
   2006  1.1     fvdl 	field	LQIATNCMD	0x01
   2007  1.1     fvdl }
   2008  1.1     fvdl 
   2009  1.1     fvdl /*
   2010  1.1     fvdl  * Clear LQI Interrupts 0
   2011  1.1     fvdl  */
   2012  1.1     fvdl register CLRLQIINT0 {
   2013  1.1     fvdl 	address			0x050
   2014  1.1     fvdl 	access_mode	WO
   2015  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   2016  1.1     fvdl 	field	CLRLQIATNQAS	0x20
   2017  1.1     fvdl 	field	CLRLQICRCT1	0x10
   2018  1.1     fvdl 	field	CLRLQICRCT2	0x08
   2019  1.1     fvdl 	field	CLRLQIBADLQT	0x04
   2020  1.1     fvdl 	field	CLRLQIATNLQ	0x02
   2021  1.1     fvdl 	field	CLRLQIATNCMD	0x01
   2022  1.1     fvdl }
   2023  1.1     fvdl 
   2024  1.1     fvdl /*
   2025  1.1     fvdl  * LQI Manager Interrupt Mode 0
   2026  1.1     fvdl  */
   2027  1.1     fvdl register LQIMODE0 {
   2028  1.1     fvdl 	address			0x050
   2029  1.1     fvdl 	access_mode	RW
   2030  1.1     fvdl 	modes		M_CFG
   2031  1.1     fvdl 	field	ENLQIATNQASK	0x20
   2032  1.1     fvdl 	field	ENLQICRCT1	0x10
   2033  1.1     fvdl 	field	ENLQICRCT2	0x08
   2034  1.1     fvdl 	field	ENLQIBADLQT	0x04
   2035  1.1     fvdl 	field	ENLQIATNLQ	0x02
   2036  1.1     fvdl 	field	ENLQIATNCMD	0x01
   2037  1.1     fvdl }
   2038  1.1     fvdl 
   2039  1.1     fvdl /*
   2040  1.1     fvdl  * LQI Manager Status 1
   2041  1.1     fvdl  */
   2042  1.1     fvdl register LQISTAT1 {
   2043  1.1     fvdl 	address			0x051
   2044  1.1     fvdl 	access_mode	RO
   2045  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   2046  1.1     fvdl 	field	LQIPHASE_LQ	0x80
   2047  1.1     fvdl 	field	LQIPHASE_NLQ	0x40
   2048  1.1     fvdl 	field	LQIABORT	0x20
   2049  1.1     fvdl 	field	LQICRCI_LQ	0x10
   2050  1.1     fvdl 	field	LQICRCI_NLQ	0x08
   2051  1.1     fvdl 	field	LQIBADLQI	0x04
   2052  1.1     fvdl 	field	LQIOVERI_LQ	0x02
   2053  1.1     fvdl 	field	LQIOVERI_NLQ	0x01
   2054  1.1     fvdl }
   2055  1.1     fvdl 
   2056  1.1     fvdl /*
   2057  1.1     fvdl  * Clear LQI Manager Interrupts1
   2058  1.1     fvdl  */
   2059  1.1     fvdl register CLRLQIINT1 {
   2060  1.1     fvdl 	address			0x051
   2061  1.1     fvdl 	access_mode	WO
   2062  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   2063  1.1     fvdl 	field	CLRLQIPHASE_LQ	0x80
   2064  1.1     fvdl 	field	CLRLQIPHASE_NLQ	0x40
   2065  1.1     fvdl 	field	CLRLIQABORT	0x20
   2066  1.1     fvdl 	field	CLRLQICRCI_LQ	0x10
   2067  1.1     fvdl 	field	CLRLQICRCI_NLQ	0x08
   2068  1.1     fvdl 	field	CLRLQIBADLQI	0x04
   2069  1.1     fvdl 	field	CLRLQIOVERI_LQ	0x02
   2070  1.1     fvdl 	field	CLRLQIOVERI_NLQ	0x01
   2071  1.1     fvdl }
   2072  1.1     fvdl 
   2073  1.1     fvdl /*
   2074  1.1     fvdl  * LQI Manager Interrupt Mode 1
   2075  1.1     fvdl  */
   2076  1.1     fvdl register LQIMODE1 {
   2077  1.1     fvdl 	address			0x051
   2078  1.1     fvdl 	access_mode	RW
   2079  1.1     fvdl 	modes		M_CFG
   2080  1.1     fvdl 	field	ENLQIPHASE_LQ	0x80	/* LQIPHASE1 */
   2081  1.1     fvdl 	field	ENLQIPHASE_NLQ	0x40	/* LQIPHASE2 */
   2082  1.1     fvdl 	field	ENLIQABORT	0x20
   2083  1.1     fvdl 	field	ENLQICRCI_LQ	0x10	/* LQICRCI1 */
   2084  1.1     fvdl 	field	ENLQICRCI_NLQ	0x08	/* LQICRCI2 */
   2085  1.1     fvdl 	field	ENLQIBADLQI	0x04
   2086  1.1     fvdl 	field	ENLQIOVERI_LQ	0x02	/* LQIOVERI1 */
   2087  1.1     fvdl 	field	ENLQIOVERI_NLQ	0x01	/* LQIOVERI2 */
   2088  1.1     fvdl }
   2089  1.1     fvdl 
   2090  1.1     fvdl /*
   2091  1.1     fvdl  * LQI Manager Status 2
   2092  1.1     fvdl  */
   2093  1.1     fvdl register LQISTAT2 {
   2094  1.1     fvdl 	address			0x052
   2095  1.1     fvdl 	access_mode	RO
   2096  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   2097  1.1     fvdl 	field	PACKETIZED	0x80
   2098  1.1     fvdl 	field	LQIPHASE_OUTPKT	0x40
   2099  1.1     fvdl 	field	LQIWORKONLQ	0x20
   2100  1.1     fvdl 	field	LQIWAITFIFO	0x10
   2101  1.1     fvdl 	field	LQISTOPPKT	0x08
   2102  1.1     fvdl 	field	LQISTOPLQ	0x04
   2103  1.1     fvdl 	field	LQISTOPCMD	0x02
   2104  1.1     fvdl 	field	LQIGSAVAIL	0x01
   2105  1.1     fvdl }
   2106  1.1     fvdl 
   2107  1.1     fvdl /*
   2108  1.1     fvdl  * SCSI Status 3
   2109  1.1     fvdl  */
   2110  1.1     fvdl register SSTAT3 {
   2111  1.1     fvdl 	address			0x053
   2112  1.1     fvdl 	access_mode	RO
   2113  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   2114  1.1     fvdl 	field	NTRAMPERR	0x02
   2115  1.1     fvdl 	field	OSRAMPERR	0x01
   2116  1.1     fvdl }
   2117  1.1     fvdl 
   2118  1.1     fvdl /*
   2119  1.1     fvdl  * Clear SCSI Status 3
   2120  1.1     fvdl  */
   2121  1.1     fvdl register CLRSINT3 {
   2122  1.1     fvdl 	address			0x053
   2123  1.1     fvdl 	access_mode	WO
   2124  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   2125  1.1     fvdl 	field	CLRNTRAMPERR	0x02
   2126  1.1     fvdl 	field	CLROSRAMPERR	0x01
   2127  1.1     fvdl }
   2128  1.1     fvdl 
   2129  1.1     fvdl /*
   2130  1.1     fvdl  * SCSI Interrupt Mode 3
   2131  1.1     fvdl  */
   2132  1.1     fvdl register SIMODE3 {
   2133  1.1     fvdl 	address			0x053
   2134  1.1     fvdl 	access_mode	RW
   2135  1.1     fvdl 	modes		M_CFG
   2136  1.1     fvdl 	field	ENNTRAMPERR	0x02
   2137  1.1     fvdl 	field	ENOSRAMPERR	0x01
   2138  1.1     fvdl }
   2139  1.1     fvdl 
   2140  1.1     fvdl /*
   2141  1.1     fvdl  * LQO Manager Status 0
   2142  1.1     fvdl  */
   2143  1.1     fvdl register LQOSTAT0 {
   2144  1.1     fvdl 	address			0x054
   2145  1.1     fvdl 	access_mode	RO
   2146  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   2147  1.1     fvdl 	field	LQOTARGSCBPERR	0x10
   2148  1.1     fvdl 	field	LQOSTOPT2	0x08
   2149  1.1     fvdl 	field	LQOATNLQ	0x04
   2150  1.1     fvdl 	field	LQOATNPKT	0x02
   2151  1.1     fvdl 	field	LQOTCRC		0x01
   2152  1.1     fvdl }
   2153  1.1     fvdl 
   2154  1.1     fvdl /*
   2155  1.1     fvdl  * Clear LQO Manager interrupt 0
   2156  1.1     fvdl  */
   2157  1.1     fvdl register CLRLQOINT0 {
   2158  1.1     fvdl 	address			0x054
   2159  1.1     fvdl 	access_mode	WO
   2160  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   2161  1.1     fvdl 	field	CLRLQOTARGSCBPERR	0x10
   2162  1.1     fvdl 	field	CLRLQOSTOPT2		0x08
   2163  1.1     fvdl 	field	CLRLQOATNLQ		0x04
   2164  1.1     fvdl 	field	CLRLQOATNPKT		0x02
   2165  1.1     fvdl 	field	CLRLQOTCRC		0x01
   2166  1.1     fvdl }
   2167  1.1     fvdl 
   2168  1.1     fvdl /*
   2169  1.1     fvdl  * LQO Manager Interrupt Mode 0
   2170  1.1     fvdl  */
   2171  1.1     fvdl register LQOMODE0 {
   2172  1.1     fvdl 	address			0x054
   2173  1.1     fvdl 	access_mode	RW
   2174  1.1     fvdl 	modes		M_CFG
   2175  1.1     fvdl 	field	ENLQOTARGSCBPERR	0x10
   2176  1.1     fvdl 	field	ENLQOSTOPT2		0x08
   2177  1.1     fvdl 	field	ENLQOATNLQ		0x04
   2178  1.1     fvdl 	field	ENLQOATNPKT		0x02
   2179  1.1     fvdl 	field	ENLQOTCRC		0x01
   2180  1.1     fvdl }
   2181  1.1     fvdl 
   2182  1.1     fvdl /*
   2183  1.1     fvdl  * LQO Manager Status 1
   2184  1.1     fvdl  */
   2185  1.1     fvdl register LQOSTAT1 {
   2186  1.1     fvdl 	address			0x055
   2187  1.1     fvdl 	access_mode	RO
   2188  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   2189  1.1     fvdl 	field	LQOINITSCBPERR	0x10
   2190  1.1     fvdl 	field	LQOSTOPI2	0x08
   2191  1.1     fvdl 	field	LQOBADQAS	0x04
   2192  1.1     fvdl 	field	LQOBUSFREE	0x02
   2193  1.1     fvdl 	field	LQOPHACHGINPKT	0x01
   2194  1.1     fvdl }
   2195  1.1     fvdl 
   2196  1.1     fvdl /*
   2197  1.1     fvdl  * Clear LOQ Interrupt 1
   2198  1.1     fvdl  */
   2199  1.1     fvdl register CLRLQOINT1 {
   2200  1.1     fvdl 	address			0x055
   2201  1.1     fvdl 	access_mode	WO
   2202  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   2203  1.1     fvdl 	field	CLRLQOINITSCBPERR	0x10
   2204  1.1     fvdl 	field	CLRLQOSTOPI2		0x08
   2205  1.1     fvdl 	field	CLRLQOBADQAS		0x04
   2206  1.1     fvdl 	field	CLRLQOBUSFREE		0x02
   2207  1.1     fvdl 	field	CLRLQOPHACHGINPKT	0x01
   2208  1.1     fvdl }
   2209  1.1     fvdl 
   2210  1.1     fvdl /*
   2211  1.1     fvdl  * LQO Manager Interrupt Mode 1
   2212  1.1     fvdl  */
   2213  1.1     fvdl register LQOMODE1 {
   2214  1.1     fvdl 	address			0x055
   2215  1.1     fvdl 	access_mode	RW
   2216  1.1     fvdl 	modes		M_CFG
   2217  1.1     fvdl 	field	ENLQOINITSCBPERR	0x10
   2218  1.1     fvdl 	field	ENLQOSTOPI2		0x08
   2219  1.1     fvdl 	field	ENLQOBADQAS		0x04
   2220  1.1     fvdl 	field	ENLQOBUSFREE		0x02
   2221  1.1     fvdl 	field	ENLQOPHACHGINPKT	0x01
   2222  1.1     fvdl }
   2223  1.1     fvdl 
   2224  1.1     fvdl /*
   2225  1.1     fvdl  * LQO Manager Status 2
   2226  1.1     fvdl  */
   2227  1.1     fvdl register LQOSTAT2 {
   2228  1.1     fvdl 	address			0x056
   2229  1.1     fvdl 	access_mode	RO
   2230  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   2231  1.1     fvdl 	field	LQOPKT		0xE0
   2232  1.1     fvdl 	field	LQOWAITFIFO	0x10
   2233  1.1     fvdl 	field	LQOPHACHGOUTPKT	0x02	/* outside of packet boundaries. */
   2234  1.1     fvdl 	field	LQOSTOP0	0x01	/* Stopped after sending all packets */
   2235  1.1     fvdl }
   2236  1.1     fvdl 
   2237  1.1     fvdl /*
   2238  1.1     fvdl  * Output Synchronizer Space Count
   2239  1.1     fvdl  */
   2240  1.1     fvdl register OS_SPACE_CNT {
   2241  1.1     fvdl 	address			0x056
   2242  1.1     fvdl 	access_mode	RO
   2243  1.1     fvdl 	modes		M_CFG
   2244  1.1     fvdl }
   2245  1.1     fvdl 
   2246  1.1     fvdl /*
   2247  1.1     fvdl  * SCSI Interrupt Mode 1
   2248  1.1     fvdl  * Setting any bit will enable the corresponding function
   2249  1.1     fvdl  * in SIMODE1 to interrupt via the IRQ pin.
   2250  1.1     fvdl  */
   2251  1.1     fvdl register SIMODE1 {
   2252  1.1     fvdl 	address			0x057
   2253  1.1     fvdl 	access_mode	RW
   2254  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   2255  1.1     fvdl 	field	ENSELTIMO	0x80
   2256  1.1     fvdl 	field	ENATNTARG	0x40
   2257  1.1     fvdl 	field	ENSCSIRST	0x20
   2258  1.1     fvdl 	field	ENPHASEMIS	0x10
   2259  1.1     fvdl 	field	ENBUSFREE	0x08
   2260  1.1     fvdl 	field	ENSCSIPERR	0x04
   2261  1.1     fvdl 	field	ENSTRB2FAST	0x02
   2262  1.1     fvdl 	field	ENREQINIT	0x01
   2263  1.1     fvdl }
   2264  1.1     fvdl 
   2265  1.1     fvdl /*
   2266  1.1     fvdl  * Good Status FIFO
   2267  1.1     fvdl  */
   2268  1.1     fvdl register GSFIFO {
   2269  1.1     fvdl 	address			0x058
   2270  1.1     fvdl 	access_mode	RO
   2271  1.1     fvdl 	size		2
   2272  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_SCSI
   2273  1.1     fvdl }
   2274  1.1     fvdl 
   2275  1.1     fvdl /*
   2276  1.1     fvdl  * Data FIFO SCSI Transfer Control
   2277  1.1     fvdl  */
   2278  1.1     fvdl register DFFSXFRCTL {
   2279  1.1     fvdl 	address			0x05A
   2280  1.1     fvdl 	access_mode	RW
   2281  1.1     fvdl 	modes		M_DFF0, M_DFF1
   2282  1.1     fvdl 	field	DFFBITBUCKET	0x08
   2283  1.1     fvdl 	field	CLRSHCNT	0x04
   2284  1.1     fvdl 	field	CLRCHN		0x02
   2285  1.1     fvdl 	field	RSTCHN		0x01
   2286  1.1     fvdl }
   2287  1.1     fvdl 
   2288  1.1     fvdl /*
   2289  1.1     fvdl  * Next SCSI Control Block
   2290  1.1     fvdl  */
   2291  1.1     fvdl register NEXTSCB {
   2292  1.1     fvdl 	address			0x05A
   2293  1.1     fvdl 	access_mode	RW
   2294  1.1     fvdl 	size		2
   2295  1.1     fvdl 	modes		M_SCSI
   2296  1.1     fvdl }
   2297  1.1     fvdl 
   2298  1.1     fvdl /* Rev B only. */
   2299  1.1     fvdl register LQOSCSCTL {
   2300  1.1     fvdl 	address			0x05A
   2301  1.1     fvdl 	access_mode	RW
   2302  1.1     fvdl 	size		1
   2303  1.1     fvdl 	modes		M_CFG
   2304  1.1     fvdl 	field		LQOH2A_VERSION	0x80
   2305  1.1     fvdl 	field		LQONOCHKOVER	0x01
   2306  1.1     fvdl }
   2307  1.1     fvdl 
   2308  1.1     fvdl /*
   2309  1.1     fvdl  * SEQ Interrupts
   2310  1.1     fvdl  */
   2311  1.1     fvdl register SEQINTSRC {
   2312  1.1     fvdl 	address			0x05B
   2313  1.1     fvdl 	access_mode	RO
   2314  1.1     fvdl 	modes		M_DFF0, M_DFF1
   2315  1.1     fvdl 	field	CTXTDONE	0x40
   2316  1.1     fvdl 	field	SAVEPTRS	0x20
   2317  1.1     fvdl 	field	CFG4DATA	0x10
   2318  1.1     fvdl 	field	CFG4ISTAT	0x08
   2319  1.1     fvdl 	field	CFG4TSTAT	0x04
   2320  1.1     fvdl 	field	CFG4ICMD	0x02
   2321  1.1     fvdl 	field	CFG4TCMD	0x01
   2322  1.1     fvdl }
   2323  1.1     fvdl 
   2324  1.1     fvdl /*
   2325  1.1     fvdl  * Clear Arp Interrupts
   2326  1.1     fvdl  */
   2327  1.1     fvdl register CLRSEQINTSRC {
   2328  1.1     fvdl 	address			0x05B
   2329  1.1     fvdl 	access_mode	WO
   2330  1.1     fvdl 	modes		M_DFF0, M_DFF1
   2331  1.1     fvdl 	field	CLRCTXTDONE	0x40
   2332  1.1     fvdl 	field	CLRSAVEPTRS	0x20
   2333  1.1     fvdl 	field	CLRCFG4DATA	0x10
   2334  1.1     fvdl 	field	CLRCFG4ISTAT	0x08
   2335  1.1     fvdl 	field	CLRCFG4TSTAT	0x04
   2336  1.1     fvdl 	field	CLRCFG4ICMD	0x02
   2337  1.1     fvdl 	field	CLRCFG4TCMD	0x01
   2338  1.1     fvdl }
   2339  1.1     fvdl 
   2340  1.1     fvdl /*
   2341  1.1     fvdl  * SEQ Interrupt Enabled (Shared)
   2342  1.1     fvdl  */
   2343  1.1     fvdl register SEQIMODE {
   2344  1.1     fvdl 	address			0x05C
   2345  1.1     fvdl 	access_mode	RW
   2346  1.1     fvdl 	modes		M_DFF0, M_DFF1
   2347  1.1     fvdl 	field	ENCTXTDONE	0x40
   2348  1.1     fvdl 	field	ENSAVEPTRS	0x20
   2349  1.1     fvdl 	field	ENCFG4DATA	0x10
   2350  1.1     fvdl 	field	ENCFG4ISTAT	0x08
   2351  1.1     fvdl 	field	ENCFG4TSTAT	0x04
   2352  1.1     fvdl 	field	ENCFG4ICMD	0x02
   2353  1.1     fvdl 	field	ENCFG4TCMD	0x01
   2354  1.1     fvdl }
   2355  1.1     fvdl 
   2356  1.1     fvdl /*
   2357  1.1     fvdl  * Current SCSI Control Block
   2358  1.1     fvdl  */
   2359  1.1     fvdl register CURRSCB {
   2360  1.1     fvdl 	address			0x05C
   2361  1.1     fvdl 	access_mode	RW
   2362  1.1     fvdl 	size		2
   2363  1.1     fvdl 	modes		M_SCSI
   2364  1.1     fvdl }
   2365  1.1     fvdl 
   2366  1.1     fvdl /*
   2367  1.1     fvdl  * Data FIFO Status
   2368  1.1     fvdl  */
   2369  1.1     fvdl register MDFFSTAT {
   2370  1.1     fvdl 	address			0x05D
   2371  1.1     fvdl 	access_mode	RO
   2372  1.1     fvdl 	modes		M_DFF0, M_DFF1
   2373  1.1     fvdl 	field	SHCNTNEGATIVE	0x40 /* Rev B or higher */
   2374  1.1     fvdl 	field	SHCNTMINUS1	0x20 /* Rev B or higher */
   2375  1.1     fvdl 	field	LASTSDONE	0x10
   2376  1.1     fvdl 	field	SHVALID		0x08
   2377  1.1     fvdl 	field	DLZERO		0x04 /* FIFO data ends on packet boundary. */
   2378  1.1     fvdl 	field	DATAINFIFO	0x02
   2379  1.1     fvdl 	field	FIFOFREE	0x01
   2380  1.1     fvdl }
   2381  1.1     fvdl 
   2382  1.1     fvdl /*
   2383  1.1     fvdl  * CRC Control
   2384  1.1     fvdl  */
   2385  1.1     fvdl register CRCCONTROL {
   2386  1.1     fvdl 	address			0x05d
   2387  1.1     fvdl 	access_mode	RW
   2388  1.1     fvdl 	modes		M_CFG
   2389  1.1     fvdl 	field	CRCVALCHKEN		0x40
   2390  1.1     fvdl }
   2391  1.1     fvdl 
   2392  1.1     fvdl /*
   2393  1.1     fvdl  * SCSI Test Control
   2394  1.1     fvdl  */
   2395  1.1     fvdl register SCSITEST {
   2396  1.1     fvdl 	address			0x05E
   2397  1.1     fvdl 	access_mode	RW
   2398  1.1     fvdl 	modes		M_CFG
   2399  1.1     fvdl 	field	CNTRTEST	0x08
   2400  1.1     fvdl 	field	SEL_TXPLL_DEBUG	0x04
   2401  1.1     fvdl }
   2402  1.1     fvdl 
   2403  1.1     fvdl /*
   2404  1.1     fvdl  * Data FIFO Queue Tag
   2405  1.1     fvdl  */
   2406  1.1     fvdl register DFFTAG {
   2407  1.1     fvdl 	address			0x05E
   2408  1.1     fvdl 	access_mode	RW
   2409  1.1     fvdl 	size		2
   2410  1.1     fvdl 	modes		M_DFF0, M_DFF1
   2411  1.1     fvdl }
   2412  1.1     fvdl 
   2413  1.1     fvdl /*
   2414  1.1     fvdl  * Last SCSI Control Block
   2415  1.1     fvdl  */
   2416  1.1     fvdl register LASTSCB {
   2417  1.1     fvdl 	address			0x05E
   2418  1.1     fvdl 	access_mode	RW
   2419  1.1     fvdl 	size		2
   2420  1.1     fvdl 	modes		M_SCSI
   2421  1.1     fvdl }
   2422  1.1     fvdl 
   2423  1.1     fvdl /*
   2424  1.1     fvdl  * SCSI I/O Cell Power-down Control
   2425  1.1     fvdl  */
   2426  1.1     fvdl register IOPDNCTL {
   2427  1.1     fvdl 	address			0x05F
   2428  1.1     fvdl 	access_mode	RW
   2429  1.1     fvdl 	modes		M_CFG
   2430  1.1     fvdl 	field	DISABLE_OE	0x80
   2431  1.1     fvdl 	field	PDN_IDIST	0x04
   2432  1.1     fvdl 	field	PDN_DIFFSENSE	0x01
   2433  1.1     fvdl }
   2434  1.1     fvdl 
   2435  1.1     fvdl /*
   2436  1.1     fvdl  * Shaddow Host Address.
   2437  1.1     fvdl  */
   2438  1.1     fvdl register SHADDR {
   2439  1.1     fvdl 	address			0x060
   2440  1.1     fvdl 	access_mode	RO
   2441  1.1     fvdl 	size		8
   2442  1.1     fvdl 	modes		M_DFF0, M_DFF1
   2443  1.1     fvdl }
   2444  1.1     fvdl 
   2445  1.1     fvdl /*
   2446  1.1     fvdl  * Data Group CRC Interval.
   2447  1.1     fvdl  */
   2448  1.1     fvdl register DGRPCRCI {
   2449  1.1     fvdl 	address			0x060
   2450  1.1     fvdl 	access_mode	RW
   2451  1.1     fvdl 	size		2
   2452  1.1     fvdl 	modes		M_CFG
   2453  1.1     fvdl }
   2454  1.1     fvdl 
   2455  1.1     fvdl /*
   2456  1.1     fvdl  * Data Transfer Negotiation Address
   2457  1.1     fvdl  */
   2458  1.1     fvdl register NEGOADDR {
   2459  1.1     fvdl 	address			0x060
   2460  1.1     fvdl 	access_mode	RW
   2461  1.1     fvdl 	modes		M_SCSI
   2462  1.1     fvdl }
   2463  1.1     fvdl 
   2464  1.1     fvdl /*
   2465  1.1     fvdl  * Data Transfer Negotiation Data - Period Byte
   2466  1.1     fvdl  */
   2467  1.1     fvdl register NEGPERIOD {
   2468  1.1     fvdl 	address			0x061
   2469  1.1     fvdl 	access_mode	RW
   2470  1.1     fvdl 	modes		M_SCSI
   2471  1.1     fvdl }
   2472  1.1     fvdl 
   2473  1.1     fvdl /*
   2474  1.1     fvdl  * Packetized CRC Interval
   2475  1.1     fvdl  */
   2476  1.1     fvdl register PACKCRCI {
   2477  1.1     fvdl 	address			0x062
   2478  1.1     fvdl 	access_mode	RW
   2479  1.1     fvdl 	size		2
   2480  1.1     fvdl 	modes		M_CFG
   2481  1.1     fvdl }
   2482  1.1     fvdl 
   2483  1.1     fvdl /*
   2484  1.1     fvdl  * Data Transfer Negotiation Data - Offset Byte
   2485  1.1     fvdl  */
   2486  1.1     fvdl register NEGOFFSET {
   2487  1.1     fvdl 	address			0x062
   2488  1.1     fvdl 	access_mode	RW
   2489  1.1     fvdl 	modes		M_SCSI
   2490  1.1     fvdl }
   2491  1.1     fvdl 
   2492  1.1     fvdl /*
   2493  1.1     fvdl  * Data Transfer Negotiation Data - PPR Options
   2494  1.1     fvdl  */
   2495  1.1     fvdl register NEGPPROPTS {
   2496  1.1     fvdl 	address			0x063
   2497  1.1     fvdl 	access_mode	RW
   2498  1.1     fvdl 	modes		M_SCSI
   2499  1.1     fvdl 	field	PPROPT_PACE	0x08
   2500  1.1     fvdl 	field	PPROPT_QAS	0x04
   2501  1.1     fvdl 	field	PPROPT_DT	0x02
   2502  1.1     fvdl 	field	PPROPT_IUT	0x01
   2503  1.1     fvdl }
   2504  1.1     fvdl 
   2505  1.1     fvdl /*
   2506  1.1     fvdl  * Data Transfer Negotiation Data -  Connection Options
   2507  1.1     fvdl  */
   2508  1.1     fvdl register NEGCONOPTS {
   2509  1.1     fvdl 	address			0x064
   2510  1.1     fvdl 	access_mode	RW
   2511  1.1     fvdl 	modes		M_SCSI
   2512  1.1     fvdl 	field	ENSNAPSHOT	0x40
   2513  1.1     fvdl 	field	RTI_WRTDIS	0x20
   2514  1.1     fvdl 	field	RTI_OVRDTRN	0x10
   2515  1.1     fvdl 	field	ENSLOWCRC	0x08
   2516  1.1     fvdl 	field	ENAUTOATNI	0x04
   2517  1.1     fvdl 	field	ENAUTOATNO	0x02
   2518  1.1     fvdl 	field	WIDEXFER	0x01
   2519  1.1     fvdl }
   2520  1.1     fvdl 
   2521  1.1     fvdl /*
   2522  1.1     fvdl  * Negotiation Table Annex Column Index.
   2523  1.1     fvdl  */
   2524  1.1     fvdl register ANNEXCOL {
   2525  1.1     fvdl 	address			0x065
   2526  1.1     fvdl 	access_mode	RW
   2527  1.1     fvdl 	modes		M_SCSI
   2528  1.1     fvdl }
   2529  1.1     fvdl 
   2530  1.1     fvdl register SCSCHKN {
   2531  1.1     fvdl 	address			0x066
   2532  1.1     fvdl 	access_mode	RW
   2533  1.1     fvdl 	modes		M_CFG
   2534  1.1     fvdl 	field	STSELSKIDDIS	0x40
   2535  1.1     fvdl 	field	CURRFIFODEF	0x20
   2536  1.1     fvdl 	field	WIDERESEN	0x10
   2537  1.1     fvdl 	field	SDONEMSKDIS	0x08
   2538  1.1     fvdl 	field	DFFACTCLR	0x04
   2539  1.1     fvdl 	field	SHVALIDSTDIS	0x02
   2540  1.1     fvdl 	field	LSTSGCLRDIS	0x01
   2541  1.1     fvdl }
   2542  1.1     fvdl 
   2543  1.1     fvdl const AHD_ANNEXCOL_PER_DEV0	4
   2544  1.1     fvdl const AHD_NUM_PER_DEV_ANNEXCOLS	4
   2545  1.1     fvdl const AHD_ANNEXCOL_PRECOMP_SLEW	4
   2546  1.1     fvdl const	AHD_PRECOMP_MASK	0x07
   2547  1.1     fvdl const	AHD_PRECOMP_SHIFT	0
   2548  1.1     fvdl const	AHD_PRECOMP_CUTBACK_17	0x04
   2549  1.1     fvdl const	AHD_PRECOMP_CUTBACK_29	0x06
   2550  1.1     fvdl const	AHD_PRECOMP_CUTBACK_37	0x07
   2551  1.1     fvdl const	AHD_SLEWRATE_MASK	0x78
   2552  1.1     fvdl const	AHD_SLEWRATE_SHIFT	3
   2553  1.1     fvdl /*
   2554  1.2     fvdl  * Rev A has only a single bit (high bit of field) of slew adjustment.
   2555  1.2     fvdl  * Rev B has 4 bits.  The current default happens to be the same for both.
   2556  1.1     fvdl  */
   2557  1.2     fvdl const	AHD_SLEWRATE_DEF_REVA	0x08
   2558  1.1     fvdl const	AHD_SLEWRATE_DEF_REVB	0x08
   2559  1.1     fvdl 
   2560  1.1     fvdl /* Rev A does not have any amplitude setting. */
   2561  1.1     fvdl const AHD_ANNEXCOL_AMPLITUDE	6
   2562  1.1     fvdl const	AHD_AMPLITUDE_MASK	0x7
   2563  1.1     fvdl const	AHD_AMPLITUDE_SHIFT	0
   2564  1.1     fvdl const	AHD_AMPLITUDE_DEF	0x7
   2565  1.1     fvdl 
   2566  1.1     fvdl /*
   2567  1.1     fvdl  * Negotiation Table Annex Data Port.
   2568  1.1     fvdl  */
   2569  1.1     fvdl register ANNEXDAT {
   2570  1.1     fvdl 	address			0x066
   2571  1.1     fvdl 	access_mode	RW
   2572  1.1     fvdl 	modes		M_SCSI
   2573  1.1     fvdl }
   2574  1.1     fvdl 
   2575  1.1     fvdl /*
   2576  1.1     fvdl  * Initiator's Own Id.
   2577  1.1     fvdl  * The SCSI ID to use for Selection Out and seen during a reselection..
   2578  1.1     fvdl  */
   2579  1.1     fvdl register IOWNID {
   2580  1.1     fvdl 	address			0x067
   2581  1.1     fvdl 	access_mode	RW
   2582  1.1     fvdl 	modes		M_SCSI
   2583  1.1     fvdl }
   2584  1.1     fvdl 
   2585  1.1     fvdl /*
   2586  1.1     fvdl  * 960MHz Phase-Locked Loop Control 0
   2587  1.1     fvdl  */
   2588  1.1     fvdl register PLL960CTL0 {
   2589  1.1     fvdl 	address			0x068
   2590  1.1     fvdl 	access_mode	RW
   2591  1.1     fvdl 	modes		M_CFG
   2592  1.1     fvdl 	field	PLL_VCOSEL	0x80
   2593  1.1     fvdl 	field	PLL_PWDN	0x40
   2594  1.1     fvdl 	field	PLL_NS		0x30
   2595  1.1     fvdl 	field	PLL_ENLUD	0x08
   2596  1.1     fvdl 	field	PLL_ENLPF	0x04
   2597  1.1     fvdl 	field	PLL_DLPF	0x02
   2598  1.1     fvdl 	field	PLL_ENFBM	0x01
   2599  1.1     fvdl }
   2600  1.1     fvdl 
   2601  1.1     fvdl /*
   2602  1.1     fvdl  * Target Own Id
   2603  1.1     fvdl  */
   2604  1.1     fvdl register TOWNID {
   2605  1.1     fvdl 	address			0x069
   2606  1.1     fvdl 	access_mode	RW
   2607  1.1     fvdl 	modes		M_SCSI
   2608  1.1     fvdl }
   2609  1.1     fvdl 
   2610  1.1     fvdl /*
   2611  1.1     fvdl  * 960MHz Phase-Locked Loop Control 1
   2612  1.1     fvdl  */
   2613  1.1     fvdl register PLL960CTL1 {
   2614  1.1     fvdl 	address			0x069
   2615  1.1     fvdl 	access_mode	RW
   2616  1.1     fvdl 	modes		M_CFG
   2617  1.1     fvdl 	field	PLL_CNTEN	0x80
   2618  1.1     fvdl 	field	PLL_CNTCLR	0x40
   2619  1.1     fvdl 	field	PLL_RST		0x01
   2620  1.1     fvdl }
   2621  1.1     fvdl 
   2622  1.1     fvdl /*
   2623  1.1     fvdl  * Expander Signature
   2624  1.1     fvdl  */
   2625  1.1     fvdl register XSIG {
   2626  1.1     fvdl 	address			0x06A
   2627  1.1     fvdl 	access_mode	RW
   2628  1.1     fvdl 	modes		M_SCSI
   2629  1.1     fvdl }
   2630  1.1     fvdl 
   2631  1.1     fvdl /*
   2632  1.1     fvdl  * Shadow Byte Count
   2633  1.1     fvdl  */
   2634  1.1     fvdl register SHCNT {
   2635  1.1     fvdl 	address			0x068
   2636  1.1     fvdl 	access_mode	RW
   2637  1.1     fvdl 	size		3
   2638  1.1     fvdl 	modes		M_DFF0, M_DFF1
   2639  1.1     fvdl }
   2640  1.1     fvdl 
   2641  1.1     fvdl /*
   2642  1.1     fvdl  * Selection Out ID
   2643  1.1     fvdl  */
   2644  1.1     fvdl register SELOID {
   2645  1.1     fvdl 	address			0x06B
   2646  1.1     fvdl 	access_mode	RW
   2647  1.1     fvdl 	modes		M_SCSI
   2648  1.1     fvdl }
   2649  1.1     fvdl 
   2650  1.1     fvdl /*
   2651  1.1     fvdl  * 960-MHz Phase-Locked Loop Test Count
   2652  1.1     fvdl  */
   2653  1.1     fvdl register PLL960CNT0 {
   2654  1.1     fvdl 	address			0x06A
   2655  1.1     fvdl 	access_mode	RO
   2656  1.1     fvdl 	size		2
   2657  1.1     fvdl 	modes		M_CFG
   2658  1.1     fvdl }
   2659  1.1     fvdl 
   2660  1.1     fvdl /*
   2661  1.1     fvdl  * 400-MHz Phase-Locked Loop Control 0
   2662  1.1     fvdl  */
   2663  1.1     fvdl register PLL400CTL0 {
   2664  1.1     fvdl 	address			0x06C
   2665  1.1     fvdl 	access_mode	RW
   2666  1.1     fvdl 	modes		M_CFG
   2667  1.1     fvdl 	field	PLL_VCOSEL	0x80
   2668  1.1     fvdl 	field	PLL_PWDN	0x40
   2669  1.1     fvdl 	field	PLL_NS		0x30
   2670  1.1     fvdl 	field	PLL_ENLUD	0x08
   2671  1.1     fvdl 	field	PLL_ENLPF	0x04
   2672  1.1     fvdl 	field	PLL_DLPF	0x02
   2673  1.1     fvdl 	field	PLL_ENFBM	0x01
   2674  1.1     fvdl }
   2675  1.1     fvdl 
   2676  1.1     fvdl /*
   2677  1.1     fvdl  * Arbitration Fairness
   2678  1.1     fvdl  */
   2679  1.1     fvdl register FAIRNESS {
   2680  1.1     fvdl 	address			0x06C
   2681  1.1     fvdl 	access_mode	RW
   2682  1.1     fvdl 	size		2
   2683  1.1     fvdl 	modes		M_SCSI
   2684  1.1     fvdl }
   2685  1.1     fvdl 
   2686  1.1     fvdl /*
   2687  1.1     fvdl  * 400-MHz Phase-Locked Loop Control 1
   2688  1.1     fvdl  */
   2689  1.1     fvdl register PLL400CTL1 {
   2690  1.1     fvdl 	address			0x06D
   2691  1.1     fvdl 	access_mode	RW
   2692  1.1     fvdl 	modes		M_CFG
   2693  1.1     fvdl 	field	PLL_CNTEN	0x80
   2694  1.1     fvdl 	field	PLL_CNTCLR	0x40
   2695  1.1     fvdl 	field	PLL_RST		0x01
   2696  1.1     fvdl }
   2697  1.1     fvdl 
   2698  1.1     fvdl /*
   2699  1.1     fvdl  * Arbitration Unfairness
   2700  1.1     fvdl  */
   2701  1.1     fvdl register UNFAIRNESS {
   2702  1.1     fvdl 	address			0x06E
   2703  1.1     fvdl 	access_mode	RW
   2704  1.1     fvdl 	size		2
   2705  1.1     fvdl 	modes		M_SCSI
   2706  1.1     fvdl }
   2707  1.1     fvdl 
   2708  1.1     fvdl /*
   2709  1.1     fvdl  * 400-MHz Phase-Locked Loop Test Count
   2710  1.1     fvdl  */
   2711  1.1     fvdl register PLL400CNT0 {
   2712  1.1     fvdl 	address			0x06E
   2713  1.1     fvdl 	access_mode	RO
   2714  1.1     fvdl 	size		2
   2715  1.1     fvdl 	modes		M_CFG
   2716  1.1     fvdl }
   2717  1.1     fvdl 
   2718  1.1     fvdl /*
   2719  1.1     fvdl  * SCB Page Pointer
   2720  1.1     fvdl  */
   2721  1.1     fvdl register SCBPTR {
   2722  1.1     fvdl 	address			0x0A8
   2723  1.1     fvdl 	access_mode	RW
   2724  1.1     fvdl 	size		2
   2725  1.1     fvdl 	modes		M_DFF0, M_DFF1, M_CCHAN, M_SCSI
   2726  1.1     fvdl }
   2727  1.1     fvdl 
   2728  1.1     fvdl /*
   2729  1.1     fvdl  * CMC SCB Array Count
   2730  1.1     fvdl  * Number of bytes to transfer between CMC SCB memory and SCBRAM.
   2731  1.1     fvdl  * Transfers must be 8byte aligned and sized.
   2732  1.1     fvdl  */
   2733  1.1     fvdl register CCSCBACNT {
   2734  1.1     fvdl 	address			0x0AB
   2735  1.1     fvdl 	access_mode	RW
   2736  1.1     fvdl 	modes		M_CCHAN
   2737  1.1     fvdl }
   2738  1.1     fvdl 
   2739  1.1     fvdl /*
   2740  1.1     fvdl  * SCB Autopointer
   2741  1.1     fvdl  * SCB-Next Address Snooping logic.  When an SCB is transferred to
   2742  1.1     fvdl  * the card, the next SCB address to be used by the CMC array can
   2743  1.1     fvdl  * be autoloaded from that transfer.
   2744  1.1     fvdl  */
   2745  1.1     fvdl register SCBAUTOPTR {
   2746  1.1     fvdl 	address			0x0AB
   2747  1.1     fvdl 	access_mode	RW
   2748  1.1     fvdl 	modes		M_CFG
   2749  1.1     fvdl 	field	AUSCBPTR_EN	0x80
   2750  1.1     fvdl 	field	SCBPTR_ADDR	0x38
   2751  1.1     fvdl 	field	SCBPTR_OFF	0x07
   2752  1.1     fvdl }
   2753  1.1     fvdl 
   2754  1.1     fvdl /*
   2755  1.1     fvdl  * CMC SG Ram Address Pointer
   2756  1.1     fvdl  */
   2757  1.1     fvdl register CCSGADDR {
   2758  1.1     fvdl 	address			0x0AC
   2759  1.1     fvdl 	access_mode	RW
   2760  1.1     fvdl 	modes		M_DFF0, M_DFF1
   2761  1.1     fvdl }
   2762  1.1     fvdl 
   2763  1.1     fvdl /*
   2764  1.1     fvdl  * CMC SCB RAM Address Pointer
   2765  1.1     fvdl  */
   2766  1.1     fvdl register CCSCBADDR {
   2767  1.1     fvdl 	address			0x0AC
   2768  1.1     fvdl 	access_mode	RW
   2769  1.1     fvdl 	modes		M_CCHAN
   2770  1.1     fvdl }
   2771  1.1     fvdl 
   2772  1.1     fvdl /*
   2773  1.1     fvdl  * CMC SCB Ram Back-up Address Pointer
   2774  1.1     fvdl  * Indicates the true stop location of transfers halted prior
   2775  1.1     fvdl  * to SCBHCNT going to 0.
   2776  1.1     fvdl  */
   2777  1.1     fvdl register CCSCBADR_BK {
   2778  1.1     fvdl 	address			0x0AC
   2779  1.1     fvdl 	access_mode	RO
   2780  1.1     fvdl 	modes		M_CFG
   2781  1.1     fvdl }
   2782  1.1     fvdl 
   2783  1.1     fvdl /*
   2784  1.1     fvdl  * CMC SG Control
   2785  1.1     fvdl  */
   2786  1.1     fvdl register CCSGCTL {
   2787  1.1     fvdl 	address			0x0AD
   2788  1.1     fvdl 	access_mode	RW
   2789  1.1     fvdl 	modes		M_DFF0, M_DFF1
   2790  1.1     fvdl 	field	CCSGDONE	0x80
   2791  1.1     fvdl 	field	SG_CACHE_AVAIL	0x10
   2792  1.1     fvdl 	field	CCSGENACK	0x08
   2793  1.1     fvdl 	mask	CCSGEN		0x0C
   2794  1.1     fvdl 	field	SG_FETCH_REQ	0x02
   2795  1.1     fvdl 	field	CCSGRESET	0x01
   2796  1.1     fvdl }
   2797  1.1     fvdl 
   2798  1.1     fvdl /*
   2799  1.1     fvdl  * CMD SCB Control
   2800  1.1     fvdl  */
   2801  1.1     fvdl register CCSCBCTL {
   2802  1.1     fvdl 	address			0x0AD
   2803  1.1     fvdl 	access_mode	RW
   2804  1.1     fvdl 	modes		M_CCHAN
   2805  1.1     fvdl 	field	CCSCBDONE	0x80
   2806  1.1     fvdl 	field	ARRDONE		0x40
   2807  1.1     fvdl 	field	CCARREN		0x10
   2808  1.1     fvdl 	field	CCSCBEN		0x08
   2809  1.1     fvdl 	field	CCSCBDIR	0x04
   2810  1.1     fvdl 	field	CCSCBRESET	0x01
   2811  1.1     fvdl }
   2812  1.1     fvdl 
   2813  1.1     fvdl /*
   2814  1.1     fvdl  * CMC Ram BIST
   2815  1.1     fvdl  */
   2816  1.1     fvdl register CMC_RAMBIST {
   2817  1.1     fvdl 	address			0x0AD
   2818  1.1     fvdl 	access_mode	RW
   2819  1.1     fvdl 	modes		M_CFG
   2820  1.1     fvdl 	field	SG_ELEMENT_SIZE		0x80
   2821  1.1     fvdl 	field	SCBRAMBIST_FAIL		0x40
   2822  1.1     fvdl 	field	SG_BIST_FAIL		0x20
   2823  1.1     fvdl 	field	SG_BIST_EN		0x10
   2824  1.1     fvdl 	field	CMC_BUFFER_BIST_FAIL	0x02
   2825  1.1     fvdl 	field	CMC_BUFFER_BIST_EN	0x01
   2826  1.1     fvdl }
   2827  1.1     fvdl 
   2828  1.1     fvdl /*
   2829  1.1     fvdl  * CMC SG RAM Data Port
   2830  1.1     fvdl  */
   2831  1.1     fvdl register CCSGRAM {
   2832  1.1     fvdl 	address			0x0B0
   2833  1.1     fvdl 	access_mode	RW
   2834  1.1     fvdl 	modes		M_DFF0, M_DFF1
   2835  1.1     fvdl }
   2836  1.1     fvdl 
   2837  1.1     fvdl /*
   2838  1.1     fvdl  * CMC SCB RAM Data Port
   2839  1.1     fvdl  */
   2840  1.1     fvdl register CCSCBRAM {
   2841  1.1     fvdl 	address			0x0B0
   2842  1.1     fvdl 	access_mode	RW
   2843  1.1     fvdl 	modes		M_CCHAN
   2844  1.1     fvdl }
   2845  1.1     fvdl 
   2846  1.1     fvdl /*
   2847  1.1     fvdl  * Flex DMA Address.
   2848  1.1     fvdl  */
   2849  1.1     fvdl register FLEXADR {
   2850  1.1     fvdl 	address			0x0B0
   2851  1.1     fvdl 	access_mode	RW
   2852  1.1     fvdl 	size		3
   2853  1.1     fvdl 	modes		M_SCSI
   2854  1.1     fvdl }
   2855  1.1     fvdl 
   2856  1.1     fvdl /*
   2857  1.1     fvdl  * Flex DMA Byte Count
   2858  1.1     fvdl  */
   2859  1.1     fvdl register FLEXCNT {
   2860  1.1     fvdl 	address			0x0B3
   2861  1.1     fvdl 	access_mode	RW
   2862  1.1     fvdl 	size		2
   2863  1.1     fvdl 	modes		M_SCSI
   2864  1.1     fvdl }
   2865  1.1     fvdl 
   2866  1.1     fvdl /*
   2867  1.1     fvdl  * Flex DMA Status
   2868  1.1     fvdl  */
   2869  1.1     fvdl register FLEXDMASTAT {
   2870  1.1     fvdl 	address			0x0B5
   2871  1.1     fvdl 	access_mode	RW
   2872  1.1     fvdl 	modes		M_SCSI
   2873  1.1     fvdl 	field	FLEXDMAERR	0x02
   2874  1.1     fvdl 	field	FLEXDMADONE	0x01
   2875  1.1     fvdl }
   2876  1.1     fvdl 
   2877  1.1     fvdl /*
   2878  1.1     fvdl  * Flex DMA Data Port
   2879  1.1     fvdl  */
   2880  1.1     fvdl register FLEXDATA {
   2881  1.1     fvdl 	address			0x0B6
   2882  1.1     fvdl 	access_mode	RW
   2883  1.1     fvdl 	modes		M_SCSI
   2884  1.1     fvdl }
   2885  1.1     fvdl 
   2886  1.1     fvdl /*
   2887  1.1     fvdl  * Board Data
   2888  1.1     fvdl  */
   2889  1.1     fvdl register BRDDAT {
   2890  1.1     fvdl 	address			0x0B8
   2891  1.1     fvdl 	access_mode	RW
   2892  1.1     fvdl 	modes		M_SCSI
   2893  1.1     fvdl }
   2894  1.1     fvdl 
   2895  1.1     fvdl /*
   2896  1.1     fvdl  * Board Control
   2897  1.1     fvdl  */
   2898  1.1     fvdl register BRDCTL {
   2899  1.1     fvdl 	address			0x0B9
   2900  1.1     fvdl 	access_mode	RW
   2901  1.1     fvdl 	modes		M_SCSI
   2902  1.1     fvdl 	field	FLXARBACK	0x80
   2903  1.1     fvdl 	field	FLXARBREQ	0x40
   2904  1.1     fvdl 	field	BRDADDR		0x38
   2905  1.1     fvdl 	field	BRDEN		0x04
   2906  1.1     fvdl 	field	BRDRW		0x02
   2907  1.1     fvdl 	field	BRDSTB		0x01
   2908  1.1     fvdl }
   2909  1.1     fvdl 
   2910  1.1     fvdl /*
   2911  1.1     fvdl  * Serial EEPROM Address
   2912  1.1     fvdl  */
   2913  1.1     fvdl register SEEADR {
   2914  1.1     fvdl 	address			0x0BA
   2915  1.1     fvdl 	access_mode	RW
   2916  1.1     fvdl 	modes		M_SCSI
   2917  1.1     fvdl }
   2918  1.1     fvdl 
   2919  1.1     fvdl /*
   2920  1.1     fvdl  * Serial EEPROM Data
   2921  1.1     fvdl  */
   2922  1.1     fvdl register SEEDAT {
   2923  1.1     fvdl 	address			0x0BC
   2924  1.1     fvdl 	access_mode	RW
   2925  1.1     fvdl 	size		2
   2926  1.1     fvdl 	modes		M_SCSI
   2927  1.1     fvdl }
   2928  1.1     fvdl 
   2929  1.1     fvdl /*
   2930  1.1     fvdl  * Serial EEPROM Status
   2931  1.1     fvdl  */
   2932  1.1     fvdl register SEESTAT {
   2933  1.1     fvdl 	address			0x0BE
   2934  1.1     fvdl 	access_mode	RO
   2935  1.1     fvdl 	modes		M_SCSI
   2936  1.1     fvdl 	field	INIT_DONE	0x80
   2937  1.1     fvdl 	field	SEEOPCODE	0x70
   2938  1.1     fvdl 	field	LDALTID_L	0x08
   2939  1.1     fvdl 	field	SEEARBACK	0x04
   2940  1.1     fvdl 	field	SEEBUSY		0x02
   2941  1.1     fvdl 	field	SEESTART	0x01
   2942  1.1     fvdl }
   2943  1.1     fvdl 
   2944  1.1     fvdl /*
   2945  1.1     fvdl  * Serial EEPROM Control
   2946  1.1     fvdl  */
   2947  1.1     fvdl register SEECTL {
   2948  1.1     fvdl 	address			0x0BE
   2949  1.1     fvdl 	access_mode	RW
   2950  1.1     fvdl 	modes		M_SCSI
   2951  1.1     fvdl 	field	SEEOPCODE	0x70 {
   2952  1.1     fvdl 		SEEOP_ERASE	0x70,
   2953  1.1     fvdl 		SEEOP_READ	0x60,
   2954  1.1     fvdl 		SEEOP_WRITE	0x50,
   2955  1.1     fvdl 	/*
   2956  1.1     fvdl 	 * The following four commands use special
   2957  1.1     fvdl 	 * addresses for differentiation.
   2958  1.1     fvdl 	 */
   2959  1.1     fvdl 		SEEOP_ERAL	0x40
   2960  1.1     fvdl 	}
   2961  1.1     fvdl 	mask	SEEOP_EWEN	0x40
   2962  1.1     fvdl 	mask	SEEOP_WALL	0x40
   2963  1.1     fvdl 	mask	SEEOP_EWDS	0x40
   2964  1.1     fvdl 	field	SEERST		0x02
   2965  1.1     fvdl 	field	SEESTART	0x01
   2966  1.1     fvdl }
   2967  1.1     fvdl 
   2968  1.1     fvdl const SEEOP_ERAL_ADDR	0x80
   2969  1.1     fvdl const SEEOP_EWEN_ADDR	0xC0
   2970  1.1     fvdl const SEEOP_WRAL_ADDR	0x40
   2971  1.1     fvdl const SEEOP_EWDS_ADDR	0x00
   2972  1.1     fvdl 
   2973  1.1     fvdl /*
   2974  1.1     fvdl  * SCB Counter
   2975  1.1     fvdl  */
   2976  1.1     fvdl register SCBCNT {
   2977  1.1     fvdl 	address			0x0BF
   2978  1.1     fvdl 	access_mode	RW
   2979  1.1     fvdl 	modes		M_SCSI
   2980  1.1     fvdl }
   2981  1.1     fvdl 
   2982  1.1     fvdl /*
   2983  1.1     fvdl  * Data FIFO Write Address
   2984  1.1     fvdl  * Pointer to the next QWD location to be written to the data FIFO.
   2985  1.1     fvdl  */
   2986  1.1     fvdl register DFWADDR {
   2987  1.1     fvdl 	address			0x0C0
   2988  1.1     fvdl 	access_mode	RW
   2989  1.1     fvdl 	size		2
   2990  1.1     fvdl 	modes		M_DFF0, M_DFF1
   2991  1.1     fvdl }
   2992  1.1     fvdl 
   2993  1.1     fvdl /*
   2994  1.1     fvdl  * DSP Filter Control
   2995  1.1     fvdl  */
   2996  1.1     fvdl register DSPFLTRCTL {
   2997  1.1     fvdl 	address			0x0C0
   2998  1.1     fvdl 	access_mode	RW
   2999  1.1     fvdl 	modes		M_CFG
   3000  1.1     fvdl 	field	FLTRDISABLE	0x20
   3001  1.1     fvdl 	field	EDGESENSE	0x10
   3002  1.1     fvdl 	field	DSPFCNTSEL	0x0F
   3003  1.1     fvdl }
   3004  1.1     fvdl 
   3005  1.1     fvdl /*
   3006  1.1     fvdl  * DSP Data Channel Control
   3007  1.1     fvdl  */
   3008  1.1     fvdl register DSPDATACTL {
   3009  1.1     fvdl 	address			0x0C1
   3010  1.1     fvdl 	access_mode	RW
   3011  1.1     fvdl 	modes		M_CFG
   3012  1.1     fvdl 	field	BYPASSENAB	0x80
   3013  1.1     fvdl 	field	DESQDIS		0x10
   3014  1.1     fvdl 	field	RCVROFFSTDIS	0x04
   3015  1.1     fvdl 	field	XMITOFFSTDIS	0x02
   3016  1.1     fvdl }
   3017  1.1     fvdl 
   3018  1.1     fvdl /*
   3019  1.1     fvdl  * Data FIFO Read Address
   3020  1.1     fvdl  * Pointer to the next QWD location to be read from the data FIFO.
   3021  1.1     fvdl  */
   3022  1.1     fvdl register DFRADDR {
   3023  1.1     fvdl 	address			0x0C2
   3024  1.1     fvdl 	access_mode	RW
   3025  1.1     fvdl 	size		2
   3026  1.1     fvdl 	modes		M_DFF0, M_DFF1
   3027  1.1     fvdl }
   3028  1.1     fvdl 
   3029  1.1     fvdl /*
   3030  1.1     fvdl  * DSP REQ Control
   3031  1.1     fvdl  */
   3032  1.1     fvdl register DSPREQCTL {
   3033  1.1     fvdl 	address			0x0C2
   3034  1.1     fvdl 	access_mode	RW
   3035  1.1     fvdl 	modes		M_CFG
   3036  1.1     fvdl 	field	MANREQCTL	0xC0
   3037  1.1     fvdl 	field	MANREQDLY	0x3F
   3038  1.1     fvdl }
   3039  1.1     fvdl 
   3040  1.1     fvdl /*
   3041  1.1     fvdl  * DSP ACK Control
   3042  1.1     fvdl  */
   3043  1.1     fvdl register DSPACKCTL {
   3044  1.1     fvdl 	address			0x0C3
   3045  1.1     fvdl 	access_mode	RW
   3046  1.1     fvdl 	modes		M_CFG
   3047  1.1     fvdl 	field	MANACKCTL	0xC0
   3048  1.1     fvdl 	field	MANACKDLY	0x3F
   3049  1.1     fvdl }
   3050  1.1     fvdl 
   3051  1.1     fvdl /*
   3052  1.1     fvdl  * Data FIFO Data
   3053  1.1     fvdl  * Read/Write byte port into the data FIFO.  The read and write
   3054  1.1     fvdl  * FIFO pointers increment with each read and write respectively
   3055  1.1     fvdl  * to this port.
   3056  1.1     fvdl  */
   3057  1.1     fvdl register DFDAT {
   3058  1.1     fvdl 	address			0x0C4
   3059  1.1     fvdl 	access_mode	RW
   3060  1.1     fvdl 	modes		M_DFF0, M_DFF1
   3061  1.1     fvdl }
   3062  1.1     fvdl 
   3063  1.1     fvdl /*
   3064  1.1     fvdl  * DSP Channel Select
   3065  1.1     fvdl  */
   3066  1.1     fvdl register DSPSELECT {
   3067  1.1     fvdl 	address			0x0C4
   3068  1.1     fvdl 	access_mode	RW
   3069  1.1     fvdl 	modes		M_CFG
   3070  1.1     fvdl 	field	AUTOINCEN	0x80
   3071  1.1     fvdl 	field	DSPSEL		0x1F
   3072  1.1     fvdl }
   3073  1.1     fvdl 
   3074  1.1     fvdl const NUMDSPS 0x14
   3075  1.1     fvdl 
   3076  1.1     fvdl /*
   3077  1.1     fvdl  * Write Bias Control
   3078  1.1     fvdl  */
   3079  1.1     fvdl register WRTBIASCTL {
   3080  1.1     fvdl 	address			0x0C5
   3081  1.1     fvdl 	access_mode	WO
   3082  1.1     fvdl 	modes		M_CFG
   3083  1.1     fvdl 	field	AUTOXBCDIS	0x80
   3084  1.1     fvdl 	field	XMITMANVAL	0x3F
   3085  1.1     fvdl }
   3086  1.1     fvdl 
   3087  1.1     fvdl /*
   3088  1.1     fvdl  * Currently the WRTBIASCTL is the same as the default.
   3089  1.1     fvdl  */
   3090  1.1     fvdl const WRTBIASCTL_HP_DEFAULT 0x0
   3091  1.1     fvdl 
   3092  1.1     fvdl /*
   3093  1.1     fvdl  * Receiver Bias Control
   3094  1.1     fvdl  */
   3095  1.1     fvdl register RCVRBIOSCTL {
   3096  1.1     fvdl 	address			0x0C6
   3097  1.1     fvdl 	access_mode	WO
   3098  1.1     fvdl 	modes		M_CFG
   3099  1.1     fvdl 	field	AUTORBCDIS	0x80
   3100  1.1     fvdl 	field	RCVRMANVAL	0x3F
   3101  1.1     fvdl }
   3102  1.1     fvdl 
   3103  1.1     fvdl /*
   3104  1.1     fvdl  * Write Bias Calculator
   3105  1.1     fvdl  */
   3106  1.1     fvdl register WRTBIASCALC {
   3107  1.1     fvdl 	address			0x0C7
   3108  1.1     fvdl 	access_mode	RO
   3109  1.1     fvdl 	modes		M_CFG
   3110  1.1     fvdl }
   3111  1.1     fvdl 
   3112  1.1     fvdl /*
   3113  1.1     fvdl  * Data FIFO Pointers
   3114  1.1     fvdl  * Contains the byte offset from DFWADDR and DWRADDR to the current
   3115  1.1     fvdl  * FIFO write/read locations.
   3116  1.1     fvdl  */
   3117  1.1     fvdl register DFPTRS {
   3118  1.1     fvdl 	address			0x0C8
   3119  1.1     fvdl 	access_mode	RW
   3120  1.1     fvdl 	modes		M_DFF0, M_DFF1
   3121  1.1     fvdl }
   3122  1.1     fvdl 
   3123  1.1     fvdl /*
   3124  1.1     fvdl  * Receiver Bias Calculator
   3125  1.1     fvdl  */
   3126  1.1     fvdl register RCVRBIASCALC {
   3127  1.1     fvdl 	address			0x0C8
   3128  1.1     fvdl 	access_mode	RO
   3129  1.1     fvdl 	modes		M_CFG
   3130  1.1     fvdl }
   3131  1.1     fvdl 
   3132  1.1     fvdl /*
   3133  1.1     fvdl  * Data FIFO Backup Read Pointer
   3134  1.1     fvdl  * Contains the data FIFO address to be restored if the last
   3135  1.1     fvdl  * data accessed from the data FIFO was not transferred successfully.
   3136  1.1     fvdl  */
   3137  1.1     fvdl register DFBKPTR {
   3138  1.1     fvdl 	address			0x0C9
   3139  1.1     fvdl 	access_mode	RW
   3140  1.1     fvdl 	size		2
   3141  1.1     fvdl 	modes		M_DFF0, M_DFF1
   3142  1.1     fvdl }
   3143  1.1     fvdl 
   3144  1.1     fvdl /*
   3145  1.1     fvdl  * Skew Calculator
   3146  1.1     fvdl  */
   3147  1.1     fvdl register SKEWCALC {
   3148  1.1     fvdl 	address			0x0C9
   3149  1.1     fvdl 	access_mode	RO
   3150  1.1     fvdl 	modes		M_CFG
   3151  1.1     fvdl }
   3152  1.1     fvdl 
   3153  1.1     fvdl /*
   3154  1.1     fvdl  * Data FIFO Debug Control
   3155  1.1     fvdl  */
   3156  1.1     fvdl register DFDBCTL {
   3157  1.1     fvdl 	address				0x0CB
   3158  1.1     fvdl 	access_mode	RW
   3159  1.1     fvdl 	modes		M_DFF0, M_DFF1
   3160  1.1     fvdl 	field	DFF_CIO_WR_RDY		0x20
   3161  1.1     fvdl 	field	DFF_CIO_RD_RDY		0x10
   3162  1.1     fvdl 	field	DFF_DIR_ERR		0x08
   3163  1.1     fvdl 	field	DFF_RAMBIST_FAIL	0x04
   3164  1.1     fvdl 	field	DFF_RAMBIST_DONE	0x02
   3165  1.1     fvdl 	field	DFF_RAMBIST_EN		0x01
   3166  1.1     fvdl }
   3167  1.1     fvdl 
   3168  1.1     fvdl /*
   3169  1.1     fvdl  * Data FIFO Space Count
   3170  1.1     fvdl  * Number of FIFO locations that are free.
   3171  1.1     fvdl  */
   3172  1.1     fvdl register DFSCNT {
   3173  1.1     fvdl 	address			0x0CC
   3174  1.1     fvdl 	access_mode	RO
   3175  1.1     fvdl 	size		2
   3176  1.1     fvdl 	modes		M_DFF0, M_DFF1
   3177  1.1     fvdl }
   3178  1.1     fvdl 
   3179  1.1     fvdl /*
   3180  1.1     fvdl  * Data FIFO Byte Count
   3181  1.1     fvdl  * Number of filled FIFO locations.
   3182  1.1     fvdl  */
   3183  1.1     fvdl register DFBCNT {
   3184  1.1     fvdl 	address			0x0CE
   3185  1.1     fvdl 	access_mode	RO
   3186  1.1     fvdl 	size		2
   3187  1.1     fvdl 	modes		M_DFF0, M_DFF1
   3188  1.1     fvdl }
   3189  1.1     fvdl 
   3190  1.1     fvdl /*
   3191  1.1     fvdl  * Sequencer Program Overlay Address.
   3192  1.1     fvdl  * Low address must be written prior to high address.
   3193  1.1     fvdl  */
   3194  1.1     fvdl register OVLYADDR {
   3195  1.1     fvdl 	address			0x0D4
   3196  1.1     fvdl 	modes		M_SCSI
   3197  1.1     fvdl 	size		2
   3198  1.1     fvdl 	access_mode	RW
   3199  1.1     fvdl }
   3200  1.1     fvdl 
   3201  1.1     fvdl /*
   3202  1.1     fvdl  * Sequencer Control 0
   3203  1.1     fvdl  * Error detection mode, speed configuration,
   3204  1.1     fvdl  * single step, breakpoints and program load.
   3205  1.1     fvdl  */
   3206  1.1     fvdl register SEQCTL0 {
   3207  1.1     fvdl 	address			0x0D6
   3208  1.1     fvdl 	access_mode RW
   3209  1.1     fvdl 	field	PERRORDIS	0x80
   3210  1.1     fvdl 	field	PAUSEDIS	0x40
   3211  1.1     fvdl 	field	FAILDIS		0x20
   3212  1.1     fvdl 	field	FASTMODE	0x10
   3213  1.1     fvdl 	field	BRKADRINTEN	0x08
   3214  1.1     fvdl 	field	STEP		0x04
   3215  1.1     fvdl 	field	SEQRESET	0x02
   3216  1.1     fvdl 	field	LOADRAM		0x01
   3217  1.1     fvdl }
   3218  1.1     fvdl 
   3219  1.1     fvdl /*
   3220  1.1     fvdl  * Sequencer Control 1
   3221  1.1     fvdl  * Instruction RAM Diagnostics
   3222  1.1     fvdl  */
   3223  1.1     fvdl register SEQCTL1 {
   3224  1.1     fvdl 	address			0x0D7
   3225  1.1     fvdl 	access_mode RW
   3226  1.1     fvdl 	field	OVRLAY_DATA_CHK	0x08
   3227  1.1     fvdl 	field	RAMBIST_DONE	0x04
   3228  1.1     fvdl 	field	RAMBIST_FAIL	0x02
   3229  1.1     fvdl 	field	RAMBIST_EN	0x01
   3230  1.1     fvdl }
   3231  1.1     fvdl 
   3232  1.1     fvdl /*
   3233  1.1     fvdl  * Sequencer Flags
   3234  1.1     fvdl  * Zero and Carry state of the ALU.
   3235  1.1     fvdl  */
   3236  1.1     fvdl register FLAGS {
   3237  1.1     fvdl 	address			0x0D8
   3238  1.1     fvdl 	access_mode RO
   3239  1.1     fvdl 	field	ZERO		0x02
   3240  1.1     fvdl 	field	CARRY		0x01
   3241  1.1     fvdl }
   3242  1.1     fvdl 
   3243  1.1     fvdl /*
   3244  1.1     fvdl  * Sequencer Interrupt Control
   3245  1.1     fvdl  */
   3246  1.1     fvdl register SEQINTCTL {
   3247  1.1     fvdl 	address			0x0D9
   3248  1.1     fvdl 	access_mode RW
   3249  1.1     fvdl 	field	INTVEC1DSL	0x80
   3250  1.1     fvdl 	field	INT1_CONTEXT	0x20
   3251  1.1     fvdl 	field	SCS_SEQ_INT1M1	0x10
   3252  1.1     fvdl 	field	SCS_SEQ_INT1M0	0x08
   3253  1.1     fvdl 	field	INTMASK2	0x04
   3254  1.1     fvdl 	field	INTMASK1	0x02
   3255  1.1     fvdl 	field	IRET		0x01
   3256  1.1     fvdl }
   3257  1.1     fvdl 
   3258  1.1     fvdl /*
   3259  1.1     fvdl  * Sequencer RAM Data Port
   3260  1.1     fvdl  * Single byte window into the Sequencer Instruction Ram area starting
   3261  1.1     fvdl  * at the address specified by OVLYADDR.  To write a full instruction word,
   3262  1.1     fvdl  * simply write four bytes in succession.  OVLYADDR will increment after the
   3263  1.1     fvdl  * most significant instrution byte (the byte with the parity bit) is written.
   3264  1.1     fvdl  */
   3265  1.1     fvdl register SEQRAM {
   3266  1.1     fvdl 	address			0x0DA
   3267  1.1     fvdl 	access_mode RW
   3268  1.1     fvdl }
   3269  1.1     fvdl 
   3270  1.1     fvdl /*
   3271  1.1     fvdl  * Sequencer Program Counter
   3272  1.1     fvdl  * Low byte must be written prior to high byte.
   3273  1.1     fvdl  */
   3274  1.1     fvdl register PRGMCNT {
   3275  1.1     fvdl 	address			0x0DE
   3276  1.1     fvdl 	access_mode	RW
   3277  1.1     fvdl 	size		2
   3278  1.1     fvdl }
   3279  1.1     fvdl 
   3280  1.1     fvdl /*
   3281  1.1     fvdl  * Accumulator
   3282  1.1     fvdl  */
   3283  1.1     fvdl register ACCUM {
   3284  1.1     fvdl 	address			0x0E0
   3285  1.1     fvdl 	access_mode RW
   3286  1.1     fvdl 	accumulator
   3287  1.1     fvdl }
   3288  1.1     fvdl 
   3289  1.1     fvdl /*
   3290  1.1     fvdl  * Source Index Register
   3291  1.1     fvdl  * Incrementing index for reads of SINDIR and the destination (low byte only)
   3292  1.1     fvdl  * for any immediate operands passed in jmp, jc, jnc, call instructions.
   3293  1.1     fvdl  * Example:
   3294  1.1     fvdl  *		mvi	0xFF	call some_routine;
   3295  1.1     fvdl  *
   3296  1.1     fvdl  *  Will set SINDEX[0] to 0xFF and call the routine "some_routine.
   3297  1.1     fvdl  */
   3298  1.1     fvdl register SINDEX	{
   3299  1.1     fvdl 	address			0x0E2
   3300  1.1     fvdl 	access_mode	RW
   3301  1.1     fvdl 	size		2
   3302  1.1     fvdl 	sindex
   3303  1.1     fvdl }
   3304  1.1     fvdl 
   3305  1.1     fvdl /*
   3306  1.1     fvdl  * Destination Index Register
   3307  1.1     fvdl  * Incrementing index for writes to DINDIR.  Can be used as a scratch register.
   3308  1.1     fvdl  */
   3309  1.1     fvdl register DINDEX {
   3310  1.1     fvdl 	address			0x0E4
   3311  1.1     fvdl 	access_mode	RW
   3312  1.1     fvdl 	size		2
   3313  1.1     fvdl }
   3314  1.1     fvdl 
   3315  1.1     fvdl /*
   3316  1.1     fvdl  * Break Address
   3317  1.1     fvdl  * Sequencer instruction breakpoint address address.
   3318  1.1     fvdl  */
   3319  1.1     fvdl register BRKADDR0 {
   3320  1.1     fvdl 	address			0x0E6
   3321  1.1     fvdl 	access_mode	RW
   3322  1.1     fvdl }
   3323  1.1     fvdl 
   3324  1.1     fvdl register BRKADDR1 {
   3325  1.1     fvdl 	address			0x0E6
   3326  1.1     fvdl 	access_mode	RW
   3327  1.1     fvdl 	field	BRKDIS		0x80	/* Disable Breakpoint */
   3328  1.1     fvdl }
   3329  1.1     fvdl 
   3330  1.1     fvdl /*
   3331  1.1     fvdl  * All Ones
   3332  1.1     fvdl  * All reads to this register return the value 0xFF.
   3333  1.1     fvdl  */
   3334  1.1     fvdl register ALLONES {
   3335  1.1     fvdl 	address			0x0E8
   3336  1.1     fvdl 	access_mode RO
   3337  1.1     fvdl 	allones
   3338  1.1     fvdl }
   3339  1.1     fvdl 
   3340  1.1     fvdl /*
   3341  1.1     fvdl  * All Zeros
   3342  1.1     fvdl  * All reads to this register return the value 0.
   3343  1.1     fvdl  */
   3344  1.1     fvdl register ALLZEROS {
   3345  1.1     fvdl 	address			0x0EA
   3346  1.1     fvdl 	access_mode RO
   3347  1.1     fvdl 	allzeros
   3348  1.1     fvdl }
   3349  1.1     fvdl 
   3350  1.1     fvdl /*
   3351  1.1     fvdl  * No Destination
   3352  1.1     fvdl  * Writes to this register have no effect.
   3353  1.1     fvdl  */
   3354  1.1     fvdl register NONE {
   3355  1.1     fvdl 	address			0x0EA
   3356  1.1     fvdl 	access_mode WO
   3357  1.1     fvdl 	none
   3358  1.1     fvdl }
   3359  1.1     fvdl 
   3360  1.1     fvdl /*
   3361  1.1     fvdl  * Source Index Indirect
   3362  1.1     fvdl  * Reading this register is equivalent to reading (register_base + SINDEX) and
   3363  1.1     fvdl  * incrementing SINDEX by 1.
   3364  1.1     fvdl  */
   3365  1.1     fvdl register SINDIR	{
   3366  1.1     fvdl 	address			0x0EC
   3367  1.1     fvdl 	access_mode RO
   3368  1.1     fvdl }
   3369  1.1     fvdl 
   3370  1.1     fvdl /*
   3371  1.1     fvdl  * Destination Index Indirect
   3372  1.1     fvdl  * Writing this register is equivalent to writing to (register_base + DINDEX)
   3373  1.1     fvdl  * and incrementing DINDEX by 1.
   3374  1.1     fvdl  */
   3375  1.1     fvdl register DINDIR	 {
   3376  1.1     fvdl 	address			0x0ED
   3377  1.1     fvdl 	access_mode WO
   3378  1.1     fvdl }
   3379  1.1     fvdl 
   3380  1.1     fvdl /*
   3381  1.1     fvdl  * Function One
   3382  1.1     fvdl  * 2's complement to bit value conversion.  Write the 2's complement value
   3383  1.1     fvdl  * (0-7 only) to the top nibble and retrieve the bit indexed by that value
   3384  1.1     fvdl  * on the next read of this register.
   3385  1.1     fvdl  * Example:
   3386  1.1     fvdl  *	Write	0x60
   3387  1.1     fvdl  *	Read	0x40
   3388  1.1     fvdl  */
   3389  1.1     fvdl register FUNCTION1 {
   3390  1.1     fvdl 	address			0x0F0
   3391  1.1     fvdl 	access_mode RW
   3392  1.1     fvdl }
   3393  1.1     fvdl 
   3394  1.1     fvdl /*
   3395  1.1     fvdl  * Stack
   3396  1.1     fvdl  * Window into the stack.  Each stack location is 10 bits wide reported
   3397  1.1     fvdl  * low byte followed by high byte.  There are 8 stack locations.
   3398  1.1     fvdl  */
   3399  1.1     fvdl register STACK {
   3400  1.1     fvdl 	address			0x0F2
   3401  1.1     fvdl 	access_mode RW
   3402  1.1     fvdl }
   3403  1.1     fvdl 
   3404  1.1     fvdl /*
   3405  1.1     fvdl  * Interrupt Vector 1 Address
   3406  1.1     fvdl  * Interrupt branch address for SCS SEQ_INT1 mode 0 and 1 interrupts.
   3407  1.1     fvdl  */
   3408  1.1     fvdl register INTVEC1_ADDR {
   3409  1.1     fvdl 	address			0x0F4
   3410  1.1     fvdl 	access_mode	RW
   3411  1.1     fvdl 	size		2
   3412  1.1     fvdl 	modes		M_CFG
   3413  1.1     fvdl }
   3414  1.1     fvdl 
   3415  1.1     fvdl /*
   3416  1.1     fvdl  * Current Address
   3417  1.1     fvdl  * Address of the SEQRAM instruction currently executing instruction.
   3418  1.1     fvdl  */
   3419  1.1     fvdl register CURADDR {
   3420  1.1     fvdl 	address			0x0F4
   3421  1.1     fvdl 	access_mode	RW
   3422  1.1     fvdl 	size		2
   3423  1.1     fvdl 	modes		M_SCSI
   3424  1.1     fvdl }
   3425  1.1     fvdl 
   3426  1.1     fvdl /*
   3427  1.1     fvdl  * Interrupt Vector 2 Address
   3428  1.1     fvdl  * Interrupt branch address for HST_SEQ_INT2 interrupts.
   3429  1.1     fvdl  */
   3430  1.1     fvdl register INTVEC2_ADDR {
   3431  1.1     fvdl 	address			0x0F6
   3432  1.1     fvdl 	access_mode	RW
   3433  1.1     fvdl 	size		2
   3434  1.1     fvdl 	modes		M_CFG
   3435  1.1     fvdl }
   3436  1.1     fvdl 
   3437  1.1     fvdl /*
   3438  1.1     fvdl  * Last Address
   3439  1.1     fvdl  * Address of the SEQRAM instruction executed prior to the current instruction.
   3440  1.1     fvdl  */
   3441  1.1     fvdl register LASTADDR {
   3442  1.1     fvdl 	address			0x0F6
   3443  1.1     fvdl 	access_mode	RW
   3444  1.1     fvdl 	size		2
   3445  1.1     fvdl 	modes		M_SCSI
   3446  1.1     fvdl }
   3447  1.1     fvdl 
   3448  1.1     fvdl register AHD_PCI_CONFIG_BASE {
   3449  1.1     fvdl 	address			0x100
   3450  1.1     fvdl 	access_mode	RW
   3451  1.1     fvdl 	size		256
   3452  1.1     fvdl 	modes		M_CFG
   3453  1.1     fvdl }
   3454  1.1     fvdl 
   3455  1.1     fvdl /* ---------------------- Scratch RAM Offsets ------------------------- */
   3456  1.1     fvdl scratch_ram {
   3457  1.1     fvdl 	/* Mode Specific */
   3458  1.1     fvdl 	address			0x0A0
   3459  1.1     fvdl 	size	8
   3460  1.1     fvdl 	modes	0, 1, 2, 3
   3461  1.1     fvdl 	REG0 {
   3462  1.1     fvdl 		size		2
   3463  1.1     fvdl 	}
   3464  1.1     fvdl 	REG1 {
   3465  1.1     fvdl 		size		2
   3466  1.1     fvdl 	}
   3467  1.1     fvdl 	REG_ISR {
   3468  1.1     fvdl 		size		2
   3469  1.1     fvdl 	}
   3470  1.1     fvdl 	SG_STATE {
   3471  1.1     fvdl 		size		1
   3472  1.1     fvdl 		field	SEGS_AVAIL	0x01
   3473  1.1     fvdl 		field	LOADING_NEEDED	0x02
   3474  1.1     fvdl 		field	FETCH_INPROG	0x04
   3475  1.1     fvdl 	}
   3476  1.1     fvdl 	/*
   3477  1.1     fvdl 	 * Track whether the transfer byte count for
   3478  1.1     fvdl 	 * the current data phase is odd.
   3479  1.1     fvdl 	 */
   3480  1.1     fvdl 	DATA_COUNT_ODD {
   3481  1.1     fvdl 		size		1
   3482  1.1     fvdl 	}
   3483  1.1     fvdl }
   3484  1.1     fvdl 
   3485  1.1     fvdl scratch_ram {
   3486  1.1     fvdl 	/* Mode Specific */
   3487  1.1     fvdl 	address			0x0F8
   3488  1.1     fvdl 	size	8
   3489  1.1     fvdl 	modes	0, 1, 2, 3
   3490  1.1     fvdl 	LONGJMP_ADDR {
   3491  1.1     fvdl 		size		2
   3492  1.1     fvdl 	}
   3493  1.1     fvdl 	ACCUM_SAVE {
   3494  1.1     fvdl 		size		1
   3495  1.1     fvdl 	}
   3496  1.1     fvdl }
   3497  1.1     fvdl 
   3498  1.1     fvdl 
   3499  1.1     fvdl scratch_ram {
   3500  1.1     fvdl 	address			0x100
   3501  1.1     fvdl 	size	128
   3502  1.1     fvdl 	modes	0, 1, 2, 3
   3503  1.1     fvdl 	/*
   3504  1.1     fvdl 	 * Per "other-id" execution queues.  We use an array of
   3505  1.1     fvdl 	 * tail pointers into lists of SCBs sorted by "other-id".
   3506  1.1     fvdl 	 * The execution head pointer threads the head SCBs for
   3507  1.1     fvdl 	 * each list.
   3508  1.1     fvdl 	 */
   3509  1.1     fvdl 	WAITING_SCB_TAILS {
   3510  1.1     fvdl 		size		32
   3511  1.1     fvdl 	}
   3512  1.1     fvdl 	WAITING_TID_HEAD {
   3513  1.1     fvdl 		size		2
   3514  1.1     fvdl 	}
   3515  1.1     fvdl 	WAITING_TID_TAIL {
   3516  1.1     fvdl 		size		2
   3517  1.1     fvdl 	}
   3518  1.1     fvdl 	/*
   3519  1.1     fvdl 	 * SCBID of the next SCB in the new SCB queue.
   3520  1.1     fvdl 	 */
   3521  1.1     fvdl 	NEXT_QUEUED_SCB_ADDR {
   3522  1.1     fvdl 		size		4
   3523  1.1     fvdl 	}
   3524  1.1     fvdl 	/*
   3525  1.1     fvdl 	 * head of list of SCBs that have
   3526  1.1     fvdl 	 * completed but have not been
   3527  1.1     fvdl 	 * put into the qoutfifo.
   3528  1.1     fvdl 	 */
   3529  1.1     fvdl 	COMPLETE_SCB_HEAD {
   3530  1.1     fvdl 		size		2
   3531  1.1     fvdl 	}
   3532  1.1     fvdl 	/*
   3533  1.1     fvdl 	 * The list of completed SCBs in
   3534  1.1     fvdl 	 * the active DMA.
   3535  1.1     fvdl 	 */
   3536  1.1     fvdl 	COMPLETE_SCB_DMAINPROG_HEAD {
   3537  1.1     fvdl 		size		2
   3538  1.1     fvdl 	}
   3539  1.1     fvdl 	/*
   3540  1.1     fvdl 	 * head of list of SCBs that have
   3541  1.1     fvdl 	 * completed but need to be uploaded
   3542  1.1     fvdl 	 * to the host prior to being completed.
   3543  1.1     fvdl 	 */
   3544  1.1     fvdl 	COMPLETE_DMA_SCB_HEAD {
   3545  1.1     fvdl 		size		2
   3546  1.1     fvdl 	}
   3547  1.1     fvdl 	/* Counting semaphore to prevent new select-outs */
   3548  1.1     fvdl 	QFREEZE_COUNT {
   3549  1.1     fvdl 		size		2
   3550  1.1     fvdl 	}
   3551  1.1     fvdl 	/*
   3552  1.1     fvdl 	 * Mode to restore on legacy idle loop exit.
   3553  1.1     fvdl 	 */
   3554  1.1     fvdl 	SAVED_MODE {
   3555  1.1     fvdl 		size		1
   3556  1.1     fvdl 	}
   3557  1.1     fvdl 	/*
   3558  1.1     fvdl 	 * Single byte buffer used to designate the type or message
   3559  1.1     fvdl 	 * to send to a target.
   3560  1.1     fvdl 	 */
   3561  1.1     fvdl 	MSG_OUT {
   3562  1.1     fvdl 		size		1
   3563  1.1     fvdl 	}
   3564  1.1     fvdl 	/* Parameters for DMA Logic */
   3565  1.1     fvdl 	DMAPARAMS {
   3566  1.1     fvdl 		size		1
   3567  1.1     fvdl 		field	PRELOADEN	0x80
   3568  1.1     fvdl 		field	WIDEODD		0x40
   3569  1.1     fvdl 		field	SCSIEN		0x20
   3570  1.1     fvdl 		field	SDMAEN		0x10
   3571  1.1     fvdl 		field	SDMAENACK	0x10
   3572  1.1     fvdl 		field	HDMAEN		0x08
   3573  1.1     fvdl 		field	HDMAENACK	0x08
   3574  1.1     fvdl 		field	DIRECTION	0x04	/* Set indicates PCI->SCSI */
   3575  1.1     fvdl 		field	FIFOFLUSH	0x02
   3576  1.1     fvdl 		field	FIFORESET	0x01
   3577  1.1     fvdl 	}
   3578  1.1     fvdl 	SEQ_FLAGS {
   3579  1.1     fvdl 		size		1
   3580  1.1     fvdl 		field	NOT_IDENTIFIED		0x80
   3581  1.1     fvdl 		field	NO_CDB_SENT		0x40
   3582  1.1     fvdl 		field	TARGET_CMD_IS_TAGGED	0x40
   3583  1.1     fvdl 		field	DPHASE			0x20
   3584  1.1     fvdl 		/* Target flags */
   3585  1.1     fvdl 		field	TARG_CMD_PENDING	0x10
   3586  1.1     fvdl 		field	CMDPHASE_PENDING	0x08
   3587  1.1     fvdl 		field	DPHASE_PENDING		0x04
   3588  1.1     fvdl 		field	SPHASE_PENDING		0x02
   3589  1.1     fvdl 		field	NO_DISCONNECT		0x01
   3590  1.1     fvdl 	}
   3591  1.1     fvdl 	/*
   3592  1.1     fvdl 	 * Temporary storage for the
   3593  1.1     fvdl 	 * target/channel/lun of a
   3594  1.1     fvdl 	 * reconnecting target
   3595  1.1     fvdl 	 */
   3596  1.1     fvdl 	SAVED_SCSIID {
   3597  1.1     fvdl 		size		1
   3598  1.1     fvdl 	}
   3599  1.1     fvdl 	SAVED_LUN {
   3600  1.1     fvdl 		size		1
   3601  1.1     fvdl 	}
   3602  1.1     fvdl 	/*
   3603  1.1     fvdl 	 * The last bus phase as seen by the sequencer.
   3604  1.1     fvdl 	 */
   3605  1.1     fvdl 	LASTPHASE {
   3606  1.1     fvdl 		size		1
   3607  1.1     fvdl 		field	CDI		0x80
   3608  1.1     fvdl 		field	IOI		0x40
   3609  1.1     fvdl 		field	MSGI		0x20
   3610  1.1     fvdl 		field	P_BUSFREE	0x01
   3611  1.1     fvdl 		enum	PHASE_MASK  CDO|IOO|MSGO {
   3612  1.1     fvdl 			P_DATAOUT	0x0,
   3613  1.1     fvdl 			P_DATAIN	IOO,
   3614  1.1     fvdl 			P_DATAOUT_DT	P_DATAOUT|MSGO,
   3615  1.1     fvdl 			P_DATAIN_DT	P_DATAIN|MSGO,
   3616  1.1     fvdl 			P_COMMAND	CDO,
   3617  1.1     fvdl 			P_MESGOUT	CDO|MSGO,
   3618  1.1     fvdl 			P_STATUS	CDO|IOO,
   3619  1.1     fvdl 			P_MESGIN	CDO|IOO|MSGO
   3620  1.1     fvdl 		}
   3621  1.1     fvdl 	}
   3622  1.1     fvdl 	/*
   3623  1.1     fvdl 	 * Value to "or" into the SCBPTR[1] value to
   3624  1.1     fvdl 	 * indicate that an entry in the QINFIFO is valid.
   3625  1.1     fvdl 	 */
   3626  1.1     fvdl 	QOUTFIFO_ENTRY_VALID_TAG {
   3627  1.1     fvdl 		size		1
   3628  1.1     fvdl 	}
   3629  1.1     fvdl 	/*
   3630  1.1     fvdl 	 * Base address of our shared data with the kernel driver in host
   3631  1.1     fvdl 	 * memory.  This includes the qoutfifo and target mode
   3632  1.1     fvdl 	 * incoming command queue.
   3633  1.1     fvdl 	 */
   3634  1.1     fvdl 	SHARED_DATA_ADDR {
   3635  1.1     fvdl 		size		4
   3636  1.1     fvdl 	}
   3637  1.1     fvdl 	/*
   3638  1.1     fvdl 	 * Pointer to location in host memory for next
   3639  1.1     fvdl 	 * position in the qoutfifo.
   3640  1.1     fvdl 	 */
   3641  1.1     fvdl 	QOUTFIFO_NEXT_ADDR {
   3642  1.1     fvdl 		size		4
   3643  1.1     fvdl 	}
   3644  1.1     fvdl 	/*
   3645  1.1     fvdl 	 * Kernel and sequencer offsets into the queue of
   3646  1.1     fvdl 	 * incoming target mode command descriptors.  The
   3647  1.1     fvdl 	 * queue is full when the KERNEL_TQINPOS == TQINPOS.
   3648  1.1     fvdl 	 */
   3649  1.1     fvdl 	KERNEL_TQINPOS {
   3650  1.1     fvdl 		size		1
   3651  1.1     fvdl 	}
   3652  1.1     fvdl 	TQINPOS {
   3653  1.1     fvdl 		size		1
   3654  1.1     fvdl 	}
   3655  1.1     fvdl 	ARG_1 {
   3656  1.1     fvdl 		size		1
   3657  1.1     fvdl 		mask	SEND_MSG		0x80
   3658  1.1     fvdl 		mask	SEND_SENSE		0x40
   3659  1.1     fvdl 		mask	SEND_REJ		0x20
   3660  1.1     fvdl 		mask	MSGOUT_PHASEMIS		0x10
   3661  1.1     fvdl 		mask	EXIT_MSG_LOOP		0x08
   3662  1.1     fvdl 		mask	CONT_MSG_LOOP_WRITE	0x04
   3663  1.1     fvdl 		mask	CONT_MSG_LOOP_READ	0x03
   3664  1.1     fvdl 		mask	CONT_MSG_LOOP_TARG	0x02
   3665  1.1     fvdl 		alias	RETURN_1
   3666  1.1     fvdl 	}
   3667  1.1     fvdl 	ARG_2 {
   3668  1.1     fvdl 		size		1
   3669  1.1     fvdl 		alias	RETURN_2
   3670  1.1     fvdl 	}
   3671  1.1     fvdl 
   3672  1.1     fvdl 	/*
   3673  1.1     fvdl 	 * Snapshot of MSG_OUT taken after each message is sent.
   3674  1.1     fvdl 	 */
   3675  1.1     fvdl 	LAST_MSG {
   3676  1.1     fvdl 		size		1
   3677  1.1     fvdl 	}
   3678  1.1     fvdl 
   3679  1.1     fvdl 	/*
   3680  1.1     fvdl 	 * Sequences the kernel driver has okayed for us.  This allows
   3681  1.1     fvdl 	 * the driver to do things like prevent initiator or target
   3682  1.1     fvdl 	 * operations.
   3683  1.1     fvdl 	 */
   3684  1.1     fvdl 	SCSISEQ_TEMPLATE {
   3685  1.1     fvdl 		size		1
   3686  1.1     fvdl 		field	MANUALCTL	0x40
   3687  1.1     fvdl 		field	ENSELI		0x20
   3688  1.1     fvdl 		field	ENRSELI		0x10
   3689  1.1     fvdl 		field	MANUALP		0x0C
   3690  1.1     fvdl 		field	ENAUTOATNP	0x02
   3691  1.1     fvdl 		field	ALTSTIM		0x01
   3692  1.1     fvdl 	}
   3693  1.1     fvdl 
   3694  1.1     fvdl 	/*
   3695  1.1     fvdl 	 * The initiator specified tag for this target mode transaction.
   3696  1.1     fvdl 	 */
   3697  1.1     fvdl 	INITIATOR_TAG {
   3698  1.1     fvdl 		size		1
   3699  1.1     fvdl 	}
   3700  1.1     fvdl 
   3701  1.1     fvdl 	SEQ_FLAGS2 {
   3702  1.1     fvdl 		size		1
   3703  1.1     fvdl 		field	TARGET_MSG_PENDING	  0x02
   3704  1.1     fvdl 		field	SELECTOUT_QFROZEN	  0x04
   3705  1.1     fvdl 	}
   3706  1.1     fvdl 
   3707  1.1     fvdl 	ALLOCFIFO_SCBPTR {
   3708  1.1     fvdl 		size		2
   3709  1.1     fvdl 	}
   3710  1.1     fvdl 
   3711  1.1     fvdl 	/*
   3712  1.3      wiz 	 * The maximum amount of time to wait, when interrupt coalescing
   3713  1.1     fvdl 	 * is enabled, before issueing a CMDCMPLT interrupt for a completed
   3714  1.1     fvdl 	 * command.
   3715  1.1     fvdl 	 */
   3716  1.3      wiz 	INT_COALESCING_TIMER {
   3717  1.1     fvdl 		size		2
   3718  1.1     fvdl 	}
   3719  1.1     fvdl 
   3720  1.1     fvdl 	/*
   3721  1.3      wiz 	 * The maximum number of commands to coalesce into a single interrupt.
   3722  1.1     fvdl 	 * Actually the 2's complement of that value to simplify sequencer
   3723  1.1     fvdl 	 * code.
   3724  1.1     fvdl 	 */
   3725  1.3      wiz 	INT_COALESCING_MAXCMDS {
   3726  1.1     fvdl 		size		1
   3727  1.1     fvdl 	}
   3728  1.1     fvdl 
   3729  1.1     fvdl 	/*
   3730  1.1     fvdl 	 * The minimum number of commands still outstanding required
   3731  1.3      wiz 	 * to continue coalescing (2's complement of value).
   3732  1.1     fvdl 	 */
   3733  1.3      wiz 	INT_COALESCING_MINCMDS {
   3734  1.1     fvdl 		size		1
   3735  1.1     fvdl 	}
   3736  1.1     fvdl 
   3737  1.1     fvdl 	/*
   3738  1.1     fvdl 	 * Number of commands "in-flight".
   3739  1.1     fvdl 	 */
   3740  1.1     fvdl 	CMDS_PENDING {
   3741  1.1     fvdl 		size		2
   3742  1.1     fvdl 	}
   3743  1.1     fvdl 
   3744  1.1     fvdl 	/*
   3745  1.3      wiz 	 * The count of commands that have been coalesced.
   3746  1.1     fvdl 	 */
   3747  1.3      wiz 	INT_COALESCING_CMDCOUNT {
   3748  1.1     fvdl 		size		1
   3749  1.1     fvdl 	}
   3750  1.1     fvdl 
   3751  1.1     fvdl 	/*
   3752  1.1     fvdl 	 * Since the HS_MAIBOX is self clearing, copy its contents to
   3753  1.1     fvdl 	 * this position in scratch ram every time it changes.
   3754  1.1     fvdl 	 */
   3755  1.1     fvdl 	LOCAL_HS_MAILBOX {
   3756  1.1     fvdl 		size		1
   3757  1.1     fvdl 	}
   3758  1.1     fvdl 	/*
   3759  1.1     fvdl 	 * Target-mode CDB type to CDB length table used
   3760  1.1     fvdl 	 * in non-packetized operation.
   3761  1.1     fvdl 	 */
   3762  1.1     fvdl 	CMDSIZE_TABLE {
   3763  1.1     fvdl 		size		8
   3764  1.1     fvdl 	}
   3765  1.1     fvdl }
   3766  1.1     fvdl 
   3767  1.1     fvdl /************************* Hardware SCB Definition ****************************/
   3768  1.1     fvdl scb {
   3769  1.1     fvdl 	address			0x180
   3770  1.1     fvdl 	size	64
   3771  1.1     fvdl 	modes	0, 1, 2, 3
   3772  1.1     fvdl 	SCB_RESIDUAL_DATACNT {
   3773  1.1     fvdl 		size	4
   3774  1.1     fvdl 		alias	SCB_CDB_STORE
   3775  1.1     fvdl 		alias	SCB_HOST_CDB_PTR
   3776  1.1     fvdl 	}
   3777  1.1     fvdl 	SCB_RESIDUAL_SGPTR {
   3778  1.1     fvdl 		size	4
   3779  1.1     fvdl 		field	SG_ADDR_MASK		0xf8	/* In the last byte */
   3780  1.1     fvdl 		field	SG_OVERRUN_RESID	0x02	/* In the first byte */
   3781  1.1     fvdl 		field	SG_LIST_NULL		0x01	/* In the first byte */
   3782  1.1     fvdl 	}
   3783  1.1     fvdl 	SCB_SCSI_STATUS {
   3784  1.1     fvdl 		size	1
   3785  1.1     fvdl 		alias	SCB_HOST_CDB_LEN
   3786  1.1     fvdl 	}
   3787  1.1     fvdl 	SCB_TARGET_PHASES {
   3788  1.1     fvdl 		size	1
   3789  1.1     fvdl 	}
   3790  1.1     fvdl 	SCB_TARGET_DATA_DIR {
   3791  1.1     fvdl 		size	1
   3792  1.1     fvdl 	}
   3793  1.1     fvdl 	SCB_TARGET_ITAG {
   3794  1.1     fvdl 		size	1
   3795  1.1     fvdl 	}
   3796  1.1     fvdl 	SCB_SENSE_BUSADDR {
   3797  1.1     fvdl 		/*
   3798  1.1     fvdl 		 * Only valid if CDB length is less than 13 bytes or
   3799  1.1     fvdl 		 * we are using a CDB pointer.  Otherwise contains
   3800  1.1     fvdl 		 * the last 4 bytes of embedded cdb information.
   3801  1.1     fvdl 		 */
   3802  1.1     fvdl 		size	4
   3803  1.1     fvdl 		alias	SCB_NEXT_COMPLETE
   3804  1.1     fvdl 	}
   3805  1.7  thorpej 	SCB_TAG {
   3806  1.7  thorpej 		alias	SCB_FIFO_USE_COUNT
   3807  1.4  thorpej 		size	2
   3808  1.4  thorpej 	}
   3809  1.1     fvdl 	SCB_CONTROL {
   3810  1.1     fvdl 		size	1
   3811  1.1     fvdl 		field	TARGET_SCB	0x80
   3812  1.1     fvdl 		field	DISCENB		0x40
   3813  1.1     fvdl 		field	TAG_ENB		0x20
   3814  1.1     fvdl 		field	MK_MESSAGE	0x10
   3815  1.1     fvdl 		field	STATUS_RCVD	0x08
   3816  1.1     fvdl 		field	DISCONNECTED	0x04
   3817  1.1     fvdl 		field	SCB_TAG_TYPE	0x03
   3818  1.1     fvdl 	}
   3819  1.1     fvdl 	SCB_SCSIID {
   3820  1.1     fvdl 		size	1
   3821  1.1     fvdl 		field	TID	0xF0
   3822  1.1     fvdl 		field	OID	0x0F
   3823  1.1     fvdl 	}
   3824  1.1     fvdl 	SCB_LUN {
   3825  1.1     fvdl 		size	1
   3826  1.5  thorpej 		field	LID	0xff
   3827  1.1     fvdl 	}
   3828  1.1     fvdl 	SCB_TASK_ATTRIBUTE {
   3829  1.1     fvdl 		size	1
   3830  1.5  thorpej 		/*
   3831  1.5  thorpej 		 * Overloaded field for non-packetized
   3832  1.5  thorpej 		 * ignore wide residue message handling.
   3833  1.5  thorpej 		 */
   3834  1.5  thorpej 		field	SCB_XFERLEN_ODD	0x01
   3835  1.1     fvdl 	}
   3836  1.4  thorpej 	SCB_CDB_LEN {
   3837  1.4  thorpej 		size	1
   3838  1.4  thorpej 		field	SCB_CDB_LEN_PTR 0x80	/* CDB in host memory */
   3839  1.4  thorpej 	}
   3840  1.4  thorpej 	SCB_TASK_MANAGEMENT {
   3841  1.4  thorpej 		size	1
   3842  1.4  thorpej 	}
   3843  1.7  thorpej 	SCB_DATAPTR {
   3844  1.7  thorpej 		size	8
   3845  1.7  thorpej 	}
   3846  1.7  thorpej 	SCB_DATACNT {
   3847  1.7  thorpej 		/*
   3848  1.7  thorpej 		 * The last byte is really the high address bits for
   3849  1.7  thorpej 		 * the data address.
   3850  1.7  thorpej 		 */
   3851  1.7  thorpej 		size	4
   3852  1.7  thorpej 		field	SG_LAST_SEG		0x80	/* In the fourth byte */
   3853  1.7  thorpej 		field	SG_HIGH_ADDR_BITS	0x7F	/* In the fourth byte */
   3854  1.7  thorpej 	}
   3855  1.7  thorpej 	SCB_SGPTR {
   3856  1.7  thorpej 		size	4
   3857  1.7  thorpej 		field	SG_STATUS_VALID		0x04	/* In the first byte */
   3858  1.7  thorpej 		field	SG_FULL_RESID		0x02	/* In the first byte */
   3859  1.7  thorpej 		field	SG_LIST_NULL		0x01	/* In the first byte */
   3860  1.7  thorpej 	}
   3861  1.7  thorpej 	SCB_BUSADDR {
   3862  1.7  thorpej 		size	4
   3863  1.7  thorpej 	}
   3864  1.7  thorpej 	SCB_NEXT {
   3865  1.7  thorpej 		alias	SCB_NEXT_SCB_BUSADDR
   3866  1.7  thorpej 		size	2
   3867  1.7  thorpej 	}
   3868  1.7  thorpej 	SCB_NEXT2 {
   3869  1.4  thorpej 		size	2
   3870  1.1     fvdl 	}
   3871  1.1     fvdl 	SCB_SPARE {
   3872  1.1     fvdl 		size	8
   3873  1.1     fvdl 		alias	SCB_PKT_LUN
   3874  1.1     fvdl 	}
   3875  1.1     fvdl 	SCB_DISCONNECTED_LISTS {
   3876  1.1     fvdl 		size	8
   3877  1.1     fvdl 	}
   3878  1.1     fvdl }
   3879  1.1     fvdl 
   3880  1.1     fvdl /*********************************** Constants ********************************/
   3881  1.1     fvdl const MK_MESSAGE_BIT_OFFSET	4
   3882  1.1     fvdl const TID_SHIFT		4
   3883  1.1     fvdl const TARGET_CMD_CMPLT	0xfe
   3884  1.1     fvdl const INVALID_ADDR	0x80
   3885  1.1     fvdl #define SCB_LIST_NULL	0xff
   3886  1.1     fvdl #define QOUTFIFO_ENTRY_VALID_TOGGLE	0x80
   3887  1.1     fvdl 
   3888  1.1     fvdl const CCSGADDR_MAX	0x80
   3889  1.1     fvdl const CCSCBADDR_MAX	0x80
   3890  1.1     fvdl const CCSGRAM_MAXSEGS	16
   3891  1.1     fvdl 
   3892  1.1     fvdl /* Selection Timeout Timer Constants */
   3893  1.1     fvdl const STIMESEL_SHIFT	3
   3894  1.1     fvdl const STIMESEL_MIN	0x18
   3895  1.1     fvdl const STIMESEL_BUG_ADJ	0x8
   3896  1.1     fvdl 
   3897  1.1     fvdl /* WDTR Message values */
   3898  1.1     fvdl const BUS_8_BIT			0x00
   3899  1.1     fvdl const BUS_16_BIT		0x01
   3900  1.1     fvdl const BUS_32_BIT		0x02
   3901  1.1     fvdl 
   3902  1.1     fvdl /* Offset maximums */
   3903  1.1     fvdl const MAX_OFFSET		0xfe
   3904  1.1     fvdl const MAX_OFFSET_PACED		0xfe
   3905  1.1     fvdl const MAX_OFFSET_PACED_BUG	0x7f
   3906  1.1     fvdl /*
   3907  1.1     fvdl  * Some 160 devices incorrectly accept 0xfe as a
   3908  1.1     fvdl  * sync offset, but will overrun this value.  Limit
   3909  1.1     fvdl  * to 0x7f for speed lower than U320 which will
   3910  1.1     fvdl  * avoid the persistent sync offset overruns.
   3911  1.1     fvdl  */
   3912  1.1     fvdl const MAX_OFFSET_NON_PACED	0x7f
   3913  1.1     fvdl const HOST_MSG			0xff
   3914  1.1     fvdl 
   3915  1.1     fvdl /*
   3916  1.1     fvdl  * The size of our sense buffers.
   3917  1.1     fvdl  * Sense buffer mapping can be handled in either of two ways.
   3918  1.1     fvdl  * The first is to allocate a dmamap for each transaction.
   3919  1.1     fvdl  * Depending on the architecture, dmamaps can be costly. The
   3920  1.1     fvdl  * alternative is to statically map the buffers in much the same
   3921  1.1     fvdl  * way we handle our scatter gather lists.  The driver implements
   3922  1.1     fvdl  * the later.
   3923  1.1     fvdl  */
   3924  1.1     fvdl const AHD_SENSE_BUFSIZE		256
   3925  1.1     fvdl 
   3926  1.1     fvdl /* Target mode command processing constants */
   3927  1.1     fvdl const CMD_GROUP_CODE_SHIFT	0x05
   3928  1.1     fvdl 
   3929  1.1     fvdl const STATUS_BUSY		0x08
   3930  1.1     fvdl const STATUS_QUEUE_FULL		0x28
   3931  1.1     fvdl const STATUS_PKT_SENSE		0xFF
   3932  1.1     fvdl const TARGET_DATA_IN		1
   3933  1.1     fvdl 
   3934  1.1     fvdl const SCB_TRANSFER_SIZE_FULL_LUN	56
   3935  1.1     fvdl const SCB_TRANSFER_SIZE_1BYTE_LUN	48
   3936  1.1     fvdl /* PKT_OVERRUN_BUFSIZE must be a multiple of 256 less than 64K */
   3937  1.1     fvdl const PKT_OVERRUN_BUFSIZE	512
   3938  1.1     fvdl 
   3939  1.1     fvdl /*
   3940  1.1     fvdl  * Timer parameters.
   3941  1.1     fvdl  */
   3942  1.1     fvdl const AHD_TIMER_US_PER_TICK	25
   3943  1.1     fvdl const AHD_TIMER_MAX_TICKS	0xFFFF
   3944  1.1     fvdl const AHD_TIMER_MAX_US		(AHD_TIMER_MAX_TICKS * AHD_TIMER_US_PER_TICK)
   3945  1.1     fvdl 
   3946  1.1     fvdl /*
   3947  1.1     fvdl  * Downloaded (kernel inserted) constants
   3948  1.1     fvdl  */
   3949  1.1     fvdl const SG_PREFETCH_CNT download
   3950  1.1     fvdl const SG_PREFETCH_CNT_LIMIT download
   3951  1.1     fvdl const SG_PREFETCH_ALIGN_MASK download
   3952  1.1     fvdl const SG_PREFETCH_ADDR_MASK download
   3953  1.1     fvdl const SG_SIZEOF download
   3954  1.1     fvdl const PKT_OVERRUN_BUFOFFSET download
   3955  1.1     fvdl const SCB_TRANSFER_SIZE	download
   3956  1.1     fvdl 
   3957  1.1     fvdl /*
   3958  1.1     fvdl  * BIOS SCB offsets
   3959  1.1     fvdl  */
   3960  1.1     fvdl const NVRAM_SCB_OFFSET	0x2C
   3961