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

Subversion Repositories or1k_soc_on_altera_embedded_dev_kit

[/] [or1k_soc_on_altera_embedded_dev_kit/] [trunk/] [linux-2.6/] [linux-2.6.24/] [Documentation/] [scsi/] [arcmsr_spec.txt] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 xianfeng
*******************************************************************************
2
**                            ARECA FIRMWARE SPEC
3
*******************************************************************************
4
**      Usage of IOP331 adapter
5
**      (All In/Out is in IOP331's view)
6
**      1. Message 0 --> InitThread message and return code
7
**      2. Doorbell is used for RS-232 emulation
8
**              inDoorBell :    bit0 -- data in ready
9
**                      (DRIVER DATA WRITE OK)
10
**                              bit1 -- data out has been read
11
**                      (DRIVER DATA READ OK)
12
**              outDooeBell:    bit0 -- data out ready
13
**                      (IOP331 DATA WRITE OK)
14
**                              bit1 -- data in has been read
15
**                      (IOP331 DATA READ OK)
16
**      3. Index Memory Usage
17
**      offset 0xf00 : for RS232 out (request buffer)
18
**      offset 0xe00 : for RS232 in  (scratch buffer)
19
**      offset 0xa00 : for inbound message code message_rwbuffer
20
**                      (driver send to IOP331)
21
**      offset 0xa00 : for outbound message code message_rwbuffer
22
**                      (IOP331 send to driver)
23
**      4. RS-232 emulation
24
**              Currently 128 byte buffer is used
25
**                      1st uint32_t : Data length (1--124)
26
**                      Byte 4--127  : Max 124 bytes of data
27
**      5. PostQ
28
**      All SCSI Command must be sent through postQ:
29
**      (inbound queue port)    Request frame must be 32 bytes aligned
30
**      #bit27--bit31 => flag for post ccb
31
**      #bit0--bit26  => real address (bit27--bit31) of post arcmsr_cdb
32
**              bit31 :
33
**                      0 : 256 bytes frame
34
**                      1 : 512 bytes frame
35
**              bit30 :
36
**                      0 : normal request
37
**                      1 : BIOS request
38
**              bit29 : reserved
39
**              bit28 : reserved
40
**              bit27 : reserved
41
**  ---------------------------------------------------------------------------
42
**      (outbount queue port)   Request reply
43
**      #bit27--bit31
44
**              => flag for reply
45
**      #bit0--bit26
46
**              => real address (bit27--bit31) of reply arcmsr_cdb
47
**                      bit31 : must be 0 (for this type of reply)
48
**                      bit30 : reserved for BIOS handshake
49
**                      bit29 : reserved
50
**                      bit28 :
51
**                      0 : no error, ignore AdapStatus/DevStatus/SenseData
52
**                      1 : Error, error code in AdapStatus/DevStatus/SenseData
53
**                      bit27 : reserved
54
**      6. BIOS request
55
**              All BIOS request is the same with request from PostQ
56
**              Except :
57
**                      Request frame is sent from configuration space
58
**              offset: 0x78 : Request Frame (bit30 == 1)
59
**              offset: 0x18 : writeonly to generate
60
**                                      IRQ to IOP331
61
**              Completion of request:
62
**                      (bit30 == 0, bit28==err flag)
63
**      7. Definition of SGL entry (structure)
64
**      8. Message1 Out - Diag Status Code (????)
65
**      9. Message0 message code :
66
**              0x00 : NOP
67
**              0x01 : Get Config
68
**              ->offset 0xa00 :for outbound message code message_rwbuffer
69
**              (IOP331 send to driver)
70
**              Signature             0x87974060(4)
71
**              Request len           0x00000200(4)
72
**              numbers of queue      0x00000100(4)
73
**              SDRAM Size            0x00000100(4)-->256 MB
74
**              IDE Channels          0x00000008(4)
75
**              vendor                40 bytes char
76
**              model                  8 bytes char
77
**              FirmVer               16 bytes char
78
**              Device Map            16 bytes char
79
**              FirmwareVersion DWORD <== Added for checking of
80
**                                              new firmware capability
81
**              0x02 : Set Config
82
**              ->offset 0xa00 :for inbound message code message_rwbuffer
83
**              (driver send to IOP331)
84
**              Signature             0x87974063(4)
85
**              UPPER32 of Request Frame  (4)-->Driver Only
86
**              0x03 : Reset (Abort all queued Command)
87
**              0x04 : Stop Background Activity
88
**              0x05 : Flush Cache
89
**              0x06 : Start Background Activity
90
**                      (re-start if background is halted)
91
**              0x07 : Check If Host Command Pending
92
**                      (Novell May Need This Function)
93
**              0x08 : Set controller time
94
**              ->offset 0xa00 : for inbound message code message_rwbuffer
95
**              (driver to IOP331)
96
**              byte 0 : 0xaa <-- signature
97
**              byte 1 : 0x55 <-- signature
98
**              byte 2 : year (04)
99
**              byte 3 : month (1..12)
100
**              byte 4 : date (1..31)
101
**              byte 5 : hour (0..23)
102
**              byte 6 : minute (0..59)
103
**              byte 7 : second (0..59)
104
*******************************************************************************
105
*******************************************************************************
106
**              RS-232 Interface for Areca Raid Controller
107
**      The low level command interface is exclusive with VT100 terminal
108
**  --------------------------------------------------------------------
109
**      1. Sequence of command execution
110
**  --------------------------------------------------------------------
111
**      (A) Header : 3 bytes sequence (0x5E, 0x01, 0x61)
112
**      (B) Command block : variable length of data including length,
113
**              command code, data and checksum byte
114
**      (C) Return data : variable length of data
115
**  --------------------------------------------------------------------
116
**    2. Command block
117
**  --------------------------------------------------------------------
118
**      (A) 1st byte : command block length (low byte)
119
**      (B) 2nd byte : command block length (high byte)
120
**                note ..command block length shouldn't > 2040 bytes,
121
**              length excludes these two bytes
122
**      (C) 3rd byte : command code
123
**      (D) 4th and following bytes : variable length data bytes
124
**              depends on command code
125
**      (E) last byte : checksum byte (sum of 1st byte until last data byte)
126
**  --------------------------------------------------------------------
127
**    3. Command code and associated data
128
**  --------------------------------------------------------------------
129
**      The following are command code defined in raid controller Command
130
**      code 0x10--0x1? are used for system level management,
131
**      no password checking is needed and should be implemented in separate
132
**      well controlled utility and not for end user access.
133
**      Command code 0x20--0x?? always check the password,
134
**      password must be entered to enable these command.
135
**      enum
136
**      {
137
**              GUI_SET_SERIAL=0x10,
138
**              GUI_SET_VENDOR,
139
**              GUI_SET_MODEL,
140
**              GUI_IDENTIFY,
141
**              GUI_CHECK_PASSWORD,
142
**              GUI_LOGOUT,
143
**              GUI_HTTP,
144
**              GUI_SET_ETHERNET_ADDR,
145
**              GUI_SET_LOGO,
146
**              GUI_POLL_EVENT,
147
**              GUI_GET_EVENT,
148
**              GUI_GET_HW_MONITOR,
149
**              //    GUI_QUICK_CREATE=0x20, (function removed)
150
**              GUI_GET_INFO_R=0x20,
151
**              GUI_GET_INFO_V,
152
**              GUI_GET_INFO_P,
153
**              GUI_GET_INFO_S,
154
**              GUI_CLEAR_EVENT,
155
**              GUI_MUTE_BEEPER=0x30,
156
**              GUI_BEEPER_SETTING,
157
**              GUI_SET_PASSWORD,
158
**              GUI_HOST_INTERFACE_MODE,
159
**              GUI_REBUILD_PRIORITY,
160
**              GUI_MAX_ATA_MODE,
161
**              GUI_RESET_CONTROLLER,
162
**              GUI_COM_PORT_SETTING,
163
**              GUI_NO_OPERATION,
164
**              GUI_DHCP_IP,
165
**              GUI_CREATE_PASS_THROUGH=0x40,
166
**              GUI_MODIFY_PASS_THROUGH,
167
**              GUI_DELETE_PASS_THROUGH,
168
**              GUI_IDENTIFY_DEVICE,
169
**              GUI_CREATE_RAIDSET=0x50,
170
**              GUI_DELETE_RAIDSET,
171
**              GUI_EXPAND_RAIDSET,
172
**              GUI_ACTIVATE_RAIDSET,
173
**              GUI_CREATE_HOT_SPARE,
174
**              GUI_DELETE_HOT_SPARE,
175
**              GUI_CREATE_VOLUME=0x60,
176
**              GUI_MODIFY_VOLUME,
177
**              GUI_DELETE_VOLUME,
178
**              GUI_START_CHECK_VOLUME,
179
**              GUI_STOP_CHECK_VOLUME
180
**      };
181
**    Command description :
182
**      GUI_SET_SERIAL : Set the controller serial#
183
**              byte 0,1        : length
184
**              byte 2          : command code 0x10
185
**              byte 3          : password length (should be 0x0f)
186
**              byte 4-0x13     : should be "ArEcATecHnoLogY"
187
**              byte 0x14--0x23 : Serial number string (must be 16 bytes)
188
**      GUI_SET_VENDOR : Set vendor string for the controller
189
**              byte 0,1        : length
190
**              byte 2          : command code 0x11
191
**              byte 3          : password length (should be 0x08)
192
**              byte 4-0x13     : should be "ArEcAvAr"
193
**              byte 0x14--0x3B : vendor string (must be 40 bytes)
194
**      GUI_SET_MODEL : Set the model name of the controller
195
**              byte 0,1        : length
196
**              byte 2          : command code 0x12
197
**              byte 3          : password length (should be 0x08)
198
**              byte 4-0x13     : should be "ArEcAvAr"
199
**              byte 0x14--0x1B : model string (must be 8 bytes)
200
**      GUI_IDENTIFY : Identify device
201
**              byte 0,1        : length
202
**              byte 2          : command code 0x13
203
**                                return "Areca RAID Subsystem "
204
**      GUI_CHECK_PASSWORD : Verify password
205
**              byte 0,1        : length
206
**              byte 2          : command code 0x14
207
**              byte 3          : password length
208
**              byte 4-0x??     : user password to be checked
209
**      GUI_LOGOUT : Logout GUI (force password checking on next command)
210
**              byte 0,1        : length
211
**              byte 2          : command code 0x15
212
**      GUI_HTTP : HTTP interface (reserved for Http proxy service)(0x16)
213
**
214
**      GUI_SET_ETHERNET_ADDR : Set the ethernet MAC address
215
**              byte 0,1        : length
216
**              byte 2          : command code 0x17
217
**              byte 3          : password length (should be 0x08)
218
**              byte 4-0x13     : should be "ArEcAvAr"
219
**              byte 0x14--0x19 : Ethernet MAC address (must be 6 bytes)
220
**      GUI_SET_LOGO : Set logo in HTTP
221
**              byte 0,1        : length
222
**              byte 2          : command code 0x18
223
**              byte 3          : Page# (0/1/2/3) (0xff --> clear OEM logo)
224
**              byte 4/5/6/7    : 0x55/0xaa/0xa5/0x5a
225
**              byte 8          : TITLE.JPG data (each page must be 2000 bytes)
226
**                                note page0 1st 2 byte must be
227
**                                      actual length of the JPG file
228
**      GUI_POLL_EVENT : Poll If Event Log Changed
229
**              byte 0,1        : length
230
**              byte 2          : command code 0x19
231
**      GUI_GET_EVENT : Read Event
232
**              byte 0,1        : length
233
**              byte 2          : command code 0x1a
234
**              byte 3          : Event Page (0:1st page/1/2/3:last page)
235
**      GUI_GET_HW_MONITOR : Get HW monitor data
236
**              byte 0,1        : length
237
**              byte 2                  : command code 0x1b
238
**              byte 3                  : # of FANs(example 2)
239
**              byte 4                  : # of Voltage sensor(example 3)
240
**              byte 5                  : # of temperature sensor(example 2)
241
**              byte 6                  : # of power
242
**              byte 7/8        : Fan#0 (RPM)
243
**              byte 9/10       : Fan#1
244
**              byte 11/12              : Voltage#0 original value in *1000
245
**              byte 13/14              : Voltage#0 value
246
**              byte 15/16              : Voltage#1 org
247
**              byte 17/18              : Voltage#1
248
**              byte 19/20              : Voltage#2 org
249
**              byte 21/22              : Voltage#2
250
**              byte 23                 : Temp#0
251
**              byte 24                 : Temp#1
252
**              byte 25                 : Power indicator (bit0 : power#0,
253
**                                               bit1 : power#1)
254
**              byte 26                 : UPS indicator
255
**      GUI_QUICK_CREATE : Quick create raid/volume set
256
**          byte 0,1        : length
257
**          byte 2          : command code 0x20
258
**          byte 3/4/5/6    : raw capacity
259
**          byte 7                      : raid level
260
**          byte 8                      : stripe size
261
**          byte 9                      : spare
262
**          byte 10/11/12/13: device mask (the devices to create raid/volume)
263
**              This function is removed, application like
264
**              to implement quick create function
265
**      need to use GUI_CREATE_RAIDSET and GUI_CREATE_VOLUMESET function.
266
**      GUI_GET_INFO_R : Get Raid Set Information
267
**              byte 0,1        : length
268
**              byte 2          : command code 0x20
269
**              byte 3          : raidset#
270
**      typedef struct sGUI_RAIDSET
271
**      {
272
**              BYTE grsRaidSetName[16];
273
**              DWORD grsCapacity;
274
**              DWORD grsCapacityX;
275
**              DWORD grsFailMask;
276
**              BYTE grsDevArray[32];
277
**              BYTE grsMemberDevices;
278
**              BYTE grsNewMemberDevices;
279
**              BYTE grsRaidState;
280
**              BYTE grsVolumes;
281
**              BYTE grsVolumeList[16];
282
**              BYTE grsRes1;
283
**              BYTE grsRes2;
284
**              BYTE grsRes3;
285
**              BYTE grsFreeSegments;
286
**              DWORD grsRawStripes[8];
287
**              DWORD grsRes4;
288
**              DWORD grsRes5; //     Total to 128 bytes
289
**              DWORD grsRes6; //     Total to 128 bytes
290
**      } sGUI_RAIDSET, *pGUI_RAIDSET;
291
**      GUI_GET_INFO_V : Get Volume Set Information
292
**              byte 0,1        : length
293
**              byte 2          : command code 0x21
294
**              byte 3          : volumeset#
295
**      typedef struct sGUI_VOLUMESET
296
**      {
297
**              BYTE gvsVolumeName[16]; //     16
298
**              DWORD gvsCapacity;
299
**              DWORD gvsCapacityX;
300
**              DWORD gvsFailMask;
301
**              DWORD gvsStripeSize;
302
**              DWORD gvsNewFailMask;
303
**              DWORD gvsNewStripeSize;
304
**              DWORD gvsVolumeStatus;
305
**              DWORD gvsProgress; //     32
306
**              sSCSI_ATTR gvsScsi;
307
**              BYTE gvsMemberDisks;
308
**              BYTE gvsRaidLevel; //     8
309
**              BYTE gvsNewMemberDisks;
310
**              BYTE gvsNewRaidLevel;
311
**              BYTE gvsRaidSetNumber;
312
**              BYTE gvsRes0; //     4
313
**              BYTE gvsRes1[4]; //     64 bytes
314
**      } sGUI_VOLUMESET, *pGUI_VOLUMESET;
315
**      GUI_GET_INFO_P : Get Physical Drive Information
316
**              byte 0,1        : length
317
**              byte 2          : command code 0x22
318
**              byte 3          : drive # (from 0 to max-channels - 1)
319
**      typedef struct sGUI_PHY_DRV
320
**      {
321
**              BYTE gpdModelName[40];
322
**              BYTE gpdSerialNumber[20];
323
**              BYTE gpdFirmRev[8];
324
**              DWORD gpdCapacity;
325
**              DWORD gpdCapacityX; //     Reserved for expansion
326
**              BYTE gpdDeviceState;
327
**              BYTE gpdPioMode;
328
**              BYTE gpdCurrentUdmaMode;
329
**              BYTE gpdUdmaMode;
330
**              BYTE gpdDriveSelect;
331
**              BYTE gpdRaidNumber; //     0xff if not belongs to a raid set
332
**              sSCSI_ATTR gpdScsi;
333
**              BYTE gpdReserved[40]; //     Total to 128 bytes
334
**      } sGUI_PHY_DRV, *pGUI_PHY_DRV;
335
**      GUI_GET_INFO_S : Get System Information
336
**              byte 0,1        : length
337
**              byte 2          : command code 0x23
338
**      typedef struct sCOM_ATTR
339
**      {
340
**              BYTE comBaudRate;
341
**              BYTE comDataBits;
342
**              BYTE comStopBits;
343
**              BYTE comParity;
344
**              BYTE comFlowControl;
345
**      } sCOM_ATTR, *pCOM_ATTR;
346
**      typedef struct sSYSTEM_INFO
347
**      {
348
**              BYTE gsiVendorName[40];
349
**              BYTE gsiSerialNumber[16];
350
**              BYTE gsiFirmVersion[16];
351
**              BYTE gsiBootVersion[16];
352
**              BYTE gsiMbVersion[16];
353
**              BYTE gsiModelName[8];
354
**              BYTE gsiLocalIp[4];
355
**              BYTE gsiCurrentIp[4];
356
**              DWORD gsiTimeTick;
357
**              DWORD gsiCpuSpeed;
358
**              DWORD gsiICache;
359
**              DWORD gsiDCache;
360
**              DWORD gsiScache;
361
**              DWORD gsiMemorySize;
362
**              DWORD gsiMemorySpeed;
363
**              DWORD gsiEvents;
364
**              BYTE gsiMacAddress[6];
365
**              BYTE gsiDhcp;
366
**              BYTE gsiBeeper;
367
**              BYTE gsiChannelUsage;
368
**              BYTE gsiMaxAtaMode;
369
**              BYTE gsiSdramEcc; //     1:if ECC enabled
370
**              BYTE gsiRebuildPriority;
371
**              sCOM_ATTR gsiComA; //     5 bytes
372
**              sCOM_ATTR gsiComB; //     5 bytes
373
**              BYTE gsiIdeChannels;
374
**              BYTE gsiScsiHostChannels;
375
**              BYTE gsiIdeHostChannels;
376
**              BYTE gsiMaxVolumeSet;
377
**              BYTE gsiMaxRaidSet;
378
**              BYTE gsiEtherPort; //     1:if ether net port supported
379
**              BYTE gsiRaid6Engine; //     1:Raid6 engine supported
380
**              BYTE gsiRes[75];
381
**      } sSYSTEM_INFO, *pSYSTEM_INFO;
382
**      GUI_CLEAR_EVENT : Clear System Event
383
**              byte 0,1        : length
384
**              byte 2          : command code 0x24
385
**      GUI_MUTE_BEEPER : Mute current beeper
386
**              byte 0,1        : length
387
**              byte 2          : command code 0x30
388
**      GUI_BEEPER_SETTING : Disable beeper
389
**              byte 0,1        : length
390
**              byte 2          : command code 0x31
391
**              byte 3          : 0->disable, 1->enable
392
**      GUI_SET_PASSWORD : Change password
393
**              byte 0,1        : length
394
**              byte 2                  : command code 0x32
395
**              byte 3                  : pass word length ( must <= 15 )
396
**              byte 4                  : password (must be alpha-numerical)
397
**      GUI_HOST_INTERFACE_MODE : Set host interface mode
398
**              byte 0,1        : length
399
**              byte 2                  : command code 0x33
400
**              byte 3                  : 0->Independent, 1->cluster
401
**      GUI_REBUILD_PRIORITY : Set rebuild priority
402
**              byte 0,1        : length
403
**              byte 2                  : command code 0x34
404
**              byte 3                  : 0/1/2/3 (low->high)
405
**      GUI_MAX_ATA_MODE : Set maximum ATA mode to be used
406
**              byte 0,1        : length
407
**              byte 2                  : command code 0x35
408
**              byte 3                  : 0/1/2/3 (133/100/66/33)
409
**      GUI_RESET_CONTROLLER : Reset Controller
410
**              byte 0,1        : length
411
**              byte 2          : command code 0x36
412
**                            *Response with VT100 screen (discard it)
413
**      GUI_COM_PORT_SETTING : COM port setting
414
**              byte 0,1        : length
415
**              byte 2                  : command code 0x37
416
**              byte 3                  : 0->COMA (term port),
417
**                                        1->COMB (debug port)
418
**              byte 4                  : 0/1/2/3/4/5/6/7
419
**                      (1200/2400/4800/9600/19200/38400/57600/115200)
420
**              byte 5                  : data bit
421
**                                      (0:7 bit, 1:8 bit : must be 8 bit)
422
**              byte 6                  : stop bit (0:1, 1:2 stop bits)
423
**              byte 7                  : parity (0:none, 1:off, 2:even)
424
**              byte 8                  : flow control
425
**                      (0:none, 1:xon/xoff, 2:hardware => must use none)
426
**      GUI_NO_OPERATION : No operation
427
**              byte 0,1        : length
428
**              byte 2          : command code 0x38
429
**      GUI_DHCP_IP : Set DHCP option and local IP address
430
**              byte 0,1        : length
431
**              byte 2          : command code 0x39
432
**              byte 3          : 0:dhcp disabled, 1:dhcp enabled
433
**              byte 4/5/6/7    : IP address
434
**      GUI_CREATE_PASS_THROUGH : Create pass through disk
435
**              byte 0,1        : length
436
**              byte 2                  : command code 0x40
437
**              byte 3                  : device #
438
**              byte 4                  : scsi channel (0/1)
439
**              byte 5                  : scsi id (0-->15)
440
**              byte 6                  : scsi lun (0-->7)
441
**              byte 7                  : tagged queue (1 : enabled)
442
**              byte 8                  : cache mode (1 : enabled)
443
**              byte 9                  : max speed (0/1/2/3/4,
444
**                      async/20/40/80/160 for scsi)
445
**                      (0/1/2/3/4, 33/66/100/133/150 for ide  )
446
**      GUI_MODIFY_PASS_THROUGH : Modify pass through disk
447
**              byte 0,1        : length
448
**              byte 2                  : command code 0x41
449
**              byte 3                  : device #
450
**              byte 4                  : scsi channel (0/1)
451
**              byte 5                  : scsi id (0-->15)
452
**              byte 6                  : scsi lun (0-->7)
453
**              byte 7                  : tagged queue (1 : enabled)
454
**              byte 8                  : cache mode (1 : enabled)
455
**              byte 9                  : max speed (0/1/2/3/4,
456
**                                      async/20/40/80/160 for scsi)
457
**                      (0/1/2/3/4, 33/66/100/133/150 for ide  )
458
**      GUI_DELETE_PASS_THROUGH : Delete pass through disk
459
**              byte 0,1        : length
460
**              byte 2          : command code 0x42
461
**              byte 3          : device# to be deleted
462
**      GUI_IDENTIFY_DEVICE : Identify Device
463
**              byte 0,1        : length
464
**              byte 2          : command code 0x43
465
**              byte 3          : Flash Method
466
**                              (0:flash selected, 1:flash not selected)
467
**              byte 4/5/6/7    : IDE device mask to be flashed
468
**                           note .... no response data available
469
**      GUI_CREATE_RAIDSET : Create Raid Set
470
**              byte 0,1        : length
471
**              byte 2          : command code 0x50
472
**              byte 3/4/5/6    : device mask
473
**              byte 7-22       : raidset name (if byte 7 == 0:use default)
474
**      GUI_DELETE_RAIDSET : Delete Raid Set
475
**              byte 0,1        : length
476
**              byte 2          : command code 0x51
477
**              byte 3          : raidset#
478
**      GUI_EXPAND_RAIDSET : Expand Raid Set
479
**              byte 0,1        : length
480
**              byte 2          : command code 0x52
481
**              byte 3          : raidset#
482
**              byte 4/5/6/7    : device mask for expansion
483
**              byte 8/9/10     : (8:0 no change, 1 change, 0xff:terminate,
484
**                              9:new raid level,
485
**                              10:new stripe size
486
**                              0/1/2/3/4/5->4/8/16/32/64/128K )
487
**              byte 11/12/13   : repeat for each volume in the raidset
488
**      GUI_ACTIVATE_RAIDSET : Activate incomplete raid set
489
**              byte 0,1        : length
490
**              byte 2          : command code 0x53
491
**              byte 3          : raidset#
492
**      GUI_CREATE_HOT_SPARE : Create hot spare disk
493
**              byte 0,1        : length
494
**              byte 2          : command code 0x54
495
**              byte 3/4/5/6    : device mask for hot spare creation
496
**      GUI_DELETE_HOT_SPARE : Delete hot spare disk
497
**              byte 0,1        : length
498
**              byte 2          : command code 0x55
499
**              byte 3/4/5/6    : device mask for hot spare deletion
500
**      GUI_CREATE_VOLUME : Create volume set
501
**              byte 0,1        : length
502
**              byte 2          : command code 0x60
503
**              byte 3          : raidset#
504
**              byte 4-19       : volume set name
505
**                              (if byte4 == 0, use default)
506
**              byte 20-27      : volume capacity (blocks)
507
**              byte 28                 : raid level
508
**              byte 29                 : stripe size
509
**                              (0/1/2/3/4/5->4/8/16/32/64/128K)
510
**              byte 30                 : channel
511
**              byte 31                 : ID
512
**              byte 32                 : LUN
513
**              byte 33                 : 1 enable tag
514
**              byte 34                 : 1 enable cache
515
**              byte 35                 : speed
516
**              (0/1/2/3/4->async/20/40/80/160 for scsi)
517
**              (0/1/2/3/4->33/66/100/133/150 for IDE  )
518
**              byte 36                 : 1 to select quick init
519
**
520
**      GUI_MODIFY_VOLUME : Modify volume Set
521
**              byte 0,1        : length
522
**              byte 2          : command code 0x61
523
**              byte 3          : volumeset#
524
**              byte 4-19       : new volume set name
525
**              (if byte4 == 0, not change)
526
**              byte 20-27      : new volume capacity (reserved)
527
**              byte 28                 : new raid level
528
**              byte 29                 : new stripe size
529
**              (0/1/2/3/4/5->4/8/16/32/64/128K)
530
**              byte 30                 : new channel
531
**              byte 31                 : new ID
532
**              byte 32                 : new LUN
533
**              byte 33                 : 1 enable tag
534
**              byte 34                 : 1 enable cache
535
**              byte 35                 : speed
536
**              (0/1/2/3/4->async/20/40/80/160 for scsi)
537
**              (0/1/2/3/4->33/66/100/133/150 for IDE  )
538
**      GUI_DELETE_VOLUME : Delete volume set
539
**              byte 0,1        : length
540
**              byte 2          : command code 0x62
541
**              byte 3          : volumeset#
542
**      GUI_START_CHECK_VOLUME : Start volume consistency check
543
**              byte 0,1        : length
544
**              byte 2          : command code 0x63
545
**              byte 3          : volumeset#
546
**      GUI_STOP_CHECK_VOLUME : Stop volume consistency check
547
**              byte 0,1        : length
548
**              byte 2          : command code 0x64
549
** ---------------------------------------------------------------------
550
**    4. Returned data
551
** ---------------------------------------------------------------------
552
**      (A) Header          : 3 bytes sequence (0x5E, 0x01, 0x61)
553
**      (B) Length          : 2 bytes
554
**                      (low byte 1st, excludes length and checksum byte)
555
**      (C) status or data  :
556
**           <1> If length == 1 ==> 1 byte status code
557
**              #define GUI_OK                    0x41
558
**              #define GUI_RAIDSET_NOT_NORMAL    0x42
559
**              #define GUI_VOLUMESET_NOT_NORMAL  0x43
560
**              #define GUI_NO_RAIDSET            0x44
561
**              #define GUI_NO_VOLUMESET          0x45
562
**              #define GUI_NO_PHYSICAL_DRIVE     0x46
563
**              #define GUI_PARAMETER_ERROR       0x47
564
**              #define GUI_UNSUPPORTED_COMMAND   0x48
565
**              #define GUI_DISK_CONFIG_CHANGED   0x49
566
**              #define GUI_INVALID_PASSWORD      0x4a
567
**              #define GUI_NO_DISK_SPACE         0x4b
568
**              #define GUI_CHECKSUM_ERROR        0x4c
569
**              #define GUI_PASSWORD_REQUIRED     0x4d
570
**           <2> If length > 1 ==>
571
**              data block returned from controller
572
**              and the contents depends on the command code
573
**      (E) Checksum        : checksum of length and status or data byte
574
**************************************************************************

powered by: WebSVN 2.1.0

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