summaryrefslogtreecommitdiff
path: root/scsi/adapters/scsi_89352.h
diff options
context:
space:
mode:
Diffstat (limited to 'scsi/adapters/scsi_89352.h')
-rw-r--r--scsi/adapters/scsi_89352.h231
1 files changed, 0 insertions, 231 deletions
diff --git a/scsi/adapters/scsi_89352.h b/scsi/adapters/scsi_89352.h
deleted file mode 100644
index 85c579f..0000000
--- a/scsi/adapters/scsi_89352.h
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * Mach Operating System
- * Copyright (c) 1991 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
- * School of Computer Science
- * Carnegie Mellon University
- * Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- * File: scsi_89352.h
- * Author: Daniel Stodolsky, Carnegie Mellon University
- * Date: 06/91
- *
- * Defines for the Fujitsu MB89352 SCSI Protocol Controller (HBA)
- * The definitions herein also cover the 89351, 87035/36, 87033B
- */
-
-/*
- * Register map, padded as needed. Matches Hardware, do not screw up.
- */
-
-#define vuc volatile unsigned char
-
-typedef struct
-{
- vuc spc_bdid; /* Bus Device ID (R/W) */
-#define spc_myid spc_bdid
- char pad0[3];
- vuc spc_sctl; /* SPC Control register (R/W) */
- char pad1[3];
- vuc spc_scmd; /* Command Register (R/W) */
- char pad2[3];
- vuc spc_tmod; /* Transmit Mode Register (synch models) */
- char pad3[3];
- vuc spc_ints; /* Interrupt sense (R); Interrupt Reset (w) */
- char pad4[3];
- vuc spc_psns; /* Phase Sense (R); SPC Diagnostic Control (w) */
-#define spc_phase spc_psns
- char pad5[3];
- vuc spc_ssts; /* SPC status (R/O) */
- char pad6[3];
- vuc spc_serr; /* SPC error status (R/O) */
- char pad7[3];
- vuc spc_pctl; /* Phase Control (R/W) */
- char pad8[3];
- vuc spc_mbc; /* Modifed Byte Counter (R/O) */
- char pad9[3];
- vuc spc_dreg; /* Data Register (R/W) */
- char pad10[3];
- vuc spc_temp; /* Temporary Register (R/W) */
- char pad11[3];
- vuc spc_tch; /* Transfer Counter High (R/W) */
- char pad12[3];
- vuc spc_tcm; /* Transfer Counter Middle (R/W) */
- char pad13[3];
- vuc spc_tcl; /* Transfer Counter Low (R/W) */
- char pad14[3];
- vuc spc_exbf; /* External Buffer (synch models) */
- char pad15[3];
-} spc_regmap_t;
-
-#undef vuc
-
-/*
- * Control register
- */
-
-#define SPC_SCTL_DISABLE 0x80
-#define SPC_SCTL_RESET 0x40
-#define SPC_SCTL_DIAGMODE 0x20
-#define SPC_SCTL_ARB_EBL 0x10
-#define SPC_SCTL_PAR_EBL 0x08
-#define SPC_SCTL_SEL_EBL 0x04
-#define SPC_SCTL_RSEL_EBL 0x02
-#define SPC_SCTL_IE 0x01
-
-/*
- * Command register
- */
-
-#define SPC_SCMD_CMDMASK 0xe0
-# define SPC_SCMD_C_ACKREQ_S 0xe0
-# define SPC_SCMD_C_ACKREQ_C 0xc0
-# define SPC_SCMD_C_STOP_X 0xa0
-# define SPC_SCMD_C_XFER 0x80
-# define SPC_SCMD_C_ATN_S 0x60
-# define SPC_SCMD_C_ATN_C 0x40
-# define SPC_SCMD_C_SELECT 0x20
-# define SPC_SCMD_C_BUS_RLSE 0x00
-#define SPC_SCMD_BUSRST 0x10
-#define SPC_SCMD_INTERCEPT_X 0x08
-#define SPC_SCMD_PROGRAMMED_X 0x04
-#define SPC_SCMD_PAD_X 0x01
-
-/*
- * Transfer mode register (MB87033B/35/36)
- */
-
-#define SPC_TMOD_SYNC_X 0x80
-#define SPC_TMOD_OFFSET_MASK 0x70
-# define SPC_OFFSET(x) (((x)<<4)&SPC_TMOD_OFFSET_MASK)
-#define SPC_TMOD_PERIOD_MASK 0xc0
-# define SPC_PERIOD(x) (((x)<<2)&SPC_TMOD_PERIOD_MASK)
-#define SPC_TMOD_EXP_COUNTER 0x01
-
-/*
- * Interrupt cause register
- */
-
-#define SPC_INTS_SELECTED 0x80
-#define SPC_INTS_RESELECTED 0x40
-#define SPC_INTS_DISC 0x20
-#define SPC_INTS_DONE 0x10
-#define SPC_INTS_BUSREQ 0x08
-#define SPC_INTS_TIMEOUT 0x04
-#define SPC_INTS_ERROR 0x02
-#define SPC_INTS_RESET 0x01
-
-/*
- * SCSI Bus signals ("phase")
- */
-
-#define SPC_BUS_REQ 0x80 /* rw */
-#define SPC_BUS_ACK 0x40 /* rw */
-#define SPC_BUS_ATN 0x20 /* ro */
-# define SPC_DIAG_ENBL_XFER 0x20 /* wo */
-#define SPC_BUS_SEL 0x10 /* ro */
-#define SPC_BUS_BSY 0x08 /* rw */
-#define SPC_BUS_MSG 0x04 /* rw */
-#define SPC_BUS_CD 0x02 /* rw */
-#define SPC_BUS_IO 0x01 /* rw */
-
-#define SPC_CUR_PHASE(x) SCSI_PHASE(x)
-
-#define SPC_BSY(r) (r->spc_phase & SPC_BUS_BSY)
-
-/*
- * Chip status register
- */
-
-#define SPC_SSTS_INI_CON 0x80
-#define SPC_SSTS_TGT_CON 0x40
-#define SPC_SSTS_BUSY 0x20
-#define SPC_SSTS_XIP 0x10
-#define SPC_SSTS_RST 0x08
-#define SPC_SSTS_TC0 0x04
-#define SPC_SSTS_FIFO_FULL 0x02
-#define SPC_SSTS_FIFO_EMPTY 0x01
-
-/*
- * Error register
- */
-
-#define SPC_SERR_SEL 0x80 /* Selected */
-#define SPC_SERR_RSEL 0x40 /* Reselected */
-#define SPC_SERR_DISC 0x20 /* Disconnected */
-#define SPC_SERR_CMDC 0x10 /* Command Complete */
-#define SPC_SERR_SRVQ 0x08 /* Service Required */
-#define SPC_SERR_TIMO 0x04 /* Timeout */
-#define SPC_SERR_HARDERR 0x02 /* SPC Hard Error */
-#define SPC_SERR_RSTC 0x01 /* Reset Condition */
-
-/*
- * Phase control register
- *
- * [use SPC_CUR_PHASE() here too]
- */
-
-#define SPC_PCTL_BFREE_IE 0x80 /* Bus free (disconnected) */
-#define SPC_PCTL_LST_IE 0x40 /* lost arbit (87033) */
-#define SPC_PCTL_ATN_IE 0x20 /* ATN set (87033) */
-#define SPC_PCTL_RST_DIS 0x10 /* RST asserted */
-
-/*
- * Modified byte counter register
- */
-
-#define SPC_MBC_ECNT_MASK 0xf0 /* 87033 only */
-# define SPC_MBC_ECNT_GET(x) (((x)&SPC_MBC_ECNT_MASK)>>4)
-# define SPC_MBC_ECNT_PUT(x) (((x)<<4)&SPC_MBC_ECNT_MASK)
-#define SPC_MBC_MBC_MASK 0x0f
-# define SPC_MBC_GET(x) ((x)&SPC_MBC_MBC_MASK)
-# define SPC_MBC_PUT(x) ((x)&SPC_MBC_MBC_MASK)
-
-/*
- * Transfer counter register(s)
- */
-
-#define SPC_TC_PUT(ptr,val) { \
- (ptr)->spc_tch = (((val)>>16)&0xff); \
- (ptr)->spc_tcm = (((val)>> 8)&0xff); \
- (ptr)->spc_tcl = (((val) )&0xff); \
- }
-
-#define SPC_TC_GET(ptr,val) { \
- (val) = (((ptr)->spc_tch & 0xff )<<16) |\
- (((ptr)->spc_tcm 0 0xff )<<8) |\
- ((ptr)->spc_tcl 0xff);\
- }
-
-/* 87033 in expanded mode */
-#define SPC_XTC_PUT(ptr,val) { \
- (ptr)->spc_mbc = SPC_MBC_ECNT_PUT(((val)>>24));\
- (ptr)->spc_tch = (((val)>>16)&0xff); \
- (ptr)->spc_tcm = (((val)>> 8)&0xff); \
- (ptr)->spc_tcl = (((val) )&0xff); \
- }
-
-#define SPC_XTC_GET(ptr,val) { \
- (val) = (SPC_MBC_ECNT_GET((ptr)->spc_mbc)<<24)|\
- (((ptr)->spc_tch)<<16)|(((ptr)->spc_tcm)<<8)|\
- ((ptr)->spc_tcl);\
- }
-