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