Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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