|
|
1.1 root 1: /*
2: * ultrastor.c (C) 1991 David B. Gentzel
3: * Low-level scsi driver for UltraStor 14F
4: * by David B. Gentzel, Whitfield Software Services, Carnegie, PA
5: * ([email protected])
6: * Thanks to UltraStor for providing the necessary documentation
7: */
8:
9: #ifndef _ULTRASTOR_H
10: #define _ULTRASTOR_H
11:
12: /* ??? These don't really belong here */
13: #ifndef TRUE
14: # define TRUE 1
15: #endif
16: #ifndef FALSE
17: # define FALSE 0
18: #endif
19:
1.1.1.2 ! root 20: /* ??? This should go eventually, once the queueing bug is fixed */
! 21: #define USE_QUEUECOMMAND FALSE
! 22:
1.1 root 23: int ultrastor_14f_detect(int);
24: const char *ultrastor_14f_info(void);
25: int ultrastor_14f_queuecommand(unsigned char target, const void *cmnd,
26: void *buff, int bufflen,
27: void (*done)(int, int));
1.1.1.2 ! root 28: #if !USE_QUEUECOMMAND
1.1 root 29: int ultrastor_14f_command(unsigned char target, const void *cmnd,
30: void *buff, int bufflen);
31: #endif
32: int ultrastor_14f_abort(int);
33: int ultrastor_14f_reset(void);
34:
1.1.1.2 ! root 35: #if !USE_QUEUECOMMAND
! 36: #define ULTRASTOR_14F \
1.1 root 37: { "UltraStor 14F", ultrastor_14f_detect, ultrastor_14f_info, \
38: ultrastor_14f_command, 0, ultrastor_14f_abort, ultrastor_14f_reset, \
39: FALSE, 0, 0 }
1.1.1.2 ! root 40: #else
! 41: #define ULTRASTOR_14F \
! 42: { "UltraStor 14F", ultrastor_14f_detect, ultrastor_14f_info, 0, \
! 43: ultrastor_14f_queuecommand, ultrastor_14f_abort, ultrastor_14f_reset, \
! 44: TRUE, 0, 0 }
1.1 root 45: #endif
46:
1.1.1.2 ! root 47: #define UD_DETECT 0x1
! 48: #define UD_COMMAND 0x2
! 49: #define UD_RESET 0x4
! 50:
! 51: #ifdef ULTRASTOR_PRIVATE
! 52:
! 53: /* #define PORT_OVERRIDE 0x330 */
1.1 root 54:
55: /* Port addresses (relative to the base address) */
56: #define LCL_DOORBELL_MASK(port) ((port) + 0x0)
57: #define LCL_DOORBELL_INTR(port) ((port) + 0x1)
58: #define SYS_DOORBELL_MASK(port) ((port) + 0x2)
59: #define SYS_DOORBELL_INTR(port) ((port) + 0x3)
60: #define PRODUCT_ID(port) ((port) + 0x4)
61: #define CONFIG(port) ((port) + 0x6)
62: #define OGM_DATA_PTR(port) ((port) + 0x8)
63: #define ICM_DATA_PTR(port) ((port) + 0xC)
64:
65: /* Values for the PRODUCT_ID ports for the 14F */
66: #define US14F_PRODUCT_ID_0 0x56
67: #define US14F_PRODUCT_ID_1 0x40 /* NOTE: Only upper nibble is used */
68:
69: /* MSCP field values */
70:
71: /* Opcode */
72: #define OP_HOST_ADAPTER 0x1
73: #define OP_SCSI 0x2
74: #define OP_RESET 0x4
75:
76: /* Date Transfer Direction */
77: #define DTD_SCSI 0x0
78: #define DTD_IN 0x1
79: #define DTD_OUT 0x2
80: #define DTD_NONE 0x3
81:
82: /* Host Adapter command subcodes */
83: #define HA_CMD_INQUIRY 0x1
84: #define HA_CMD_SELF_DIAG 0x2
85: #define HA_CMD_READ_BUFF 0x3
86: #define HA_CMD_WRITE_BUFF 0x4
87:
88: #endif
1.1.1.2 ! root 89:
! 90: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.