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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [drivers/] [block/] [ida_cmd.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/*
2
 *    Disk Array driver for Compaq SMART2 Controllers
3
 *    Copyright 1998 Compaq Computer Corporation
4
 *
5
 *    This program is free software; you can redistribute it and/or modify
6
 *    it under the terms of the GNU General Public License as published by
7
 *    the Free Software Foundation; either version 2 of the License, or
8
 *    (at your option) any later version.
9
 *
10
 *    This program is distributed in the hope that it will be useful,
11
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 *    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
13
 *    NON INFRINGEMENT.  See the GNU General Public License for more details.
14
 *
15
 *    You should have received a copy of the GNU General Public License
16
 *    along with this program; if not, write to the Free Software
17
 *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18
 *
19
 *    Questions/Comments/Bugfixes to arrays@compaq.com
20
 *
21
 */
22
#ifndef ARRAYCMD_H
23
#define ARRAYCMD_H
24
 
25
#include <asm/types.h>
26
#if 0
27
#include <linux/blkdev.h>
28
#endif
29
 
30
/* for the Smart Array 42XX cards */
31
#define S42XX_REQUEST_PORT_OFFSET       0x40
32
#define S42XX_REPLY_INTR_MASK_OFFSET    0x34
33
#define S42XX_REPLY_PORT_OFFSET         0x44
34
#define S42XX_INTR_STATUS               0x30
35
 
36
#define S42XX_INTR_OFF          0x08
37
#define S42XX_INTR_PENDING      0x08
38
 
39
#define COMMAND_FIFO            0x04
40
#define COMMAND_COMPLETE_FIFO   0x08
41
#define INTR_MASK               0x0C
42
#define INTR_STATUS             0x10
43
#define INTR_PENDING            0x14
44
 
45
#define FIFO_NOT_EMPTY          0x01
46
#define FIFO_NOT_FULL           0x02
47
 
48
#define BIG_PROBLEM             0x40
49
#define LOG_NOT_CONF            2
50
 
51
#pragma pack(1)
52
typedef struct {
53
        __u32   size;
54
        __u32   addr;
55
} sg_t;
56
 
57
#define RCODE_NONFATAL  0x02
58
#define RCODE_FATAL     0x04
59
#define RCODE_INVREQ    0x10
60
typedef struct {
61
        __u16   next;
62
        __u8    cmd;
63
        __u8    rcode;
64
        __u32   blk;
65
        __u16   blk_cnt;
66
        __u8    sg_cnt;
67
        __u8    reserved;
68
} rhdr_t;
69
 
70
#define SG_MAX                  32
71
typedef struct {
72
        rhdr_t  hdr;
73
        sg_t    sg[SG_MAX];
74
        __u32   bp;
75
} rblk_t;
76
 
77
typedef struct {
78
        __u8    unit;
79
        __u8    prio;
80
        __u16   size;
81
} chdr_t;
82
 
83
#define CMD_RWREQ       0x00
84
#define CMD_IOCTL_PEND  0x01
85
 
86
typedef struct cmdlist {
87
        chdr_t  hdr;
88
        rblk_t  req;
89
        __u32   size;
90
        int     retry_cnt;
91
        __u32   busaddr;
92
        int     ctlr;
93
        struct cmdlist *prev;
94
        struct cmdlist *next;
95
        struct request *rq;
96
        struct completion *waiting;
97
        int type;
98
} cmdlist_t;
99
 
100
#define ID_CTLR         0x11
101
typedef struct {
102
        __u8    nr_drvs;
103
        __u32   cfg_sig;
104
        __u8    firm_rev[4];
105
        __u8    rom_rev[4];
106
        __u8    hw_rev;
107
        __u32   bb_rev;
108
        __u32   drv_present_map;
109
        __u32   ext_drv_map;
110
        __u32   board_id;
111
        __u8    cfg_error;
112
        __u32   non_disk_bits;
113
        __u8    bad_ram_addr;
114
        __u8    cpu_rev;
115
        __u8    pdpi_rev;
116
        __u8    epic_rev;
117
        __u8    wcxc_rev;
118
        __u8    marketing_rev;
119
        __u8    ctlr_flags;
120
        __u8    host_flags;
121
        __u8    expand_dis;
122
        __u8    scsi_chips;
123
        __u32   max_req_blocks;
124
        __u32   ctlr_clock;
125
        __u8    drvs_per_bus;
126
        __u16   big_drv_present_map[8];
127
        __u16   big_ext_drv_map[8];
128
        __u16   big_non_disk_map[8];
129
        __u16   task_flags;
130
        __u8    icl_bus;
131
        __u8    red_modes;
132
        __u8    cur_red_mode;
133
        __u8    red_ctlr_stat;
134
        __u8    red_fail_reason;
135
        __u8    reserved[403];
136
} id_ctlr_t;
137
 
138
typedef struct {
139
        __u16   cyl;
140
        __u8    heads;
141
        __u8    xsig;
142
        __u8    psectors;
143
        __u16   wpre;
144
        __u8    maxecc;
145
        __u8    drv_ctrl;
146
        __u16   pcyls;
147
        __u8    pheads;
148
        __u16   landz;
149
        __u8    sect_per_track;
150
        __u8    cksum;
151
} drv_param_t;
152
 
153
#define ID_LOG_DRV      0x10
154
typedef struct {
155
        __u16   blk_size;
156
        __u32   nr_blks;
157
        drv_param_t drv;
158
        __u8    fault_tol;
159
        __u8    reserved;
160
        __u8    bios_disable;
161
} id_log_drv_t;
162
 
163
#define ID_LOG_DRV_EXT  0x18
164
typedef struct {
165
        __u32   log_drv_id;
166
        __u8    log_drv_label[64];
167
        __u8    reserved[418];
168
} id_log_drv_ext_t;
169
 
170
#define SENSE_LOG_DRV_STAT      0x12
171
typedef struct {
172
        __u8    status;
173
        __u32   fail_map;
174
        __u16   read_err[32];
175
        __u16   write_err[32];
176
        __u8    drv_err_data[256];
177
        __u8    drq_timeout[32];
178
        __u32   blks_to_recover;
179
        __u8    drv_recovering;
180
        __u16   remap_cnt[32];
181
        __u32   replace_drv_map;
182
        __u32   act_spare_map;
183
        __u8    spare_stat;
184
        __u8    spare_repl_map[32];
185
        __u32   repl_ok_map;
186
        __u8    media_exch;
187
        __u8    cache_fail;
188
        __u8    expn_fail;
189
        __u8    unit_flags;
190
        __u16   big_fail_map[8];
191
        __u16   big_remap_map[128];
192
        __u16   big_repl_map[8];
193
        __u16   big_act_spare_map[8];
194
        __u8    big_spar_repl_map[128];
195
        __u16   big_repl_ok_map[8];
196
        __u8    big_drv_rebuild;
197
        __u8    reserved[36];
198
} sense_log_drv_stat_t;
199
 
200
#define START_RECOVER           0x13
201
 
202
#define ID_PHYS_DRV             0x15
203
typedef struct {
204
        __u8    scsi_bus;
205
        __u8    scsi_id;
206
        __u16   blk_size;
207
        __u32   nr_blks;
208
        __u32   rsvd_blks;
209
        __u8    drv_model[40];
210
        __u8    drv_sn[40];
211
        __u8    drv_fw[8];
212
        __u8    scsi_iq_bits;
213
        __u8    compaq_drv_stmp;
214
        __u8    last_fail;
215
        __u8    phys_drv_flags;
216
        __u8    phys_drv_flags1;
217
        __u8    scsi_lun;
218
        __u8    phys_drv_flags2;
219
        __u8    reserved;
220
        __u32   spi_speed_rules;
221
        __u8    phys_connector[2];
222
        __u8    phys_box_on_bus;
223
        __u8    phys_bay_in_box;
224
} id_phys_drv_t;
225
 
226
#define BLINK_DRV_LEDS          0x16
227
typedef struct {
228
        __u32   blink_duration;
229
        __u32   reserved;
230
        __u8    blink[256];
231
        __u8    reserved1[248];
232
} blink_drv_leds_t;
233
 
234
#define SENSE_BLINK_LEDS        0x17
235
typedef struct {
236
        __u32   blink_duration;
237
        __u32   btime_elap;
238
        __u8    blink[256];
239
        __u8    reserved1[248];
240
} sense_blink_leds_t;
241
 
242
#define IDA_READ                0x20
243
#define IDA_WRITE               0x30
244
#define IDA_WRITE_MEDIA         0x31
245
#define RESET_TO_DIAG           0x40
246
#define DIAG_PASS_THRU          0x41
247
 
248
#define SENSE_CONFIG            0x50
249
#define SET_CONFIG              0x51
250
typedef struct {
251
        __u32   cfg_sig;
252
        __u16   compat_port;
253
        __u8    data_dist_mode;
254
        __u8    surf_an_ctrl;
255
        __u16   ctlr_phys_drv;
256
        __u16   log_unit_phys_drv;
257
        __u16   fault_tol_mode;
258
        __u8    phys_drv_param[16];
259
        drv_param_t drv;
260
        __u32   drv_asgn_map;
261
        __u16   dist_factor;
262
        __u32   spare_asgn_map;
263
        __u8    reserved[6];
264
        __u16   os;
265
        __u8    ctlr_order;
266
        __u8    extra_info;
267
        __u32   data_offs;
268
        __u8    parity_backedout_write_drvs;
269
        __u8    parity_dist_mode;
270
        __u8    parity_shift_fact;
271
        __u8    bios_disable_flag;
272
        __u32   blks_on_vol;
273
        __u32   blks_per_drv;
274
        __u8    scratch[16];
275
        __u16   big_drv_map[8];
276
        __u16   big_spare_map[8];
277
        __u8    ss_source_vol;
278
        __u8    mix_drv_cap_range;
279
        struct {
280
                __u16   big_drv_map[8];
281
                __u32   blks_per_drv;
282
                __u16   fault_tol_mode;
283
                __u16   dist_factor;
284
        } MDC_range[4];
285
        __u8    reserved1[248];
286
} config_t;
287
 
288
#define BYPASS_VOL_STATE        0x52
289
#define SS_CREATE_VOL           0x53
290
#define CHANGE_CONFIG           0x54
291
#define SENSE_ORIG_CONF         0x55
292
#define REORDER_LOG_DRV         0x56
293
typedef struct {
294
        __u8    old_units[32];
295
} reorder_log_drv_t;
296
 
297
#define LABEL_LOG_DRV           0x57
298
typedef struct {
299
        __u8    log_drv_label[64];
300
} label_log_drv_t;
301
 
302
#define SS_TO_VOL               0x58
303
 
304
#define SET_SURF_DELAY          0x60
305
typedef struct {
306
        __u16   delay;
307
        __u8    reserved[510];
308
} surf_delay_t;
309
 
310
#define SET_OVERHEAT_DELAY      0x61
311
typedef struct {
312
        __u16   delay;
313
} overhead_delay_t;
314
 
315
#define SET_MP_DELAY
316
typedef struct {
317
        __u16   delay;
318
        __u8    reserved[510];
319
} mp_delay_t;
320
 
321
#define SENSE_SURF_STATUS       0x70
322
 
323
#define PASSTHRU_A      0x91
324
typedef struct {
325
        __u8    target;
326
        __u8    bus;
327
        __u8    lun;
328
        __u32   timeout;
329
        __u32   flags;
330
        __u8    status;
331
        __u8    error;
332
        __u8    cdb_len;
333
        __u8    sense_error;
334
        __u8    sense_key;
335
        __u32   sense_info;
336
        __u8    sense_code;
337
        __u8    sense_qual;
338
        __u32   residual;
339
        __u8    reserved[4];
340
        __u8    cdb[12];
341
} scsi_param_t;
342
 
343
#define RESUME_BACKGROUND_ACTIVITY      0x99
344
#define SENSE_CONTROLLER_PERFORMANCE    0xa8
345
#define FLUSH_CACHE                     0xc2
346
#define COLLECT_BUFFER                  0xd2
347
#define READ_FLASH_ROM                  0xf6
348
#define WRITE_FLASH_ROM                 0xf7
349
#pragma pack()  
350
 
351
#endif /* ARRAYCMD_H */

powered by: WebSVN 2.1.0

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