summaryrefslogtreecommitdiff
path: root/linux/src/drivers/scsi/tmscsiw.h
diff options
context:
space:
mode:
Diffstat (limited to 'linux/src/drivers/scsi/tmscsiw.h')
-rw-r--r--linux/src/drivers/scsi/tmscsiw.h1082
1 files changed, 0 insertions, 1082 deletions
diff --git a/linux/src/drivers/scsi/tmscsiw.h b/linux/src/drivers/scsi/tmscsiw.h
deleted file mode 100644
index 4ebbe4a..0000000
--- a/linux/src/drivers/scsi/tmscsiw.h
+++ /dev/null
@@ -1,1082 +0,0 @@
-/***********************************************************************
-;* File Name : TMSCSIW.H *
-;* TEKRAM DC-390 PCI Wide SCSI Bus Master Host Adapter*
-;* Device Driver *
-;***********************************************************************/
-
-#ifndef TMSCSIW_H
-#define TMSCSIW_H
-
-#define IRQ_NONE 255
-
-typedef unsigned char UCHAR;
-typedef unsigned short USHORT;
-typedef unsigned long ULONG;
-typedef unsigned int UINT;
-
-typedef UCHAR *PUCHAR;
-typedef USHORT *PUSHORT;
-typedef ULONG *PULONG;
-typedef Scsi_Host_Template *PSHT;
-typedef struct Scsi_Host *PSH;
-typedef Scsi_Device *PSCSIDEV;
-typedef Scsi_Cmnd *PSCSICMD;
-typedef void *PVOID;
-typedef struct scatterlist *PSGL, SGL;
-
-
-typedef struct _AddWkSpace
-{
-USHORT WKIOCtrlFlag; /* ;b7-Done, b6-wrtVerify, b0-in process */
-USHORT XferredBlkCnt;
-USHORT WKToXferBlkCnt;
-USHORT WKcSGListDone;
-USHORT WKMaxSGIndex;
-ULONG WKToXferLen;
-USHORT NxtSGoffset;
-} AddWkSpace;
-
-/*;-----------------------------------------------------------------------*/
-typedef struct _SyncMsg
-{
-UCHAR ExtendMsg;
-UCHAR ExtMsgLen;
-UCHAR SyncXferReq;
-UCHAR Period;
-UCHAR ReqOffset;
-} SyncMsg;
-/*;-----------------------------------------------------------------------*/
-typedef struct _Capacity
-{
-ULONG BlockCount;
-ULONG BlockLength;
-} Capacity;
-/*;-----------------------------------------------------------------------*/
-typedef struct _SGentry
-{
-ULONG SGXferDataPtr;
-ULONG SGXferDataLen;
-} SGentry;
-
-typedef struct _SGentry1
-{
-ULONG SGXLen;
-ULONG SGXPtr;
-} SGentry1, *PSGE;
-
-
-#define MAX_ADAPTER_NUM 4
-#define MAX_DEVICES 10
-#define MAX_SG_LIST_BUF 32
-#define MAX_CMD_QUEUE 20
-#define MAX_CMD_PER_LUN 8
-#define MAX_SCSI_ID 16
-#define MAX_SRB_CNT MAX_CMD_QUEUE+4
-#define END_SCAN 2
-
-/*
-;-----------------------------------------------------------------------
-; SCSI Request Block
-;-----------------------------------------------------------------------
-*/
-struct _SRB
-{
-UCHAR CmdBlock[12];
-ULONG Segment0[MAX_SG_LIST_BUF+1][2];
-ULONG SegmentPad[2];
-
-ULONG __select;
-ULONG __command[2]; /* ;len,ptr */
-ULONG __msgout0[2]; /* ;len,ptr */
-
-ULONG PhysSRB;
-ULONG ReturnAddr;
-ULONG RemainSegPtr;
-PSCSICMD pcmd;
-struct _SRB *pNextSRB;
-struct _DCB *pSRBDCB;
-PSGL pSegmentList;
-ULONG XferredLen;
-
-ULONG SGPhysAddr; /*;a segment starting address */
-ULONG XferredLen1;
-
-SGL Segmentx; /* make a one entry of S/G list table */
-
-PUCHAR pMsgPtr;
-USHORT SRBState;
-USHORT Revxx2; /* ??? */
-
-UCHAR MsgInBuf[6];
-UCHAR MsgOutBuf[6];
-UCHAR SenseDataBuf[0x12];
-UCHAR AdaptStatus;
-UCHAR TargetStatus;
-
-UCHAR MsgCnt;
-UCHAR EndMessage;
-UCHAR TagNumber;
-UCHAR InternalReq; /*; 1-ADD internal request, 0-DMD request */
-
-UCHAR SGcount;
-UCHAR SGIndex;
-UCHAR IORBFlag; /*;81h-Reset, 2-retry */
-UCHAR SRBStatus;
-
-UCHAR RetryCnt;
-UCHAR SRBFlag; /*; b0-AutoReqSense,b6-Read,b7-write */
- /*; b4-settimeout,b5-Residual valid */
-UCHAR ScratchABuf;
-UCHAR Reserved3[1]; /*;for dword alignment */
-};
-
-typedef struct _SRB DC390W_SRB, *PSRB;
-
-/*
-;-----------------------------------------------------------------------
-; Device Control Block
-;-----------------------------------------------------------------------
-*/
-struct _DCB
-{
-UCHAR DCBselect;
-UCHAR DCBsxfer;
-UCHAR DCBsdid;
-UCHAR DCBscntl3;
-
-UCHAR DCBscntl0;
-UCHAR IdentifyMsg;
-UCHAR DevMode;
-UCHAR AdpMode;
-
-struct _DCB *pNextDCB;
-struct _ACB *pDCBACB;
-
-PSCSICMD pQIORBhead;
-PSCSICMD pQIORBtail;
-PSCSICMD AboIORBhead;
-PSCSICMD AboIORBtail;
-USHORT QIORBCnt;
-USHORT AboIORBcnt;
-
-PSRB pWaitingSRB;
-PSRB pWaitLast;
-PSRB pGoingSRB;
-PSRB pGoingLast;
-PSRB pActiveSRB;
-USHORT GoingSRBCnt;
-USHORT WaitSRBCnt; /* ??? */
-
-ULONG TagMask;
-
-USHORT MaxCommand;
-USHORT AdaptIndex; /*; UnitInfo struc start */
-USHORT UnitIndex; /*; nth Unit on this card */
-UCHAR UnitSCSIID; /*; SCSI Target ID (SCSI Only) */
-UCHAR UnitSCSILUN; /*; SCSI Log. Unit (SCSI Only) */
-
-UCHAR InqDataBuf[8];
-UCHAR CapacityBuf[8];
-UCHAR SyncMode; /*; 0:async mode */
-UCHAR NegoPeriod; /*;for nego. */
-UCHAR SyncPeriod; /*;for reg. */
-UCHAR SyncOffset; /*;for reg. and nego.(low nibble) */
-UCHAR UnitCtrlFlag;
-UCHAR DCBFlag;
-UCHAR DevType;
-UCHAR Reserved2[1]; /*;for dword alignment */
-};
-
-typedef struct _DCB DC390W_DCB, *PDCB;
-/*
-;-----------------------------------------------------------------------
-; Adapter Control Block
-;-----------------------------------------------------------------------
-*/
-struct _ACB
-{
-ULONG PhysACB;
-ULONG DevVendorID;
-PSH pScsiHost;
-struct _ACB *pNextACB;
-USHORT IOPortBase;
-USHORT Revxx1; /* ??? */
-
-PDCB pLinkDCB;
-PDCB pDCBRunRobin;
-PDCB pActiveDCB;
-PDCB pDCB_free;
-PSRB pFreeSRB;
-USHORT SRBCount;
-USHORT AdapterIndex; /*; nth Adapter this driver */
-USHORT max_id;
-USHORT max_lun;
-
-ULONG jmp_reselect;
-ULONG jmp_select;
-ULONG jmp_table8;
-ULONG jmp_set_atn;
-ULONG jmp_clear_ack;
-ULONG jmp_next;
-ULONG jmp_din8;
-ULONG jmp_dout8;
-ULONG jmp_clear_atn;
-ULONG jmp_reselecttag;
-
-UCHAR msgin123[4];
-UCHAR status;
-UCHAR AdaptSCSIID; /*; Adapter SCSI Target ID */
-UCHAR AdaptSCSILUN; /*; Adapter SCSI LUN */
-UCHAR DeviceCnt;
-UCHAR IRQLevel;
-UCHAR AdaptType; /*;1:390W, 2:390U, 3:390F */
-UCHAR TagMaxNum;
-UCHAR ACBFlag;
-UCHAR Gmode2;
-UCHAR LUNchk;
-UCHAR scan_devices;
-UCHAR Reserved1[1]; /*;for dword alignment */
-UCHAR DCBmap[MAX_SCSI_ID];
-DC390W_DCB DCB_array[MAX_DEVICES]; /* +74h, Len=3E8 */
-DC390W_SRB SRB_array[MAX_SRB_CNT]; /* +45Ch, Len= */
-};
-
-typedef struct _ACB DC390W_ACB, *PACB;
-
-/*;-----------------------------------------------------------------------*/
-
-#define PCI_DEVICE_ID_NCR53C825A 0x0003
-#define PCI_DEVICE_ID_NCR53C875 0x000f
-
-#define CHIP810_ID 0x00011000
-#define CHIP820_ID 0x00021000
-#define CHIP825_ID 0x00031000
-#define CHIP815_ID 0x00041000
-#define CHIP875_ID 0x000f1000
-
-#define DC390W 1 /*;825A - 16 BIT*/
-#define DC390U 2 /*;875 - 8 BIT*/
-#define DC390F 3 /*;875 - 16 BIT*/
-
-#define BIT31 0x80000000
-#define BIT30 0x40000000
-#define BIT29 0x20000000
-#define BIT28 0x10000000
-#define BIT27 0x08000000
-#define BIT26 0x04000000
-#define BIT25 0x02000000
-#define BIT24 0x01000000
-#define BIT23 0x00800000
-#define BIT22 0x00400000
-#define BIT21 0x00200000
-#define BIT20 0x00100000
-#define BIT19 0x00080000
-#define BIT18 0x00040000
-#define BIT17 0x00020000
-#define BIT16 0x00010000
-#define BIT15 0x00008000
-#define BIT14 0x00004000
-#define BIT13 0x00002000
-#define BIT12 0x00001000
-#define BIT11 0x00000800
-#define BIT10 0x00000400
-#define BIT9 0x00000200
-#define BIT8 0x00000100
-#define BIT7 0x00000080
-#define BIT6 0x00000040
-#define BIT5 0x00000020
-#define BIT4 0x00000010
-#define BIT3 0x00000008
-#define BIT2 0x00000004
-#define BIT1 0x00000002
-#define BIT0 0x00000001
-
-/*;---WKIOCtrlFlag */
-#define IN_PROCESSING BIT0
-#define BAD_WRITE_V_CMD BIT1
-#define VERIFY_CMD BIT2
-#define RESIDUAL_SG BIT3
-
-/*;---UnitCtrlFlag */
-#define UNIT_ALLOCATED BIT0
-#define UNIT_INFO_CHANGED BIT1
-#define FORMATING_MEDIA BIT2
-#define UNIT_RETRY BIT3
-
-/*;---UnitFlags */
-#define DASD_SUPPORT BIT0
-#define SCSI_SUPPORT BIT1
-#define ASPI_SUPPORT BIT2
-
-/*;----SRBState machine definition */
-#define SRB_FREE 0
-#define SRB_WAIT BIT0
-#define SRB_READY BIT1
-#define SRB_MSGOUT BIT2 /*;arbitration+msg_out 1st byte*/
-#define SRB_MSGIN BIT3
-#define SRB_MSGIN_MULTI BIT4
-#define SRB_COMMAND BIT5
-#define SRB_START_ BIT6 /*;arbitration+msg_out+command_out*/
-#define SRB_DISCONNECT BIT7
-#define SRB_DATA_XFER BIT8
-#define SRB_XFERPAD BIT9
-#define SRB_STATUS BIT10
-#define SRB_COMPLETED BIT11
-
-#define DO_WIDE_NEGO BIT12
-#define DO_SYNC_NEGO BIT13
-#define SRB_UNEXPECT_RESEL BIT14
-
-/*;---ACBFlag */
-#define RESET_DEV BIT0
-#define RESET_DETECT BIT1
-#define RESET_DONE BIT2
-
-/*;---DCBFlag */
-#define ABORT_DEV_ BIT0
-
-/*;---SRBstatus */
-#define SRB_OK BIT0
-#define ABORTION BIT1
-#define OVER_RUN BIT2
-#define UNDER_RUN BIT3
-#define SRB_ERROR BIT4
-
-/*;---SRBFlag */
-#define DATAOUT BIT7
-#define DATAIN BIT6
-#define RESIDUAL_VALID BIT5
-#define ENABLE_TIMER BIT4
-#define RESET_DEV0 BIT2
-#define ABORT_DEV BIT1
-#define AUTO_REQSENSE BIT0
-
-/*;---Adapter status */
-#define H_STATUS_GOOD 0
-#define H_SEL_TIMEOUT 0x11
-#define H_OVER_UNDER_RUN 0x12
-#define H_UNEXP_BUS_FREE 0x13
-#define H_TARGET_PHASE_F 0x14
-#define H_INVALID_CCB_OP 0x16
-#define H_LINK_CCB_BAD 0x17
-#define H_BAD_TARGET_DIR 0x18
-#define H_DUPLICATE_CCB 0x19
-#define H_BAD_CCB_OR_SG 0x1A
-#define H_ABORT 0x0FF
-
-/*; SCSI Status byte codes*/
-#define SCSI_STAT_GOOD 0x0 /*; Good status */
-#define SCSI_STAT_CHECKCOND 0x02 /*; SCSI Check Condition */
-#define SCSI_STAT_CONDMET 0x04 /*; Condition Met */
-#define SCSI_STAT_BUSY 0x08 /*; Target busy status */
-#define SCSI_STAT_INTER 0x10 /*; Intermediate status */
-#define SCSI_STAT_INTERCONDMET 0x14 /*; Intermediate condition met */
-#define SCSI_STAT_RESCONFLICT 0x18 /*; Reservation conflict */
-#define SCSI_STAT_CMDTERM 0x22 /*; Command Terminated */
-#define SCSI_STAT_QUEUEFULL 0x28 /*; Queue Full */
-
-#define SCSI_STAT_UNEXP_BUS_F 0xFD /*; Unexpect Bus Free */
-#define SCSI_STAT_BUS_RST_DETECT 0xFE /*; Scsi Bus Reset detected */
-#define SCSI_STAT_SEL_TIMEOUT 0xFF /*; Selection Time out */
-
-/*;---Sync_Mode */
-#define SYNC_DISABLE 0
-#define SYNC_ENABLE BIT0
-#define SYNC_NEGO_DONE BIT1
-#define WIDE_ENABLE BIT2
-#define WIDE_NEGO_DONE BIT3
-#define EN_TAG_QUEUING BIT4
-
-#define SYNC_NEGO_OFFSET 16
-
-/*;---SCSI bus phase*/
-#define SCSI_DATA_OUT 0
-#define SCSI_DATA_IN 1
-#define SCSI_COMMAND 2
-#define SCSI_STATUS_ 3
-#define SCSI_NOP0 4
-#define SCSI_NOP1 5
-#define SCSI_MSG_OUT 6
-#define SCSI_MSG_IN 7
-
-/*;----SCSI MSG BYTE*/
-#define MSG_COMPLETE 0x00
-#define MSG_EXTENDED 0x01
-#define MSG_SAVE_PTR 0x02
-#define MSG_RESTORE_PTR 0x03
-#define MSG_DISCONNECT 0x04
-#define MSG_INITIATOR_ERROR 0x05
-#define MSG_ABORT 0x06
-#define MSG_REJECT_ 0x07
-#define MSG_NOP 0x08
-#define MSG_PARITY_ERROR 0x09
-#define MSG_LINK_CMD_COMPL 0x0A
-#define MSG_LINK_CMD_COMPL_FLG 0x0B
-#define MSG_BUS_RESET 0x0C
-#define MSG_ABORT_TAG 0x0D
-#define MSG_SIMPLE_QTAG 0x20
-#define MSG_HEAD_QTAG 0x21
-#define MSG_ORDER_QTAG 0x22
-#define MSG_IDENTIFY 0x80
-#define MSG_HOST_ID 0x0C0
-
-/*;----SCSI STATUS BYTE*/
-#define STATUS_GOOD 0x00
-#define CHECK_CONDITION_ 0x02
-#define STATUS_BUSY 0x08
-#define STATUS_INTERMEDIATE 0x10
-#define RESERVE_CONFLICT 0x18
-
-/* cmd->result */
-#define STATUS_MASK_ 0xFF
-#define MSG_MASK 0xFF00
-#define RETURN_MASK 0xFF0000
-
-/*
-** Inquiry Data format
-*/
-
-typedef struct _SCSIInqData { /* INQ */
-
- UCHAR DevType; /* Periph Qualifier & Periph Dev Type*/
- UCHAR RMB_TypeMod; /* rem media bit & Dev Type Modifier */
- UCHAR Vers; /* ISO, ECMA, & ANSI versions */
- UCHAR RDF; /* AEN, TRMIOP, & response data format*/
- UCHAR AddLen; /* length of additional data */
- UCHAR Res1; /* reserved */
- UCHAR Res2; /* reserved */
- UCHAR Flags; /* RelADr,Wbus32,Wbus16,Sync,etc. */
- UCHAR VendorID[8]; /* Vendor Identification */
- UCHAR ProductID[16]; /* Product Identification */
- UCHAR ProductRev[4]; /* Product Revision */
-
-
-} SCSI_INQDATA, *PSCSI_INQDATA;
-
-
-/* Inquiry byte 0 masks */
-
-
-#define SCSI_DEVTYPE 0x1F /* Peripheral Device Type */
-#define SCSI_PERIPHQUAL 0xE0 /* Peripheral Qualifier */
-
-
-/* Inquiry byte 1 mask */
-
-#define SCSI_REMOVABLE_MEDIA 0x80 /* Removable Media bit (1=removable) */
-
-
-/* Peripheral Device Type definitions */
-
-#define SCSI_DASD 0x00 /* Direct-access Device */
-#define SCSI_SEQACESS 0x01 /* Sequential-access device */
-#define SCSI_PRINTER 0x02 /* Printer device */
-#define SCSI_PROCESSOR 0x03 /* Processor device */
-#define SCSI_WRITEONCE 0x04 /* Write-once device */
-#define SCSI_CDROM 0x05 /* CD-ROM device */
-#define SCSI_SCANNER 0x06 /* Scanner device */
-#define SCSI_OPTICAL 0x07 /* Optical memory device */
-#define SCSI_MEDCHGR 0x08 /* Medium changer device */
-#define SCSI_COMM 0x09 /* Communications device */
-#define SCSI_NODEV 0x1F /* Unknown or no device type */
-
-/*
-** Inquiry flag definitions (Inq data byte 7)
-*/
-
-#define SCSI_INQ_RELADR 0x80 /* device supports relative addressing*/
-#define SCSI_INQ_WBUS32 0x40 /* device supports 32 bit data xfers */
-#define SCSI_INQ_WBUS16 0x20 /* device supports 16 bit data xfers */
-#define SCSI_INQ_SYNC 0x10 /* device supports synchronous xfer */
-#define SCSI_INQ_LINKED 0x08 /* device supports linked commands */
-#define SCSI_INQ_CMDQUEUE 0x02 /* device supports command queueing */
-#define SCSI_INQ_SFTRE 0x01 /* device supports soft resets */
-
-
-/*
-;==========================================================
-; EEPROM byte offset
-;==========================================================
-*/
-typedef struct _EEprom
-{
-UCHAR EE_MODE1;
-UCHAR EE_SPEED;
-UCHAR xx1;
-UCHAR xx2;
-} EEprom, *PEEprom;
-
-#define EE_ADAPT_SCSI_ID 64
-#define EE_MODE2 65
-#define EE_DELAY 66
-#define EE_TAG_CMD_NUM 67
-
-/*; EE_MODE1 bits definition*/
-#define PARITY_CHK_ BIT0
-#define SYNC_NEGO_ BIT1
-#define EN_DISCONNECT_ BIT2
-#define SEND_START_ BIT3
-#define TAG_QUEUING_ BIT4
-#define WIDE_NEGO_ BIT5
-
-/*; EE_MODE2 bits definition*/
-#define MORE2_DRV BIT0
-#define GREATER_1G BIT1
-#define RST_SCSI_BUS BIT2
-#define ACTIVE_NEGATION BIT3
-#define NO_SEEK BIT4
-#define LUN_CHECK BIT5
-
-#define ENABLE_CE 1
-#define DISABLE_CE 0
-#define EEPROM_READ 0x80
-
-/*
-;==========================================================
-; NCR 53C825 Registers Structure
-;==========================================================
-*/
-typedef struct _OperatingReg
-{
-UCHAR SCSICtrl0; /*; (+00)*/
-UCHAR SCSICtrl1; /*; (+01)*/
-UCHAR SCSICtrl2; /*; (+02)*/
-UCHAR SCSICtrl3; /*; (+03)*/
-UCHAR SCSIChipID; /*; (+04)*/
-UCHAR SCSIXfer; /*; (+05)*/
-UCHAR SCSIDestID; /*; (+06)*/
-UCHAR GeneralPReg; /*; (+07)*/
-UCHAR SCSI1stByteR; /*; (+08)*/
-UCHAR SCSIOPCtrlL; /*; (+09)*/
-UCHAR SCSISelID; /*; (+0A)*/
-UCHAR SCSIBusCtrlLin; /*; (+0B)*/
-UCHAR DMAStatus; /*; (+0C)*/
-UCHAR SCSIStatus0; /*; (+0D)*/
-UCHAR SCSIStatus1; /*; (+0E)*/
-UCHAR SCSIStatus2; /*; (+0F)*/
-ULONG DataStrucAddr; /*; (+10)*/
-UCHAR InterruptStatus;/*; (+14)*/
-UCHAR Reser1; /*; (+15)*/
-UCHAR Reser2; /*; (+16)*/
-UCHAR Reser3; /*; (+17)*/
-UCHAR ChipTest0; /*; (+18)*/
-UCHAR ChipTest1; /*; (+19)*/
-UCHAR ChipTest2; /*; (+1A)*/
-UCHAR ChipTest3; /*; (+1B)*/
-ULONG TempStack; /*; (+1C)*/
-UCHAR DMAFIFO; /*; (+20)*/
-UCHAR ChipTest4; /*; (+21)*/
-UCHAR ChipTest5; /*; (+22)*/
-UCHAR ChipTest6; /*; (+23)*/
-UCHAR DMAByteCnt[3]; /*; (+24)*/
-UCHAR DMACommand; /*; (+27)*/
-ULONG DMANextAddr; /*; (+28)*/
-ULONG DMAScriptsPtr; /*; (+2C)*/
-ULONG DMAScriptPtrSav;/*; (+30)*/
-ULONG ScratchA; /*; (+34)*/
-UCHAR DMAMode; /*; (+38)*/
-UCHAR DMAIntEnable; /*; (+39)*/
-UCHAR DMAWatchDog; /*; (+3A)*/
-UCHAR DMACtrl; /*; (+3B)*/
-ULONG ADDer; /*; (+3C)*/
-UCHAR SCSIIntEnable0; /*; (+40)*/
-UCHAR SCSIIntEnable1; /*; (+41)*/
-UCHAR SCSIIntStatus0; /*; (+42)*/
-UCHAR SCSIIntStatus1; /*; (+43)*/
-UCHAR SCSILongParity; /*; (+44)*/
-UCHAR WideResiData; /*; (+45)*/
-UCHAR MemAccessCtrl; /*; (+46)*/
-UCHAR GeneralPCtrl; /*; (+47)*/
-UCHAR SCSITimer0; /*; (+48)*/
-UCHAR SCSITimer1; /*; (+49)*/
-UCHAR ResponseID0; /*; (+4A)*/
-UCHAR ResponseID1; /*; (+4B)*/
-UCHAR SCSITest0; /*; (+4C)*/
-UCHAR SCSITest1; /*; (+4D)*/
-UCHAR SCSITest2; /*; (+4E)*/
-UCHAR SCSITest3; /*; (+4F)*/
-USHORT SCSIIPDataL; /*; (+50)*/
-USHORT Reser4; /*; (+52)*/
-USHORT SCSIOPDataL; /*; (+54)*/
-USHORT Reser5; /*; (+56)*/
-USHORT SCSIBusDataLin; /*; (+58)*/
-USHORT Reser6; /*; (+5A)*/
-ULONG ScratchB; /*; (+5C)*/
-ULONG ScratchC; /*; (+60)*/
-ULONG ScratchD; /*; (+64)*/
-ULONG ScratchE; /*; (+68)*/
-ULONG ScratchF; /*; (+6C)*/
-ULONG ScratchG; /*; (+70)*/
-ULONG ScratchH; /*; (+74)*/
-ULONG ScratchI; /*; (+78)*/
-ULONG ScratchJ; /*; (+7C)*/
-} OperatingReg;
-/*
-;==========================================================
-; NCR 53C825 Registers bit Definition
-;==========================================================
-*/
-/*; SCSICtrl0 (+00)*/
-#define FULL_ARBITRATION (BIT7+BIT6)
-#define START_ARBIT BIT5
-#define SEL_W_SATN BIT4
-#define EN_PARITY_CHK BIT3
-#define SATN_IF_PARITY_ERR BIT1
-#define TARGET_MODE BIT0
-
-/*; SCSICtrl1 (+01)*/
-#define ASSERT_RST BIT3
-#define ASSERT_EVEN_P BIT2
-#define START_SCSI_XFER BIT0
-
-/*; SCSICtrl2 (+02)*/
-#define DISC_UNEXPECTED BIT7
-#define CHAIN_MODE BIT6
-#define WIDE_SCSI_SEND BIT3
-#define WIDE_SCSI_RECV BIT0
-
-/*; SCSICtrl3 (+03)*/
-#define EN_FAST_20 BIT7
-#define SYNC_CLK_F4 (BIT6+BIT4)
-#define SYNC_CLK_F3 BIT6
-#define SYNC_CLK_F2 (BIT5+BIT4)
-#define SYNC_CLK_F1_5 BIT5
-#define SYNC_CLK_F1 BIT4
-#define EN_WIDE_SCSI BIT3
-#define ASYNC_CLK_F4 (BIT2+BIT0)
-#define ASYNC_CLK_F3 BIT2
-#define ASYNC_CLK_F2 (BIT1+BIT0)
-#define ASYNC_CLK_F1_5 BIT1
-#define ASYNC_CLK_F1 BIT0
-
-/*; SCSIChipID (+04)*/
-#define ENABLE_RESEL BIT6
-#define ENABLE_SEL BIT5
-#define CHIP_ID_MASK 0FH
-
-/*; SCSIXfer (+05)*/
-#define PERIOD_MASK (BIT7+BIT6+BIT5)
-#define SYNC_PERIOD_F11 (BIT7+BIT6+BIT5)
-#define SYNC_PERIOD_F10 (BIT7+BIT6)
-#define SYNC_PERIOD_F9 (BIT7+BIT5)
-#define SYNC_PERIOD_F8 BIT7
-#define SYNC_PERIOD_F7 (BIT6+BIT5)
-#define SYNC_PERIOD_F6 BIT6
-#define SYNC_PERIOD_F5 BIT5
-#define SYNC_PERIOD_F4 0
-#define OFFSET_MASK (BIT4+BIT3+BIT2+BIT1+BIT0)
-#define SYNC_OFFSET_16 BIT4
-#define SYNC_OFFSET_8 BIT3
-#define SYNC_OFFSET_7 (BIT2+BIT1+BIT0)
-#define SYNC_OFFSET_6 (BIT2+BIT1)
-#define SYNC_OFFSET_5 (BIT2+BIT0)
-#define SYNC_OFFSET_4 BIT2
-#define SYNC_OFFSET_3 (BIT1+BIT0)
-#define SYNC_OFFSET_2 BIT1
-#define SYNC_OFFSET_1 BIT0
-#define SYNC_OFFSET_0 0
-#define ASYNCHRONOUS SYNC_OFFSET_0
-/*
-; SCSIDestID (+06)
-
-; GeneralPReg (+07)
-
-; SCSI1stByteR (+08)
-*/
-/*; SCSIOPCtrlL (+09)*/
-#define ASSERT_REQ BIT7
-#define ASSERT_ACK BIT6
-#define ASSERT_BSY BIT5
-#define ASSERT_SEL BIT4
-#define ASSERT_ATN BIT3
-#define ASSERT_MSG BIT2
-#define ASSERT_C_D BIT1
-#define ASSERT_I_O BIT0
-
-/*; SCSISelID (+0A) Read*/
-#define SCSI_ID_VALID BIT7
-
-/*; SCSIBusCtrlLin (+0B) Read*/
-#define REQ_SIGNAL BIT7
-#define ACK_SIGNAL BIT6
-#define BSY_SIGNAL BIT5
-#define SEL_SIGNAL BIT4
-#define ATN_SIGNAL BIT3
-#define MSG_SIGNAL BIT2
-#define C_D_SIGNAL BIT1
-#define I_O_SIGNAL BIT0
-
-/*; DMAStatus (+0C) Read*/
-#define DMA_FIFO_EMPTY BIT7
-#define MASTER_PARITY_ERR BIT6
-#define BUS_FAULT BIT5
-#define ABORT_ BIT4
-#define SINGLE_STEP_INT BIT3
-#define SCRIPTS_INT BIT2
-#define ILLEGAL_INSTRUC BIT0
-
-/*; SCSIStatus0 (+0D) Read*/
-#define SIDL_LSB_FULL BIT7
-#define SODR_LSB_FULL BIT6
-#define SODL_LSB_FULL BIT5
-#define IN_ARBITRATION BIT4
-#define LOST_ARBITRATION BIT3
-#define WIN_ARBITRATION BIT2
-#define RST_SIGNAL BIT1
-#define PARITY_SIGNAL BIT0
-
-/*; SCSIStatus1 (+0E) Read*/
-#define SCSI_FIFO_MASK (BIT7+BIT6+BIT5+BIT4)
-
-/*; SCSIStatus2 (+0F) Read*/
-#define SIDL_MSB_FULL BIT7
-#define SODR_MSB_FULL BIT6
-#define SODL_MSB_FULL BIT5
-#define SCSI_FIFO_MSB BIT4
-
-/*; DataStrucAddr (+10)*/
-
-/*; InterruptStatus (+14)*/
-#define ABORT_OP BIT7
-#define SOFTWARE_RST BIT6
-#define SIGNAL_PROC BIT5
-#define SEMAPHORE BIT4
-#define CONNECTED BIT3
-#define INT_ON_FLY BIT2
-#define SCSI_INT_PENDING BIT1
-#define DMA_INT_PENDING BIT0
-
-/*; ChipTest0 (+18)*/
-/*; ChipTest1 (+19)*/
-#define FIFO_BYTE_EMPTY (BIT7+BIT6+BIT5+BIT4)
-#define FIFO_BYTE_FULL (BIT3+BIT2+BIT1+BIT0)
-
-/*; ChipTest2 (+1A)*/
-#define READ_DIR BIT7
-#define WRITE_DIR 0
-#define SIGNAL_PROC_ BIT6
-#define CFG_AS_IO_MAP BIT5
-#define CFG_AS_MEM_MAP BIT4
-#define SCRATCHAB_AS_BASE BIT3
-#define TRUE_EOP BIT2
-#define INTERNAL_DREQ BIT1
-#define INTERNAL_DACK BIT0
-
-/*; ChipTest3 (+1B)*/
-#define CHIP_REV_MASK (BIT7+BIT6+BIT5+BIT4)
-#define FLUSH_DMA_FIFO BIT3
-#define CLR_DMA_FIFO BIT2
-#define FETCH_PIN_MODE BIT1
-#define WRT_EN_INVALIDATE BIT0
-
-/*; TempStack (+1C)*/
-
-/*; DMAFIFO (+20)*/
-/*; 2 upper bits in ChipTest5*/
-
-/*; ChipTest4 (+21)*/
-#define BURST_DISABLE BIT7
-
-/*; ChipTest5 (+22) */
-#define EN_DMA_FIFO_536 BIT5
-#define BURST_LEN_MSB BIT2
-#define DMAFIFO_MS2B (BIT1+BIT0)
-/*
-; ChipTest6 (+23)
-; DMAByteCnt (+24)
-; DMACommand (+27)
-; DMANextAddr (+28)
-; DMAScriptsPtr (+2C)
-; DMAScriptPtrSav (+30)
-*/
-/*; ScratchA (+34)*/
-#define COMPLETED_OK_ BIT0
-#define RE_SELECTED_ BIT1
-#define OVER_RUN_ BIT2
-
-/*; DMAMode (+38)*/
-#define BURST_LEN16 (BIT7+BIT6)
-#define BURST_LEN8 BIT7
-#define BURST_LEN4 BIT6
-#define BURST_LEN2 0
-#define SRC_IO_MAP BIT5
-#define SRC_MEM_MAP 0
-#define DEST_IO_MAP BIT4
-#define DEST_MEM_MAP 0
-#define EN_READ_LINE BIT3
-#define EN_READ_MULTIPLE BIT2
-#define BURST_OPCODE_FETCH BIT1
-#define MANUAL_START BIT0
-#define AUTO_START 0
-
-/*; DMAIntEnable (+39)*/
-#define EN_MDPE BIT6
-#define EN_BUS_FAULT BIT5
-#define EN_ABORTED BIT4
-#define EN_SINGLE_STEP BIT3
-#define EN_SCRIPT_INT BIT2
-#define EN_ILLEGAL_INST BIT0
-
-
-/*; DMAWatchDog (+3A)*/
-
-/*; DMACtrl (+3B)*/
-#define EN_CACHE_LINE_SIZE BIT7
-#define PRE_FETCH_FLUSH BIT6
-#define EN_PRE_FETCH BIT5
-#define SINGLE_STEP_MIDE BIT4
-#define TOTEM_POLE_IRQ BIT3
-#define OPEN_DRAIN_IRQ 0
-#define START_DMA BIT2
-#define IRQ_DISABLE BIT1
-#define COMPATIBLE_700 BIT0
-
-/*; ADDer (+3C)*/
-
-/*; SCSIIntEnable0 (+40)*/
-#define EN_PHASE_MISMATCH BIT7
-#define EN_ARB_SEL_DONE BIT6
-#define EN_BE_SELECTED BIT5
-#define EN_BE_RESELECTED BIT4
-#define EN_SCSI_GERROR BIT3
-#define EN_UNEXPECT_DISC BIT2
-#define EN_SCSI_RESET BIT1
-#define EN_PARITY_ERROR BIT0
-
-/*; SCSIIntEnable1 (+41)*/
-#define EN_SEL_TIMEOUT BIT2
-#define EN_GENERAL_TIMEOUT BIT1
-#define EN_HANDSHAKE_TIMEOUT BIT0
-
-/*; SCSIIntStatus0 (+42)*/
-#define PHASE_MISMATCH BIT7
-#define ARB_SEL_DONE BIT6
-#define BE_SELECTED BIT5
-#define BE_RESELECTED BIT4
-#define SCSI_GERROR BIT3
-#define UNEXPECT_DISC BIT2
-#define SCSI_RESET BIT1
-#define PARITY_ERROR BIT0
-
-/*; SCSIIntStatus1 (+43)*/
-#define SEL_TIMEOUT BIT2
-#define GENERAL_TIMEOUT BIT1
-#define HANDSHAKE_TIMEOUT BIT0
-/*
-; SCSILongParity (+44)
-; WideResiData (+45)
-; MemAccessCtrl (+46)
-; GeneralPCtrl (+47)
-*/
-/*; SCSITimer0 (+48)*/
-#define HTH_TO_DISABLE 0
-#define SEL_TO_204ms (BIT3+BIT2)
-/*
-; SCSITimer1 (+49)
-; ResponseID0 (+4A)
-; ResponseID1 (+4B)
-; SCSITest0 (+4C)
-; SCSITest1 (+4D)
-; SCSITest2 (+4E)
-*/
-/*; SCSITest3 (+4F)*/
-#define ACTIVE_NEGATION_ BIT7
-#define FIFO_TEST_READ BIT6
-#define HALT_SCSI_CLK BIT5
-#define DIS_SINGLE_INIT BIT4
-#define TIMER_TEST_MODE BIT2
-#define CLR_SCSI_FIFO BIT1
-#define FIFO_TEST_WRITE BIT0
-/*
-; SCSIIPDataL (+50)
-; SCSIOPDataL (+54)
-; SCSIBusDataLin (+58)
-; ScratchB (+5C)
-; ScratchC (+60)
-; ScratchD (+64)
-; ScratchE (+68)
-; ScratchF (+6C)
-; ScratchG (+70)
-; ScratchH (+74)
-; ScratchI (+78)
-; ScratchJ (+7C)
-*/
-
-/***********************************************************************
- * NCR53C825 I/O Address Map
- * base address is stored at offset 0x10 in the PCI configuration space
- *-----------------------------------------------------------------------
- * SCSI Core Registers Offset
- ***********************************************************************/
-#define SCNTL0 0x00 /* Scsi Control 0 R/W */
-#define SCNTL1 0x01 /* Scsi Control 1 R/W */
-#define SCNTL2 0x02 /* Scsi Control 2 R/W */
-#define SCNTL3 0x03 /* Scsi Control 3 R/W */
-#define SCID 0x04 /* Scsi Chip ID R/W */
-#define SXFER 0x05 /* Scsi Transfer R/W */
-#define SDID 0x06 /* Scsi Destination ID R/W */
-#define GPREG 0x07 /* General Purpose Bits R/W */
-#define SFBR 0x08 /* Scsi First Byte Received R/W */
-#define SOCL 0x09 /* Scsi Output Control Latch R/W */
-#define SSID 0x0A /* Scsi Selector ID R */
-#define SBCL 0x0B /* Scsi Bus Control Lines R/W */
-#define DSTAT 0x0C /* DMA Status R */
-#define SSTAT0 0x0D /* Scsi Status 0 R */
-#define SSTAT1 0x0E /* Scsi Status 1 R */
-#define SSTAT2 0x0F /* Scsi Status 2 R */
-#define DSA 0x10 /* Data Structure Address R/W */
-#define ISTAT 0x14 /* Interrupt Status R/W */
-#define RES15 0x15 /* Reserved */
-#define CTEST0 0x18 /* Reserved */
-#define CTEST1 0x19 /* Chip Test 1 R/W */
-#define CTEST2 0x1A /* Chip Test 2 R */
-#define CTEST3 0x1B /* Chip Test 3 R */
-#define TEMP 0x1C /* Temperary Stack R/W */
-#define DFIFO 0x20 /* DMA FIFO R/W */
-#define CTEST4 0x21 /* Chip Test 4 R/W */
-#define CTEST5 0x22 /* Chip Test 5 R/W */
-#define CTEST6 0x23 /* Chip Test 6 R/W */
-#define DBC 0x24 /* DMA Byte Counter R/W */
-#define DCMD 0x27 /* DMA Command R/W */
-#define DNAD 0x28 /* DMA Next Address For Data R/W */
-#define DSP 0x2C /* DMA SCIPTS Pointer R/W */
-#define DSPS 0x30 /* DMA SCIPTS Pointer Saves R/W */
-#define SCRATCHA 0x34 /* General Purpose Scratch Pad A R/W */
-#define DMODE 0x38 /* DMA Mode R/W */
-#define DIEN 0x39 /* DMA Interrupt Enable R/W */
-#define DWT 0x3A /* DMA Watchdog Timer R/W */
-#define DCNTL 0x3B /* DMA Control R/W */
-#define ADDER 0x3C /* Sum output of Internal adder R */
-#define SIEN0 0x40 /* Scsi Interrupt Enable 0 R/W */
-#define SIEN1 0x41 /* Scsi Interrupt Enable 1 R/W */
-#define SIST0 0x42 /* Scsi Interrupt Status 0 R */
-#define SIST1 0x43 /* Scsi Interrupt Status 1 R */
-#define SLPAR 0x44 /* Scsi Longitudinal Parity R/W */
-#define SWIDE 0x45 /* Reserved */
-#define MACNTL 0x46 /* Memory Access Control R/W */
-#define GPCNTL 0x47 /* General Purpose Control R/W */
-#define STIME0 0x48 /* Scsi Timer 0 R/W */
-#define STIME1 0x49 /* Scsi Timer 1 R/W */
-#define RESPID0 0x4A /* Response ID 0 R/W */
-#define RESPID1 0x4B /* Response ID 1 R/W */
-#define STEST0 0x4C /* Scsi Test 0 R */
-#define STEST1 0x4D /* Scsi Test 1 R */
-#define STEST2 0x4E /* Scsi Test 2 R/W */
-#define STEST3 0x4F /* Scsi Test 3 R/W */
-#define SIDL 0x50 /* Scsi Input Data Latch R */
-#define RES51 0x51 /* Reserved */
-#define SODL 0x54 /* Scsi Output Data Latch R/W */
-#define RES55 0x55 /* Reserved */
-#define SBDL 0x58 /* Scsi Bus Data Lines R */
-#define RES59 0x59 /* Reserved */
-#define SCRATCHB 0x5C /* General Purpose Scratch Pad B R/W */
-
-
-/*
-;==========================================================
-; structure for 53C825A register ( I/O )
-;==========================================================
-*/
-#define __scntl0 0
-#define __scntl1 1
-#define __scntl2 2
-#define __scntl3 3
-#define __scid 4
-#define __sxfer 5
-#define __sdid 6
-#define __gpreg 7
-#define __sfbr 8
-#define __socl 9
-#define __ssid 0x0A
-#define __sbcl 0x0B
-#define __dstat 0x0C
-#define __sstat0 0x0D
-#define __sstat1 0x0E
-#define __sstat2 0x0F
-#define __dsa 0x10
-#define __istat 0x14
-/*#define 0x15*/
-#define __ctest0 0x18
-#define __ctest1 0x19
-#define __ctest2 0x1A
-#define __ctest3 0x1B
-#define __temp 0x1C
-#define __dfifo 0x20
-#define __ctest4 0x21
-#define __ctest5 0x22
-#define __ctest6 0x23
-#define __dbc 0x24
-#define __dcmd 0x27
-#define __dnad 0x28
-#define __dsp 0x2C
-#define __dsps 0x30
-#define __scratcha 0x34
-#define __dmode 0x38
-#define __dien 0x39
-#define __dwt 0x3A
-#define __dcntl 0x3B
-#define __adder 0x3C
-#define __sien0 0x40
-#define __sien1 0x41
-#define __sist0 0x42
-#define __sist1 0x43
-#define __slpar 0x44
-#define __swide 0x45
-#define __mactrl 0x46
-#define __gpctrl 0x47
-#define __stime0 0x48
-#define __stime1 0x49
-#define __respid0 0x4A
-#define __respid1 0x4B
-#define __stest0 0x4C
-#define __stest1 0x4D
-#define __stest2 0x4E
-#define __stest3 0x4F
-#define __sidl 0x50 /*; For wide SCSI, this register*/
-/*#define 0x51 ; contains 2 bytes*/
-#define __sodl 0x54
-/*#define 0x55*/
-#define __sbdl 0x58
-/*#define 0x59*/
-#define __scratchb 0x5C
-/*
-;==========================================================
-; Script interrupt code(Vector)
-;==========================================================
-*/
-#define __COMPLETE 0 /*; command complete*/
-#define __RESELECTED 1 /*; reselected, without MESSAGE*/
-#define __RESELECTED1 2 /*; reselected with idenntify bytes*/
-#define __RESELECTEDT 3 /*; reselected with TAGS*/
-#define __DISCONNECTED 4 /*; disconnected*/
-#define __MSGEXTEND 5 /*; Extended msgin*/
-#define __SIGNAL 6 /*; signaled, need to clear SIG*/
-#define __MSGUNKNOWN 7 /*; Unknown message*/
-#define __MSGOUT 8 /*; Message out phase detected*/
-#define __FATALERROR 9 /*; Fatal error*/
-#define __MSGSYNC 10 /*; Sync nego input*/
-#define __MSGWIDE 11 /*; Wide nego input*/
-#define __RESTOREPTR 12 /*; restore pointer received*/
-#define __MSGREJECT 13 /*; Reject message received*/
-#define __DEBUG 14 /*; For debug*/
-
-
-#define DC390W_read8(address) \
- inb(DC390W_ioport + (address)))
-
-#define DC390W_read16(address) \
- inw(DC390W_ioport + (address)))
-
-#define DC390W_read32(address) \
- inl(DC390W_ioport + (address)))
-
-#define DC390W_write8(address,value) \
- outb((value), DC390W_ioport + (address)))
-
-#define DC390W_write16(address,value) \
- outw((value), DC390W_ioport + (address)))
-
-#define DC390W_write32(address,value) \
- outl((value), DC390W_ioport + (address)))
-
-#endif /* TMSCSIW_H */