xref: /freebsd/sys/dev/aic7xxx/aic79xx.reg (revision 95ee2897e98f5d444f26ed2334cc7c439f9c16c6)
1098ca2bdSWarner Losh/*-
217d24755SJustin T. Gibbs * Aic79xx register and scratch ram definitions.
317d24755SJustin T. Gibbs *
4789902c3SJustin T. Gibbs * Copyright (c) 1994-2001, 2004 Justin T. Gibbs.
53ebc1009SJustin T. Gibbs * Copyright (c) 2000-2002 Adaptec Inc.
617d24755SJustin T. Gibbs * All rights reserved.
717d24755SJustin T. Gibbs *
817d24755SJustin T. Gibbs * Redistribution and use in source and binary forms, with or without
917d24755SJustin T. Gibbs * modification, are permitted provided that the following conditions
1017d24755SJustin T. Gibbs * are met:
1117d24755SJustin T. Gibbs * 1. Redistributions of source code must retain the above copyright
1217d24755SJustin T. Gibbs *    notice, this list of conditions, and the following disclaimer,
1317d24755SJustin T. Gibbs *    without modification.
1417d24755SJustin T. Gibbs * 2. Redistributions in binary form must reproduce at minimum a disclaimer
1517d24755SJustin T. Gibbs *    substantially similar to the "NO WARRANTY" disclaimer below
1617d24755SJustin T. Gibbs *    ("Disclaimer") and any redistribution must be conditioned upon
1717d24755SJustin T. Gibbs *    including a substantially similar Disclaimer requirement for further
1817d24755SJustin T. Gibbs *    binary redistribution.
1917d24755SJustin T. Gibbs * 3. Neither the names of the above-listed copyright holders nor the names
2017d24755SJustin T. Gibbs *    of any contributors may be used to endorse or promote products derived
2117d24755SJustin T. Gibbs *    from this software without specific prior written permission.
2217d24755SJustin T. Gibbs *
2317d24755SJustin T. Gibbs * Alternatively, this software may be distributed under the terms of the
2417d24755SJustin T. Gibbs * GNU General Public License ("GPL") version 2 as published by the Free
2517d24755SJustin T. Gibbs * Software Foundation.
2617d24755SJustin T. Gibbs *
2717d24755SJustin T. Gibbs * NO WARRANTY
2817d24755SJustin T. Gibbs * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
2917d24755SJustin T. Gibbs * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
3017d24755SJustin T. Gibbs * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
3117d24755SJustin T. Gibbs * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
3217d24755SJustin T. Gibbs * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
3317d24755SJustin T. Gibbs * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
3417d24755SJustin T. Gibbs * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
3517d24755SJustin T. Gibbs * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
3617d24755SJustin T. Gibbs * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
3717d24755SJustin T. Gibbs * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
3817d24755SJustin T. Gibbs * POSSIBILITY OF SUCH DAMAGES.
3917d24755SJustin T. Gibbs */
4022dbd4c6SJustin T. GibbsVERSION = "$Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#76 $"
4117d24755SJustin T. Gibbs
4217d24755SJustin T. Gibbs/*
4317d24755SJustin T. Gibbs * This file is processed by the aic7xxx_asm utility for use in assembling
4417d24755SJustin T. Gibbs * firmware for the aic79xx family of SCSI host adapters as well as to generate
4517d24755SJustin T. Gibbs * a C header file for use in the kernel portion of the Aic79xx driver.
4617d24755SJustin T. Gibbs */
4717d24755SJustin T. Gibbs
4817d24755SJustin T. Gibbs/* Register window Modes */
4917d24755SJustin T. Gibbs#define M_DFF0		0
5017d24755SJustin T. Gibbs#define M_DFF1		1
5117d24755SJustin T. Gibbs#define M_CCHAN		2
5217d24755SJustin T. Gibbs#define M_SCSI		3
5317d24755SJustin T. Gibbs#define M_CFG		4
5417d24755SJustin T. Gibbs#define M_DST_SHIFT	4
5517d24755SJustin T. Gibbs
5617d24755SJustin T. Gibbs#define MK_MODE(src, dst) ((src) | ((dst) << M_DST_SHIFT))
5717d24755SJustin T. Gibbs#define SET_MODE(src, dst)						\
5817d24755SJustin T. Gibbs	SET_SRC_MODE	src;						\
5917d24755SJustin T. Gibbs	SET_DST_MODE	dst;						\
60c59c8a72SJustin T. Gibbs	if ((ahd->bugs & AHD_SET_MODE_BUG) != 0) {			\
61c59c8a72SJustin T. Gibbs		mvi	MK_MODE(src, dst) call set_mode_work_around;	\
62c59c8a72SJustin T. Gibbs	} else {							\
63c59c8a72SJustin T. Gibbs		mvi	MODE_PTR, MK_MODE(src, dst);			\
64c59c8a72SJustin T. Gibbs	}
65c59c8a72SJustin T. Gibbs
660c5aa4c5SScott Long#define RESTORE_MODE(mode)						\
670c5aa4c5SScott Long	if ((ahd->bugs & AHD_SET_MODE_BUG) != 0) {			\
680c5aa4c5SScott Long		mov	mode call set_mode_work_around;			\
690c5aa4c5SScott Long	} else {							\
700c5aa4c5SScott Long		mov	MODE_PTR, mode;					\
710c5aa4c5SScott Long	}
720c5aa4c5SScott Long
730c5aa4c5SScott Long#define SET_SEQINTCODE(code)						\
740c5aa4c5SScott Long	if ((ahd->bugs & AHD_INTCOLLISION_BUG) != 0) {			\
750c5aa4c5SScott Long		mvi	code call set_seqint_work_around;		\
760c5aa4c5SScott Long	} else {							\
770c5aa4c5SScott Long		mvi	SEQINTCODE, code;				\
780c5aa4c5SScott Long	}
7917d24755SJustin T. Gibbs
8017d24755SJustin T. Gibbs/*
8117d24755SJustin T. Gibbs * Mode Pointer
8217d24755SJustin T. Gibbs * Controls which of the 5, 512byte, address spaces should be used
8317d24755SJustin T. Gibbs * as the source and destination of any register accesses in our
8417d24755SJustin T. Gibbs * register window.
8517d24755SJustin T. Gibbs */
8617d24755SJustin T. Gibbsregister MODE_PTR {
8717d24755SJustin T. Gibbs	address			0x000
8817d24755SJustin T. Gibbs	access_mode	RW
893ebc1009SJustin T. Gibbs	field	DST_MODE	0x70
903ebc1009SJustin T. Gibbs	field	SRC_MODE	0x07
9117d24755SJustin T. Gibbs	mode_pointer
9217d24755SJustin T. Gibbs}
9317d24755SJustin T. Gibbs
9417d24755SJustin T. Gibbsconst SRC_MODE_SHIFT	0
9517d24755SJustin T. Gibbsconst DST_MODE_SHIFT	4
9617d24755SJustin T. Gibbs
9717d24755SJustin T. Gibbs/*
9817d24755SJustin T. Gibbs * Host Interrupt Status
9917d24755SJustin T. Gibbs */
10017d24755SJustin T. Gibbsregister INTSTAT {
10117d24755SJustin T. Gibbs	address			0x001
10217d24755SJustin T. Gibbs	access_mode	RW
1033ebc1009SJustin T. Gibbs	field	HWERRINT	0x80
1043ebc1009SJustin T. Gibbs	field	BRKADRINT	0x40
1053ebc1009SJustin T. Gibbs	field	SWTMINT		0x20
1063ebc1009SJustin T. Gibbs	field	PCIINT		0x10
1073ebc1009SJustin T. Gibbs	field	SCSIINT		0x08
1083ebc1009SJustin T. Gibbs	field	SEQINT		0x04
1093ebc1009SJustin T. Gibbs	field	CMDCMPLT	0x02
1103ebc1009SJustin T. Gibbs	field	SPLTINT		0x01
11117d24755SJustin T. Gibbs	mask	INT_PEND 0xFF
11217d24755SJustin T. Gibbs}
11317d24755SJustin T. Gibbs
11417d24755SJustin T. Gibbs/*
11517d24755SJustin T. Gibbs * Sequencer Interrupt Code
11617d24755SJustin T. Gibbs */
11717d24755SJustin T. Gibbsregister SEQINTCODE {
11817d24755SJustin T. Gibbs	address			0x002
11917d24755SJustin T. Gibbs	access_mode	RW
1203ebc1009SJustin T. Gibbs	field {
1210c5aa4c5SScott Long		NO_SEQINT,			/* No seqint pending. */
1220c5aa4c5SScott Long		BAD_PHASE,			/* unknown scsi bus phase */
1233ebc1009SJustin T. Gibbs		SEND_REJECT,			/* sending a message reject */
1243ebc1009SJustin T. Gibbs		PROTO_VIOLATION, 		/* Protocol Violation */
1253ebc1009SJustin T. Gibbs		NO_MATCH,			/* no cmd match for reconnect */
1263ebc1009SJustin T. Gibbs		IGN_WIDE_RES,			/* Complex IGN Wide Res Msg */
1273ebc1009SJustin T. Gibbs		PDATA_REINIT,			/*
12817d24755SJustin T. Gibbs						 * Returned to data phase
12917d24755SJustin T. Gibbs						 * that requires data
13017d24755SJustin T. Gibbs						 * transfer pointers to be
13117d24755SJustin T. Gibbs						 * recalculated from the
13217d24755SJustin T. Gibbs						 * transfer residual.
13317d24755SJustin T. Gibbs						 */
1343ebc1009SJustin T. Gibbs		HOST_MSG_LOOP,			/*
13517d24755SJustin T. Gibbs						 * The bus is ready for the
13617d24755SJustin T. Gibbs						 * host to perform another
13717d24755SJustin T. Gibbs						 * message transaction.  This
13817d24755SJustin T. Gibbs						 * mechanism is used for things
13917d24755SJustin T. Gibbs						 * like sync/wide negotiation
14017d24755SJustin T. Gibbs						 * that require a kernel based
14117d24755SJustin T. Gibbs						 * message state engine.
14217d24755SJustin T. Gibbs						 */
1433ebc1009SJustin T. Gibbs		BAD_STATUS,			/* Bad status from target */
1443ebc1009SJustin T. Gibbs		DATA_OVERRUN,			/*
14517d24755SJustin T. Gibbs						 * Target attempted to write
14617d24755SJustin T. Gibbs						 * beyond the bounds of its
14717d24755SJustin T. Gibbs						 * command.
14817d24755SJustin T. Gibbs						 */
1493ebc1009SJustin T. Gibbs		MKMSG_FAILED,			/*
15017d24755SJustin T. Gibbs						 * Target completed command
15117d24755SJustin T. Gibbs						 * without honoring our ATN
15217d24755SJustin T. Gibbs						 * request to issue a message.
15317d24755SJustin T. Gibbs						 */
1543ebc1009SJustin T. Gibbs		MISSED_BUSFREE,			/*
15517d24755SJustin T. Gibbs						 * The sequencer never saw
15617d24755SJustin T. Gibbs						 * the bus go free after
15717d24755SJustin T. Gibbs						 * either a command complete
15817d24755SJustin T. Gibbs						 * or disconnect message.
15917d24755SJustin T. Gibbs						 */
1603ebc1009SJustin T. Gibbs		DUMP_CARD_STATE,
1613ebc1009SJustin T. Gibbs		ILLEGAL_PHASE,
1623ebc1009SJustin T. Gibbs		INVALID_SEQINT,
1633ebc1009SJustin T. Gibbs		CFG4ISTAT_INTR,
1643ebc1009SJustin T. Gibbs		STATUS_OVERRUN,
1653ebc1009SJustin T. Gibbs		CFG4OVERRUN,
1660c5aa4c5SScott Long		ENTERING_NONPACK,
1670794987dSJustin T. Gibbs		TASKMGMT_FUNC_COMPLETE,		/*
1680794987dSJustin T. Gibbs						 * Task management function
1690794987dSJustin T. Gibbs						 * request completed with
1700794987dSJustin T. Gibbs						 * an expected busfree.
1710794987dSJustin T. Gibbs						 */
1720794987dSJustin T. Gibbs		TASKMGMT_CMD_CMPLT_OKAY,	/*
1730794987dSJustin T. Gibbs						 * A command with a non-zero
1740794987dSJustin T. Gibbs						 * task management function
1750794987dSJustin T. Gibbs						 * has completed via the normal
1760794987dSJustin T. Gibbs						 * command completion method
1770794987dSJustin T. Gibbs						 * for commands with a zero
1780794987dSJustin T. Gibbs						 * task management function.
1790794987dSJustin T. Gibbs						 * This happens when an attempt
1800794987dSJustin T. Gibbs						 * to abort a command loses
1810794987dSJustin T. Gibbs						 * the race for the command to
1820794987dSJustin T. Gibbs						 * complete normally.
1830794987dSJustin T. Gibbs						 */
1840c5aa4c5SScott Long		TRACEPOINT0,
1850c5aa4c5SScott Long		TRACEPOINT1,
1860c5aa4c5SScott Long		TRACEPOINT2,
1870c5aa4c5SScott Long		TRACEPOINT3,
188d7cff4abSJustin T. Gibbs		SAW_HWERR,
189d7cff4abSJustin T. Gibbs		BAD_SCB_STATUS
1903ebc1009SJustin T. Gibbs	}
19117d24755SJustin T. Gibbs}
19217d24755SJustin T. Gibbs
19317d24755SJustin T. Gibbs/*
19417d24755SJustin T. Gibbs * Clear Host Interrupt
19517d24755SJustin T. Gibbs */
19617d24755SJustin T. Gibbsregister CLRINT {
19717d24755SJustin T. Gibbs	address			0x003
19817d24755SJustin T. Gibbs	access_mode	WO
1993ebc1009SJustin T. Gibbs	field	CLRHWERRINT	0x80 /* Rev B or greater */
2003ebc1009SJustin T. Gibbs	field	CLRBRKADRINT	0x40
2013ebc1009SJustin T. Gibbs	field	CLRSWTMINT	0x20
20297cae63dSScott Long	field	CLRPCIINT	0x10
2033ebc1009SJustin T. Gibbs	field	CLRSCSIINT	0x08
2043ebc1009SJustin T. Gibbs	field	CLRSEQINT	0x04
2053ebc1009SJustin T. Gibbs	field	CLRCMDINT	0x02
2063ebc1009SJustin T. Gibbs	field	CLRSPLTINT	0x01
20717d24755SJustin T. Gibbs}
20817d24755SJustin T. Gibbs
20917d24755SJustin T. Gibbs/*
21017d24755SJustin T. Gibbs * Error Register
21117d24755SJustin T. Gibbs */
21217d24755SJustin T. Gibbsregister ERROR {
21317d24755SJustin T. Gibbs	address			0x004
21417d24755SJustin T. Gibbs	access_mode	RO
2153ebc1009SJustin T. Gibbs	field	CIOPARERR	0x80
2163ebc1009SJustin T. Gibbs	field	CIOACCESFAIL	0x40 /* Rev B or greater */
2173ebc1009SJustin T. Gibbs	field	MPARERR		0x20
2183ebc1009SJustin T. Gibbs	field	DPARERR		0x10
2193ebc1009SJustin T. Gibbs	field	SQPARERR	0x08
2203ebc1009SJustin T. Gibbs	field	ILLOPCODE	0x04
2213ebc1009SJustin T. Gibbs	field	DSCTMOUT	0x02
22217d24755SJustin T. Gibbs}
22317d24755SJustin T. Gibbs
22417d24755SJustin T. Gibbs/*
22517d24755SJustin T. Gibbs * Clear Error
22617d24755SJustin T. Gibbs */
22717d24755SJustin T. Gibbsregister CLRERR {
22817d24755SJustin T. Gibbs	address			0x004
22917d24755SJustin T. Gibbs	access_mode 	WO
2303ebc1009SJustin T. Gibbs	field	CLRCIOPARERR	0x80
2313ebc1009SJustin T. Gibbs	field	CLRCIOACCESFAIL	0x40 /* Rev B or greater */
2323ebc1009SJustin T. Gibbs	field	CLRMPARERR	0x20
2333ebc1009SJustin T. Gibbs	field	CLRDPARERR	0x10
2343ebc1009SJustin T. Gibbs	field	CLRSQPARERR	0x08
2353ebc1009SJustin T. Gibbs	field	CLRILLOPCODE	0x04
2363ebc1009SJustin T. Gibbs	field	CLRDSCTMOUT	0x02
23717d24755SJustin T. Gibbs}
23817d24755SJustin T. Gibbs
23917d24755SJustin T. Gibbs/*
24017d24755SJustin T. Gibbs * Host Control Register
24117d24755SJustin T. Gibbs * Overall host control of the device.
24217d24755SJustin T. Gibbs */
24317d24755SJustin T. Gibbsregister HCNTRL {
24417d24755SJustin T. Gibbs	address			0x005
24517d24755SJustin T. Gibbs	access_mode	RW
2463ebc1009SJustin T. Gibbs	field	SEQ_RESET	0x80 /* Rev B or greater */
2473ebc1009SJustin T. Gibbs	field	POWRDN		0x40
2483ebc1009SJustin T. Gibbs	field	SWINT		0x10
2493ebc1009SJustin T. Gibbs	field	SWTIMER_START_B	0x08 /* Rev B or greater */
2503ebc1009SJustin T. Gibbs	field	PAUSE		0x04
2513ebc1009SJustin T. Gibbs	field	INTEN		0x02
2523ebc1009SJustin T. Gibbs	field	CHIPRST		0x01
2533ebc1009SJustin T. Gibbs	field	CHIPRSTACK	0x01
25417d24755SJustin T. Gibbs}
25517d24755SJustin T. Gibbs
25617d24755SJustin T. Gibbs/*
25717d24755SJustin T. Gibbs * Host New SCB Queue Offset
25817d24755SJustin T. Gibbs */
25917d24755SJustin T. Gibbsregister HNSCB_QOFF {
26017d24755SJustin T. Gibbs	address			0x006
26117d24755SJustin T. Gibbs	access_mode	RW
26217d24755SJustin T. Gibbs	size		2
26317d24755SJustin T. Gibbs}
26417d24755SJustin T. Gibbs
26517d24755SJustin T. Gibbs/*
26617d24755SJustin T. Gibbs * Host Empty SCB Queue Offset
26717d24755SJustin T. Gibbs */
26817d24755SJustin T. Gibbsregister HESCB_QOFF {
26917d24755SJustin T. Gibbs	address			0x008
27017d24755SJustin T. Gibbs	access_mode	RW
27117d24755SJustin T. Gibbs}
27217d24755SJustin T. Gibbs
27317d24755SJustin T. Gibbs/*
27417d24755SJustin T. Gibbs * Host Mailbox
27517d24755SJustin T. Gibbs */
27617d24755SJustin T. Gibbsregister HS_MAILBOX {
2770794987dSJustin T. Gibbs	address			0x00B
27817d24755SJustin T. Gibbs	access_mode	RW
27917d24755SJustin T. Gibbs	mask	HOST_TQINPOS	0x80	/* Boundary at either 0 or 128 */
2808089f0f0SJustin T. Gibbs	mask	ENINT_COALESCE	0x40	/* Perform interrupt coalescing */
28117d24755SJustin T. Gibbs}
28217d24755SJustin T. Gibbs
28317d24755SJustin T. Gibbs/*
284*594c945aSPedro F. Giffuni * Sequencer Interrupt Status
28517d24755SJustin T. Gibbs */
28617d24755SJustin T. Gibbsregister SEQINTSTAT {
2870794987dSJustin T. Gibbs	address			0x00C
28817d24755SJustin T. Gibbs	access_mode	RO
2893ebc1009SJustin T. Gibbs	field	SEQ_SWTMRTO	0x10
2903ebc1009SJustin T. Gibbs	field	SEQ_SEQINT	0x08
2913ebc1009SJustin T. Gibbs	field	SEQ_SCSIINT	0x04
2923ebc1009SJustin T. Gibbs	field	SEQ_PCIINT	0x02
2933ebc1009SJustin T. Gibbs	field	SEQ_SPLTINT	0x01
29417d24755SJustin T. Gibbs}
29517d24755SJustin T. Gibbs
29617d24755SJustin T. Gibbs/*
29717d24755SJustin T. Gibbs * Clear SEQ Interrupt
29817d24755SJustin T. Gibbs */
29917d24755SJustin T. Gibbsregister CLRSEQINTSTAT {
3000794987dSJustin T. Gibbs	address			0x00C
30117d24755SJustin T. Gibbs	access_mode	WO
3023ebc1009SJustin T. Gibbs	field	CLRSEQ_SWTMRTO	0x10
3033ebc1009SJustin T. Gibbs	field	CLRSEQ_SEQINT	0x08
3043ebc1009SJustin T. Gibbs	field	CLRSEQ_SCSIINT	0x04
3053ebc1009SJustin T. Gibbs	field	CLRSEQ_PCIINT	0x02
3063ebc1009SJustin T. Gibbs	field	CLRSEQ_SPLTINT	0x01
30717d24755SJustin T. Gibbs}
30817d24755SJustin T. Gibbs
30917d24755SJustin T. Gibbs/*
31017d24755SJustin T. Gibbs * Software Timer
31117d24755SJustin T. Gibbs */
31217d24755SJustin T. Gibbsregister SWTIMER {
3130794987dSJustin T. Gibbs	address			0x00E
31417d24755SJustin T. Gibbs	access_mode	RW
31517d24755SJustin T. Gibbs	size		2
31617d24755SJustin T. Gibbs}
31717d24755SJustin T. Gibbs
31817d24755SJustin T. Gibbs/*
31917d24755SJustin T. Gibbs * SEQ New SCB Queue Offset
32017d24755SJustin T. Gibbs */
32117d24755SJustin T. Gibbsregister SNSCB_QOFF {
32217d24755SJustin T. Gibbs	address			0x010
32317d24755SJustin T. Gibbs	access_mode	RW
32417d24755SJustin T. Gibbs	size		2
32517d24755SJustin T. Gibbs	modes		M_CCHAN
32617d24755SJustin T. Gibbs}
32717d24755SJustin T. Gibbs
32817d24755SJustin T. Gibbs/*
32917d24755SJustin T. Gibbs * SEQ Empty SCB Queue Offset
33017d24755SJustin T. Gibbs */
33117d24755SJustin T. Gibbsregister SESCB_QOFF {
33217d24755SJustin T. Gibbs	address			0x012
33317d24755SJustin T. Gibbs	access_mode	RW
33417d24755SJustin T. Gibbs	modes		M_CCHAN
33517d24755SJustin T. Gibbs}
33617d24755SJustin T. Gibbs
33717d24755SJustin T. Gibbs/*
33817d24755SJustin T. Gibbs * SEQ Done SCB Queue Offset
33917d24755SJustin T. Gibbs */
34017d24755SJustin T. Gibbsregister SDSCB_QOFF {
34117d24755SJustin T. Gibbs	address			0x014
34217d24755SJustin T. Gibbs	access_mode	RW
34317d24755SJustin T. Gibbs	modes		M_CCHAN
34417d24755SJustin T. Gibbs	size		2
34517d24755SJustin T. Gibbs}
34617d24755SJustin T. Gibbs
34717d24755SJustin T. Gibbs/*
34817d24755SJustin T. Gibbs * Queue Offset Control & Status
34917d24755SJustin T. Gibbs */
35017d24755SJustin T. Gibbsregister QOFF_CTLSTA {
35117d24755SJustin T. Gibbs	address			0x016
35217d24755SJustin T. Gibbs	access_mode	RW
35317d24755SJustin T. Gibbs	modes		M_CCHAN
3543ebc1009SJustin T. Gibbs	field	EMPTY_SCB_AVAIL	0x80
3553ebc1009SJustin T. Gibbs	field	NEW_SCB_AVAIL	0x40
3563ebc1009SJustin T. Gibbs	field	SDSCB_ROLLOVR	0x20
3573ebc1009SJustin T. Gibbs	field	HS_MAILBOX_ACT	0x10
3583ebc1009SJustin T. Gibbs	field	SCB_QSIZE	0x0F {
3593ebc1009SJustin T. Gibbs		SCB_QSIZE_4,
3603ebc1009SJustin T. Gibbs		SCB_QSIZE_8,
3613ebc1009SJustin T. Gibbs		SCB_QSIZE_16,
3623ebc1009SJustin T. Gibbs		SCB_QSIZE_32,
3633ebc1009SJustin T. Gibbs		SCB_QSIZE_64,
3643ebc1009SJustin T. Gibbs		SCB_QSIZE_128,
3653ebc1009SJustin T. Gibbs		SCB_QSIZE_256,
3663ebc1009SJustin T. Gibbs		SCB_QSIZE_512,
3673ebc1009SJustin T. Gibbs		SCB_QSIZE_1024,
3683ebc1009SJustin T. Gibbs		SCB_QSIZE_2048,
3693ebc1009SJustin T. Gibbs		SCB_QSIZE_4096,
3703ebc1009SJustin T. Gibbs		SCB_QSIZE_8192,
3713ebc1009SJustin T. Gibbs		SCB_QSIZE_16384
3723ebc1009SJustin T. Gibbs	}
37317d24755SJustin T. Gibbs}
37417d24755SJustin T. Gibbs
37517d24755SJustin T. Gibbs/*
37617d24755SJustin T. Gibbs * Interrupt Control
37717d24755SJustin T. Gibbs */
37817d24755SJustin T. Gibbsregister INTCTL {
37917d24755SJustin T. Gibbs	address			0x018
38017d24755SJustin T. Gibbs	access_mode	RW
3813ebc1009SJustin T. Gibbs	field	SWTMINTMASK	0x80
3823ebc1009SJustin T. Gibbs	field	SWTMINTEN	0x40
3833ebc1009SJustin T. Gibbs	field	SWTIMER_START	0x20
3843ebc1009SJustin T. Gibbs	field	AUTOCLRCMDINT	0x10
3853ebc1009SJustin T. Gibbs	field	PCIINTEN	0x08
3863ebc1009SJustin T. Gibbs	field	SCSIINTEN	0x04
3873ebc1009SJustin T. Gibbs	field	SEQINTEN	0x02
3883ebc1009SJustin T. Gibbs	field	SPLTINTEN	0x01
38917d24755SJustin T. Gibbs}
39017d24755SJustin T. Gibbs
39117d24755SJustin T. Gibbs/*
39217d24755SJustin T. Gibbs * Data FIFO Control
39317d24755SJustin T. Gibbs */
39417d24755SJustin T. Gibbsregister DFCNTRL {
39517d24755SJustin T. Gibbs	address			0x019
39617d24755SJustin T. Gibbs	access_mode	RW
39717d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
3983ebc1009SJustin T. Gibbs	field	PRELOADEN	0x80
3990c5aa4c5SScott Long	field	SCSIENWRDIS	0x40	/* Rev B only. */
4003ebc1009SJustin T. Gibbs	field	SCSIEN		0x20
4013ebc1009SJustin T. Gibbs	field	SCSIENACK	0x20
4023ebc1009SJustin T. Gibbs	field	HDMAEN		0x08
4033ebc1009SJustin T. Gibbs	field	HDMAENACK	0x08
4043ebc1009SJustin T. Gibbs	field	DIRECTION	0x04
4053ebc1009SJustin T. Gibbs	field	DIRECTIONACK	0x04
4063ebc1009SJustin T. Gibbs	field	FIFOFLUSH	0x02
4073ebc1009SJustin T. Gibbs	field	FIFOFLUSHACK	0x02
4083ebc1009SJustin T. Gibbs	field	DIRECTIONEN	0x01
40917d24755SJustin T. Gibbs}
41017d24755SJustin T. Gibbs
41117d24755SJustin T. Gibbs/*
41217d24755SJustin T. Gibbs * Device Space Command 0
41317d24755SJustin T. Gibbs */
41417d24755SJustin T. Gibbsregister DSCOMMAND0 {
41517d24755SJustin T. Gibbs	address			0x019
41617d24755SJustin T. Gibbs	access_mode	RW
41717d24755SJustin T. Gibbs	modes		M_CFG
4183ebc1009SJustin T. Gibbs	field	CACHETHEN	0x80	/* Cache Threshold enable */
4193ebc1009SJustin T. Gibbs	field	DPARCKEN	0x40	/* Data Parity Check Enable */
4203ebc1009SJustin T. Gibbs	field	MPARCKEN	0x20	/* Memory Parity Check Enable */
4213ebc1009SJustin T. Gibbs	field	EXTREQLCK	0x10	/* External Request Lock */
4223ebc1009SJustin T. Gibbs	field	DISABLE_TWATE	0x02	/* Rev B or greater */
4233ebc1009SJustin T. Gibbs	field	CIOPARCKEN	0x01	/* Internal bus parity error enable */
42417d24755SJustin T. Gibbs}
42517d24755SJustin T. Gibbs
42617d24755SJustin T. Gibbs/*
42717d24755SJustin T. Gibbs * Data FIFO Status
42817d24755SJustin T. Gibbs */
42917d24755SJustin T. Gibbsregister DFSTATUS {
43017d24755SJustin T. Gibbs	address			0x01A
43117d24755SJustin T. Gibbs	access_mode	RO
43217d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
4333ebc1009SJustin T. Gibbs	field	PRELOAD_AVAIL		0x80
4343ebc1009SJustin T. Gibbs	field	PKT_PRELOAD_AVAIL	0x40
4353ebc1009SJustin T. Gibbs	field	MREQPEND		0x10
4363ebc1009SJustin T. Gibbs	field	HDONE			0x08
4373ebc1009SJustin T. Gibbs	field	DFTHRESH		0x04
4383ebc1009SJustin T. Gibbs	field	FIFOFULL		0x02
4393ebc1009SJustin T. Gibbs	field	FIFOEMP			0x01
44017d24755SJustin T. Gibbs}
44117d24755SJustin T. Gibbs
44217d24755SJustin T. Gibbs/*
44317d24755SJustin T. Gibbs * S/G Cache Pointer
44417d24755SJustin T. Gibbs */
44517d24755SJustin T. Gibbsregister SG_CACHE_PRE {
44617d24755SJustin T. Gibbs	address			0x01B
44717d24755SJustin T. Gibbs	access_mode	WO
44817d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
4493ebc1009SJustin T. Gibbs	field	SG_ADDR_MASK	0xf8
4503ebc1009SJustin T. Gibbs	field	ODD_SEG		0x04
4513ebc1009SJustin T. Gibbs	field	LAST_SEG	0x02
45217d24755SJustin T. Gibbs}
45317d24755SJustin T. Gibbs
45417d24755SJustin T. Gibbsregister SG_CACHE_SHADOW {
45517d24755SJustin T. Gibbs	address			0x01B
45617d24755SJustin T. Gibbs	access_mode	RO
45717d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
4583ebc1009SJustin T. Gibbs	field	SG_ADDR_MASK	0xf8
4593ebc1009SJustin T. Gibbs	field	ODD_SEG		0x04
4603ebc1009SJustin T. Gibbs	field	LAST_SEG	0x02
4613ebc1009SJustin T. Gibbs	field	LAST_SEG_DONE	0x01
46217d24755SJustin T. Gibbs}
46317d24755SJustin T. Gibbs
46417d24755SJustin T. Gibbs/*
46517d24755SJustin T. Gibbs * Arbiter Control
46617d24755SJustin T. Gibbs */
46717d24755SJustin T. Gibbsregister ARBCTL {
46817d24755SJustin T. Gibbs	address			0x01B
46917d24755SJustin T. Gibbs	access_mode	RW
47017d24755SJustin T. Gibbs	modes		M_CFG
4713ebc1009SJustin T. Gibbs	field	RESET_HARB	0x80
4723ebc1009SJustin T. Gibbs	field	RETRY_SWEN	0x08
4733ebc1009SJustin T. Gibbs	field	USE_TIME	0x07
47417d24755SJustin T. Gibbs}
47517d24755SJustin T. Gibbs
47617d24755SJustin T. Gibbs/*
47717d24755SJustin T. Gibbs * Data Channel Host Address
47817d24755SJustin T. Gibbs */
47917d24755SJustin T. Gibbsregister HADDR {
48017d24755SJustin T. Gibbs	address			0x070
48117d24755SJustin T. Gibbs	access_mode	RW
48217d24755SJustin T. Gibbs	size		8
48317d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
48417d24755SJustin T. Gibbs}
48517d24755SJustin T. Gibbs
48617d24755SJustin T. Gibbs/*
48717d24755SJustin T. Gibbs * Host Overlay DMA Address
48817d24755SJustin T. Gibbs */
48917d24755SJustin T. Gibbsregister HODMAADR {
49017d24755SJustin T. Gibbs	address			0x070
49117d24755SJustin T. Gibbs	access_mode	RW
49217d24755SJustin T. Gibbs	size		8
49317d24755SJustin T. Gibbs	modes		M_SCSI
49417d24755SJustin T. Gibbs}
49517d24755SJustin T. Gibbs
49617d24755SJustin T. Gibbs/*
4970c5aa4c5SScott Long * PCI PLL Delay.
4980c5aa4c5SScott Long */
4990c5aa4c5SScott Longregister PLLDELAY {
5000c5aa4c5SScott Long	address			0x070
5010c5aa4c5SScott Long	access_mode	RW
5020c5aa4c5SScott Long	size		1
5030c5aa4c5SScott Long	modes		M_CFG
5040c5aa4c5SScott Long	field	SPLIT_DROP_REQ	0x80
5050c5aa4c5SScott Long}
5060c5aa4c5SScott Long
5070c5aa4c5SScott Long/*
50817d24755SJustin T. Gibbs * Data Channel Host Count
50917d24755SJustin T. Gibbs */
51017d24755SJustin T. Gibbsregister HCNT {
51117d24755SJustin T. Gibbs	address			0x078
51217d24755SJustin T. Gibbs	access_mode	RW
51317d24755SJustin T. Gibbs	size		3
51417d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
51517d24755SJustin T. Gibbs}
51617d24755SJustin T. Gibbs
51717d24755SJustin T. Gibbs/*
51817d24755SJustin T. Gibbs * Host Overlay DMA Count
51917d24755SJustin T. Gibbs */
52017d24755SJustin T. Gibbsregister HODMACNT {
52117d24755SJustin T. Gibbs	address			0x078
52217d24755SJustin T. Gibbs	access_mode	RW
52317d24755SJustin T. Gibbs	size		2
52417d24755SJustin T. Gibbs	modes		M_SCSI
52517d24755SJustin T. Gibbs}
52617d24755SJustin T. Gibbs
52717d24755SJustin T. Gibbs/*
52817d24755SJustin T. Gibbs * Host Overlay DMA Enable
52917d24755SJustin T. Gibbs */
53017d24755SJustin T. Gibbsregister HODMAEN {
53117d24755SJustin T. Gibbs	address			0x07A
53217d24755SJustin T. Gibbs	access_mode	RW
53317d24755SJustin T. Gibbs	modes		M_SCSI
53417d24755SJustin T. Gibbs}
53517d24755SJustin T. Gibbs
53617d24755SJustin T. Gibbs/*
53717d24755SJustin T. Gibbs * Scatter/Gather Host Address
53817d24755SJustin T. Gibbs */
53917d24755SJustin T. Gibbsregister SGHADDR {
54017d24755SJustin T. Gibbs	address			0x07C
54117d24755SJustin T. Gibbs	access_mode	RW
54217d24755SJustin T. Gibbs	size		8
54317d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
54417d24755SJustin T. Gibbs}
54517d24755SJustin T. Gibbs
54617d24755SJustin T. Gibbs/*
54717d24755SJustin T. Gibbs * SCB Host Address
54817d24755SJustin T. Gibbs */
54917d24755SJustin T. Gibbsregister SCBHADDR {
55017d24755SJustin T. Gibbs	address			0x07C
55117d24755SJustin T. Gibbs	access_mode	RW
55217d24755SJustin T. Gibbs	size		8
55317d24755SJustin T. Gibbs	modes		M_CCHAN
55417d24755SJustin T. Gibbs}
55517d24755SJustin T. Gibbs
55617d24755SJustin T. Gibbs/*
55717d24755SJustin T. Gibbs * Scatter/Gather Host Count
55817d24755SJustin T. Gibbs */
55917d24755SJustin T. Gibbsregister SGHCNT {
56017d24755SJustin T. Gibbs	address			0x084
56117d24755SJustin T. Gibbs	access_mode	RW
56217d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
56317d24755SJustin T. Gibbs}
56417d24755SJustin T. Gibbs
56517d24755SJustin T. Gibbs/*
56617d24755SJustin T. Gibbs * SCB Host Count
56717d24755SJustin T. Gibbs */
56817d24755SJustin T. Gibbsregister SCBHCNT {
56917d24755SJustin T. Gibbs	address			0x084
57017d24755SJustin T. Gibbs	access_mode	RW
57117d24755SJustin T. Gibbs	modes		M_CCHAN
57217d24755SJustin T. Gibbs}
57317d24755SJustin T. Gibbs
57417d24755SJustin T. Gibbs/*
57517d24755SJustin T. Gibbs * Data FIFO Threshold
57617d24755SJustin T. Gibbs */
57717d24755SJustin T. Gibbsregister DFF_THRSH {
57817d24755SJustin T. Gibbs	address			0x088
57917d24755SJustin T. Gibbs	access_mode	RW
58017d24755SJustin T. Gibbs	modes		M_CFG
5813ebc1009SJustin T. Gibbs	field	WR_DFTHRSH	0x70 {
5823ebc1009SJustin T. Gibbs		WR_DFTHRSH_MIN,
5833ebc1009SJustin T. Gibbs		WR_DFTHRSH_25,
5843ebc1009SJustin T. Gibbs		WR_DFTHRSH_50,
5853ebc1009SJustin T. Gibbs		WR_DFTHRSH_63,
5863ebc1009SJustin T. Gibbs		WR_DFTHRSH_75,
5873ebc1009SJustin T. Gibbs		WR_DFTHRSH_85,
5883ebc1009SJustin T. Gibbs		WR_DFTHRSH_90,
5893ebc1009SJustin T. Gibbs		WR_DFTHRSH_MAX
5903ebc1009SJustin T. Gibbs	}
5913ebc1009SJustin T. Gibbs	field	RD_DFTHRSH	0x07 {
5923ebc1009SJustin T. Gibbs		RD_DFTHRSH_MIN,
5933ebc1009SJustin T. Gibbs		RD_DFTHRSH_25,
5943ebc1009SJustin T. Gibbs		RD_DFTHRSH_50,
5953ebc1009SJustin T. Gibbs		RD_DFTHRSH_63,
5963ebc1009SJustin T. Gibbs		RD_DFTHRSH_75,
5973ebc1009SJustin T. Gibbs		RD_DFTHRSH_85,
5983ebc1009SJustin T. Gibbs		RD_DFTHRSH_90,
5993ebc1009SJustin T. Gibbs		RD_DFTHRSH_MAX
6003ebc1009SJustin T. Gibbs	}
60117d24755SJustin T. Gibbs}
60217d24755SJustin T. Gibbs
60317d24755SJustin T. Gibbs/*
60417d24755SJustin T. Gibbs * ROM Address
60517d24755SJustin T. Gibbs */
60617d24755SJustin T. Gibbsregister ROMADDR {
60717d24755SJustin T. Gibbs	address			0x08A
60817d24755SJustin T. Gibbs	access_mode	RW
60917d24755SJustin T. Gibbs	size		3
61017d24755SJustin T. Gibbs}
61117d24755SJustin T. Gibbs
61217d24755SJustin T. Gibbs/*
61317d24755SJustin T. Gibbs * ROM Control
61417d24755SJustin T. Gibbs */
61517d24755SJustin T. Gibbsregister ROMCNTRL {
61617d24755SJustin T. Gibbs	address			0x08D
61717d24755SJustin T. Gibbs	access_mode	RW
6183ebc1009SJustin T. Gibbs	field	ROMOP		0xE0
6193ebc1009SJustin T. Gibbs	field	ROMSPD		0x18
6203ebc1009SJustin T. Gibbs	field	REPEAT		0x02
6213ebc1009SJustin T. Gibbs	field	RDY		0x01
62217d24755SJustin T. Gibbs}
62317d24755SJustin T. Gibbs
62417d24755SJustin T. Gibbs/*
62517d24755SJustin T. Gibbs * ROM Data
62617d24755SJustin T. Gibbs */
62717d24755SJustin T. Gibbsregister ROMDATA {
62817d24755SJustin T. Gibbs	address			0x08E
62917d24755SJustin T. Gibbs	access_mode	RW
63017d24755SJustin T. Gibbs}
63117d24755SJustin T. Gibbs
63217d24755SJustin T. Gibbs/*
63317d24755SJustin T. Gibbs * Data Channel Receive Message 0
63417d24755SJustin T. Gibbs */
63517d24755SJustin T. Gibbsregister DCHRXMSG0 {
63617d24755SJustin T. Gibbs	address			0x090
63717d24755SJustin T. Gibbs	access_mode	RO
63817d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
6393ebc1009SJustin T. Gibbs	field		CDNUM	0xF8
6403ebc1009SJustin T. Gibbs	field		CFNUM	0x07
64117d24755SJustin T. Gibbs}
64217d24755SJustin T. Gibbs
64317d24755SJustin T. Gibbs/*
644*594c945aSPedro F. Giffuni * CMC Receive Message 0
64517d24755SJustin T. Gibbs */
64617d24755SJustin T. Gibbsregister CMCRXMSG0 {
64717d24755SJustin T. Gibbs	address			0x090
64817d24755SJustin T. Gibbs	access_mode	RO
64917d24755SJustin T. Gibbs	modes		M_CCHAN
6503ebc1009SJustin T. Gibbs	field		CDNUM	0xF8
6513ebc1009SJustin T. Gibbs	field		CFNUM	0x07
65217d24755SJustin T. Gibbs}
65317d24755SJustin T. Gibbs
65417d24755SJustin T. Gibbs/*
655*594c945aSPedro F. Giffuni * Overlay Receive Message 0
65617d24755SJustin T. Gibbs */
65717d24755SJustin T. Gibbsregister OVLYRXMSG0 {
65817d24755SJustin T. Gibbs	address			0x090
65917d24755SJustin T. Gibbs	access_mode	RO
66017d24755SJustin T. Gibbs	modes		M_SCSI
6613ebc1009SJustin T. Gibbs	field		CDNUM	0xF8
6623ebc1009SJustin T. Gibbs	field		CFNUM	0x07
66317d24755SJustin T. Gibbs}
66417d24755SJustin T. Gibbs
66517d24755SJustin T. Gibbs/*
66617d24755SJustin T. Gibbs * Relaxed Order Enable
66717d24755SJustin T. Gibbs */
66817d24755SJustin T. Gibbsregister ROENABLE {
66917d24755SJustin T. Gibbs	address			0x090
67017d24755SJustin T. Gibbs	access_mode	RW
67117d24755SJustin T. Gibbs	modes		M_CFG
6723ebc1009SJustin T. Gibbs	field	MSIROEN		0x20
6733ebc1009SJustin T. Gibbs	field	OVLYROEN	0x10
6743ebc1009SJustin T. Gibbs	field	CMCROEN		0x08
6753ebc1009SJustin T. Gibbs	field	SGROEN		0x04
6763ebc1009SJustin T. Gibbs	field	DCH1ROEN	0x02
6773ebc1009SJustin T. Gibbs	field	DCH0ROEN	0x01
67817d24755SJustin T. Gibbs}
67917d24755SJustin T. Gibbs
68017d24755SJustin T. Gibbs/*
68117d24755SJustin T. Gibbs * Data Channel Receive Message 1
68217d24755SJustin T. Gibbs */
68317d24755SJustin T. Gibbsregister DCHRXMSG1 {
68417d24755SJustin T. Gibbs	address			0x091
68517d24755SJustin T. Gibbs	access_mode	RO
68617d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
6873ebc1009SJustin T. Gibbs	field	CBNUM		0xFF
68817d24755SJustin T. Gibbs}
68917d24755SJustin T. Gibbs
69017d24755SJustin T. Gibbs/*
691*594c945aSPedro F. Giffuni * CMC Receive Message 1
69217d24755SJustin T. Gibbs */
69317d24755SJustin T. Gibbsregister CMCRXMSG1 {
69417d24755SJustin T. Gibbs	address			0x091
69517d24755SJustin T. Gibbs	access_mode	RO
69617d24755SJustin T. Gibbs	modes		M_CCHAN
6973ebc1009SJustin T. Gibbs	field	CBNUM		0xFF
69817d24755SJustin T. Gibbs}
69917d24755SJustin T. Gibbs
70017d24755SJustin T. Gibbs/*
701*594c945aSPedro F. Giffuni * Overlay Receive Message 1
70217d24755SJustin T. Gibbs */
70317d24755SJustin T. Gibbsregister OVLYRXMSG1 {
70417d24755SJustin T. Gibbs	address			0x091
70517d24755SJustin T. Gibbs	access_mode	RO
70617d24755SJustin T. Gibbs	modes		M_SCSI
7073ebc1009SJustin T. Gibbs	field	CBNUM		0xFF
70817d24755SJustin T. Gibbs}
70917d24755SJustin T. Gibbs
71017d24755SJustin T. Gibbs/*
71117d24755SJustin T. Gibbs * No Snoop Enable
71217d24755SJustin T. Gibbs */
71317d24755SJustin T. Gibbsregister NSENABLE {
71417d24755SJustin T. Gibbs	address			0x091
71517d24755SJustin T. Gibbs	access_mode	RW
71617d24755SJustin T. Gibbs	modes		M_CFG
7173ebc1009SJustin T. Gibbs	field	MSINSEN		0x20
7183ebc1009SJustin T. Gibbs	field	OVLYNSEN	0x10
7193ebc1009SJustin T. Gibbs	field	CMCNSEN		0x08
7203ebc1009SJustin T. Gibbs	field	SGNSEN		0x04
7213ebc1009SJustin T. Gibbs	field	DCH1NSEN	0x02
7223ebc1009SJustin T. Gibbs	field	DCH0NSEN	0x01
72317d24755SJustin T. Gibbs}
72417d24755SJustin T. Gibbs
72517d24755SJustin T. Gibbs/*
72617d24755SJustin T. Gibbs * Data Channel Receive Message 2
72717d24755SJustin T. Gibbs */
72817d24755SJustin T. Gibbsregister DCHRXMSG2 {
72917d24755SJustin T. Gibbs	address			0x092
73017d24755SJustin T. Gibbs	access_mode	RO
73117d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
7323ebc1009SJustin T. Gibbs	field	MINDEX		0xFF
73317d24755SJustin T. Gibbs}
73417d24755SJustin T. Gibbs
73517d24755SJustin T. Gibbs/*
736*594c945aSPedro F. Giffuni * CMC Receive Message 2
73717d24755SJustin T. Gibbs */
73817d24755SJustin T. Gibbsregister CMCRXMSG2 {
73917d24755SJustin T. Gibbs	address			0x092
74017d24755SJustin T. Gibbs	access_mode	RO
74117d24755SJustin T. Gibbs	modes		M_CCHAN
7423ebc1009SJustin T. Gibbs	field	MINDEX		0xFF
74317d24755SJustin T. Gibbs}
74417d24755SJustin T. Gibbs
74517d24755SJustin T. Gibbs/*
746*594c945aSPedro F. Giffuni * Overlay Receive Message 2
74717d24755SJustin T. Gibbs */
74817d24755SJustin T. Gibbsregister OVLYRXMSG2 {
74917d24755SJustin T. Gibbs	address			0x092
75017d24755SJustin T. Gibbs	access_mode	RO
75117d24755SJustin T. Gibbs	modes		M_SCSI
7523ebc1009SJustin T. Gibbs	field	MINDEX		0xFF
75317d24755SJustin T. Gibbs}
75417d24755SJustin T. Gibbs
75517d24755SJustin T. Gibbs/*
75617d24755SJustin T. Gibbs * Outstanding Split Transactions
75717d24755SJustin T. Gibbs */
75817d24755SJustin T. Gibbsregister OST {
75917d24755SJustin T. Gibbs	address			0x092
76017d24755SJustin T. Gibbs	access_mode	RW
76117d24755SJustin T. Gibbs	modes		M_CFG
76217d24755SJustin T. Gibbs}
76317d24755SJustin T. Gibbs
76417d24755SJustin T. Gibbs/*
76517d24755SJustin T. Gibbs * Data Channel Receive Message 3
76617d24755SJustin T. Gibbs */
76717d24755SJustin T. Gibbsregister DCHRXMSG3 {
76817d24755SJustin T. Gibbs	address			0x093
76917d24755SJustin T. Gibbs	access_mode	RO
77017d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
7713ebc1009SJustin T. Gibbs	field	MCLASS		0x0F
77217d24755SJustin T. Gibbs}
77317d24755SJustin T. Gibbs
77417d24755SJustin T. Gibbs/*
775*594c945aSPedro F. Giffuni * CMC Receive Message 3
77617d24755SJustin T. Gibbs */
77717d24755SJustin T. Gibbsregister CMCRXMSG3 {
77817d24755SJustin T. Gibbs	address			0x093
77917d24755SJustin T. Gibbs	access_mode	RO
78017d24755SJustin T. Gibbs	modes		M_CCHAN
7813ebc1009SJustin T. Gibbs	field	MCLASS		0x0F
78217d24755SJustin T. Gibbs}
78317d24755SJustin T. Gibbs
78417d24755SJustin T. Gibbs/*
785*594c945aSPedro F. Giffuni * Overlay Receive Message 3
78617d24755SJustin T. Gibbs */
78717d24755SJustin T. Gibbsregister OVLYRXMSG3 {
78817d24755SJustin T. Gibbs	address			0x093
78917d24755SJustin T. Gibbs	access_mode	RO
79017d24755SJustin T. Gibbs	modes		M_SCSI
7913ebc1009SJustin T. Gibbs	field	MCLASS		0x0F
79217d24755SJustin T. Gibbs}
79317d24755SJustin T. Gibbs
79417d24755SJustin T. Gibbs/*
79517d24755SJustin T. Gibbs * PCI-X Control
79617d24755SJustin T. Gibbs */
79717d24755SJustin T. Gibbsregister PCIXCTL {
79817d24755SJustin T. Gibbs	address			0x093
79917d24755SJustin T. Gibbs	access_mode	RW
80017d24755SJustin T. Gibbs	modes		M_CFG
8013ebc1009SJustin T. Gibbs	field	SERRPULSE	0x80
8023ebc1009SJustin T. Gibbs	field	UNEXPSCIEN	0x20
8033ebc1009SJustin T. Gibbs	field	SPLTSMADIS	0x10
8043ebc1009SJustin T. Gibbs	field	SPLTSTADIS	0x08
8053ebc1009SJustin T. Gibbs	field	SRSPDPEEN	0x04
8063ebc1009SJustin T. Gibbs	field	TSCSERREN	0x02
8073ebc1009SJustin T. Gibbs	field	CMPABCDIS	0x01
80817d24755SJustin T. Gibbs}
80917d24755SJustin T. Gibbs
81017d24755SJustin T. Gibbs/*
81117d24755SJustin T. Gibbs * CMC Sequencer Byte Count
81217d24755SJustin T. Gibbs */
81317d24755SJustin T. Gibbsregister CMCSEQBCNT {
81417d24755SJustin T. Gibbs	address			0x094
81517d24755SJustin T. Gibbs	access_mode	RO
81617d24755SJustin T. Gibbs	modes		M_CCHAN
81717d24755SJustin T. Gibbs}
81817d24755SJustin T. Gibbs
81917d24755SJustin T. Gibbs/*
82017d24755SJustin T. Gibbs * Overlay Sequencer Byte Count
82117d24755SJustin T. Gibbs */
82217d24755SJustin T. Gibbsregister OVLYSEQBCNT {
82317d24755SJustin T. Gibbs	address			0x094
82417d24755SJustin T. Gibbs	access_mode	RO
82517d24755SJustin T. Gibbs	modes		M_SCSI
82617d24755SJustin T. Gibbs}
82717d24755SJustin T. Gibbs
82817d24755SJustin T. Gibbs/*
82917d24755SJustin T. Gibbs * Data Channel Sequencer Byte Count
83017d24755SJustin T. Gibbs */
83117d24755SJustin T. Gibbsregister DCHSEQBCNT {
83217d24755SJustin T. Gibbs	address			0x094
83317d24755SJustin T. Gibbs	access_mode	RO
83417d24755SJustin T. Gibbs	size		2
83517d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
83617d24755SJustin T. Gibbs}
83717d24755SJustin T. Gibbs
83817d24755SJustin T. Gibbs/*
83917d24755SJustin T. Gibbs * Data Channel Split Status 0
84017d24755SJustin T. Gibbs */
84117d24755SJustin T. Gibbsregister DCHSPLTSTAT0 {
84217d24755SJustin T. Gibbs	address			0x096
84317d24755SJustin T. Gibbs	access_mode	RW
84417d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
8453ebc1009SJustin T. Gibbs	field	STAETERM	0x80
8463ebc1009SJustin T. Gibbs	field	SCBCERR		0x40
8473ebc1009SJustin T. Gibbs	field	SCADERR		0x20
8483ebc1009SJustin T. Gibbs	field	SCDATBUCKET	0x10
8493ebc1009SJustin T. Gibbs	field	CNTNOTCMPLT	0x08
8503ebc1009SJustin T. Gibbs	field	RXOVRUN		0x04
8513ebc1009SJustin T. Gibbs	field	RXSCEMSG	0x02
8523ebc1009SJustin T. Gibbs	field	RXSPLTRSP	0x01
85317d24755SJustin T. Gibbs}
85417d24755SJustin T. Gibbs
85517d24755SJustin T. Gibbs/*
85617d24755SJustin T. Gibbs * CMC Split Status 0
85717d24755SJustin T. Gibbs */
85817d24755SJustin T. Gibbsregister CMCSPLTSTAT0 {
85917d24755SJustin T. Gibbs	address			0x096
86017d24755SJustin T. Gibbs	access_mode	RW
86117d24755SJustin T. Gibbs	modes		M_CCHAN
8623ebc1009SJustin T. Gibbs	field	STAETERM	0x80
8633ebc1009SJustin T. Gibbs	field	SCBCERR		0x40
8643ebc1009SJustin T. Gibbs	field	SCADERR		0x20
8653ebc1009SJustin T. Gibbs	field	SCDATBUCKET	0x10
8663ebc1009SJustin T. Gibbs	field	CNTNOTCMPLT	0x08
8673ebc1009SJustin T. Gibbs	field	RXOVRUN		0x04
8683ebc1009SJustin T. Gibbs	field	RXSCEMSG	0x02
8693ebc1009SJustin T. Gibbs	field	RXSPLTRSP	0x01
87017d24755SJustin T. Gibbs}
87117d24755SJustin T. Gibbs
87217d24755SJustin T. Gibbs/*
87317d24755SJustin T. Gibbs * Overlay Split Status 0
87417d24755SJustin T. Gibbs */
87517d24755SJustin T. Gibbsregister OVLYSPLTSTAT0 {
87617d24755SJustin T. Gibbs	address			0x096
87717d24755SJustin T. Gibbs	access_mode	RW
87817d24755SJustin T. Gibbs	modes		M_SCSI
8793ebc1009SJustin T. Gibbs	field	STAETERM	0x80
8803ebc1009SJustin T. Gibbs	field	SCBCERR		0x40
8813ebc1009SJustin T. Gibbs	field	SCADERR		0x20
8823ebc1009SJustin T. Gibbs	field	SCDATBUCKET	0x10
8833ebc1009SJustin T. Gibbs	field	CNTNOTCMPLT	0x08
8843ebc1009SJustin T. Gibbs	field	RXOVRUN		0x04
8853ebc1009SJustin T. Gibbs	field	RXSCEMSG	0x02
8863ebc1009SJustin T. Gibbs	field	RXSPLTRSP	0x01
88717d24755SJustin T. Gibbs}
88817d24755SJustin T. Gibbs
88917d24755SJustin T. Gibbs/*
89017d24755SJustin T. Gibbs * Data Channel Split Status 1
89117d24755SJustin T. Gibbs */
89217d24755SJustin T. Gibbsregister DCHSPLTSTAT1 {
89317d24755SJustin T. Gibbs	address			0x097
89417d24755SJustin T. Gibbs	access_mode	RW
89517d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
8963ebc1009SJustin T. Gibbs	field	RXDATABUCKET	0x01
89717d24755SJustin T. Gibbs}
89817d24755SJustin T. Gibbs
89917d24755SJustin T. Gibbs/*
90017d24755SJustin T. Gibbs * CMC Split Status 1
90117d24755SJustin T. Gibbs */
90217d24755SJustin T. Gibbsregister CMCSPLTSTAT1 {
90317d24755SJustin T. Gibbs	address			0x097
90417d24755SJustin T. Gibbs	access_mode	RW
90517d24755SJustin T. Gibbs	modes		M_CCHAN
9063ebc1009SJustin T. Gibbs	field	RXDATABUCKET	0x01
90717d24755SJustin T. Gibbs}
90817d24755SJustin T. Gibbs
90917d24755SJustin T. Gibbs/*
91017d24755SJustin T. Gibbs * Overlay Split Status 1
91117d24755SJustin T. Gibbs */
91217d24755SJustin T. Gibbsregister OVLYSPLTSTAT1 {
91317d24755SJustin T. Gibbs	address			0x097
91417d24755SJustin T. Gibbs	access_mode	RW
91517d24755SJustin T. Gibbs	modes		M_SCSI
9163ebc1009SJustin T. Gibbs	field	RXDATABUCKET	0x01
91717d24755SJustin T. Gibbs}
91817d24755SJustin T. Gibbs
91917d24755SJustin T. Gibbs/*
92017d24755SJustin T. Gibbs * S/G Receive Message 0
92117d24755SJustin T. Gibbs */
92217d24755SJustin T. Gibbsregister SGRXMSG0 {
92317d24755SJustin T. Gibbs	address			0x098
92417d24755SJustin T. Gibbs	access_mode	RO
92517d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
9263ebc1009SJustin T. Gibbs	field		CDNUM	0xF8
9273ebc1009SJustin T. Gibbs	field		CFNUM	0x07
92817d24755SJustin T. Gibbs}
92917d24755SJustin T. Gibbs
93017d24755SJustin T. Gibbs/*
93117d24755SJustin T. Gibbs * S/G Receive Message 1
93217d24755SJustin T. Gibbs */
93317d24755SJustin T. Gibbsregister SGRXMSG1 {
93417d24755SJustin T. Gibbs	address			0x099
93517d24755SJustin T. Gibbs	access_mode	RO
93617d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
9373ebc1009SJustin T. Gibbs	field	CBNUM		0xFF
93817d24755SJustin T. Gibbs}
93917d24755SJustin T. Gibbs
94017d24755SJustin T. Gibbs/*
94117d24755SJustin T. Gibbs * S/G Receive Message 2
94217d24755SJustin T. Gibbs */
94317d24755SJustin T. Gibbsregister SGRXMSG2 {
94417d24755SJustin T. Gibbs	address			0x09A
94517d24755SJustin T. Gibbs	access_mode	RO
94617d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
9473ebc1009SJustin T. Gibbs	field	MINDEX		0xFF
94817d24755SJustin T. Gibbs}
94917d24755SJustin T. Gibbs
95017d24755SJustin T. Gibbs/*
95117d24755SJustin T. Gibbs * S/G Receive Message 3
95217d24755SJustin T. Gibbs */
95317d24755SJustin T. Gibbsregister SGRXMSG3 {
95417d24755SJustin T. Gibbs	address			0x09B
95517d24755SJustin T. Gibbs	access_mode	RO
95617d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
9573ebc1009SJustin T. Gibbs	field	MCLASS		0x0F
95817d24755SJustin T. Gibbs}
95917d24755SJustin T. Gibbs
96017d24755SJustin T. Gibbs/*
96117d24755SJustin T. Gibbs * Slave Split Out Address 0
96217d24755SJustin T. Gibbs */
96317d24755SJustin T. Gibbsregister SLVSPLTOUTADR0 {
96417d24755SJustin T. Gibbs	address			0x098
96517d24755SJustin T. Gibbs	access_mode	RO
96617d24755SJustin T. Gibbs	modes		M_SCSI
9673ebc1009SJustin T. Gibbs	field	LOWER_ADDR	0x7F
96817d24755SJustin T. Gibbs}
96917d24755SJustin T. Gibbs
97017d24755SJustin T. Gibbs/*
97117d24755SJustin T. Gibbs * Slave Split Out Address 1
97217d24755SJustin T. Gibbs */
97317d24755SJustin T. Gibbsregister SLVSPLTOUTADR1 {
97417d24755SJustin T. Gibbs	address			0x099
97517d24755SJustin T. Gibbs	access_mode	RO
97617d24755SJustin T. Gibbs	modes		M_SCSI
9773ebc1009SJustin T. Gibbs	field	REQ_DNUM	0xF8
9783ebc1009SJustin T. Gibbs	field	REQ_FNUM	0x07
97917d24755SJustin T. Gibbs}
98017d24755SJustin T. Gibbs
98117d24755SJustin T. Gibbs/*
98217d24755SJustin T. Gibbs * Slave Split Out Address 2
98317d24755SJustin T. Gibbs */
98417d24755SJustin T. Gibbsregister SLVSPLTOUTADR2 {
98517d24755SJustin T. Gibbs	address			0x09A
98617d24755SJustin T. Gibbs	access_mode	RO
98717d24755SJustin T. Gibbs	modes		M_SCSI
9883ebc1009SJustin T. Gibbs	field	REQ_BNUM	0xFF
98917d24755SJustin T. Gibbs}
99017d24755SJustin T. Gibbs
99117d24755SJustin T. Gibbs/*
99217d24755SJustin T. Gibbs * Slave Split Out Address 3
99317d24755SJustin T. Gibbs */
99417d24755SJustin T. Gibbsregister SLVSPLTOUTADR3 {
99517d24755SJustin T. Gibbs	address			0x09B
99617d24755SJustin T. Gibbs	access_mode	RO
99717d24755SJustin T. Gibbs	modes		M_SCSI
9983ebc1009SJustin T. Gibbs	field	RLXORD		020
9993ebc1009SJustin T. Gibbs	field	TAG_NUM		0x1F
100017d24755SJustin T. Gibbs}
100117d24755SJustin T. Gibbs
100217d24755SJustin T. Gibbs/*
100317d24755SJustin T. Gibbs * SG Sequencer Byte Count
100417d24755SJustin T. Gibbs */
100517d24755SJustin T. Gibbsregister SGSEQBCNT {
100617d24755SJustin T. Gibbs	address			0x09C
100717d24755SJustin T. Gibbs	access_mode	RO
100817d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
100917d24755SJustin T. Gibbs}
101017d24755SJustin T. Gibbs
101117d24755SJustin T. Gibbs/*
101217d24755SJustin T. Gibbs * Slave Split Out Attribute 0
101317d24755SJustin T. Gibbs */
101417d24755SJustin T. Gibbsregister SLVSPLTOUTATTR0 {
101517d24755SJustin T. Gibbs	address			0x09C
101617d24755SJustin T. Gibbs	access_mode	RO
101717d24755SJustin T. Gibbs	modes		M_SCSI
10183ebc1009SJustin T. Gibbs	field	LOWER_BCNT	0xFF
101917d24755SJustin T. Gibbs}
102017d24755SJustin T. Gibbs
102117d24755SJustin T. Gibbs/*
102217d24755SJustin T. Gibbs * Slave Split Out Attribute 1
102317d24755SJustin T. Gibbs */
102417d24755SJustin T. Gibbsregister SLVSPLTOUTATTR1 {
102517d24755SJustin T. Gibbs	address			0x09D
102617d24755SJustin T. Gibbs	access_mode	RO
102717d24755SJustin T. Gibbs	modes		M_SCSI
10283ebc1009SJustin T. Gibbs	field	CMPLT_DNUM	0xF8
10293ebc1009SJustin T. Gibbs	field	CMPLT_FNUM	0x07
103017d24755SJustin T. Gibbs}
103117d24755SJustin T. Gibbs
103217d24755SJustin T. Gibbs/*
103317d24755SJustin T. Gibbs * Slave Split Out Attribute 2
103417d24755SJustin T. Gibbs */
103517d24755SJustin T. Gibbsregister SLVSPLTOUTATTR2 {
103617d24755SJustin T. Gibbs	address			0x09E
103717d24755SJustin T. Gibbs	access_mode	RO
103817d24755SJustin T. Gibbs	size		2
103917d24755SJustin T. Gibbs	modes		M_SCSI
10403ebc1009SJustin T. Gibbs	field	CMPLT_BNUM	0xFF
104117d24755SJustin T. Gibbs}
104217d24755SJustin T. Gibbs/*
104317d24755SJustin T. Gibbs * S/G Split Status 0
104417d24755SJustin T. Gibbs */
104517d24755SJustin T. Gibbsregister SGSPLTSTAT0 {
104617d24755SJustin T. Gibbs	address			0x09E
104717d24755SJustin T. Gibbs	access_mode	RW
104817d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
10493ebc1009SJustin T. Gibbs	field	STAETERM	0x80
10503ebc1009SJustin T. Gibbs	field	SCBCERR		0x40
10513ebc1009SJustin T. Gibbs	field	SCADERR		0x20
10523ebc1009SJustin T. Gibbs	field	SCDATBUCKET	0x10
10533ebc1009SJustin T. Gibbs	field	CNTNOTCMPLT	0x08
10543ebc1009SJustin T. Gibbs	field	RXOVRUN		0x04
10553ebc1009SJustin T. Gibbs	field	RXSCEMSG	0x02
10563ebc1009SJustin T. Gibbs	field	RXSPLTRSP	0x01
105717d24755SJustin T. Gibbs}
105817d24755SJustin T. Gibbs
105917d24755SJustin T. Gibbs/*
106017d24755SJustin T. Gibbs * S/G Split Status 1
106117d24755SJustin T. Gibbs */
106217d24755SJustin T. Gibbsregister SGSPLTSTAT1 {
106317d24755SJustin T. Gibbs	address			0x09F
106417d24755SJustin T. Gibbs	access_mode	RW
106517d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
10663ebc1009SJustin T. Gibbs	field	RXDATABUCKET	0x01
106717d24755SJustin T. Gibbs}
106817d24755SJustin T. Gibbs
106917d24755SJustin T. Gibbs/*
107017d24755SJustin T. Gibbs * Special Function
107117d24755SJustin T. Gibbs */
107217d24755SJustin T. Gibbsregister SFUNCT {
107317d24755SJustin T. Gibbs	address			0x09f
107417d24755SJustin T. Gibbs	access_mode	RW
107517d24755SJustin T. Gibbs	modes		M_CFG
10763ebc1009SJustin T. Gibbs	field	TEST_GROUP	0xF0
10773ebc1009SJustin T. Gibbs	field	TEST_NUM	0x0F
107817d24755SJustin T. Gibbs}
107917d24755SJustin T. Gibbs
108017d24755SJustin T. Gibbs/*
108117d24755SJustin T. Gibbs * Data FIFO 0 PCI Status
108217d24755SJustin T. Gibbs */
108317d24755SJustin T. Gibbsregister DF0PCISTAT {
108417d24755SJustin T. Gibbs	address			0x0A0
108517d24755SJustin T. Gibbs	access_mode	RW
108617d24755SJustin T. Gibbs	modes		M_CFG
10873ebc1009SJustin T. Gibbs	field	DPE		0x80
10883ebc1009SJustin T. Gibbs	field	SSE		0x40
10893ebc1009SJustin T. Gibbs	field	RMA		0x20
10903ebc1009SJustin T. Gibbs	field	RTA		0x10
10913ebc1009SJustin T. Gibbs	field	SCAAPERR	0x08
10923ebc1009SJustin T. Gibbs	field	RDPERR		0x04
10933ebc1009SJustin T. Gibbs	field	TWATERR		0x02
10943ebc1009SJustin T. Gibbs	field	DPR		0x01
109517d24755SJustin T. Gibbs}
109617d24755SJustin T. Gibbs
109717d24755SJustin T. Gibbs/*
109817d24755SJustin T. Gibbs * Data FIFO 1 PCI Status
109917d24755SJustin T. Gibbs */
110017d24755SJustin T. Gibbsregister DF1PCISTAT {
110117d24755SJustin T. Gibbs	address			0x0A1
110217d24755SJustin T. Gibbs	access_mode	RW
110317d24755SJustin T. Gibbs	modes		M_CFG
11043ebc1009SJustin T. Gibbs	field	DPE		0x80
11053ebc1009SJustin T. Gibbs	field	SSE		0x40
11063ebc1009SJustin T. Gibbs	field	RMA		0x20
11073ebc1009SJustin T. Gibbs	field	RTA		0x10
11083ebc1009SJustin T. Gibbs	field	SCAAPERR	0x08
11093ebc1009SJustin T. Gibbs	field	RDPERR		0x04
11103ebc1009SJustin T. Gibbs	field	TWATERR		0x02
11113ebc1009SJustin T. Gibbs	field	DPR		0x01
111217d24755SJustin T. Gibbs}
111317d24755SJustin T. Gibbs
111417d24755SJustin T. Gibbs/*
111517d24755SJustin T. Gibbs * S/G PCI Status
111617d24755SJustin T. Gibbs */
111717d24755SJustin T. Gibbsregister SGPCISTAT {
111817d24755SJustin T. Gibbs	address			0x0A2
111917d24755SJustin T. Gibbs	access_mode	RW
112017d24755SJustin T. Gibbs	modes		M_CFG
11213ebc1009SJustin T. Gibbs	field	DPE		0x80
11223ebc1009SJustin T. Gibbs	field	SSE		0x40
11233ebc1009SJustin T. Gibbs	field	RMA		0x20
11243ebc1009SJustin T. Gibbs	field	RTA		0x10
11253ebc1009SJustin T. Gibbs	field	SCAAPERR	0x08
11263ebc1009SJustin T. Gibbs	field	RDPERR		0x04
11273ebc1009SJustin T. Gibbs	field	DPR		0x01
112817d24755SJustin T. Gibbs}
112917d24755SJustin T. Gibbs
113017d24755SJustin T. Gibbs/*
113117d24755SJustin T. Gibbs * CMC PCI Status
113217d24755SJustin T. Gibbs */
113317d24755SJustin T. Gibbsregister CMCPCISTAT {
113417d24755SJustin T. Gibbs	address			0x0A3
113517d24755SJustin T. Gibbs	access_mode	RW
113617d24755SJustin T. Gibbs	modes		M_CFG
11373ebc1009SJustin T. Gibbs	field	DPE		0x80
11383ebc1009SJustin T. Gibbs	field	SSE		0x40
11393ebc1009SJustin T. Gibbs	field	RMA		0x20
11403ebc1009SJustin T. Gibbs	field	RTA		0x10
11413ebc1009SJustin T. Gibbs	field	SCAAPERR	0x08
11423ebc1009SJustin T. Gibbs	field	RDPERR		0x04
11433ebc1009SJustin T. Gibbs	field	TWATERR		0x02
11443ebc1009SJustin T. Gibbs	field	DPR		0x01
114517d24755SJustin T. Gibbs}
114617d24755SJustin T. Gibbs
114717d24755SJustin T. Gibbs/*
114817d24755SJustin T. Gibbs * Overlay PCI Status
114917d24755SJustin T. Gibbs */
115017d24755SJustin T. Gibbsregister OVLYPCISTAT {
115117d24755SJustin T. Gibbs	address			0x0A4
115217d24755SJustin T. Gibbs	access_mode	RW
115317d24755SJustin T. Gibbs	modes		M_CFG
11543ebc1009SJustin T. Gibbs	field	DPE		0x80
11553ebc1009SJustin T. Gibbs	field	SSE		0x40
11563ebc1009SJustin T. Gibbs	field	RMA		0x20
11573ebc1009SJustin T. Gibbs	field	RTA		0x10
11583ebc1009SJustin T. Gibbs	field	SCAAPERR	0x08
11593ebc1009SJustin T. Gibbs	field	RDPERR		0x04
11603ebc1009SJustin T. Gibbs	field	DPR		0x01
116117d24755SJustin T. Gibbs}
116217d24755SJustin T. Gibbs
116317d24755SJustin T. Gibbs/*
116417d24755SJustin T. Gibbs * PCI Status for MSI Master DMA Transfer
116517d24755SJustin T. Gibbs */
116617d24755SJustin T. Gibbsregister MSIPCISTAT {
116717d24755SJustin T. Gibbs	address			0x0A6
116817d24755SJustin T. Gibbs	access_mode	RW
116917d24755SJustin T. Gibbs	modes		M_CFG
11703ebc1009SJustin T. Gibbs	field	SSE		0x40
11713ebc1009SJustin T. Gibbs	field	RMA		0x20
11723ebc1009SJustin T. Gibbs	field	RTA		0x10
11733ebc1009SJustin T. Gibbs	field	CLRPENDMSI	0x08
11743ebc1009SJustin T. Gibbs	field	TWATERR		0x02
11753ebc1009SJustin T. Gibbs	field	DPR		0x01
117617d24755SJustin T. Gibbs}
117717d24755SJustin T. Gibbs
117817d24755SJustin T. Gibbs/*
117917d24755SJustin T. Gibbs * PCI Status for Target
118017d24755SJustin T. Gibbs */
118117d24755SJustin T. Gibbsregister TARGPCISTAT {
118297cae63dSScott Long	address			0x0A7
118317d24755SJustin T. Gibbs	access_mode	RW
118417d24755SJustin T. Gibbs	modes		M_CFG
11853ebc1009SJustin T. Gibbs	field	DPE		0x80
11863ebc1009SJustin T. Gibbs	field	SSE		0x40
11873ebc1009SJustin T. Gibbs	field	STA		0x08
11883ebc1009SJustin T. Gibbs	field	TWATERR		0x02
118917d24755SJustin T. Gibbs}
119017d24755SJustin T. Gibbs
119117d24755SJustin T. Gibbs/*
119217d24755SJustin T. Gibbs * LQ Packet In
1193*594c945aSPedro F. Giffuni * The last LQ Packet received
119417d24755SJustin T. Gibbs */
119517d24755SJustin T. Gibbsregister LQIN {
119617d24755SJustin T. Gibbs	address			0x020
119717d24755SJustin T. Gibbs	access_mode	RW
119817d24755SJustin T. Gibbs	size		20
119917d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
120017d24755SJustin T. Gibbs}
120117d24755SJustin T. Gibbs
120217d24755SJustin T. Gibbs/*
120317d24755SJustin T. Gibbs * SCB Type Pointer
120417d24755SJustin T. Gibbs * SCB offset for Target Mode SCB type information
120517d24755SJustin T. Gibbs */
120617d24755SJustin T. Gibbsregister TYPEPTR {
120717d24755SJustin T. Gibbs	address			0x020
120817d24755SJustin T. Gibbs	access_mode	RW
120917d24755SJustin T. Gibbs	modes		M_CFG
121017d24755SJustin T. Gibbs}
121117d24755SJustin T. Gibbs
121217d24755SJustin T. Gibbs/*
121317d24755SJustin T. Gibbs * Queue Tag Pointer
121417d24755SJustin T. Gibbs * SCB offset to the Two Byte tag identifier used for target mode.
121517d24755SJustin T. Gibbs */
121617d24755SJustin T. Gibbsregister TAGPTR {
121717d24755SJustin T. Gibbs	address			0x021
121817d24755SJustin T. Gibbs	access_mode	RW
121917d24755SJustin T. Gibbs	modes		M_CFG
122017d24755SJustin T. Gibbs}
122117d24755SJustin T. Gibbs
122217d24755SJustin T. Gibbs/*
122317d24755SJustin T. Gibbs * Logical Unit Number Pointer
122417d24755SJustin T. Gibbs * SCB offset to the LSB (little endian) of the lun field.
122517d24755SJustin T. Gibbs */
122617d24755SJustin T. Gibbsregister LUNPTR {
122717d24755SJustin T. Gibbs	address			0x022
122817d24755SJustin T. Gibbs	access_mode	RW
122917d24755SJustin T. Gibbs	modes		M_CFG
123017d24755SJustin T. Gibbs}
123117d24755SJustin T. Gibbs
123217d24755SJustin T. Gibbs/*
123317d24755SJustin T. Gibbs * Data Length Pointer
123417d24755SJustin T. Gibbs * SCB offset for the 4 byte data length field in target mode.
123517d24755SJustin T. Gibbs */
123617d24755SJustin T. Gibbsregister DATALENPTR {
123717d24755SJustin T. Gibbs	address			0x023
123817d24755SJustin T. Gibbs	access_mode	RW
123917d24755SJustin T. Gibbs	modes		M_CFG
124017d24755SJustin T. Gibbs}
124117d24755SJustin T. Gibbs
124217d24755SJustin T. Gibbs/*
124317d24755SJustin T. Gibbs * Status Length Pointer
124417d24755SJustin T. Gibbs * SCB offset to the two byte status field in target SCBs.
124517d24755SJustin T. Gibbs */
124617d24755SJustin T. Gibbsregister STATLENPTR {
124717d24755SJustin T. Gibbs	address			0x024
124817d24755SJustin T. Gibbs	access_mode	RW
124917d24755SJustin T. Gibbs	modes		M_CFG
125017d24755SJustin T. Gibbs}
125117d24755SJustin T. Gibbs
125217d24755SJustin T. Gibbs/*
125317d24755SJustin T. Gibbs * Command Length Pointer
125417d24755SJustin T. Gibbs * Scb offset for the CDB length field in initiator SCBs.
125517d24755SJustin T. Gibbs */
125617d24755SJustin T. Gibbsregister CMDLENPTR {
125717d24755SJustin T. Gibbs	address			0x025
125817d24755SJustin T. Gibbs	access_mode	RW
125917d24755SJustin T. Gibbs	modes		M_CFG
126017d24755SJustin T. Gibbs}
126117d24755SJustin T. Gibbs
126217d24755SJustin T. Gibbs/*
126317d24755SJustin T. Gibbs * Task Attribute Pointer
126417d24755SJustin T. Gibbs * Scb offset for the byte field specifying the attribute byte
126517d24755SJustin T. Gibbs * to be used in command packets.
126617d24755SJustin T. Gibbs */
126717d24755SJustin T. Gibbsregister ATTRPTR {
126817d24755SJustin T. Gibbs	address			0x026
126917d24755SJustin T. Gibbs	access_mode	RW
127017d24755SJustin T. Gibbs	modes		M_CFG
127117d24755SJustin T. Gibbs}
127217d24755SJustin T. Gibbs
127317d24755SJustin T. Gibbs/*
127417d24755SJustin T. Gibbs * Task Management Flags Pointer
127517d24755SJustin T. Gibbs * Scb offset for the byte field specifying the attribute flags
127617d24755SJustin T. Gibbs * byte to be used in command packets.
127717d24755SJustin T. Gibbs */
127817d24755SJustin T. Gibbsregister FLAGPTR {
127917d24755SJustin T. Gibbs	address			0x027
128017d24755SJustin T. Gibbs	access_mode	RW
128117d24755SJustin T. Gibbs	modes		M_CFG
128217d24755SJustin T. Gibbs}
128317d24755SJustin T. Gibbs
128417d24755SJustin T. Gibbs/*
128517d24755SJustin T. Gibbs * Command Pointer
128617d24755SJustin T. Gibbs * Scb offset for the first byte in the CDB for initiator SCBs.
128717d24755SJustin T. Gibbs */
128817d24755SJustin T. Gibbsregister CMDPTR {
128917d24755SJustin T. Gibbs	address			0x028
129017d24755SJustin T. Gibbs	access_mode	RW
129117d24755SJustin T. Gibbs	modes		M_CFG
129217d24755SJustin T. Gibbs}
129317d24755SJustin T. Gibbs
129417d24755SJustin T. Gibbs/*
129517d24755SJustin T. Gibbs * Queue Next Pointer
129617d24755SJustin T. Gibbs * Scb offset for the 2 byte "next scb link".
129717d24755SJustin T. Gibbs */
129817d24755SJustin T. Gibbsregister QNEXTPTR {
129917d24755SJustin T. Gibbs	address			0x029
130017d24755SJustin T. Gibbs	access_mode	RW
130117d24755SJustin T. Gibbs	modes		M_CFG
130217d24755SJustin T. Gibbs}
130317d24755SJustin T. Gibbs
130417d24755SJustin T. Gibbs/*
130517d24755SJustin T. Gibbs * SCSI ID Pointer
130617d24755SJustin T. Gibbs * Scb offset to the value to place in the SCSIID register
130717d24755SJustin T. Gibbs * during target mode connections.
130817d24755SJustin T. Gibbs */
130917d24755SJustin T. Gibbsregister IDPTR {
131017d24755SJustin T. Gibbs	address			0x02A
131117d24755SJustin T. Gibbs	access_mode	RW
131217d24755SJustin T. Gibbs	modes		M_CFG
131317d24755SJustin T. Gibbs}
131417d24755SJustin T. Gibbs
131517d24755SJustin T. Gibbs/*
131617d24755SJustin T. Gibbs * Command Aborted Byte Pointer
131717d24755SJustin T. Gibbs * Offset to the SCB flags field that includes the
131817d24755SJustin T. Gibbs * "SCB aborted" status bit.
131917d24755SJustin T. Gibbs */
132017d24755SJustin T. Gibbsregister ABRTBYTEPTR {
132117d24755SJustin T. Gibbs	address			0x02B
132217d24755SJustin T. Gibbs	access_mode	RW
132317d24755SJustin T. Gibbs	modes		M_CFG
132417d24755SJustin T. Gibbs}
132517d24755SJustin T. Gibbs
132617d24755SJustin T. Gibbs/*
132717d24755SJustin T. Gibbs * Command Aborted Bit Pointer
132817d24755SJustin T. Gibbs * Bit offset in the SCB flags field for "SCB aborted" status.
132917d24755SJustin T. Gibbs */
133017d24755SJustin T. Gibbsregister ABRTBITPTR {
133117d24755SJustin T. Gibbs	address			0x02C
133217d24755SJustin T. Gibbs	access_mode	RW
133317d24755SJustin T. Gibbs	modes		M_CFG
133417d24755SJustin T. Gibbs}
133517d24755SJustin T. Gibbs
133617d24755SJustin T. Gibbs/*
13373ebc1009SJustin T. Gibbs * Rev B or greater.
13383ebc1009SJustin T. Gibbs */
13393ebc1009SJustin T. Gibbsregister MAXCMDBYTES {
13403ebc1009SJustin T. Gibbs	address			0x02D
13413ebc1009SJustin T. Gibbs	access_mode	RW
13423ebc1009SJustin T. Gibbs	modes		M_CFG
13433ebc1009SJustin T. Gibbs}
13443ebc1009SJustin T. Gibbs
13453ebc1009SJustin T. Gibbs/*
13463ebc1009SJustin T. Gibbs * Rev B or greater.
13473ebc1009SJustin T. Gibbs */
13483ebc1009SJustin T. Gibbsregister MAXCMD2RCV {
13493ebc1009SJustin T. Gibbs	address			0x02E
13503ebc1009SJustin T. Gibbs	access_mode	RW
13513ebc1009SJustin T. Gibbs	modes		M_CFG
13523ebc1009SJustin T. Gibbs}
13533ebc1009SJustin T. Gibbs
13543ebc1009SJustin T. Gibbs/*
13553ebc1009SJustin T. Gibbs * Rev B or greater.
13563ebc1009SJustin T. Gibbs */
13573ebc1009SJustin T. Gibbsregister SHORTTHRESH {
13583ebc1009SJustin T. Gibbs	address			0x02F
13593ebc1009SJustin T. Gibbs	access_mode	RW
13603ebc1009SJustin T. Gibbs	modes		M_CFG
13613ebc1009SJustin T. Gibbs}
13623ebc1009SJustin T. Gibbs
13633ebc1009SJustin T. Gibbs/*
136417d24755SJustin T. Gibbs * Logical Unit Number Length
136517d24755SJustin T. Gibbs * The length, in bytes, of the SCB lun field.
136617d24755SJustin T. Gibbs */
136717d24755SJustin T. Gibbsregister LUNLEN {
136817d24755SJustin T. Gibbs	address			0x030
136917d24755SJustin T. Gibbs	access_mode	RW
137017d24755SJustin T. Gibbs	modes		M_CFG
13716ee007e1SScott Long	mask		ILUNLEN	0x0F
13726ee007e1SScott Long	mask		TLUNLEN	0xF0
137317d24755SJustin T. Gibbs}
13746ee007e1SScott Longconst LUNLEN_SINGLE_LEVEL_LUN 0xF
137517d24755SJustin T. Gibbs
137617d24755SJustin T. Gibbs/*
137717d24755SJustin T. Gibbs * CDB Limit
137817d24755SJustin T. Gibbs * The size, in bytes, of the embedded CDB field in initator SCBs.
137917d24755SJustin T. Gibbs */
138017d24755SJustin T. Gibbsregister CDBLIMIT {
138117d24755SJustin T. Gibbs	address			0x031
138217d24755SJustin T. Gibbs	access_mode	RW
138317d24755SJustin T. Gibbs	modes		M_CFG
138417d24755SJustin T. Gibbs}
138517d24755SJustin T. Gibbs
138617d24755SJustin T. Gibbs/*
138717d24755SJustin T. Gibbs * Maximum Commands
138817d24755SJustin T. Gibbs * The maximum number of commands to issue during a
138917d24755SJustin T. Gibbs * single packetized connection.
139017d24755SJustin T. Gibbs */
139117d24755SJustin T. Gibbsregister MAXCMD {
139217d24755SJustin T. Gibbs	address			0x032
139317d24755SJustin T. Gibbs	access_mode	RW
139417d24755SJustin T. Gibbs	modes		M_CFG
139517d24755SJustin T. Gibbs}
139617d24755SJustin T. Gibbs
139717d24755SJustin T. Gibbs/*
139817d24755SJustin T. Gibbs * Maximum Command Counter
139917d24755SJustin T. Gibbs * The number of commands already sent during this connection
140017d24755SJustin T. Gibbs */
140117d24755SJustin T. Gibbsregister MAXCMDCNT {
140217d24755SJustin T. Gibbs	address			0x033
140317d24755SJustin T. Gibbs	access_mode	RW
140417d24755SJustin T. Gibbs	modes		M_CFG
140517d24755SJustin T. Gibbs}
140617d24755SJustin T. Gibbs
140717d24755SJustin T. Gibbs/*
140817d24755SJustin T. Gibbs * LQ Packet Reserved Bytes
140917d24755SJustin T. Gibbs * The bytes to be sent in the currently reserved fileds
141017d24755SJustin T. Gibbs * of all LQ packets.
141117d24755SJustin T. Gibbs */
141217d24755SJustin T. Gibbsregister LQRSVD01 {
141317d24755SJustin T. Gibbs	address			0x034
141417d24755SJustin T. Gibbs	access_mode	RW
141517d24755SJustin T. Gibbs	modes		M_SCSI
141617d24755SJustin T. Gibbs}
141717d24755SJustin T. Gibbsregister LQRSVD16 {
141817d24755SJustin T. Gibbs	address			0x035
141917d24755SJustin T. Gibbs	access_mode	RW
142017d24755SJustin T. Gibbs	modes		M_SCSI
142117d24755SJustin T. Gibbs}
142217d24755SJustin T. Gibbsregister LQRSVD17 {
142317d24755SJustin T. Gibbs	address			0x036
142417d24755SJustin T. Gibbs	access_mode	RW
142517d24755SJustin T. Gibbs	modes		M_SCSI
142617d24755SJustin T. Gibbs}
142717d24755SJustin T. Gibbs
142817d24755SJustin T. Gibbs/*
142917d24755SJustin T. Gibbs * Command Reserved 0
143017d24755SJustin T. Gibbs * The byte to be sent for the reserved byte 0 of
143117d24755SJustin T. Gibbs * outgoing command packets.
143217d24755SJustin T. Gibbs */
143317d24755SJustin T. Gibbsregister CMDRSVD0 {
143417d24755SJustin T. Gibbs	address			0x037
143517d24755SJustin T. Gibbs	access_mode	RW
143617d24755SJustin T. Gibbs	modes		M_CFG
143717d24755SJustin T. Gibbs}
143817d24755SJustin T. Gibbs
143917d24755SJustin T. Gibbs/*
144017d24755SJustin T. Gibbs * LQ Manager Control 0
144117d24755SJustin T. Gibbs */
144217d24755SJustin T. Gibbsregister LQCTL0 {
144317d24755SJustin T. Gibbs	address			0x038
144417d24755SJustin T. Gibbs	access_mode	RW
144517d24755SJustin T. Gibbs	modes		M_CFG
14463ebc1009SJustin T. Gibbs	field	LQITARGCLT	0xC0
14473ebc1009SJustin T. Gibbs	field	LQIINITGCLT	0x30
14483ebc1009SJustin T. Gibbs	field	LQ0TARGCLT	0x0C
14493ebc1009SJustin T. Gibbs	field	LQ0INITGCLT	0x03
145017d24755SJustin T. Gibbs}
145117d24755SJustin T. Gibbs
145217d24755SJustin T. Gibbs/*
145317d24755SJustin T. Gibbs * LQ Manager Control 1
145417d24755SJustin T. Gibbs */
145517d24755SJustin T. Gibbsregister LQCTL1 {
145617d24755SJustin T. Gibbs	address			0x038
145717d24755SJustin T. Gibbs	access_mode	RW
145817d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
14593ebc1009SJustin T. Gibbs	field	PCI2PCI		0x04
14603ebc1009SJustin T. Gibbs	field	SINGLECMD	0x02
14613ebc1009SJustin T. Gibbs	field	ABORTPENDING	0x01
146217d24755SJustin T. Gibbs}
146317d24755SJustin T. Gibbs
146417d24755SJustin T. Gibbs/*
146517d24755SJustin T. Gibbs * LQ Manager Control 2
146617d24755SJustin T. Gibbs */
146717d24755SJustin T. Gibbsregister LQCTL2 {
146817d24755SJustin T. Gibbs	address			0x039
146917d24755SJustin T. Gibbs	access_mode	RW
147017d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
14713ebc1009SJustin T. Gibbs	field	LQIRETRY	0x80
14723ebc1009SJustin T. Gibbs	field	LQICONTINUE	0x40
14733ebc1009SJustin T. Gibbs	field	LQITOIDLE	0x20
14743ebc1009SJustin T. Gibbs	field	LQIPAUSE	0x10
14753ebc1009SJustin T. Gibbs	field	LQORETRY	0x08
14763ebc1009SJustin T. Gibbs	field	LQOCONTINUE	0x04
14773ebc1009SJustin T. Gibbs	field	LQOTOIDLE	0x02
14783ebc1009SJustin T. Gibbs	field	LQOPAUSE	0x01
147917d24755SJustin T. Gibbs}
148017d24755SJustin T. Gibbs
148117d24755SJustin T. Gibbs/*
148217d24755SJustin T. Gibbs * SCSI RAM BIST0
148317d24755SJustin T. Gibbs */
148417d24755SJustin T. Gibbsregister SCSBIST0 {
148517d24755SJustin T. Gibbs	address			0x039
148617d24755SJustin T. Gibbs	access_mode	RW
148717d24755SJustin T. Gibbs	modes		M_CFG
14883ebc1009SJustin T. Gibbs	field	GSBISTERR	0x40
14893ebc1009SJustin T. Gibbs	field	GSBISTDONE	0x20
14903ebc1009SJustin T. Gibbs	field	GSBISTRUN	0x10
14913ebc1009SJustin T. Gibbs	field	OSBISTERR	0x04
14923ebc1009SJustin T. Gibbs	field	OSBISTDONE	0x02
14933ebc1009SJustin T. Gibbs	field	OSBISTRUN	0x01
149417d24755SJustin T. Gibbs}
149517d24755SJustin T. Gibbs
149617d24755SJustin T. Gibbs/*
149717d24755SJustin T. Gibbs * SCSI Sequence Control0
149817d24755SJustin T. Gibbs */
149917d24755SJustin T. Gibbsregister SCSISEQ0 {
150017d24755SJustin T. Gibbs	address			0x03A
150117d24755SJustin T. Gibbs	access_mode	RW
150217d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
15033ebc1009SJustin T. Gibbs	field	TEMODEO		0x80
15043ebc1009SJustin T. Gibbs	field	ENSELO		0x40
15053ebc1009SJustin T. Gibbs	field	ENARBO		0x20
15063ebc1009SJustin T. Gibbs	field	FORCEBUSFREE	0x10
15073ebc1009SJustin T. Gibbs	field	SCSIRSTO	0x01
150817d24755SJustin T. Gibbs}
150917d24755SJustin T. Gibbs
151017d24755SJustin T. Gibbs/*
151117d24755SJustin T. Gibbs * SCSI RAM BIST 1
151217d24755SJustin T. Gibbs */
151317d24755SJustin T. Gibbsregister SCSBIST1 {
151417d24755SJustin T. Gibbs	address			0x03A
151517d24755SJustin T. Gibbs	access_mode	RW
151617d24755SJustin T. Gibbs	modes		M_CFG
15173ebc1009SJustin T. Gibbs	field	NTBISTERR	0x04
15183ebc1009SJustin T. Gibbs	field	NTBISTDONE	0x02
15193ebc1009SJustin T. Gibbs	field	NTBISTRUN	0x01
152017d24755SJustin T. Gibbs}
152117d24755SJustin T. Gibbs
152217d24755SJustin T. Gibbs/*
152317d24755SJustin T. Gibbs * SCSI Sequence Control 1
152417d24755SJustin T. Gibbs */
152517d24755SJustin T. Gibbsregister SCSISEQ1 {
152617d24755SJustin T. Gibbs	address			0x03B
152717d24755SJustin T. Gibbs	access_mode	RW
152817d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
15293ebc1009SJustin T. Gibbs	field	MANUALCTL	0x40
15303ebc1009SJustin T. Gibbs	field	ENSELI		0x20
15313ebc1009SJustin T. Gibbs	field	ENRSELI		0x10
15323ebc1009SJustin T. Gibbs	field	MANUALP		0x0C
15333ebc1009SJustin T. Gibbs	field	ENAUTOATNP	0x02
15343ebc1009SJustin T. Gibbs	field	ALTSTIM		0x01
153517d24755SJustin T. Gibbs}
153617d24755SJustin T. Gibbs
153717d24755SJustin T. Gibbs/*
153817d24755SJustin T. Gibbs * SCSI Transfer Control 0
153917d24755SJustin T. Gibbs */
154017d24755SJustin T. Gibbsregister SXFRCTL0 {
154117d24755SJustin T. Gibbs	address			0x03C
154217d24755SJustin T. Gibbs	access_mode	RW
154317d24755SJustin T. Gibbs	modes		M_SCSI
15443ebc1009SJustin T. Gibbs	field	DFON		0x80
15453ebc1009SJustin T. Gibbs	field	DFPEXP		0x40
15463ebc1009SJustin T. Gibbs	field	BIOSCANCELEN	0x10
15473ebc1009SJustin T. Gibbs	field	SPIOEN		0x08
154817d24755SJustin T. Gibbs}
154917d24755SJustin T. Gibbs
155017d24755SJustin T. Gibbs/*
155117d24755SJustin T. Gibbs * SCSI Transfer Control 1
155217d24755SJustin T. Gibbs */
155317d24755SJustin T. Gibbsregister SXFRCTL1 {
155417d24755SJustin T. Gibbs	address			0x03D
155517d24755SJustin T. Gibbs	access_mode	RW
155617d24755SJustin T. Gibbs	modes		M_SCSI
15573ebc1009SJustin T. Gibbs	field	BITBUCKET	0x80
15583ebc1009SJustin T. Gibbs	field	ENSACHK		0x40
15593ebc1009SJustin T. Gibbs	field	ENSPCHK		0x20
15603ebc1009SJustin T. Gibbs	field	STIMESEL	0x18
15613ebc1009SJustin T. Gibbs	field	ENSTIMER	0x04
15623ebc1009SJustin T. Gibbs	field	ACTNEGEN	0x02
15633ebc1009SJustin T. Gibbs	field	STPWEN		0x01
156417d24755SJustin T. Gibbs}
156517d24755SJustin T. Gibbs
156617d24755SJustin T. Gibbs/*
156717d24755SJustin T. Gibbs * SCSI Transfer Control 2
156817d24755SJustin T. Gibbs */
156917d24755SJustin T. Gibbsregister SXFRCTL2 {
157017d24755SJustin T. Gibbs	address			0x03E
157117d24755SJustin T. Gibbs	access_mode	RW
157217d24755SJustin T. Gibbs	modes		M_SCSI
15733ebc1009SJustin T. Gibbs	field	AUTORSTDIS	0x10
15743ebc1009SJustin T. Gibbs	field	CMDDMAEN	0x08
15753ebc1009SJustin T. Gibbs	field	ASU		0x07
157617d24755SJustin T. Gibbs}
157717d24755SJustin T. Gibbs
157817d24755SJustin T. Gibbs/*
157917d24755SJustin T. Gibbs * SCSI Bus Initiator IDs
158017d24755SJustin T. Gibbs * Bitmask of observed initiators on the bus.
158117d24755SJustin T. Gibbs */
158217d24755SJustin T. Gibbsregister BUSINITID {
158317d24755SJustin T. Gibbs	address			0x03C
158417d24755SJustin T. Gibbs	access_mode	RW
158517d24755SJustin T. Gibbs	modes		M_CFG
158617d24755SJustin T. Gibbs	size		2
158717d24755SJustin T. Gibbs}
158817d24755SJustin T. Gibbs
158917d24755SJustin T. Gibbs/*
159017d24755SJustin T. Gibbs * Data Length Counters
159117d24755SJustin T. Gibbs * Packet byte counter.
159217d24755SJustin T. Gibbs */
159317d24755SJustin T. Gibbsregister DLCOUNT {
159417d24755SJustin T. Gibbs	address			0x03C
159517d24755SJustin T. Gibbs	access_mode	RW
159617d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
159717d24755SJustin T. Gibbs	size		3
159817d24755SJustin T. Gibbs}
159917d24755SJustin T. Gibbs
160017d24755SJustin T. Gibbs/*
160117d24755SJustin T. Gibbs * Data FIFO Status
160217d24755SJustin T. Gibbs */
160317d24755SJustin T. Gibbsregister DFFSTAT {
160417d24755SJustin T. Gibbs	address			0x03F
160517d24755SJustin T. Gibbs	access_mode	RW
160617d24755SJustin T. Gibbs	modes		M_SCSI
16073ebc1009SJustin T. Gibbs	field	FIFO1FREE	0x20
16083ebc1009SJustin T. Gibbs	field	FIFO0FREE	0x10
16090c5aa4c5SScott Long	/*
16100c5aa4c5SScott Long	 * On the B, this enum only works
16110c5aa4c5SScott Long	 * in the read direction.  For writes,
16120c5aa4c5SScott Long	 * you must use the B version of the
16130c5aa4c5SScott Long	 * CURRFIFO_0 definition which is defined
16140c5aa4c5SScott Long	 * as a constant outside of this register
16150c5aa4c5SScott Long	 * definition to avoid confusing the
16160c5aa4c5SScott Long	 * register pretty printing code.
16170c5aa4c5SScott Long	 */
16180c5aa4c5SScott Long	enum	CURRFIFO	0x03 {
16190c5aa4c5SScott Long		CURRFIFO_0,
16200c5aa4c5SScott Long		CURRFIFO_1,
16210c5aa4c5SScott Long		CURRFIFO_NONE	0x3
162217d24755SJustin T. Gibbs	}
16230c5aa4c5SScott Long}
16240c5aa4c5SScott Long
16250c5aa4c5SScott Longconst B_CURRFIFO_0 0x2
162617d24755SJustin T. Gibbs
162717d24755SJustin T. Gibbs/*
162817d24755SJustin T. Gibbs * SCSI Bus Target IDs
162917d24755SJustin T. Gibbs * Bitmask of observed targets on the bus.
163017d24755SJustin T. Gibbs */
163117d24755SJustin T. Gibbsregister BUSTARGID {
163217d24755SJustin T. Gibbs	address			0x03E
163317d24755SJustin T. Gibbs	access_mode	RW
163417d24755SJustin T. Gibbs	modes		M_CFG
163517d24755SJustin T. Gibbs	size		2
163617d24755SJustin T. Gibbs}
163717d24755SJustin T. Gibbs
163817d24755SJustin T. Gibbs/*
163917d24755SJustin T. Gibbs * SCSI Control Signal Out
164017d24755SJustin T. Gibbs */
164117d24755SJustin T. Gibbsregister SCSISIGO {
164217d24755SJustin T. Gibbs	address			0x040
164317d24755SJustin T. Gibbs	access_mode	RW
164417d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
16453ebc1009SJustin T. Gibbs	field	CDO		0x80
16463ebc1009SJustin T. Gibbs	field	IOO		0x40
16473ebc1009SJustin T. Gibbs	field	MSGO		0x20
16483ebc1009SJustin T. Gibbs	field	ATNO		0x10
16493ebc1009SJustin T. Gibbs	field	SELO		0x08
16503ebc1009SJustin T. Gibbs	field	BSYO		0x04
16513ebc1009SJustin T. Gibbs	field	REQO		0x02
16523ebc1009SJustin T. Gibbs	field	ACKO		0x01
165317d24755SJustin T. Gibbs/*
165417d24755SJustin T. Gibbs * Possible phases to write into SCSISIG0
165517d24755SJustin T. Gibbs */
16563ebc1009SJustin T. Gibbs	enum	PHASE_MASK  CDO|IOO|MSGO {
16573ebc1009SJustin T. Gibbs		P_DATAOUT	0x0,
16583ebc1009SJustin T. Gibbs		P_DATAIN	IOO,
16593ebc1009SJustin T. Gibbs		P_DATAOUT_DT	P_DATAOUT|MSGO,
16603ebc1009SJustin T. Gibbs		P_DATAIN_DT	P_DATAIN|MSGO,
16613ebc1009SJustin T. Gibbs		P_COMMAND	CDO,
16623ebc1009SJustin T. Gibbs		P_MESGOUT	CDO|MSGO,
16633ebc1009SJustin T. Gibbs		P_STATUS	CDO|IOO,
16643ebc1009SJustin T. Gibbs		P_MESGIN	CDO|IOO|MSGO
16653ebc1009SJustin T. Gibbs	}
166617d24755SJustin T. Gibbs}
166717d24755SJustin T. Gibbs
166817d24755SJustin T. Gibbsregister SCSISIGI {
166917d24755SJustin T. Gibbs	address			0x041
167017d24755SJustin T. Gibbs	access_mode	RO
167117d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
16723ebc1009SJustin T. Gibbs	field	CDI		0x80
16733ebc1009SJustin T. Gibbs	field	IOI		0x40
16743ebc1009SJustin T. Gibbs	field	MSGI		0x20
16753ebc1009SJustin T. Gibbs	field	ATNI		0x10
16763ebc1009SJustin T. Gibbs	field	SELI		0x08
16773ebc1009SJustin T. Gibbs	field	BSYI		0x04
16783ebc1009SJustin T. Gibbs	field	REQI		0x02
16793ebc1009SJustin T. Gibbs	field	ACKI		0x01
168017d24755SJustin T. Gibbs/*
168117d24755SJustin T. Gibbs * Possible phases in SCSISIGI
168217d24755SJustin T. Gibbs */
16833ebc1009SJustin T. Gibbs	enum	PHASE_MASK  CDO|IOO|MSGO {
16843ebc1009SJustin T. Gibbs		P_DATAOUT	0x0,
16853ebc1009SJustin T. Gibbs		P_DATAIN	IOO,
16863ebc1009SJustin T. Gibbs		P_DATAOUT_DT	P_DATAOUT|MSGO,
16873ebc1009SJustin T. Gibbs		P_DATAIN_DT	P_DATAIN|MSGO,
16883ebc1009SJustin T. Gibbs		P_COMMAND	CDO,
16893ebc1009SJustin T. Gibbs		P_MESGOUT	CDO|MSGO,
16903ebc1009SJustin T. Gibbs		P_STATUS	CDO|IOO,
16913ebc1009SJustin T. Gibbs		P_MESGIN	CDO|IOO|MSGO
16923ebc1009SJustin T. Gibbs	}
169317d24755SJustin T. Gibbs}
169417d24755SJustin T. Gibbs
169517d24755SJustin T. Gibbs/*
169617d24755SJustin T. Gibbs * Multiple Target IDs
169717d24755SJustin T. Gibbs * Bitmask of ids to respond as a target.
169817d24755SJustin T. Gibbs */
169917d24755SJustin T. Gibbsregister MULTARGID {
170017d24755SJustin T. Gibbs	address			0x040
170117d24755SJustin T. Gibbs	access_mode	RW
170217d24755SJustin T. Gibbs	modes		M_CFG
170317d24755SJustin T. Gibbs	size		2
170417d24755SJustin T. Gibbs}
170517d24755SJustin T. Gibbs
170617d24755SJustin T. Gibbs/*
170717d24755SJustin T. Gibbs * SCSI Phase
170817d24755SJustin T. Gibbs */
170917d24755SJustin T. Gibbsregister SCSIPHASE {
171017d24755SJustin T. Gibbs	address			0x042
171117d24755SJustin T. Gibbs	access_mode	RO
171217d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
17133ebc1009SJustin T. Gibbs	field	STATUS_PHASE	0x20
17143ebc1009SJustin T. Gibbs	field	COMMAND_PHASE	0x10
17153ebc1009SJustin T. Gibbs	field	MSG_IN_PHASE	0x08
17163ebc1009SJustin T. Gibbs	field	MSG_OUT_PHASE	0x04
17173ebc1009SJustin T. Gibbs	field	DATA_PHASE_MASK	0x03 {
17183ebc1009SJustin T. Gibbs		DATA_OUT_PHASE	0x01,
17193ebc1009SJustin T. Gibbs		DATA_IN_PHASE	0x02
17203ebc1009SJustin T. Gibbs	}
172117d24755SJustin T. Gibbs}
172217d24755SJustin T. Gibbs
172317d24755SJustin T. Gibbs/*
172417d24755SJustin T. Gibbs * SCSI Data 0 Image
172517d24755SJustin T. Gibbs */
172617d24755SJustin T. Gibbsregister SCSIDAT0_IMG {
172717d24755SJustin T. Gibbs	address			0x043
172817d24755SJustin T. Gibbs	access_mode	RW
172917d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
173017d24755SJustin T. Gibbs}
173117d24755SJustin T. Gibbs
173217d24755SJustin T. Gibbs/*
173317d24755SJustin T. Gibbs * SCSI Latched Data
173417d24755SJustin T. Gibbs */
173517d24755SJustin T. Gibbsregister SCSIDAT {
173617d24755SJustin T. Gibbs	address			0x044
173717d24755SJustin T. Gibbs	access_mode	RW
173817d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
173917d24755SJustin T. Gibbs	size		2
174017d24755SJustin T. Gibbs}
174117d24755SJustin T. Gibbs
174217d24755SJustin T. Gibbs/*
174317d24755SJustin T. Gibbs * SCSI Data Bus
174417d24755SJustin T. Gibbs */
174517d24755SJustin T. Gibbsregister SCSIBUS {
174617d24755SJustin T. Gibbs	address			0x046
174717d24755SJustin T. Gibbs	access_mode	RW
174817d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
174917d24755SJustin T. Gibbs	size		2
175017d24755SJustin T. Gibbs}
175117d24755SJustin T. Gibbs
175217d24755SJustin T. Gibbs/*
175317d24755SJustin T. Gibbs * Target ID In
175417d24755SJustin T. Gibbs */
175517d24755SJustin T. Gibbsregister TARGIDIN {
175617d24755SJustin T. Gibbs	address			0x048
175717d24755SJustin T. Gibbs	access_mode	RO
175817d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
17593ebc1009SJustin T. Gibbs	field	CLKOUT		0x80
17603ebc1009SJustin T. Gibbs	field	TARGID		0x0F
176117d24755SJustin T. Gibbs}
176217d24755SJustin T. Gibbs
176317d24755SJustin T. Gibbs/*
176417d24755SJustin T. Gibbs * Selection/Reselection ID
176517d24755SJustin T. Gibbs * Upper four bits are the device id.  The ONEBIT is set when the re/selecting
176617d24755SJustin T. Gibbs * device did not set its own ID.
176717d24755SJustin T. Gibbs */
176817d24755SJustin T. Gibbsregister SELID {
176917d24755SJustin T. Gibbs	address			0x049
177017d24755SJustin T. Gibbs	access_mode	RW
177117d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
17723ebc1009SJustin T. Gibbs	field	SELID_MASK	0xf0
17733ebc1009SJustin T. Gibbs	field	ONEBIT		0x08
177417d24755SJustin T. Gibbs}
177517d24755SJustin T. Gibbs
177617d24755SJustin T. Gibbs/*
177717d24755SJustin T. Gibbs * SCSI Block Control
177817d24755SJustin T. Gibbs * Controls Bus type and channel selection.  SELWIDE allows for the
177917d24755SJustin T. Gibbs * coexistence of 8bit and 16bit devices on a wide bus.
178017d24755SJustin T. Gibbs */
178117d24755SJustin T. Gibbsregister SBLKCTL {
178217d24755SJustin T. Gibbs	address			0x04A
178317d24755SJustin T. Gibbs	access_mode	RW
178417d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
17853ebc1009SJustin T. Gibbs	field	DIAGLEDEN	0x80
17863ebc1009SJustin T. Gibbs	field	DIAGLEDON	0x40
17873ebc1009SJustin T. Gibbs	field	ENAB40		0x08	/* LVD transceiver active */
17883ebc1009SJustin T. Gibbs	field	ENAB20		0x04	/* SE/HVD transceiver active */
17893ebc1009SJustin T. Gibbs	field	SELWIDE		0x02
179017d24755SJustin T. Gibbs}
179117d24755SJustin T. Gibbs
179217d24755SJustin T. Gibbs/*
179317d24755SJustin T. Gibbs * Option Mode
179417d24755SJustin T. Gibbs */
179517d24755SJustin T. Gibbsregister OPTIONMODE {
179617d24755SJustin T. Gibbs	address			0x04A
179717d24755SJustin T. Gibbs	access_mode	RW
179817d24755SJustin T. Gibbs	modes		M_CFG
17993ebc1009SJustin T. Gibbs	field	BIOSCANCTL		0x80
18003ebc1009SJustin T. Gibbs	field	AUTOACKEN		0x40
18013ebc1009SJustin T. Gibbs	field	BIASCANCTL		0x20
18023ebc1009SJustin T. Gibbs	field	BUSFREEREV		0x10
18033ebc1009SJustin T. Gibbs	field	ENDGFORMCHK		0x04
18043ebc1009SJustin T. Gibbs	field	AUTO_MSGOUT_DE		0x02
180517d24755SJustin T. Gibbs	mask	OPTIONMODE_DEFAULTS	AUTO_MSGOUT_DE
180617d24755SJustin T. Gibbs}
180717d24755SJustin T. Gibbs
180817d24755SJustin T. Gibbs/*
180917d24755SJustin T. Gibbs * SCSI Status 0
181017d24755SJustin T. Gibbs */
181117d24755SJustin T. Gibbsregister SSTAT0	{
181217d24755SJustin T. Gibbs	address			0x04B
181317d24755SJustin T. Gibbs	access_mode	RO
181417d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
18153ebc1009SJustin T. Gibbs	field	TARGET		0x80	/* Board acting as target */
18163ebc1009SJustin T. Gibbs	field	SELDO		0x40	/* Selection Done */
18173ebc1009SJustin T. Gibbs	field	SELDI		0x20	/* Board has been selected */
18183ebc1009SJustin T. Gibbs	field	SELINGO		0x10	/* Selection In Progress */
18193ebc1009SJustin T. Gibbs	field	IOERR		0x08	/* LVD Tranceiver mode changed */
18203ebc1009SJustin T. Gibbs	field	OVERRUN		0x04	/* SCSI Offset overrun detected */
18213ebc1009SJustin T. Gibbs	field	SPIORDY		0x02	/* SCSI PIO Ready */
18223ebc1009SJustin T. Gibbs	field	ARBDO		0x01	/* Arbitration Done Out */
182317d24755SJustin T. Gibbs}
182417d24755SJustin T. Gibbs
182517d24755SJustin T. Gibbs/*
182617d24755SJustin T. Gibbs * Clear SCSI Interrupt 0
182717d24755SJustin T. Gibbs * Writing a 1 to a bit clears the associated SCSI Interrupt in SSTAT0.
182817d24755SJustin T. Gibbs */
182917d24755SJustin T. Gibbsregister CLRSINT0 {
183017d24755SJustin T. Gibbs	address			0x04B
183117d24755SJustin T. Gibbs	access_mode	WO
183217d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
18333ebc1009SJustin T. Gibbs	field	CLRSELDO	0x40
18343ebc1009SJustin T. Gibbs	field	CLRSELDI	0x20
18353ebc1009SJustin T. Gibbs	field	CLRSELINGO	0x10
18363ebc1009SJustin T. Gibbs	field	CLRIOERR	0x08
18373ebc1009SJustin T. Gibbs	field	CLROVERRUN	0x04
18383ebc1009SJustin T. Gibbs	field	CLRSPIORDY	0x02
18393ebc1009SJustin T. Gibbs	field	CLRARBDO	0x01
184017d24755SJustin T. Gibbs}
184117d24755SJustin T. Gibbs
184217d24755SJustin T. Gibbs/*
184317d24755SJustin T. Gibbs * SCSI Interrupt Mode 0
184417d24755SJustin T. Gibbs * Setting any bit will enable the corresponding function
184517d24755SJustin T. Gibbs * in SIMODE0 to interrupt via the IRQ pin.
184617d24755SJustin T. Gibbs */
184717d24755SJustin T. Gibbsregister SIMODE0 {
184817d24755SJustin T. Gibbs	address			0x04B
184917d24755SJustin T. Gibbs	access_mode	RW
185017d24755SJustin T. Gibbs	modes		M_CFG
18513ebc1009SJustin T. Gibbs	field	ENSELDO		0x40
18523ebc1009SJustin T. Gibbs	field	ENSELDI		0x20
18533ebc1009SJustin T. Gibbs	field	ENSELINGO	0x10
18543ebc1009SJustin T. Gibbs	field	ENIOERR		0x08
18553ebc1009SJustin T. Gibbs	field	ENOVERRUN	0x04
18563ebc1009SJustin T. Gibbs	field	ENSPIORDY	0x02
18573ebc1009SJustin T. Gibbs	field	ENARBDO		0x01
185817d24755SJustin T. Gibbs}
185917d24755SJustin T. Gibbs
186017d24755SJustin T. Gibbs/*
186117d24755SJustin T. Gibbs * SCSI Status 1
186217d24755SJustin T. Gibbs */
186317d24755SJustin T. Gibbsregister SSTAT1 {
186417d24755SJustin T. Gibbs	address			0x04C
186517d24755SJustin T. Gibbs	access_mode	RO
186617d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
18673ebc1009SJustin T. Gibbs	field	SELTO		0x80
18683ebc1009SJustin T. Gibbs	field	ATNTARG 	0x40
18693ebc1009SJustin T. Gibbs	field	SCSIRSTI	0x20
18703ebc1009SJustin T. Gibbs	field	PHASEMIS	0x10
18713ebc1009SJustin T. Gibbs	field	BUSFREE		0x08
18723ebc1009SJustin T. Gibbs	field	SCSIPERR	0x04
18733ebc1009SJustin T. Gibbs	field	STRB2FAST	0x02
18743ebc1009SJustin T. Gibbs	field	REQINIT		0x01
187517d24755SJustin T. Gibbs}
187617d24755SJustin T. Gibbs
187717d24755SJustin T. Gibbs/*
187817d24755SJustin T. Gibbs * Clear SCSI Interrupt 1
187917d24755SJustin T. Gibbs * Writing a 1 to a bit clears the associated SCSI Interrupt in SSTAT1.
188017d24755SJustin T. Gibbs */
188117d24755SJustin T. Gibbsregister CLRSINT1 {
1882c59c8a72SJustin T. Gibbs	address			0x04C
188317d24755SJustin T. Gibbs	access_mode	WO
188417d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
18853ebc1009SJustin T. Gibbs	field	CLRSELTIMEO	0x80
18863ebc1009SJustin T. Gibbs	field	CLRATNO		0x40
18873ebc1009SJustin T. Gibbs	field	CLRSCSIRSTI	0x20
18883ebc1009SJustin T. Gibbs	field	CLRBUSFREE	0x08
18893ebc1009SJustin T. Gibbs	field	CLRSCSIPERR	0x04
18903ebc1009SJustin T. Gibbs	field	CLRSTRB2FAST	0x02
18913ebc1009SJustin T. Gibbs	field	CLRREQINIT	0x01
189217d24755SJustin T. Gibbs}
189317d24755SJustin T. Gibbs
189417d24755SJustin T. Gibbs/*
189517d24755SJustin T. Gibbs * SCSI Status 2
189617d24755SJustin T. Gibbs */
189717d24755SJustin T. Gibbsregister SSTAT2 {
189817d24755SJustin T. Gibbs	address			0x04d
189917d24755SJustin T. Gibbs	access_mode	RO
190017d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
19013ebc1009SJustin T. Gibbs	field	BUSFREETIME	0xc0 {
19023ebc1009SJustin T. Gibbs		BUSFREE_LQO	0x40,
19033ebc1009SJustin T. Gibbs		BUSFREE_DFF0	0x80,
19043ebc1009SJustin T. Gibbs		BUSFREE_DFF1	0xC0
19053ebc1009SJustin T. Gibbs	}
19063ebc1009SJustin T. Gibbs	field	NONPACKREQ	0x20
19073ebc1009SJustin T. Gibbs	field	EXP_ACTIVE	0x10	/* SCSI Expander Active */
19083ebc1009SJustin T. Gibbs	field	BSYX		0x08	/* Busy Expander */
19093ebc1009SJustin T. Gibbs	field	WIDE_RES	0x04	/* Modes 0 and 1 only */
19103ebc1009SJustin T. Gibbs	field	SDONE		0x02	/* Modes 0 and 1 only */
19113ebc1009SJustin T. Gibbs	field	DMADONE		0x01	/* Modes 0 and 1 only */
191217d24755SJustin T. Gibbs}
191317d24755SJustin T. Gibbs
191417d24755SJustin T. Gibbs/*
191517d24755SJustin T. Gibbs * Clear SCSI Interrupt 2
191617d24755SJustin T. Gibbs */
191717d24755SJustin T. Gibbsregister CLRSINT2 {
191817d24755SJustin T. Gibbs	address			0x04D
191917d24755SJustin T. Gibbs	access_mode	WO
192017d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
19213ebc1009SJustin T. Gibbs	field	CLRNONPACKREQ	0x20
19223ebc1009SJustin T. Gibbs	field	CLRWIDE_RES	0x04	/* Modes 0 and 1 only */
19233ebc1009SJustin T. Gibbs	field	CLRSDONE	0x02	/* Modes 0 and 1 only */
19243ebc1009SJustin T. Gibbs	field	CLRDMADONE	0x01	/* Modes 0 and 1 only */
192517d24755SJustin T. Gibbs}
192617d24755SJustin T. Gibbs
192717d24755SJustin T. Gibbs/*
192817d24755SJustin T. Gibbs * SCSI Interrupt Mode 2
192917d24755SJustin T. Gibbs */
193017d24755SJustin T. Gibbsregister SIMODE2 {
193117d24755SJustin T. Gibbs	address			0x04D
193217d24755SJustin T. Gibbs	access_mode	RW
193317d24755SJustin T. Gibbs	modes		M_CFG
19343ebc1009SJustin T. Gibbs	field	ENWIDE_RES	0x04
19353ebc1009SJustin T. Gibbs	field	ENSDONE		0x02
19363ebc1009SJustin T. Gibbs	field	ENDMADONE	0x01
193717d24755SJustin T. Gibbs}
193817d24755SJustin T. Gibbs
193917d24755SJustin T. Gibbs/*
194017d24755SJustin T. Gibbs * Physical Error Diagnosis
194117d24755SJustin T. Gibbs */
194217d24755SJustin T. Gibbsregister PERRDIAG {
194317d24755SJustin T. Gibbs	address			0x04E
194417d24755SJustin T. Gibbs	access_mode	RO
194517d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
19463ebc1009SJustin T. Gibbs	field	HIZERO		0x80
19473ebc1009SJustin T. Gibbs	field	HIPERR		0x40
19483ebc1009SJustin T. Gibbs	field	PREVPHASE	0x20
19493ebc1009SJustin T. Gibbs	field	PARITYERR	0x10
19503ebc1009SJustin T. Gibbs	field	AIPERR		0x08
19513ebc1009SJustin T. Gibbs	field	CRCERR		0x04
19523ebc1009SJustin T. Gibbs	field	DGFORMERR	0x02
19533ebc1009SJustin T. Gibbs	field	DTERR		0x01
195417d24755SJustin T. Gibbs}
195517d24755SJustin T. Gibbs
195617d24755SJustin T. Gibbs/*
195717d24755SJustin T. Gibbs * LQI Manager Current State
195817d24755SJustin T. Gibbs */
195917d24755SJustin T. Gibbsregister LQISTATE {
196017d24755SJustin T. Gibbs	address			0x04E
196117d24755SJustin T. Gibbs	access_mode	RO
196217d24755SJustin T. Gibbs	modes		M_CFG
196317d24755SJustin T. Gibbs}
196417d24755SJustin T. Gibbs
196517d24755SJustin T. Gibbs/*
196617d24755SJustin T. Gibbs * SCSI Offset Count
196717d24755SJustin T. Gibbs */
196817d24755SJustin T. Gibbsregister SOFFCNT {
196917d24755SJustin T. Gibbs	address			0x04F
197017d24755SJustin T. Gibbs	access_mode	RO
197117d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
197217d24755SJustin T. Gibbs}
197317d24755SJustin T. Gibbs
197417d24755SJustin T. Gibbs/*
197517d24755SJustin T. Gibbs * LQO Manager Current State
197617d24755SJustin T. Gibbs */
197717d24755SJustin T. Gibbsregister LQOSTATE {
197817d24755SJustin T. Gibbs	address			0x04F
197917d24755SJustin T. Gibbs	access_mode	RO
198017d24755SJustin T. Gibbs	modes		M_CFG
198117d24755SJustin T. Gibbs}
198217d24755SJustin T. Gibbs
198317d24755SJustin T. Gibbs/*
198417d24755SJustin T. Gibbs * LQI Manager Status
198517d24755SJustin T. Gibbs */
198617d24755SJustin T. Gibbsregister LQISTAT0 {
198717d24755SJustin T. Gibbs	address			0x050
198817d24755SJustin T. Gibbs	access_mode	RO
198917d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
19903ebc1009SJustin T. Gibbs	field	LQIATNQAS	0x20
19913ebc1009SJustin T. Gibbs	field	LQICRCT1	0x10
19923ebc1009SJustin T. Gibbs	field	LQICRCT2	0x08
19933ebc1009SJustin T. Gibbs	field	LQIBADLQT	0x04
19943ebc1009SJustin T. Gibbs	field	LQIATNLQ	0x02
19953ebc1009SJustin T. Gibbs	field	LQIATNCMD	0x01
199617d24755SJustin T. Gibbs}
199717d24755SJustin T. Gibbs
199817d24755SJustin T. Gibbs/*
199917d24755SJustin T. Gibbs * Clear LQI Interrupts 0
200017d24755SJustin T. Gibbs */
20013ebc1009SJustin T. Gibbsregister CLRLQIINT0 {
200217d24755SJustin T. Gibbs	address			0x050
200317d24755SJustin T. Gibbs	access_mode	WO
200417d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
20053ebc1009SJustin T. Gibbs	field	CLRLQIATNQAS	0x20
20063ebc1009SJustin T. Gibbs	field	CLRLQICRCT1	0x10
20073ebc1009SJustin T. Gibbs	field	CLRLQICRCT2	0x08
20083ebc1009SJustin T. Gibbs	field	CLRLQIBADLQT	0x04
20093ebc1009SJustin T. Gibbs	field	CLRLQIATNLQ	0x02
20103ebc1009SJustin T. Gibbs	field	CLRLQIATNCMD	0x01
201117d24755SJustin T. Gibbs}
201217d24755SJustin T. Gibbs
201317d24755SJustin T. Gibbs/*
201417d24755SJustin T. Gibbs * LQI Manager Interrupt Mode 0
201517d24755SJustin T. Gibbs */
201617d24755SJustin T. Gibbsregister LQIMODE0 {
201717d24755SJustin T. Gibbs	address			0x050
201817d24755SJustin T. Gibbs	access_mode	RW
201917d24755SJustin T. Gibbs	modes		M_CFG
20203ebc1009SJustin T. Gibbs	field	ENLQIATNQASK	0x20
20213ebc1009SJustin T. Gibbs	field	ENLQICRCT1	0x10
20223ebc1009SJustin T. Gibbs	field	ENLQICRCT2	0x08
20233ebc1009SJustin T. Gibbs	field	ENLQIBADLQT	0x04
20243ebc1009SJustin T. Gibbs	field	ENLQIATNLQ	0x02
20253ebc1009SJustin T. Gibbs	field	ENLQIATNCMD	0x01
202617d24755SJustin T. Gibbs}
202717d24755SJustin T. Gibbs
202817d24755SJustin T. Gibbs/*
202917d24755SJustin T. Gibbs * LQI Manager Status 1
203017d24755SJustin T. Gibbs */
203117d24755SJustin T. Gibbsregister LQISTAT1 {
203217d24755SJustin T. Gibbs	address			0x051
203317d24755SJustin T. Gibbs	access_mode	RO
203417d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
20353ebc1009SJustin T. Gibbs	field	LQIPHASE_LQ	0x80
20363ebc1009SJustin T. Gibbs	field	LQIPHASE_NLQ	0x40
20373ebc1009SJustin T. Gibbs	field	LQIABORT	0x20
20383ebc1009SJustin T. Gibbs	field	LQICRCI_LQ	0x10
20393ebc1009SJustin T. Gibbs	field	LQICRCI_NLQ	0x08
20403ebc1009SJustin T. Gibbs	field	LQIBADLQI	0x04
20413ebc1009SJustin T. Gibbs	field	LQIOVERI_LQ	0x02
20423ebc1009SJustin T. Gibbs	field	LQIOVERI_NLQ	0x01
204317d24755SJustin T. Gibbs}
204417d24755SJustin T. Gibbs
204517d24755SJustin T. Gibbs/*
204617d24755SJustin T. Gibbs * Clear LQI Manager Interrupts1
204717d24755SJustin T. Gibbs */
204817d24755SJustin T. Gibbsregister CLRLQIINT1 {
204917d24755SJustin T. Gibbs	address			0x051
205017d24755SJustin T. Gibbs	access_mode	WO
205117d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
20523ebc1009SJustin T. Gibbs	field	CLRLQIPHASE_LQ	0x80
20533ebc1009SJustin T. Gibbs	field	CLRLQIPHASE_NLQ	0x40
20543ebc1009SJustin T. Gibbs	field	CLRLIQABORT	0x20
20553ebc1009SJustin T. Gibbs	field	CLRLQICRCI_LQ	0x10
20563ebc1009SJustin T. Gibbs	field	CLRLQICRCI_NLQ	0x08
20573ebc1009SJustin T. Gibbs	field	CLRLQIBADLQI	0x04
20583ebc1009SJustin T. Gibbs	field	CLRLQIOVERI_LQ	0x02
20593ebc1009SJustin T. Gibbs	field	CLRLQIOVERI_NLQ	0x01
206017d24755SJustin T. Gibbs}
206117d24755SJustin T. Gibbs
206217d24755SJustin T. Gibbs/*
206317d24755SJustin T. Gibbs * LQI Manager Interrupt Mode 1
206417d24755SJustin T. Gibbs */
206517d24755SJustin T. Gibbsregister LQIMODE1 {
206617d24755SJustin T. Gibbs	address			0x051
206717d24755SJustin T. Gibbs	access_mode	RW
206817d24755SJustin T. Gibbs	modes		M_CFG
2069acae33b0SJustin T. Gibbs	field	ENLQIPHASE_LQ	0x80	/* LQIPHASE1 */
2070acae33b0SJustin T. Gibbs	field	ENLQIPHASE_NLQ	0x40	/* LQIPHASE2 */
20713ebc1009SJustin T. Gibbs	field	ENLIQABORT	0x20
2072acae33b0SJustin T. Gibbs	field	ENLQICRCI_LQ	0x10	/* LQICRCI1 */
2073acae33b0SJustin T. Gibbs	field	ENLQICRCI_NLQ	0x08	/* LQICRCI2 */
20743ebc1009SJustin T. Gibbs	field	ENLQIBADLQI	0x04
2075acae33b0SJustin T. Gibbs	field	ENLQIOVERI_LQ	0x02	/* LQIOVERI1 */
2076acae33b0SJustin T. Gibbs	field	ENLQIOVERI_NLQ	0x01	/* LQIOVERI2 */
207717d24755SJustin T. Gibbs}
207817d24755SJustin T. Gibbs
207917d24755SJustin T. Gibbs/*
208017d24755SJustin T. Gibbs * LQI Manager Status 2
208117d24755SJustin T. Gibbs */
208217d24755SJustin T. Gibbsregister LQISTAT2 {
208317d24755SJustin T. Gibbs	address			0x052
208417d24755SJustin T. Gibbs	access_mode	RO
208517d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
20863ebc1009SJustin T. Gibbs	field	PACKETIZED	0x80
20873ebc1009SJustin T. Gibbs	field	LQIPHASE_OUTPKT	0x40
20883ebc1009SJustin T. Gibbs	field	LQIWORKONLQ	0x20
20893ebc1009SJustin T. Gibbs	field	LQIWAITFIFO	0x10
20903ebc1009SJustin T. Gibbs	field	LQISTOPPKT	0x08
20913ebc1009SJustin T. Gibbs	field	LQISTOPLQ	0x04
20923ebc1009SJustin T. Gibbs	field	LQISTOPCMD	0x02
20933ebc1009SJustin T. Gibbs	field	LQIGSAVAIL	0x01
209417d24755SJustin T. Gibbs}
209517d24755SJustin T. Gibbs
209617d24755SJustin T. Gibbs/*
209717d24755SJustin T. Gibbs * SCSI Status 3
209817d24755SJustin T. Gibbs */
209917d24755SJustin T. Gibbsregister SSTAT3 {
210017d24755SJustin T. Gibbs	address			0x053
210117d24755SJustin T. Gibbs	access_mode	RO
210217d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
21033ebc1009SJustin T. Gibbs	field	NTRAMPERR	0x02
21043ebc1009SJustin T. Gibbs	field	OSRAMPERR	0x01
210517d24755SJustin T. Gibbs}
210617d24755SJustin T. Gibbs
210717d24755SJustin T. Gibbs/*
210817d24755SJustin T. Gibbs * Clear SCSI Status 3
210917d24755SJustin T. Gibbs */
211017d24755SJustin T. Gibbsregister CLRSINT3 {
211117d24755SJustin T. Gibbs	address			0x053
211217d24755SJustin T. Gibbs	access_mode	WO
211317d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
21143ebc1009SJustin T. Gibbs	field	CLRNTRAMPERR	0x02
21153ebc1009SJustin T. Gibbs	field	CLROSRAMPERR	0x01
211617d24755SJustin T. Gibbs}
211717d24755SJustin T. Gibbs
211817d24755SJustin T. Gibbs/*
211917d24755SJustin T. Gibbs * SCSI Interrupt Mode 3
212017d24755SJustin T. Gibbs */
212117d24755SJustin T. Gibbsregister SIMODE3 {
212217d24755SJustin T. Gibbs	address			0x053
212317d24755SJustin T. Gibbs	access_mode	RW
212417d24755SJustin T. Gibbs	modes		M_CFG
21253ebc1009SJustin T. Gibbs	field	ENNTRAMPERR	0x02
21263ebc1009SJustin T. Gibbs	field	ENOSRAMPERR	0x01
212717d24755SJustin T. Gibbs}
212817d24755SJustin T. Gibbs
212917d24755SJustin T. Gibbs/*
213017d24755SJustin T. Gibbs * LQO Manager Status 0
213117d24755SJustin T. Gibbs */
213217d24755SJustin T. Gibbsregister LQOSTAT0 {
213317d24755SJustin T. Gibbs	address			0x054
213417d24755SJustin T. Gibbs	access_mode	RO
213517d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
21363ebc1009SJustin T. Gibbs	field	LQOTARGSCBPERR	0x10
21373ebc1009SJustin T. Gibbs	field	LQOSTOPT2	0x08
21383ebc1009SJustin T. Gibbs	field	LQOATNLQ	0x04
21393ebc1009SJustin T. Gibbs	field	LQOATNPKT	0x02
21403ebc1009SJustin T. Gibbs	field	LQOTCRC		0x01
214117d24755SJustin T. Gibbs}
214217d24755SJustin T. Gibbs
214317d24755SJustin T. Gibbs/*
214417d24755SJustin T. Gibbs * Clear LQO Manager interrupt 0
214517d24755SJustin T. Gibbs */
214617d24755SJustin T. Gibbsregister CLRLQOINT0 {
214717d24755SJustin T. Gibbs	address			0x054
214817d24755SJustin T. Gibbs	access_mode	WO
214917d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
21503ebc1009SJustin T. Gibbs	field	CLRLQOTARGSCBPERR	0x10
21513ebc1009SJustin T. Gibbs	field	CLRLQOSTOPT2		0x08
21523ebc1009SJustin T. Gibbs	field	CLRLQOATNLQ		0x04
21533ebc1009SJustin T. Gibbs	field	CLRLQOATNPKT		0x02
21543ebc1009SJustin T. Gibbs	field	CLRLQOTCRC		0x01
215517d24755SJustin T. Gibbs}
215617d24755SJustin T. Gibbs
215717d24755SJustin T. Gibbs/*
215817d24755SJustin T. Gibbs * LQO Manager Interrupt Mode 0
215917d24755SJustin T. Gibbs */
216017d24755SJustin T. Gibbsregister LQOMODE0 {
216117d24755SJustin T. Gibbs	address			0x054
216217d24755SJustin T. Gibbs	access_mode	RW
216317d24755SJustin T. Gibbs	modes		M_CFG
21643ebc1009SJustin T. Gibbs	field	ENLQOTARGSCBPERR	0x10
21653ebc1009SJustin T. Gibbs	field	ENLQOSTOPT2		0x08
21663ebc1009SJustin T. Gibbs	field	ENLQOATNLQ		0x04
21673ebc1009SJustin T. Gibbs	field	ENLQOATNPKT		0x02
21683ebc1009SJustin T. Gibbs	field	ENLQOTCRC		0x01
216917d24755SJustin T. Gibbs}
217017d24755SJustin T. Gibbs
217117d24755SJustin T. Gibbs/*
217217d24755SJustin T. Gibbs * LQO Manager Status 1
217317d24755SJustin T. Gibbs */
217417d24755SJustin T. Gibbsregister LQOSTAT1 {
217517d24755SJustin T. Gibbs	address			0x055
217617d24755SJustin T. Gibbs	access_mode	RO
217717d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
21783ebc1009SJustin T. Gibbs	field	LQOINITSCBPERR	0x10
21793ebc1009SJustin T. Gibbs	field	LQOSTOPI2	0x08
21803ebc1009SJustin T. Gibbs	field	LQOBADQAS	0x04
21813ebc1009SJustin T. Gibbs	field	LQOBUSFREE	0x02
21823ebc1009SJustin T. Gibbs	field	LQOPHACHGINPKT	0x01
218317d24755SJustin T. Gibbs}
218417d24755SJustin T. Gibbs
218517d24755SJustin T. Gibbs/*
218617d24755SJustin T. Gibbs * Clear LOQ Interrupt 1
218717d24755SJustin T. Gibbs */
218817d24755SJustin T. Gibbsregister CLRLQOINT1 {
218917d24755SJustin T. Gibbs	address			0x055
219017d24755SJustin T. Gibbs	access_mode	WO
219117d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
21923ebc1009SJustin T. Gibbs	field	CLRLQOINITSCBPERR	0x10
21933ebc1009SJustin T. Gibbs	field	CLRLQOSTOPI2		0x08
21943ebc1009SJustin T. Gibbs	field	CLRLQOBADQAS		0x04
21953ebc1009SJustin T. Gibbs	field	CLRLQOBUSFREE		0x02
21963ebc1009SJustin T. Gibbs	field	CLRLQOPHACHGINPKT	0x01
219717d24755SJustin T. Gibbs}
219817d24755SJustin T. Gibbs
219917d24755SJustin T. Gibbs/*
220017d24755SJustin T. Gibbs * LQO Manager Interrupt Mode 1
220117d24755SJustin T. Gibbs */
220217d24755SJustin T. Gibbsregister LQOMODE1 {
220317d24755SJustin T. Gibbs	address			0x055
220417d24755SJustin T. Gibbs	access_mode	RW
220517d24755SJustin T. Gibbs	modes		M_CFG
22063ebc1009SJustin T. Gibbs	field	ENLQOINITSCBPERR	0x10
22073ebc1009SJustin T. Gibbs	field	ENLQOSTOPI2		0x08
22083ebc1009SJustin T. Gibbs	field	ENLQOBADQAS		0x04
22093ebc1009SJustin T. Gibbs	field	ENLQOBUSFREE		0x02
22103ebc1009SJustin T. Gibbs	field	ENLQOPHACHGINPKT	0x01
221117d24755SJustin T. Gibbs}
221217d24755SJustin T. Gibbs
221317d24755SJustin T. Gibbs/*
221417d24755SJustin T. Gibbs * LQO Manager Status 2
221517d24755SJustin T. Gibbs */
221617d24755SJustin T. Gibbsregister LQOSTAT2 {
221717d24755SJustin T. Gibbs	address			0x056
221817d24755SJustin T. Gibbs	access_mode	RO
221917d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
22203ebc1009SJustin T. Gibbs	field	LQOPKT		0xE0
22213ebc1009SJustin T. Gibbs	field	LQOWAITFIFO	0x10
22223ebc1009SJustin T. Gibbs	field	LQOPHACHGOUTPKT	0x02	/* outside of packet boundaries. */
22233ebc1009SJustin T. Gibbs	field	LQOSTOP0	0x01	/* Stopped after sending all packets */
222417d24755SJustin T. Gibbs}
222517d24755SJustin T. Gibbs
222617d24755SJustin T. Gibbs/*
222717d24755SJustin T. Gibbs * Output Synchronizer Space Count
222817d24755SJustin T. Gibbs */
222917d24755SJustin T. Gibbsregister OS_SPACE_CNT {
223017d24755SJustin T. Gibbs	address			0x056
223117d24755SJustin T. Gibbs	access_mode	RO
223217d24755SJustin T. Gibbs	modes		M_CFG
223317d24755SJustin T. Gibbs}
223417d24755SJustin T. Gibbs
223517d24755SJustin T. Gibbs/*
223617d24755SJustin T. Gibbs * SCSI Interrupt Mode 1
223717d24755SJustin T. Gibbs * Setting any bit will enable the corresponding function
223817d24755SJustin T. Gibbs * in SIMODE1 to interrupt via the IRQ pin.
223917d24755SJustin T. Gibbs */
224017d24755SJustin T. Gibbsregister SIMODE1 {
224117d24755SJustin T. Gibbs	address			0x057
224217d24755SJustin T. Gibbs	access_mode	RW
224317d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
22443ebc1009SJustin T. Gibbs	field	ENSELTIMO	0x80
22453ebc1009SJustin T. Gibbs	field	ENATNTARG	0x40
22463ebc1009SJustin T. Gibbs	field	ENSCSIRST	0x20
22473ebc1009SJustin T. Gibbs	field	ENPHASEMIS	0x10
22483ebc1009SJustin T. Gibbs	field	ENBUSFREE	0x08
22493ebc1009SJustin T. Gibbs	field	ENSCSIPERR	0x04
22503ebc1009SJustin T. Gibbs	field	ENSTRB2FAST	0x02
22513ebc1009SJustin T. Gibbs	field	ENREQINIT	0x01
225217d24755SJustin T. Gibbs}
225317d24755SJustin T. Gibbs
225417d24755SJustin T. Gibbs/*
225517d24755SJustin T. Gibbs * Good Status FIFO
225617d24755SJustin T. Gibbs */
225717d24755SJustin T. Gibbsregister GSFIFO {
225817d24755SJustin T. Gibbs	address			0x058
225917d24755SJustin T. Gibbs	access_mode	RO
226017d24755SJustin T. Gibbs	size		2
226117d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_SCSI
226217d24755SJustin T. Gibbs}
226317d24755SJustin T. Gibbs
226417d24755SJustin T. Gibbs/*
226517d24755SJustin T. Gibbs * Data FIFO SCSI Transfer Control
226617d24755SJustin T. Gibbs */
226717d24755SJustin T. Gibbsregister DFFSXFRCTL {
226817d24755SJustin T. Gibbs	address			0x05A
226917d24755SJustin T. Gibbs	access_mode	RW
227017d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
22710c5aa4c5SScott Long	field	DFFBITBUCKET	0x08
22723ebc1009SJustin T. Gibbs	field	CLRSHCNT	0x04
22733ebc1009SJustin T. Gibbs	field	CLRCHN		0x02
22743ebc1009SJustin T. Gibbs	field	RSTCHN		0x01
227517d24755SJustin T. Gibbs}
227617d24755SJustin T. Gibbs
227717d24755SJustin T. Gibbs/*
227817d24755SJustin T. Gibbs * Next SCSI Control Block
227917d24755SJustin T. Gibbs */
228017d24755SJustin T. Gibbsregister NEXTSCB {
228117d24755SJustin T. Gibbs	address			0x05A
228217d24755SJustin T. Gibbs	access_mode	RW
228317d24755SJustin T. Gibbs	size		2
228417d24755SJustin T. Gibbs	modes		M_SCSI
228517d24755SJustin T. Gibbs}
228617d24755SJustin T. Gibbs
22870c5aa4c5SScott Long/* Rev B only. */
22880c5aa4c5SScott Longregister LQOSCSCTL {
22890c5aa4c5SScott Long	address			0x05A
22900c5aa4c5SScott Long	access_mode	RW
22910c5aa4c5SScott Long	size		1
22920c5aa4c5SScott Long	modes		M_CFG
22930c5aa4c5SScott Long	field		LQOH2A_VERSION	0x80
22940c5aa4c5SScott Long	field		LQONOCHKOVER	0x01
22950c5aa4c5SScott Long}
22960c5aa4c5SScott Long
229717d24755SJustin T. Gibbs/*
229817d24755SJustin T. Gibbs * SEQ Interrupts
229917d24755SJustin T. Gibbs */
230017d24755SJustin T. Gibbsregister SEQINTSRC {
230117d24755SJustin T. Gibbs	address			0x05B
230217d24755SJustin T. Gibbs	access_mode	RO
230317d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
23043ebc1009SJustin T. Gibbs	field	CTXTDONE	0x40
23053ebc1009SJustin T. Gibbs	field	SAVEPTRS	0x20
23063ebc1009SJustin T. Gibbs	field	CFG4DATA	0x10
23073ebc1009SJustin T. Gibbs	field	CFG4ISTAT	0x08
23083ebc1009SJustin T. Gibbs	field	CFG4TSTAT	0x04
23093ebc1009SJustin T. Gibbs	field	CFG4ICMD	0x02
23103ebc1009SJustin T. Gibbs	field	CFG4TCMD	0x01
231117d24755SJustin T. Gibbs}
231217d24755SJustin T. Gibbs
231317d24755SJustin T. Gibbs/*
231417d24755SJustin T. Gibbs * Clear Arp Interrupts
231517d24755SJustin T. Gibbs */
231617d24755SJustin T. Gibbsregister CLRSEQINTSRC {
231717d24755SJustin T. Gibbs	address			0x05B
231817d24755SJustin T. Gibbs	access_mode	WO
231917d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
23203ebc1009SJustin T. Gibbs	field	CLRCTXTDONE	0x40
23213ebc1009SJustin T. Gibbs	field	CLRSAVEPTRS	0x20
23223ebc1009SJustin T. Gibbs	field	CLRCFG4DATA	0x10
23233ebc1009SJustin T. Gibbs	field	CLRCFG4ISTAT	0x08
23243ebc1009SJustin T. Gibbs	field	CLRCFG4TSTAT	0x04
23253ebc1009SJustin T. Gibbs	field	CLRCFG4ICMD	0x02
23263ebc1009SJustin T. Gibbs	field	CLRCFG4TCMD	0x01
232717d24755SJustin T. Gibbs}
232817d24755SJustin T. Gibbs
232917d24755SJustin T. Gibbs/*
233017d24755SJustin T. Gibbs * SEQ Interrupt Enabled (Shared)
233117d24755SJustin T. Gibbs */
233217d24755SJustin T. Gibbsregister SEQIMODE {
233317d24755SJustin T. Gibbs	address			0x05C
233417d24755SJustin T. Gibbs	access_mode	RW
233517d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
23363ebc1009SJustin T. Gibbs	field	ENCTXTDONE	0x40
23373ebc1009SJustin T. Gibbs	field	ENSAVEPTRS	0x20
23383ebc1009SJustin T. Gibbs	field	ENCFG4DATA	0x10
23393ebc1009SJustin T. Gibbs	field	ENCFG4ISTAT	0x08
23403ebc1009SJustin T. Gibbs	field	ENCFG4TSTAT	0x04
23413ebc1009SJustin T. Gibbs	field	ENCFG4ICMD	0x02
23423ebc1009SJustin T. Gibbs	field	ENCFG4TCMD	0x01
234317d24755SJustin T. Gibbs}
234417d24755SJustin T. Gibbs
234517d24755SJustin T. Gibbs/*
234617d24755SJustin T. Gibbs * Current SCSI Control Block
234717d24755SJustin T. Gibbs */
234817d24755SJustin T. Gibbsregister CURRSCB {
234917d24755SJustin T. Gibbs	address			0x05C
235017d24755SJustin T. Gibbs	access_mode	RW
235117d24755SJustin T. Gibbs	size		2
235217d24755SJustin T. Gibbs	modes		M_SCSI
235317d24755SJustin T. Gibbs}
235417d24755SJustin T. Gibbs
235517d24755SJustin T. Gibbs/*
235617d24755SJustin T. Gibbs * Data FIFO Status
235717d24755SJustin T. Gibbs */
235817d24755SJustin T. Gibbsregister MDFFSTAT {
235917d24755SJustin T. Gibbs	address			0x05D
236017d24755SJustin T. Gibbs	access_mode	RO
236117d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
23623ebc1009SJustin T. Gibbs	field	SHCNTNEGATIVE	0x40 /* Rev B or higher */
23633ebc1009SJustin T. Gibbs	field	SHCNTMINUS1	0x20 /* Rev B or higher */
23643ebc1009SJustin T. Gibbs	field	LASTSDONE	0x10
23653ebc1009SJustin T. Gibbs	field	SHVALID		0x08
23663ebc1009SJustin T. Gibbs	field	DLZERO		0x04 /* FIFO data ends on packet boundary. */
23673ebc1009SJustin T. Gibbs	field	DATAINFIFO	0x02
23683ebc1009SJustin T. Gibbs	field	FIFOFREE	0x01
236917d24755SJustin T. Gibbs}
237017d24755SJustin T. Gibbs
237117d24755SJustin T. Gibbs/*
237217d24755SJustin T. Gibbs * CRC Control
237317d24755SJustin T. Gibbs */
237417d24755SJustin T. Gibbsregister CRCCONTROL {
237517d24755SJustin T. Gibbs	address			0x05d
237617d24755SJustin T. Gibbs	access_mode	RW
237717d24755SJustin T. Gibbs	modes		M_CFG
23783ebc1009SJustin T. Gibbs	field	CRCVALCHKEN		0x40
237917d24755SJustin T. Gibbs}
238017d24755SJustin T. Gibbs
238117d24755SJustin T. Gibbs/*
238217d24755SJustin T. Gibbs * SCSI Test Control
238317d24755SJustin T. Gibbs */
238417d24755SJustin T. Gibbsregister SCSITEST {
238517d24755SJustin T. Gibbs	address			0x05E
238617d24755SJustin T. Gibbs	access_mode	RW
238717d24755SJustin T. Gibbs	modes		M_CFG
23883ebc1009SJustin T. Gibbs	field	CNTRTEST	0x08
23893ebc1009SJustin T. Gibbs	field	SEL_TXPLL_DEBUG	0x04
239017d24755SJustin T. Gibbs}
239117d24755SJustin T. Gibbs
239217d24755SJustin T. Gibbs/*
239317d24755SJustin T. Gibbs * Data FIFO Queue Tag
239417d24755SJustin T. Gibbs */
239517d24755SJustin T. Gibbsregister DFFTAG {
239617d24755SJustin T. Gibbs	address			0x05E
239717d24755SJustin T. Gibbs	access_mode	RW
239817d24755SJustin T. Gibbs	size		2
239917d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
240017d24755SJustin T. Gibbs}
240117d24755SJustin T. Gibbs
240217d24755SJustin T. Gibbs/*
240317d24755SJustin T. Gibbs * Last SCSI Control Block
240417d24755SJustin T. Gibbs */
240517d24755SJustin T. Gibbsregister LASTSCB {
240617d24755SJustin T. Gibbs	address			0x05E
240717d24755SJustin T. Gibbs	access_mode	RW
240817d24755SJustin T. Gibbs	size		2
240917d24755SJustin T. Gibbs	modes		M_SCSI
241017d24755SJustin T. Gibbs}
241117d24755SJustin T. Gibbs
241217d24755SJustin T. Gibbs/*
241317d24755SJustin T. Gibbs * SCSI I/O Cell Power-down Control
241417d24755SJustin T. Gibbs */
241517d24755SJustin T. Gibbsregister IOPDNCTL {
241617d24755SJustin T. Gibbs	address			0x05F
241717d24755SJustin T. Gibbs	access_mode	RW
241817d24755SJustin T. Gibbs	modes		M_CFG
24193ebc1009SJustin T. Gibbs	field	DISABLE_OE	0x80
24203ebc1009SJustin T. Gibbs	field	PDN_IDIST	0x04
24213ebc1009SJustin T. Gibbs	field	PDN_DIFFSENSE	0x01
242217d24755SJustin T. Gibbs}
242317d24755SJustin T. Gibbs
242417d24755SJustin T. Gibbs/*
2425*594c945aSPedro F. Giffuni * Shadow Host Address.
242617d24755SJustin T. Gibbs */
242717d24755SJustin T. Gibbsregister SHADDR {
242817d24755SJustin T. Gibbs	address			0x060
242917d24755SJustin T. Gibbs	access_mode	RO
243017d24755SJustin T. Gibbs	size		8
243117d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
243217d24755SJustin T. Gibbs}
243317d24755SJustin T. Gibbs
243417d24755SJustin T. Gibbs/*
243517d24755SJustin T. Gibbs * Data Group CRC Interval.
243617d24755SJustin T. Gibbs */
243717d24755SJustin T. Gibbsregister DGRPCRCI {
243817d24755SJustin T. Gibbs	address			0x060
243917d24755SJustin T. Gibbs	access_mode	RW
244017d24755SJustin T. Gibbs	size		2
244117d24755SJustin T. Gibbs	modes		M_CFG
244217d24755SJustin T. Gibbs}
244317d24755SJustin T. Gibbs
244417d24755SJustin T. Gibbs/*
244517d24755SJustin T. Gibbs * Data Transfer Negotiation Address
244617d24755SJustin T. Gibbs */
244717d24755SJustin T. Gibbsregister NEGOADDR {
244817d24755SJustin T. Gibbs	address			0x060
244917d24755SJustin T. Gibbs	access_mode	RW
245017d24755SJustin T. Gibbs	modes		M_SCSI
245117d24755SJustin T. Gibbs}
245217d24755SJustin T. Gibbs
245317d24755SJustin T. Gibbs/*
245417d24755SJustin T. Gibbs * Data Transfer Negotiation Data - Period Byte
245517d24755SJustin T. Gibbs */
245617d24755SJustin T. Gibbsregister NEGPERIOD {
245717d24755SJustin T. Gibbs	address			0x061
245817d24755SJustin T. Gibbs	access_mode	RW
245917d24755SJustin T. Gibbs	modes		M_SCSI
246017d24755SJustin T. Gibbs}
246117d24755SJustin T. Gibbs
246217d24755SJustin T. Gibbs/*
246317d24755SJustin T. Gibbs * Packetized CRC Interval
246417d24755SJustin T. Gibbs */
246517d24755SJustin T. Gibbsregister PACKCRCI {
246617d24755SJustin T. Gibbs	address			0x062
246717d24755SJustin T. Gibbs	access_mode	RW
246817d24755SJustin T. Gibbs	size		2
246917d24755SJustin T. Gibbs	modes		M_CFG
247017d24755SJustin T. Gibbs}
247117d24755SJustin T. Gibbs
247217d24755SJustin T. Gibbs/*
247317d24755SJustin T. Gibbs * Data Transfer Negotiation Data - Offset Byte
247417d24755SJustin T. Gibbs */
247517d24755SJustin T. Gibbsregister NEGOFFSET {
247617d24755SJustin T. Gibbs	address			0x062
247717d24755SJustin T. Gibbs	access_mode	RW
247817d24755SJustin T. Gibbs	modes		M_SCSI
247917d24755SJustin T. Gibbs}
248017d24755SJustin T. Gibbs
248117d24755SJustin T. Gibbs/*
248217d24755SJustin T. Gibbs * Data Transfer Negotiation Data - PPR Options
248317d24755SJustin T. Gibbs */
248417d24755SJustin T. Gibbsregister NEGPPROPTS {
248517d24755SJustin T. Gibbs	address			0x063
248617d24755SJustin T. Gibbs	access_mode	RW
248717d24755SJustin T. Gibbs	modes		M_SCSI
24883ebc1009SJustin T. Gibbs	field	PPROPT_PACE	0x08
24893ebc1009SJustin T. Gibbs	field	PPROPT_QAS	0x04
24903ebc1009SJustin T. Gibbs	field	PPROPT_DT	0x02
24913ebc1009SJustin T. Gibbs	field	PPROPT_IUT	0x01
249217d24755SJustin T. Gibbs}
249317d24755SJustin T. Gibbs
249417d24755SJustin T. Gibbs/*
249517d24755SJustin T. Gibbs * Data Transfer Negotiation Data -  Connection Options
249617d24755SJustin T. Gibbs */
249717d24755SJustin T. Gibbsregister NEGCONOPTS {
249817d24755SJustin T. Gibbs	address			0x064
249917d24755SJustin T. Gibbs	access_mode	RW
250017d24755SJustin T. Gibbs	modes		M_SCSI
25010c5aa4c5SScott Long	field	ENSNAPSHOT	0x40
25020c5aa4c5SScott Long	field	RTI_WRTDIS	0x20
25030c5aa4c5SScott Long	field	RTI_OVRDTRN	0x10
25040c5aa4c5SScott Long	field	ENSLOWCRC	0x08
25053ebc1009SJustin T. Gibbs	field	ENAUTOATNI	0x04
25063ebc1009SJustin T. Gibbs	field	ENAUTOATNO	0x02
25073ebc1009SJustin T. Gibbs	field	WIDEXFER	0x01
250817d24755SJustin T. Gibbs}
250917d24755SJustin T. Gibbs
251017d24755SJustin T. Gibbs/*
251117d24755SJustin T. Gibbs * Negotiation Table Annex Column Index.
251217d24755SJustin T. Gibbs */
251317d24755SJustin T. Gibbsregister ANNEXCOL {
251417d24755SJustin T. Gibbs	address			0x065
251517d24755SJustin T. Gibbs	access_mode	RW
251617d24755SJustin T. Gibbs	modes		M_SCSI
251717d24755SJustin T. Gibbs}
251817d24755SJustin T. Gibbs
25193ebc1009SJustin T. Gibbsregister SCSCHKN {
25203ebc1009SJustin T. Gibbs	address			0x066
25213ebc1009SJustin T. Gibbs	access_mode	RW
25223ebc1009SJustin T. Gibbs	modes		M_CFG
25233ebc1009SJustin T. Gibbs	field	STSELSKIDDIS	0x40
25240c5aa4c5SScott Long	field	CURRFIFODEF	0x20
25253ebc1009SJustin T. Gibbs	field	WIDERESEN	0x10
25263ebc1009SJustin T. Gibbs	field	SDONEMSKDIS	0x08
25273ebc1009SJustin T. Gibbs	field	DFFACTCLR	0x04
25283ebc1009SJustin T. Gibbs	field	SHVALIDSTDIS	0x02
25293ebc1009SJustin T. Gibbs	field	LSTSGCLRDIS	0x01
25303ebc1009SJustin T. Gibbs}
25313ebc1009SJustin T. Gibbs
25320c5aa4c5SScott Longconst AHD_ANNEXCOL_PER_DEV0	4
25330c5aa4c5SScott Longconst AHD_NUM_PER_DEV_ANNEXCOLS	4
25340c5aa4c5SScott Longconst AHD_ANNEXCOL_PRECOMP_SLEW	4
253517d24755SJustin T. Gibbsconst	AHD_PRECOMP_MASK	0x07
25360c5aa4c5SScott Longconst	AHD_PRECOMP_SHIFT	0
253717d24755SJustin T. Gibbsconst	AHD_PRECOMP_CUTBACK_17	0x04
253817d24755SJustin T. Gibbsconst	AHD_PRECOMP_CUTBACK_29	0x06
253917d24755SJustin T. Gibbsconst	AHD_PRECOMP_CUTBACK_37	0x07
25400c5aa4c5SScott Longconst	AHD_SLEWRATE_MASK	0x78
25410c5aa4c5SScott Longconst	AHD_SLEWRATE_SHIFT	3
25420c5aa4c5SScott Long/*
254343dac090SScott Long * Rev A has only a single bit (high bit of field) of slew adjustment.
254443dac090SScott Long * Rev B has 4 bits.  The current default happens to be the same for both.
25450c5aa4c5SScott Long */
254643dac090SScott Longconst	AHD_SLEWRATE_DEF_REVA	0x08
25470c5aa4c5SScott Longconst	AHD_SLEWRATE_DEF_REVB	0x08
25480c5aa4c5SScott Long
25490c5aa4c5SScott Long/* Rev A does not have any amplitude setting. */
25500c5aa4c5SScott Longconst AHD_ANNEXCOL_AMPLITUDE	6
25510c5aa4c5SScott Longconst	AHD_AMPLITUDE_MASK	0x7
25520c5aa4c5SScott Longconst	AHD_AMPLITUDE_SHIFT	0
25530c5aa4c5SScott Longconst	AHD_AMPLITUDE_DEF	0x7
255417d24755SJustin T. Gibbs
255517d24755SJustin T. Gibbs/*
255617d24755SJustin T. Gibbs * Negotiation Table Annex Data Port.
255717d24755SJustin T. Gibbs */
255817d24755SJustin T. Gibbsregister ANNEXDAT {
255917d24755SJustin T. Gibbs	address			0x066
256017d24755SJustin T. Gibbs	access_mode	RW
256117d24755SJustin T. Gibbs	modes		M_SCSI
256217d24755SJustin T. Gibbs}
256317d24755SJustin T. Gibbs
256417d24755SJustin T. Gibbs/*
256517d24755SJustin T. Gibbs * Initiator's Own Id.
256617d24755SJustin T. Gibbs * The SCSI ID to use for Selection Out and seen during a reselection..
256717d24755SJustin T. Gibbs */
256817d24755SJustin T. Gibbsregister IOWNID {
256917d24755SJustin T. Gibbs	address			0x067
257017d24755SJustin T. Gibbs	access_mode	RW
257117d24755SJustin T. Gibbs	modes		M_SCSI
257217d24755SJustin T. Gibbs}
257317d24755SJustin T. Gibbs
257417d24755SJustin T. Gibbs/*
257517d24755SJustin T. Gibbs * 960MHz Phase-Locked Loop Control 0
257617d24755SJustin T. Gibbs */
257717d24755SJustin T. Gibbsregister PLL960CTL0 {
257817d24755SJustin T. Gibbs	address			0x068
257917d24755SJustin T. Gibbs	access_mode	RW
258017d24755SJustin T. Gibbs	modes		M_CFG
25813ebc1009SJustin T. Gibbs	field	PLL_VCOSEL	0x80
25823ebc1009SJustin T. Gibbs	field	PLL_PWDN	0x40
25833ebc1009SJustin T. Gibbs	field	PLL_NS		0x30
25843ebc1009SJustin T. Gibbs	field	PLL_ENLUD	0x08
25853ebc1009SJustin T. Gibbs	field	PLL_ENLPF	0x04
25863ebc1009SJustin T. Gibbs	field	PLL_DLPF	0x02
25873ebc1009SJustin T. Gibbs	field	PLL_ENFBM	0x01
258817d24755SJustin T. Gibbs}
258917d24755SJustin T. Gibbs
259017d24755SJustin T. Gibbs/*
259117d24755SJustin T. Gibbs * Target Own Id
259217d24755SJustin T. Gibbs */
259317d24755SJustin T. Gibbsregister TOWNID {
259417d24755SJustin T. Gibbs	address			0x069
259517d24755SJustin T. Gibbs	access_mode	RW
259617d24755SJustin T. Gibbs	modes		M_SCSI
259717d24755SJustin T. Gibbs}
259817d24755SJustin T. Gibbs
259917d24755SJustin T. Gibbs/*
260017d24755SJustin T. Gibbs * 960MHz Phase-Locked Loop Control 1
260117d24755SJustin T. Gibbs */
260217d24755SJustin T. Gibbsregister PLL960CTL1 {
260317d24755SJustin T. Gibbs	address			0x069
260417d24755SJustin T. Gibbs	access_mode	RW
260517d24755SJustin T. Gibbs	modes		M_CFG
26063ebc1009SJustin T. Gibbs	field	PLL_CNTEN	0x80
26073ebc1009SJustin T. Gibbs	field	PLL_CNTCLR	0x40
26083ebc1009SJustin T. Gibbs	field	PLL_RST		0x01
260917d24755SJustin T. Gibbs}
261017d24755SJustin T. Gibbs
261117d24755SJustin T. Gibbs/*
261217d24755SJustin T. Gibbs * Expander Signature
261317d24755SJustin T. Gibbs */
261417d24755SJustin T. Gibbsregister XSIG {
261517d24755SJustin T. Gibbs	address			0x06A
261617d24755SJustin T. Gibbs	access_mode	RW
261717d24755SJustin T. Gibbs	modes		M_SCSI
261817d24755SJustin T. Gibbs}
261917d24755SJustin T. Gibbs
262017d24755SJustin T. Gibbs/*
262117d24755SJustin T. Gibbs * Shadow Byte Count
262217d24755SJustin T. Gibbs */
262317d24755SJustin T. Gibbsregister SHCNT {
262417d24755SJustin T. Gibbs	address			0x068
262517d24755SJustin T. Gibbs	access_mode	RW
262617d24755SJustin T. Gibbs	size		3
262717d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
262817d24755SJustin T. Gibbs}
262917d24755SJustin T. Gibbs
263017d24755SJustin T. Gibbs/*
263117d24755SJustin T. Gibbs * Selection Out ID
263217d24755SJustin T. Gibbs */
263317d24755SJustin T. Gibbsregister SELOID {
263417d24755SJustin T. Gibbs	address			0x06B
263517d24755SJustin T. Gibbs	access_mode	RW
263617d24755SJustin T. Gibbs	modes		M_SCSI
263717d24755SJustin T. Gibbs}
263817d24755SJustin T. Gibbs
263917d24755SJustin T. Gibbs/*
264017d24755SJustin T. Gibbs * 960-MHz Phase-Locked Loop Test Count
264117d24755SJustin T. Gibbs */
264217d24755SJustin T. Gibbsregister PLL960CNT0 {
264317d24755SJustin T. Gibbs	address			0x06A
264417d24755SJustin T. Gibbs	access_mode	RO
264517d24755SJustin T. Gibbs	size		2
264617d24755SJustin T. Gibbs	modes		M_CFG
264717d24755SJustin T. Gibbs}
264817d24755SJustin T. Gibbs
264917d24755SJustin T. Gibbs/*
265017d24755SJustin T. Gibbs * 400-MHz Phase-Locked Loop Control 0
265117d24755SJustin T. Gibbs */
265217d24755SJustin T. Gibbsregister PLL400CTL0 {
265317d24755SJustin T. Gibbs	address			0x06C
265417d24755SJustin T. Gibbs	access_mode	RW
265517d24755SJustin T. Gibbs	modes		M_CFG
26563ebc1009SJustin T. Gibbs	field	PLL_VCOSEL	0x80
26573ebc1009SJustin T. Gibbs	field	PLL_PWDN	0x40
26583ebc1009SJustin T. Gibbs	field	PLL_NS		0x30
26593ebc1009SJustin T. Gibbs	field	PLL_ENLUD	0x08
26603ebc1009SJustin T. Gibbs	field	PLL_ENLPF	0x04
26613ebc1009SJustin T. Gibbs	field	PLL_DLPF	0x02
26623ebc1009SJustin T. Gibbs	field	PLL_ENFBM	0x01
266317d24755SJustin T. Gibbs}
266417d24755SJustin T. Gibbs
266517d24755SJustin T. Gibbs/*
266617d24755SJustin T. Gibbs * Arbitration Fairness
266717d24755SJustin T. Gibbs */
266817d24755SJustin T. Gibbsregister FAIRNESS {
266917d24755SJustin T. Gibbs	address			0x06C
267017d24755SJustin T. Gibbs	access_mode	RW
267117d24755SJustin T. Gibbs	size		2
267217d24755SJustin T. Gibbs	modes		M_SCSI
267317d24755SJustin T. Gibbs}
267417d24755SJustin T. Gibbs
267517d24755SJustin T. Gibbs/*
267617d24755SJustin T. Gibbs * 400-MHz Phase-Locked Loop Control 1
267717d24755SJustin T. Gibbs */
267817d24755SJustin T. Gibbsregister PLL400CTL1 {
267917d24755SJustin T. Gibbs	address			0x06D
268017d24755SJustin T. Gibbs	access_mode	RW
268117d24755SJustin T. Gibbs	modes		M_CFG
26823ebc1009SJustin T. Gibbs	field	PLL_CNTEN	0x80
26833ebc1009SJustin T. Gibbs	field	PLL_CNTCLR	0x40
26843ebc1009SJustin T. Gibbs	field	PLL_RST		0x01
268517d24755SJustin T. Gibbs}
268617d24755SJustin T. Gibbs
268717d24755SJustin T. Gibbs/*
268817d24755SJustin T. Gibbs * Arbitration Unfairness
268917d24755SJustin T. Gibbs */
269017d24755SJustin T. Gibbsregister UNFAIRNESS {
269117d24755SJustin T. Gibbs	address			0x06E
269217d24755SJustin T. Gibbs	access_mode	RW
269317d24755SJustin T. Gibbs	size		2
269417d24755SJustin T. Gibbs	modes		M_SCSI
269517d24755SJustin T. Gibbs}
269617d24755SJustin T. Gibbs
269717d24755SJustin T. Gibbs/*
269817d24755SJustin T. Gibbs * 400-MHz Phase-Locked Loop Test Count
269917d24755SJustin T. Gibbs */
270017d24755SJustin T. Gibbsregister PLL400CNT0 {
270117d24755SJustin T. Gibbs	address			0x06E
270217d24755SJustin T. Gibbs	access_mode	RO
270317d24755SJustin T. Gibbs	size		2
270417d24755SJustin T. Gibbs	modes		M_CFG
270517d24755SJustin T. Gibbs}
270617d24755SJustin T. Gibbs
270717d24755SJustin T. Gibbs/*
270817d24755SJustin T. Gibbs * SCB Page Pointer
270917d24755SJustin T. Gibbs */
271017d24755SJustin T. Gibbsregister SCBPTR {
271117d24755SJustin T. Gibbs	address			0x0A8
271217d24755SJustin T. Gibbs	access_mode	RW
271317d24755SJustin T. Gibbs	size		2
271417d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1, M_CCHAN, M_SCSI
271517d24755SJustin T. Gibbs}
271617d24755SJustin T. Gibbs
271717d24755SJustin T. Gibbs/*
271817d24755SJustin T. Gibbs * CMC SCB Array Count
271917d24755SJustin T. Gibbs * Number of bytes to transfer between CMC SCB memory and SCBRAM.
272017d24755SJustin T. Gibbs * Transfers must be 8byte aligned and sized.
272117d24755SJustin T. Gibbs */
272217d24755SJustin T. Gibbsregister CCSCBACNT {
272317d24755SJustin T. Gibbs	address			0x0AB
272417d24755SJustin T. Gibbs	access_mode	RW
272517d24755SJustin T. Gibbs	modes		M_CCHAN
272617d24755SJustin T. Gibbs}
272717d24755SJustin T. Gibbs
272817d24755SJustin T. Gibbs/*
272917d24755SJustin T. Gibbs * SCB Autopointer
273017d24755SJustin T. Gibbs * SCB-Next Address Snooping logic.  When an SCB is transferred to
273117d24755SJustin T. Gibbs * the card, the next SCB address to be used by the CMC array can
273217d24755SJustin T. Gibbs * be autoloaded from that transfer.
273317d24755SJustin T. Gibbs */
273417d24755SJustin T. Gibbsregister SCBAUTOPTR {
273517d24755SJustin T. Gibbs	address			0x0AB
273617d24755SJustin T. Gibbs	access_mode	RW
273717d24755SJustin T. Gibbs	modes		M_CFG
27383ebc1009SJustin T. Gibbs	field	AUSCBPTR_EN	0x80
27393ebc1009SJustin T. Gibbs	field	SCBPTR_ADDR	0x38
27403ebc1009SJustin T. Gibbs	field	SCBPTR_OFF	0x07
274117d24755SJustin T. Gibbs}
274217d24755SJustin T. Gibbs
274317d24755SJustin T. Gibbs/*
274417d24755SJustin T. Gibbs * CMC SG Ram Address Pointer
274517d24755SJustin T. Gibbs */
274617d24755SJustin T. Gibbsregister CCSGADDR {
274717d24755SJustin T. Gibbs	address			0x0AC
274817d24755SJustin T. Gibbs	access_mode	RW
274917d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
275017d24755SJustin T. Gibbs}
275117d24755SJustin T. Gibbs
275217d24755SJustin T. Gibbs/*
275317d24755SJustin T. Gibbs * CMC SCB RAM Address Pointer
275417d24755SJustin T. Gibbs */
275517d24755SJustin T. Gibbsregister CCSCBADDR {
275617d24755SJustin T. Gibbs	address			0x0AC
275717d24755SJustin T. Gibbs	access_mode	RW
275817d24755SJustin T. Gibbs	modes		M_CCHAN
275917d24755SJustin T. Gibbs}
276017d24755SJustin T. Gibbs
276117d24755SJustin T. Gibbs/*
276217d24755SJustin T. Gibbs * CMC SCB Ram Back-up Address Pointer
276317d24755SJustin T. Gibbs * Indicates the true stop location of transfers halted prior
276417d24755SJustin T. Gibbs * to SCBHCNT going to 0.
276517d24755SJustin T. Gibbs */
276617d24755SJustin T. Gibbsregister CCSCBADR_BK {
276717d24755SJustin T. Gibbs	address			0x0AC
276817d24755SJustin T. Gibbs	access_mode	RO
276917d24755SJustin T. Gibbs	modes		M_CFG
277017d24755SJustin T. Gibbs}
277117d24755SJustin T. Gibbs
277217d24755SJustin T. Gibbs/*
277317d24755SJustin T. Gibbs * CMC SG Control
277417d24755SJustin T. Gibbs */
277517d24755SJustin T. Gibbsregister CCSGCTL {
277617d24755SJustin T. Gibbs	address			0x0AD
277717d24755SJustin T. Gibbs	access_mode	RW
277817d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
27793ebc1009SJustin T. Gibbs	field	CCSGDONE	0x80
27803ebc1009SJustin T. Gibbs	field	SG_CACHE_AVAIL	0x10
27810c5aa4c5SScott Long	field	CCSGENACK	0x08
27820c5aa4c5SScott Long	mask	CCSGEN		0x0C
27833ebc1009SJustin T. Gibbs	field	SG_FETCH_REQ	0x02
27843ebc1009SJustin T. Gibbs	field	CCSGRESET	0x01
278517d24755SJustin T. Gibbs}
278617d24755SJustin T. Gibbs
278717d24755SJustin T. Gibbs/*
278817d24755SJustin T. Gibbs * CMD SCB Control
278917d24755SJustin T. Gibbs */
279017d24755SJustin T. Gibbsregister CCSCBCTL {
279117d24755SJustin T. Gibbs	address			0x0AD
279217d24755SJustin T. Gibbs	access_mode	RW
279317d24755SJustin T. Gibbs	modes		M_CCHAN
27943ebc1009SJustin T. Gibbs	field	CCSCBDONE	0x80
27953ebc1009SJustin T. Gibbs	field	ARRDONE		0x40
27963ebc1009SJustin T. Gibbs	field	CCARREN		0x10
27973ebc1009SJustin T. Gibbs	field	CCSCBEN		0x08
27983ebc1009SJustin T. Gibbs	field	CCSCBDIR	0x04
27993ebc1009SJustin T. Gibbs	field	CCSCBRESET	0x01
280017d24755SJustin T. Gibbs}
280117d24755SJustin T. Gibbs
280217d24755SJustin T. Gibbs/*
280317d24755SJustin T. Gibbs * CMC Ram BIST
280417d24755SJustin T. Gibbs */
280517d24755SJustin T. Gibbsregister CMC_RAMBIST {
280617d24755SJustin T. Gibbs	address			0x0AD
280717d24755SJustin T. Gibbs	access_mode	RW
280817d24755SJustin T. Gibbs	modes		M_CFG
28093ebc1009SJustin T. Gibbs	field	SG_ELEMENT_SIZE		0x80
28103ebc1009SJustin T. Gibbs	field	SCBRAMBIST_FAIL		0x40
28113ebc1009SJustin T. Gibbs	field	SG_BIST_FAIL		0x20
28123ebc1009SJustin T. Gibbs	field	SG_BIST_EN		0x10
28133ebc1009SJustin T. Gibbs	field	CMC_BUFFER_BIST_FAIL	0x02
28143ebc1009SJustin T. Gibbs	field	CMC_BUFFER_BIST_EN	0x01
281517d24755SJustin T. Gibbs}
281617d24755SJustin T. Gibbs
281717d24755SJustin T. Gibbs/*
281817d24755SJustin T. Gibbs * CMC SG RAM Data Port
281917d24755SJustin T. Gibbs */
282017d24755SJustin T. Gibbsregister CCSGRAM {
282117d24755SJustin T. Gibbs	address			0x0B0
282217d24755SJustin T. Gibbs	access_mode	RW
282317d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
282417d24755SJustin T. Gibbs}
282517d24755SJustin T. Gibbs
282617d24755SJustin T. Gibbs/*
282717d24755SJustin T. Gibbs * CMC SCB RAM Data Port
282817d24755SJustin T. Gibbs */
282917d24755SJustin T. Gibbsregister CCSCBRAM {
283017d24755SJustin T. Gibbs	address			0x0B0
283117d24755SJustin T. Gibbs	access_mode	RW
283217d24755SJustin T. Gibbs	modes		M_CCHAN
283317d24755SJustin T. Gibbs}
283417d24755SJustin T. Gibbs
283517d24755SJustin T. Gibbs/*
283617d24755SJustin T. Gibbs * Flex DMA Address.
283717d24755SJustin T. Gibbs */
283817d24755SJustin T. Gibbsregister FLEXADR {
283917d24755SJustin T. Gibbs	address			0x0B0
284017d24755SJustin T. Gibbs	access_mode	RW
284117d24755SJustin T. Gibbs	size		3
284217d24755SJustin T. Gibbs	modes		M_SCSI
284317d24755SJustin T. Gibbs}
284417d24755SJustin T. Gibbs
284517d24755SJustin T. Gibbs/*
284617d24755SJustin T. Gibbs * Flex DMA Byte Count
284717d24755SJustin T. Gibbs */
284817d24755SJustin T. Gibbsregister FLEXCNT {
284917d24755SJustin T. Gibbs	address			0x0B3
285017d24755SJustin T. Gibbs	access_mode	RW
285117d24755SJustin T. Gibbs	size		2
285217d24755SJustin T. Gibbs	modes		M_SCSI
285317d24755SJustin T. Gibbs}
285417d24755SJustin T. Gibbs
285517d24755SJustin T. Gibbs/*
285617d24755SJustin T. Gibbs * Flex DMA Status
285717d24755SJustin T. Gibbs */
285817d24755SJustin T. Gibbsregister FLEXDMASTAT {
285917d24755SJustin T. Gibbs	address			0x0B5
286017d24755SJustin T. Gibbs	access_mode	RW
286117d24755SJustin T. Gibbs	modes		M_SCSI
28623ebc1009SJustin T. Gibbs	field	FLEXDMAERR	0x02
28633ebc1009SJustin T. Gibbs	field	FLEXDMADONE	0x01
286417d24755SJustin T. Gibbs}
286517d24755SJustin T. Gibbs
286617d24755SJustin T. Gibbs/*
286717d24755SJustin T. Gibbs * Flex DMA Data Port
286817d24755SJustin T. Gibbs */
286917d24755SJustin T. Gibbsregister FLEXDATA {
287017d24755SJustin T. Gibbs	address			0x0B6
287117d24755SJustin T. Gibbs	access_mode	RW
287217d24755SJustin T. Gibbs	modes		M_SCSI
287317d24755SJustin T. Gibbs}
287417d24755SJustin T. Gibbs
287517d24755SJustin T. Gibbs/*
287617d24755SJustin T. Gibbs * Board Data
287717d24755SJustin T. Gibbs */
287817d24755SJustin T. Gibbsregister BRDDAT {
287917d24755SJustin T. Gibbs	address			0x0B8
288017d24755SJustin T. Gibbs	access_mode	RW
288117d24755SJustin T. Gibbs	modes		M_SCSI
288217d24755SJustin T. Gibbs}
288317d24755SJustin T. Gibbs
288417d24755SJustin T. Gibbs/*
288517d24755SJustin T. Gibbs * Board Control
288617d24755SJustin T. Gibbs */
288717d24755SJustin T. Gibbsregister BRDCTL {
288817d24755SJustin T. Gibbs	address			0x0B9
288917d24755SJustin T. Gibbs	access_mode	RW
289017d24755SJustin T. Gibbs	modes		M_SCSI
28913ebc1009SJustin T. Gibbs	field	FLXARBACK	0x80
28923ebc1009SJustin T. Gibbs	field	FLXARBREQ	0x40
28933ebc1009SJustin T. Gibbs	field	BRDADDR		0x38
28943ebc1009SJustin T. Gibbs	field	BRDEN		0x04
28953ebc1009SJustin T. Gibbs	field	BRDRW		0x02
28963ebc1009SJustin T. Gibbs	field	BRDSTB		0x01
289717d24755SJustin T. Gibbs}
289817d24755SJustin T. Gibbs
289917d24755SJustin T. Gibbs/*
290017d24755SJustin T. Gibbs * Serial EEPROM Address
290117d24755SJustin T. Gibbs */
290217d24755SJustin T. Gibbsregister SEEADR {
290317d24755SJustin T. Gibbs	address			0x0BA
290417d24755SJustin T. Gibbs	access_mode	RW
290517d24755SJustin T. Gibbs	modes		M_SCSI
290617d24755SJustin T. Gibbs}
290717d24755SJustin T. Gibbs
290817d24755SJustin T. Gibbs/*
290917d24755SJustin T. Gibbs * Serial EEPROM Data
291017d24755SJustin T. Gibbs */
291117d24755SJustin T. Gibbsregister SEEDAT {
291217d24755SJustin T. Gibbs	address			0x0BC
291317d24755SJustin T. Gibbs	access_mode	RW
291417d24755SJustin T. Gibbs	size		2
291517d24755SJustin T. Gibbs	modes		M_SCSI
291617d24755SJustin T. Gibbs}
291717d24755SJustin T. Gibbs
291817d24755SJustin T. Gibbs/*
291917d24755SJustin T. Gibbs * Serial EEPROM Status
292017d24755SJustin T. Gibbs */
292117d24755SJustin T. Gibbsregister SEESTAT {
292217d24755SJustin T. Gibbs	address			0x0BE
292317d24755SJustin T. Gibbs	access_mode	RO
292417d24755SJustin T. Gibbs	modes		M_SCSI
29253ebc1009SJustin T. Gibbs	field	INIT_DONE	0x80
29263ebc1009SJustin T. Gibbs	field	SEEOPCODE	0x70
29273ebc1009SJustin T. Gibbs	field	LDALTID_L	0x08
29283ebc1009SJustin T. Gibbs	field	SEEARBACK	0x04
29293ebc1009SJustin T. Gibbs	field	SEEBUSY		0x02
29303ebc1009SJustin T. Gibbs	field	SEESTART	0x01
293117d24755SJustin T. Gibbs}
293217d24755SJustin T. Gibbs
293317d24755SJustin T. Gibbs/*
293417d24755SJustin T. Gibbs * Serial EEPROM Control
293517d24755SJustin T. Gibbs */
293617d24755SJustin T. Gibbsregister SEECTL {
293717d24755SJustin T. Gibbs	address			0x0BE
293817d24755SJustin T. Gibbs	access_mode	RW
293917d24755SJustin T. Gibbs	modes		M_SCSI
29403ebc1009SJustin T. Gibbs	field	SEEOPCODE	0x70 {
29413ebc1009SJustin T. Gibbs		SEEOP_ERASE	0x70,
29423ebc1009SJustin T. Gibbs		SEEOP_READ	0x60,
29433ebc1009SJustin T. Gibbs		SEEOP_WRITE	0x50,
294417d24755SJustin T. Gibbs	/*
294517d24755SJustin T. Gibbs	 * The following four commands use special
294617d24755SJustin T. Gibbs	 * addresses for differentiation.
294717d24755SJustin T. Gibbs	 */
29483ebc1009SJustin T. Gibbs		SEEOP_ERAL	0x40
29493ebc1009SJustin T. Gibbs	}
295017d24755SJustin T. Gibbs	mask	SEEOP_EWEN	0x40
295117d24755SJustin T. Gibbs	mask	SEEOP_WALL	0x40
295217d24755SJustin T. Gibbs	mask	SEEOP_EWDS	0x40
29533ebc1009SJustin T. Gibbs	field	SEERST		0x02
29543ebc1009SJustin T. Gibbs	field	SEESTART	0x01
295517d24755SJustin T. Gibbs}
295617d24755SJustin T. Gibbs
295717d24755SJustin T. Gibbsconst SEEOP_ERAL_ADDR	0x80
295817d24755SJustin T. Gibbsconst SEEOP_EWEN_ADDR	0xC0
295917d24755SJustin T. Gibbsconst SEEOP_WRAL_ADDR	0x40
296017d24755SJustin T. Gibbsconst SEEOP_EWDS_ADDR	0x00
296117d24755SJustin T. Gibbs
296217d24755SJustin T. Gibbs/*
296317d24755SJustin T. Gibbs * SCB Counter
296417d24755SJustin T. Gibbs */
296517d24755SJustin T. Gibbsregister SCBCNT {
296617d24755SJustin T. Gibbs	address			0x0BF
296717d24755SJustin T. Gibbs	access_mode	RW
296817d24755SJustin T. Gibbs	modes		M_SCSI
296917d24755SJustin T. Gibbs}
297017d24755SJustin T. Gibbs
297117d24755SJustin T. Gibbs/*
297217d24755SJustin T. Gibbs * Data FIFO Write Address
297317d24755SJustin T. Gibbs * Pointer to the next QWD location to be written to the data FIFO.
297417d24755SJustin T. Gibbs */
297517d24755SJustin T. Gibbsregister DFWADDR {
297617d24755SJustin T. Gibbs	address			0x0C0
297717d24755SJustin T. Gibbs	access_mode	RW
297817d24755SJustin T. Gibbs	size		2
297917d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
298017d24755SJustin T. Gibbs}
298117d24755SJustin T. Gibbs
298217d24755SJustin T. Gibbs/*
298317d24755SJustin T. Gibbs * DSP Filter Control
298417d24755SJustin T. Gibbs */
298517d24755SJustin T. Gibbsregister DSPFLTRCTL {
298617d24755SJustin T. Gibbs	address			0x0C0
298717d24755SJustin T. Gibbs	access_mode	RW
298817d24755SJustin T. Gibbs	modes		M_CFG
29893ebc1009SJustin T. Gibbs	field	FLTRDISABLE	0x20
29903ebc1009SJustin T. Gibbs	field	EDGESENSE	0x10
29913ebc1009SJustin T. Gibbs	field	DSPFCNTSEL	0x0F
299217d24755SJustin T. Gibbs}
299317d24755SJustin T. Gibbs
299417d24755SJustin T. Gibbs/*
299517d24755SJustin T. Gibbs * DSP Data Channel Control
299617d24755SJustin T. Gibbs */
299717d24755SJustin T. Gibbsregister DSPDATACTL {
299817d24755SJustin T. Gibbs	address			0x0C1
299917d24755SJustin T. Gibbs	access_mode	RW
300017d24755SJustin T. Gibbs	modes		M_CFG
30013ebc1009SJustin T. Gibbs	field	BYPASSENAB	0x80
30023ebc1009SJustin T. Gibbs	field	DESQDIS		0x10
30033ebc1009SJustin T. Gibbs	field	RCVROFFSTDIS	0x04
30043ebc1009SJustin T. Gibbs	field	XMITOFFSTDIS	0x02
300517d24755SJustin T. Gibbs}
300617d24755SJustin T. Gibbs
300717d24755SJustin T. Gibbs/*
300817d24755SJustin T. Gibbs * Data FIFO Read Address
300917d24755SJustin T. Gibbs * Pointer to the next QWD location to be read from the data FIFO.
301017d24755SJustin T. Gibbs */
301117d24755SJustin T. Gibbsregister DFRADDR {
301217d24755SJustin T. Gibbs	address			0x0C2
301317d24755SJustin T. Gibbs	access_mode	RW
301417d24755SJustin T. Gibbs	size		2
301517d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
301617d24755SJustin T. Gibbs}
301717d24755SJustin T. Gibbs
301817d24755SJustin T. Gibbs/*
301917d24755SJustin T. Gibbs * DSP REQ Control
302017d24755SJustin T. Gibbs */
302117d24755SJustin T. Gibbsregister DSPREQCTL {
302217d24755SJustin T. Gibbs	address			0x0C2
302317d24755SJustin T. Gibbs	access_mode	RW
302417d24755SJustin T. Gibbs	modes		M_CFG
30253ebc1009SJustin T. Gibbs	field	MANREQCTL	0xC0
30263ebc1009SJustin T. Gibbs	field	MANREQDLY	0x3F
302717d24755SJustin T. Gibbs}
302817d24755SJustin T. Gibbs
302917d24755SJustin T. Gibbs/*
303017d24755SJustin T. Gibbs * DSP ACK Control
303117d24755SJustin T. Gibbs */
303217d24755SJustin T. Gibbsregister DSPACKCTL {
303317d24755SJustin T. Gibbs	address			0x0C3
303417d24755SJustin T. Gibbs	access_mode	RW
303517d24755SJustin T. Gibbs	modes		M_CFG
30363ebc1009SJustin T. Gibbs	field	MANACKCTL	0xC0
30373ebc1009SJustin T. Gibbs	field	MANACKDLY	0x3F
303817d24755SJustin T. Gibbs}
303917d24755SJustin T. Gibbs
304017d24755SJustin T. Gibbs/*
304117d24755SJustin T. Gibbs * Data FIFO Data
304217d24755SJustin T. Gibbs * Read/Write byte port into the data FIFO.  The read and write
304317d24755SJustin T. Gibbs * FIFO pointers increment with each read and write respectively
304417d24755SJustin T. Gibbs * to this port.
304517d24755SJustin T. Gibbs */
304617d24755SJustin T. Gibbsregister DFDAT {
304717d24755SJustin T. Gibbs	address			0x0C4
304817d24755SJustin T. Gibbs	access_mode	RW
304917d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
305017d24755SJustin T. Gibbs}
305117d24755SJustin T. Gibbs
305217d24755SJustin T. Gibbs/*
305317d24755SJustin T. Gibbs * DSP Channel Select
305417d24755SJustin T. Gibbs */
305517d24755SJustin T. Gibbsregister DSPSELECT {
305617d24755SJustin T. Gibbs	address			0x0C4
305717d24755SJustin T. Gibbs	access_mode	RW
305817d24755SJustin T. Gibbs	modes		M_CFG
30593ebc1009SJustin T. Gibbs	field	AUTOINCEN	0x80
30603ebc1009SJustin T. Gibbs	field	DSPSEL		0x1F
306117d24755SJustin T. Gibbs}
306217d24755SJustin T. Gibbs
306317d24755SJustin T. Gibbsconst NUMDSPS 0x14
306417d24755SJustin T. Gibbs
306517d24755SJustin T. Gibbs/*
306617d24755SJustin T. Gibbs * Write Bias Control
306717d24755SJustin T. Gibbs */
306817d24755SJustin T. Gibbsregister WRTBIASCTL {
306917d24755SJustin T. Gibbs	address			0x0C5
307017d24755SJustin T. Gibbs	access_mode	WO
307117d24755SJustin T. Gibbs	modes		M_CFG
30723ebc1009SJustin T. Gibbs	field	AUTOXBCDIS	0x80
30733ebc1009SJustin T. Gibbs	field	XMITMANVAL	0x3F
307417d24755SJustin T. Gibbs}
307517d24755SJustin T. Gibbs
30760c5aa4c5SScott Long/*
30770c5aa4c5SScott Long * Currently the WRTBIASCTL is the same as the default.
30780c5aa4c5SScott Long */
30790c5aa4c5SScott Longconst WRTBIASCTL_HP_DEFAULT 0x0
308017d24755SJustin T. Gibbs
308117d24755SJustin T. Gibbs/*
308217d24755SJustin T. Gibbs * Receiver Bias Control
308317d24755SJustin T. Gibbs */
308417d24755SJustin T. Gibbsregister RCVRBIOSCTL {
308517d24755SJustin T. Gibbs	address			0x0C6
308617d24755SJustin T. Gibbs	access_mode	WO
308717d24755SJustin T. Gibbs	modes		M_CFG
30883ebc1009SJustin T. Gibbs	field	AUTORBCDIS	0x80
30893ebc1009SJustin T. Gibbs	field	RCVRMANVAL	0x3F
309017d24755SJustin T. Gibbs}
309117d24755SJustin T. Gibbs
309217d24755SJustin T. Gibbs/*
309317d24755SJustin T. Gibbs * Write Bias Calculator
309417d24755SJustin T. Gibbs */
309517d24755SJustin T. Gibbsregister WRTBIASCALC {
309617d24755SJustin T. Gibbs	address			0x0C7
309717d24755SJustin T. Gibbs	access_mode	RO
309817d24755SJustin T. Gibbs	modes		M_CFG
309917d24755SJustin T. Gibbs}
310017d24755SJustin T. Gibbs
310117d24755SJustin T. Gibbs/*
310217d24755SJustin T. Gibbs * Data FIFO Pointers
310317d24755SJustin T. Gibbs * Contains the byte offset from DFWADDR and DWRADDR to the current
310417d24755SJustin T. Gibbs * FIFO write/read locations.
310517d24755SJustin T. Gibbs */
310617d24755SJustin T. Gibbsregister DFPTRS {
310717d24755SJustin T. Gibbs	address			0x0C8
310817d24755SJustin T. Gibbs	access_mode	RW
310917d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
311017d24755SJustin T. Gibbs}
311117d24755SJustin T. Gibbs
311217d24755SJustin T. Gibbs/*
311317d24755SJustin T. Gibbs * Receiver Bias Calculator
311417d24755SJustin T. Gibbs */
311517d24755SJustin T. Gibbsregister RCVRBIASCALC {
311617d24755SJustin T. Gibbs	address			0x0C8
311717d24755SJustin T. Gibbs	access_mode	RO
311817d24755SJustin T. Gibbs	modes		M_CFG
311917d24755SJustin T. Gibbs}
312017d24755SJustin T. Gibbs
312117d24755SJustin T. Gibbs/*
312217d24755SJustin T. Gibbs * Data FIFO Backup Read Pointer
312317d24755SJustin T. Gibbs * Contains the data FIFO address to be restored if the last
312417d24755SJustin T. Gibbs * data accessed from the data FIFO was not transferred successfully.
312517d24755SJustin T. Gibbs */
312617d24755SJustin T. Gibbsregister DFBKPTR {
312717d24755SJustin T. Gibbs	address			0x0C9
312817d24755SJustin T. Gibbs	access_mode	RW
312917d24755SJustin T. Gibbs	size		2
313017d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
313117d24755SJustin T. Gibbs}
313217d24755SJustin T. Gibbs
313317d24755SJustin T. Gibbs/*
313417d24755SJustin T. Gibbs * Skew Calculator
313517d24755SJustin T. Gibbs */
313617d24755SJustin T. Gibbsregister SKEWCALC {
313717d24755SJustin T. Gibbs	address			0x0C9
313817d24755SJustin T. Gibbs	access_mode	RO
313917d24755SJustin T. Gibbs	modes		M_CFG
314017d24755SJustin T. Gibbs}
314117d24755SJustin T. Gibbs
314217d24755SJustin T. Gibbs/*
31430794987dSJustin T. Gibbs * Data FIFO Debug Control
31440794987dSJustin T. Gibbs */
31450794987dSJustin T. Gibbsregister DFDBCTL {
31460794987dSJustin T. Gibbs	address				0x0CB
31470794987dSJustin T. Gibbs	access_mode	RW
31480794987dSJustin T. Gibbs	modes		M_DFF0, M_DFF1
31490794987dSJustin T. Gibbs	field	DFF_CIO_WR_RDY		0x20
31500794987dSJustin T. Gibbs	field	DFF_CIO_RD_RDY		0x10
31510794987dSJustin T. Gibbs	field	DFF_DIR_ERR		0x08
31520794987dSJustin T. Gibbs	field	DFF_RAMBIST_FAIL	0x04
31530794987dSJustin T. Gibbs	field	DFF_RAMBIST_DONE	0x02
31540794987dSJustin T. Gibbs	field	DFF_RAMBIST_EN		0x01
31550794987dSJustin T. Gibbs}
31560794987dSJustin T. Gibbs
31570794987dSJustin T. Gibbs/*
315817d24755SJustin T. Gibbs * Data FIFO Space Count
315917d24755SJustin T. Gibbs * Number of FIFO locations that are free.
316017d24755SJustin T. Gibbs */
316117d24755SJustin T. Gibbsregister DFSCNT {
316217d24755SJustin T. Gibbs	address			0x0CC
316317d24755SJustin T. Gibbs	access_mode	RO
316417d24755SJustin T. Gibbs	size		2
316517d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
316617d24755SJustin T. Gibbs}
316717d24755SJustin T. Gibbs
316817d24755SJustin T. Gibbs/*
316917d24755SJustin T. Gibbs * Data FIFO Byte Count
317017d24755SJustin T. Gibbs * Number of filled FIFO locations.
317117d24755SJustin T. Gibbs */
317217d24755SJustin T. Gibbsregister DFBCNT {
317317d24755SJustin T. Gibbs	address			0x0CE
317417d24755SJustin T. Gibbs	access_mode	RO
317517d24755SJustin T. Gibbs	size		2
317617d24755SJustin T. Gibbs	modes		M_DFF0, M_DFF1
317717d24755SJustin T. Gibbs}
317817d24755SJustin T. Gibbs
317917d24755SJustin T. Gibbs/*
318017d24755SJustin T. Gibbs * Sequencer Program Overlay Address.
318117d24755SJustin T. Gibbs * Low address must be written prior to high address.
318217d24755SJustin T. Gibbs */
318317d24755SJustin T. Gibbsregister OVLYADDR {
318417d24755SJustin T. Gibbs	address			0x0D4
318517d24755SJustin T. Gibbs	modes		M_SCSI
318617d24755SJustin T. Gibbs	size		2
318717d24755SJustin T. Gibbs	access_mode	RW
318817d24755SJustin T. Gibbs}
318917d24755SJustin T. Gibbs
319017d24755SJustin T. Gibbs/*
319117d24755SJustin T. Gibbs * Sequencer Control 0
319217d24755SJustin T. Gibbs * Error detection mode, speed configuration,
319317d24755SJustin T. Gibbs * single step, breakpoints and program load.
319417d24755SJustin T. Gibbs */
319517d24755SJustin T. Gibbsregister SEQCTL0 {
319617d24755SJustin T. Gibbs	address			0x0D6
319717d24755SJustin T. Gibbs	access_mode RW
31983ebc1009SJustin T. Gibbs	field	PERRORDIS	0x80
31993ebc1009SJustin T. Gibbs	field	PAUSEDIS	0x40
32003ebc1009SJustin T. Gibbs	field	FAILDIS		0x20
32013ebc1009SJustin T. Gibbs	field	FASTMODE	0x10
32023ebc1009SJustin T. Gibbs	field	BRKADRINTEN	0x08
32033ebc1009SJustin T. Gibbs	field	STEP		0x04
32043ebc1009SJustin T. Gibbs	field	SEQRESET	0x02
32053ebc1009SJustin T. Gibbs	field	LOADRAM		0x01
320617d24755SJustin T. Gibbs}
320717d24755SJustin T. Gibbs
320817d24755SJustin T. Gibbs/*
320917d24755SJustin T. Gibbs * Sequencer Control 1
321017d24755SJustin T. Gibbs * Instruction RAM Diagnostics
321117d24755SJustin T. Gibbs */
321217d24755SJustin T. Gibbsregister SEQCTL1 {
321317d24755SJustin T. Gibbs	address			0x0D7
321417d24755SJustin T. Gibbs	access_mode RW
32153ebc1009SJustin T. Gibbs	field	OVRLAY_DATA_CHK	0x08
32163ebc1009SJustin T. Gibbs	field	RAMBIST_DONE	0x04
32173ebc1009SJustin T. Gibbs	field	RAMBIST_FAIL	0x02
32183ebc1009SJustin T. Gibbs	field	RAMBIST_EN	0x01
321917d24755SJustin T. Gibbs}
322017d24755SJustin T. Gibbs
322117d24755SJustin T. Gibbs/*
322217d24755SJustin T. Gibbs * Sequencer Flags
322317d24755SJustin T. Gibbs * Zero and Carry state of the ALU.
322417d24755SJustin T. Gibbs */
322517d24755SJustin T. Gibbsregister FLAGS {
322617d24755SJustin T. Gibbs	address			0x0D8
322717d24755SJustin T. Gibbs	access_mode RO
32283ebc1009SJustin T. Gibbs	field	ZERO		0x02
32293ebc1009SJustin T. Gibbs	field	CARRY		0x01
323017d24755SJustin T. Gibbs}
323117d24755SJustin T. Gibbs
323217d24755SJustin T. Gibbs/*
323317d24755SJustin T. Gibbs * Sequencer Interrupt Control
323417d24755SJustin T. Gibbs */
323517d24755SJustin T. Gibbsregister SEQINTCTL {
323617d24755SJustin T. Gibbs	address			0x0D9
323717d24755SJustin T. Gibbs	access_mode RW
32383ebc1009SJustin T. Gibbs	field	INTVEC1DSL	0x80
32393ebc1009SJustin T. Gibbs	field	INT1_CONTEXT	0x20
32403ebc1009SJustin T. Gibbs	field	SCS_SEQ_INT1M1	0x10
32413ebc1009SJustin T. Gibbs	field	SCS_SEQ_INT1M0	0x08
32420794987dSJustin T. Gibbs	field	INTMASK2	0x04
32430794987dSJustin T. Gibbs	field	INTMASK1	0x02
32443ebc1009SJustin T. Gibbs	field	IRET		0x01
324517d24755SJustin T. Gibbs}
324617d24755SJustin T. Gibbs
324717d24755SJustin T. Gibbs/*
324817d24755SJustin T. Gibbs * Sequencer RAM Data Port
324917d24755SJustin T. Gibbs * Single byte window into the Sequencer Instruction Ram area starting
325017d24755SJustin T. Gibbs * at the address specified by OVLYADDR.  To write a full instruction word,
325117d24755SJustin T. Gibbs * simply write four bytes in succession.  OVLYADDR will increment after the
325217d24755SJustin T. Gibbs * most significant instrution byte (the byte with the parity bit) is written.
325317d24755SJustin T. Gibbs */
325417d24755SJustin T. Gibbsregister SEQRAM {
325517d24755SJustin T. Gibbs	address			0x0DA
325617d24755SJustin T. Gibbs	access_mode RW
325717d24755SJustin T. Gibbs}
325817d24755SJustin T. Gibbs
325917d24755SJustin T. Gibbs/*
326017d24755SJustin T. Gibbs * Sequencer Program Counter
326117d24755SJustin T. Gibbs * Low byte must be written prior to high byte.
326217d24755SJustin T. Gibbs */
326317d24755SJustin T. Gibbsregister PRGMCNT {
326417d24755SJustin T. Gibbs	address			0x0DE
326517d24755SJustin T. Gibbs	access_mode	RW
326617d24755SJustin T. Gibbs	size		2
326717d24755SJustin T. Gibbs}
326817d24755SJustin T. Gibbs
326917d24755SJustin T. Gibbs/*
327017d24755SJustin T. Gibbs * Accumulator
327117d24755SJustin T. Gibbs */
327217d24755SJustin T. Gibbsregister ACCUM {
327317d24755SJustin T. Gibbs	address			0x0E0
327417d24755SJustin T. Gibbs	access_mode RW
327517d24755SJustin T. Gibbs	accumulator
327617d24755SJustin T. Gibbs}
327717d24755SJustin T. Gibbs
327817d24755SJustin T. Gibbs/*
327917d24755SJustin T. Gibbs * Source Index Register
328017d24755SJustin T. Gibbs * Incrementing index for reads of SINDIR and the destination (low byte only)
328117d24755SJustin T. Gibbs * for any immediate operands passed in jmp, jc, jnc, call instructions.
328217d24755SJustin T. Gibbs * Example:
328317d24755SJustin T. Gibbs *		mvi	0xFF	call some_routine;
328417d24755SJustin T. Gibbs *
328517d24755SJustin T. Gibbs *  Will set SINDEX[0] to 0xFF and call the routine "some_routine.
328617d24755SJustin T. Gibbs */
328717d24755SJustin T. Gibbsregister SINDEX	{
328817d24755SJustin T. Gibbs	address			0x0E2
328917d24755SJustin T. Gibbs	access_mode	RW
329017d24755SJustin T. Gibbs	size		2
329117d24755SJustin T. Gibbs	sindex
329217d24755SJustin T. Gibbs}
329317d24755SJustin T. Gibbs
329417d24755SJustin T. Gibbs/*
329517d24755SJustin T. Gibbs * Destination Index Register
329617d24755SJustin T. Gibbs * Incrementing index for writes to DINDIR.  Can be used as a scratch register.
329717d24755SJustin T. Gibbs */
329817d24755SJustin T. Gibbsregister DINDEX {
329917d24755SJustin T. Gibbs	address			0x0E4
330017d24755SJustin T. Gibbs	access_mode	RW
330117d24755SJustin T. Gibbs	size		2
330217d24755SJustin T. Gibbs}
330317d24755SJustin T. Gibbs
330417d24755SJustin T. Gibbs/*
330517d24755SJustin T. Gibbs * Break Address
330617d24755SJustin T. Gibbs * Sequencer instruction breakpoint address address.
330717d24755SJustin T. Gibbs */
330817d24755SJustin T. Gibbsregister BRKADDR0 {
330917d24755SJustin T. Gibbs	address			0x0E6
331017d24755SJustin T. Gibbs	access_mode	RW
331117d24755SJustin T. Gibbs}
331217d24755SJustin T. Gibbs
331317d24755SJustin T. Gibbsregister BRKADDR1 {
331417d24755SJustin T. Gibbs	address			0x0E6
331517d24755SJustin T. Gibbs	access_mode	RW
33163ebc1009SJustin T. Gibbs	field	BRKDIS		0x80	/* Disable Breakpoint */
331717d24755SJustin T. Gibbs}
331817d24755SJustin T. Gibbs
331917d24755SJustin T. Gibbs/*
332017d24755SJustin T. Gibbs * All Ones
332117d24755SJustin T. Gibbs * All reads to this register return the value 0xFF.
332217d24755SJustin T. Gibbs */
332317d24755SJustin T. Gibbsregister ALLONES {
332417d24755SJustin T. Gibbs	address			0x0E8
332517d24755SJustin T. Gibbs	access_mode RO
332617d24755SJustin T. Gibbs	allones
332717d24755SJustin T. Gibbs}
332817d24755SJustin T. Gibbs
332917d24755SJustin T. Gibbs/*
333017d24755SJustin T. Gibbs * All Zeros
333117d24755SJustin T. Gibbs * All reads to this register return the value 0.
333217d24755SJustin T. Gibbs */
333317d24755SJustin T. Gibbsregister ALLZEROS {
333417d24755SJustin T. Gibbs	address			0x0EA
333517d24755SJustin T. Gibbs	access_mode RO
333617d24755SJustin T. Gibbs	allzeros
333717d24755SJustin T. Gibbs}
333817d24755SJustin T. Gibbs
333917d24755SJustin T. Gibbs/*
334017d24755SJustin T. Gibbs * No Destination
334117d24755SJustin T. Gibbs * Writes to this register have no effect.
334217d24755SJustin T. Gibbs */
334317d24755SJustin T. Gibbsregister NONE {
334417d24755SJustin T. Gibbs	address			0x0EA
334517d24755SJustin T. Gibbs	access_mode WO
334617d24755SJustin T. Gibbs	none
334717d24755SJustin T. Gibbs}
334817d24755SJustin T. Gibbs
334917d24755SJustin T. Gibbs/*
335017d24755SJustin T. Gibbs * Source Index Indirect
335117d24755SJustin T. Gibbs * Reading this register is equivalent to reading (register_base + SINDEX) and
335217d24755SJustin T. Gibbs * incrementing SINDEX by 1.
335317d24755SJustin T. Gibbs */
335417d24755SJustin T. Gibbsregister SINDIR	{
335517d24755SJustin T. Gibbs	address			0x0EC
335617d24755SJustin T. Gibbs	access_mode RO
335717d24755SJustin T. Gibbs}
335817d24755SJustin T. Gibbs
335917d24755SJustin T. Gibbs/*
336017d24755SJustin T. Gibbs * Destination Index Indirect
336117d24755SJustin T. Gibbs * Writing this register is equivalent to writing to (register_base + DINDEX)
336217d24755SJustin T. Gibbs * and incrementing DINDEX by 1.
336317d24755SJustin T. Gibbs */
336417d24755SJustin T. Gibbsregister DINDIR	 {
336517d24755SJustin T. Gibbs	address			0x0ED
336617d24755SJustin T. Gibbs	access_mode WO
336717d24755SJustin T. Gibbs}
336817d24755SJustin T. Gibbs
336917d24755SJustin T. Gibbs/*
337017d24755SJustin T. Gibbs * Function One
337117d24755SJustin T. Gibbs * 2's complement to bit value conversion.  Write the 2's complement value
337217d24755SJustin T. Gibbs * (0-7 only) to the top nibble and retrieve the bit indexed by that value
337317d24755SJustin T. Gibbs * on the next read of this register.
337417d24755SJustin T. Gibbs * Example:
337517d24755SJustin T. Gibbs *	Write	0x60
337617d24755SJustin T. Gibbs *	Read	0x40
337717d24755SJustin T. Gibbs */
337817d24755SJustin T. Gibbsregister FUNCTION1 {
337917d24755SJustin T. Gibbs	address			0x0F0
338017d24755SJustin T. Gibbs	access_mode RW
338117d24755SJustin T. Gibbs}
338217d24755SJustin T. Gibbs
338317d24755SJustin T. Gibbs/*
338417d24755SJustin T. Gibbs * Stack
338517d24755SJustin T. Gibbs * Window into the stack.  Each stack location is 10 bits wide reported
338617d24755SJustin T. Gibbs * low byte followed by high byte.  There are 8 stack locations.
338717d24755SJustin T. Gibbs */
338817d24755SJustin T. Gibbsregister STACK {
338917d24755SJustin T. Gibbs	address			0x0F2
339017d24755SJustin T. Gibbs	access_mode RW
339117d24755SJustin T. Gibbs}
339217d24755SJustin T. Gibbs
339317d24755SJustin T. Gibbs/*
339417d24755SJustin T. Gibbs * Interrupt Vector 1 Address
339517d24755SJustin T. Gibbs * Interrupt branch address for SCS SEQ_INT1 mode 0 and 1 interrupts.
339617d24755SJustin T. Gibbs */
339717d24755SJustin T. Gibbsregister INTVEC1_ADDR {
339817d24755SJustin T. Gibbs	address			0x0F4
339917d24755SJustin T. Gibbs	access_mode	RW
340017d24755SJustin T. Gibbs	size		2
340117d24755SJustin T. Gibbs	modes		M_CFG
340217d24755SJustin T. Gibbs}
340317d24755SJustin T. Gibbs
340417d24755SJustin T. Gibbs/*
340517d24755SJustin T. Gibbs * Current Address
340617d24755SJustin T. Gibbs * Address of the SEQRAM instruction currently executing instruction.
340717d24755SJustin T. Gibbs */
340817d24755SJustin T. Gibbsregister CURADDR {
340917d24755SJustin T. Gibbs	address			0x0F4
341017d24755SJustin T. Gibbs	access_mode	RW
341117d24755SJustin T. Gibbs	size		2
341217d24755SJustin T. Gibbs	modes		M_SCSI
341317d24755SJustin T. Gibbs}
341417d24755SJustin T. Gibbs
341517d24755SJustin T. Gibbs/*
341617d24755SJustin T. Gibbs * Interrupt Vector 2 Address
341717d24755SJustin T. Gibbs * Interrupt branch address for HST_SEQ_INT2 interrupts.
341817d24755SJustin T. Gibbs */
341917d24755SJustin T. Gibbsregister INTVEC2_ADDR {
342017d24755SJustin T. Gibbs	address			0x0F6
342117d24755SJustin T. Gibbs	access_mode	RW
342217d24755SJustin T. Gibbs	size		2
342317d24755SJustin T. Gibbs	modes		M_CFG
342417d24755SJustin T. Gibbs}
342517d24755SJustin T. Gibbs
342617d24755SJustin T. Gibbs/*
342717d24755SJustin T. Gibbs * Last Address
342817d24755SJustin T. Gibbs * Address of the SEQRAM instruction executed prior to the current instruction.
342917d24755SJustin T. Gibbs */
343017d24755SJustin T. Gibbsregister LASTADDR {
343117d24755SJustin T. Gibbs	address			0x0F6
343217d24755SJustin T. Gibbs	access_mode	RW
343317d24755SJustin T. Gibbs	size		2
343417d24755SJustin T. Gibbs	modes		M_SCSI
343517d24755SJustin T. Gibbs}
343617d24755SJustin T. Gibbs
343717d24755SJustin T. Gibbsregister AHD_PCI_CONFIG_BASE {
343817d24755SJustin T. Gibbs	address			0x100
343917d24755SJustin T. Gibbs	access_mode	RW
344017d24755SJustin T. Gibbs	size		256
344117d24755SJustin T. Gibbs	modes		M_CFG
344217d24755SJustin T. Gibbs}
344317d24755SJustin T. Gibbs
344417d24755SJustin T. Gibbs/* ---------------------- Scratch RAM Offsets ------------------------- */
344517d24755SJustin T. Gibbsscratch_ram {
344617d24755SJustin T. Gibbs	/* Mode Specific */
344717d24755SJustin T. Gibbs	address			0x0A0
344817d24755SJustin T. Gibbs	size	8
344917d24755SJustin T. Gibbs	modes	0, 1, 2, 3
345017d24755SJustin T. Gibbs	REG0 {
345117d24755SJustin T. Gibbs		size		2
345217d24755SJustin T. Gibbs	}
345317d24755SJustin T. Gibbs	REG1 {
345417d24755SJustin T. Gibbs		size		2
345517d24755SJustin T. Gibbs	}
3456c59c8a72SJustin T. Gibbs	REG_ISR {
345717d24755SJustin T. Gibbs		size		2
345817d24755SJustin T. Gibbs	}
345917d24755SJustin T. Gibbs	SG_STATE {
346017d24755SJustin T. Gibbs		size		1
34613ebc1009SJustin T. Gibbs		field	SEGS_AVAIL	0x01
34623ebc1009SJustin T. Gibbs		field	LOADING_NEEDED	0x02
34633ebc1009SJustin T. Gibbs		field	FETCH_INPROG	0x04
346417d24755SJustin T. Gibbs	}
346517d24755SJustin T. Gibbs	/*
346617d24755SJustin T. Gibbs	 * Track whether the transfer byte count for
346717d24755SJustin T. Gibbs	 * the current data phase is odd.
346817d24755SJustin T. Gibbs	 */
346917d24755SJustin T. Gibbs	DATA_COUNT_ODD {
347017d24755SJustin T. Gibbs		size		1
347117d24755SJustin T. Gibbs	}
347217d24755SJustin T. Gibbs}
347317d24755SJustin T. Gibbs
347417d24755SJustin T. Gibbsscratch_ram {
347517d24755SJustin T. Gibbs	/* Mode Specific */
347617d24755SJustin T. Gibbs	address			0x0F8
347717d24755SJustin T. Gibbs	size	8
347817d24755SJustin T. Gibbs	modes	0, 1, 2, 3
347917d24755SJustin T. Gibbs	LONGJMP_ADDR {
348017d24755SJustin T. Gibbs		size		2
348117d24755SJustin T. Gibbs	}
348217d24755SJustin T. Gibbs	ACCUM_SAVE {
348317d24755SJustin T. Gibbs		size		1
348417d24755SJustin T. Gibbs	}
348517d24755SJustin T. Gibbs}
348617d24755SJustin T. Gibbs
348717d24755SJustin T. Gibbs
348817d24755SJustin T. Gibbsscratch_ram {
348917d24755SJustin T. Gibbs	address			0x100
349017d24755SJustin T. Gibbs	size	128
349117d24755SJustin T. Gibbs	modes	0, 1, 2, 3
349217d24755SJustin T. Gibbs	/*
349317d24755SJustin T. Gibbs	 * Per "other-id" execution queues.  We use an array of
349417d24755SJustin T. Gibbs	 * tail pointers into lists of SCBs sorted by "other-id".
349517d24755SJustin T. Gibbs	 * The execution head pointer threads the head SCBs for
349617d24755SJustin T. Gibbs	 * each list.
349717d24755SJustin T. Gibbs	 */
349817d24755SJustin T. Gibbs	WAITING_SCB_TAILS {
349917d24755SJustin T. Gibbs		size		32
350017d24755SJustin T. Gibbs	}
350117d24755SJustin T. Gibbs	WAITING_TID_HEAD {
350217d24755SJustin T. Gibbs		size		2
350317d24755SJustin T. Gibbs	}
350417d24755SJustin T. Gibbs	WAITING_TID_TAIL {
350517d24755SJustin T. Gibbs		size		2
350617d24755SJustin T. Gibbs	}
350717d24755SJustin T. Gibbs	/*
350817d24755SJustin T. Gibbs	 * SCBID of the next SCB in the new SCB queue.
350917d24755SJustin T. Gibbs	 */
351017d24755SJustin T. Gibbs	NEXT_QUEUED_SCB_ADDR {
351117d24755SJustin T. Gibbs		size		4
351217d24755SJustin T. Gibbs	}
351317d24755SJustin T. Gibbs	/*
351417d24755SJustin T. Gibbs	 * head of list of SCBs that have
351517d24755SJustin T. Gibbs	 * completed but have not been
351617d24755SJustin T. Gibbs	 * put into the qoutfifo.
351717d24755SJustin T. Gibbs	 */
351817d24755SJustin T. Gibbs	COMPLETE_SCB_HEAD {
351917d24755SJustin T. Gibbs		size		2
352017d24755SJustin T. Gibbs	}
352117d24755SJustin T. Gibbs	/*
352217d24755SJustin T. Gibbs	 * The list of completed SCBs in
352317d24755SJustin T. Gibbs	 * the active DMA.
352417d24755SJustin T. Gibbs	 */
352517d24755SJustin T. Gibbs	COMPLETE_SCB_DMAINPROG_HEAD {
352617d24755SJustin T. Gibbs		size		2
352717d24755SJustin T. Gibbs	}
352817d24755SJustin T. Gibbs	/*
352917d24755SJustin T. Gibbs	 * head of list of SCBs that have
353017d24755SJustin T. Gibbs	 * completed but need to be uploaded
353117d24755SJustin T. Gibbs	 * to the host prior to being completed.
353217d24755SJustin T. Gibbs	 */
353317d24755SJustin T. Gibbs	COMPLETE_DMA_SCB_HEAD {
353417d24755SJustin T. Gibbs		size		2
353517d24755SJustin T. Gibbs	}
35364164174aSJustin T. Gibbs	/*
35374164174aSJustin T. Gibbs	 * tail of list of SCBs that have
35384164174aSJustin T. Gibbs	 * completed but need to be uploaded
35394164174aSJustin T. Gibbs	 * to the host prior to being completed.
35404164174aSJustin T. Gibbs	 */
35414164174aSJustin T. Gibbs	COMPLETE_DMA_SCB_TAIL {
35424164174aSJustin T. Gibbs		size		2
35434164174aSJustin T. Gibbs	}
35444164174aSJustin T. Gibbs	/*
35454164174aSJustin T. Gibbs	 * head of list of SCBs that have
35464164174aSJustin T. Gibbs	 * been uploaded to the host, but cannot
35474164174aSJustin T. Gibbs	 * be completed until the QFREEZE is in
35484164174aSJustin T. Gibbs	 * full effect (i.e. no selections pending).
35494164174aSJustin T. Gibbs	 */
35504164174aSJustin T. Gibbs	COMPLETE_ON_QFREEZE_HEAD {
35514164174aSJustin T. Gibbs		size		2
35524164174aSJustin T. Gibbs	}
35534164174aSJustin T. Gibbs	/*
35544164174aSJustin T. Gibbs	 * Counting semaphore to prevent new select-outs
35554164174aSJustin T. Gibbs	 * The queue is frozen so long as the sequencer
35564164174aSJustin T. Gibbs	 * and kernel freeze counts differ.
35574164174aSJustin T. Gibbs	 */
355817d24755SJustin T. Gibbs	QFREEZE_COUNT {
355917d24755SJustin T. Gibbs		size		2
356017d24755SJustin T. Gibbs	}
35614164174aSJustin T. Gibbs	KERNEL_QFREEZE_COUNT {
35624164174aSJustin T. Gibbs		size		2
35634164174aSJustin T. Gibbs	}
356417d24755SJustin T. Gibbs	/*
35650c5aa4c5SScott Long	 * Mode to restore on legacy idle loop exit.
356617d24755SJustin T. Gibbs	 */
356717d24755SJustin T. Gibbs	SAVED_MODE {
356817d24755SJustin T. Gibbs		size		1
356917d24755SJustin T. Gibbs	}
357017d24755SJustin T. Gibbs	/*
357117d24755SJustin T. Gibbs	 * Single byte buffer used to designate the type or message
357217d24755SJustin T. Gibbs	 * to send to a target.
357317d24755SJustin T. Gibbs	 */
357417d24755SJustin T. Gibbs	MSG_OUT {
357517d24755SJustin T. Gibbs		size		1
357617d24755SJustin T. Gibbs	}
357717d24755SJustin T. Gibbs	/* Parameters for DMA Logic */
357817d24755SJustin T. Gibbs	DMAPARAMS {
357917d24755SJustin T. Gibbs		size		1
35803ebc1009SJustin T. Gibbs		field	PRELOADEN	0x80
35813ebc1009SJustin T. Gibbs		field	WIDEODD		0x40
35823ebc1009SJustin T. Gibbs		field	SCSIEN		0x20
35833ebc1009SJustin T. Gibbs		field	SDMAEN		0x10
35843ebc1009SJustin T. Gibbs		field	SDMAENACK	0x10
35853ebc1009SJustin T. Gibbs		field	HDMAEN		0x08
35863ebc1009SJustin T. Gibbs		field	HDMAENACK	0x08
35873ebc1009SJustin T. Gibbs		field	DIRECTION	0x04	/* Set indicates PCI->SCSI */
35883ebc1009SJustin T. Gibbs		field	FIFOFLUSH	0x02
35893ebc1009SJustin T. Gibbs		field	FIFORESET	0x01
359017d24755SJustin T. Gibbs	}
359117d24755SJustin T. Gibbs	SEQ_FLAGS {
359217d24755SJustin T. Gibbs		size		1
35933ebc1009SJustin T. Gibbs		field	NOT_IDENTIFIED		0x80
35943ebc1009SJustin T. Gibbs		field	NO_CDB_SENT		0x40
3595c59c8a72SJustin T. Gibbs		field	TARGET_CMD_IS_TAGGED	0x40
35963ebc1009SJustin T. Gibbs		field	DPHASE			0x20
359717d24755SJustin T. Gibbs		/* Target flags */
35983ebc1009SJustin T. Gibbs		field	TARG_CMD_PENDING	0x10
35993ebc1009SJustin T. Gibbs		field	CMDPHASE_PENDING	0x08
36003ebc1009SJustin T. Gibbs		field	DPHASE_PENDING		0x04
36013ebc1009SJustin T. Gibbs		field	SPHASE_PENDING		0x02
36023ebc1009SJustin T. Gibbs		field	NO_DISCONNECT		0x01
360317d24755SJustin T. Gibbs	}
360417d24755SJustin T. Gibbs	/*
360517d24755SJustin T. Gibbs	 * Temporary storage for the
360617d24755SJustin T. Gibbs	 * target/channel/lun of a
360717d24755SJustin T. Gibbs	 * reconnecting target
360817d24755SJustin T. Gibbs	 */
360917d24755SJustin T. Gibbs	SAVED_SCSIID {
361017d24755SJustin T. Gibbs		size		1
361117d24755SJustin T. Gibbs	}
361217d24755SJustin T. Gibbs	SAVED_LUN {
361317d24755SJustin T. Gibbs		size		1
361417d24755SJustin T. Gibbs	}
361517d24755SJustin T. Gibbs	/*
361617d24755SJustin T. Gibbs	 * The last bus phase as seen by the sequencer.
361717d24755SJustin T. Gibbs	 */
361817d24755SJustin T. Gibbs	LASTPHASE {
361917d24755SJustin T. Gibbs		size		1
36203ebc1009SJustin T. Gibbs		field	CDI		0x80
36213ebc1009SJustin T. Gibbs		field	IOI		0x40
36223ebc1009SJustin T. Gibbs		field	MSGI		0x20
3623c59c8a72SJustin T. Gibbs		field	P_BUSFREE	0x01
36243ebc1009SJustin T. Gibbs		enum	PHASE_MASK  CDO|IOO|MSGO {
36253ebc1009SJustin T. Gibbs			P_DATAOUT	0x0,
36263ebc1009SJustin T. Gibbs			P_DATAIN	IOO,
36273ebc1009SJustin T. Gibbs			P_DATAOUT_DT	P_DATAOUT|MSGO,
36283ebc1009SJustin T. Gibbs			P_DATAIN_DT	P_DATAIN|MSGO,
36293ebc1009SJustin T. Gibbs			P_COMMAND	CDO,
36303ebc1009SJustin T. Gibbs			P_MESGOUT	CDO|MSGO,
36313ebc1009SJustin T. Gibbs			P_STATUS	CDO|IOO,
3632c59c8a72SJustin T. Gibbs			P_MESGIN	CDO|IOO|MSGO
36333ebc1009SJustin T. Gibbs		}
363417d24755SJustin T. Gibbs	}
363517d24755SJustin T. Gibbs	/*
36360c5aa4c5SScott Long	 * Value to "or" into the SCBPTR[1] value to
36370c5aa4c5SScott Long	 * indicate that an entry in the QINFIFO is valid.
36380c5aa4c5SScott Long	 */
36390c5aa4c5SScott Long	QOUTFIFO_ENTRY_VALID_TAG {
36400c5aa4c5SScott Long		size		1
36410c5aa4c5SScott Long	}
36420c5aa4c5SScott Long	/*
36434164174aSJustin T. Gibbs	 * Kernel and sequencer offsets into the queue of
36444164174aSJustin T. Gibbs	 * incoming target mode command descriptors.  The
36454164174aSJustin T. Gibbs	 * queue is full when the KERNEL_TQINPOS == TQINPOS.
36464164174aSJustin T. Gibbs	 */
36474164174aSJustin T. Gibbs	KERNEL_TQINPOS {
36484164174aSJustin T. Gibbs		size		1
36494164174aSJustin T. Gibbs	}
36504164174aSJustin T. Gibbs	TQINPOS {
36514164174aSJustin T. Gibbs		size		1
36524164174aSJustin T. Gibbs	}
36534164174aSJustin T. Gibbs	/*
365417d24755SJustin T. Gibbs	 * Base address of our shared data with the kernel driver in host
365517d24755SJustin T. Gibbs	 * memory.  This includes the qoutfifo and target mode
365617d24755SJustin T. Gibbs	 * incoming command queue.
365717d24755SJustin T. Gibbs	 */
365817d24755SJustin T. Gibbs	SHARED_DATA_ADDR {
365917d24755SJustin T. Gibbs		size		4
366017d24755SJustin T. Gibbs	}
366117d24755SJustin T. Gibbs	/*
366217d24755SJustin T. Gibbs	 * Pointer to location in host memory for next
366317d24755SJustin T. Gibbs	 * position in the qoutfifo.
366417d24755SJustin T. Gibbs	 */
366517d24755SJustin T. Gibbs	QOUTFIFO_NEXT_ADDR {
366617d24755SJustin T. Gibbs		size		4
366717d24755SJustin T. Gibbs	}
366817d24755SJustin T. Gibbs	ARG_1 {
366917d24755SJustin T. Gibbs		size		1
367017d24755SJustin T. Gibbs		mask	SEND_MSG		0x80
367117d24755SJustin T. Gibbs		mask	SEND_SENSE		0x40
367217d24755SJustin T. Gibbs		mask	SEND_REJ		0x20
367317d24755SJustin T. Gibbs		mask	MSGOUT_PHASEMIS		0x10
367417d24755SJustin T. Gibbs		mask	EXIT_MSG_LOOP		0x08
367517d24755SJustin T. Gibbs		mask	CONT_MSG_LOOP_WRITE	0x04
367617d24755SJustin T. Gibbs		mask	CONT_MSG_LOOP_READ	0x03
367717d24755SJustin T. Gibbs		mask	CONT_MSG_LOOP_TARG	0x02
367817d24755SJustin T. Gibbs		alias	RETURN_1
367917d24755SJustin T. Gibbs	}
368017d24755SJustin T. Gibbs	ARG_2 {
368117d24755SJustin T. Gibbs		size		1
368217d24755SJustin T. Gibbs		alias	RETURN_2
368317d24755SJustin T. Gibbs	}
368417d24755SJustin T. Gibbs
368517d24755SJustin T. Gibbs	/*
368617d24755SJustin T. Gibbs	 * Snapshot of MSG_OUT taken after each message is sent.
368717d24755SJustin T. Gibbs	 */
368817d24755SJustin T. Gibbs	LAST_MSG {
368917d24755SJustin T. Gibbs		size		1
369017d24755SJustin T. Gibbs	}
369117d24755SJustin T. Gibbs
369217d24755SJustin T. Gibbs	/*
369317d24755SJustin T. Gibbs	 * Sequences the kernel driver has okayed for us.  This allows
369417d24755SJustin T. Gibbs	 * the driver to do things like prevent initiator or target
369517d24755SJustin T. Gibbs	 * operations.
369617d24755SJustin T. Gibbs	 */
369717d24755SJustin T. Gibbs	SCSISEQ_TEMPLATE {
369817d24755SJustin T. Gibbs		size		1
36993ebc1009SJustin T. Gibbs		field	MANUALCTL	0x40
37003ebc1009SJustin T. Gibbs		field	ENSELI		0x20
37013ebc1009SJustin T. Gibbs		field	ENRSELI		0x10
37023ebc1009SJustin T. Gibbs		field	MANUALP		0x0C
37033ebc1009SJustin T. Gibbs		field	ENAUTOATNP	0x02
37043ebc1009SJustin T. Gibbs		field	ALTSTIM		0x01
370517d24755SJustin T. Gibbs	}
370617d24755SJustin T. Gibbs
370717d24755SJustin T. Gibbs	/*
370817d24755SJustin T. Gibbs	 * The initiator specified tag for this target mode transaction.
370917d24755SJustin T. Gibbs	 */
371017d24755SJustin T. Gibbs	INITIATOR_TAG {
371117d24755SJustin T. Gibbs		size		1
371217d24755SJustin T. Gibbs	}
371317d24755SJustin T. Gibbs
371417d24755SJustin T. Gibbs	SEQ_FLAGS2 {
371517d24755SJustin T. Gibbs		size		1
3716789902c3SJustin T. Gibbs		field	PENDING_MK_MESSAGE	0x01
37173ebc1009SJustin T. Gibbs		field	TARGET_MSG_PENDING	0x02
37183ebc1009SJustin T. Gibbs		field	SELECTOUT_QFROZEN	0x04
371917d24755SJustin T. Gibbs	}
3720c59c8a72SJustin T. Gibbs
3721c59c8a72SJustin T. Gibbs	ALLOCFIFO_SCBPTR {
3722c59c8a72SJustin T. Gibbs		size		2
3723c59c8a72SJustin T. Gibbs	}
3724c59c8a72SJustin T. Gibbs
372517d24755SJustin T. Gibbs	/*
37268089f0f0SJustin T. Gibbs	 * The maximum amount of time to wait, when interrupt coalescing
3727*594c945aSPedro F. Giffuni	 * is enabled, before issuing a CMDCMPLT interrupt for a completed
37280794987dSJustin T. Gibbs	 * command.
37290794987dSJustin T. Gibbs	 */
37308089f0f0SJustin T. Gibbs	INT_COALESCING_TIMER {
37310794987dSJustin T. Gibbs		size		2
37320794987dSJustin T. Gibbs	}
37330794987dSJustin T. Gibbs
37340794987dSJustin T. Gibbs	/*
37358089f0f0SJustin T. Gibbs	 * The maximum number of commands to coalesce into a single interrupt.
37360794987dSJustin T. Gibbs	 * Actually the 2's complement of that value to simplify sequencer
37370794987dSJustin T. Gibbs	 * code.
37380794987dSJustin T. Gibbs	 */
37398089f0f0SJustin T. Gibbs	INT_COALESCING_MAXCMDS {
37400794987dSJustin T. Gibbs		size		1
37410794987dSJustin T. Gibbs	}
37420794987dSJustin T. Gibbs
37430794987dSJustin T. Gibbs	/*
37440794987dSJustin T. Gibbs	 * The minimum number of commands still outstanding required
37458089f0f0SJustin T. Gibbs	 * to continue coalescing (2's complement of value).
37460794987dSJustin T. Gibbs	 */
37478089f0f0SJustin T. Gibbs	INT_COALESCING_MINCMDS {
37480794987dSJustin T. Gibbs		size		1
37490794987dSJustin T. Gibbs	}
37500794987dSJustin T. Gibbs
37510794987dSJustin T. Gibbs	/*
37520794987dSJustin T. Gibbs	 * Number of commands "in-flight".
37530794987dSJustin T. Gibbs	 */
37540794987dSJustin T. Gibbs	CMDS_PENDING {
37550794987dSJustin T. Gibbs		size		2
37560794987dSJustin T. Gibbs	}
37570794987dSJustin T. Gibbs
37580794987dSJustin T. Gibbs	/*
37598089f0f0SJustin T. Gibbs	 * The count of commands that have been coalesced.
37600794987dSJustin T. Gibbs	 */
37618089f0f0SJustin T. Gibbs	INT_COALESCING_CMDCOUNT {
37620794987dSJustin T. Gibbs		size		1
37630794987dSJustin T. Gibbs	}
37640794987dSJustin T. Gibbs
37650794987dSJustin T. Gibbs	/*
37660794987dSJustin T. Gibbs	 * Since the HS_MAIBOX is self clearing, copy its contents to
37670794987dSJustin T. Gibbs	 * this position in scratch ram every time it changes.
37680794987dSJustin T. Gibbs	 */
37690794987dSJustin T. Gibbs	LOCAL_HS_MAILBOX {
37700794987dSJustin T. Gibbs		size		1
37710794987dSJustin T. Gibbs	}
37720794987dSJustin T. Gibbs	/*
377317d24755SJustin T. Gibbs	 * Target-mode CDB type to CDB length table used
377417d24755SJustin T. Gibbs	 * in non-packetized operation.
377517d24755SJustin T. Gibbs	 */
377617d24755SJustin T. Gibbs	CMDSIZE_TABLE {
377717d24755SJustin T. Gibbs		size		8
377817d24755SJustin T. Gibbs	}
3779789902c3SJustin T. Gibbs	/*
3780789902c3SJustin T. Gibbs	 * When an SCB with the MK_MESSAGE flag is
3781789902c3SJustin T. Gibbs	 * queued to the controller, it cannot enter
3782789902c3SJustin T. Gibbs	 * the waiting for selection list until the
3783789902c3SJustin T. Gibbs	 * selections for any previously queued
3784789902c3SJustin T. Gibbs	 * commands to that target complete.  During
3785789902c3SJustin T. Gibbs	 * the wait, the MK_MESSAGE SCB is queued
3786789902c3SJustin T. Gibbs	 * here.
3787789902c3SJustin T. Gibbs	 */
3788789902c3SJustin T. Gibbs	MK_MESSAGE_SCB {
3789789902c3SJustin T. Gibbs		size		2
3790789902c3SJustin T. Gibbs	}
3791789902c3SJustin T. Gibbs	/*
3792789902c3SJustin T. Gibbs	 * Saved SCSIID of MK_MESSAGE_SCB to avoid
3793789902c3SJustin T. Gibbs	 * an extra SCBPTR operation when deciding
3794789902c3SJustin T. Gibbs	 * if the MK_MESSAGE_SCB can be run.
3795789902c3SJustin T. Gibbs	 */
3796789902c3SJustin T. Gibbs	MK_MESSAGE_SCSIID {
3797789902c3SJustin T. Gibbs		size		1
3798789902c3SJustin T. Gibbs	}
379917d24755SJustin T. Gibbs}
380017d24755SJustin T. Gibbs
380117d24755SJustin T. Gibbs/************************* Hardware SCB Definition ****************************/
380217d24755SJustin T. Gibbsscb {
380317d24755SJustin T. Gibbs	address			0x180
380417d24755SJustin T. Gibbs	size	64
380517d24755SJustin T. Gibbs	modes	0, 1, 2, 3
380617d24755SJustin T. Gibbs	SCB_RESIDUAL_DATACNT {
380717d24755SJustin T. Gibbs		size	4
380817d24755SJustin T. Gibbs		alias	SCB_CDB_STORE
3809acae33b0SJustin T. Gibbs		alias	SCB_HOST_CDB_PTR
381017d24755SJustin T. Gibbs	}
381117d24755SJustin T. Gibbs	SCB_RESIDUAL_SGPTR {
381217d24755SJustin T. Gibbs		size	4
38133ebc1009SJustin T. Gibbs		field	SG_ADDR_MASK		0xf8	/* In the last byte */
3814b7441906SJustin T. Gibbs		field   SG_ADDR_BIT		0x04
38153ebc1009SJustin T. Gibbs		field	SG_OVERRUN_RESID	0x02	/* In the first byte */
38163ebc1009SJustin T. Gibbs		field	SG_LIST_NULL		0x01	/* In the first byte */
381717d24755SJustin T. Gibbs	}
381817d24755SJustin T. Gibbs	SCB_SCSI_STATUS {
381917d24755SJustin T. Gibbs		size	1
3820acae33b0SJustin T. Gibbs		alias	SCB_HOST_CDB_LEN
382117d24755SJustin T. Gibbs	}
382217d24755SJustin T. Gibbs	SCB_TARGET_PHASES {
382317d24755SJustin T. Gibbs		size	1
382417d24755SJustin T. Gibbs	}
382517d24755SJustin T. Gibbs	SCB_TARGET_DATA_DIR {
382617d24755SJustin T. Gibbs		size	1
382717d24755SJustin T. Gibbs	}
382817d24755SJustin T. Gibbs	SCB_TARGET_ITAG {
382917d24755SJustin T. Gibbs		size	1
383017d24755SJustin T. Gibbs	}
383117d24755SJustin T. Gibbs	SCB_SENSE_BUSADDR {
383217d24755SJustin T. Gibbs		/*
383317d24755SJustin T. Gibbs		 * Only valid if CDB length is less than 13 bytes or
383417d24755SJustin T. Gibbs		 * we are using a CDB pointer.  Otherwise contains
383517d24755SJustin T. Gibbs		 * the last 4 bytes of embedded cdb information.
383617d24755SJustin T. Gibbs		 */
383717d24755SJustin T. Gibbs		size	4
383817d24755SJustin T. Gibbs		alias	SCB_NEXT_COMPLETE
383917d24755SJustin T. Gibbs	}
38406ee007e1SScott Long	SCB_TAG {
38416ee007e1SScott Long		alias	SCB_FIFO_USE_COUNT
3842d7cff4abSJustin T. Gibbs		size	2
3843d7cff4abSJustin T. Gibbs	}
384417d24755SJustin T. Gibbs	SCB_CONTROL {
384517d24755SJustin T. Gibbs		size	1
38463ebc1009SJustin T. Gibbs		field	TARGET_SCB	0x80
38473ebc1009SJustin T. Gibbs		field	DISCENB		0x40
38483ebc1009SJustin T. Gibbs		field	TAG_ENB		0x20
38493ebc1009SJustin T. Gibbs		field	MK_MESSAGE	0x10
38503ebc1009SJustin T. Gibbs		field	STATUS_RCVD	0x08
38513ebc1009SJustin T. Gibbs		field	DISCONNECTED	0x04
38523ebc1009SJustin T. Gibbs		field	SCB_TAG_TYPE	0x03
385317d24755SJustin T. Gibbs	}
385417d24755SJustin T. Gibbs	SCB_SCSIID {
385517d24755SJustin T. Gibbs		size	1
38563ebc1009SJustin T. Gibbs		field	TID	0xF0
38573ebc1009SJustin T. Gibbs		field	OID	0x0F
385817d24755SJustin T. Gibbs	}
385917d24755SJustin T. Gibbs	SCB_LUN {
386017d24755SJustin T. Gibbs		size	1
38613ebc1009SJustin T. Gibbs		field	LID	0xff
386217d24755SJustin T. Gibbs	}
386317d24755SJustin T. Gibbs	SCB_TASK_ATTRIBUTE {
386417d24755SJustin T. Gibbs		size	1
3865333f04d9SJustin T. Gibbs		/*
3866333f04d9SJustin T. Gibbs		 * Overloaded field for non-packetized
3867333f04d9SJustin T. Gibbs		 * ignore wide residue message handling.
3868333f04d9SJustin T. Gibbs		 */
3869333f04d9SJustin T. Gibbs		field	SCB_XFERLEN_ODD	0x01
387017d24755SJustin T. Gibbs	}
3871d7cff4abSJustin T. Gibbs	SCB_CDB_LEN {
3872d7cff4abSJustin T. Gibbs		size	1
3873d7cff4abSJustin T. Gibbs		field	SCB_CDB_LEN_PTR	0x80	/* CDB in host memory */
3874d7cff4abSJustin T. Gibbs	}
3875d7cff4abSJustin T. Gibbs	SCB_TASK_MANAGEMENT {
3876d7cff4abSJustin T. Gibbs		size	1
3877d7cff4abSJustin T. Gibbs	}
38786ee007e1SScott Long	SCB_DATAPTR {
38796ee007e1SScott Long		size	8
38806ee007e1SScott Long	}
38816ee007e1SScott Long	SCB_DATACNT {
38826ee007e1SScott Long		/*
38836ee007e1SScott Long		 * The last byte is really the high address bits for
38846ee007e1SScott Long		 * the data address.
38856ee007e1SScott Long		 */
38866ee007e1SScott Long		size	4
38876ee007e1SScott Long		field	SG_LAST_SEG		0x80	/* In the fourth byte */
38886ee007e1SScott Long		field	SG_HIGH_ADDR_BITS	0x7F	/* In the fourth byte */
38896ee007e1SScott Long	}
38906ee007e1SScott Long	SCB_SGPTR {
38916ee007e1SScott Long		size	4
38926ee007e1SScott Long		field	SG_STATUS_VALID	0x04	/* In the first byte */
38936ee007e1SScott Long		field	SG_FULL_RESID	0x02	/* In the first byte */
38946ee007e1SScott Long		field	SG_LIST_NULL	0x01	/* In the first byte */
38956ee007e1SScott Long	}
38966ee007e1SScott Long	SCB_BUSADDR {
38976ee007e1SScott Long		size	4
38986ee007e1SScott Long	}
38996ee007e1SScott Long	SCB_NEXT {
39006ee007e1SScott Long		alias	SCB_NEXT_SCB_BUSADDR
39016ee007e1SScott Long		size	2
39026ee007e1SScott Long	}
39036ee007e1SScott Long	SCB_NEXT2 {
3904d7cff4abSJustin T. Gibbs		size	2
390517d24755SJustin T. Gibbs	}
39063ebc1009SJustin T. Gibbs	SCB_SPARE {
39073ebc1009SJustin T. Gibbs		size	8
39083ebc1009SJustin T. Gibbs		alias	SCB_PKT_LUN
39093ebc1009SJustin T. Gibbs	}
391017d24755SJustin T. Gibbs	SCB_DISCONNECTED_LISTS {
39113ebc1009SJustin T. Gibbs		size	8
391217d24755SJustin T. Gibbs	}
391317d24755SJustin T. Gibbs}
391417d24755SJustin T. Gibbs
391517d24755SJustin T. Gibbs/*********************************** Constants ********************************/
391617d24755SJustin T. Gibbsconst MK_MESSAGE_BIT_OFFSET	4
391717d24755SJustin T. Gibbsconst TID_SHIFT		4
391817d24755SJustin T. Gibbsconst TARGET_CMD_CMPLT	0xfe
391917d24755SJustin T. Gibbsconst INVALID_ADDR	0x80
392017d24755SJustin T. Gibbs#define SCB_LIST_NULL	0xff
39213ebc1009SJustin T. Gibbs#define QOUTFIFO_ENTRY_VALID_TOGGLE	0x80
392217d24755SJustin T. Gibbs
392317d24755SJustin T. Gibbsconst CCSGADDR_MAX	0x80
392417d24755SJustin T. Gibbsconst CCSCBADDR_MAX	0x80
392517d24755SJustin T. Gibbsconst CCSGRAM_MAXSEGS	16
392617d24755SJustin T. Gibbs
392717d24755SJustin T. Gibbs/* Selection Timeout Timer Constants */
392817d24755SJustin T. Gibbsconst STIMESEL_SHIFT	3
392917d24755SJustin T. Gibbsconst STIMESEL_MIN	0x18
393017d24755SJustin T. Gibbsconst STIMESEL_BUG_ADJ	0x8
393117d24755SJustin T. Gibbs
393217d24755SJustin T. Gibbs/* WDTR Message values */
393317d24755SJustin T. Gibbsconst BUS_8_BIT			0x00
393417d24755SJustin T. Gibbsconst BUS_16_BIT		0x01
393517d24755SJustin T. Gibbsconst BUS_32_BIT		0x02
393617d24755SJustin T. Gibbs
393717d24755SJustin T. Gibbs/* Offset maximums */
393817d24755SJustin T. Gibbsconst MAX_OFFSET		0xfe
39390c5aa4c5SScott Longconst MAX_OFFSET_PACED		0xfe
39400c5aa4c5SScott Longconst MAX_OFFSET_PACED_BUG	0x7f
39410c5aa4c5SScott Long/*
39420c5aa4c5SScott Long * Some 160 devices incorrectly accept 0xfe as a
39430c5aa4c5SScott Long * sync offset, but will overrun this value.  Limit
39440c5aa4c5SScott Long * to 0x7f for speed lower than U320 which will
39450c5aa4c5SScott Long * avoid the persistent sync offset overruns.
39460c5aa4c5SScott Long */
39470c5aa4c5SScott Longconst MAX_OFFSET_NON_PACED	0x7f
394817d24755SJustin T. Gibbsconst HOST_MSG			0xff
394917d24755SJustin T. Gibbs
395017d24755SJustin T. Gibbs/*
395117d24755SJustin T. Gibbs * The size of our sense buffers.
395217d24755SJustin T. Gibbs * Sense buffer mapping can be handled in either of two ways.
395317d24755SJustin T. Gibbs * The first is to allocate a dmamap for each transaction.
395417d24755SJustin T. Gibbs * Depending on the architecture, dmamaps can be costly. The
395517d24755SJustin T. Gibbs * alternative is to statically map the buffers in much the same
395617d24755SJustin T. Gibbs * way we handle our scatter gather lists.  The driver implements
395717d24755SJustin T. Gibbs * the later.
395817d24755SJustin T. Gibbs */
395917d24755SJustin T. Gibbsconst AHD_SENSE_BUFSIZE		256
396017d24755SJustin T. Gibbs
396117d24755SJustin T. Gibbs/* Target mode command processing constants */
396217d24755SJustin T. Gibbsconst CMD_GROUP_CODE_SHIFT	0x05
396317d24755SJustin T. Gibbs
396417d24755SJustin T. Gibbsconst STATUS_BUSY		0x08
396517d24755SJustin T. Gibbsconst STATUS_QUEUE_FULL		0x28
396617d24755SJustin T. Gibbsconst STATUS_PKT_SENSE		0xFF
396717d24755SJustin T. Gibbsconst TARGET_DATA_IN		1
396817d24755SJustin T. Gibbs
39693ebc1009SJustin T. Gibbsconst SCB_TRANSFER_SIZE_FULL_LUN	56
39703ebc1009SJustin T. Gibbsconst SCB_TRANSFER_SIZE_1BYTE_LUN	48
397117d24755SJustin T. Gibbs/* PKT_OVERRUN_BUFSIZE must be a multiple of 256 less than 64K */
397217d24755SJustin T. Gibbsconst PKT_OVERRUN_BUFSIZE	512
397317d24755SJustin T. Gibbs
397417d24755SJustin T. Gibbs/*
39750794987dSJustin T. Gibbs * Timer parameters.
39760794987dSJustin T. Gibbs */
39770794987dSJustin T. Gibbsconst AHD_TIMER_US_PER_TICK	25
39780794987dSJustin T. Gibbsconst AHD_TIMER_MAX_TICKS	0xFFFF
3979a02f9953SJustin T. Gibbsconst AHD_TIMER_MAX_US		(AHD_TIMER_MAX_TICKS * AHD_TIMER_US_PER_TICK)
39800794987dSJustin T. Gibbs
39810794987dSJustin T. Gibbs/*
398217d24755SJustin T. Gibbs * Downloaded (kernel inserted) constants
398317d24755SJustin T. Gibbs */
398417d24755SJustin T. Gibbsconst SG_PREFETCH_CNT download
398517d24755SJustin T. Gibbsconst SG_PREFETCH_CNT_LIMIT download
398617d24755SJustin T. Gibbsconst SG_PREFETCH_ALIGN_MASK download
398717d24755SJustin T. Gibbsconst SG_PREFETCH_ADDR_MASK download
398817d24755SJustin T. Gibbsconst SG_SIZEOF download
398917d24755SJustin T. Gibbsconst PKT_OVERRUN_BUFOFFSET download
39903ebc1009SJustin T. Gibbsconst SCB_TRANSFER_SIZE	download
399122dbd4c6SJustin T. Gibbsconst CACHELINE_MASK download
399217d24755SJustin T. Gibbs
399317d24755SJustin T. Gibbs/*
399417d24755SJustin T. Gibbs * BIOS SCB offsets
399517d24755SJustin T. Gibbs */
399617d24755SJustin T. Gibbsconst NVRAM_SCB_OFFSET	0x2C
3997