18c2ecf20Sopenharmony_ci/*
28c2ecf20Sopenharmony_ci * Aic79xx register and scratch ram definitions.
38c2ecf20Sopenharmony_ci *
48c2ecf20Sopenharmony_ci * Copyright (c) 1994-2001, 2004 Justin T. Gibbs.
58c2ecf20Sopenharmony_ci * Copyright (c) 2000-2002 Adaptec Inc.
68c2ecf20Sopenharmony_ci * All rights reserved.
78c2ecf20Sopenharmony_ci *
88c2ecf20Sopenharmony_ci * Redistribution and use in source and binary forms, with or without
98c2ecf20Sopenharmony_ci * modification, are permitted provided that the following conditions
108c2ecf20Sopenharmony_ci * are met:
118c2ecf20Sopenharmony_ci * 1. Redistributions of source code must retain the above copyright
128c2ecf20Sopenharmony_ci *    notice, this list of conditions, and the following disclaimer,
138c2ecf20Sopenharmony_ci *    without modification.
148c2ecf20Sopenharmony_ci * 2. Redistributions in binary form must reproduce at minimum a disclaimer
158c2ecf20Sopenharmony_ci *    substantially similar to the "NO WARRANTY" disclaimer below
168c2ecf20Sopenharmony_ci *    ("Disclaimer") and any redistribution must be conditioned upon
178c2ecf20Sopenharmony_ci *    including a substantially similar Disclaimer requirement for further
188c2ecf20Sopenharmony_ci *    binary redistribution.
198c2ecf20Sopenharmony_ci * 3. Neither the names of the above-listed copyright holders nor the names
208c2ecf20Sopenharmony_ci *    of any contributors may be used to endorse or promote products derived
218c2ecf20Sopenharmony_ci *    from this software without specific prior written permission.
228c2ecf20Sopenharmony_ci *
238c2ecf20Sopenharmony_ci * Alternatively, this software may be distributed under the terms of the
248c2ecf20Sopenharmony_ci * GNU General Public License ("GPL") version 2 as published by the Free
258c2ecf20Sopenharmony_ci * Software Foundation.
268c2ecf20Sopenharmony_ci *
278c2ecf20Sopenharmony_ci * NO WARRANTY
288c2ecf20Sopenharmony_ci * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
298c2ecf20Sopenharmony_ci * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
308c2ecf20Sopenharmony_ci * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
318c2ecf20Sopenharmony_ci * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
328c2ecf20Sopenharmony_ci * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
338c2ecf20Sopenharmony_ci * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
348c2ecf20Sopenharmony_ci * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
358c2ecf20Sopenharmony_ci * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
368c2ecf20Sopenharmony_ci * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
378c2ecf20Sopenharmony_ci * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
388c2ecf20Sopenharmony_ci * POSSIBILITY OF SUCH DAMAGES.
398c2ecf20Sopenharmony_ci *
408c2ecf20Sopenharmony_ci * $FreeBSD$
418c2ecf20Sopenharmony_ci */
428c2ecf20Sopenharmony_ciVERSION = "$Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#77 $"
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci/*
458c2ecf20Sopenharmony_ci * This file is processed by the aic7xxx_asm utility for use in assembling
468c2ecf20Sopenharmony_ci * firmware for the aic79xx family of SCSI host adapters as well as to generate
478c2ecf20Sopenharmony_ci * a C header file for use in the kernel portion of the Aic79xx driver.
488c2ecf20Sopenharmony_ci */
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci/* Register window Modes */
518c2ecf20Sopenharmony_ci#define M_DFF0		0
528c2ecf20Sopenharmony_ci#define M_DFF1		1
538c2ecf20Sopenharmony_ci#define M_CCHAN		2
548c2ecf20Sopenharmony_ci#define M_SCSI		3
558c2ecf20Sopenharmony_ci#define M_CFG		4
568c2ecf20Sopenharmony_ci#define M_DST_SHIFT	4
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci#define MK_MODE(src, dst) ((src) | ((dst) << M_DST_SHIFT))
598c2ecf20Sopenharmony_ci#define SET_MODE(src, dst)						\
608c2ecf20Sopenharmony_ci	SET_SRC_MODE	src;						\
618c2ecf20Sopenharmony_ci	SET_DST_MODE	dst;						\
628c2ecf20Sopenharmony_ci	if ((ahd->bugs & AHD_SET_MODE_BUG) != 0) {			\
638c2ecf20Sopenharmony_ci		mvi	MK_MODE(src, dst) call set_mode_work_around;	\
648c2ecf20Sopenharmony_ci	} else {							\
658c2ecf20Sopenharmony_ci		mvi	MODE_PTR, MK_MODE(src, dst);			\
668c2ecf20Sopenharmony_ci	}
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ci#define RESTORE_MODE(mode)						\
698c2ecf20Sopenharmony_ci	if ((ahd->bugs & AHD_SET_MODE_BUG) != 0) {			\
708c2ecf20Sopenharmony_ci		mov	mode call set_mode_work_around;			\
718c2ecf20Sopenharmony_ci	} else {							\
728c2ecf20Sopenharmony_ci		mov	MODE_PTR, mode;					\
738c2ecf20Sopenharmony_ci	}
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ci#define SET_SEQINTCODE(code)						\
768c2ecf20Sopenharmony_ci	if ((ahd->bugs & AHD_INTCOLLISION_BUG) != 0) {			\
778c2ecf20Sopenharmony_ci		mvi	code call set_seqint_work_around;		\
788c2ecf20Sopenharmony_ci	} else {							\
798c2ecf20Sopenharmony_ci		mvi	SEQINTCODE, code;				\
808c2ecf20Sopenharmony_ci	}
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ci/*
838c2ecf20Sopenharmony_ci * Registers marked "dont_generate_debug_code" are not (yet) referenced
848c2ecf20Sopenharmony_ci * from the driver code, and this keyword inhibit generation
858c2ecf20Sopenharmony_ci * of debug code for them.
868c2ecf20Sopenharmony_ci *
878c2ecf20Sopenharmony_ci * REG_PRETTY_PRINT config will complain if dont_generate_debug_code
888c2ecf20Sopenharmony_ci * is added to the register which is referenced in the driver.
898c2ecf20Sopenharmony_ci * Unreferenced register with no dont_generate_debug_code will result
908c2ecf20Sopenharmony_ci * in dead code. No warning is issued.
918c2ecf20Sopenharmony_ci */
928c2ecf20Sopenharmony_ci
938c2ecf20Sopenharmony_ci/*
948c2ecf20Sopenharmony_ci * Mode Pointer
958c2ecf20Sopenharmony_ci * Controls which of the 5, 512byte, address spaces should be used
968c2ecf20Sopenharmony_ci * as the source and destination of any register accesses in our
978c2ecf20Sopenharmony_ci * register window.
988c2ecf20Sopenharmony_ci */
998c2ecf20Sopenharmony_ciregister MODE_PTR {
1008c2ecf20Sopenharmony_ci	address			0x000
1018c2ecf20Sopenharmony_ci	access_mode	RW
1028c2ecf20Sopenharmony_ci	field	DST_MODE	0x70
1038c2ecf20Sopenharmony_ci	field	SRC_MODE	0x07
1048c2ecf20Sopenharmony_ci	mode_pointer
1058c2ecf20Sopenharmony_ci	dont_generate_debug_code
1068c2ecf20Sopenharmony_ci}
1078c2ecf20Sopenharmony_ci
1088c2ecf20Sopenharmony_ciconst SRC_MODE_SHIFT	0
1098c2ecf20Sopenharmony_ciconst DST_MODE_SHIFT	4
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ci/*
1128c2ecf20Sopenharmony_ci * Host Interrupt Status
1138c2ecf20Sopenharmony_ci */
1148c2ecf20Sopenharmony_ciregister INTSTAT {
1158c2ecf20Sopenharmony_ci	address			0x001
1168c2ecf20Sopenharmony_ci	access_mode	RW
1178c2ecf20Sopenharmony_ci	field	HWERRINT	0x80
1188c2ecf20Sopenharmony_ci	field	BRKADRINT	0x40
1198c2ecf20Sopenharmony_ci	field	SWTMINT		0x20
1208c2ecf20Sopenharmony_ci	field	PCIINT		0x10
1218c2ecf20Sopenharmony_ci	field	SCSIINT		0x08
1228c2ecf20Sopenharmony_ci	field	SEQINT		0x04
1238c2ecf20Sopenharmony_ci	field	CMDCMPLT	0x02
1248c2ecf20Sopenharmony_ci	field	SPLTINT		0x01
1258c2ecf20Sopenharmony_ci	mask	INT_PEND 0xFF
1268c2ecf20Sopenharmony_ci}
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_ci/*
1298c2ecf20Sopenharmony_ci * Sequencer Interrupt Code
1308c2ecf20Sopenharmony_ci */
1318c2ecf20Sopenharmony_ciregister SEQINTCODE {
1328c2ecf20Sopenharmony_ci	address			0x002
1338c2ecf20Sopenharmony_ci	access_mode	RW
1348c2ecf20Sopenharmony_ci	field {
1358c2ecf20Sopenharmony_ci		NO_SEQINT,			/* No seqint pending. */
1368c2ecf20Sopenharmony_ci		BAD_PHASE,			/* unknown scsi bus phase */
1378c2ecf20Sopenharmony_ci		SEND_REJECT,			/* sending a message reject */
1388c2ecf20Sopenharmony_ci		PROTO_VIOLATION, 		/* Protocol Violation */
1398c2ecf20Sopenharmony_ci		NO_MATCH,			/* no cmd match for reconnect */
1408c2ecf20Sopenharmony_ci		IGN_WIDE_RES,			/* Complex IGN Wide Res Msg */
1418c2ecf20Sopenharmony_ci		PDATA_REINIT,			/*
1428c2ecf20Sopenharmony_ci						 * Returned to data phase
1438c2ecf20Sopenharmony_ci						 * that requires data
1448c2ecf20Sopenharmony_ci						 * transfer pointers to be
1458c2ecf20Sopenharmony_ci						 * recalculated from the
1468c2ecf20Sopenharmony_ci						 * transfer residual.
1478c2ecf20Sopenharmony_ci						 */
1488c2ecf20Sopenharmony_ci		HOST_MSG_LOOP,			/*
1498c2ecf20Sopenharmony_ci						 * The bus is ready for the
1508c2ecf20Sopenharmony_ci						 * host to perform another
1518c2ecf20Sopenharmony_ci						 * message transaction.  This
1528c2ecf20Sopenharmony_ci						 * mechanism is used for things
1538c2ecf20Sopenharmony_ci						 * like sync/wide negotiation
1548c2ecf20Sopenharmony_ci						 * that require a kernel based
1558c2ecf20Sopenharmony_ci						 * message state engine.
1568c2ecf20Sopenharmony_ci						 */
1578c2ecf20Sopenharmony_ci		BAD_STATUS,			/* Bad status from target */
1588c2ecf20Sopenharmony_ci		DATA_OVERRUN,			/*
1598c2ecf20Sopenharmony_ci						 * Target attempted to write
1608c2ecf20Sopenharmony_ci						 * beyond the bounds of its
1618c2ecf20Sopenharmony_ci						 * command.
1628c2ecf20Sopenharmony_ci						 */
1638c2ecf20Sopenharmony_ci		MKMSG_FAILED,			/*
1648c2ecf20Sopenharmony_ci						 * Target completed command
1658c2ecf20Sopenharmony_ci						 * without honoring our ATN
1668c2ecf20Sopenharmony_ci						 * request to issue a message. 
1678c2ecf20Sopenharmony_ci						 */
1688c2ecf20Sopenharmony_ci		MISSED_BUSFREE,			/*
1698c2ecf20Sopenharmony_ci						 * The sequencer never saw
1708c2ecf20Sopenharmony_ci						 * the bus go free after
1718c2ecf20Sopenharmony_ci						 * either a command complete
1728c2ecf20Sopenharmony_ci						 * or disconnect message.
1738c2ecf20Sopenharmony_ci						 */
1748c2ecf20Sopenharmony_ci		DUMP_CARD_STATE,
1758c2ecf20Sopenharmony_ci		ILLEGAL_PHASE,
1768c2ecf20Sopenharmony_ci		INVALID_SEQINT,
1778c2ecf20Sopenharmony_ci		CFG4ISTAT_INTR,
1788c2ecf20Sopenharmony_ci		STATUS_OVERRUN,
1798c2ecf20Sopenharmony_ci		CFG4OVERRUN,
1808c2ecf20Sopenharmony_ci		ENTERING_NONPACK,
1818c2ecf20Sopenharmony_ci		TASKMGMT_FUNC_COMPLETE,		/*
1828c2ecf20Sopenharmony_ci						 * Task management function
1838c2ecf20Sopenharmony_ci						 * request completed with
1848c2ecf20Sopenharmony_ci						 * an expected busfree.
1858c2ecf20Sopenharmony_ci						 */
1868c2ecf20Sopenharmony_ci		TASKMGMT_CMD_CMPLT_OKAY,	/*
1878c2ecf20Sopenharmony_ci						 * A command with a non-zero
1888c2ecf20Sopenharmony_ci						 * task management function
1898c2ecf20Sopenharmony_ci						 * has completed via the normal
1908c2ecf20Sopenharmony_ci						 * command completion method
1918c2ecf20Sopenharmony_ci						 * for commands with a zero
1928c2ecf20Sopenharmony_ci						 * task management function.
1938c2ecf20Sopenharmony_ci						 * This happens when an attempt
1948c2ecf20Sopenharmony_ci						 * to abort a command loses
1958c2ecf20Sopenharmony_ci						 * the race for the command to
1968c2ecf20Sopenharmony_ci						 * complete normally.
1978c2ecf20Sopenharmony_ci						 */
1988c2ecf20Sopenharmony_ci		TRACEPOINT0,
1998c2ecf20Sopenharmony_ci		TRACEPOINT1,
2008c2ecf20Sopenharmony_ci		TRACEPOINT2,
2018c2ecf20Sopenharmony_ci		TRACEPOINT3,
2028c2ecf20Sopenharmony_ci		SAW_HWERR,
2038c2ecf20Sopenharmony_ci		BAD_SCB_STATUS
2048c2ecf20Sopenharmony_ci	}
2058c2ecf20Sopenharmony_ci	dont_generate_debug_code
2068c2ecf20Sopenharmony_ci}
2078c2ecf20Sopenharmony_ci
2088c2ecf20Sopenharmony_ci/*
2098c2ecf20Sopenharmony_ci * Clear Host Interrupt
2108c2ecf20Sopenharmony_ci */
2118c2ecf20Sopenharmony_ciregister CLRINT {
2128c2ecf20Sopenharmony_ci	address			0x003
2138c2ecf20Sopenharmony_ci	access_mode	WO
2148c2ecf20Sopenharmony_ci	count		19
2158c2ecf20Sopenharmony_ci	field	CLRHWERRINT	0x80 /* Rev B or greater */
2168c2ecf20Sopenharmony_ci	field	CLRBRKADRINT	0x40
2178c2ecf20Sopenharmony_ci	field	CLRSWTMINT	0x20
2188c2ecf20Sopenharmony_ci	field	CLRPCIINT	0x10
2198c2ecf20Sopenharmony_ci	field	CLRSCSIINT	0x08
2208c2ecf20Sopenharmony_ci	field	CLRSEQINT	0x04
2218c2ecf20Sopenharmony_ci	field	CLRCMDINT	0x02
2228c2ecf20Sopenharmony_ci	field	CLRSPLTINT	0x01
2238c2ecf20Sopenharmony_ci	dont_generate_debug_code
2248c2ecf20Sopenharmony_ci}
2258c2ecf20Sopenharmony_ci
2268c2ecf20Sopenharmony_ci/*
2278c2ecf20Sopenharmony_ci * Error Register
2288c2ecf20Sopenharmony_ci */
2298c2ecf20Sopenharmony_ciregister ERROR {
2308c2ecf20Sopenharmony_ci	address			0x004
2318c2ecf20Sopenharmony_ci	access_mode	RO
2328c2ecf20Sopenharmony_ci	field	CIOPARERR	0x80
2338c2ecf20Sopenharmony_ci	field	CIOACCESFAIL	0x40 /* Rev B or greater */
2348c2ecf20Sopenharmony_ci	field	MPARERR		0x20
2358c2ecf20Sopenharmony_ci	field	DPARERR		0x10
2368c2ecf20Sopenharmony_ci	field	SQPARERR	0x08
2378c2ecf20Sopenharmony_ci	field	ILLOPCODE	0x04
2388c2ecf20Sopenharmony_ci	field	DSCTMOUT	0x02
2398c2ecf20Sopenharmony_ci	dont_generate_debug_code
2408c2ecf20Sopenharmony_ci}
2418c2ecf20Sopenharmony_ci
2428c2ecf20Sopenharmony_ci/*
2438c2ecf20Sopenharmony_ci * Clear Error
2448c2ecf20Sopenharmony_ci */
2458c2ecf20Sopenharmony_ciregister CLRERR {
2468c2ecf20Sopenharmony_ci	address			0x004
2478c2ecf20Sopenharmony_ci	access_mode 	WO
2488c2ecf20Sopenharmony_ci	field	CLRCIOPARERR	0x80
2498c2ecf20Sopenharmony_ci	field	CLRCIOACCESFAIL	0x40 /* Rev B or greater */
2508c2ecf20Sopenharmony_ci	field	CLRMPARERR	0x20
2518c2ecf20Sopenharmony_ci	field	CLRDPARERR	0x10
2528c2ecf20Sopenharmony_ci	field	CLRSQPARERR	0x08
2538c2ecf20Sopenharmony_ci	field	CLRILLOPCODE	0x04
2548c2ecf20Sopenharmony_ci	field	CLRDSCTMOUT	0x02
2558c2ecf20Sopenharmony_ci}
2568c2ecf20Sopenharmony_ci
2578c2ecf20Sopenharmony_ci/*
2588c2ecf20Sopenharmony_ci * Host Control Register
2598c2ecf20Sopenharmony_ci * Overall host control of the device.
2608c2ecf20Sopenharmony_ci */
2618c2ecf20Sopenharmony_ciregister HCNTRL {
2628c2ecf20Sopenharmony_ci	address			0x005
2638c2ecf20Sopenharmony_ci	access_mode	RW
2648c2ecf20Sopenharmony_ci	count		12
2658c2ecf20Sopenharmony_ci	field	SEQ_RESET	0x80 /* Rev B or greater */
2668c2ecf20Sopenharmony_ci	field	POWRDN		0x40
2678c2ecf20Sopenharmony_ci	field	SWINT		0x10
2688c2ecf20Sopenharmony_ci	field	SWTIMER_START_B	0x08 /* Rev B or greater */
2698c2ecf20Sopenharmony_ci	field	PAUSE		0x04
2708c2ecf20Sopenharmony_ci	field	INTEN		0x02
2718c2ecf20Sopenharmony_ci	field	CHIPRST		0x01
2728c2ecf20Sopenharmony_ci	field	CHIPRSTACK	0x01
2738c2ecf20Sopenharmony_ci	dont_generate_debug_code
2748c2ecf20Sopenharmony_ci}
2758c2ecf20Sopenharmony_ci
2768c2ecf20Sopenharmony_ci/*
2778c2ecf20Sopenharmony_ci * Host New SCB Queue Offset
2788c2ecf20Sopenharmony_ci */
2798c2ecf20Sopenharmony_ciregister HNSCB_QOFF {
2808c2ecf20Sopenharmony_ci	address			0x006
2818c2ecf20Sopenharmony_ci	access_mode	RW
2828c2ecf20Sopenharmony_ci	size		2
2838c2ecf20Sopenharmony_ci	count		2
2848c2ecf20Sopenharmony_ci	dont_generate_debug_code
2858c2ecf20Sopenharmony_ci}
2868c2ecf20Sopenharmony_ci
2878c2ecf20Sopenharmony_ci/*
2888c2ecf20Sopenharmony_ci * Host Empty SCB Queue Offset
2898c2ecf20Sopenharmony_ci */
2908c2ecf20Sopenharmony_ciregister HESCB_QOFF {
2918c2ecf20Sopenharmony_ci	address			0x008
2928c2ecf20Sopenharmony_ci	access_mode	RW
2938c2ecf20Sopenharmony_ci	count		2
2948c2ecf20Sopenharmony_ci	dont_generate_debug_code
2958c2ecf20Sopenharmony_ci}
2968c2ecf20Sopenharmony_ci
2978c2ecf20Sopenharmony_ci/*
2988c2ecf20Sopenharmony_ci * Host Mailbox
2998c2ecf20Sopenharmony_ci */
3008c2ecf20Sopenharmony_ciregister HS_MAILBOX {
3018c2ecf20Sopenharmony_ci	address			0x00B
3028c2ecf20Sopenharmony_ci	access_mode	RW
3038c2ecf20Sopenharmony_ci	mask	HOST_TQINPOS	0x80	/* Boundary at either 0 or 128 */
3048c2ecf20Sopenharmony_ci	mask	ENINT_COALESCE	0x40	/* Perform interrupt coalescing */
3058c2ecf20Sopenharmony_ci}
3068c2ecf20Sopenharmony_ci
3078c2ecf20Sopenharmony_ci/*
3088c2ecf20Sopenharmony_ci * Sequencer Interrupt Status
3098c2ecf20Sopenharmony_ci */
3108c2ecf20Sopenharmony_ciregister SEQINTSTAT {
3118c2ecf20Sopenharmony_ci	address			0x00C
3128c2ecf20Sopenharmony_ci	count		1
3138c2ecf20Sopenharmony_ci	access_mode	RO
3148c2ecf20Sopenharmony_ci	field	SEQ_SWTMRTO	0x10
3158c2ecf20Sopenharmony_ci	field	SEQ_SEQINT	0x08
3168c2ecf20Sopenharmony_ci	field	SEQ_SCSIINT	0x04
3178c2ecf20Sopenharmony_ci	field	SEQ_PCIINT	0x02
3188c2ecf20Sopenharmony_ci	field	SEQ_SPLTINT	0x01
3198c2ecf20Sopenharmony_ci}
3208c2ecf20Sopenharmony_ci
3218c2ecf20Sopenharmony_ci/*
3228c2ecf20Sopenharmony_ci * Clear SEQ Interrupt
3238c2ecf20Sopenharmony_ci */
3248c2ecf20Sopenharmony_ciregister CLRSEQINTSTAT {
3258c2ecf20Sopenharmony_ci	address			0x00C
3268c2ecf20Sopenharmony_ci	access_mode	WO
3278c2ecf20Sopenharmony_ci	field	CLRSEQ_SWTMRTO	0x10
3288c2ecf20Sopenharmony_ci	field	CLRSEQ_SEQINT	0x08
3298c2ecf20Sopenharmony_ci	field	CLRSEQ_SCSIINT	0x04
3308c2ecf20Sopenharmony_ci	field	CLRSEQ_PCIINT	0x02
3318c2ecf20Sopenharmony_ci	field	CLRSEQ_SPLTINT	0x01
3328c2ecf20Sopenharmony_ci	dont_generate_debug_code
3338c2ecf20Sopenharmony_ci}
3348c2ecf20Sopenharmony_ci
3358c2ecf20Sopenharmony_ci/*
3368c2ecf20Sopenharmony_ci * Software Timer
3378c2ecf20Sopenharmony_ci */
3388c2ecf20Sopenharmony_ciregister SWTIMER {
3398c2ecf20Sopenharmony_ci	address			0x00E
3408c2ecf20Sopenharmony_ci	access_mode	RW
3418c2ecf20Sopenharmony_ci	size		2
3428c2ecf20Sopenharmony_ci	dont_generate_debug_code
3438c2ecf20Sopenharmony_ci}
3448c2ecf20Sopenharmony_ci
3458c2ecf20Sopenharmony_ci/*
3468c2ecf20Sopenharmony_ci * SEQ New SCB Queue Offset
3478c2ecf20Sopenharmony_ci */
3488c2ecf20Sopenharmony_ciregister SNSCB_QOFF {
3498c2ecf20Sopenharmony_ci	address			0x010
3508c2ecf20Sopenharmony_ci	access_mode	RW
3518c2ecf20Sopenharmony_ci	size		2
3528c2ecf20Sopenharmony_ci	modes		M_CCHAN
3538c2ecf20Sopenharmony_ci	dont_generate_debug_code
3548c2ecf20Sopenharmony_ci}
3558c2ecf20Sopenharmony_ci
3568c2ecf20Sopenharmony_ci/*
3578c2ecf20Sopenharmony_ci * SEQ Empty SCB Queue Offset
3588c2ecf20Sopenharmony_ci */
3598c2ecf20Sopenharmony_ciregister SESCB_QOFF {
3608c2ecf20Sopenharmony_ci	address			0x012
3618c2ecf20Sopenharmony_ci	count		2
3628c2ecf20Sopenharmony_ci	access_mode	RW
3638c2ecf20Sopenharmony_ci	modes		M_CCHAN
3648c2ecf20Sopenharmony_ci	dont_generate_debug_code
3658c2ecf20Sopenharmony_ci}
3668c2ecf20Sopenharmony_ci
3678c2ecf20Sopenharmony_ci/*
3688c2ecf20Sopenharmony_ci * SEQ Done SCB Queue Offset
3698c2ecf20Sopenharmony_ci */
3708c2ecf20Sopenharmony_ciregister SDSCB_QOFF {
3718c2ecf20Sopenharmony_ci	address			0x014
3728c2ecf20Sopenharmony_ci	access_mode	RW
3738c2ecf20Sopenharmony_ci	modes		M_CCHAN
3748c2ecf20Sopenharmony_ci	size		2
3758c2ecf20Sopenharmony_ci	dont_generate_debug_code
3768c2ecf20Sopenharmony_ci}
3778c2ecf20Sopenharmony_ci
3788c2ecf20Sopenharmony_ci/*
3798c2ecf20Sopenharmony_ci * Queue Offset Control & Status
3808c2ecf20Sopenharmony_ci */
3818c2ecf20Sopenharmony_ciregister QOFF_CTLSTA {
3828c2ecf20Sopenharmony_ci	address			0x016
3838c2ecf20Sopenharmony_ci	access_mode	RW
3848c2ecf20Sopenharmony_ci	modes		M_CCHAN
3858c2ecf20Sopenharmony_ci	field	EMPTY_SCB_AVAIL	0x80
3868c2ecf20Sopenharmony_ci	field	NEW_SCB_AVAIL	0x40
3878c2ecf20Sopenharmony_ci	field	SDSCB_ROLLOVR	0x20
3888c2ecf20Sopenharmony_ci	field	HS_MAILBOX_ACT	0x10
3898c2ecf20Sopenharmony_ci	field	SCB_QSIZE	0x0F {
3908c2ecf20Sopenharmony_ci		SCB_QSIZE_4,
3918c2ecf20Sopenharmony_ci		SCB_QSIZE_8,
3928c2ecf20Sopenharmony_ci		SCB_QSIZE_16,
3938c2ecf20Sopenharmony_ci		SCB_QSIZE_32,
3948c2ecf20Sopenharmony_ci		SCB_QSIZE_64,
3958c2ecf20Sopenharmony_ci		SCB_QSIZE_128,
3968c2ecf20Sopenharmony_ci		SCB_QSIZE_256,
3978c2ecf20Sopenharmony_ci		SCB_QSIZE_512,
3988c2ecf20Sopenharmony_ci		SCB_QSIZE_1024,
3998c2ecf20Sopenharmony_ci		SCB_QSIZE_2048,
4008c2ecf20Sopenharmony_ci		SCB_QSIZE_4096,
4018c2ecf20Sopenharmony_ci		SCB_QSIZE_8192,
4028c2ecf20Sopenharmony_ci		SCB_QSIZE_16384
4038c2ecf20Sopenharmony_ci	}
4048c2ecf20Sopenharmony_ci	dont_generate_debug_code
4058c2ecf20Sopenharmony_ci}
4068c2ecf20Sopenharmony_ci
4078c2ecf20Sopenharmony_ci/*
4088c2ecf20Sopenharmony_ci * Interrupt Control
4098c2ecf20Sopenharmony_ci */
4108c2ecf20Sopenharmony_ciregister INTCTL {
4118c2ecf20Sopenharmony_ci	address			0x018
4128c2ecf20Sopenharmony_ci	access_mode	RW
4138c2ecf20Sopenharmony_ci	field	SWTMINTMASK	0x80
4148c2ecf20Sopenharmony_ci	field	SWTMINTEN	0x40
4158c2ecf20Sopenharmony_ci	field	SWTIMER_START	0x20
4168c2ecf20Sopenharmony_ci	field	AUTOCLRCMDINT	0x10
4178c2ecf20Sopenharmony_ci	field	PCIINTEN	0x08
4188c2ecf20Sopenharmony_ci	field	SCSIINTEN	0x04
4198c2ecf20Sopenharmony_ci	field	SEQINTEN	0x02
4208c2ecf20Sopenharmony_ci	field	SPLTINTEN	0x01
4218c2ecf20Sopenharmony_ci}
4228c2ecf20Sopenharmony_ci
4238c2ecf20Sopenharmony_ci/*
4248c2ecf20Sopenharmony_ci * Data FIFO Control
4258c2ecf20Sopenharmony_ci */
4268c2ecf20Sopenharmony_ciregister DFCNTRL {
4278c2ecf20Sopenharmony_ci	address			0x019
4288c2ecf20Sopenharmony_ci	access_mode	RW
4298c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
4308c2ecf20Sopenharmony_ci	count		11
4318c2ecf20Sopenharmony_ci	field	PRELOADEN	0x80
4328c2ecf20Sopenharmony_ci	field	SCSIENWRDIS	0x40	/* Rev B only. */
4338c2ecf20Sopenharmony_ci	field	SCSIEN		0x20
4348c2ecf20Sopenharmony_ci	field	SCSIENACK	0x20
4358c2ecf20Sopenharmony_ci	field	HDMAEN		0x08
4368c2ecf20Sopenharmony_ci	field	HDMAENACK	0x08
4378c2ecf20Sopenharmony_ci	field	DIRECTION	0x04
4388c2ecf20Sopenharmony_ci	field	DIRECTIONACK	0x04
4398c2ecf20Sopenharmony_ci	field	FIFOFLUSH	0x02
4408c2ecf20Sopenharmony_ci	field	FIFOFLUSHACK	0x02
4418c2ecf20Sopenharmony_ci	field	DIRECTIONEN	0x01
4428c2ecf20Sopenharmony_ci}
4438c2ecf20Sopenharmony_ci
4448c2ecf20Sopenharmony_ci/*
4458c2ecf20Sopenharmony_ci * Device Space Command 0
4468c2ecf20Sopenharmony_ci */
4478c2ecf20Sopenharmony_ciregister DSCOMMAND0 {
4488c2ecf20Sopenharmony_ci	address			0x019
4498c2ecf20Sopenharmony_ci	count		1
4508c2ecf20Sopenharmony_ci	access_mode	RW
4518c2ecf20Sopenharmony_ci	modes		M_CFG
4528c2ecf20Sopenharmony_ci	field	CACHETHEN	0x80	/* Cache Threshold enable */
4538c2ecf20Sopenharmony_ci	field	DPARCKEN	0x40	/* Data Parity Check Enable */
4548c2ecf20Sopenharmony_ci	field	MPARCKEN	0x20	/* Memory Parity Check Enable */
4558c2ecf20Sopenharmony_ci	field	EXTREQLCK	0x10	/* External Request Lock */
4568c2ecf20Sopenharmony_ci	field	DISABLE_TWATE	0x02	/* Rev B or greater */
4578c2ecf20Sopenharmony_ci	field	CIOPARCKEN	0x01	/* Internal bus parity error enable */
4588c2ecf20Sopenharmony_ci	dont_generate_debug_code
4598c2ecf20Sopenharmony_ci}
4608c2ecf20Sopenharmony_ci
4618c2ecf20Sopenharmony_ci/*
4628c2ecf20Sopenharmony_ci * Data FIFO Status
4638c2ecf20Sopenharmony_ci */
4648c2ecf20Sopenharmony_ciregister DFSTATUS {
4658c2ecf20Sopenharmony_ci	address			0x01A
4668c2ecf20Sopenharmony_ci	access_mode	RO
4678c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
4688c2ecf20Sopenharmony_ci	field	PRELOAD_AVAIL		0x80
4698c2ecf20Sopenharmony_ci	field	PKT_PRELOAD_AVAIL	0x40
4708c2ecf20Sopenharmony_ci	field	MREQPEND		0x10
4718c2ecf20Sopenharmony_ci	field	HDONE			0x08
4728c2ecf20Sopenharmony_ci	field	DFTHRESH		0x04
4738c2ecf20Sopenharmony_ci	field	FIFOFULL		0x02
4748c2ecf20Sopenharmony_ci	field	FIFOEMP			0x01
4758c2ecf20Sopenharmony_ci}
4768c2ecf20Sopenharmony_ci
4778c2ecf20Sopenharmony_ci/*
4788c2ecf20Sopenharmony_ci * S/G Cache Pointer
4798c2ecf20Sopenharmony_ci */
4808c2ecf20Sopenharmony_ciregister SG_CACHE_PRE {
4818c2ecf20Sopenharmony_ci	address			0x01B
4828c2ecf20Sopenharmony_ci	access_mode	WO
4838c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
4848c2ecf20Sopenharmony_ci	field	SG_ADDR_MASK	0xf8
4858c2ecf20Sopenharmony_ci	field	ODD_SEG		0x04
4868c2ecf20Sopenharmony_ci	field	LAST_SEG	0x02
4878c2ecf20Sopenharmony_ci	dont_generate_debug_code
4888c2ecf20Sopenharmony_ci}
4898c2ecf20Sopenharmony_ci
4908c2ecf20Sopenharmony_ciregister SG_CACHE_SHADOW {
4918c2ecf20Sopenharmony_ci	address			0x01B
4928c2ecf20Sopenharmony_ci	access_mode	RO
4938c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
4948c2ecf20Sopenharmony_ci	field	SG_ADDR_MASK	0xf8
4958c2ecf20Sopenharmony_ci	field	ODD_SEG		0x04
4968c2ecf20Sopenharmony_ci	field	LAST_SEG	0x02
4978c2ecf20Sopenharmony_ci	field	LAST_SEG_DONE	0x01
4988c2ecf20Sopenharmony_ci}
4998c2ecf20Sopenharmony_ci
5008c2ecf20Sopenharmony_ci/*
5018c2ecf20Sopenharmony_ci * Arbiter Control
5028c2ecf20Sopenharmony_ci */
5038c2ecf20Sopenharmony_ciregister ARBCTL {
5048c2ecf20Sopenharmony_ci	address			0x01B
5058c2ecf20Sopenharmony_ci	access_mode	RW
5068c2ecf20Sopenharmony_ci	modes		M_CFG
5078c2ecf20Sopenharmony_ci	field	RESET_HARB	0x80
5088c2ecf20Sopenharmony_ci	field	RETRY_SWEN	0x08
5098c2ecf20Sopenharmony_ci	field	USE_TIME	0x07
5108c2ecf20Sopenharmony_ci}
5118c2ecf20Sopenharmony_ci
5128c2ecf20Sopenharmony_ci/*
5138c2ecf20Sopenharmony_ci * Data Channel Host Address
5148c2ecf20Sopenharmony_ci */
5158c2ecf20Sopenharmony_ciregister HADDR {
5168c2ecf20Sopenharmony_ci	address			0x070
5178c2ecf20Sopenharmony_ci	access_mode	RW
5188c2ecf20Sopenharmony_ci	size		8
5198c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
5208c2ecf20Sopenharmony_ci	dont_generate_debug_code
5218c2ecf20Sopenharmony_ci}
5228c2ecf20Sopenharmony_ci
5238c2ecf20Sopenharmony_ci/*
5248c2ecf20Sopenharmony_ci * Host Overlay DMA Address
5258c2ecf20Sopenharmony_ci */
5268c2ecf20Sopenharmony_ciregister HODMAADR {
5278c2ecf20Sopenharmony_ci	address			0x070
5288c2ecf20Sopenharmony_ci	access_mode	RW
5298c2ecf20Sopenharmony_ci	size		8
5308c2ecf20Sopenharmony_ci	modes		M_SCSI
5318c2ecf20Sopenharmony_ci}
5328c2ecf20Sopenharmony_ci
5338c2ecf20Sopenharmony_ci/*
5348c2ecf20Sopenharmony_ci * PCI PLL Delay.
5358c2ecf20Sopenharmony_ci */
5368c2ecf20Sopenharmony_ciregister PLLDELAY {
5378c2ecf20Sopenharmony_ci	address			0x070
5388c2ecf20Sopenharmony_ci	access_mode	RW
5398c2ecf20Sopenharmony_ci	size		1
5408c2ecf20Sopenharmony_ci	modes		M_CFG
5418c2ecf20Sopenharmony_ci	field	SPLIT_DROP_REQ	0x80
5428c2ecf20Sopenharmony_ci}
5438c2ecf20Sopenharmony_ci
5448c2ecf20Sopenharmony_ci/*
5458c2ecf20Sopenharmony_ci * Data Channel Host Count
5468c2ecf20Sopenharmony_ci */
5478c2ecf20Sopenharmony_ciregister HCNT {
5488c2ecf20Sopenharmony_ci	address			0x078
5498c2ecf20Sopenharmony_ci	access_mode	RW
5508c2ecf20Sopenharmony_ci	size		3
5518c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
5528c2ecf20Sopenharmony_ci	dont_generate_debug_code
5538c2ecf20Sopenharmony_ci}
5548c2ecf20Sopenharmony_ci
5558c2ecf20Sopenharmony_ci/*
5568c2ecf20Sopenharmony_ci * Host Overlay DMA Count
5578c2ecf20Sopenharmony_ci */
5588c2ecf20Sopenharmony_ciregister HODMACNT {
5598c2ecf20Sopenharmony_ci	address			0x078
5608c2ecf20Sopenharmony_ci	access_mode	RW
5618c2ecf20Sopenharmony_ci	size		2
5628c2ecf20Sopenharmony_ci	modes		M_SCSI
5638c2ecf20Sopenharmony_ci}
5648c2ecf20Sopenharmony_ci
5658c2ecf20Sopenharmony_ci/*
5668c2ecf20Sopenharmony_ci * Host Overlay DMA Enable
5678c2ecf20Sopenharmony_ci */
5688c2ecf20Sopenharmony_ciregister HODMAEN {
5698c2ecf20Sopenharmony_ci	address			0x07A
5708c2ecf20Sopenharmony_ci	access_mode	RW
5718c2ecf20Sopenharmony_ci	modes		M_SCSI
5728c2ecf20Sopenharmony_ci}
5738c2ecf20Sopenharmony_ci
5748c2ecf20Sopenharmony_ci/*
5758c2ecf20Sopenharmony_ci * Scatter/Gather Host Address
5768c2ecf20Sopenharmony_ci */
5778c2ecf20Sopenharmony_ciregister SGHADDR {
5788c2ecf20Sopenharmony_ci	address			0x07C
5798c2ecf20Sopenharmony_ci	access_mode	RW
5808c2ecf20Sopenharmony_ci	size		8
5818c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
5828c2ecf20Sopenharmony_ci	dont_generate_debug_code
5838c2ecf20Sopenharmony_ci}
5848c2ecf20Sopenharmony_ci
5858c2ecf20Sopenharmony_ci/*
5868c2ecf20Sopenharmony_ci * SCB Host Address
5878c2ecf20Sopenharmony_ci */
5888c2ecf20Sopenharmony_ciregister SCBHADDR {
5898c2ecf20Sopenharmony_ci	address			0x07C
5908c2ecf20Sopenharmony_ci	access_mode	RW
5918c2ecf20Sopenharmony_ci	size		8
5928c2ecf20Sopenharmony_ci	modes		M_CCHAN
5938c2ecf20Sopenharmony_ci	dont_generate_debug_code
5948c2ecf20Sopenharmony_ci}
5958c2ecf20Sopenharmony_ci
5968c2ecf20Sopenharmony_ci/*
5978c2ecf20Sopenharmony_ci * Scatter/Gather Host Count
5988c2ecf20Sopenharmony_ci */
5998c2ecf20Sopenharmony_ciregister SGHCNT {
6008c2ecf20Sopenharmony_ci	address			0x084
6018c2ecf20Sopenharmony_ci	access_mode	RW
6028c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
6038c2ecf20Sopenharmony_ci	dont_generate_debug_code
6048c2ecf20Sopenharmony_ci}
6058c2ecf20Sopenharmony_ci
6068c2ecf20Sopenharmony_ci/*
6078c2ecf20Sopenharmony_ci * SCB Host Count
6088c2ecf20Sopenharmony_ci */
6098c2ecf20Sopenharmony_ciregister SCBHCNT {
6108c2ecf20Sopenharmony_ci	address			0x084
6118c2ecf20Sopenharmony_ci	access_mode	RW
6128c2ecf20Sopenharmony_ci	modes		M_CCHAN
6138c2ecf20Sopenharmony_ci	dont_generate_debug_code
6148c2ecf20Sopenharmony_ci}
6158c2ecf20Sopenharmony_ci
6168c2ecf20Sopenharmony_ci/*
6178c2ecf20Sopenharmony_ci * Data FIFO Threshold
6188c2ecf20Sopenharmony_ci */
6198c2ecf20Sopenharmony_ciregister DFF_THRSH {
6208c2ecf20Sopenharmony_ci	address			0x088
6218c2ecf20Sopenharmony_ci	access_mode	RW
6228c2ecf20Sopenharmony_ci	modes		M_CFG
6238c2ecf20Sopenharmony_ci	count		1
6248c2ecf20Sopenharmony_ci	field	WR_DFTHRSH	0x70 {
6258c2ecf20Sopenharmony_ci		WR_DFTHRSH_MIN,
6268c2ecf20Sopenharmony_ci		WR_DFTHRSH_25,
6278c2ecf20Sopenharmony_ci		WR_DFTHRSH_50,
6288c2ecf20Sopenharmony_ci		WR_DFTHRSH_63,
6298c2ecf20Sopenharmony_ci		WR_DFTHRSH_75,
6308c2ecf20Sopenharmony_ci		WR_DFTHRSH_85,
6318c2ecf20Sopenharmony_ci		WR_DFTHRSH_90,
6328c2ecf20Sopenharmony_ci		WR_DFTHRSH_MAX
6338c2ecf20Sopenharmony_ci	}
6348c2ecf20Sopenharmony_ci	field	RD_DFTHRSH	0x07 {
6358c2ecf20Sopenharmony_ci		RD_DFTHRSH_MIN,
6368c2ecf20Sopenharmony_ci		RD_DFTHRSH_25,
6378c2ecf20Sopenharmony_ci		RD_DFTHRSH_50,
6388c2ecf20Sopenharmony_ci		RD_DFTHRSH_63,
6398c2ecf20Sopenharmony_ci		RD_DFTHRSH_75,
6408c2ecf20Sopenharmony_ci		RD_DFTHRSH_85,
6418c2ecf20Sopenharmony_ci		RD_DFTHRSH_90,
6428c2ecf20Sopenharmony_ci		RD_DFTHRSH_MAX
6438c2ecf20Sopenharmony_ci	}
6448c2ecf20Sopenharmony_ci	dont_generate_debug_code
6458c2ecf20Sopenharmony_ci}
6468c2ecf20Sopenharmony_ci
6478c2ecf20Sopenharmony_ci/*
6488c2ecf20Sopenharmony_ci * ROM Address
6498c2ecf20Sopenharmony_ci */
6508c2ecf20Sopenharmony_ciregister ROMADDR {
6518c2ecf20Sopenharmony_ci	address			0x08A
6528c2ecf20Sopenharmony_ci	access_mode	RW
6538c2ecf20Sopenharmony_ci	size		3
6548c2ecf20Sopenharmony_ci}
6558c2ecf20Sopenharmony_ci
6568c2ecf20Sopenharmony_ci/*
6578c2ecf20Sopenharmony_ci * ROM Control
6588c2ecf20Sopenharmony_ci */
6598c2ecf20Sopenharmony_ciregister ROMCNTRL {
6608c2ecf20Sopenharmony_ci	address			0x08D
6618c2ecf20Sopenharmony_ci	access_mode	RW
6628c2ecf20Sopenharmony_ci	field	ROMOP		0xE0
6638c2ecf20Sopenharmony_ci	field	ROMSPD		0x18
6648c2ecf20Sopenharmony_ci	field	REPEAT		0x02
6658c2ecf20Sopenharmony_ci	field	RDY		0x01
6668c2ecf20Sopenharmony_ci}
6678c2ecf20Sopenharmony_ci
6688c2ecf20Sopenharmony_ci/*
6698c2ecf20Sopenharmony_ci * ROM Data
6708c2ecf20Sopenharmony_ci */
6718c2ecf20Sopenharmony_ciregister ROMDATA {
6728c2ecf20Sopenharmony_ci	address			0x08E
6738c2ecf20Sopenharmony_ci	access_mode	RW
6748c2ecf20Sopenharmony_ci}
6758c2ecf20Sopenharmony_ci
6768c2ecf20Sopenharmony_ci/*
6778c2ecf20Sopenharmony_ci * Data Channel Receive Message 0
6788c2ecf20Sopenharmony_ci */
6798c2ecf20Sopenharmony_ciregister DCHRXMSG0 {
6808c2ecf20Sopenharmony_ci	address			0x090
6818c2ecf20Sopenharmony_ci	access_mode	RO
6828c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
6838c2ecf20Sopenharmony_ci	field		CDNUM	0xF8
6848c2ecf20Sopenharmony_ci	field		CFNUM	0x07
6858c2ecf20Sopenharmony_ci}
6868c2ecf20Sopenharmony_ci
6878c2ecf20Sopenharmony_ci/*
6888c2ecf20Sopenharmony_ci * CMC Receive Message 0
6898c2ecf20Sopenharmony_ci */
6908c2ecf20Sopenharmony_ciregister CMCRXMSG0 {
6918c2ecf20Sopenharmony_ci	address			0x090
6928c2ecf20Sopenharmony_ci	access_mode	RO
6938c2ecf20Sopenharmony_ci	modes		M_CCHAN
6948c2ecf20Sopenharmony_ci	field		CDNUM	0xF8
6958c2ecf20Sopenharmony_ci	field		CFNUM	0x07
6968c2ecf20Sopenharmony_ci}
6978c2ecf20Sopenharmony_ci
6988c2ecf20Sopenharmony_ci/*
6998c2ecf20Sopenharmony_ci * Overlay Receive Message 0
7008c2ecf20Sopenharmony_ci */
7018c2ecf20Sopenharmony_ciregister OVLYRXMSG0 {
7028c2ecf20Sopenharmony_ci	address			0x090
7038c2ecf20Sopenharmony_ci	access_mode	RO
7048c2ecf20Sopenharmony_ci	modes		M_SCSI
7058c2ecf20Sopenharmony_ci	field		CDNUM	0xF8
7068c2ecf20Sopenharmony_ci	field		CFNUM	0x07
7078c2ecf20Sopenharmony_ci}
7088c2ecf20Sopenharmony_ci
7098c2ecf20Sopenharmony_ci/*
7108c2ecf20Sopenharmony_ci * Relaxed Order Enable
7118c2ecf20Sopenharmony_ci */
7128c2ecf20Sopenharmony_ciregister ROENABLE {
7138c2ecf20Sopenharmony_ci	address			0x090
7148c2ecf20Sopenharmony_ci	access_mode	RW
7158c2ecf20Sopenharmony_ci	modes		M_CFG
7168c2ecf20Sopenharmony_ci	field	MSIROEN		0x20
7178c2ecf20Sopenharmony_ci	field	OVLYROEN	0x10
7188c2ecf20Sopenharmony_ci	field	CMCROEN		0x08
7198c2ecf20Sopenharmony_ci	field	SGROEN		0x04
7208c2ecf20Sopenharmony_ci	field	DCH1ROEN	0x02
7218c2ecf20Sopenharmony_ci	field	DCH0ROEN	0x01
7228c2ecf20Sopenharmony_ci}
7238c2ecf20Sopenharmony_ci
7248c2ecf20Sopenharmony_ci/*
7258c2ecf20Sopenharmony_ci * Data Channel Receive Message 1
7268c2ecf20Sopenharmony_ci */
7278c2ecf20Sopenharmony_ciregister DCHRXMSG1 {
7288c2ecf20Sopenharmony_ci	address			0x091
7298c2ecf20Sopenharmony_ci	access_mode	RO
7308c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
7318c2ecf20Sopenharmony_ci	field	CBNUM		0xFF
7328c2ecf20Sopenharmony_ci}
7338c2ecf20Sopenharmony_ci
7348c2ecf20Sopenharmony_ci/*
7358c2ecf20Sopenharmony_ci * CMC Receive Message 1
7368c2ecf20Sopenharmony_ci */
7378c2ecf20Sopenharmony_ciregister CMCRXMSG1 {
7388c2ecf20Sopenharmony_ci	address			0x091
7398c2ecf20Sopenharmony_ci	access_mode	RO
7408c2ecf20Sopenharmony_ci	modes		M_CCHAN
7418c2ecf20Sopenharmony_ci	field	CBNUM		0xFF
7428c2ecf20Sopenharmony_ci}
7438c2ecf20Sopenharmony_ci
7448c2ecf20Sopenharmony_ci/*
7458c2ecf20Sopenharmony_ci * Overlay Receive Message 1
7468c2ecf20Sopenharmony_ci */
7478c2ecf20Sopenharmony_ciregister OVLYRXMSG1 {
7488c2ecf20Sopenharmony_ci	address			0x091
7498c2ecf20Sopenharmony_ci	access_mode	RO
7508c2ecf20Sopenharmony_ci	modes		M_SCSI
7518c2ecf20Sopenharmony_ci	field	CBNUM		0xFF
7528c2ecf20Sopenharmony_ci}
7538c2ecf20Sopenharmony_ci
7548c2ecf20Sopenharmony_ci/*
7558c2ecf20Sopenharmony_ci * No Snoop Enable
7568c2ecf20Sopenharmony_ci */
7578c2ecf20Sopenharmony_ciregister NSENABLE {
7588c2ecf20Sopenharmony_ci	address			0x091
7598c2ecf20Sopenharmony_ci	access_mode	RW
7608c2ecf20Sopenharmony_ci	modes		M_CFG
7618c2ecf20Sopenharmony_ci	field	MSINSEN		0x20
7628c2ecf20Sopenharmony_ci	field	OVLYNSEN	0x10
7638c2ecf20Sopenharmony_ci	field	CMCNSEN		0x08
7648c2ecf20Sopenharmony_ci	field	SGNSEN		0x04
7658c2ecf20Sopenharmony_ci	field	DCH1NSEN	0x02
7668c2ecf20Sopenharmony_ci	field	DCH0NSEN	0x01
7678c2ecf20Sopenharmony_ci}
7688c2ecf20Sopenharmony_ci
7698c2ecf20Sopenharmony_ci/*
7708c2ecf20Sopenharmony_ci * Data Channel Receive Message 2
7718c2ecf20Sopenharmony_ci */
7728c2ecf20Sopenharmony_ciregister DCHRXMSG2 {
7738c2ecf20Sopenharmony_ci	address			0x092
7748c2ecf20Sopenharmony_ci	access_mode	RO
7758c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
7768c2ecf20Sopenharmony_ci	field	MINDEX		0xFF
7778c2ecf20Sopenharmony_ci}
7788c2ecf20Sopenharmony_ci
7798c2ecf20Sopenharmony_ci/*
7808c2ecf20Sopenharmony_ci * CMC Receive Message 2
7818c2ecf20Sopenharmony_ci */
7828c2ecf20Sopenharmony_ciregister CMCRXMSG2 {
7838c2ecf20Sopenharmony_ci	address			0x092
7848c2ecf20Sopenharmony_ci	access_mode	RO
7858c2ecf20Sopenharmony_ci	modes		M_CCHAN
7868c2ecf20Sopenharmony_ci	field	MINDEX		0xFF
7878c2ecf20Sopenharmony_ci}
7888c2ecf20Sopenharmony_ci
7898c2ecf20Sopenharmony_ci/*
7908c2ecf20Sopenharmony_ci * Overlay Receive Message 2
7918c2ecf20Sopenharmony_ci */
7928c2ecf20Sopenharmony_ciregister OVLYRXMSG2 {
7938c2ecf20Sopenharmony_ci	address			0x092
7948c2ecf20Sopenharmony_ci	access_mode	RO
7958c2ecf20Sopenharmony_ci	modes		M_SCSI
7968c2ecf20Sopenharmony_ci	field	MINDEX		0xFF
7978c2ecf20Sopenharmony_ci}
7988c2ecf20Sopenharmony_ci
7998c2ecf20Sopenharmony_ci/*
8008c2ecf20Sopenharmony_ci * Outstanding Split Transactions
8018c2ecf20Sopenharmony_ci */
8028c2ecf20Sopenharmony_ciregister OST {
8038c2ecf20Sopenharmony_ci	address			0x092
8048c2ecf20Sopenharmony_ci	access_mode	RW
8058c2ecf20Sopenharmony_ci	modes		M_CFG
8068c2ecf20Sopenharmony_ci}
8078c2ecf20Sopenharmony_ci
8088c2ecf20Sopenharmony_ci/*
8098c2ecf20Sopenharmony_ci * Data Channel Receive Message 3
8108c2ecf20Sopenharmony_ci */
8118c2ecf20Sopenharmony_ciregister DCHRXMSG3 {
8128c2ecf20Sopenharmony_ci	address			0x093
8138c2ecf20Sopenharmony_ci	access_mode	RO
8148c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
8158c2ecf20Sopenharmony_ci	field	MCLASS		0x0F
8168c2ecf20Sopenharmony_ci}
8178c2ecf20Sopenharmony_ci
8188c2ecf20Sopenharmony_ci/*
8198c2ecf20Sopenharmony_ci * CMC Receive Message 3
8208c2ecf20Sopenharmony_ci */
8218c2ecf20Sopenharmony_ciregister CMCRXMSG3 {
8228c2ecf20Sopenharmony_ci	address			0x093
8238c2ecf20Sopenharmony_ci	access_mode	RO
8248c2ecf20Sopenharmony_ci	modes		M_CCHAN
8258c2ecf20Sopenharmony_ci	field	MCLASS		0x0F
8268c2ecf20Sopenharmony_ci}
8278c2ecf20Sopenharmony_ci
8288c2ecf20Sopenharmony_ci/*
8298c2ecf20Sopenharmony_ci * Overlay Receive Message 3
8308c2ecf20Sopenharmony_ci */
8318c2ecf20Sopenharmony_ciregister OVLYRXMSG3 {
8328c2ecf20Sopenharmony_ci	address			0x093
8338c2ecf20Sopenharmony_ci	access_mode	RO
8348c2ecf20Sopenharmony_ci	modes		M_SCSI
8358c2ecf20Sopenharmony_ci	field	MCLASS		0x0F
8368c2ecf20Sopenharmony_ci}
8378c2ecf20Sopenharmony_ci
8388c2ecf20Sopenharmony_ci/*
8398c2ecf20Sopenharmony_ci * PCI-X Control
8408c2ecf20Sopenharmony_ci */
8418c2ecf20Sopenharmony_ciregister PCIXCTL {
8428c2ecf20Sopenharmony_ci	address			0x093
8438c2ecf20Sopenharmony_ci	access_mode	RW
8448c2ecf20Sopenharmony_ci	modes		M_CFG
8458c2ecf20Sopenharmony_ci	count		1
8468c2ecf20Sopenharmony_ci	field	SERRPULSE	0x80
8478c2ecf20Sopenharmony_ci	field	UNEXPSCIEN	0x20
8488c2ecf20Sopenharmony_ci	field	SPLTSMADIS	0x10
8498c2ecf20Sopenharmony_ci	field	SPLTSTADIS	0x08
8508c2ecf20Sopenharmony_ci	field	SRSPDPEEN	0x04
8518c2ecf20Sopenharmony_ci	field	TSCSERREN	0x02
8528c2ecf20Sopenharmony_ci	field	CMPABCDIS	0x01
8538c2ecf20Sopenharmony_ci	dont_generate_debug_code
8548c2ecf20Sopenharmony_ci}
8558c2ecf20Sopenharmony_ci
8568c2ecf20Sopenharmony_ci/*
8578c2ecf20Sopenharmony_ci * CMC Sequencer Byte Count
8588c2ecf20Sopenharmony_ci */
8598c2ecf20Sopenharmony_ciregister CMCSEQBCNT {
8608c2ecf20Sopenharmony_ci	address			0x094
8618c2ecf20Sopenharmony_ci	access_mode	RO
8628c2ecf20Sopenharmony_ci	modes		M_CCHAN
8638c2ecf20Sopenharmony_ci}
8648c2ecf20Sopenharmony_ci
8658c2ecf20Sopenharmony_ci/*
8668c2ecf20Sopenharmony_ci * Overlay Sequencer Byte Count
8678c2ecf20Sopenharmony_ci */
8688c2ecf20Sopenharmony_ciregister OVLYSEQBCNT {
8698c2ecf20Sopenharmony_ci	address			0x094
8708c2ecf20Sopenharmony_ci	access_mode	RO
8718c2ecf20Sopenharmony_ci	modes		M_SCSI
8728c2ecf20Sopenharmony_ci}
8738c2ecf20Sopenharmony_ci
8748c2ecf20Sopenharmony_ci/*
8758c2ecf20Sopenharmony_ci * Data Channel Sequencer Byte Count
8768c2ecf20Sopenharmony_ci */
8778c2ecf20Sopenharmony_ciregister DCHSEQBCNT {
8788c2ecf20Sopenharmony_ci	address			0x094
8798c2ecf20Sopenharmony_ci	access_mode	RO
8808c2ecf20Sopenharmony_ci	size		2
8818c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
8828c2ecf20Sopenharmony_ci}
8838c2ecf20Sopenharmony_ci
8848c2ecf20Sopenharmony_ci/*
8858c2ecf20Sopenharmony_ci * Data Channel Split Status 0
8868c2ecf20Sopenharmony_ci */
8878c2ecf20Sopenharmony_ciregister DCHSPLTSTAT0 {
8888c2ecf20Sopenharmony_ci	address			0x096
8898c2ecf20Sopenharmony_ci	access_mode	RW
8908c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
8918c2ecf20Sopenharmony_ci	count		2
8928c2ecf20Sopenharmony_ci	field	STAETERM	0x80
8938c2ecf20Sopenharmony_ci	field	SCBCERR		0x40
8948c2ecf20Sopenharmony_ci	field	SCADERR		0x20
8958c2ecf20Sopenharmony_ci	field	SCDATBUCKET	0x10
8968c2ecf20Sopenharmony_ci	field	CNTNOTCMPLT	0x08
8978c2ecf20Sopenharmony_ci	field	RXOVRUN		0x04
8988c2ecf20Sopenharmony_ci	field	RXSCEMSG	0x02
8998c2ecf20Sopenharmony_ci	field	RXSPLTRSP	0x01
9008c2ecf20Sopenharmony_ci	dont_generate_debug_code
9018c2ecf20Sopenharmony_ci}
9028c2ecf20Sopenharmony_ci
9038c2ecf20Sopenharmony_ci/*
9048c2ecf20Sopenharmony_ci * CMC Split Status 0
9058c2ecf20Sopenharmony_ci */
9068c2ecf20Sopenharmony_ciregister CMCSPLTSTAT0 {
9078c2ecf20Sopenharmony_ci	address			0x096
9088c2ecf20Sopenharmony_ci	access_mode	RW
9098c2ecf20Sopenharmony_ci	modes		M_CCHAN
9108c2ecf20Sopenharmony_ci	field	STAETERM	0x80
9118c2ecf20Sopenharmony_ci	field	SCBCERR		0x40
9128c2ecf20Sopenharmony_ci	field	SCADERR		0x20
9138c2ecf20Sopenharmony_ci	field	SCDATBUCKET	0x10
9148c2ecf20Sopenharmony_ci	field	CNTNOTCMPLT	0x08
9158c2ecf20Sopenharmony_ci	field	RXOVRUN		0x04
9168c2ecf20Sopenharmony_ci	field	RXSCEMSG	0x02
9178c2ecf20Sopenharmony_ci	field	RXSPLTRSP	0x01
9188c2ecf20Sopenharmony_ci}
9198c2ecf20Sopenharmony_ci
9208c2ecf20Sopenharmony_ci/*
9218c2ecf20Sopenharmony_ci * Overlay Split Status 0
9228c2ecf20Sopenharmony_ci */
9238c2ecf20Sopenharmony_ciregister OVLYSPLTSTAT0 {
9248c2ecf20Sopenharmony_ci	address			0x096
9258c2ecf20Sopenharmony_ci	access_mode	RW
9268c2ecf20Sopenharmony_ci	modes		M_SCSI
9278c2ecf20Sopenharmony_ci	field	STAETERM	0x80
9288c2ecf20Sopenharmony_ci	field	SCBCERR		0x40
9298c2ecf20Sopenharmony_ci	field	SCADERR		0x20
9308c2ecf20Sopenharmony_ci	field	SCDATBUCKET	0x10
9318c2ecf20Sopenharmony_ci	field	CNTNOTCMPLT	0x08
9328c2ecf20Sopenharmony_ci	field	RXOVRUN		0x04
9338c2ecf20Sopenharmony_ci	field	RXSCEMSG	0x02
9348c2ecf20Sopenharmony_ci	field	RXSPLTRSP	0x01
9358c2ecf20Sopenharmony_ci}
9368c2ecf20Sopenharmony_ci
9378c2ecf20Sopenharmony_ci/*
9388c2ecf20Sopenharmony_ci * Data Channel Split Status 1
9398c2ecf20Sopenharmony_ci */
9408c2ecf20Sopenharmony_ciregister DCHSPLTSTAT1 {
9418c2ecf20Sopenharmony_ci	address			0x097
9428c2ecf20Sopenharmony_ci	access_mode	RW
9438c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
9448c2ecf20Sopenharmony_ci	count		2
9458c2ecf20Sopenharmony_ci	field	RXDATABUCKET	0x01
9468c2ecf20Sopenharmony_ci	dont_generate_debug_code
9478c2ecf20Sopenharmony_ci}
9488c2ecf20Sopenharmony_ci
9498c2ecf20Sopenharmony_ci/*
9508c2ecf20Sopenharmony_ci * CMC Split Status 1
9518c2ecf20Sopenharmony_ci */
9528c2ecf20Sopenharmony_ciregister CMCSPLTSTAT1 {
9538c2ecf20Sopenharmony_ci	address			0x097
9548c2ecf20Sopenharmony_ci	access_mode	RW
9558c2ecf20Sopenharmony_ci	modes		M_CCHAN
9568c2ecf20Sopenharmony_ci	field	RXDATABUCKET	0x01
9578c2ecf20Sopenharmony_ci}
9588c2ecf20Sopenharmony_ci
9598c2ecf20Sopenharmony_ci/*
9608c2ecf20Sopenharmony_ci * Overlay Split Status 1
9618c2ecf20Sopenharmony_ci */
9628c2ecf20Sopenharmony_ciregister OVLYSPLTSTAT1 {
9638c2ecf20Sopenharmony_ci	address			0x097
9648c2ecf20Sopenharmony_ci	access_mode	RW
9658c2ecf20Sopenharmony_ci	modes		M_SCSI
9668c2ecf20Sopenharmony_ci	field	RXDATABUCKET	0x01
9678c2ecf20Sopenharmony_ci}
9688c2ecf20Sopenharmony_ci
9698c2ecf20Sopenharmony_ci/*
9708c2ecf20Sopenharmony_ci * S/G Receive Message 0
9718c2ecf20Sopenharmony_ci */
9728c2ecf20Sopenharmony_ciregister SGRXMSG0 {
9738c2ecf20Sopenharmony_ci	address			0x098
9748c2ecf20Sopenharmony_ci	access_mode	RO
9758c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
9768c2ecf20Sopenharmony_ci	field		CDNUM	0xF8
9778c2ecf20Sopenharmony_ci	field		CFNUM	0x07
9788c2ecf20Sopenharmony_ci}
9798c2ecf20Sopenharmony_ci
9808c2ecf20Sopenharmony_ci/*
9818c2ecf20Sopenharmony_ci * S/G Receive Message 1
9828c2ecf20Sopenharmony_ci */
9838c2ecf20Sopenharmony_ciregister SGRXMSG1 {
9848c2ecf20Sopenharmony_ci	address			0x099
9858c2ecf20Sopenharmony_ci	access_mode	RO
9868c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
9878c2ecf20Sopenharmony_ci	field	CBNUM		0xFF
9888c2ecf20Sopenharmony_ci}
9898c2ecf20Sopenharmony_ci
9908c2ecf20Sopenharmony_ci/*
9918c2ecf20Sopenharmony_ci * S/G Receive Message 2
9928c2ecf20Sopenharmony_ci */
9938c2ecf20Sopenharmony_ciregister SGRXMSG2 {
9948c2ecf20Sopenharmony_ci	address			0x09A
9958c2ecf20Sopenharmony_ci	access_mode	RO
9968c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
9978c2ecf20Sopenharmony_ci	field	MINDEX		0xFF
9988c2ecf20Sopenharmony_ci}
9998c2ecf20Sopenharmony_ci
10008c2ecf20Sopenharmony_ci/*
10018c2ecf20Sopenharmony_ci * S/G Receive Message 3
10028c2ecf20Sopenharmony_ci */
10038c2ecf20Sopenharmony_ciregister SGRXMSG3 {
10048c2ecf20Sopenharmony_ci	address			0x09B
10058c2ecf20Sopenharmony_ci	access_mode	RO
10068c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
10078c2ecf20Sopenharmony_ci	field	MCLASS		0x0F
10088c2ecf20Sopenharmony_ci}
10098c2ecf20Sopenharmony_ci
10108c2ecf20Sopenharmony_ci/*
10118c2ecf20Sopenharmony_ci * Slave Split Out Address 0
10128c2ecf20Sopenharmony_ci */
10138c2ecf20Sopenharmony_ciregister SLVSPLTOUTADR0 {
10148c2ecf20Sopenharmony_ci	address			0x098
10158c2ecf20Sopenharmony_ci	access_mode	RO
10168c2ecf20Sopenharmony_ci	modes		M_SCSI
10178c2ecf20Sopenharmony_ci	field	LOWER_ADDR	0x7F
10188c2ecf20Sopenharmony_ci}
10198c2ecf20Sopenharmony_ci
10208c2ecf20Sopenharmony_ci/*
10218c2ecf20Sopenharmony_ci * Slave Split Out Address 1
10228c2ecf20Sopenharmony_ci */
10238c2ecf20Sopenharmony_ciregister SLVSPLTOUTADR1 {
10248c2ecf20Sopenharmony_ci	address			0x099
10258c2ecf20Sopenharmony_ci	access_mode	RO
10268c2ecf20Sopenharmony_ci	modes		M_SCSI
10278c2ecf20Sopenharmony_ci	field	REQ_DNUM	0xF8
10288c2ecf20Sopenharmony_ci	field	REQ_FNUM	0x07
10298c2ecf20Sopenharmony_ci}
10308c2ecf20Sopenharmony_ci
10318c2ecf20Sopenharmony_ci/*
10328c2ecf20Sopenharmony_ci * Slave Split Out Address 2
10338c2ecf20Sopenharmony_ci */
10348c2ecf20Sopenharmony_ciregister SLVSPLTOUTADR2 {
10358c2ecf20Sopenharmony_ci	address			0x09A
10368c2ecf20Sopenharmony_ci	access_mode	RO
10378c2ecf20Sopenharmony_ci	modes		M_SCSI
10388c2ecf20Sopenharmony_ci	field	REQ_BNUM	0xFF
10398c2ecf20Sopenharmony_ci}
10408c2ecf20Sopenharmony_ci
10418c2ecf20Sopenharmony_ci/*
10428c2ecf20Sopenharmony_ci * Slave Split Out Address 3
10438c2ecf20Sopenharmony_ci */
10448c2ecf20Sopenharmony_ciregister SLVSPLTOUTADR3 {
10458c2ecf20Sopenharmony_ci	address			0x09B
10468c2ecf20Sopenharmony_ci	access_mode	RO
10478c2ecf20Sopenharmony_ci	modes		M_SCSI
10488c2ecf20Sopenharmony_ci	field	RLXORD		020
10498c2ecf20Sopenharmony_ci	field	TAG_NUM		0x1F
10508c2ecf20Sopenharmony_ci}
10518c2ecf20Sopenharmony_ci
10528c2ecf20Sopenharmony_ci/*
10538c2ecf20Sopenharmony_ci * SG Sequencer Byte Count
10548c2ecf20Sopenharmony_ci */
10558c2ecf20Sopenharmony_ciregister SGSEQBCNT {
10568c2ecf20Sopenharmony_ci	address			0x09C
10578c2ecf20Sopenharmony_ci	access_mode	RO
10588c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
10598c2ecf20Sopenharmony_ci}
10608c2ecf20Sopenharmony_ci
10618c2ecf20Sopenharmony_ci/*
10628c2ecf20Sopenharmony_ci * Slave Split Out Attribute 0
10638c2ecf20Sopenharmony_ci */
10648c2ecf20Sopenharmony_ciregister SLVSPLTOUTATTR0 {
10658c2ecf20Sopenharmony_ci	address			0x09C
10668c2ecf20Sopenharmony_ci	access_mode	RO
10678c2ecf20Sopenharmony_ci	modes		M_SCSI
10688c2ecf20Sopenharmony_ci	field	LOWER_BCNT	0xFF
10698c2ecf20Sopenharmony_ci}
10708c2ecf20Sopenharmony_ci
10718c2ecf20Sopenharmony_ci/*
10728c2ecf20Sopenharmony_ci * Slave Split Out Attribute 1
10738c2ecf20Sopenharmony_ci */
10748c2ecf20Sopenharmony_ciregister SLVSPLTOUTATTR1 {
10758c2ecf20Sopenharmony_ci	address			0x09D
10768c2ecf20Sopenharmony_ci	access_mode	RO
10778c2ecf20Sopenharmony_ci	modes		M_SCSI
10788c2ecf20Sopenharmony_ci	field	CMPLT_DNUM	0xF8
10798c2ecf20Sopenharmony_ci	field	CMPLT_FNUM	0x07
10808c2ecf20Sopenharmony_ci}
10818c2ecf20Sopenharmony_ci
10828c2ecf20Sopenharmony_ci/*
10838c2ecf20Sopenharmony_ci * Slave Split Out Attribute 2
10848c2ecf20Sopenharmony_ci */
10858c2ecf20Sopenharmony_ciregister SLVSPLTOUTATTR2 {
10868c2ecf20Sopenharmony_ci	address			0x09E
10878c2ecf20Sopenharmony_ci	access_mode	RO
10888c2ecf20Sopenharmony_ci	size		2
10898c2ecf20Sopenharmony_ci	modes		M_SCSI
10908c2ecf20Sopenharmony_ci	field	CMPLT_BNUM	0xFF
10918c2ecf20Sopenharmony_ci}
10928c2ecf20Sopenharmony_ci/*
10938c2ecf20Sopenharmony_ci * S/G Split Status 0
10948c2ecf20Sopenharmony_ci */
10958c2ecf20Sopenharmony_ciregister SGSPLTSTAT0 {
10968c2ecf20Sopenharmony_ci	address			0x09E
10978c2ecf20Sopenharmony_ci	access_mode	RW
10988c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
10998c2ecf20Sopenharmony_ci	count		2
11008c2ecf20Sopenharmony_ci	field	STAETERM	0x80
11018c2ecf20Sopenharmony_ci	field	SCBCERR		0x40
11028c2ecf20Sopenharmony_ci	field	SCADERR		0x20
11038c2ecf20Sopenharmony_ci	field	SCDATBUCKET	0x10
11048c2ecf20Sopenharmony_ci	field	CNTNOTCMPLT	0x08
11058c2ecf20Sopenharmony_ci	field	RXOVRUN		0x04
11068c2ecf20Sopenharmony_ci	field	RXSCEMSG	0x02
11078c2ecf20Sopenharmony_ci	field	RXSPLTRSP	0x01
11088c2ecf20Sopenharmony_ci	dont_generate_debug_code
11098c2ecf20Sopenharmony_ci}
11108c2ecf20Sopenharmony_ci
11118c2ecf20Sopenharmony_ci/*
11128c2ecf20Sopenharmony_ci * S/G Split Status 1
11138c2ecf20Sopenharmony_ci */
11148c2ecf20Sopenharmony_ciregister SGSPLTSTAT1 {
11158c2ecf20Sopenharmony_ci	address			0x09F
11168c2ecf20Sopenharmony_ci	access_mode	RW
11178c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
11188c2ecf20Sopenharmony_ci	count		2
11198c2ecf20Sopenharmony_ci	field	RXDATABUCKET	0x01
11208c2ecf20Sopenharmony_ci	dont_generate_debug_code
11218c2ecf20Sopenharmony_ci}
11228c2ecf20Sopenharmony_ci
11238c2ecf20Sopenharmony_ci/*
11248c2ecf20Sopenharmony_ci * Special Function
11258c2ecf20Sopenharmony_ci */
11268c2ecf20Sopenharmony_ciregister SFUNCT {
11278c2ecf20Sopenharmony_ci	address			0x09f
11288c2ecf20Sopenharmony_ci	access_mode	RW
11298c2ecf20Sopenharmony_ci	modes		M_CFG
11308c2ecf20Sopenharmony_ci	field	TEST_GROUP	0xF0
11318c2ecf20Sopenharmony_ci	field	TEST_NUM	0x0F
11328c2ecf20Sopenharmony_ci	dont_generate_debug_code
11338c2ecf20Sopenharmony_ci}
11348c2ecf20Sopenharmony_ci
11358c2ecf20Sopenharmony_ci/*
11368c2ecf20Sopenharmony_ci * Data FIFO 0 PCI Status 
11378c2ecf20Sopenharmony_ci */
11388c2ecf20Sopenharmony_ciregister DF0PCISTAT {
11398c2ecf20Sopenharmony_ci	address			0x0A0
11408c2ecf20Sopenharmony_ci	access_mode	RW
11418c2ecf20Sopenharmony_ci	modes		M_CFG
11428c2ecf20Sopenharmony_ci	count		1
11438c2ecf20Sopenharmony_ci	field	DPE		0x80
11448c2ecf20Sopenharmony_ci	field	SSE		0x40
11458c2ecf20Sopenharmony_ci	field	RMA		0x20
11468c2ecf20Sopenharmony_ci	field	RTA		0x10
11478c2ecf20Sopenharmony_ci	field	SCAAPERR	0x08
11488c2ecf20Sopenharmony_ci	field	RDPERR		0x04
11498c2ecf20Sopenharmony_ci	field	TWATERR		0x02
11508c2ecf20Sopenharmony_ci	field	DPR		0x01
11518c2ecf20Sopenharmony_ci	dont_generate_debug_code
11528c2ecf20Sopenharmony_ci}
11538c2ecf20Sopenharmony_ci
11548c2ecf20Sopenharmony_ci/*
11558c2ecf20Sopenharmony_ci * Data FIFO 1 PCI Status 
11568c2ecf20Sopenharmony_ci */
11578c2ecf20Sopenharmony_ciregister DF1PCISTAT {
11588c2ecf20Sopenharmony_ci	address			0x0A1
11598c2ecf20Sopenharmony_ci	access_mode	RW
11608c2ecf20Sopenharmony_ci	modes		M_CFG
11618c2ecf20Sopenharmony_ci	field	DPE		0x80
11628c2ecf20Sopenharmony_ci	field	SSE		0x40
11638c2ecf20Sopenharmony_ci	field	RMA		0x20
11648c2ecf20Sopenharmony_ci	field	RTA		0x10
11658c2ecf20Sopenharmony_ci	field	SCAAPERR	0x08
11668c2ecf20Sopenharmony_ci	field	RDPERR		0x04
11678c2ecf20Sopenharmony_ci	field	TWATERR		0x02
11688c2ecf20Sopenharmony_ci	field	DPR		0x01
11698c2ecf20Sopenharmony_ci}
11708c2ecf20Sopenharmony_ci
11718c2ecf20Sopenharmony_ci/*
11728c2ecf20Sopenharmony_ci * S/G PCI Status 
11738c2ecf20Sopenharmony_ci */
11748c2ecf20Sopenharmony_ciregister SGPCISTAT {
11758c2ecf20Sopenharmony_ci	address			0x0A2
11768c2ecf20Sopenharmony_ci	access_mode	RW
11778c2ecf20Sopenharmony_ci	modes		M_CFG
11788c2ecf20Sopenharmony_ci	field	DPE		0x80
11798c2ecf20Sopenharmony_ci	field	SSE		0x40
11808c2ecf20Sopenharmony_ci	field	RMA		0x20
11818c2ecf20Sopenharmony_ci	field	RTA		0x10
11828c2ecf20Sopenharmony_ci	field	SCAAPERR	0x08
11838c2ecf20Sopenharmony_ci	field	RDPERR		0x04
11848c2ecf20Sopenharmony_ci	field	DPR		0x01
11858c2ecf20Sopenharmony_ci}
11868c2ecf20Sopenharmony_ci
11878c2ecf20Sopenharmony_ci/*
11888c2ecf20Sopenharmony_ci * CMC PCI Status 
11898c2ecf20Sopenharmony_ci */
11908c2ecf20Sopenharmony_ciregister CMCPCISTAT {
11918c2ecf20Sopenharmony_ci	address			0x0A3
11928c2ecf20Sopenharmony_ci	access_mode	RW
11938c2ecf20Sopenharmony_ci	modes		M_CFG
11948c2ecf20Sopenharmony_ci	field	DPE		0x80
11958c2ecf20Sopenharmony_ci	field	SSE		0x40
11968c2ecf20Sopenharmony_ci	field	RMA		0x20
11978c2ecf20Sopenharmony_ci	field	RTA		0x10
11988c2ecf20Sopenharmony_ci	field	SCAAPERR	0x08
11998c2ecf20Sopenharmony_ci	field	RDPERR		0x04
12008c2ecf20Sopenharmony_ci	field	TWATERR		0x02
12018c2ecf20Sopenharmony_ci	field	DPR		0x01
12028c2ecf20Sopenharmony_ci}
12038c2ecf20Sopenharmony_ci
12048c2ecf20Sopenharmony_ci/*
12058c2ecf20Sopenharmony_ci * Overlay PCI Status 
12068c2ecf20Sopenharmony_ci */
12078c2ecf20Sopenharmony_ciregister OVLYPCISTAT {
12088c2ecf20Sopenharmony_ci	address			0x0A4
12098c2ecf20Sopenharmony_ci	access_mode	RW
12108c2ecf20Sopenharmony_ci	modes		M_CFG
12118c2ecf20Sopenharmony_ci	field	DPE		0x80
12128c2ecf20Sopenharmony_ci	field	SSE		0x40
12138c2ecf20Sopenharmony_ci	field	RMA		0x20
12148c2ecf20Sopenharmony_ci	field	RTA		0x10
12158c2ecf20Sopenharmony_ci	field	SCAAPERR	0x08
12168c2ecf20Sopenharmony_ci	field	RDPERR		0x04
12178c2ecf20Sopenharmony_ci	field	DPR		0x01
12188c2ecf20Sopenharmony_ci}
12198c2ecf20Sopenharmony_ci
12208c2ecf20Sopenharmony_ci/*
12218c2ecf20Sopenharmony_ci * PCI Status for MSI Master DMA Transfer
12228c2ecf20Sopenharmony_ci */
12238c2ecf20Sopenharmony_ciregister MSIPCISTAT {
12248c2ecf20Sopenharmony_ci	address			0x0A6
12258c2ecf20Sopenharmony_ci	access_mode	RW
12268c2ecf20Sopenharmony_ci	modes		M_CFG
12278c2ecf20Sopenharmony_ci	field	SSE		0x40
12288c2ecf20Sopenharmony_ci	field	RMA		0x20
12298c2ecf20Sopenharmony_ci	field	RTA		0x10
12308c2ecf20Sopenharmony_ci	field	CLRPENDMSI	0x08
12318c2ecf20Sopenharmony_ci	field	TWATERR		0x02
12328c2ecf20Sopenharmony_ci	field	DPR		0x01
12338c2ecf20Sopenharmony_ci}
12348c2ecf20Sopenharmony_ci
12358c2ecf20Sopenharmony_ci/*
12368c2ecf20Sopenharmony_ci * PCI Status for Target
12378c2ecf20Sopenharmony_ci */
12388c2ecf20Sopenharmony_ciregister TARGPCISTAT {
12398c2ecf20Sopenharmony_ci	address			0x0A7
12408c2ecf20Sopenharmony_ci	access_mode	RW
12418c2ecf20Sopenharmony_ci	modes		M_CFG
12428c2ecf20Sopenharmony_ci	count		5
12438c2ecf20Sopenharmony_ci	field	DPE		0x80
12448c2ecf20Sopenharmony_ci	field	SSE		0x40
12458c2ecf20Sopenharmony_ci	field	STA		0x08
12468c2ecf20Sopenharmony_ci	field	TWATERR		0x02
12478c2ecf20Sopenharmony_ci	dont_generate_debug_code
12488c2ecf20Sopenharmony_ci}
12498c2ecf20Sopenharmony_ci
12508c2ecf20Sopenharmony_ci/*
12518c2ecf20Sopenharmony_ci * LQ Packet In
12528c2ecf20Sopenharmony_ci * The last LQ Packet received
12538c2ecf20Sopenharmony_ci */
12548c2ecf20Sopenharmony_ciregister LQIN {
12558c2ecf20Sopenharmony_ci	address			0x020
12568c2ecf20Sopenharmony_ci	access_mode	RW
12578c2ecf20Sopenharmony_ci	size		20
12588c2ecf20Sopenharmony_ci	count		2
12598c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
12608c2ecf20Sopenharmony_ci	dont_generate_debug_code
12618c2ecf20Sopenharmony_ci}
12628c2ecf20Sopenharmony_ci
12638c2ecf20Sopenharmony_ci/*
12648c2ecf20Sopenharmony_ci * SCB Type Pointer
12658c2ecf20Sopenharmony_ci * SCB offset for Target Mode SCB type information
12668c2ecf20Sopenharmony_ci */
12678c2ecf20Sopenharmony_ciregister TYPEPTR {
12688c2ecf20Sopenharmony_ci	address			0x020
12698c2ecf20Sopenharmony_ci	access_mode	RW
12708c2ecf20Sopenharmony_ci	modes		M_CFG
12718c2ecf20Sopenharmony_ci}
12728c2ecf20Sopenharmony_ci
12738c2ecf20Sopenharmony_ci/*
12748c2ecf20Sopenharmony_ci * Queue Tag Pointer
12758c2ecf20Sopenharmony_ci * SCB offset to the Two Byte tag identifier used for target mode.
12768c2ecf20Sopenharmony_ci */
12778c2ecf20Sopenharmony_ciregister TAGPTR {
12788c2ecf20Sopenharmony_ci	address			0x021
12798c2ecf20Sopenharmony_ci	access_mode	RW
12808c2ecf20Sopenharmony_ci	modes		M_CFG
12818c2ecf20Sopenharmony_ci}
12828c2ecf20Sopenharmony_ci
12838c2ecf20Sopenharmony_ci/*
12848c2ecf20Sopenharmony_ci * Logical Unit Number Pointer
12858c2ecf20Sopenharmony_ci * SCB offset to the LSB (little endian) of the lun field.
12868c2ecf20Sopenharmony_ci */
12878c2ecf20Sopenharmony_ciregister LUNPTR {
12888c2ecf20Sopenharmony_ci	address			0x022
12898c2ecf20Sopenharmony_ci	access_mode	RW
12908c2ecf20Sopenharmony_ci	modes		M_CFG
12918c2ecf20Sopenharmony_ci	count		2
12928c2ecf20Sopenharmony_ci	dont_generate_debug_code
12938c2ecf20Sopenharmony_ci}
12948c2ecf20Sopenharmony_ci
12958c2ecf20Sopenharmony_ci/*
12968c2ecf20Sopenharmony_ci * Data Length Pointer
12978c2ecf20Sopenharmony_ci * SCB offset for the 4 byte data length field in target mode.
12988c2ecf20Sopenharmony_ci */
12998c2ecf20Sopenharmony_ciregister DATALENPTR {
13008c2ecf20Sopenharmony_ci	address			0x023
13018c2ecf20Sopenharmony_ci	access_mode	RW
13028c2ecf20Sopenharmony_ci	modes		M_CFG
13038c2ecf20Sopenharmony_ci}
13048c2ecf20Sopenharmony_ci
13058c2ecf20Sopenharmony_ci/*
13068c2ecf20Sopenharmony_ci * Status Length Pointer
13078c2ecf20Sopenharmony_ci * SCB offset to the two byte status field in target SCBs.
13088c2ecf20Sopenharmony_ci */
13098c2ecf20Sopenharmony_ciregister STATLENPTR {
13108c2ecf20Sopenharmony_ci	address			0x024
13118c2ecf20Sopenharmony_ci	access_mode	RW
13128c2ecf20Sopenharmony_ci	modes		M_CFG
13138c2ecf20Sopenharmony_ci}
13148c2ecf20Sopenharmony_ci
13158c2ecf20Sopenharmony_ci/*
13168c2ecf20Sopenharmony_ci * Command Length Pointer
13178c2ecf20Sopenharmony_ci * Scb offset for the CDB length field in initiator SCBs.
13188c2ecf20Sopenharmony_ci */
13198c2ecf20Sopenharmony_ciregister CMDLENPTR {
13208c2ecf20Sopenharmony_ci	address			0x025
13218c2ecf20Sopenharmony_ci	access_mode	RW
13228c2ecf20Sopenharmony_ci	modes		M_CFG
13238c2ecf20Sopenharmony_ci	count		1
13248c2ecf20Sopenharmony_ci	dont_generate_debug_code
13258c2ecf20Sopenharmony_ci}
13268c2ecf20Sopenharmony_ci
13278c2ecf20Sopenharmony_ci/*
13288c2ecf20Sopenharmony_ci * Task Attribute Pointer
13298c2ecf20Sopenharmony_ci * Scb offset for the byte field specifying the attribute byte
13308c2ecf20Sopenharmony_ci * to be used in command packets.
13318c2ecf20Sopenharmony_ci */ 
13328c2ecf20Sopenharmony_ciregister ATTRPTR {
13338c2ecf20Sopenharmony_ci	address			0x026
13348c2ecf20Sopenharmony_ci	access_mode	RW
13358c2ecf20Sopenharmony_ci	modes		M_CFG
13368c2ecf20Sopenharmony_ci	count		1
13378c2ecf20Sopenharmony_ci	dont_generate_debug_code
13388c2ecf20Sopenharmony_ci}
13398c2ecf20Sopenharmony_ci
13408c2ecf20Sopenharmony_ci/*
13418c2ecf20Sopenharmony_ci * Task Management Flags Pointer
13428c2ecf20Sopenharmony_ci * Scb offset for the byte field specifying the attribute flags
13438c2ecf20Sopenharmony_ci * byte to be used in command packets.
13448c2ecf20Sopenharmony_ci */ 
13458c2ecf20Sopenharmony_ciregister FLAGPTR {
13468c2ecf20Sopenharmony_ci	address			0x027
13478c2ecf20Sopenharmony_ci	access_mode	RW
13488c2ecf20Sopenharmony_ci	modes		M_CFG
13498c2ecf20Sopenharmony_ci	count		1
13508c2ecf20Sopenharmony_ci	dont_generate_debug_code
13518c2ecf20Sopenharmony_ci}
13528c2ecf20Sopenharmony_ci
13538c2ecf20Sopenharmony_ci/*
13548c2ecf20Sopenharmony_ci * Command Pointer
13558c2ecf20Sopenharmony_ci * Scb offset for the first byte in the CDB for initiator SCBs.
13568c2ecf20Sopenharmony_ci */
13578c2ecf20Sopenharmony_ciregister CMDPTR {
13588c2ecf20Sopenharmony_ci	address			0x028
13598c2ecf20Sopenharmony_ci	access_mode	RW
13608c2ecf20Sopenharmony_ci	modes		M_CFG
13618c2ecf20Sopenharmony_ci	count		1
13628c2ecf20Sopenharmony_ci	dont_generate_debug_code
13638c2ecf20Sopenharmony_ci}
13648c2ecf20Sopenharmony_ci
13658c2ecf20Sopenharmony_ci/*
13668c2ecf20Sopenharmony_ci * Queue Next Pointer
13678c2ecf20Sopenharmony_ci * Scb offset for the 2 byte "next scb link".
13688c2ecf20Sopenharmony_ci */
13698c2ecf20Sopenharmony_ciregister QNEXTPTR {
13708c2ecf20Sopenharmony_ci	address			0x029
13718c2ecf20Sopenharmony_ci	access_mode	RW
13728c2ecf20Sopenharmony_ci	modes		M_CFG
13738c2ecf20Sopenharmony_ci	count		1
13748c2ecf20Sopenharmony_ci	dont_generate_debug_code
13758c2ecf20Sopenharmony_ci}
13768c2ecf20Sopenharmony_ci
13778c2ecf20Sopenharmony_ci/*
13788c2ecf20Sopenharmony_ci * SCSI ID Pointer
13798c2ecf20Sopenharmony_ci * Scb offset to the value to place in the SCSIID register
13808c2ecf20Sopenharmony_ci * during target mode connections.
13818c2ecf20Sopenharmony_ci */
13828c2ecf20Sopenharmony_ciregister IDPTR {
13838c2ecf20Sopenharmony_ci	address			0x02A
13848c2ecf20Sopenharmony_ci	access_mode	RW
13858c2ecf20Sopenharmony_ci	modes		M_CFG
13868c2ecf20Sopenharmony_ci}
13878c2ecf20Sopenharmony_ci
13888c2ecf20Sopenharmony_ci/*
13898c2ecf20Sopenharmony_ci * Command Aborted Byte Pointer
13908c2ecf20Sopenharmony_ci * Offset to the SCB flags field that includes the
13918c2ecf20Sopenharmony_ci * "SCB aborted" status bit.
13928c2ecf20Sopenharmony_ci */
13938c2ecf20Sopenharmony_ciregister ABRTBYTEPTR {
13948c2ecf20Sopenharmony_ci	address			0x02B
13958c2ecf20Sopenharmony_ci	access_mode	RW
13968c2ecf20Sopenharmony_ci	modes		M_CFG
13978c2ecf20Sopenharmony_ci	count		1
13988c2ecf20Sopenharmony_ci	dont_generate_debug_code
13998c2ecf20Sopenharmony_ci}
14008c2ecf20Sopenharmony_ci
14018c2ecf20Sopenharmony_ci/*
14028c2ecf20Sopenharmony_ci * Command Aborted Bit Pointer
14038c2ecf20Sopenharmony_ci * Bit offset in the SCB flags field for "SCB aborted" status.
14048c2ecf20Sopenharmony_ci */
14058c2ecf20Sopenharmony_ciregister ABRTBITPTR {
14068c2ecf20Sopenharmony_ci	address			0x02C
14078c2ecf20Sopenharmony_ci	access_mode	RW
14088c2ecf20Sopenharmony_ci	modes		M_CFG
14098c2ecf20Sopenharmony_ci	count		1
14108c2ecf20Sopenharmony_ci	dont_generate_debug_code
14118c2ecf20Sopenharmony_ci}
14128c2ecf20Sopenharmony_ci
14138c2ecf20Sopenharmony_ci/*
14148c2ecf20Sopenharmony_ci * Rev B or greater.
14158c2ecf20Sopenharmony_ci */
14168c2ecf20Sopenharmony_ciregister MAXCMDBYTES {
14178c2ecf20Sopenharmony_ci	address			0x02D
14188c2ecf20Sopenharmony_ci	access_mode	RW
14198c2ecf20Sopenharmony_ci	modes		M_CFG
14208c2ecf20Sopenharmony_ci}
14218c2ecf20Sopenharmony_ci
14228c2ecf20Sopenharmony_ci/*
14238c2ecf20Sopenharmony_ci * Rev B or greater.
14248c2ecf20Sopenharmony_ci */
14258c2ecf20Sopenharmony_ciregister MAXCMD2RCV {
14268c2ecf20Sopenharmony_ci	address			0x02E
14278c2ecf20Sopenharmony_ci	access_mode	RW
14288c2ecf20Sopenharmony_ci	modes		M_CFG
14298c2ecf20Sopenharmony_ci}
14308c2ecf20Sopenharmony_ci
14318c2ecf20Sopenharmony_ci/*
14328c2ecf20Sopenharmony_ci * Rev B or greater.
14338c2ecf20Sopenharmony_ci */
14348c2ecf20Sopenharmony_ciregister SHORTTHRESH {
14358c2ecf20Sopenharmony_ci	address			0x02F
14368c2ecf20Sopenharmony_ci	access_mode	RW
14378c2ecf20Sopenharmony_ci	modes		M_CFG
14388c2ecf20Sopenharmony_ci}
14398c2ecf20Sopenharmony_ci
14408c2ecf20Sopenharmony_ci/*
14418c2ecf20Sopenharmony_ci * Logical Unit Number Length
14428c2ecf20Sopenharmony_ci * The length, in bytes, of the SCB lun field.
14438c2ecf20Sopenharmony_ci */
14448c2ecf20Sopenharmony_ciregister LUNLEN {
14458c2ecf20Sopenharmony_ci	address			0x030
14468c2ecf20Sopenharmony_ci	access_mode	RW
14478c2ecf20Sopenharmony_ci	modes		M_CFG
14488c2ecf20Sopenharmony_ci	count		2
14498c2ecf20Sopenharmony_ci	mask		ILUNLEN	0x0F
14508c2ecf20Sopenharmony_ci	mask		TLUNLEN	0xF0
14518c2ecf20Sopenharmony_ci	dont_generate_debug_code
14528c2ecf20Sopenharmony_ci}
14538c2ecf20Sopenharmony_ciconst LUNLEN_SINGLE_LEVEL_LUN 0xF
14548c2ecf20Sopenharmony_ci
14558c2ecf20Sopenharmony_ci/*
14568c2ecf20Sopenharmony_ci * CDB Limit
14578c2ecf20Sopenharmony_ci * The size, in bytes, of the embedded CDB field in initator SCBs.
14588c2ecf20Sopenharmony_ci */
14598c2ecf20Sopenharmony_ciregister CDBLIMIT {
14608c2ecf20Sopenharmony_ci	address			0x031
14618c2ecf20Sopenharmony_ci	access_mode	RW
14628c2ecf20Sopenharmony_ci	modes		M_CFG
14638c2ecf20Sopenharmony_ci	count		1
14648c2ecf20Sopenharmony_ci	dont_generate_debug_code
14658c2ecf20Sopenharmony_ci}
14668c2ecf20Sopenharmony_ci
14678c2ecf20Sopenharmony_ci/*
14688c2ecf20Sopenharmony_ci * Maximum Commands
14698c2ecf20Sopenharmony_ci * The maximum number of commands to issue during a
14708c2ecf20Sopenharmony_ci * single packetized connection.
14718c2ecf20Sopenharmony_ci */
14728c2ecf20Sopenharmony_ciregister MAXCMD {
14738c2ecf20Sopenharmony_ci	address			0x032
14748c2ecf20Sopenharmony_ci	access_mode	RW
14758c2ecf20Sopenharmony_ci	modes		M_CFG
14768c2ecf20Sopenharmony_ci	count		9
14778c2ecf20Sopenharmony_ci	dont_generate_debug_code
14788c2ecf20Sopenharmony_ci}
14798c2ecf20Sopenharmony_ci
14808c2ecf20Sopenharmony_ci/*
14818c2ecf20Sopenharmony_ci * Maximum Command Counter
14828c2ecf20Sopenharmony_ci * The number of commands already sent during this connection
14838c2ecf20Sopenharmony_ci */
14848c2ecf20Sopenharmony_ciregister MAXCMDCNT {
14858c2ecf20Sopenharmony_ci	address			0x033
14868c2ecf20Sopenharmony_ci	access_mode	RW
14878c2ecf20Sopenharmony_ci	modes		M_CFG
14888c2ecf20Sopenharmony_ci	dont_generate_debug_code
14898c2ecf20Sopenharmony_ci}
14908c2ecf20Sopenharmony_ci
14918c2ecf20Sopenharmony_ci/*
14928c2ecf20Sopenharmony_ci * LQ Packet Reserved Bytes
14938c2ecf20Sopenharmony_ci * The bytes to be sent in the currently reserved fileds
14948c2ecf20Sopenharmony_ci * of all LQ packets.
14958c2ecf20Sopenharmony_ci */
14968c2ecf20Sopenharmony_ciregister LQRSVD01 {
14978c2ecf20Sopenharmony_ci	address			0x034
14988c2ecf20Sopenharmony_ci	access_mode	RW
14998c2ecf20Sopenharmony_ci	modes		M_SCSI
15008c2ecf20Sopenharmony_ci}
15018c2ecf20Sopenharmony_ciregister LQRSVD16 {
15028c2ecf20Sopenharmony_ci	address			0x035
15038c2ecf20Sopenharmony_ci	access_mode	RW
15048c2ecf20Sopenharmony_ci	modes		M_SCSI
15058c2ecf20Sopenharmony_ci}
15068c2ecf20Sopenharmony_ciregister LQRSVD17 {
15078c2ecf20Sopenharmony_ci	address			0x036
15088c2ecf20Sopenharmony_ci	access_mode	RW
15098c2ecf20Sopenharmony_ci	modes		M_SCSI
15108c2ecf20Sopenharmony_ci}
15118c2ecf20Sopenharmony_ci
15128c2ecf20Sopenharmony_ci/*
15138c2ecf20Sopenharmony_ci * Command Reserved 0
15148c2ecf20Sopenharmony_ci * The byte to be sent for the reserved byte 0 of
15158c2ecf20Sopenharmony_ci * outgoing command packets.
15168c2ecf20Sopenharmony_ci */
15178c2ecf20Sopenharmony_ciregister CMDRSVD0 {
15188c2ecf20Sopenharmony_ci	address			0x037
15198c2ecf20Sopenharmony_ci	access_mode	RW
15208c2ecf20Sopenharmony_ci	modes		M_CFG
15218c2ecf20Sopenharmony_ci}
15228c2ecf20Sopenharmony_ci
15238c2ecf20Sopenharmony_ci/*
15248c2ecf20Sopenharmony_ci * LQ Manager Control 0
15258c2ecf20Sopenharmony_ci */
15268c2ecf20Sopenharmony_ciregister LQCTL0 {
15278c2ecf20Sopenharmony_ci	address			0x038
15288c2ecf20Sopenharmony_ci	access_mode	RW
15298c2ecf20Sopenharmony_ci	modes		M_CFG
15308c2ecf20Sopenharmony_ci	field	LQITARGCLT	0xC0
15318c2ecf20Sopenharmony_ci	field	LQIINITGCLT	0x30
15328c2ecf20Sopenharmony_ci	field	LQ0TARGCLT	0x0C
15338c2ecf20Sopenharmony_ci	field	LQ0INITGCLT	0x03
15348c2ecf20Sopenharmony_ci}
15358c2ecf20Sopenharmony_ci
15368c2ecf20Sopenharmony_ci/*
15378c2ecf20Sopenharmony_ci * LQ Manager Control 1
15388c2ecf20Sopenharmony_ci */
15398c2ecf20Sopenharmony_ciregister LQCTL1 {
15408c2ecf20Sopenharmony_ci	address			0x038
15418c2ecf20Sopenharmony_ci	access_mode	RW
15428c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
15438c2ecf20Sopenharmony_ci	count		2
15448c2ecf20Sopenharmony_ci	field	PCI2PCI		0x04
15458c2ecf20Sopenharmony_ci	field	SINGLECMD	0x02
15468c2ecf20Sopenharmony_ci	field	ABORTPENDING	0x01
15478c2ecf20Sopenharmony_ci	dont_generate_debug_code
15488c2ecf20Sopenharmony_ci}
15498c2ecf20Sopenharmony_ci
15508c2ecf20Sopenharmony_ci/*
15518c2ecf20Sopenharmony_ci * LQ Manager Control 2
15528c2ecf20Sopenharmony_ci */
15538c2ecf20Sopenharmony_ciregister LQCTL2 {
15548c2ecf20Sopenharmony_ci	address			0x039
15558c2ecf20Sopenharmony_ci	access_mode	RW
15568c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
15578c2ecf20Sopenharmony_ci	count		5
15588c2ecf20Sopenharmony_ci	field	LQIRETRY	0x80
15598c2ecf20Sopenharmony_ci	field	LQICONTINUE	0x40
15608c2ecf20Sopenharmony_ci	field	LQITOIDLE	0x20
15618c2ecf20Sopenharmony_ci	field	LQIPAUSE	0x10
15628c2ecf20Sopenharmony_ci	field	LQORETRY	0x08
15638c2ecf20Sopenharmony_ci	field	LQOCONTINUE	0x04
15648c2ecf20Sopenharmony_ci	field	LQOTOIDLE	0x02
15658c2ecf20Sopenharmony_ci	field	LQOPAUSE	0x01
15668c2ecf20Sopenharmony_ci	dont_generate_debug_code
15678c2ecf20Sopenharmony_ci}
15688c2ecf20Sopenharmony_ci
15698c2ecf20Sopenharmony_ci/*
15708c2ecf20Sopenharmony_ci * SCSI RAM BIST0
15718c2ecf20Sopenharmony_ci */
15728c2ecf20Sopenharmony_ciregister SCSBIST0 {
15738c2ecf20Sopenharmony_ci	address			0x039
15748c2ecf20Sopenharmony_ci	access_mode	RW
15758c2ecf20Sopenharmony_ci	modes		M_CFG
15768c2ecf20Sopenharmony_ci	field	GSBISTERR	0x40
15778c2ecf20Sopenharmony_ci	field	GSBISTDONE	0x20
15788c2ecf20Sopenharmony_ci	field	GSBISTRUN	0x10
15798c2ecf20Sopenharmony_ci	field	OSBISTERR	0x04
15808c2ecf20Sopenharmony_ci	field	OSBISTDONE	0x02
15818c2ecf20Sopenharmony_ci	field	OSBISTRUN	0x01
15828c2ecf20Sopenharmony_ci}
15838c2ecf20Sopenharmony_ci
15848c2ecf20Sopenharmony_ci/*
15858c2ecf20Sopenharmony_ci * SCSI Sequence Control0
15868c2ecf20Sopenharmony_ci */
15878c2ecf20Sopenharmony_ciregister SCSISEQ0 {
15888c2ecf20Sopenharmony_ci	address			0x03A
15898c2ecf20Sopenharmony_ci	access_mode	RW
15908c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
15918c2ecf20Sopenharmony_ci	field	TEMODEO		0x80
15928c2ecf20Sopenharmony_ci	field	ENSELO		0x40
15938c2ecf20Sopenharmony_ci	field	ENARBO		0x20
15948c2ecf20Sopenharmony_ci	field	FORCEBUSFREE	0x10
15958c2ecf20Sopenharmony_ci	field	SCSIRSTO	0x01
15968c2ecf20Sopenharmony_ci}
15978c2ecf20Sopenharmony_ci
15988c2ecf20Sopenharmony_ci/*
15998c2ecf20Sopenharmony_ci * SCSI RAM BIST 1
16008c2ecf20Sopenharmony_ci */
16018c2ecf20Sopenharmony_ciregister SCSBIST1 {
16028c2ecf20Sopenharmony_ci	address			0x03A
16038c2ecf20Sopenharmony_ci	access_mode	RW
16048c2ecf20Sopenharmony_ci	modes		M_CFG
16058c2ecf20Sopenharmony_ci	field	NTBISTERR	0x04
16068c2ecf20Sopenharmony_ci	field	NTBISTDONE	0x02
16078c2ecf20Sopenharmony_ci	field	NTBISTRUN	0x01
16088c2ecf20Sopenharmony_ci}
16098c2ecf20Sopenharmony_ci
16108c2ecf20Sopenharmony_ci/*
16118c2ecf20Sopenharmony_ci * SCSI Sequence Control 1
16128c2ecf20Sopenharmony_ci */
16138c2ecf20Sopenharmony_ciregister SCSISEQ1 {
16148c2ecf20Sopenharmony_ci	address			0x03B
16158c2ecf20Sopenharmony_ci	access_mode	RW
16168c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
16178c2ecf20Sopenharmony_ci	count		8
16188c2ecf20Sopenharmony_ci	field	MANUALCTL	0x40
16198c2ecf20Sopenharmony_ci	field	ENSELI		0x20
16208c2ecf20Sopenharmony_ci	field	ENRSELI		0x10
16218c2ecf20Sopenharmony_ci	field	MANUALP		0x0C
16228c2ecf20Sopenharmony_ci	field	ENAUTOATNP	0x02
16238c2ecf20Sopenharmony_ci	field	ALTSTIM		0x01
16248c2ecf20Sopenharmony_ci}
16258c2ecf20Sopenharmony_ci
16268c2ecf20Sopenharmony_ci/*
16278c2ecf20Sopenharmony_ci * SCSI Transfer Control 0
16288c2ecf20Sopenharmony_ci */
16298c2ecf20Sopenharmony_ciregister SXFRCTL0 {
16308c2ecf20Sopenharmony_ci	address			0x03C
16318c2ecf20Sopenharmony_ci	access_mode	RW
16328c2ecf20Sopenharmony_ci	modes		M_SCSI
16338c2ecf20Sopenharmony_ci	field	DFON		0x80
16348c2ecf20Sopenharmony_ci	field	DFPEXP		0x40
16358c2ecf20Sopenharmony_ci	field	BIOSCANCELEN	0x10
16368c2ecf20Sopenharmony_ci	field	SPIOEN		0x08
16378c2ecf20Sopenharmony_ci	dont_generate_debug_code
16388c2ecf20Sopenharmony_ci}
16398c2ecf20Sopenharmony_ci
16408c2ecf20Sopenharmony_ci/*
16418c2ecf20Sopenharmony_ci * SCSI Transfer Control 1
16428c2ecf20Sopenharmony_ci */
16438c2ecf20Sopenharmony_ciregister SXFRCTL1 {
16448c2ecf20Sopenharmony_ci	address			0x03D
16458c2ecf20Sopenharmony_ci	access_mode	RW
16468c2ecf20Sopenharmony_ci	modes		M_SCSI
16478c2ecf20Sopenharmony_ci	field	BITBUCKET	0x80
16488c2ecf20Sopenharmony_ci	field	ENSACHK		0x40
16498c2ecf20Sopenharmony_ci	field	ENSPCHK		0x20
16508c2ecf20Sopenharmony_ci	field	STIMESEL	0x18
16518c2ecf20Sopenharmony_ci	field	ENSTIMER	0x04
16528c2ecf20Sopenharmony_ci	field	ACTNEGEN	0x02
16538c2ecf20Sopenharmony_ci	field	STPWEN		0x01
16548c2ecf20Sopenharmony_ci	dont_generate_debug_code
16558c2ecf20Sopenharmony_ci}
16568c2ecf20Sopenharmony_ci
16578c2ecf20Sopenharmony_ci/*
16588c2ecf20Sopenharmony_ci * SCSI Transfer Control 2
16598c2ecf20Sopenharmony_ci */
16608c2ecf20Sopenharmony_ciregister SXFRCTL2 {
16618c2ecf20Sopenharmony_ci	address			0x03E
16628c2ecf20Sopenharmony_ci	access_mode	RW
16638c2ecf20Sopenharmony_ci	modes		M_SCSI
16648c2ecf20Sopenharmony_ci	field	AUTORSTDIS	0x10
16658c2ecf20Sopenharmony_ci	field	CMDDMAEN	0x08
16668c2ecf20Sopenharmony_ci	field	ASU		0x07
16678c2ecf20Sopenharmony_ci}
16688c2ecf20Sopenharmony_ci
16698c2ecf20Sopenharmony_ci/*
16708c2ecf20Sopenharmony_ci * SCSI Bus Initiator IDs
16718c2ecf20Sopenharmony_ci * Bitmask of observed initiators on the bus.
16728c2ecf20Sopenharmony_ci */
16738c2ecf20Sopenharmony_ciregister BUSINITID {
16748c2ecf20Sopenharmony_ci	address			0x03C
16758c2ecf20Sopenharmony_ci	access_mode	RW
16768c2ecf20Sopenharmony_ci	modes		M_CFG
16778c2ecf20Sopenharmony_ci	size		2
16788c2ecf20Sopenharmony_ci}
16798c2ecf20Sopenharmony_ci
16808c2ecf20Sopenharmony_ci/*
16818c2ecf20Sopenharmony_ci * Data Length Counters
16828c2ecf20Sopenharmony_ci * Packet byte counter.
16838c2ecf20Sopenharmony_ci */
16848c2ecf20Sopenharmony_ciregister DLCOUNT {
16858c2ecf20Sopenharmony_ci	address			0x03C
16868c2ecf20Sopenharmony_ci	access_mode	RW
16878c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
16888c2ecf20Sopenharmony_ci	size		3
16898c2ecf20Sopenharmony_ci}
16908c2ecf20Sopenharmony_ci
16918c2ecf20Sopenharmony_ci/*
16928c2ecf20Sopenharmony_ci * Data FIFO Status
16938c2ecf20Sopenharmony_ci */
16948c2ecf20Sopenharmony_ciregister DFFSTAT {
16958c2ecf20Sopenharmony_ci	address			0x03F
16968c2ecf20Sopenharmony_ci	access_mode	RW
16978c2ecf20Sopenharmony_ci	modes		M_SCSI
16988c2ecf20Sopenharmony_ci	field	FIFO1FREE	0x20
16998c2ecf20Sopenharmony_ci	field	FIFO0FREE	0x10
17008c2ecf20Sopenharmony_ci	/*
17018c2ecf20Sopenharmony_ci	 * On the B, this enum only works
17028c2ecf20Sopenharmony_ci	 * in the read direction.  For writes,
17038c2ecf20Sopenharmony_ci	 * you must use the B version of the
17048c2ecf20Sopenharmony_ci	 * CURRFIFO_0 definition which is defined
17058c2ecf20Sopenharmony_ci	 * as a constant outside of this register
17068c2ecf20Sopenharmony_ci	 * definition to avoid confusing the
17078c2ecf20Sopenharmony_ci	 * register pretty printing code.
17088c2ecf20Sopenharmony_ci	 */
17098c2ecf20Sopenharmony_ci	enum	CURRFIFO	0x03 {
17108c2ecf20Sopenharmony_ci		CURRFIFO_0,
17118c2ecf20Sopenharmony_ci		CURRFIFO_1,
17128c2ecf20Sopenharmony_ci		CURRFIFO_NONE	0x3
17138c2ecf20Sopenharmony_ci	}
17148c2ecf20Sopenharmony_ci}
17158c2ecf20Sopenharmony_ci
17168c2ecf20Sopenharmony_ciconst B_CURRFIFO_0 0x2
17178c2ecf20Sopenharmony_ci
17188c2ecf20Sopenharmony_ci/*
17198c2ecf20Sopenharmony_ci * SCSI Bus Target IDs
17208c2ecf20Sopenharmony_ci * Bitmask of observed targets on the bus.
17218c2ecf20Sopenharmony_ci */
17228c2ecf20Sopenharmony_ciregister BUSTARGID {
17238c2ecf20Sopenharmony_ci	address			0x03E
17248c2ecf20Sopenharmony_ci	access_mode	RW
17258c2ecf20Sopenharmony_ci	modes		M_CFG
17268c2ecf20Sopenharmony_ci	size		2
17278c2ecf20Sopenharmony_ci}
17288c2ecf20Sopenharmony_ci
17298c2ecf20Sopenharmony_ci/*
17308c2ecf20Sopenharmony_ci * SCSI Control Signal Out
17318c2ecf20Sopenharmony_ci */
17328c2ecf20Sopenharmony_ciregister SCSISIGO {
17338c2ecf20Sopenharmony_ci	address			0x040
17348c2ecf20Sopenharmony_ci	access_mode	RW
17358c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
17368c2ecf20Sopenharmony_ci	field	CDO		0x80
17378c2ecf20Sopenharmony_ci	field	IOO		0x40
17388c2ecf20Sopenharmony_ci	field	MSGO		0x20
17398c2ecf20Sopenharmony_ci	field	ATNO		0x10
17408c2ecf20Sopenharmony_ci	field	SELO		0x08
17418c2ecf20Sopenharmony_ci	field	BSYO		0x04
17428c2ecf20Sopenharmony_ci	field	REQO		0x02
17438c2ecf20Sopenharmony_ci	field	ACKO		0x01
17448c2ecf20Sopenharmony_ci/*
17458c2ecf20Sopenharmony_ci * Possible phases to write into SCSISIG0
17468c2ecf20Sopenharmony_ci */
17478c2ecf20Sopenharmony_ci	enum	PHASE_MASK  CDO|IOO|MSGO {
17488c2ecf20Sopenharmony_ci		P_DATAOUT	0x0,
17498c2ecf20Sopenharmony_ci		P_DATAIN	IOO,
17508c2ecf20Sopenharmony_ci		P_DATAOUT_DT	P_DATAOUT|MSGO,
17518c2ecf20Sopenharmony_ci		P_DATAIN_DT	P_DATAIN|MSGO,
17528c2ecf20Sopenharmony_ci		P_COMMAND	CDO,
17538c2ecf20Sopenharmony_ci		P_MESGOUT	CDO|MSGO,
17548c2ecf20Sopenharmony_ci		P_STATUS	CDO|IOO,
17558c2ecf20Sopenharmony_ci		P_MESGIN	CDO|IOO|MSGO
17568c2ecf20Sopenharmony_ci	}
17578c2ecf20Sopenharmony_ci	dont_generate_debug_code
17588c2ecf20Sopenharmony_ci}
17598c2ecf20Sopenharmony_ci
17608c2ecf20Sopenharmony_ci/*
17618c2ecf20Sopenharmony_ci * SCSI Control Signal In
17628c2ecf20Sopenharmony_ci */
17638c2ecf20Sopenharmony_ciregister SCSISIGI {
17648c2ecf20Sopenharmony_ci	address			0x041
17658c2ecf20Sopenharmony_ci	access_mode	RO
17668c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
17678c2ecf20Sopenharmony_ci	field	CDI		0x80
17688c2ecf20Sopenharmony_ci	field	IOI		0x40
17698c2ecf20Sopenharmony_ci	field	MSGI		0x20
17708c2ecf20Sopenharmony_ci	field	ATNI		0x10
17718c2ecf20Sopenharmony_ci	field	SELI		0x08
17728c2ecf20Sopenharmony_ci	field	BSYI		0x04
17738c2ecf20Sopenharmony_ci	field	REQI		0x02
17748c2ecf20Sopenharmony_ci	field	ACKI		0x01
17758c2ecf20Sopenharmony_ci/*
17768c2ecf20Sopenharmony_ci * Possible phases in SCSISIGI
17778c2ecf20Sopenharmony_ci */
17788c2ecf20Sopenharmony_ci	enum	PHASE_MASK  CDO|IOO|MSGO {
17798c2ecf20Sopenharmony_ci		P_DATAOUT	0x0,
17808c2ecf20Sopenharmony_ci		P_DATAIN	IOO,
17818c2ecf20Sopenharmony_ci		P_DATAOUT_DT	P_DATAOUT|MSGO,
17828c2ecf20Sopenharmony_ci		P_DATAIN_DT	P_DATAIN|MSGO,
17838c2ecf20Sopenharmony_ci		P_COMMAND	CDO,
17848c2ecf20Sopenharmony_ci		P_MESGOUT	CDO|MSGO,
17858c2ecf20Sopenharmony_ci		P_STATUS	CDO|IOO,
17868c2ecf20Sopenharmony_ci		P_MESGIN	CDO|IOO|MSGO
17878c2ecf20Sopenharmony_ci	}
17888c2ecf20Sopenharmony_ci}
17898c2ecf20Sopenharmony_ci
17908c2ecf20Sopenharmony_ci/*
17918c2ecf20Sopenharmony_ci * Multiple Target IDs
17928c2ecf20Sopenharmony_ci * Bitmask of ids to respond as a target.
17938c2ecf20Sopenharmony_ci */
17948c2ecf20Sopenharmony_ciregister MULTARGID {
17958c2ecf20Sopenharmony_ci	address			0x040
17968c2ecf20Sopenharmony_ci	access_mode	RW
17978c2ecf20Sopenharmony_ci	modes		M_CFG
17988c2ecf20Sopenharmony_ci	size		2
17998c2ecf20Sopenharmony_ci	count		2
18008c2ecf20Sopenharmony_ci	dont_generate_debug_code
18018c2ecf20Sopenharmony_ci}
18028c2ecf20Sopenharmony_ci
18038c2ecf20Sopenharmony_ci/*
18048c2ecf20Sopenharmony_ci * SCSI Phase
18058c2ecf20Sopenharmony_ci */
18068c2ecf20Sopenharmony_ciregister SCSIPHASE {
18078c2ecf20Sopenharmony_ci	address			0x042
18088c2ecf20Sopenharmony_ci	access_mode	RO
18098c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
18108c2ecf20Sopenharmony_ci	field	STATUS_PHASE	0x20
18118c2ecf20Sopenharmony_ci	field	COMMAND_PHASE	0x10
18128c2ecf20Sopenharmony_ci	field	MSG_IN_PHASE	0x08
18138c2ecf20Sopenharmony_ci	field	MSG_OUT_PHASE	0x04
18148c2ecf20Sopenharmony_ci	field	DATA_PHASE_MASK	0x03 {
18158c2ecf20Sopenharmony_ci		DATA_OUT_PHASE	0x01,
18168c2ecf20Sopenharmony_ci		DATA_IN_PHASE	0x02
18178c2ecf20Sopenharmony_ci	}
18188c2ecf20Sopenharmony_ci}
18198c2ecf20Sopenharmony_ci
18208c2ecf20Sopenharmony_ci/*
18218c2ecf20Sopenharmony_ci * SCSI Data 0 Image
18228c2ecf20Sopenharmony_ci */
18238c2ecf20Sopenharmony_ciregister SCSIDAT0_IMG {
18248c2ecf20Sopenharmony_ci	address			0x043
18258c2ecf20Sopenharmony_ci	access_mode	RW
18268c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
18278c2ecf20Sopenharmony_ci}
18288c2ecf20Sopenharmony_ci
18298c2ecf20Sopenharmony_ci/*
18308c2ecf20Sopenharmony_ci * SCSI Latched Data
18318c2ecf20Sopenharmony_ci */
18328c2ecf20Sopenharmony_ciregister SCSIDAT {
18338c2ecf20Sopenharmony_ci	address			0x044
18348c2ecf20Sopenharmony_ci	access_mode	RW
18358c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
18368c2ecf20Sopenharmony_ci	size		2
18378c2ecf20Sopenharmony_ci	dont_generate_debug_code
18388c2ecf20Sopenharmony_ci}
18398c2ecf20Sopenharmony_ci
18408c2ecf20Sopenharmony_ci/*
18418c2ecf20Sopenharmony_ci * SCSI Data Bus
18428c2ecf20Sopenharmony_ci */
18438c2ecf20Sopenharmony_ciregister SCSIBUS {
18448c2ecf20Sopenharmony_ci	address			0x046
18458c2ecf20Sopenharmony_ci	access_mode	RW
18468c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
18478c2ecf20Sopenharmony_ci	size		2
18488c2ecf20Sopenharmony_ci}
18498c2ecf20Sopenharmony_ci
18508c2ecf20Sopenharmony_ci/*
18518c2ecf20Sopenharmony_ci * Target ID In
18528c2ecf20Sopenharmony_ci */
18538c2ecf20Sopenharmony_ciregister TARGIDIN {
18548c2ecf20Sopenharmony_ci	address			0x048
18558c2ecf20Sopenharmony_ci	access_mode	RO
18568c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
18578c2ecf20Sopenharmony_ci	count		2
18588c2ecf20Sopenharmony_ci	field	CLKOUT		0x80
18598c2ecf20Sopenharmony_ci	field	TARGID		0x0F
18608c2ecf20Sopenharmony_ci	dont_generate_debug_code
18618c2ecf20Sopenharmony_ci}
18628c2ecf20Sopenharmony_ci
18638c2ecf20Sopenharmony_ci/*
18648c2ecf20Sopenharmony_ci * Selection/Reselection ID
18658c2ecf20Sopenharmony_ci * Upper four bits are the device id.  The ONEBIT is set when the re/selecting
18668c2ecf20Sopenharmony_ci * device did not set its own ID.
18678c2ecf20Sopenharmony_ci */
18688c2ecf20Sopenharmony_ciregister SELID {
18698c2ecf20Sopenharmony_ci	address			0x049
18708c2ecf20Sopenharmony_ci	access_mode	RW
18718c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
18728c2ecf20Sopenharmony_ci	field	SELID_MASK	0xf0
18738c2ecf20Sopenharmony_ci	field	ONEBIT		0x08
18748c2ecf20Sopenharmony_ci}
18758c2ecf20Sopenharmony_ci
18768c2ecf20Sopenharmony_ci/*
18778c2ecf20Sopenharmony_ci * SCSI Block Control
18788c2ecf20Sopenharmony_ci * Controls Bus type and channel selection.  SELWIDE allows for the
18798c2ecf20Sopenharmony_ci * coexistence of 8bit and 16bit devices on a wide bus.
18808c2ecf20Sopenharmony_ci */
18818c2ecf20Sopenharmony_ciregister SBLKCTL {
18828c2ecf20Sopenharmony_ci	address			0x04A
18838c2ecf20Sopenharmony_ci	access_mode	RW
18848c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
18858c2ecf20Sopenharmony_ci	field	DIAGLEDEN	0x80
18868c2ecf20Sopenharmony_ci	field	DIAGLEDON	0x40
18878c2ecf20Sopenharmony_ci	field	ENAB40		0x08	/* LVD transceiver active */
18888c2ecf20Sopenharmony_ci	field	ENAB20		0x04	/* SE/HVD transceiver active */
18898c2ecf20Sopenharmony_ci	field	SELWIDE		0x02
18908c2ecf20Sopenharmony_ci	dont_generate_debug_code
18918c2ecf20Sopenharmony_ci}
18928c2ecf20Sopenharmony_ci
18938c2ecf20Sopenharmony_ci/*
18948c2ecf20Sopenharmony_ci * Option Mode
18958c2ecf20Sopenharmony_ci */
18968c2ecf20Sopenharmony_ciregister OPTIONMODE {
18978c2ecf20Sopenharmony_ci	address			0x04A
18988c2ecf20Sopenharmony_ci	access_mode	RW
18998c2ecf20Sopenharmony_ci	modes		M_CFG
19008c2ecf20Sopenharmony_ci	count		4
19018c2ecf20Sopenharmony_ci	field	BIOSCANCTL		0x80
19028c2ecf20Sopenharmony_ci	field	AUTOACKEN		0x40
19038c2ecf20Sopenharmony_ci	field	BIASCANCTL		0x20
19048c2ecf20Sopenharmony_ci	field	BUSFREEREV		0x10
19058c2ecf20Sopenharmony_ci	field	ENDGFORMCHK		0x04
19068c2ecf20Sopenharmony_ci	field	AUTO_MSGOUT_DE		0x02
19078c2ecf20Sopenharmony_ci	mask	OPTIONMODE_DEFAULTS	AUTO_MSGOUT_DE
19088c2ecf20Sopenharmony_ci	dont_generate_debug_code
19098c2ecf20Sopenharmony_ci}
19108c2ecf20Sopenharmony_ci
19118c2ecf20Sopenharmony_ci/*
19128c2ecf20Sopenharmony_ci * SCSI Status 0
19138c2ecf20Sopenharmony_ci */
19148c2ecf20Sopenharmony_ciregister SSTAT0	{
19158c2ecf20Sopenharmony_ci	address			0x04B
19168c2ecf20Sopenharmony_ci	access_mode	RO
19178c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
19188c2ecf20Sopenharmony_ci	field	TARGET		0x80	/* Board acting as target */
19198c2ecf20Sopenharmony_ci	field	SELDO		0x40	/* Selection Done */
19208c2ecf20Sopenharmony_ci	field	SELDI		0x20	/* Board has been selected */
19218c2ecf20Sopenharmony_ci	field	SELINGO		0x10	/* Selection In Progress */
19228c2ecf20Sopenharmony_ci	field	IOERR		0x08	/* LVD Tranceiver mode changed */
19238c2ecf20Sopenharmony_ci	field	OVERRUN		0x04	/* SCSI Offset overrun detected */
19248c2ecf20Sopenharmony_ci	field	SPIORDY		0x02	/* SCSI PIO Ready */
19258c2ecf20Sopenharmony_ci	field	ARBDO		0x01	/* Arbitration Done Out */
19268c2ecf20Sopenharmony_ci}
19278c2ecf20Sopenharmony_ci
19288c2ecf20Sopenharmony_ci/*
19298c2ecf20Sopenharmony_ci * Clear SCSI Interrupt 0
19308c2ecf20Sopenharmony_ci * Writing a 1 to a bit clears the associated SCSI Interrupt in SSTAT0.
19318c2ecf20Sopenharmony_ci */
19328c2ecf20Sopenharmony_ciregister CLRSINT0 {
19338c2ecf20Sopenharmony_ci	address			0x04B
19348c2ecf20Sopenharmony_ci	access_mode	WO
19358c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
19368c2ecf20Sopenharmony_ci	field	CLRSELDO	0x40
19378c2ecf20Sopenharmony_ci	field	CLRSELDI	0x20
19388c2ecf20Sopenharmony_ci	field	CLRSELINGO	0x10
19398c2ecf20Sopenharmony_ci	field	CLRIOERR	0x08
19408c2ecf20Sopenharmony_ci	field	CLROVERRUN	0x04
19418c2ecf20Sopenharmony_ci	field	CLRSPIORDY	0x02
19428c2ecf20Sopenharmony_ci	field	CLRARBDO	0x01
19438c2ecf20Sopenharmony_ci	dont_generate_debug_code
19448c2ecf20Sopenharmony_ci}
19458c2ecf20Sopenharmony_ci
19468c2ecf20Sopenharmony_ci/*
19478c2ecf20Sopenharmony_ci * SCSI Interrupt Mode 0
19488c2ecf20Sopenharmony_ci * Setting any bit will enable the corresponding function
19498c2ecf20Sopenharmony_ci * in SIMODE0 to interrupt via the IRQ pin.
19508c2ecf20Sopenharmony_ci */
19518c2ecf20Sopenharmony_ciregister SIMODE0 {
19528c2ecf20Sopenharmony_ci	address			0x04B
19538c2ecf20Sopenharmony_ci	access_mode	RW
19548c2ecf20Sopenharmony_ci	modes		M_CFG
19558c2ecf20Sopenharmony_ci	count		8
19568c2ecf20Sopenharmony_ci	field	ENSELDO		0x40
19578c2ecf20Sopenharmony_ci	field	ENSELDI		0x20
19588c2ecf20Sopenharmony_ci	field	ENSELINGO	0x10
19598c2ecf20Sopenharmony_ci	field	ENIOERR		0x08
19608c2ecf20Sopenharmony_ci	field	ENOVERRUN	0x04
19618c2ecf20Sopenharmony_ci	field	ENSPIORDY	0x02
19628c2ecf20Sopenharmony_ci	field	ENARBDO		0x01
19638c2ecf20Sopenharmony_ci}
19648c2ecf20Sopenharmony_ci
19658c2ecf20Sopenharmony_ci/*
19668c2ecf20Sopenharmony_ci * SCSI Status 1
19678c2ecf20Sopenharmony_ci */
19688c2ecf20Sopenharmony_ciregister SSTAT1 {
19698c2ecf20Sopenharmony_ci	address			0x04C
19708c2ecf20Sopenharmony_ci	access_mode	RO
19718c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
19728c2ecf20Sopenharmony_ci	field	SELTO		0x80
19738c2ecf20Sopenharmony_ci	field	ATNTARG 	0x40
19748c2ecf20Sopenharmony_ci	field	SCSIRSTI	0x20
19758c2ecf20Sopenharmony_ci	field	PHASEMIS	0x10
19768c2ecf20Sopenharmony_ci	field	BUSFREE		0x08
19778c2ecf20Sopenharmony_ci	field	SCSIPERR	0x04
19788c2ecf20Sopenharmony_ci	field	STRB2FAST	0x02
19798c2ecf20Sopenharmony_ci	field	REQINIT		0x01
19808c2ecf20Sopenharmony_ci}
19818c2ecf20Sopenharmony_ci
19828c2ecf20Sopenharmony_ci/*
19838c2ecf20Sopenharmony_ci * Clear SCSI Interrupt 1
19848c2ecf20Sopenharmony_ci * Writing a 1 to a bit clears the associated SCSI Interrupt in SSTAT1.
19858c2ecf20Sopenharmony_ci */
19868c2ecf20Sopenharmony_ciregister CLRSINT1 {
19878c2ecf20Sopenharmony_ci	address			0x04C
19888c2ecf20Sopenharmony_ci	access_mode	WO
19898c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
19908c2ecf20Sopenharmony_ci	field	CLRSELTIMEO	0x80
19918c2ecf20Sopenharmony_ci	field	CLRATNO		0x40
19928c2ecf20Sopenharmony_ci	field	CLRSCSIRSTI	0x20
19938c2ecf20Sopenharmony_ci	field	CLRBUSFREE	0x08
19948c2ecf20Sopenharmony_ci	field	CLRSCSIPERR	0x04
19958c2ecf20Sopenharmony_ci	field	CLRSTRB2FAST	0x02
19968c2ecf20Sopenharmony_ci	field	CLRREQINIT	0x01
19978c2ecf20Sopenharmony_ci	dont_generate_debug_code
19988c2ecf20Sopenharmony_ci}
19998c2ecf20Sopenharmony_ci
20008c2ecf20Sopenharmony_ci/*
20018c2ecf20Sopenharmony_ci * SCSI Status 2
20028c2ecf20Sopenharmony_ci */
20038c2ecf20Sopenharmony_ciregister SSTAT2 {
20048c2ecf20Sopenharmony_ci	address			0x04d
20058c2ecf20Sopenharmony_ci	access_mode	RO
20068c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
20078c2ecf20Sopenharmony_ci	field	BUSFREETIME	0xc0 {
20088c2ecf20Sopenharmony_ci		BUSFREE_LQO	0x40,
20098c2ecf20Sopenharmony_ci		BUSFREE_DFF0	0x80,
20108c2ecf20Sopenharmony_ci		BUSFREE_DFF1	0xC0
20118c2ecf20Sopenharmony_ci	}
20128c2ecf20Sopenharmony_ci	field	NONPACKREQ	0x20
20138c2ecf20Sopenharmony_ci	field	EXP_ACTIVE	0x10	/* SCSI Expander Active */
20148c2ecf20Sopenharmony_ci	field	BSYX		0x08	/* Busy Expander */
20158c2ecf20Sopenharmony_ci	field	WIDE_RES	0x04	/* Modes 0 and 1 only */
20168c2ecf20Sopenharmony_ci	field	SDONE		0x02	/* Modes 0 and 1 only */
20178c2ecf20Sopenharmony_ci	field	DMADONE		0x01	/* Modes 0 and 1 only */
20188c2ecf20Sopenharmony_ci}
20198c2ecf20Sopenharmony_ci
20208c2ecf20Sopenharmony_ci/*
20218c2ecf20Sopenharmony_ci * Clear SCSI Interrupt 2
20228c2ecf20Sopenharmony_ci */
20238c2ecf20Sopenharmony_ciregister CLRSINT2 {
20248c2ecf20Sopenharmony_ci	address			0x04D
20258c2ecf20Sopenharmony_ci	access_mode	WO
20268c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
20278c2ecf20Sopenharmony_ci	field	CLRNONPACKREQ	0x20
20288c2ecf20Sopenharmony_ci	field	CLRWIDE_RES	0x04	/* Modes 0 and 1 only */
20298c2ecf20Sopenharmony_ci	field	CLRSDONE	0x02	/* Modes 0 and 1 only */
20308c2ecf20Sopenharmony_ci	field	CLRDMADONE	0x01	/* Modes 0 and 1 only */
20318c2ecf20Sopenharmony_ci	dont_generate_debug_code
20328c2ecf20Sopenharmony_ci}
20338c2ecf20Sopenharmony_ci
20348c2ecf20Sopenharmony_ci/*
20358c2ecf20Sopenharmony_ci * SCSI Interrupt Mode 2
20368c2ecf20Sopenharmony_ci */
20378c2ecf20Sopenharmony_ciregister SIMODE2 {
20388c2ecf20Sopenharmony_ci	address			0x04D
20398c2ecf20Sopenharmony_ci	access_mode	RW
20408c2ecf20Sopenharmony_ci	modes		M_CFG
20418c2ecf20Sopenharmony_ci	field	ENWIDE_RES	0x04
20428c2ecf20Sopenharmony_ci	field	ENSDONE		0x02
20438c2ecf20Sopenharmony_ci	field	ENDMADONE	0x01
20448c2ecf20Sopenharmony_ci}
20458c2ecf20Sopenharmony_ci
20468c2ecf20Sopenharmony_ci/*
20478c2ecf20Sopenharmony_ci * Physical Error Diagnosis
20488c2ecf20Sopenharmony_ci */
20498c2ecf20Sopenharmony_ciregister PERRDIAG {
20508c2ecf20Sopenharmony_ci	address			0x04E
20518c2ecf20Sopenharmony_ci	access_mode	RO
20528c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
20538c2ecf20Sopenharmony_ci	count		3
20548c2ecf20Sopenharmony_ci	field	HIZERO		0x80
20558c2ecf20Sopenharmony_ci	field	HIPERR		0x40
20568c2ecf20Sopenharmony_ci	field	PREVPHASE	0x20
20578c2ecf20Sopenharmony_ci	field	PARITYERR	0x10
20588c2ecf20Sopenharmony_ci	field	AIPERR		0x08
20598c2ecf20Sopenharmony_ci	field	CRCERR		0x04
20608c2ecf20Sopenharmony_ci	field	DGFORMERR	0x02
20618c2ecf20Sopenharmony_ci	field	DTERR		0x01
20628c2ecf20Sopenharmony_ci}
20638c2ecf20Sopenharmony_ci
20648c2ecf20Sopenharmony_ci/*
20658c2ecf20Sopenharmony_ci * LQI Manager Current State
20668c2ecf20Sopenharmony_ci */
20678c2ecf20Sopenharmony_ciregister LQISTATE {
20688c2ecf20Sopenharmony_ci	address			0x04E
20698c2ecf20Sopenharmony_ci	access_mode	RO
20708c2ecf20Sopenharmony_ci	modes		M_CFG
20718c2ecf20Sopenharmony_ci	count		6
20728c2ecf20Sopenharmony_ci	dont_generate_debug_code
20738c2ecf20Sopenharmony_ci}
20748c2ecf20Sopenharmony_ci
20758c2ecf20Sopenharmony_ci/*
20768c2ecf20Sopenharmony_ci * SCSI Offset Count
20778c2ecf20Sopenharmony_ci */
20788c2ecf20Sopenharmony_ciregister SOFFCNT {
20798c2ecf20Sopenharmony_ci	address			0x04F
20808c2ecf20Sopenharmony_ci	access_mode	RO
20818c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
20828c2ecf20Sopenharmony_ci	count		1
20838c2ecf20Sopenharmony_ci}
20848c2ecf20Sopenharmony_ci
20858c2ecf20Sopenharmony_ci/*
20868c2ecf20Sopenharmony_ci * LQO Manager Current State
20878c2ecf20Sopenharmony_ci */
20888c2ecf20Sopenharmony_ciregister LQOSTATE {
20898c2ecf20Sopenharmony_ci	address			0x04F
20908c2ecf20Sopenharmony_ci	access_mode	RO
20918c2ecf20Sopenharmony_ci	modes		M_CFG
20928c2ecf20Sopenharmony_ci	count		2
20938c2ecf20Sopenharmony_ci	dont_generate_debug_code
20948c2ecf20Sopenharmony_ci}
20958c2ecf20Sopenharmony_ci
20968c2ecf20Sopenharmony_ci/*
20978c2ecf20Sopenharmony_ci * LQI Manager Status
20988c2ecf20Sopenharmony_ci */
20998c2ecf20Sopenharmony_ciregister LQISTAT0 {
21008c2ecf20Sopenharmony_ci	address			0x050
21018c2ecf20Sopenharmony_ci	access_mode	RO
21028c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
21038c2ecf20Sopenharmony_ci	count		2
21048c2ecf20Sopenharmony_ci	field	LQIATNQAS	0x20
21058c2ecf20Sopenharmony_ci	field	LQICRCT1	0x10
21068c2ecf20Sopenharmony_ci	field	LQICRCT2	0x08
21078c2ecf20Sopenharmony_ci	field	LQIBADLQT	0x04
21088c2ecf20Sopenharmony_ci	field	LQIATNLQ	0x02
21098c2ecf20Sopenharmony_ci	field	LQIATNCMD	0x01
21108c2ecf20Sopenharmony_ci}
21118c2ecf20Sopenharmony_ci
21128c2ecf20Sopenharmony_ci/*
21138c2ecf20Sopenharmony_ci * Clear LQI Interrupts 0
21148c2ecf20Sopenharmony_ci */
21158c2ecf20Sopenharmony_ciregister CLRLQIINT0 {
21168c2ecf20Sopenharmony_ci	address			0x050
21178c2ecf20Sopenharmony_ci	access_mode	WO
21188c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
21198c2ecf20Sopenharmony_ci	count		1
21208c2ecf20Sopenharmony_ci	field	CLRLQIATNQAS	0x20
21218c2ecf20Sopenharmony_ci	field	CLRLQICRCT1	0x10
21228c2ecf20Sopenharmony_ci	field	CLRLQICRCT2	0x08
21238c2ecf20Sopenharmony_ci	field	CLRLQIBADLQT	0x04
21248c2ecf20Sopenharmony_ci	field	CLRLQIATNLQ	0x02
21258c2ecf20Sopenharmony_ci	field	CLRLQIATNCMD	0x01
21268c2ecf20Sopenharmony_ci	dont_generate_debug_code
21278c2ecf20Sopenharmony_ci}
21288c2ecf20Sopenharmony_ci
21298c2ecf20Sopenharmony_ci/*
21308c2ecf20Sopenharmony_ci * LQI Manager Interrupt Mode 0
21318c2ecf20Sopenharmony_ci */
21328c2ecf20Sopenharmony_ciregister LQIMODE0 {
21338c2ecf20Sopenharmony_ci	address			0x050
21348c2ecf20Sopenharmony_ci	access_mode	RW
21358c2ecf20Sopenharmony_ci	modes		M_CFG
21368c2ecf20Sopenharmony_ci	count		3
21378c2ecf20Sopenharmony_ci	field	ENLQIATNQASK	0x20
21388c2ecf20Sopenharmony_ci	field	ENLQICRCT1	0x10
21398c2ecf20Sopenharmony_ci	field	ENLQICRCT2	0x08
21408c2ecf20Sopenharmony_ci	field	ENLQIBADLQT	0x04
21418c2ecf20Sopenharmony_ci	field	ENLQIATNLQ	0x02
21428c2ecf20Sopenharmony_ci	field	ENLQIATNCMD	0x01
21438c2ecf20Sopenharmony_ci	dont_generate_debug_code
21448c2ecf20Sopenharmony_ci}
21458c2ecf20Sopenharmony_ci
21468c2ecf20Sopenharmony_ci/*
21478c2ecf20Sopenharmony_ci * LQI Manager Status 1
21488c2ecf20Sopenharmony_ci */
21498c2ecf20Sopenharmony_ciregister LQISTAT1 {
21508c2ecf20Sopenharmony_ci	address			0x051
21518c2ecf20Sopenharmony_ci	access_mode	RO
21528c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
21538c2ecf20Sopenharmony_ci	count		3
21548c2ecf20Sopenharmony_ci	field	LQIPHASE_LQ	0x80
21558c2ecf20Sopenharmony_ci	field	LQIPHASE_NLQ	0x40
21568c2ecf20Sopenharmony_ci	field	LQIABORT	0x20
21578c2ecf20Sopenharmony_ci	field	LQICRCI_LQ	0x10
21588c2ecf20Sopenharmony_ci	field	LQICRCI_NLQ	0x08
21598c2ecf20Sopenharmony_ci	field	LQIBADLQI	0x04
21608c2ecf20Sopenharmony_ci	field	LQIOVERI_LQ	0x02
21618c2ecf20Sopenharmony_ci	field	LQIOVERI_NLQ	0x01
21628c2ecf20Sopenharmony_ci}
21638c2ecf20Sopenharmony_ci
21648c2ecf20Sopenharmony_ci/*
21658c2ecf20Sopenharmony_ci * Clear LQI Manager Interrupts1
21668c2ecf20Sopenharmony_ci */
21678c2ecf20Sopenharmony_ciregister CLRLQIINT1 {
21688c2ecf20Sopenharmony_ci	address			0x051
21698c2ecf20Sopenharmony_ci	access_mode	WO
21708c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
21718c2ecf20Sopenharmony_ci	count		4
21728c2ecf20Sopenharmony_ci	field	CLRLQIPHASE_LQ	0x80
21738c2ecf20Sopenharmony_ci	field	CLRLQIPHASE_NLQ	0x40
21748c2ecf20Sopenharmony_ci	field	CLRLIQABORT	0x20
21758c2ecf20Sopenharmony_ci	field	CLRLQICRCI_LQ	0x10
21768c2ecf20Sopenharmony_ci	field	CLRLQICRCI_NLQ	0x08
21778c2ecf20Sopenharmony_ci	field	CLRLQIBADLQI	0x04
21788c2ecf20Sopenharmony_ci	field	CLRLQIOVERI_LQ	0x02
21798c2ecf20Sopenharmony_ci	field	CLRLQIOVERI_NLQ	0x01
21808c2ecf20Sopenharmony_ci	dont_generate_debug_code
21818c2ecf20Sopenharmony_ci}
21828c2ecf20Sopenharmony_ci
21838c2ecf20Sopenharmony_ci/*
21848c2ecf20Sopenharmony_ci * LQI Manager Interrupt Mode 1
21858c2ecf20Sopenharmony_ci */
21868c2ecf20Sopenharmony_ciregister LQIMODE1 {
21878c2ecf20Sopenharmony_ci	address			0x051
21888c2ecf20Sopenharmony_ci	access_mode	RW
21898c2ecf20Sopenharmony_ci	modes		M_CFG
21908c2ecf20Sopenharmony_ci	count		4
21918c2ecf20Sopenharmony_ci	field	ENLQIPHASE_LQ	0x80	/* LQIPHASE1 */
21928c2ecf20Sopenharmony_ci	field	ENLQIPHASE_NLQ	0x40	/* LQIPHASE2 */
21938c2ecf20Sopenharmony_ci	field	ENLIQABORT	0x20
21948c2ecf20Sopenharmony_ci	field	ENLQICRCI_LQ	0x10	/* LQICRCI1 */
21958c2ecf20Sopenharmony_ci	field	ENLQICRCI_NLQ	0x08	/* LQICRCI2 */
21968c2ecf20Sopenharmony_ci	field	ENLQIBADLQI	0x04
21978c2ecf20Sopenharmony_ci	field	ENLQIOVERI_LQ	0x02	/* LQIOVERI1 */
21988c2ecf20Sopenharmony_ci	field	ENLQIOVERI_NLQ	0x01	/* LQIOVERI2 */
21998c2ecf20Sopenharmony_ci	dont_generate_debug_code
22008c2ecf20Sopenharmony_ci}
22018c2ecf20Sopenharmony_ci
22028c2ecf20Sopenharmony_ci/*
22038c2ecf20Sopenharmony_ci * LQI Manager Status 2
22048c2ecf20Sopenharmony_ci */
22058c2ecf20Sopenharmony_ciregister LQISTAT2 {
22068c2ecf20Sopenharmony_ci	address			0x052
22078c2ecf20Sopenharmony_ci	access_mode	RO
22088c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
22098c2ecf20Sopenharmony_ci	field	PACKETIZED	0x80
22108c2ecf20Sopenharmony_ci	field	LQIPHASE_OUTPKT	0x40
22118c2ecf20Sopenharmony_ci	field	LQIWORKONLQ	0x20
22128c2ecf20Sopenharmony_ci	field	LQIWAITFIFO	0x10
22138c2ecf20Sopenharmony_ci	field	LQISTOPPKT	0x08
22148c2ecf20Sopenharmony_ci	field	LQISTOPLQ	0x04
22158c2ecf20Sopenharmony_ci	field	LQISTOPCMD	0x02
22168c2ecf20Sopenharmony_ci	field	LQIGSAVAIL	0x01
22178c2ecf20Sopenharmony_ci}
22188c2ecf20Sopenharmony_ci
22198c2ecf20Sopenharmony_ci/*
22208c2ecf20Sopenharmony_ci * SCSI Status 3
22218c2ecf20Sopenharmony_ci */
22228c2ecf20Sopenharmony_ciregister SSTAT3 {
22238c2ecf20Sopenharmony_ci	address			0x053
22248c2ecf20Sopenharmony_ci	access_mode	RO
22258c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
22268c2ecf20Sopenharmony_ci	count		3
22278c2ecf20Sopenharmony_ci	field	NTRAMPERR	0x02
22288c2ecf20Sopenharmony_ci	field	OSRAMPERR	0x01
22298c2ecf20Sopenharmony_ci}
22308c2ecf20Sopenharmony_ci
22318c2ecf20Sopenharmony_ci/*
22328c2ecf20Sopenharmony_ci * Clear SCSI Status 3
22338c2ecf20Sopenharmony_ci */
22348c2ecf20Sopenharmony_ciregister CLRSINT3 {
22358c2ecf20Sopenharmony_ci	address			0x053
22368c2ecf20Sopenharmony_ci	access_mode	WO
22378c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
22388c2ecf20Sopenharmony_ci	count		3
22398c2ecf20Sopenharmony_ci	field	CLRNTRAMPERR	0x02
22408c2ecf20Sopenharmony_ci	field	CLROSRAMPERR	0x01
22418c2ecf20Sopenharmony_ci	dont_generate_debug_code
22428c2ecf20Sopenharmony_ci}
22438c2ecf20Sopenharmony_ci
22448c2ecf20Sopenharmony_ci/*
22458c2ecf20Sopenharmony_ci * SCSI Interrupt Mode 3
22468c2ecf20Sopenharmony_ci */
22478c2ecf20Sopenharmony_ciregister SIMODE3 {
22488c2ecf20Sopenharmony_ci	address			0x053
22498c2ecf20Sopenharmony_ci	access_mode	RW
22508c2ecf20Sopenharmony_ci	modes		M_CFG
22518c2ecf20Sopenharmony_ci	count		4
22528c2ecf20Sopenharmony_ci	field	ENNTRAMPERR	0x02
22538c2ecf20Sopenharmony_ci	field	ENOSRAMPERR	0x01
22548c2ecf20Sopenharmony_ci	dont_generate_debug_code
22558c2ecf20Sopenharmony_ci}
22568c2ecf20Sopenharmony_ci
22578c2ecf20Sopenharmony_ci/*
22588c2ecf20Sopenharmony_ci * LQO Manager Status 0
22598c2ecf20Sopenharmony_ci */
22608c2ecf20Sopenharmony_ciregister LQOSTAT0 {
22618c2ecf20Sopenharmony_ci	address			0x054
22628c2ecf20Sopenharmony_ci	access_mode	RO
22638c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
22648c2ecf20Sopenharmony_ci	count		2
22658c2ecf20Sopenharmony_ci	field	LQOTARGSCBPERR	0x10
22668c2ecf20Sopenharmony_ci	field	LQOSTOPT2	0x08
22678c2ecf20Sopenharmony_ci	field	LQOATNLQ	0x04
22688c2ecf20Sopenharmony_ci	field	LQOATNPKT	0x02
22698c2ecf20Sopenharmony_ci	field	LQOTCRC		0x01
22708c2ecf20Sopenharmony_ci}
22718c2ecf20Sopenharmony_ci
22728c2ecf20Sopenharmony_ci/*
22738c2ecf20Sopenharmony_ci * Clear LQO Manager interrupt 0
22748c2ecf20Sopenharmony_ci */
22758c2ecf20Sopenharmony_ciregister CLRLQOINT0 {
22768c2ecf20Sopenharmony_ci	address			0x054
22778c2ecf20Sopenharmony_ci	access_mode	WO
22788c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
22798c2ecf20Sopenharmony_ci	count		3
22808c2ecf20Sopenharmony_ci	field	CLRLQOTARGSCBPERR	0x10
22818c2ecf20Sopenharmony_ci	field	CLRLQOSTOPT2		0x08
22828c2ecf20Sopenharmony_ci	field	CLRLQOATNLQ		0x04
22838c2ecf20Sopenharmony_ci	field	CLRLQOATNPKT		0x02
22848c2ecf20Sopenharmony_ci	field	CLRLQOTCRC		0x01
22858c2ecf20Sopenharmony_ci	dont_generate_debug_code
22868c2ecf20Sopenharmony_ci}
22878c2ecf20Sopenharmony_ci
22888c2ecf20Sopenharmony_ci/*
22898c2ecf20Sopenharmony_ci * LQO Manager Interrupt Mode 0
22908c2ecf20Sopenharmony_ci */
22918c2ecf20Sopenharmony_ciregister LQOMODE0 {
22928c2ecf20Sopenharmony_ci	address			0x054
22938c2ecf20Sopenharmony_ci	access_mode	RW
22948c2ecf20Sopenharmony_ci	modes		M_CFG
22958c2ecf20Sopenharmony_ci	count		4
22968c2ecf20Sopenharmony_ci	field	ENLQOTARGSCBPERR	0x10
22978c2ecf20Sopenharmony_ci	field	ENLQOSTOPT2		0x08
22988c2ecf20Sopenharmony_ci	field	ENLQOATNLQ		0x04
22998c2ecf20Sopenharmony_ci	field	ENLQOATNPKT		0x02
23008c2ecf20Sopenharmony_ci	field	ENLQOTCRC		0x01
23018c2ecf20Sopenharmony_ci	dont_generate_debug_code
23028c2ecf20Sopenharmony_ci}
23038c2ecf20Sopenharmony_ci
23048c2ecf20Sopenharmony_ci/*
23058c2ecf20Sopenharmony_ci * LQO Manager Status 1
23068c2ecf20Sopenharmony_ci */
23078c2ecf20Sopenharmony_ciregister LQOSTAT1 {
23088c2ecf20Sopenharmony_ci	address			0x055
23098c2ecf20Sopenharmony_ci	access_mode	RO
23108c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
23118c2ecf20Sopenharmony_ci	field	LQOINITSCBPERR	0x10
23128c2ecf20Sopenharmony_ci	field	LQOSTOPI2	0x08
23138c2ecf20Sopenharmony_ci	field	LQOBADQAS	0x04
23148c2ecf20Sopenharmony_ci	field	LQOBUSFREE	0x02
23158c2ecf20Sopenharmony_ci	field	LQOPHACHGINPKT	0x01
23168c2ecf20Sopenharmony_ci}
23178c2ecf20Sopenharmony_ci
23188c2ecf20Sopenharmony_ci/*
23198c2ecf20Sopenharmony_ci * Clear LOQ Interrupt 1
23208c2ecf20Sopenharmony_ci */
23218c2ecf20Sopenharmony_ciregister CLRLQOINT1 {
23228c2ecf20Sopenharmony_ci	address			0x055
23238c2ecf20Sopenharmony_ci	access_mode	WO
23248c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
23258c2ecf20Sopenharmony_ci	count		7
23268c2ecf20Sopenharmony_ci	field	CLRLQOINITSCBPERR	0x10
23278c2ecf20Sopenharmony_ci	field	CLRLQOSTOPI2		0x08
23288c2ecf20Sopenharmony_ci	field	CLRLQOBADQAS		0x04
23298c2ecf20Sopenharmony_ci	field	CLRLQOBUSFREE		0x02
23308c2ecf20Sopenharmony_ci	field	CLRLQOPHACHGINPKT	0x01
23318c2ecf20Sopenharmony_ci	dont_generate_debug_code
23328c2ecf20Sopenharmony_ci}
23338c2ecf20Sopenharmony_ci
23348c2ecf20Sopenharmony_ci/*
23358c2ecf20Sopenharmony_ci * LQO Manager Interrupt Mode 1
23368c2ecf20Sopenharmony_ci */
23378c2ecf20Sopenharmony_ciregister LQOMODE1 {
23388c2ecf20Sopenharmony_ci	address			0x055
23398c2ecf20Sopenharmony_ci	access_mode	RW
23408c2ecf20Sopenharmony_ci	modes		M_CFG
23418c2ecf20Sopenharmony_ci	count		4
23428c2ecf20Sopenharmony_ci	field	ENLQOINITSCBPERR	0x10
23438c2ecf20Sopenharmony_ci	field	ENLQOSTOPI2		0x08
23448c2ecf20Sopenharmony_ci	field	ENLQOBADQAS		0x04
23458c2ecf20Sopenharmony_ci	field	ENLQOBUSFREE		0x02
23468c2ecf20Sopenharmony_ci	field	ENLQOPHACHGINPKT	0x01
23478c2ecf20Sopenharmony_ci	dont_generate_debug_code
23488c2ecf20Sopenharmony_ci}
23498c2ecf20Sopenharmony_ci
23508c2ecf20Sopenharmony_ci/*
23518c2ecf20Sopenharmony_ci * LQO Manager Status 2
23528c2ecf20Sopenharmony_ci */
23538c2ecf20Sopenharmony_ciregister LQOSTAT2 {
23548c2ecf20Sopenharmony_ci	address			0x056
23558c2ecf20Sopenharmony_ci	access_mode	RO
23568c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
23578c2ecf20Sopenharmony_ci	field	LQOPKT		0xE0
23588c2ecf20Sopenharmony_ci	field	LQOWAITFIFO	0x10
23598c2ecf20Sopenharmony_ci	field	LQOPHACHGOUTPKT	0x02	/* outside of packet boundaries. */
23608c2ecf20Sopenharmony_ci	field	LQOSTOP0	0x01	/* Stopped after sending all packets */
23618c2ecf20Sopenharmony_ci}
23628c2ecf20Sopenharmony_ci
23638c2ecf20Sopenharmony_ci/*
23648c2ecf20Sopenharmony_ci * Output Synchronizer Space Count
23658c2ecf20Sopenharmony_ci */
23668c2ecf20Sopenharmony_ciregister OS_SPACE_CNT {
23678c2ecf20Sopenharmony_ci	address			0x056
23688c2ecf20Sopenharmony_ci	access_mode	RO
23698c2ecf20Sopenharmony_ci	modes		M_CFG
23708c2ecf20Sopenharmony_ci	count		2
23718c2ecf20Sopenharmony_ci	dont_generate_debug_code
23728c2ecf20Sopenharmony_ci}
23738c2ecf20Sopenharmony_ci
23748c2ecf20Sopenharmony_ci/*
23758c2ecf20Sopenharmony_ci * SCSI Interrupt Mode 1
23768c2ecf20Sopenharmony_ci * Setting any bit will enable the corresponding function
23778c2ecf20Sopenharmony_ci * in SIMODE1 to interrupt via the IRQ pin.
23788c2ecf20Sopenharmony_ci */
23798c2ecf20Sopenharmony_ciregister SIMODE1 {
23808c2ecf20Sopenharmony_ci	address			0x057
23818c2ecf20Sopenharmony_ci	access_mode	RW
23828c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
23838c2ecf20Sopenharmony_ci	field	ENSELTIMO	0x80
23848c2ecf20Sopenharmony_ci	field	ENATNTARG	0x40
23858c2ecf20Sopenharmony_ci	field	ENSCSIRST	0x20
23868c2ecf20Sopenharmony_ci	field	ENPHASEMIS	0x10
23878c2ecf20Sopenharmony_ci	field	ENBUSFREE	0x08
23888c2ecf20Sopenharmony_ci	field	ENSCSIPERR	0x04
23898c2ecf20Sopenharmony_ci	field	ENSTRB2FAST	0x02
23908c2ecf20Sopenharmony_ci	field	ENREQINIT	0x01
23918c2ecf20Sopenharmony_ci}
23928c2ecf20Sopenharmony_ci
23938c2ecf20Sopenharmony_ci/*
23948c2ecf20Sopenharmony_ci * Good Status FIFO
23958c2ecf20Sopenharmony_ci */
23968c2ecf20Sopenharmony_ciregister GSFIFO {
23978c2ecf20Sopenharmony_ci	address			0x058
23988c2ecf20Sopenharmony_ci	access_mode	RO
23998c2ecf20Sopenharmony_ci	size		2
24008c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_SCSI
24018c2ecf20Sopenharmony_ci	dont_generate_debug_code
24028c2ecf20Sopenharmony_ci}
24038c2ecf20Sopenharmony_ci
24048c2ecf20Sopenharmony_ci/*
24058c2ecf20Sopenharmony_ci * Data FIFO SCSI Transfer Control
24068c2ecf20Sopenharmony_ci */
24078c2ecf20Sopenharmony_ciregister DFFSXFRCTL {
24088c2ecf20Sopenharmony_ci	address			0x05A
24098c2ecf20Sopenharmony_ci	access_mode	RW
24108c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
24118c2ecf20Sopenharmony_ci	field	DFFBITBUCKET	0x08
24128c2ecf20Sopenharmony_ci	field	CLRSHCNT	0x04
24138c2ecf20Sopenharmony_ci	field	CLRCHN		0x02
24148c2ecf20Sopenharmony_ci	field	RSTCHN		0x01
24158c2ecf20Sopenharmony_ci}
24168c2ecf20Sopenharmony_ci
24178c2ecf20Sopenharmony_ci/*
24188c2ecf20Sopenharmony_ci * Next SCSI Control Block
24198c2ecf20Sopenharmony_ci */
24208c2ecf20Sopenharmony_ciregister NEXTSCB {
24218c2ecf20Sopenharmony_ci	address			0x05A
24228c2ecf20Sopenharmony_ci	access_mode	RW
24238c2ecf20Sopenharmony_ci	size		2
24248c2ecf20Sopenharmony_ci	modes		M_SCSI
24258c2ecf20Sopenharmony_ci	dont_generate_debug_code
24268c2ecf20Sopenharmony_ci}
24278c2ecf20Sopenharmony_ci
24288c2ecf20Sopenharmony_ci/*
24298c2ecf20Sopenharmony_ci * LQO SCSI Control
24308c2ecf20Sopenharmony_ci * (Rev B only.)
24318c2ecf20Sopenharmony_ci */
24328c2ecf20Sopenharmony_ciregister LQOSCSCTL {
24338c2ecf20Sopenharmony_ci	address			0x05A
24348c2ecf20Sopenharmony_ci	access_mode	RW
24358c2ecf20Sopenharmony_ci	size		1
24368c2ecf20Sopenharmony_ci	modes		M_CFG
24378c2ecf20Sopenharmony_ci	count		1
24388c2ecf20Sopenharmony_ci	field		LQOH2A_VERSION	0x80
24398c2ecf20Sopenharmony_ci	field		LQOBUSETDLY	0x40
24408c2ecf20Sopenharmony_ci	field		LQONOHOLDLACK	0x02
24418c2ecf20Sopenharmony_ci	field		LQONOCHKOVER	0x01
24428c2ecf20Sopenharmony_ci	dont_generate_debug_code
24438c2ecf20Sopenharmony_ci}
24448c2ecf20Sopenharmony_ci
24458c2ecf20Sopenharmony_ci/*
24468c2ecf20Sopenharmony_ci * SEQ Interrupts
24478c2ecf20Sopenharmony_ci */
24488c2ecf20Sopenharmony_ciregister SEQINTSRC {
24498c2ecf20Sopenharmony_ci	address			0x05B
24508c2ecf20Sopenharmony_ci	access_mode	RO
24518c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
24528c2ecf20Sopenharmony_ci	field	CTXTDONE	0x40
24538c2ecf20Sopenharmony_ci	field	SAVEPTRS	0x20
24548c2ecf20Sopenharmony_ci	field	CFG4DATA	0x10
24558c2ecf20Sopenharmony_ci	field	CFG4ISTAT	0x08
24568c2ecf20Sopenharmony_ci	field	CFG4TSTAT	0x04
24578c2ecf20Sopenharmony_ci	field	CFG4ICMD	0x02
24588c2ecf20Sopenharmony_ci	field	CFG4TCMD	0x01
24598c2ecf20Sopenharmony_ci}
24608c2ecf20Sopenharmony_ci
24618c2ecf20Sopenharmony_ci/*
24628c2ecf20Sopenharmony_ci * Clear Arp Interrupts
24638c2ecf20Sopenharmony_ci */
24648c2ecf20Sopenharmony_ciregister CLRSEQINTSRC {
24658c2ecf20Sopenharmony_ci	address			0x05B
24668c2ecf20Sopenharmony_ci	access_mode	WO
24678c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
24688c2ecf20Sopenharmony_ci	field	CLRCTXTDONE	0x40
24698c2ecf20Sopenharmony_ci	field	CLRSAVEPTRS	0x20
24708c2ecf20Sopenharmony_ci	field	CLRCFG4DATA	0x10
24718c2ecf20Sopenharmony_ci	field	CLRCFG4ISTAT	0x08
24728c2ecf20Sopenharmony_ci	field	CLRCFG4TSTAT	0x04
24738c2ecf20Sopenharmony_ci	field	CLRCFG4ICMD	0x02
24748c2ecf20Sopenharmony_ci	field	CLRCFG4TCMD	0x01
24758c2ecf20Sopenharmony_ci	dont_generate_debug_code
24768c2ecf20Sopenharmony_ci}
24778c2ecf20Sopenharmony_ci
24788c2ecf20Sopenharmony_ci/*
24798c2ecf20Sopenharmony_ci * SEQ Interrupt Enabled (Shared)
24808c2ecf20Sopenharmony_ci */
24818c2ecf20Sopenharmony_ciregister SEQIMODE {
24828c2ecf20Sopenharmony_ci	address			0x05C
24838c2ecf20Sopenharmony_ci	access_mode	RW
24848c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
24858c2ecf20Sopenharmony_ci	field	ENCTXTDONE	0x40
24868c2ecf20Sopenharmony_ci	field	ENSAVEPTRS	0x20
24878c2ecf20Sopenharmony_ci	field	ENCFG4DATA	0x10
24888c2ecf20Sopenharmony_ci	field	ENCFG4ISTAT	0x08
24898c2ecf20Sopenharmony_ci	field	ENCFG4TSTAT	0x04
24908c2ecf20Sopenharmony_ci	field	ENCFG4ICMD	0x02
24918c2ecf20Sopenharmony_ci	field	ENCFG4TCMD	0x01
24928c2ecf20Sopenharmony_ci}
24938c2ecf20Sopenharmony_ci
24948c2ecf20Sopenharmony_ci/*
24958c2ecf20Sopenharmony_ci * Current SCSI Control Block
24968c2ecf20Sopenharmony_ci */
24978c2ecf20Sopenharmony_ciregister CURRSCB {
24988c2ecf20Sopenharmony_ci	address			0x05C
24998c2ecf20Sopenharmony_ci	access_mode	RW
25008c2ecf20Sopenharmony_ci	size		2
25018c2ecf20Sopenharmony_ci	modes		M_SCSI
25028c2ecf20Sopenharmony_ci	dont_generate_debug_code
25038c2ecf20Sopenharmony_ci}
25048c2ecf20Sopenharmony_ci
25058c2ecf20Sopenharmony_ci/*
25068c2ecf20Sopenharmony_ci * Data FIFO Status
25078c2ecf20Sopenharmony_ci */
25088c2ecf20Sopenharmony_ciregister MDFFSTAT {
25098c2ecf20Sopenharmony_ci	address			0x05D
25108c2ecf20Sopenharmony_ci	access_mode	RO
25118c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
25128c2ecf20Sopenharmony_ci	field	SHCNTNEGATIVE	0x40 /* Rev B or higher */
25138c2ecf20Sopenharmony_ci	field	SHCNTMINUS1	0x20 /* Rev B or higher */
25148c2ecf20Sopenharmony_ci	field	LASTSDONE	0x10
25158c2ecf20Sopenharmony_ci	field	SHVALID		0x08
25168c2ecf20Sopenharmony_ci	field	DLZERO		0x04 /* FIFO data ends on packet boundary. */
25178c2ecf20Sopenharmony_ci	field	DATAINFIFO	0x02
25188c2ecf20Sopenharmony_ci	field	FIFOFREE	0x01
25198c2ecf20Sopenharmony_ci}
25208c2ecf20Sopenharmony_ci
25218c2ecf20Sopenharmony_ci/*
25228c2ecf20Sopenharmony_ci * CRC Control
25238c2ecf20Sopenharmony_ci */
25248c2ecf20Sopenharmony_ciregister CRCCONTROL {
25258c2ecf20Sopenharmony_ci	address			0x05d
25268c2ecf20Sopenharmony_ci	access_mode	RW
25278c2ecf20Sopenharmony_ci	modes		M_CFG
25288c2ecf20Sopenharmony_ci	field	CRCVALCHKEN		0x40
25298c2ecf20Sopenharmony_ci}
25308c2ecf20Sopenharmony_ci
25318c2ecf20Sopenharmony_ci/*
25328c2ecf20Sopenharmony_ci * SCSI Test Control
25338c2ecf20Sopenharmony_ci */
25348c2ecf20Sopenharmony_ciregister SCSITEST {
25358c2ecf20Sopenharmony_ci	address			0x05E
25368c2ecf20Sopenharmony_ci	access_mode	RW
25378c2ecf20Sopenharmony_ci	modes		M_CFG
25388c2ecf20Sopenharmony_ci	field	CNTRTEST	0x08
25398c2ecf20Sopenharmony_ci	field	SEL_TXPLL_DEBUG	0x04
25408c2ecf20Sopenharmony_ci}
25418c2ecf20Sopenharmony_ci
25428c2ecf20Sopenharmony_ci/*
25438c2ecf20Sopenharmony_ci * Data FIFO Queue Tag
25448c2ecf20Sopenharmony_ci */
25458c2ecf20Sopenharmony_ciregister DFFTAG {
25468c2ecf20Sopenharmony_ci	address			0x05E
25478c2ecf20Sopenharmony_ci	access_mode	RW
25488c2ecf20Sopenharmony_ci	size		2
25498c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
25508c2ecf20Sopenharmony_ci}
25518c2ecf20Sopenharmony_ci
25528c2ecf20Sopenharmony_ci/*
25538c2ecf20Sopenharmony_ci * Last SCSI Control Block
25548c2ecf20Sopenharmony_ci */
25558c2ecf20Sopenharmony_ciregister LASTSCB {
25568c2ecf20Sopenharmony_ci	address			0x05E
25578c2ecf20Sopenharmony_ci	access_mode	RW
25588c2ecf20Sopenharmony_ci	size		2
25598c2ecf20Sopenharmony_ci	modes		M_SCSI
25608c2ecf20Sopenharmony_ci	dont_generate_debug_code
25618c2ecf20Sopenharmony_ci}
25628c2ecf20Sopenharmony_ci
25638c2ecf20Sopenharmony_ci/*
25648c2ecf20Sopenharmony_ci * SCSI I/O Cell Power-down Control
25658c2ecf20Sopenharmony_ci */
25668c2ecf20Sopenharmony_ciregister IOPDNCTL {
25678c2ecf20Sopenharmony_ci	address			0x05F
25688c2ecf20Sopenharmony_ci	access_mode	RW
25698c2ecf20Sopenharmony_ci	modes		M_CFG
25708c2ecf20Sopenharmony_ci	field	DISABLE_OE	0x80
25718c2ecf20Sopenharmony_ci	field	PDN_IDIST	0x04
25728c2ecf20Sopenharmony_ci	field	PDN_DIFFSENSE	0x01
25738c2ecf20Sopenharmony_ci}
25748c2ecf20Sopenharmony_ci
25758c2ecf20Sopenharmony_ci/*
25768c2ecf20Sopenharmony_ci * Shadow Host Address.
25778c2ecf20Sopenharmony_ci */
25788c2ecf20Sopenharmony_ciregister SHADDR {
25798c2ecf20Sopenharmony_ci	address			0x060
25808c2ecf20Sopenharmony_ci	access_mode	RO
25818c2ecf20Sopenharmony_ci	size		8
25828c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
25838c2ecf20Sopenharmony_ci	dont_generate_debug_code
25848c2ecf20Sopenharmony_ci}
25858c2ecf20Sopenharmony_ci
25868c2ecf20Sopenharmony_ci/*
25878c2ecf20Sopenharmony_ci * Data Group CRC Interval.
25888c2ecf20Sopenharmony_ci */
25898c2ecf20Sopenharmony_ciregister DGRPCRCI {
25908c2ecf20Sopenharmony_ci	address			0x060
25918c2ecf20Sopenharmony_ci	access_mode	RW
25928c2ecf20Sopenharmony_ci	size		2
25938c2ecf20Sopenharmony_ci	modes		M_CFG
25948c2ecf20Sopenharmony_ci}
25958c2ecf20Sopenharmony_ci
25968c2ecf20Sopenharmony_ci/*
25978c2ecf20Sopenharmony_ci * Data Transfer Negotiation Address
25988c2ecf20Sopenharmony_ci */
25998c2ecf20Sopenharmony_ciregister NEGOADDR {
26008c2ecf20Sopenharmony_ci	address			0x060
26018c2ecf20Sopenharmony_ci	access_mode	RW
26028c2ecf20Sopenharmony_ci	modes		M_SCSI
26038c2ecf20Sopenharmony_ci	dont_generate_debug_code
26048c2ecf20Sopenharmony_ci}
26058c2ecf20Sopenharmony_ci
26068c2ecf20Sopenharmony_ci/*
26078c2ecf20Sopenharmony_ci * Data Transfer Negotiation Data - Period Byte
26088c2ecf20Sopenharmony_ci */
26098c2ecf20Sopenharmony_ciregister NEGPERIOD {
26108c2ecf20Sopenharmony_ci	address			0x061
26118c2ecf20Sopenharmony_ci	access_mode	RW
26128c2ecf20Sopenharmony_ci	modes		M_SCSI
26138c2ecf20Sopenharmony_ci	count		1
26148c2ecf20Sopenharmony_ci	dont_generate_debug_code
26158c2ecf20Sopenharmony_ci}
26168c2ecf20Sopenharmony_ci
26178c2ecf20Sopenharmony_ci/*
26188c2ecf20Sopenharmony_ci * Packetized CRC Interval
26198c2ecf20Sopenharmony_ci */
26208c2ecf20Sopenharmony_ciregister PACKCRCI {
26218c2ecf20Sopenharmony_ci	address			0x062
26228c2ecf20Sopenharmony_ci	access_mode	RW
26238c2ecf20Sopenharmony_ci	size		2
26248c2ecf20Sopenharmony_ci	modes		M_CFG
26258c2ecf20Sopenharmony_ci}
26268c2ecf20Sopenharmony_ci
26278c2ecf20Sopenharmony_ci/*
26288c2ecf20Sopenharmony_ci * Data Transfer Negotiation Data - Offset Byte
26298c2ecf20Sopenharmony_ci */
26308c2ecf20Sopenharmony_ciregister NEGOFFSET {
26318c2ecf20Sopenharmony_ci	address			0x062
26328c2ecf20Sopenharmony_ci	access_mode	RW
26338c2ecf20Sopenharmony_ci	modes		M_SCSI
26348c2ecf20Sopenharmony_ci	count		1
26358c2ecf20Sopenharmony_ci	dont_generate_debug_code
26368c2ecf20Sopenharmony_ci}
26378c2ecf20Sopenharmony_ci
26388c2ecf20Sopenharmony_ci/*
26398c2ecf20Sopenharmony_ci * Data Transfer Negotiation Data - PPR Options
26408c2ecf20Sopenharmony_ci */
26418c2ecf20Sopenharmony_ciregister NEGPPROPTS {
26428c2ecf20Sopenharmony_ci	address			0x063
26438c2ecf20Sopenharmony_ci	access_mode	RW
26448c2ecf20Sopenharmony_ci	modes		M_SCSI
26458c2ecf20Sopenharmony_ci	count		1
26468c2ecf20Sopenharmony_ci	field	PPROPT_PACE	0x08
26478c2ecf20Sopenharmony_ci	field	PPROPT_QAS	0x04
26488c2ecf20Sopenharmony_ci	field	PPROPT_DT	0x02
26498c2ecf20Sopenharmony_ci	field	PPROPT_IUT	0x01
26508c2ecf20Sopenharmony_ci	dont_generate_debug_code
26518c2ecf20Sopenharmony_ci}
26528c2ecf20Sopenharmony_ci
26538c2ecf20Sopenharmony_ci/*
26548c2ecf20Sopenharmony_ci * Data Transfer Negotiation Data -  Connection Options
26558c2ecf20Sopenharmony_ci */
26568c2ecf20Sopenharmony_ciregister NEGCONOPTS {
26578c2ecf20Sopenharmony_ci	address			0x064
26588c2ecf20Sopenharmony_ci	access_mode	RW
26598c2ecf20Sopenharmony_ci	modes		M_SCSI
26608c2ecf20Sopenharmony_ci	field	ENSNAPSHOT	0x40
26618c2ecf20Sopenharmony_ci	field	RTI_WRTDIS	0x20
26628c2ecf20Sopenharmony_ci	field	RTI_OVRDTRN	0x10
26638c2ecf20Sopenharmony_ci	field	ENSLOWCRC	0x08
26648c2ecf20Sopenharmony_ci	field	ENAUTOATNI	0x04
26658c2ecf20Sopenharmony_ci	field	ENAUTOATNO	0x02
26668c2ecf20Sopenharmony_ci	field	WIDEXFER	0x01
26678c2ecf20Sopenharmony_ci	dont_generate_debug_code
26688c2ecf20Sopenharmony_ci}
26698c2ecf20Sopenharmony_ci
26708c2ecf20Sopenharmony_ci/*
26718c2ecf20Sopenharmony_ci * Negotiation Table Annex Column Index.
26728c2ecf20Sopenharmony_ci */
26738c2ecf20Sopenharmony_ciregister ANNEXCOL {
26748c2ecf20Sopenharmony_ci	address			0x065
26758c2ecf20Sopenharmony_ci	access_mode	RW
26768c2ecf20Sopenharmony_ci	modes		M_SCSI
26778c2ecf20Sopenharmony_ci	count		7
26788c2ecf20Sopenharmony_ci	dont_generate_debug_code
26798c2ecf20Sopenharmony_ci}
26808c2ecf20Sopenharmony_ci
26818c2ecf20Sopenharmony_ci/*
26828c2ecf20Sopenharmony_ci * SCSI Check
26838c2ecf20Sopenharmony_ci * (Rev. B only)
26848c2ecf20Sopenharmony_ci */
26858c2ecf20Sopenharmony_ciregister SCSCHKN {
26868c2ecf20Sopenharmony_ci	address			0x066
26878c2ecf20Sopenharmony_ci	access_mode	RW
26888c2ecf20Sopenharmony_ci	modes		M_CFG
26898c2ecf20Sopenharmony_ci	count		1
26908c2ecf20Sopenharmony_ci	field	BIDICHKDIS	0x80
26918c2ecf20Sopenharmony_ci	field	STSELSKIDDIS	0x40
26928c2ecf20Sopenharmony_ci	field	CURRFIFODEF	0x20
26938c2ecf20Sopenharmony_ci	field	WIDERESEN	0x10
26948c2ecf20Sopenharmony_ci	field	SDONEMSKDIS	0x08
26958c2ecf20Sopenharmony_ci	field	DFFACTCLR	0x04
26968c2ecf20Sopenharmony_ci	field	SHVALIDSTDIS	0x02
26978c2ecf20Sopenharmony_ci	field	LSTSGCLRDIS	0x01
26988c2ecf20Sopenharmony_ci	dont_generate_debug_code
26998c2ecf20Sopenharmony_ci}
27008c2ecf20Sopenharmony_ci
27018c2ecf20Sopenharmony_ciconst AHD_ANNEXCOL_PER_DEV0	4
27028c2ecf20Sopenharmony_ciconst AHD_NUM_PER_DEV_ANNEXCOLS	4
27038c2ecf20Sopenharmony_ciconst AHD_ANNEXCOL_PRECOMP_SLEW	4
27048c2ecf20Sopenharmony_ciconst	AHD_PRECOMP_MASK	0x07
27058c2ecf20Sopenharmony_ciconst	AHD_PRECOMP_SHIFT	0
27068c2ecf20Sopenharmony_ciconst	AHD_PRECOMP_CUTBACK_17	0x04
27078c2ecf20Sopenharmony_ciconst	AHD_PRECOMP_CUTBACK_29	0x06
27088c2ecf20Sopenharmony_ciconst	AHD_PRECOMP_CUTBACK_37	0x07
27098c2ecf20Sopenharmony_ciconst	AHD_SLEWRATE_MASK	0x78
27108c2ecf20Sopenharmony_ciconst	AHD_SLEWRATE_SHIFT	3
27118c2ecf20Sopenharmony_ci/*
27128c2ecf20Sopenharmony_ci * Rev A has only a single bit (high bit of field) of slew adjustment.
27138c2ecf20Sopenharmony_ci * Rev B has 4 bits.  The current default happens to be the same for both.
27148c2ecf20Sopenharmony_ci */
27158c2ecf20Sopenharmony_ciconst	AHD_SLEWRATE_DEF_REVA	0x08
27168c2ecf20Sopenharmony_ciconst	AHD_SLEWRATE_DEF_REVB	0x08
27178c2ecf20Sopenharmony_ci
27188c2ecf20Sopenharmony_ci/* Rev A does not have any amplitude setting. */
27198c2ecf20Sopenharmony_ciconst AHD_ANNEXCOL_AMPLITUDE	6
27208c2ecf20Sopenharmony_ciconst	AHD_AMPLITUDE_MASK	0x7
27218c2ecf20Sopenharmony_ciconst	AHD_AMPLITUDE_SHIFT	0
27228c2ecf20Sopenharmony_ciconst	AHD_AMPLITUDE_DEF	0x7
27238c2ecf20Sopenharmony_ci
27248c2ecf20Sopenharmony_ci/*
27258c2ecf20Sopenharmony_ci * Negotiation Table Annex Data Port.
27268c2ecf20Sopenharmony_ci */
27278c2ecf20Sopenharmony_ciregister ANNEXDAT {
27288c2ecf20Sopenharmony_ci	address			0x066
27298c2ecf20Sopenharmony_ci	access_mode	RW
27308c2ecf20Sopenharmony_ci	modes		M_SCSI
27318c2ecf20Sopenharmony_ci	count		3
27328c2ecf20Sopenharmony_ci	dont_generate_debug_code
27338c2ecf20Sopenharmony_ci}
27348c2ecf20Sopenharmony_ci
27358c2ecf20Sopenharmony_ci/*
27368c2ecf20Sopenharmony_ci * Initiator's Own Id.
27378c2ecf20Sopenharmony_ci * The SCSI ID to use for Selection Out and seen during a reselection..
27388c2ecf20Sopenharmony_ci */
27398c2ecf20Sopenharmony_ciregister IOWNID {
27408c2ecf20Sopenharmony_ci	address			0x067
27418c2ecf20Sopenharmony_ci	access_mode	RW
27428c2ecf20Sopenharmony_ci	modes		M_SCSI
27438c2ecf20Sopenharmony_ci	dont_generate_debug_code
27448c2ecf20Sopenharmony_ci}
27458c2ecf20Sopenharmony_ci
27468c2ecf20Sopenharmony_ci/*
27478c2ecf20Sopenharmony_ci * 960MHz Phase-Locked Loop Control 0
27488c2ecf20Sopenharmony_ci */
27498c2ecf20Sopenharmony_ciregister PLL960CTL0 {
27508c2ecf20Sopenharmony_ci	address			0x068
27518c2ecf20Sopenharmony_ci	access_mode	RW
27528c2ecf20Sopenharmony_ci	modes		M_CFG
27538c2ecf20Sopenharmony_ci	field	PLL_VCOSEL	0x80
27548c2ecf20Sopenharmony_ci	field	PLL_PWDN	0x40
27558c2ecf20Sopenharmony_ci	field	PLL_NS		0x30
27568c2ecf20Sopenharmony_ci	field	PLL_ENLUD	0x08
27578c2ecf20Sopenharmony_ci	field	PLL_ENLPF	0x04
27588c2ecf20Sopenharmony_ci	field	PLL_DLPF	0x02
27598c2ecf20Sopenharmony_ci	field	PLL_ENFBM	0x01
27608c2ecf20Sopenharmony_ci}
27618c2ecf20Sopenharmony_ci
27628c2ecf20Sopenharmony_ci/*
27638c2ecf20Sopenharmony_ci * Target Own Id
27648c2ecf20Sopenharmony_ci */
27658c2ecf20Sopenharmony_ciregister TOWNID {
27668c2ecf20Sopenharmony_ci	address			0x069
27678c2ecf20Sopenharmony_ci	access_mode	RW
27688c2ecf20Sopenharmony_ci	modes		M_SCSI
27698c2ecf20Sopenharmony_ci	count		2
27708c2ecf20Sopenharmony_ci	dont_generate_debug_code
27718c2ecf20Sopenharmony_ci}
27728c2ecf20Sopenharmony_ci
27738c2ecf20Sopenharmony_ci/*
27748c2ecf20Sopenharmony_ci * 960MHz Phase-Locked Loop Control 1
27758c2ecf20Sopenharmony_ci */
27768c2ecf20Sopenharmony_ciregister PLL960CTL1 {
27778c2ecf20Sopenharmony_ci	address			0x069
27788c2ecf20Sopenharmony_ci	access_mode	RW
27798c2ecf20Sopenharmony_ci	modes		M_CFG
27808c2ecf20Sopenharmony_ci	field	PLL_CNTEN	0x80
27818c2ecf20Sopenharmony_ci	field	PLL_CNTCLR	0x40
27828c2ecf20Sopenharmony_ci	field	PLL_RST		0x01
27838c2ecf20Sopenharmony_ci}
27848c2ecf20Sopenharmony_ci
27858c2ecf20Sopenharmony_ci/*
27868c2ecf20Sopenharmony_ci * Expander Signature
27878c2ecf20Sopenharmony_ci */
27888c2ecf20Sopenharmony_ciregister XSIG {
27898c2ecf20Sopenharmony_ci	address			0x06A
27908c2ecf20Sopenharmony_ci	access_mode	RW
27918c2ecf20Sopenharmony_ci	modes		M_SCSI
27928c2ecf20Sopenharmony_ci}
27938c2ecf20Sopenharmony_ci
27948c2ecf20Sopenharmony_ci/*
27958c2ecf20Sopenharmony_ci * Shadow Byte Count
27968c2ecf20Sopenharmony_ci */
27978c2ecf20Sopenharmony_ciregister SHCNT {
27988c2ecf20Sopenharmony_ci	address			0x068
27998c2ecf20Sopenharmony_ci	access_mode	RW
28008c2ecf20Sopenharmony_ci	size		3
28018c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
28028c2ecf20Sopenharmony_ci	dont_generate_debug_code
28038c2ecf20Sopenharmony_ci}
28048c2ecf20Sopenharmony_ci
28058c2ecf20Sopenharmony_ci/*
28068c2ecf20Sopenharmony_ci * Selection Out ID
28078c2ecf20Sopenharmony_ci */
28088c2ecf20Sopenharmony_ciregister SELOID {
28098c2ecf20Sopenharmony_ci	address			0x06B
28108c2ecf20Sopenharmony_ci	access_mode	RW
28118c2ecf20Sopenharmony_ci	modes		M_SCSI
28128c2ecf20Sopenharmony_ci}
28138c2ecf20Sopenharmony_ci
28148c2ecf20Sopenharmony_ci/*
28158c2ecf20Sopenharmony_ci * 960-MHz Phase-Locked Loop Test Count
28168c2ecf20Sopenharmony_ci */
28178c2ecf20Sopenharmony_ciregister PLL960CNT0 {
28188c2ecf20Sopenharmony_ci	address			0x06A
28198c2ecf20Sopenharmony_ci	access_mode	RO
28208c2ecf20Sopenharmony_ci	size		2
28218c2ecf20Sopenharmony_ci	modes		M_CFG
28228c2ecf20Sopenharmony_ci}
28238c2ecf20Sopenharmony_ci
28248c2ecf20Sopenharmony_ci/*
28258c2ecf20Sopenharmony_ci * 400-MHz Phase-Locked Loop Control 0
28268c2ecf20Sopenharmony_ci */
28278c2ecf20Sopenharmony_ciregister PLL400CTL0 {
28288c2ecf20Sopenharmony_ci	address			0x06C
28298c2ecf20Sopenharmony_ci	access_mode	RW
28308c2ecf20Sopenharmony_ci	modes		M_CFG
28318c2ecf20Sopenharmony_ci	field	PLL_VCOSEL	0x80
28328c2ecf20Sopenharmony_ci	field	PLL_PWDN	0x40
28338c2ecf20Sopenharmony_ci	field	PLL_NS		0x30
28348c2ecf20Sopenharmony_ci	field	PLL_ENLUD	0x08
28358c2ecf20Sopenharmony_ci	field	PLL_ENLPF	0x04
28368c2ecf20Sopenharmony_ci	field	PLL_DLPF	0x02
28378c2ecf20Sopenharmony_ci	field	PLL_ENFBM	0x01
28388c2ecf20Sopenharmony_ci}
28398c2ecf20Sopenharmony_ci
28408c2ecf20Sopenharmony_ci/*
28418c2ecf20Sopenharmony_ci * Arbitration Fairness
28428c2ecf20Sopenharmony_ci */
28438c2ecf20Sopenharmony_ciregister FAIRNESS {
28448c2ecf20Sopenharmony_ci	address			0x06C
28458c2ecf20Sopenharmony_ci	access_mode	RW
28468c2ecf20Sopenharmony_ci	size		2
28478c2ecf20Sopenharmony_ci	modes		M_SCSI
28488c2ecf20Sopenharmony_ci}
28498c2ecf20Sopenharmony_ci
28508c2ecf20Sopenharmony_ci/*
28518c2ecf20Sopenharmony_ci * 400-MHz Phase-Locked Loop Control 1
28528c2ecf20Sopenharmony_ci */
28538c2ecf20Sopenharmony_ciregister PLL400CTL1 {
28548c2ecf20Sopenharmony_ci	address			0x06D
28558c2ecf20Sopenharmony_ci	access_mode	RW
28568c2ecf20Sopenharmony_ci	modes		M_CFG
28578c2ecf20Sopenharmony_ci	field	PLL_CNTEN	0x80
28588c2ecf20Sopenharmony_ci	field	PLL_CNTCLR	0x40
28598c2ecf20Sopenharmony_ci	field	PLL_RST		0x01
28608c2ecf20Sopenharmony_ci}
28618c2ecf20Sopenharmony_ci
28628c2ecf20Sopenharmony_ci/*
28638c2ecf20Sopenharmony_ci * Arbitration Unfairness
28648c2ecf20Sopenharmony_ci */
28658c2ecf20Sopenharmony_ciregister UNFAIRNESS {
28668c2ecf20Sopenharmony_ci	address			0x06E
28678c2ecf20Sopenharmony_ci	access_mode	RW
28688c2ecf20Sopenharmony_ci	size		2
28698c2ecf20Sopenharmony_ci	modes		M_SCSI
28708c2ecf20Sopenharmony_ci}
28718c2ecf20Sopenharmony_ci
28728c2ecf20Sopenharmony_ci/*
28738c2ecf20Sopenharmony_ci * 400-MHz Phase-Locked Loop Test Count
28748c2ecf20Sopenharmony_ci */
28758c2ecf20Sopenharmony_ciregister PLL400CNT0 {
28768c2ecf20Sopenharmony_ci	address			0x06E
28778c2ecf20Sopenharmony_ci	access_mode	RO
28788c2ecf20Sopenharmony_ci	size		2
28798c2ecf20Sopenharmony_ci	modes		M_CFG
28808c2ecf20Sopenharmony_ci}
28818c2ecf20Sopenharmony_ci
28828c2ecf20Sopenharmony_ci/*
28838c2ecf20Sopenharmony_ci * SCB Page Pointer
28848c2ecf20Sopenharmony_ci */
28858c2ecf20Sopenharmony_ciregister SCBPTR {
28868c2ecf20Sopenharmony_ci	address			0x0A8
28878c2ecf20Sopenharmony_ci	access_mode	RW
28888c2ecf20Sopenharmony_ci	size		2
28898c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1, M_CCHAN, M_SCSI
28908c2ecf20Sopenharmony_ci	dont_generate_debug_code
28918c2ecf20Sopenharmony_ci}
28928c2ecf20Sopenharmony_ci
28938c2ecf20Sopenharmony_ci/*
28948c2ecf20Sopenharmony_ci * CMC SCB Array Count
28958c2ecf20Sopenharmony_ci * Number of bytes to transfer between CMC SCB memory and SCBRAM.
28968c2ecf20Sopenharmony_ci * Transfers must be 8byte aligned and sized.
28978c2ecf20Sopenharmony_ci */
28988c2ecf20Sopenharmony_ciregister CCSCBACNT {
28998c2ecf20Sopenharmony_ci	address			0x0AB
29008c2ecf20Sopenharmony_ci	access_mode	RW
29018c2ecf20Sopenharmony_ci	modes		M_CCHAN
29028c2ecf20Sopenharmony_ci}
29038c2ecf20Sopenharmony_ci
29048c2ecf20Sopenharmony_ci/*
29058c2ecf20Sopenharmony_ci * SCB Autopointer
29068c2ecf20Sopenharmony_ci * SCB-Next Address Snooping logic.  When an SCB is transferred to
29078c2ecf20Sopenharmony_ci * the card, the next SCB address to be used by the CMC array can
29088c2ecf20Sopenharmony_ci * be autoloaded from that transfer.
29098c2ecf20Sopenharmony_ci */
29108c2ecf20Sopenharmony_ciregister SCBAUTOPTR {
29118c2ecf20Sopenharmony_ci	address			0x0AB
29128c2ecf20Sopenharmony_ci	access_mode	RW
29138c2ecf20Sopenharmony_ci	modes		M_CFG
29148c2ecf20Sopenharmony_ci	count		1
29158c2ecf20Sopenharmony_ci	field	AUSCBPTR_EN	0x80
29168c2ecf20Sopenharmony_ci	field	SCBPTR_ADDR	0x38
29178c2ecf20Sopenharmony_ci	field	SCBPTR_OFF	0x07
29188c2ecf20Sopenharmony_ci	dont_generate_debug_code
29198c2ecf20Sopenharmony_ci}
29208c2ecf20Sopenharmony_ci
29218c2ecf20Sopenharmony_ci/*
29228c2ecf20Sopenharmony_ci * CMC SG Ram Address Pointer
29238c2ecf20Sopenharmony_ci */
29248c2ecf20Sopenharmony_ciregister CCSGADDR {
29258c2ecf20Sopenharmony_ci	address			0x0AC
29268c2ecf20Sopenharmony_ci	access_mode	RW
29278c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
29288c2ecf20Sopenharmony_ci	dont_generate_debug_code
29298c2ecf20Sopenharmony_ci}
29308c2ecf20Sopenharmony_ci
29318c2ecf20Sopenharmony_ci/*
29328c2ecf20Sopenharmony_ci * CMC SCB RAM Address Pointer
29338c2ecf20Sopenharmony_ci */
29348c2ecf20Sopenharmony_ciregister CCSCBADDR {
29358c2ecf20Sopenharmony_ci	address			0x0AC
29368c2ecf20Sopenharmony_ci	access_mode	RW
29378c2ecf20Sopenharmony_ci	modes		M_CCHAN
29388c2ecf20Sopenharmony_ci	dont_generate_debug_code
29398c2ecf20Sopenharmony_ci}
29408c2ecf20Sopenharmony_ci
29418c2ecf20Sopenharmony_ci/*
29428c2ecf20Sopenharmony_ci * CMC SCB Ram Back-up Address Pointer
29438c2ecf20Sopenharmony_ci * Indicates the true stop location of transfers halted prior
29448c2ecf20Sopenharmony_ci * to SCBHCNT going to 0.
29458c2ecf20Sopenharmony_ci */
29468c2ecf20Sopenharmony_ciregister CCSCBADR_BK {
29478c2ecf20Sopenharmony_ci	address			0x0AC
29488c2ecf20Sopenharmony_ci	access_mode	RO
29498c2ecf20Sopenharmony_ci	modes		M_CFG
29508c2ecf20Sopenharmony_ci}
29518c2ecf20Sopenharmony_ci
29528c2ecf20Sopenharmony_ci/*
29538c2ecf20Sopenharmony_ci * CMC SG Control
29548c2ecf20Sopenharmony_ci */
29558c2ecf20Sopenharmony_ciregister CCSGCTL {
29568c2ecf20Sopenharmony_ci	address			0x0AD
29578c2ecf20Sopenharmony_ci	access_mode	RW
29588c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
29598c2ecf20Sopenharmony_ci	field	CCSGDONE	0x80
29608c2ecf20Sopenharmony_ci	field	SG_CACHE_AVAIL	0x10
29618c2ecf20Sopenharmony_ci	field	CCSGENACK	0x08
29628c2ecf20Sopenharmony_ci	mask	CCSGEN		0x0C
29638c2ecf20Sopenharmony_ci	field	SG_FETCH_REQ	0x02
29648c2ecf20Sopenharmony_ci	field	CCSGRESET	0x01
29658c2ecf20Sopenharmony_ci}
29668c2ecf20Sopenharmony_ci
29678c2ecf20Sopenharmony_ci/*
29688c2ecf20Sopenharmony_ci * CMD SCB Control
29698c2ecf20Sopenharmony_ci */
29708c2ecf20Sopenharmony_ciregister CCSCBCTL {
29718c2ecf20Sopenharmony_ci	address			0x0AD
29728c2ecf20Sopenharmony_ci	access_mode	RW
29738c2ecf20Sopenharmony_ci	modes		M_CCHAN
29748c2ecf20Sopenharmony_ci	field	CCSCBDONE	0x80
29758c2ecf20Sopenharmony_ci	field	ARRDONE		0x40
29768c2ecf20Sopenharmony_ci	field	CCARREN		0x10
29778c2ecf20Sopenharmony_ci	field	CCSCBEN		0x08
29788c2ecf20Sopenharmony_ci	field	CCSCBDIR	0x04
29798c2ecf20Sopenharmony_ci	field	CCSCBRESET	0x01
29808c2ecf20Sopenharmony_ci}
29818c2ecf20Sopenharmony_ci
29828c2ecf20Sopenharmony_ci/*
29838c2ecf20Sopenharmony_ci * CMC Ram BIST
29848c2ecf20Sopenharmony_ci */
29858c2ecf20Sopenharmony_ciregister CMC_RAMBIST {
29868c2ecf20Sopenharmony_ci	address			0x0AD
29878c2ecf20Sopenharmony_ci	access_mode	RW
29888c2ecf20Sopenharmony_ci	modes		M_CFG
29898c2ecf20Sopenharmony_ci	field	SG_ELEMENT_SIZE		0x80
29908c2ecf20Sopenharmony_ci	field	SCBRAMBIST_FAIL		0x40
29918c2ecf20Sopenharmony_ci	field	SG_BIST_FAIL		0x20
29928c2ecf20Sopenharmony_ci	field	SG_BIST_EN		0x10
29938c2ecf20Sopenharmony_ci	field	CMC_BUFFER_BIST_FAIL	0x02
29948c2ecf20Sopenharmony_ci	field	CMC_BUFFER_BIST_EN	0x01
29958c2ecf20Sopenharmony_ci}
29968c2ecf20Sopenharmony_ci
29978c2ecf20Sopenharmony_ci/*
29988c2ecf20Sopenharmony_ci * CMC SG RAM Data Port
29998c2ecf20Sopenharmony_ci */
30008c2ecf20Sopenharmony_ciregister CCSGRAM {
30018c2ecf20Sopenharmony_ci	address			0x0B0
30028c2ecf20Sopenharmony_ci	access_mode	RW
30038c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
30048c2ecf20Sopenharmony_ci	dont_generate_debug_code
30058c2ecf20Sopenharmony_ci}
30068c2ecf20Sopenharmony_ci
30078c2ecf20Sopenharmony_ci/*
30088c2ecf20Sopenharmony_ci * CMC SCB RAM Data Port
30098c2ecf20Sopenharmony_ci */
30108c2ecf20Sopenharmony_ciregister CCSCBRAM {
30118c2ecf20Sopenharmony_ci	address			0x0B0
30128c2ecf20Sopenharmony_ci	access_mode	RW
30138c2ecf20Sopenharmony_ci	modes		M_CCHAN
30148c2ecf20Sopenharmony_ci	dont_generate_debug_code
30158c2ecf20Sopenharmony_ci}
30168c2ecf20Sopenharmony_ci
30178c2ecf20Sopenharmony_ci/*
30188c2ecf20Sopenharmony_ci * Flex DMA Address.
30198c2ecf20Sopenharmony_ci */
30208c2ecf20Sopenharmony_ciregister FLEXADR {
30218c2ecf20Sopenharmony_ci	address			0x0B0
30228c2ecf20Sopenharmony_ci	access_mode	RW
30238c2ecf20Sopenharmony_ci	size		3
30248c2ecf20Sopenharmony_ci	modes		M_SCSI
30258c2ecf20Sopenharmony_ci}
30268c2ecf20Sopenharmony_ci
30278c2ecf20Sopenharmony_ci/*
30288c2ecf20Sopenharmony_ci * Flex DMA Byte Count
30298c2ecf20Sopenharmony_ci */
30308c2ecf20Sopenharmony_ciregister FLEXCNT {
30318c2ecf20Sopenharmony_ci	address			0x0B3
30328c2ecf20Sopenharmony_ci	access_mode	RW
30338c2ecf20Sopenharmony_ci	size		2
30348c2ecf20Sopenharmony_ci	modes		M_SCSI
30358c2ecf20Sopenharmony_ci}
30368c2ecf20Sopenharmony_ci
30378c2ecf20Sopenharmony_ci/*
30388c2ecf20Sopenharmony_ci * Flex DMA Status
30398c2ecf20Sopenharmony_ci */
30408c2ecf20Sopenharmony_ciregister FLEXDMASTAT {
30418c2ecf20Sopenharmony_ci	address			0x0B5
30428c2ecf20Sopenharmony_ci	access_mode	RW
30438c2ecf20Sopenharmony_ci	modes		M_SCSI
30448c2ecf20Sopenharmony_ci	field	FLEXDMAERR	0x02
30458c2ecf20Sopenharmony_ci	field	FLEXDMADONE	0x01
30468c2ecf20Sopenharmony_ci}
30478c2ecf20Sopenharmony_ci
30488c2ecf20Sopenharmony_ci/*
30498c2ecf20Sopenharmony_ci * Flex DMA Data Port
30508c2ecf20Sopenharmony_ci */
30518c2ecf20Sopenharmony_ciregister FLEXDATA {
30528c2ecf20Sopenharmony_ci	address			0x0B6
30538c2ecf20Sopenharmony_ci	access_mode	RW
30548c2ecf20Sopenharmony_ci	modes		M_SCSI
30558c2ecf20Sopenharmony_ci}
30568c2ecf20Sopenharmony_ci
30578c2ecf20Sopenharmony_ci/*
30588c2ecf20Sopenharmony_ci * Board Data
30598c2ecf20Sopenharmony_ci */
30608c2ecf20Sopenharmony_ciregister BRDDAT {
30618c2ecf20Sopenharmony_ci	address			0x0B8
30628c2ecf20Sopenharmony_ci	access_mode	RW
30638c2ecf20Sopenharmony_ci	modes		M_SCSI
30648c2ecf20Sopenharmony_ci	count		2
30658c2ecf20Sopenharmony_ci	dont_generate_debug_code
30668c2ecf20Sopenharmony_ci}
30678c2ecf20Sopenharmony_ci
30688c2ecf20Sopenharmony_ci/*
30698c2ecf20Sopenharmony_ci * Board Control
30708c2ecf20Sopenharmony_ci */
30718c2ecf20Sopenharmony_ciregister BRDCTL {
30728c2ecf20Sopenharmony_ci	address			0x0B9
30738c2ecf20Sopenharmony_ci	access_mode	RW
30748c2ecf20Sopenharmony_ci	modes		M_SCSI
30758c2ecf20Sopenharmony_ci	count		7
30768c2ecf20Sopenharmony_ci	field	FLXARBACK	0x80
30778c2ecf20Sopenharmony_ci	field	FLXARBREQ	0x40
30788c2ecf20Sopenharmony_ci	field	BRDADDR		0x38
30798c2ecf20Sopenharmony_ci	field	BRDEN		0x04
30808c2ecf20Sopenharmony_ci	field	BRDRW		0x02
30818c2ecf20Sopenharmony_ci	field	BRDSTB		0x01
30828c2ecf20Sopenharmony_ci	dont_generate_debug_code
30838c2ecf20Sopenharmony_ci}
30848c2ecf20Sopenharmony_ci
30858c2ecf20Sopenharmony_ci/*
30868c2ecf20Sopenharmony_ci * Serial EEPROM Address
30878c2ecf20Sopenharmony_ci */
30888c2ecf20Sopenharmony_ciregister SEEADR {
30898c2ecf20Sopenharmony_ci	address			0x0BA
30908c2ecf20Sopenharmony_ci	access_mode	RW
30918c2ecf20Sopenharmony_ci	modes		M_SCSI
30928c2ecf20Sopenharmony_ci	count		4
30938c2ecf20Sopenharmony_ci	dont_generate_debug_code
30948c2ecf20Sopenharmony_ci}
30958c2ecf20Sopenharmony_ci
30968c2ecf20Sopenharmony_ci/*
30978c2ecf20Sopenharmony_ci * Serial EEPROM Data
30988c2ecf20Sopenharmony_ci */
30998c2ecf20Sopenharmony_ciregister SEEDAT {
31008c2ecf20Sopenharmony_ci	address			0x0BC
31018c2ecf20Sopenharmony_ci	access_mode	RW
31028c2ecf20Sopenharmony_ci	size		2
31038c2ecf20Sopenharmony_ci	modes		M_SCSI
31048c2ecf20Sopenharmony_ci	count		4
31058c2ecf20Sopenharmony_ci	dont_generate_debug_code
31068c2ecf20Sopenharmony_ci}
31078c2ecf20Sopenharmony_ci
31088c2ecf20Sopenharmony_ci/*
31098c2ecf20Sopenharmony_ci * Serial EEPROM Status
31108c2ecf20Sopenharmony_ci */
31118c2ecf20Sopenharmony_ciregister SEESTAT {
31128c2ecf20Sopenharmony_ci	address			0x0BE
31138c2ecf20Sopenharmony_ci	access_mode	RO
31148c2ecf20Sopenharmony_ci	modes		M_SCSI
31158c2ecf20Sopenharmony_ci	count		1
31168c2ecf20Sopenharmony_ci	field	INIT_DONE	0x80
31178c2ecf20Sopenharmony_ci	field	SEEOPCODE	0x70
31188c2ecf20Sopenharmony_ci	field	LDALTID_L	0x08
31198c2ecf20Sopenharmony_ci	field	SEEARBACK	0x04
31208c2ecf20Sopenharmony_ci	field	SEEBUSY		0x02
31218c2ecf20Sopenharmony_ci	field	SEESTART	0x01
31228c2ecf20Sopenharmony_ci	dont_generate_debug_code
31238c2ecf20Sopenharmony_ci}
31248c2ecf20Sopenharmony_ci
31258c2ecf20Sopenharmony_ci/*
31268c2ecf20Sopenharmony_ci * Serial EEPROM Control
31278c2ecf20Sopenharmony_ci */
31288c2ecf20Sopenharmony_ciregister SEECTL {
31298c2ecf20Sopenharmony_ci	address			0x0BE
31308c2ecf20Sopenharmony_ci	access_mode	RW
31318c2ecf20Sopenharmony_ci	modes		M_SCSI
31328c2ecf20Sopenharmony_ci	count		4
31338c2ecf20Sopenharmony_ci	field	SEEOPCODE	0x70 {
31348c2ecf20Sopenharmony_ci		SEEOP_ERASE	0x70,
31358c2ecf20Sopenharmony_ci		SEEOP_READ	0x60,
31368c2ecf20Sopenharmony_ci		SEEOP_WRITE	0x50,
31378c2ecf20Sopenharmony_ci	/*
31388c2ecf20Sopenharmony_ci	 * The following four commands use special
31398c2ecf20Sopenharmony_ci	 * addresses for differentiation.
31408c2ecf20Sopenharmony_ci	 */
31418c2ecf20Sopenharmony_ci		SEEOP_ERAL	0x40
31428c2ecf20Sopenharmony_ci	}
31438c2ecf20Sopenharmony_ci	mask	SEEOP_EWEN	0x40
31448c2ecf20Sopenharmony_ci	mask	SEEOP_WALL	0x40
31458c2ecf20Sopenharmony_ci	mask	SEEOP_EWDS	0x40
31468c2ecf20Sopenharmony_ci	field	SEERST		0x02
31478c2ecf20Sopenharmony_ci	field	SEESTART	0x01
31488c2ecf20Sopenharmony_ci	dont_generate_debug_code
31498c2ecf20Sopenharmony_ci}
31508c2ecf20Sopenharmony_ci
31518c2ecf20Sopenharmony_ciconst SEEOP_ERAL_ADDR	0x80
31528c2ecf20Sopenharmony_ciconst SEEOP_EWEN_ADDR	0xC0
31538c2ecf20Sopenharmony_ciconst SEEOP_WRAL_ADDR	0x40
31548c2ecf20Sopenharmony_ciconst SEEOP_EWDS_ADDR	0x00
31558c2ecf20Sopenharmony_ci
31568c2ecf20Sopenharmony_ci/*
31578c2ecf20Sopenharmony_ci * SCB Counter
31588c2ecf20Sopenharmony_ci */
31598c2ecf20Sopenharmony_ciregister SCBCNT {
31608c2ecf20Sopenharmony_ci	address			0x0BF
31618c2ecf20Sopenharmony_ci	access_mode	RW
31628c2ecf20Sopenharmony_ci	modes		M_SCSI
31638c2ecf20Sopenharmony_ci	dont_generate_debug_code
31648c2ecf20Sopenharmony_ci}
31658c2ecf20Sopenharmony_ci
31668c2ecf20Sopenharmony_ci/*
31678c2ecf20Sopenharmony_ci * Data FIFO Write Address
31688c2ecf20Sopenharmony_ci * Pointer to the next QWD location to be written to the data FIFO.
31698c2ecf20Sopenharmony_ci */
31708c2ecf20Sopenharmony_ciregister DFWADDR {
31718c2ecf20Sopenharmony_ci	address			0x0C0
31728c2ecf20Sopenharmony_ci	access_mode	RW
31738c2ecf20Sopenharmony_ci	size		2
31748c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
31758c2ecf20Sopenharmony_ci	dont_generate_debug_code
31768c2ecf20Sopenharmony_ci}
31778c2ecf20Sopenharmony_ci
31788c2ecf20Sopenharmony_ci/*
31798c2ecf20Sopenharmony_ci * DSP Filter Control
31808c2ecf20Sopenharmony_ci */
31818c2ecf20Sopenharmony_ciregister DSPFLTRCTL {
31828c2ecf20Sopenharmony_ci	address			0x0C0
31838c2ecf20Sopenharmony_ci	access_mode	RW
31848c2ecf20Sopenharmony_ci	modes		M_CFG
31858c2ecf20Sopenharmony_ci	field	FLTRDISABLE	0x20
31868c2ecf20Sopenharmony_ci	field	EDGESENSE	0x10
31878c2ecf20Sopenharmony_ci	field	DSPFCNTSEL	0x0F
31888c2ecf20Sopenharmony_ci}
31898c2ecf20Sopenharmony_ci
31908c2ecf20Sopenharmony_ci/*
31918c2ecf20Sopenharmony_ci * DSP Data Channel Control
31928c2ecf20Sopenharmony_ci */
31938c2ecf20Sopenharmony_ciregister DSPDATACTL {
31948c2ecf20Sopenharmony_ci	address			0x0C1
31958c2ecf20Sopenharmony_ci	access_mode	RW
31968c2ecf20Sopenharmony_ci	modes		M_CFG
31978c2ecf20Sopenharmony_ci	count		3
31988c2ecf20Sopenharmony_ci	field	BYPASSENAB	0x80
31998c2ecf20Sopenharmony_ci	field	DESQDIS		0x10
32008c2ecf20Sopenharmony_ci	field	RCVROFFSTDIS	0x04
32018c2ecf20Sopenharmony_ci	field	XMITOFFSTDIS	0x02
32028c2ecf20Sopenharmony_ci	dont_generate_debug_code
32038c2ecf20Sopenharmony_ci}
32048c2ecf20Sopenharmony_ci
32058c2ecf20Sopenharmony_ci/*
32068c2ecf20Sopenharmony_ci * Data FIFO Read Address
32078c2ecf20Sopenharmony_ci * Pointer to the next QWD location to be read from the data FIFO.
32088c2ecf20Sopenharmony_ci */
32098c2ecf20Sopenharmony_ciregister DFRADDR {
32108c2ecf20Sopenharmony_ci	address			0x0C2
32118c2ecf20Sopenharmony_ci	access_mode	RW
32128c2ecf20Sopenharmony_ci	size		2
32138c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
32148c2ecf20Sopenharmony_ci}
32158c2ecf20Sopenharmony_ci
32168c2ecf20Sopenharmony_ci/*
32178c2ecf20Sopenharmony_ci * DSP REQ Control
32188c2ecf20Sopenharmony_ci */
32198c2ecf20Sopenharmony_ciregister DSPREQCTL {
32208c2ecf20Sopenharmony_ci	address			0x0C2
32218c2ecf20Sopenharmony_ci	access_mode	RW
32228c2ecf20Sopenharmony_ci	modes		M_CFG
32238c2ecf20Sopenharmony_ci	field	MANREQCTL	0xC0
32248c2ecf20Sopenharmony_ci	field	MANREQDLY	0x3F
32258c2ecf20Sopenharmony_ci}
32268c2ecf20Sopenharmony_ci
32278c2ecf20Sopenharmony_ci/*
32288c2ecf20Sopenharmony_ci * DSP ACK Control
32298c2ecf20Sopenharmony_ci */
32308c2ecf20Sopenharmony_ciregister DSPACKCTL {
32318c2ecf20Sopenharmony_ci	address			0x0C3
32328c2ecf20Sopenharmony_ci	access_mode	RW
32338c2ecf20Sopenharmony_ci	modes		M_CFG
32348c2ecf20Sopenharmony_ci	field	MANACKCTL	0xC0
32358c2ecf20Sopenharmony_ci	field	MANACKDLY	0x3F
32368c2ecf20Sopenharmony_ci}
32378c2ecf20Sopenharmony_ci
32388c2ecf20Sopenharmony_ci/*
32398c2ecf20Sopenharmony_ci * Data FIFO Data
32408c2ecf20Sopenharmony_ci * Read/Write byte port into the data FIFO.  The read and write
32418c2ecf20Sopenharmony_ci * FIFO pointers increment with each read and write respectively
32428c2ecf20Sopenharmony_ci * to this port.
32438c2ecf20Sopenharmony_ci */
32448c2ecf20Sopenharmony_ciregister DFDAT {
32458c2ecf20Sopenharmony_ci	address			0x0C4
32468c2ecf20Sopenharmony_ci	access_mode	RW
32478c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
32488c2ecf20Sopenharmony_ci	dont_generate_debug_code
32498c2ecf20Sopenharmony_ci}
32508c2ecf20Sopenharmony_ci
32518c2ecf20Sopenharmony_ci/*
32528c2ecf20Sopenharmony_ci * DSP Channel Select
32538c2ecf20Sopenharmony_ci */
32548c2ecf20Sopenharmony_ciregister DSPSELECT {
32558c2ecf20Sopenharmony_ci	address			0x0C4
32568c2ecf20Sopenharmony_ci	access_mode	RW
32578c2ecf20Sopenharmony_ci	modes		M_CFG
32588c2ecf20Sopenharmony_ci	count		1
32598c2ecf20Sopenharmony_ci	field	AUTOINCEN	0x80
32608c2ecf20Sopenharmony_ci	field	DSPSEL		0x1F
32618c2ecf20Sopenharmony_ci	dont_generate_debug_code
32628c2ecf20Sopenharmony_ci}
32638c2ecf20Sopenharmony_ci
32648c2ecf20Sopenharmony_ciconst NUMDSPS 0x14
32658c2ecf20Sopenharmony_ci
32668c2ecf20Sopenharmony_ci/*
32678c2ecf20Sopenharmony_ci * Write Bias Control
32688c2ecf20Sopenharmony_ci */
32698c2ecf20Sopenharmony_ciregister WRTBIASCTL {
32708c2ecf20Sopenharmony_ci	address			0x0C5
32718c2ecf20Sopenharmony_ci	access_mode	WO
32728c2ecf20Sopenharmony_ci	modes		M_CFG
32738c2ecf20Sopenharmony_ci	count		3
32748c2ecf20Sopenharmony_ci	field	AUTOXBCDIS	0x80
32758c2ecf20Sopenharmony_ci	field	XMITMANVAL	0x3F
32768c2ecf20Sopenharmony_ci	dont_generate_debug_code
32778c2ecf20Sopenharmony_ci}
32788c2ecf20Sopenharmony_ci
32798c2ecf20Sopenharmony_ci/*
32808c2ecf20Sopenharmony_ci * Currently the WRTBIASCTL is the same as the default.
32818c2ecf20Sopenharmony_ci */
32828c2ecf20Sopenharmony_ciconst WRTBIASCTL_HP_DEFAULT 0x0
32838c2ecf20Sopenharmony_ci
32848c2ecf20Sopenharmony_ci/*
32858c2ecf20Sopenharmony_ci * Receiver Bias Control
32868c2ecf20Sopenharmony_ci */
32878c2ecf20Sopenharmony_ciregister RCVRBIOSCTL {
32888c2ecf20Sopenharmony_ci	address			0x0C6
32898c2ecf20Sopenharmony_ci	access_mode	WO
32908c2ecf20Sopenharmony_ci	modes		M_CFG
32918c2ecf20Sopenharmony_ci	field	AUTORBCDIS	0x80
32928c2ecf20Sopenharmony_ci	field	RCVRMANVAL	0x3F
32938c2ecf20Sopenharmony_ci}
32948c2ecf20Sopenharmony_ci
32958c2ecf20Sopenharmony_ci/*
32968c2ecf20Sopenharmony_ci * Write Bias Calculator
32978c2ecf20Sopenharmony_ci */
32988c2ecf20Sopenharmony_ciregister WRTBIASCALC {
32998c2ecf20Sopenharmony_ci	address			0x0C7
33008c2ecf20Sopenharmony_ci	access_mode	RO
33018c2ecf20Sopenharmony_ci	modes		M_CFG
33028c2ecf20Sopenharmony_ci}
33038c2ecf20Sopenharmony_ci
33048c2ecf20Sopenharmony_ci/*
33058c2ecf20Sopenharmony_ci * Data FIFO Pointers
33068c2ecf20Sopenharmony_ci * Contains the byte offset from DFWADDR and DWRADDR to the current
33078c2ecf20Sopenharmony_ci * FIFO write/read locations.
33088c2ecf20Sopenharmony_ci */
33098c2ecf20Sopenharmony_ciregister DFPTRS {
33108c2ecf20Sopenharmony_ci	address			0x0C8
33118c2ecf20Sopenharmony_ci	access_mode	RW
33128c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
33138c2ecf20Sopenharmony_ci}
33148c2ecf20Sopenharmony_ci
33158c2ecf20Sopenharmony_ci/*
33168c2ecf20Sopenharmony_ci * Receiver Bias Calculator
33178c2ecf20Sopenharmony_ci */
33188c2ecf20Sopenharmony_ciregister RCVRBIASCALC {
33198c2ecf20Sopenharmony_ci	address			0x0C8
33208c2ecf20Sopenharmony_ci	access_mode	RO
33218c2ecf20Sopenharmony_ci	modes		M_CFG
33228c2ecf20Sopenharmony_ci}
33238c2ecf20Sopenharmony_ci
33248c2ecf20Sopenharmony_ci/*
33258c2ecf20Sopenharmony_ci * Data FIFO Backup Read Pointer
33268c2ecf20Sopenharmony_ci * Contains the data FIFO address to be restored if the last
33278c2ecf20Sopenharmony_ci * data accessed from the data FIFO was not transferred successfully.
33288c2ecf20Sopenharmony_ci */
33298c2ecf20Sopenharmony_ciregister DFBKPTR {
33308c2ecf20Sopenharmony_ci	address			0x0C9
33318c2ecf20Sopenharmony_ci	access_mode	RW
33328c2ecf20Sopenharmony_ci	size		2
33338c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
33348c2ecf20Sopenharmony_ci}
33358c2ecf20Sopenharmony_ci
33368c2ecf20Sopenharmony_ci/*
33378c2ecf20Sopenharmony_ci * Skew Calculator
33388c2ecf20Sopenharmony_ci */
33398c2ecf20Sopenharmony_ciregister SKEWCALC {
33408c2ecf20Sopenharmony_ci	address			0x0C9
33418c2ecf20Sopenharmony_ci	access_mode	RO
33428c2ecf20Sopenharmony_ci	modes		M_CFG
33438c2ecf20Sopenharmony_ci}
33448c2ecf20Sopenharmony_ci
33458c2ecf20Sopenharmony_ci/*
33468c2ecf20Sopenharmony_ci * Data FIFO Debug Control
33478c2ecf20Sopenharmony_ci */
33488c2ecf20Sopenharmony_ciregister DFDBCTL {
33498c2ecf20Sopenharmony_ci	address				0x0CB
33508c2ecf20Sopenharmony_ci	access_mode	RW
33518c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
33528c2ecf20Sopenharmony_ci	field	DFF_CIO_WR_RDY		0x20
33538c2ecf20Sopenharmony_ci	field	DFF_CIO_RD_RDY		0x10
33548c2ecf20Sopenharmony_ci	field	DFF_DIR_ERR		0x08
33558c2ecf20Sopenharmony_ci	field	DFF_RAMBIST_FAIL	0x04
33568c2ecf20Sopenharmony_ci	field	DFF_RAMBIST_DONE	0x02
33578c2ecf20Sopenharmony_ci	field	DFF_RAMBIST_EN		0x01
33588c2ecf20Sopenharmony_ci}
33598c2ecf20Sopenharmony_ci
33608c2ecf20Sopenharmony_ci/*
33618c2ecf20Sopenharmony_ci * Data FIFO Space Count
33628c2ecf20Sopenharmony_ci * Number of FIFO locations that are free.
33638c2ecf20Sopenharmony_ci */
33648c2ecf20Sopenharmony_ciregister DFSCNT {
33658c2ecf20Sopenharmony_ci	address			0x0CC
33668c2ecf20Sopenharmony_ci	access_mode	RO
33678c2ecf20Sopenharmony_ci	size		2
33688c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
33698c2ecf20Sopenharmony_ci}
33708c2ecf20Sopenharmony_ci
33718c2ecf20Sopenharmony_ci/*
33728c2ecf20Sopenharmony_ci * Data FIFO Byte Count
33738c2ecf20Sopenharmony_ci * Number of filled FIFO locations.
33748c2ecf20Sopenharmony_ci */
33758c2ecf20Sopenharmony_ciregister DFBCNT {
33768c2ecf20Sopenharmony_ci	address			0x0CE
33778c2ecf20Sopenharmony_ci	access_mode	RO
33788c2ecf20Sopenharmony_ci	size		2
33798c2ecf20Sopenharmony_ci	modes		M_DFF0, M_DFF1
33808c2ecf20Sopenharmony_ci}
33818c2ecf20Sopenharmony_ci
33828c2ecf20Sopenharmony_ci/*
33838c2ecf20Sopenharmony_ci * Sequencer Program Overlay Address.
33848c2ecf20Sopenharmony_ci * Low address must be written prior to high address.
33858c2ecf20Sopenharmony_ci */
33868c2ecf20Sopenharmony_ciregister OVLYADDR {
33878c2ecf20Sopenharmony_ci	address			0x0D4
33888c2ecf20Sopenharmony_ci	modes		M_SCSI
33898c2ecf20Sopenharmony_ci	size		2
33908c2ecf20Sopenharmony_ci	access_mode	RW
33918c2ecf20Sopenharmony_ci}
33928c2ecf20Sopenharmony_ci
33938c2ecf20Sopenharmony_ci/*
33948c2ecf20Sopenharmony_ci * Sequencer Control 0
33958c2ecf20Sopenharmony_ci * Error detection mode, speed configuration,
33968c2ecf20Sopenharmony_ci * single step, breakpoints and program load.
33978c2ecf20Sopenharmony_ci */
33988c2ecf20Sopenharmony_ciregister SEQCTL0 {
33998c2ecf20Sopenharmony_ci	address			0x0D6
34008c2ecf20Sopenharmony_ci	access_mode	RW
34018c2ecf20Sopenharmony_ci	count		11
34028c2ecf20Sopenharmony_ci	field	PERRORDIS	0x80
34038c2ecf20Sopenharmony_ci	field	PAUSEDIS	0x40
34048c2ecf20Sopenharmony_ci	field	FAILDIS		0x20
34058c2ecf20Sopenharmony_ci	field	FASTMODE	0x10
34068c2ecf20Sopenharmony_ci	field	BRKADRINTEN	0x08
34078c2ecf20Sopenharmony_ci	field	STEP		0x04
34088c2ecf20Sopenharmony_ci	field	SEQRESET	0x02
34098c2ecf20Sopenharmony_ci	field	LOADRAM		0x01
34108c2ecf20Sopenharmony_ci}
34118c2ecf20Sopenharmony_ci
34128c2ecf20Sopenharmony_ci/*
34138c2ecf20Sopenharmony_ci * Sequencer Control 1
34148c2ecf20Sopenharmony_ci * Instruction RAM Diagnostics
34158c2ecf20Sopenharmony_ci */
34168c2ecf20Sopenharmony_ciregister SEQCTL1 {
34178c2ecf20Sopenharmony_ci	address			0x0D7
34188c2ecf20Sopenharmony_ci	access_mode RW
34198c2ecf20Sopenharmony_ci	field	OVRLAY_DATA_CHK	0x08
34208c2ecf20Sopenharmony_ci	field	RAMBIST_DONE	0x04
34218c2ecf20Sopenharmony_ci	field	RAMBIST_FAIL	0x02
34228c2ecf20Sopenharmony_ci	field	RAMBIST_EN	0x01
34238c2ecf20Sopenharmony_ci}
34248c2ecf20Sopenharmony_ci
34258c2ecf20Sopenharmony_ci/*
34268c2ecf20Sopenharmony_ci * Sequencer Flags
34278c2ecf20Sopenharmony_ci * Zero and Carry state of the ALU.
34288c2ecf20Sopenharmony_ci */
34298c2ecf20Sopenharmony_ciregister FLAGS {
34308c2ecf20Sopenharmony_ci	address			0x0D8
34318c2ecf20Sopenharmony_ci	access_mode 	RO
34328c2ecf20Sopenharmony_ci	count		23
34338c2ecf20Sopenharmony_ci	field	ZERO		0x02
34348c2ecf20Sopenharmony_ci	field	CARRY		0x01
34358c2ecf20Sopenharmony_ci	dont_generate_debug_code
34368c2ecf20Sopenharmony_ci}
34378c2ecf20Sopenharmony_ci
34388c2ecf20Sopenharmony_ci/*
34398c2ecf20Sopenharmony_ci * Sequencer Interrupt Control
34408c2ecf20Sopenharmony_ci */ 
34418c2ecf20Sopenharmony_ciregister SEQINTCTL {
34428c2ecf20Sopenharmony_ci	address			0x0D9
34438c2ecf20Sopenharmony_ci	access_mode RW
34448c2ecf20Sopenharmony_ci	field	INTVEC1DSL	0x80
34458c2ecf20Sopenharmony_ci	field	INT1_CONTEXT	0x20
34468c2ecf20Sopenharmony_ci	field	SCS_SEQ_INT1M1	0x10
34478c2ecf20Sopenharmony_ci	field	SCS_SEQ_INT1M0	0x08
34488c2ecf20Sopenharmony_ci	field	INTMASK2	0x04
34498c2ecf20Sopenharmony_ci	field	INTMASK1	0x02
34508c2ecf20Sopenharmony_ci	field	IRET		0x01
34518c2ecf20Sopenharmony_ci}
34528c2ecf20Sopenharmony_ci
34538c2ecf20Sopenharmony_ci/*
34548c2ecf20Sopenharmony_ci * Sequencer RAM Data Port
34558c2ecf20Sopenharmony_ci * Single byte window into the Sequencer Instruction Ram area starting
34568c2ecf20Sopenharmony_ci * at the address specified by OVLYADDR.  To write a full instruction word,
34578c2ecf20Sopenharmony_ci * simply write four bytes in succession.  OVLYADDR will increment after the
34588c2ecf20Sopenharmony_ci * most significant instrution byte (the byte with the parity bit) is written.
34598c2ecf20Sopenharmony_ci */
34608c2ecf20Sopenharmony_ciregister SEQRAM {
34618c2ecf20Sopenharmony_ci	address			0x0DA
34628c2ecf20Sopenharmony_ci	access_mode 	RW
34638c2ecf20Sopenharmony_ci	count		2
34648c2ecf20Sopenharmony_ci	dont_generate_debug_code
34658c2ecf20Sopenharmony_ci}
34668c2ecf20Sopenharmony_ci
34678c2ecf20Sopenharmony_ci/*
34688c2ecf20Sopenharmony_ci * Sequencer Program Counter
34698c2ecf20Sopenharmony_ci * Low byte must be written prior to high byte.
34708c2ecf20Sopenharmony_ci */
34718c2ecf20Sopenharmony_ciregister PRGMCNT {
34728c2ecf20Sopenharmony_ci	address			0x0DE
34738c2ecf20Sopenharmony_ci	access_mode	RW
34748c2ecf20Sopenharmony_ci	size		2
34758c2ecf20Sopenharmony_ci	count		5
34768c2ecf20Sopenharmony_ci	dont_generate_debug_code
34778c2ecf20Sopenharmony_ci}
34788c2ecf20Sopenharmony_ci
34798c2ecf20Sopenharmony_ci/*
34808c2ecf20Sopenharmony_ci * Accumulator
34818c2ecf20Sopenharmony_ci */
34828c2ecf20Sopenharmony_ciregister ACCUM {
34838c2ecf20Sopenharmony_ci	address			0x0E0
34848c2ecf20Sopenharmony_ci	access_mode 	RW
34858c2ecf20Sopenharmony_ci	accumulator
34868c2ecf20Sopenharmony_ci	dont_generate_debug_code
34878c2ecf20Sopenharmony_ci}
34888c2ecf20Sopenharmony_ci
34898c2ecf20Sopenharmony_ci/*
34908c2ecf20Sopenharmony_ci * Source Index Register
34918c2ecf20Sopenharmony_ci * Incrementing index for reads of SINDIR and the destination (low byte only)
34928c2ecf20Sopenharmony_ci * for any immediate operands passed in jmp, jc, jnc, call instructions.
34938c2ecf20Sopenharmony_ci * Example:
34948c2ecf20Sopenharmony_ci *		mvi	0xFF	call some_routine;
34958c2ecf20Sopenharmony_ci *
34968c2ecf20Sopenharmony_ci *  Will set SINDEX[0] to 0xFF and call the routine "some_routine.
34978c2ecf20Sopenharmony_ci */
34988c2ecf20Sopenharmony_ciregister SINDEX	{
34998c2ecf20Sopenharmony_ci	address			0x0E2
35008c2ecf20Sopenharmony_ci	access_mode	RW
35018c2ecf20Sopenharmony_ci	size		2
35028c2ecf20Sopenharmony_ci	sindex
35038c2ecf20Sopenharmony_ci	dont_generate_debug_code
35048c2ecf20Sopenharmony_ci}
35058c2ecf20Sopenharmony_ci
35068c2ecf20Sopenharmony_ci/*
35078c2ecf20Sopenharmony_ci * Destination Index Register
35088c2ecf20Sopenharmony_ci * Incrementing index for writes to DINDIR.  Can be used as a scratch register.
35098c2ecf20Sopenharmony_ci */
35108c2ecf20Sopenharmony_ciregister DINDEX {
35118c2ecf20Sopenharmony_ci	address			0x0E4
35128c2ecf20Sopenharmony_ci	access_mode	RW
35138c2ecf20Sopenharmony_ci	size		2
35148c2ecf20Sopenharmony_ci	dont_generate_debug_code
35158c2ecf20Sopenharmony_ci}
35168c2ecf20Sopenharmony_ci
35178c2ecf20Sopenharmony_ci/*
35188c2ecf20Sopenharmony_ci * Break Address
35198c2ecf20Sopenharmony_ci * Sequencer instruction breakpoint address address.
35208c2ecf20Sopenharmony_ci */
35218c2ecf20Sopenharmony_ciregister BRKADDR0 {
35228c2ecf20Sopenharmony_ci	address			0x0E6
35238c2ecf20Sopenharmony_ci	access_mode	RW
35248c2ecf20Sopenharmony_ci}
35258c2ecf20Sopenharmony_ci
35268c2ecf20Sopenharmony_ciregister BRKADDR1 {
35278c2ecf20Sopenharmony_ci	address			0x0E6
35288c2ecf20Sopenharmony_ci	access_mode	RW
35298c2ecf20Sopenharmony_ci	field	BRKDIS		0x80	/* Disable Breakpoint */
35308c2ecf20Sopenharmony_ci}
35318c2ecf20Sopenharmony_ci
35328c2ecf20Sopenharmony_ci/*
35338c2ecf20Sopenharmony_ci * All Ones
35348c2ecf20Sopenharmony_ci * All reads to this register return the value 0xFF.
35358c2ecf20Sopenharmony_ci */
35368c2ecf20Sopenharmony_ciregister ALLONES {
35378c2ecf20Sopenharmony_ci	address			0x0E8
35388c2ecf20Sopenharmony_ci	access_mode RO
35398c2ecf20Sopenharmony_ci	allones
35408c2ecf20Sopenharmony_ci	dont_generate_debug_code
35418c2ecf20Sopenharmony_ci}
35428c2ecf20Sopenharmony_ci
35438c2ecf20Sopenharmony_ci/*
35448c2ecf20Sopenharmony_ci * All Zeros
35458c2ecf20Sopenharmony_ci * All reads to this register return the value 0.
35468c2ecf20Sopenharmony_ci */
35478c2ecf20Sopenharmony_ciregister ALLZEROS {
35488c2ecf20Sopenharmony_ci	address			0x0EA
35498c2ecf20Sopenharmony_ci	access_mode RO
35508c2ecf20Sopenharmony_ci	allzeros
35518c2ecf20Sopenharmony_ci	dont_generate_debug_code
35528c2ecf20Sopenharmony_ci}
35538c2ecf20Sopenharmony_ci
35548c2ecf20Sopenharmony_ci/*
35558c2ecf20Sopenharmony_ci * No Destination
35568c2ecf20Sopenharmony_ci * Writes to this register have no effect.
35578c2ecf20Sopenharmony_ci */
35588c2ecf20Sopenharmony_ciregister NONE {
35598c2ecf20Sopenharmony_ci	address			0x0EA
35608c2ecf20Sopenharmony_ci	access_mode WO
35618c2ecf20Sopenharmony_ci	none
35628c2ecf20Sopenharmony_ci	dont_generate_debug_code
35638c2ecf20Sopenharmony_ci}
35648c2ecf20Sopenharmony_ci
35658c2ecf20Sopenharmony_ci/*
35668c2ecf20Sopenharmony_ci * Source Index Indirect
35678c2ecf20Sopenharmony_ci * Reading this register is equivalent to reading (register_base + SINDEX) and
35688c2ecf20Sopenharmony_ci * incrementing SINDEX by 1.
35698c2ecf20Sopenharmony_ci */
35708c2ecf20Sopenharmony_ciregister SINDIR	{
35718c2ecf20Sopenharmony_ci	address			0x0EC
35728c2ecf20Sopenharmony_ci	access_mode RO
35738c2ecf20Sopenharmony_ci	dont_generate_debug_code
35748c2ecf20Sopenharmony_ci}
35758c2ecf20Sopenharmony_ci
35768c2ecf20Sopenharmony_ci/*
35778c2ecf20Sopenharmony_ci * Destination Index Indirect
35788c2ecf20Sopenharmony_ci * Writing this register is equivalent to writing to (register_base + DINDEX)
35798c2ecf20Sopenharmony_ci * and incrementing DINDEX by 1.
35808c2ecf20Sopenharmony_ci */
35818c2ecf20Sopenharmony_ciregister DINDIR	 {
35828c2ecf20Sopenharmony_ci	address			0x0ED
35838c2ecf20Sopenharmony_ci	access_mode WO
35848c2ecf20Sopenharmony_ci	dont_generate_debug_code
35858c2ecf20Sopenharmony_ci}
35868c2ecf20Sopenharmony_ci
35878c2ecf20Sopenharmony_ci/*
35888c2ecf20Sopenharmony_ci * Function One
35898c2ecf20Sopenharmony_ci * 2's complement to bit value conversion.  Write the 2's complement value
35908c2ecf20Sopenharmony_ci * (0-7 only) to the top nibble and retrieve the bit indexed by that value
35918c2ecf20Sopenharmony_ci * on the next read of this register. 
35928c2ecf20Sopenharmony_ci * Example:
35938c2ecf20Sopenharmony_ci *	Write	0x60
35948c2ecf20Sopenharmony_ci *	Read	0x40
35958c2ecf20Sopenharmony_ci */
35968c2ecf20Sopenharmony_ciregister FUNCTION1 {
35978c2ecf20Sopenharmony_ci	address			0x0F0
35988c2ecf20Sopenharmony_ci	access_mode RW
35998c2ecf20Sopenharmony_ci}
36008c2ecf20Sopenharmony_ci
36018c2ecf20Sopenharmony_ci/*
36028c2ecf20Sopenharmony_ci * Stack
36038c2ecf20Sopenharmony_ci * Window into the stack.  Each stack location is 10 bits wide reported
36048c2ecf20Sopenharmony_ci * low byte followed by high byte.  There are 8 stack locations.
36058c2ecf20Sopenharmony_ci */
36068c2ecf20Sopenharmony_ciregister STACK {
36078c2ecf20Sopenharmony_ci	address			0x0F2
36088c2ecf20Sopenharmony_ci	access_mode RW
36098c2ecf20Sopenharmony_ci	dont_generate_debug_code
36108c2ecf20Sopenharmony_ci}
36118c2ecf20Sopenharmony_ci
36128c2ecf20Sopenharmony_ci/*
36138c2ecf20Sopenharmony_ci * Interrupt Vector 1 Address
36148c2ecf20Sopenharmony_ci * Interrupt branch address for SCS SEQ_INT1 mode 0 and 1 interrupts.
36158c2ecf20Sopenharmony_ci */
36168c2ecf20Sopenharmony_ciregister INTVEC1_ADDR {
36178c2ecf20Sopenharmony_ci	address			0x0F4
36188c2ecf20Sopenharmony_ci	access_mode	RW
36198c2ecf20Sopenharmony_ci	size		2
36208c2ecf20Sopenharmony_ci	modes		M_CFG
36218c2ecf20Sopenharmony_ci	count		1
36228c2ecf20Sopenharmony_ci	dont_generate_debug_code
36238c2ecf20Sopenharmony_ci}
36248c2ecf20Sopenharmony_ci
36258c2ecf20Sopenharmony_ci/*
36268c2ecf20Sopenharmony_ci * Current Address
36278c2ecf20Sopenharmony_ci * Address of the SEQRAM instruction currently executing instruction.
36288c2ecf20Sopenharmony_ci */
36298c2ecf20Sopenharmony_ciregister CURADDR {
36308c2ecf20Sopenharmony_ci	address			0x0F4
36318c2ecf20Sopenharmony_ci	access_mode	RW
36328c2ecf20Sopenharmony_ci	size		2
36338c2ecf20Sopenharmony_ci	modes		M_SCSI
36348c2ecf20Sopenharmony_ci	count		2
36358c2ecf20Sopenharmony_ci	dont_generate_debug_code
36368c2ecf20Sopenharmony_ci}
36378c2ecf20Sopenharmony_ci
36388c2ecf20Sopenharmony_ci/*
36398c2ecf20Sopenharmony_ci * Interrupt Vector 2 Address
36408c2ecf20Sopenharmony_ci * Interrupt branch address for HST_SEQ_INT2 interrupts.
36418c2ecf20Sopenharmony_ci */
36428c2ecf20Sopenharmony_ciregister INTVEC2_ADDR {
36438c2ecf20Sopenharmony_ci	address			0x0F6
36448c2ecf20Sopenharmony_ci	access_mode	RW
36458c2ecf20Sopenharmony_ci	size		2
36468c2ecf20Sopenharmony_ci	modes		M_CFG
36478c2ecf20Sopenharmony_ci	count		1
36488c2ecf20Sopenharmony_ci	dont_generate_debug_code
36498c2ecf20Sopenharmony_ci}
36508c2ecf20Sopenharmony_ci
36518c2ecf20Sopenharmony_ci/*
36528c2ecf20Sopenharmony_ci * Last Address
36538c2ecf20Sopenharmony_ci * Address of the SEQRAM instruction executed prior to the current instruction.
36548c2ecf20Sopenharmony_ci */
36558c2ecf20Sopenharmony_ciregister LASTADDR {
36568c2ecf20Sopenharmony_ci	address			0x0F6
36578c2ecf20Sopenharmony_ci	access_mode	RW
36588c2ecf20Sopenharmony_ci	size		2
36598c2ecf20Sopenharmony_ci	modes		M_SCSI
36608c2ecf20Sopenharmony_ci}
36618c2ecf20Sopenharmony_ci
36628c2ecf20Sopenharmony_ciregister AHD_PCI_CONFIG_BASE {
36638c2ecf20Sopenharmony_ci	address			0x100
36648c2ecf20Sopenharmony_ci	access_mode	RW
36658c2ecf20Sopenharmony_ci	size		256
36668c2ecf20Sopenharmony_ci	modes		M_CFG
36678c2ecf20Sopenharmony_ci}
36688c2ecf20Sopenharmony_ci
36698c2ecf20Sopenharmony_ci/* ---------------------- Scratch RAM Offsets ------------------------- */
36708c2ecf20Sopenharmony_ciscratch_ram {
36718c2ecf20Sopenharmony_ci	/* Mode Specific */
36728c2ecf20Sopenharmony_ci	address			0x0A0
36738c2ecf20Sopenharmony_ci	size	8
36748c2ecf20Sopenharmony_ci	modes	0, 1, 2, 3
36758c2ecf20Sopenharmony_ci	REG0 {
36768c2ecf20Sopenharmony_ci		size		2
36778c2ecf20Sopenharmony_ci		dont_generate_debug_code
36788c2ecf20Sopenharmony_ci	}
36798c2ecf20Sopenharmony_ci	REG1 {
36808c2ecf20Sopenharmony_ci		size		2
36818c2ecf20Sopenharmony_ci	}
36828c2ecf20Sopenharmony_ci	REG_ISR {
36838c2ecf20Sopenharmony_ci		size		2
36848c2ecf20Sopenharmony_ci		dont_generate_debug_code
36858c2ecf20Sopenharmony_ci	}
36868c2ecf20Sopenharmony_ci	SG_STATE {
36878c2ecf20Sopenharmony_ci		size		1
36888c2ecf20Sopenharmony_ci		field	SEGS_AVAIL	0x01
36898c2ecf20Sopenharmony_ci		field	LOADING_NEEDED	0x02
36908c2ecf20Sopenharmony_ci		field	FETCH_INPROG	0x04
36918c2ecf20Sopenharmony_ci	}
36928c2ecf20Sopenharmony_ci	/*
36938c2ecf20Sopenharmony_ci	 * Track whether the transfer byte count for
36948c2ecf20Sopenharmony_ci	 * the current data phase is odd.
36958c2ecf20Sopenharmony_ci	 */
36968c2ecf20Sopenharmony_ci	DATA_COUNT_ODD {
36978c2ecf20Sopenharmony_ci		size		1
36988c2ecf20Sopenharmony_ci	}
36998c2ecf20Sopenharmony_ci}
37008c2ecf20Sopenharmony_ci
37018c2ecf20Sopenharmony_ciscratch_ram {
37028c2ecf20Sopenharmony_ci	/* Mode Specific */
37038c2ecf20Sopenharmony_ci	address			0x0F8
37048c2ecf20Sopenharmony_ci	size	8
37058c2ecf20Sopenharmony_ci	modes	0, 1, 2, 3
37068c2ecf20Sopenharmony_ci	LONGJMP_ADDR {
37078c2ecf20Sopenharmony_ci		size		2
37088c2ecf20Sopenharmony_ci		dont_generate_debug_code
37098c2ecf20Sopenharmony_ci	}
37108c2ecf20Sopenharmony_ci	ACCUM_SAVE {
37118c2ecf20Sopenharmony_ci		size		1
37128c2ecf20Sopenharmony_ci		dont_generate_debug_code
37138c2ecf20Sopenharmony_ci	}
37148c2ecf20Sopenharmony_ci}
37158c2ecf20Sopenharmony_ci
37168c2ecf20Sopenharmony_ci
37178c2ecf20Sopenharmony_ciscratch_ram {
37188c2ecf20Sopenharmony_ci	address			0x100
37198c2ecf20Sopenharmony_ci	size	128
37208c2ecf20Sopenharmony_ci	modes	0, 1, 2, 3
37218c2ecf20Sopenharmony_ci	/*
37228c2ecf20Sopenharmony_ci	 * Per "other-id" execution queues.  We use an array of
37238c2ecf20Sopenharmony_ci	 * tail pointers into lists of SCBs sorted by "other-id".
37248c2ecf20Sopenharmony_ci	 * The execution head pointer threads the head SCBs for
37258c2ecf20Sopenharmony_ci	 * each list.
37268c2ecf20Sopenharmony_ci	 */
37278c2ecf20Sopenharmony_ci	WAITING_SCB_TAILS {
37288c2ecf20Sopenharmony_ci		size		32
37298c2ecf20Sopenharmony_ci		dont_generate_debug_code
37308c2ecf20Sopenharmony_ci	}
37318c2ecf20Sopenharmony_ci	WAITING_TID_HEAD {
37328c2ecf20Sopenharmony_ci		size		2
37338c2ecf20Sopenharmony_ci		dont_generate_debug_code
37348c2ecf20Sopenharmony_ci	}
37358c2ecf20Sopenharmony_ci	WAITING_TID_TAIL {
37368c2ecf20Sopenharmony_ci		size		2
37378c2ecf20Sopenharmony_ci		dont_generate_debug_code
37388c2ecf20Sopenharmony_ci	}
37398c2ecf20Sopenharmony_ci	/*
37408c2ecf20Sopenharmony_ci	 * SCBID of the next SCB in the new SCB queue.
37418c2ecf20Sopenharmony_ci	 */
37428c2ecf20Sopenharmony_ci	NEXT_QUEUED_SCB_ADDR {
37438c2ecf20Sopenharmony_ci		size		4
37448c2ecf20Sopenharmony_ci		dont_generate_debug_code
37458c2ecf20Sopenharmony_ci	}
37468c2ecf20Sopenharmony_ci	/*
37478c2ecf20Sopenharmony_ci	 * head of list of SCBs that have
37488c2ecf20Sopenharmony_ci	 * completed but have not been
37498c2ecf20Sopenharmony_ci	 * put into the qoutfifo.
37508c2ecf20Sopenharmony_ci	 */
37518c2ecf20Sopenharmony_ci	COMPLETE_SCB_HEAD {
37528c2ecf20Sopenharmony_ci		size		2
37538c2ecf20Sopenharmony_ci		dont_generate_debug_code
37548c2ecf20Sopenharmony_ci	}
37558c2ecf20Sopenharmony_ci	/*
37568c2ecf20Sopenharmony_ci	 * The list of completed SCBs in
37578c2ecf20Sopenharmony_ci	 * the active DMA.
37588c2ecf20Sopenharmony_ci	 */
37598c2ecf20Sopenharmony_ci	COMPLETE_SCB_DMAINPROG_HEAD {
37608c2ecf20Sopenharmony_ci		size		2
37618c2ecf20Sopenharmony_ci		dont_generate_debug_code
37628c2ecf20Sopenharmony_ci	}
37638c2ecf20Sopenharmony_ci	/*
37648c2ecf20Sopenharmony_ci	 * head of list of SCBs that have
37658c2ecf20Sopenharmony_ci	 * completed but need to be uploaded
37668c2ecf20Sopenharmony_ci	 * to the host prior to being completed.
37678c2ecf20Sopenharmony_ci	 */
37688c2ecf20Sopenharmony_ci	COMPLETE_DMA_SCB_HEAD {
37698c2ecf20Sopenharmony_ci		size		2
37708c2ecf20Sopenharmony_ci		dont_generate_debug_code
37718c2ecf20Sopenharmony_ci	}
37728c2ecf20Sopenharmony_ci	/*
37738c2ecf20Sopenharmony_ci	 * tail of list of SCBs that have
37748c2ecf20Sopenharmony_ci	 * completed but need to be uploaded
37758c2ecf20Sopenharmony_ci	 * to the host prior to being completed.
37768c2ecf20Sopenharmony_ci	 */
37778c2ecf20Sopenharmony_ci	COMPLETE_DMA_SCB_TAIL {
37788c2ecf20Sopenharmony_ci		size		2
37798c2ecf20Sopenharmony_ci		dont_generate_debug_code
37808c2ecf20Sopenharmony_ci	}
37818c2ecf20Sopenharmony_ci	/*
37828c2ecf20Sopenharmony_ci	 * head of list of SCBs that have
37838c2ecf20Sopenharmony_ci	 * been uploaded to the host, but cannot
37848c2ecf20Sopenharmony_ci	 * be completed until the QFREEZE is in
37858c2ecf20Sopenharmony_ci	 * full effect (i.e. no selections pending).
37868c2ecf20Sopenharmony_ci	 */
37878c2ecf20Sopenharmony_ci	COMPLETE_ON_QFREEZE_HEAD {
37888c2ecf20Sopenharmony_ci		size		2
37898c2ecf20Sopenharmony_ci		dont_generate_debug_code
37908c2ecf20Sopenharmony_ci	}
37918c2ecf20Sopenharmony_ci	/*
37928c2ecf20Sopenharmony_ci	 * Counting semaphore to prevent new select-outs
37938c2ecf20Sopenharmony_ci	 * The queue is frozen so long as the sequencer
37948c2ecf20Sopenharmony_ci	 * and kernel freeze counts differ.
37958c2ecf20Sopenharmony_ci	 */
37968c2ecf20Sopenharmony_ci	QFREEZE_COUNT {
37978c2ecf20Sopenharmony_ci		size		2
37988c2ecf20Sopenharmony_ci	}
37998c2ecf20Sopenharmony_ci	KERNEL_QFREEZE_COUNT {
38008c2ecf20Sopenharmony_ci		size		2
38018c2ecf20Sopenharmony_ci	}
38028c2ecf20Sopenharmony_ci	/*
38038c2ecf20Sopenharmony_ci	 * Mode to restore on legacy idle loop exit.
38048c2ecf20Sopenharmony_ci	 */
38058c2ecf20Sopenharmony_ci	SAVED_MODE {
38068c2ecf20Sopenharmony_ci		size		1
38078c2ecf20Sopenharmony_ci	}
38088c2ecf20Sopenharmony_ci	/*
38098c2ecf20Sopenharmony_ci	 * Single byte buffer used to designate the type or message
38108c2ecf20Sopenharmony_ci	 * to send to a target.
38118c2ecf20Sopenharmony_ci	 */
38128c2ecf20Sopenharmony_ci	MSG_OUT {
38138c2ecf20Sopenharmony_ci		size		1
38148c2ecf20Sopenharmony_ci		dont_generate_debug_code
38158c2ecf20Sopenharmony_ci	}
38168c2ecf20Sopenharmony_ci	/* Parameters for DMA Logic */
38178c2ecf20Sopenharmony_ci	DMAPARAMS {
38188c2ecf20Sopenharmony_ci		size		1
38198c2ecf20Sopenharmony_ci		count		8
38208c2ecf20Sopenharmony_ci		field	PRELOADEN	0x80
38218c2ecf20Sopenharmony_ci		field	WIDEODD		0x40
38228c2ecf20Sopenharmony_ci		field	SCSIEN		0x20
38238c2ecf20Sopenharmony_ci		field	SDMAEN		0x10
38248c2ecf20Sopenharmony_ci		field	SDMAENACK	0x10
38258c2ecf20Sopenharmony_ci		field	HDMAEN		0x08
38268c2ecf20Sopenharmony_ci		field	HDMAENACK	0x08
38278c2ecf20Sopenharmony_ci		field	DIRECTION	0x04	/* Set indicates PCI->SCSI */
38288c2ecf20Sopenharmony_ci		field	FIFOFLUSH	0x02
38298c2ecf20Sopenharmony_ci		field	FIFORESET	0x01
38308c2ecf20Sopenharmony_ci		dont_generate_debug_code
38318c2ecf20Sopenharmony_ci	}
38328c2ecf20Sopenharmony_ci	SEQ_FLAGS {
38338c2ecf20Sopenharmony_ci		size		1
38348c2ecf20Sopenharmony_ci		field	NOT_IDENTIFIED		0x80
38358c2ecf20Sopenharmony_ci		field	NO_CDB_SENT		0x40
38368c2ecf20Sopenharmony_ci		field	TARGET_CMD_IS_TAGGED	0x40
38378c2ecf20Sopenharmony_ci		field	DPHASE			0x20
38388c2ecf20Sopenharmony_ci		/* Target flags */
38398c2ecf20Sopenharmony_ci		field	TARG_CMD_PENDING	0x10
38408c2ecf20Sopenharmony_ci		field	CMDPHASE_PENDING	0x08
38418c2ecf20Sopenharmony_ci		field	DPHASE_PENDING		0x04
38428c2ecf20Sopenharmony_ci		field	SPHASE_PENDING		0x02
38438c2ecf20Sopenharmony_ci		field	NO_DISCONNECT		0x01
38448c2ecf20Sopenharmony_ci	}
38458c2ecf20Sopenharmony_ci	/*
38468c2ecf20Sopenharmony_ci	 * Temporary storage for the
38478c2ecf20Sopenharmony_ci	 * target/channel/lun of a
38488c2ecf20Sopenharmony_ci	 * reconnecting target
38498c2ecf20Sopenharmony_ci	 */
38508c2ecf20Sopenharmony_ci	SAVED_SCSIID {
38518c2ecf20Sopenharmony_ci		size		1
38528c2ecf20Sopenharmony_ci		dont_generate_debug_code
38538c2ecf20Sopenharmony_ci	}
38548c2ecf20Sopenharmony_ci	SAVED_LUN {
38558c2ecf20Sopenharmony_ci		size		1
38568c2ecf20Sopenharmony_ci		dont_generate_debug_code
38578c2ecf20Sopenharmony_ci	}
38588c2ecf20Sopenharmony_ci	/*
38598c2ecf20Sopenharmony_ci	 * The last bus phase as seen by the sequencer. 
38608c2ecf20Sopenharmony_ci	 */
38618c2ecf20Sopenharmony_ci	LASTPHASE {
38628c2ecf20Sopenharmony_ci		size		1
38638c2ecf20Sopenharmony_ci		field	CDI		0x80
38648c2ecf20Sopenharmony_ci		field	IOI		0x40
38658c2ecf20Sopenharmony_ci		field	MSGI		0x20
38668c2ecf20Sopenharmony_ci		field	P_BUSFREE	0x01
38678c2ecf20Sopenharmony_ci		enum	PHASE_MASK  CDO|IOO|MSGO {
38688c2ecf20Sopenharmony_ci			P_DATAOUT	0x0,
38698c2ecf20Sopenharmony_ci			P_DATAIN	IOO,
38708c2ecf20Sopenharmony_ci			P_DATAOUT_DT	P_DATAOUT|MSGO,
38718c2ecf20Sopenharmony_ci			P_DATAIN_DT	P_DATAIN|MSGO,
38728c2ecf20Sopenharmony_ci			P_COMMAND	CDO,
38738c2ecf20Sopenharmony_ci			P_MESGOUT	CDO|MSGO,
38748c2ecf20Sopenharmony_ci			P_STATUS	CDO|IOO,
38758c2ecf20Sopenharmony_ci			P_MESGIN	CDO|IOO|MSGO
38768c2ecf20Sopenharmony_ci		}
38778c2ecf20Sopenharmony_ci	}
38788c2ecf20Sopenharmony_ci	/*
38798c2ecf20Sopenharmony_ci	 * Value to "or" into the SCBPTR[1] value to
38808c2ecf20Sopenharmony_ci	 * indicate that an entry in the QINFIFO is valid.
38818c2ecf20Sopenharmony_ci	 */
38828c2ecf20Sopenharmony_ci	QOUTFIFO_ENTRY_VALID_TAG {
38838c2ecf20Sopenharmony_ci		size		1
38848c2ecf20Sopenharmony_ci		dont_generate_debug_code
38858c2ecf20Sopenharmony_ci	}
38868c2ecf20Sopenharmony_ci	/*
38878c2ecf20Sopenharmony_ci	 * Kernel and sequencer offsets into the queue of
38888c2ecf20Sopenharmony_ci	 * incoming target mode command descriptors.  The
38898c2ecf20Sopenharmony_ci	 * queue is full when the KERNEL_TQINPOS == TQINPOS.
38908c2ecf20Sopenharmony_ci	 */
38918c2ecf20Sopenharmony_ci	KERNEL_TQINPOS {
38928c2ecf20Sopenharmony_ci		size		1
38938c2ecf20Sopenharmony_ci		count		1
38948c2ecf20Sopenharmony_ci		dont_generate_debug_code
38958c2ecf20Sopenharmony_ci	}
38968c2ecf20Sopenharmony_ci	TQINPOS {
38978c2ecf20Sopenharmony_ci		size		1
38988c2ecf20Sopenharmony_ci		count		8
38998c2ecf20Sopenharmony_ci		dont_generate_debug_code
39008c2ecf20Sopenharmony_ci	}
39018c2ecf20Sopenharmony_ci	/*
39028c2ecf20Sopenharmony_ci	 * Base address of our shared data with the kernel driver in host
39038c2ecf20Sopenharmony_ci	 * memory.  This includes the qoutfifo and target mode
39048c2ecf20Sopenharmony_ci	 * incoming command queue.
39058c2ecf20Sopenharmony_ci	 */
39068c2ecf20Sopenharmony_ci	SHARED_DATA_ADDR {
39078c2ecf20Sopenharmony_ci		size		4
39088c2ecf20Sopenharmony_ci		dont_generate_debug_code
39098c2ecf20Sopenharmony_ci	}
39108c2ecf20Sopenharmony_ci	/*
39118c2ecf20Sopenharmony_ci	 * Pointer to location in host memory for next
39128c2ecf20Sopenharmony_ci	 * position in the qoutfifo.
39138c2ecf20Sopenharmony_ci	 */
39148c2ecf20Sopenharmony_ci	QOUTFIFO_NEXT_ADDR {
39158c2ecf20Sopenharmony_ci		size		4
39168c2ecf20Sopenharmony_ci		dont_generate_debug_code
39178c2ecf20Sopenharmony_ci	}
39188c2ecf20Sopenharmony_ci	ARG_1 {
39198c2ecf20Sopenharmony_ci		size		1
39208c2ecf20Sopenharmony_ci		mask	SEND_MSG		0x80
39218c2ecf20Sopenharmony_ci		mask	SEND_SENSE		0x40
39228c2ecf20Sopenharmony_ci		mask	SEND_REJ		0x20
39238c2ecf20Sopenharmony_ci		mask	MSGOUT_PHASEMIS		0x10
39248c2ecf20Sopenharmony_ci		mask	EXIT_MSG_LOOP		0x08
39258c2ecf20Sopenharmony_ci		mask	CONT_MSG_LOOP_WRITE	0x04
39268c2ecf20Sopenharmony_ci		mask	CONT_MSG_LOOP_READ	0x03
39278c2ecf20Sopenharmony_ci		mask	CONT_MSG_LOOP_TARG	0x02
39288c2ecf20Sopenharmony_ci		alias	RETURN_1
39298c2ecf20Sopenharmony_ci		dont_generate_debug_code
39308c2ecf20Sopenharmony_ci	}
39318c2ecf20Sopenharmony_ci	ARG_2 {
39328c2ecf20Sopenharmony_ci		size		1
39338c2ecf20Sopenharmony_ci		count		1
39348c2ecf20Sopenharmony_ci		alias	RETURN_2
39358c2ecf20Sopenharmony_ci		dont_generate_debug_code
39368c2ecf20Sopenharmony_ci	}
39378c2ecf20Sopenharmony_ci
39388c2ecf20Sopenharmony_ci	/*
39398c2ecf20Sopenharmony_ci	 * Snapshot of MSG_OUT taken after each message is sent.
39408c2ecf20Sopenharmony_ci	 */
39418c2ecf20Sopenharmony_ci	LAST_MSG {
39428c2ecf20Sopenharmony_ci		size		1
39438c2ecf20Sopenharmony_ci		dont_generate_debug_code
39448c2ecf20Sopenharmony_ci	}
39458c2ecf20Sopenharmony_ci
39468c2ecf20Sopenharmony_ci	/*
39478c2ecf20Sopenharmony_ci	 * Sequences the kernel driver has okayed for us.  This allows
39488c2ecf20Sopenharmony_ci	 * the driver to do things like prevent initiator or target
39498c2ecf20Sopenharmony_ci	 * operations.
39508c2ecf20Sopenharmony_ci	 */
39518c2ecf20Sopenharmony_ci	SCSISEQ_TEMPLATE {
39528c2ecf20Sopenharmony_ci		size		1
39538c2ecf20Sopenharmony_ci		count		7
39548c2ecf20Sopenharmony_ci		field	MANUALCTL	0x40
39558c2ecf20Sopenharmony_ci		field	ENSELI		0x20
39568c2ecf20Sopenharmony_ci		field	ENRSELI		0x10
39578c2ecf20Sopenharmony_ci		field	MANUALP		0x0C
39588c2ecf20Sopenharmony_ci		field	ENAUTOATNP	0x02
39598c2ecf20Sopenharmony_ci		field	ALTSTIM		0x01
39608c2ecf20Sopenharmony_ci		dont_generate_debug_code
39618c2ecf20Sopenharmony_ci	}
39628c2ecf20Sopenharmony_ci
39638c2ecf20Sopenharmony_ci	/*
39648c2ecf20Sopenharmony_ci	 * The initiator specified tag for this target mode transaction.
39658c2ecf20Sopenharmony_ci	 */
39668c2ecf20Sopenharmony_ci	INITIATOR_TAG {
39678c2ecf20Sopenharmony_ci		size		1
39688c2ecf20Sopenharmony_ci		count		1
39698c2ecf20Sopenharmony_ci		dont_generate_debug_code
39708c2ecf20Sopenharmony_ci	}
39718c2ecf20Sopenharmony_ci
39728c2ecf20Sopenharmony_ci	SEQ_FLAGS2 {
39738c2ecf20Sopenharmony_ci		size		1
39748c2ecf20Sopenharmony_ci		field	PENDING_MK_MESSAGE	0x01
39758c2ecf20Sopenharmony_ci		field	TARGET_MSG_PENDING	0x02
39768c2ecf20Sopenharmony_ci		field	SELECTOUT_QFROZEN	0x04
39778c2ecf20Sopenharmony_ci	}
39788c2ecf20Sopenharmony_ci
39798c2ecf20Sopenharmony_ci	ALLOCFIFO_SCBPTR {
39808c2ecf20Sopenharmony_ci		size		2
39818c2ecf20Sopenharmony_ci		dont_generate_debug_code
39828c2ecf20Sopenharmony_ci	}
39838c2ecf20Sopenharmony_ci
39848c2ecf20Sopenharmony_ci	/*
39858c2ecf20Sopenharmony_ci	 * The maximum amount of time to wait, when interrupt coalescing
39868c2ecf20Sopenharmony_ci	 * is enabled, before issuing a CMDCMPLT interrupt for a completed
39878c2ecf20Sopenharmony_ci	 * command.
39888c2ecf20Sopenharmony_ci	 */
39898c2ecf20Sopenharmony_ci	INT_COALESCING_TIMER {
39908c2ecf20Sopenharmony_ci		size		2
39918c2ecf20Sopenharmony_ci		dont_generate_debug_code
39928c2ecf20Sopenharmony_ci	}
39938c2ecf20Sopenharmony_ci
39948c2ecf20Sopenharmony_ci	/*
39958c2ecf20Sopenharmony_ci	 * The maximum number of commands to coalesce into a single interrupt.
39968c2ecf20Sopenharmony_ci	 * Actually the 2's complement of that value to simplify sequencer
39978c2ecf20Sopenharmony_ci	 * code.
39988c2ecf20Sopenharmony_ci	 */
39998c2ecf20Sopenharmony_ci	INT_COALESCING_MAXCMDS {
40008c2ecf20Sopenharmony_ci		size		1
40018c2ecf20Sopenharmony_ci		dont_generate_debug_code
40028c2ecf20Sopenharmony_ci	}
40038c2ecf20Sopenharmony_ci
40048c2ecf20Sopenharmony_ci	/*
40058c2ecf20Sopenharmony_ci	 * The minimum number of commands still outstanding required
40068c2ecf20Sopenharmony_ci	 * to continue coalescing (2's complement of value).
40078c2ecf20Sopenharmony_ci	 */
40088c2ecf20Sopenharmony_ci	INT_COALESCING_MINCMDS {
40098c2ecf20Sopenharmony_ci		size		1
40108c2ecf20Sopenharmony_ci		dont_generate_debug_code
40118c2ecf20Sopenharmony_ci	}
40128c2ecf20Sopenharmony_ci
40138c2ecf20Sopenharmony_ci	/*
40148c2ecf20Sopenharmony_ci	 * Number of commands "in-flight".
40158c2ecf20Sopenharmony_ci	 */
40168c2ecf20Sopenharmony_ci	CMDS_PENDING {
40178c2ecf20Sopenharmony_ci		size		2
40188c2ecf20Sopenharmony_ci		dont_generate_debug_code
40198c2ecf20Sopenharmony_ci	}
40208c2ecf20Sopenharmony_ci
40218c2ecf20Sopenharmony_ci	/*
40228c2ecf20Sopenharmony_ci	 * The count of commands that have been coalesced.
40238c2ecf20Sopenharmony_ci	 */
40248c2ecf20Sopenharmony_ci	INT_COALESCING_CMDCOUNT {
40258c2ecf20Sopenharmony_ci		size		1
40268c2ecf20Sopenharmony_ci		dont_generate_debug_code
40278c2ecf20Sopenharmony_ci	}
40288c2ecf20Sopenharmony_ci
40298c2ecf20Sopenharmony_ci	/*
40308c2ecf20Sopenharmony_ci	 * Since the HS_MAIBOX is self clearing, copy its contents to
40318c2ecf20Sopenharmony_ci	 * this position in scratch ram every time it changes.
40328c2ecf20Sopenharmony_ci	 */
40338c2ecf20Sopenharmony_ci	LOCAL_HS_MAILBOX {
40348c2ecf20Sopenharmony_ci		size		1
40358c2ecf20Sopenharmony_ci		dont_generate_debug_code
40368c2ecf20Sopenharmony_ci	}
40378c2ecf20Sopenharmony_ci	/*
40388c2ecf20Sopenharmony_ci	 * Target-mode CDB type to CDB length table used
40398c2ecf20Sopenharmony_ci	 * in non-packetized operation.
40408c2ecf20Sopenharmony_ci	 */
40418c2ecf20Sopenharmony_ci	CMDSIZE_TABLE {
40428c2ecf20Sopenharmony_ci		size		8
40438c2ecf20Sopenharmony_ci		count		8
40448c2ecf20Sopenharmony_ci		dont_generate_debug_code
40458c2ecf20Sopenharmony_ci	}
40468c2ecf20Sopenharmony_ci	/*
40478c2ecf20Sopenharmony_ci	 * When an SCB with the MK_MESSAGE flag is
40488c2ecf20Sopenharmony_ci	 * queued to the controller, it cannot enter
40498c2ecf20Sopenharmony_ci	 * the waiting for selection list until the
40508c2ecf20Sopenharmony_ci	 * selections for any previously queued
40518c2ecf20Sopenharmony_ci	 * commands to that target complete.  During
40528c2ecf20Sopenharmony_ci	 * the wait, the MK_MESSAGE SCB is queued
40538c2ecf20Sopenharmony_ci	 * here.
40548c2ecf20Sopenharmony_ci	 */
40558c2ecf20Sopenharmony_ci	MK_MESSAGE_SCB {
40568c2ecf20Sopenharmony_ci		size		2
40578c2ecf20Sopenharmony_ci	}
40588c2ecf20Sopenharmony_ci	/*
40598c2ecf20Sopenharmony_ci	 * Saved SCSIID of MK_MESSAGE_SCB to avoid
40608c2ecf20Sopenharmony_ci	 * an extra SCBPTR operation when deciding
40618c2ecf20Sopenharmony_ci	 * if the MK_MESSAGE_SCB can be run.
40628c2ecf20Sopenharmony_ci	 */
40638c2ecf20Sopenharmony_ci	MK_MESSAGE_SCSIID {
40648c2ecf20Sopenharmony_ci		size		1
40658c2ecf20Sopenharmony_ci	}
40668c2ecf20Sopenharmony_ci}
40678c2ecf20Sopenharmony_ci
40688c2ecf20Sopenharmony_ci/************************* Hardware SCB Definition ****************************/
40698c2ecf20Sopenharmony_ciscb {
40708c2ecf20Sopenharmony_ci	address			0x180
40718c2ecf20Sopenharmony_ci	size		64
40728c2ecf20Sopenharmony_ci	modes		0, 1, 2, 3
40738c2ecf20Sopenharmony_ci	SCB_RESIDUAL_DATACNT {
40748c2ecf20Sopenharmony_ci		size	4
40758c2ecf20Sopenharmony_ci		alias	SCB_CDB_STORE
40768c2ecf20Sopenharmony_ci		alias	SCB_HOST_CDB_PTR
40778c2ecf20Sopenharmony_ci		dont_generate_debug_code
40788c2ecf20Sopenharmony_ci	}
40798c2ecf20Sopenharmony_ci	SCB_RESIDUAL_SGPTR {
40808c2ecf20Sopenharmony_ci		size	4
40818c2ecf20Sopenharmony_ci		field	SG_ADDR_MASK		0xf8	/* In the last byte */
40828c2ecf20Sopenharmony_ci		field	SG_OVERRUN_RESID	0x02	/* In the first byte */
40838c2ecf20Sopenharmony_ci		field	SG_LIST_NULL		0x01	/* In the first byte */
40848c2ecf20Sopenharmony_ci		dont_generate_debug_code
40858c2ecf20Sopenharmony_ci	}
40868c2ecf20Sopenharmony_ci	SCB_SCSI_STATUS {
40878c2ecf20Sopenharmony_ci		size	1
40888c2ecf20Sopenharmony_ci		alias	SCB_HOST_CDB_LEN
40898c2ecf20Sopenharmony_ci		dont_generate_debug_code
40908c2ecf20Sopenharmony_ci	}
40918c2ecf20Sopenharmony_ci	SCB_TARGET_PHASES {
40928c2ecf20Sopenharmony_ci		size	1
40938c2ecf20Sopenharmony_ci		dont_generate_debug_code
40948c2ecf20Sopenharmony_ci	}
40958c2ecf20Sopenharmony_ci	SCB_TARGET_DATA_DIR {
40968c2ecf20Sopenharmony_ci		size	1
40978c2ecf20Sopenharmony_ci		dont_generate_debug_code
40988c2ecf20Sopenharmony_ci	}
40998c2ecf20Sopenharmony_ci	SCB_TARGET_ITAG {
41008c2ecf20Sopenharmony_ci		size	1
41018c2ecf20Sopenharmony_ci		dont_generate_debug_code
41028c2ecf20Sopenharmony_ci	}
41038c2ecf20Sopenharmony_ci	SCB_SENSE_BUSADDR {
41048c2ecf20Sopenharmony_ci		/*
41058c2ecf20Sopenharmony_ci		 * Only valid if CDB length is less than 13 bytes or
41068c2ecf20Sopenharmony_ci		 * we are using a CDB pointer.  Otherwise contains
41078c2ecf20Sopenharmony_ci		 * the last 4 bytes of embedded cdb information.
41088c2ecf20Sopenharmony_ci		 */
41098c2ecf20Sopenharmony_ci		size	4
41108c2ecf20Sopenharmony_ci		alias	SCB_NEXT_COMPLETE
41118c2ecf20Sopenharmony_ci		dont_generate_debug_code
41128c2ecf20Sopenharmony_ci	}
41138c2ecf20Sopenharmony_ci	SCB_TAG {
41148c2ecf20Sopenharmony_ci		alias	SCB_FIFO_USE_COUNT
41158c2ecf20Sopenharmony_ci		size	2
41168c2ecf20Sopenharmony_ci		dont_generate_debug_code
41178c2ecf20Sopenharmony_ci	}
41188c2ecf20Sopenharmony_ci	SCB_CONTROL {
41198c2ecf20Sopenharmony_ci		size	1
41208c2ecf20Sopenharmony_ci		field	TARGET_SCB	0x80
41218c2ecf20Sopenharmony_ci		field	DISCENB		0x40
41228c2ecf20Sopenharmony_ci		field	TAG_ENB		0x20
41238c2ecf20Sopenharmony_ci		field	MK_MESSAGE	0x10
41248c2ecf20Sopenharmony_ci		field	STATUS_RCVD	0x08
41258c2ecf20Sopenharmony_ci		field	DISCONNECTED	0x04
41268c2ecf20Sopenharmony_ci		field	SCB_TAG_TYPE	0x03
41278c2ecf20Sopenharmony_ci	}
41288c2ecf20Sopenharmony_ci	SCB_SCSIID {
41298c2ecf20Sopenharmony_ci		size	1
41308c2ecf20Sopenharmony_ci		field	TID	0xF0
41318c2ecf20Sopenharmony_ci		field	OID	0x0F
41328c2ecf20Sopenharmony_ci	}
41338c2ecf20Sopenharmony_ci	SCB_LUN {
41348c2ecf20Sopenharmony_ci		size	1
41358c2ecf20Sopenharmony_ci		field	LID	0xff
41368c2ecf20Sopenharmony_ci		dont_generate_debug_code
41378c2ecf20Sopenharmony_ci	}
41388c2ecf20Sopenharmony_ci	SCB_TASK_ATTRIBUTE {
41398c2ecf20Sopenharmony_ci		size	1
41408c2ecf20Sopenharmony_ci		/*
41418c2ecf20Sopenharmony_ci		 * Overloaded field for non-packetized 
41428c2ecf20Sopenharmony_ci		 * ignore wide residue message handling.
41438c2ecf20Sopenharmony_ci		 */
41448c2ecf20Sopenharmony_ci		field	SCB_XFERLEN_ODD	0x01
41458c2ecf20Sopenharmony_ci		dont_generate_debug_code
41468c2ecf20Sopenharmony_ci	}
41478c2ecf20Sopenharmony_ci	SCB_CDB_LEN {
41488c2ecf20Sopenharmony_ci		size	1
41498c2ecf20Sopenharmony_ci		field	SCB_CDB_LEN_PTR	0x80	/* CDB in host memory */
41508c2ecf20Sopenharmony_ci		dont_generate_debug_code
41518c2ecf20Sopenharmony_ci	}
41528c2ecf20Sopenharmony_ci	SCB_TASK_MANAGEMENT {
41538c2ecf20Sopenharmony_ci		size	1
41548c2ecf20Sopenharmony_ci		dont_generate_debug_code
41558c2ecf20Sopenharmony_ci	}
41568c2ecf20Sopenharmony_ci	SCB_DATAPTR {
41578c2ecf20Sopenharmony_ci		size	8
41588c2ecf20Sopenharmony_ci		dont_generate_debug_code
41598c2ecf20Sopenharmony_ci	}
41608c2ecf20Sopenharmony_ci	SCB_DATACNT {
41618c2ecf20Sopenharmony_ci		/*
41628c2ecf20Sopenharmony_ci		 * The last byte is really the high address bits for
41638c2ecf20Sopenharmony_ci		 * the data address.
41648c2ecf20Sopenharmony_ci		 */
41658c2ecf20Sopenharmony_ci		size	4
41668c2ecf20Sopenharmony_ci		field	SG_LAST_SEG		0x80	/* In the fourth byte */
41678c2ecf20Sopenharmony_ci		field	SG_HIGH_ADDR_BITS	0x7F	/* In the fourth byte */
41688c2ecf20Sopenharmony_ci		dont_generate_debug_code
41698c2ecf20Sopenharmony_ci	}
41708c2ecf20Sopenharmony_ci	SCB_SGPTR {
41718c2ecf20Sopenharmony_ci		size	4
41728c2ecf20Sopenharmony_ci		field	SG_STATUS_VALID	0x04	/* In the first byte */
41738c2ecf20Sopenharmony_ci		field	SG_FULL_RESID	0x02	/* In the first byte */
41748c2ecf20Sopenharmony_ci		field	SG_LIST_NULL	0x01	/* In the first byte */
41758c2ecf20Sopenharmony_ci		dont_generate_debug_code
41768c2ecf20Sopenharmony_ci	}
41778c2ecf20Sopenharmony_ci	SCB_BUSADDR {
41788c2ecf20Sopenharmony_ci		size	4
41798c2ecf20Sopenharmony_ci		dont_generate_debug_code
41808c2ecf20Sopenharmony_ci	}
41818c2ecf20Sopenharmony_ci	SCB_NEXT {
41828c2ecf20Sopenharmony_ci		alias	SCB_NEXT_SCB_BUSADDR
41838c2ecf20Sopenharmony_ci		size	2
41848c2ecf20Sopenharmony_ci		dont_generate_debug_code
41858c2ecf20Sopenharmony_ci	}
41868c2ecf20Sopenharmony_ci	SCB_NEXT2 {
41878c2ecf20Sopenharmony_ci		size	2
41888c2ecf20Sopenharmony_ci		dont_generate_debug_code
41898c2ecf20Sopenharmony_ci	}
41908c2ecf20Sopenharmony_ci	SCB_SPARE {
41918c2ecf20Sopenharmony_ci		size	8
41928c2ecf20Sopenharmony_ci		alias	SCB_PKT_LUN
41938c2ecf20Sopenharmony_ci	}
41948c2ecf20Sopenharmony_ci	SCB_DISCONNECTED_LISTS {
41958c2ecf20Sopenharmony_ci		size	8
41968c2ecf20Sopenharmony_ci		dont_generate_debug_code
41978c2ecf20Sopenharmony_ci	}
41988c2ecf20Sopenharmony_ci}
41998c2ecf20Sopenharmony_ci
42008c2ecf20Sopenharmony_ci/*********************************** Constants ********************************/
42018c2ecf20Sopenharmony_ciconst MK_MESSAGE_BIT_OFFSET	4
42028c2ecf20Sopenharmony_ciconst TID_SHIFT		4
42038c2ecf20Sopenharmony_ciconst TARGET_CMD_CMPLT	0xfe
42048c2ecf20Sopenharmony_ciconst INVALID_ADDR	0x80
42058c2ecf20Sopenharmony_ci#define SCB_LIST_NULL	0xff
42068c2ecf20Sopenharmony_ci#define QOUTFIFO_ENTRY_VALID_TOGGLE	0x80
42078c2ecf20Sopenharmony_ci
42088c2ecf20Sopenharmony_ciconst CCSGADDR_MAX	0x80
42098c2ecf20Sopenharmony_ciconst CCSCBADDR_MAX	0x80
42108c2ecf20Sopenharmony_ciconst CCSGRAM_MAXSEGS	16
42118c2ecf20Sopenharmony_ci
42128c2ecf20Sopenharmony_ci/* Selection Timeout Timer Constants */
42138c2ecf20Sopenharmony_ciconst STIMESEL_SHIFT	3
42148c2ecf20Sopenharmony_ciconst STIMESEL_MIN	0x18
42158c2ecf20Sopenharmony_ciconst STIMESEL_BUG_ADJ	0x8
42168c2ecf20Sopenharmony_ci
42178c2ecf20Sopenharmony_ci/* WDTR Message values */
42188c2ecf20Sopenharmony_ciconst BUS_8_BIT			0x00
42198c2ecf20Sopenharmony_ciconst BUS_16_BIT		0x01
42208c2ecf20Sopenharmony_ciconst BUS_32_BIT		0x02
42218c2ecf20Sopenharmony_ci
42228c2ecf20Sopenharmony_ci/* Offset maximums */
42238c2ecf20Sopenharmony_ciconst MAX_OFFSET		0xfe
42248c2ecf20Sopenharmony_ciconst MAX_OFFSET_PACED		0xfe
42258c2ecf20Sopenharmony_ciconst MAX_OFFSET_PACED_BUG	0x7f
42268c2ecf20Sopenharmony_ci/*
42278c2ecf20Sopenharmony_ci * Some 160 devices incorrectly accept 0xfe as a
42288c2ecf20Sopenharmony_ci * sync offset, but will overrun this value.  Limit
42298c2ecf20Sopenharmony_ci * to 0x7f for speed lower than U320 which will
42308c2ecf20Sopenharmony_ci * avoid the persistent sync offset overruns.
42318c2ecf20Sopenharmony_ci */
42328c2ecf20Sopenharmony_ciconst MAX_OFFSET_NON_PACED	0x7f
42338c2ecf20Sopenharmony_ciconst HOST_MSG			0xff
42348c2ecf20Sopenharmony_ci
42358c2ecf20Sopenharmony_ci/*
42368c2ecf20Sopenharmony_ci * The size of our sense buffers.
42378c2ecf20Sopenharmony_ci * Sense buffer mapping can be handled in either of two ways.
42388c2ecf20Sopenharmony_ci * The first is to allocate a dmamap for each transaction.
42398c2ecf20Sopenharmony_ci * Depending on the architecture, dmamaps can be costly. The
42408c2ecf20Sopenharmony_ci * alternative is to statically map the buffers in much the same
42418c2ecf20Sopenharmony_ci * way we handle our scatter gather lists.  The driver implements
42428c2ecf20Sopenharmony_ci * the later.
42438c2ecf20Sopenharmony_ci */
42448c2ecf20Sopenharmony_ciconst AHD_SENSE_BUFSIZE		256
42458c2ecf20Sopenharmony_ci
42468c2ecf20Sopenharmony_ci/* Target mode command processing constants */
42478c2ecf20Sopenharmony_ciconst CMD_GROUP_CODE_SHIFT	0x05
42488c2ecf20Sopenharmony_ci
42498c2ecf20Sopenharmony_ciconst STATUS_BUSY		0x08
42508c2ecf20Sopenharmony_ciconst STATUS_QUEUE_FULL		0x28
42518c2ecf20Sopenharmony_ciconst STATUS_PKT_SENSE		0xFF
42528c2ecf20Sopenharmony_ciconst TARGET_DATA_IN		1
42538c2ecf20Sopenharmony_ci
42548c2ecf20Sopenharmony_ciconst SCB_TRANSFER_SIZE_FULL_LUN	56
42558c2ecf20Sopenharmony_ciconst SCB_TRANSFER_SIZE_1BYTE_LUN	48
42568c2ecf20Sopenharmony_ci/* PKT_OVERRUN_BUFSIZE must be a multiple of 256 less than 64K */
42578c2ecf20Sopenharmony_ciconst PKT_OVERRUN_BUFSIZE	512
42588c2ecf20Sopenharmony_ci
42598c2ecf20Sopenharmony_ci/*
42608c2ecf20Sopenharmony_ci * Timer parameters.
42618c2ecf20Sopenharmony_ci */
42628c2ecf20Sopenharmony_ciconst AHD_TIMER_US_PER_TICK	25
42638c2ecf20Sopenharmony_ciconst AHD_TIMER_MAX_TICKS	0xFFFF
42648c2ecf20Sopenharmony_ciconst AHD_TIMER_MAX_US		(AHD_TIMER_MAX_TICKS * AHD_TIMER_US_PER_TICK)
42658c2ecf20Sopenharmony_ci
42668c2ecf20Sopenharmony_ci/*
42678c2ecf20Sopenharmony_ci * Downloaded (kernel inserted) constants
42688c2ecf20Sopenharmony_ci */
42698c2ecf20Sopenharmony_ciconst SG_PREFETCH_CNT download
42708c2ecf20Sopenharmony_ciconst SG_PREFETCH_CNT_LIMIT download
42718c2ecf20Sopenharmony_ciconst SG_PREFETCH_ALIGN_MASK download
42728c2ecf20Sopenharmony_ciconst SG_PREFETCH_ADDR_MASK download
42738c2ecf20Sopenharmony_ciconst SG_SIZEOF download
42748c2ecf20Sopenharmony_ciconst PKT_OVERRUN_BUFOFFSET download
42758c2ecf20Sopenharmony_ciconst SCB_TRANSFER_SIZE	download
42768c2ecf20Sopenharmony_ciconst CACHELINE_MASK download
42778c2ecf20Sopenharmony_ci
42788c2ecf20Sopenharmony_ci/*
42798c2ecf20Sopenharmony_ci * BIOS SCB offsets
42808c2ecf20Sopenharmony_ci */
42818c2ecf20Sopenharmony_ciconst NVRAM_SCB_OFFSET	0x2C
4282