|
|
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: /* ??? Some of the stuff in this file is really private to ultrastor.c and
13: should be moved elsewhere (as this file is included by higher-level driver
14: files). */
15:
16: /* ??? These don't really belong here */
17: #ifndef TRUE
18: # define TRUE 1
19: #endif
20: #ifndef FALSE
21: # define FALSE 0
22: #endif
23:
24: int ultrastor_14f_detect(int);
25: const char *ultrastor_14f_info(void);
26: #if 0 /* ??? Future direction... */
27: int ultrastor_14f_queuecommand(unsigned char target, const void *cmnd,
28: void *buff, int bufflen,
29: void (*done)(int, int));
30: #else
31: int ultrastor_14f_command(unsigned char target, const void *cmnd,
32: void *buff, int bufflen);
33: #endif
34: int ultrastor_14f_abort(int);
35: int ultrastor_14f_reset(void);
36:
37: #if 0 /* ??? Future direction... */
38: # define ULTRASTOR_14F \
39: { "UltraStor 14F", ultrastor_14f_detect, ultrastor_14f_info, 0, \
40: ultrastor_14f_queuecommand, ultrastor_14f_abort, ultrastor_14f_reset, \
41: TRUE, 0, 0 }
42: #else
43: # define ULTRASTOR_14F \
44: { "UltraStor 14F", ultrastor_14f_detect, ultrastor_14f_info, \
45: ultrastor_14f_command, 0, ultrastor_14f_abort, ultrastor_14f_reset, \
46: FALSE, 0, 0 }
47: #endif
48:
49: #define PORT_OVERRIDE 0x330
50:
51: /* Port addresses (relative to the base address) */
52: #define LCL_DOORBELL_MASK(port) ((port) + 0x0)
53: #define LCL_DOORBELL_INTR(port) ((port) + 0x1)
54: #define SYS_DOORBELL_MASK(port) ((port) + 0x2)
55: #define SYS_DOORBELL_INTR(port) ((port) + 0x3)
56: #define PRODUCT_ID(port) ((port) + 0x4)
57: #define CONFIG(port) ((port) + 0x6)
58: #define OGM_DATA_PTR(port) ((port) + 0x8)
59: #define ICM_DATA_PTR(port) ((port) + 0xC)
60:
61: /* Values for the PRODUCT_ID ports for the 14F */
62: #define US14F_PRODUCT_ID_0 0x56
63: #define US14F_PRODUCT_ID_1 0x40 /* NOTE: Only upper nibble is used */
64:
65: /* MSCP field values */
66:
67: /* Opcode */
68: #define OP_HOST_ADAPTER 0x1
69: #define OP_SCSI 0x2
70: #define OP_RESET 0x4
71:
72: /* Date Transfer Direction */
73: #define DTD_SCSI 0x0
74: #define DTD_IN 0x1
75: #define DTD_OUT 0x2
76: #define DTD_NONE 0x3
77:
78: /* Host Adapter command subcodes */
79: #define HA_CMD_INQUIRY 0x1
80: #define HA_CMD_SELF_DIAG 0x2
81: #define HA_CMD_READ_BUFF 0x3
82: #define HA_CMD_WRITE_BUFF 0x4
83:
84: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.