OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [rc203soc/] [sw/] [uClinux/] [drivers/] [scsi/] [seagate.h] - Blame information for rev 1777

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1626 jcastillo
/*
2
 *      seagate.h Copyright (C) 1992 Drew Eckhardt
3
 *      low level scsi driver header for ST01/ST02 by
4
 *              Drew Eckhardt
5
 *
6
 *      <drew@colorado.edu>
7
 */
8
 
9
#ifndef _SEAGATE_H
10
        #define SEAGATE_H
11
/*
12
        $Header
13
*/
14
#ifndef ASM
15
int seagate_st0x_detect(Scsi_Host_Template *);
16
int seagate_st0x_command(Scsi_Cmnd *);
17
int seagate_st0x_queue_command(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
18
 
19
int seagate_st0x_abort(Scsi_Cmnd *);
20
const char *seagate_st0x_info(struct Scsi_Host *);
21
int seagate_st0x_reset(Scsi_Cmnd *, unsigned int);
22
int seagate_st0x_proc_info(char *,char **,off_t,int,int,int);
23
 
24
#ifndef NULL
25
        #define NULL 0
26
#endif
27
 
28
#include <linux/kdev_t.h>
29
int seagate_st0x_biosparam(Disk *, kdev_t, int*);
30
 
31
#define SEAGATE_ST0X  {  NULL, NULL, NULL, seagate_st0x_proc_info, \
32
                         NULL, seagate_st0x_detect,     \
33
                         NULL,                                          \
34
                         seagate_st0x_info, seagate_st0x_command,       \
35
                         seagate_st0x_queue_command, seagate_st0x_abort, \
36
                         seagate_st0x_reset, NULL, seagate_st0x_biosparam, \
37
                         1, 7, SG_ALL, 1, 0, 0, DISABLE_CLUSTERING}
38
#endif
39
 
40
 
41
/*
42
        defining PARITY causes parity data to be checked
43
*/
44
 
45
#define PARITY
46
 
47
 
48
/*
49
        Thanks to Brian Antoine for the example code in his Messy-Loss ST-01
50
                driver, and Mitsugu Suzuki for information on the ST-01
51
                SCSI host.
52
*/
53
 
54
/*
55
        CONTROL defines
56
*/
57
 
58
#define CMD_RST                 0x01
59
#define CMD_SEL                 0x02
60
#define CMD_BSY                 0x04
61
#define CMD_ATTN                0x08
62
#define CMD_START_ARB           0x10
63
#define CMD_EN_PARITY           0x20
64
#define CMD_INTR                0x40
65
#define CMD_DRVR_ENABLE         0x80
66
 
67
/*
68
        STATUS
69
*/
70
 
71
#define STAT_BSY                0x01
72
#define STAT_MSG                0x02
73
#define STAT_IO                 0x04
74
#define STAT_CD                 0x08
75
#define STAT_REQ                0x10
76
#define STAT_SEL                0x20
77
#define STAT_PARITY             0x40
78
#define STAT_ARB_CMPL           0x80
79
 
80
/*
81
        REQUESTS
82
*/
83
 
84
#define REQ_MASK (STAT_CD |  STAT_IO | STAT_MSG)
85
#define REQ_DATAOUT 0
86
#define REQ_DATAIN STAT_IO
87
#define REQ_CMDOUT STAT_CD
88
#define REQ_STATIN (STAT_CD | STAT_IO)
89
#define REQ_MSGOUT (STAT_MSG | STAT_CD)
90
#define REQ_MSGIN (STAT_MSG | STAT_CD | STAT_IO)
91
 
92
extern volatile int seagate_st0x_timeout;
93
 
94
#ifdef PARITY
95
        #define BASE_CMD CMD_EN_PARITY
96
#else
97
        #define BASE_CMD  0
98
#endif
99
 
100
/*
101
        Debugging code
102
*/
103
 
104
#define PHASE_BUS_FREE 1
105
#define PHASE_ARBITRATION 2
106
#define PHASE_SELECTION 4
107
#define PHASE_DATAIN 8 
108
#define PHASE_DATAOUT 0x10
109
#define PHASE_CMDOUT 0x20
110
#define PHASE_MSGIN 0x40
111
#define PHASE_MSGOUT 0x80
112
#define PHASE_STATUSIN 0x100
113
#define PHASE_ETC (PHASE_DATAIN | PHASE_DATA_OUT | PHASE_CMDOUT | PHASE_MSGIN | PHASE_MSGOUT | PHASE_STATUSIN)
114
#define PRINT_COMMAND 0x200
115
#define PHASE_EXIT 0x400
116
#define PHASE_RESELECT 0x800
117
#define DEBUG_FAST 0x1000
118
#define DEBUG_SG   0x2000
119
#define DEBUG_LINKED    0x4000
120
#define DEBUG_BORKEN    0x8000
121
 
122
/*
123
 *      Control options - these are timeouts specified in .01 seconds.
124
 */
125
 
126
/* 30, 20 work */
127
#define ST0X_BUS_FREE_DELAY 25
128
#define ST0X_SELECTION_DELAY 25
129
 
130
#define eoi() __asm__("push %%eax\nmovb $0x20, %%al\noutb %%al, $0x20\npop %%eax"::)
131
 
132
#define SEAGATE 1       /* these determine the type of the controller */
133
#define FD      2
134
 
135
#define ST0X_ID_STR     "Seagate ST-01/ST-02"
136
#define FD_ID_STR       "TMC-8XX/TMC-950"
137
 
138
#endif
139
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.