1dade67f4SMauro Carvalho ChehabARECA FIRMWARE SPEC
2dade67f4SMauro Carvalho Chehab===================
3dade67f4SMauro Carvalho Chehab
4dade67f4SMauro Carvalho ChehabUsage of IOP331 adapter
5dade67f4SMauro Carvalho Chehab=======================
6dade67f4SMauro Carvalho Chehab
7dade67f4SMauro Carvalho Chehab(All In/Out is in IOP331's view)
8dade67f4SMauro Carvalho Chehab
9dade67f4SMauro Carvalho Chehab1. Message 0
10dade67f4SMauro Carvalho Chehab------------
11dade67f4SMauro Carvalho Chehab
12dade67f4SMauro Carvalho Chehab- InitThread message and return code
13dade67f4SMauro Carvalho Chehab
14dade67f4SMauro Carvalho Chehab2. Doorbell is used for RS-232 emulation
15dade67f4SMauro Carvalho Chehab----------------------------------------
16dade67f4SMauro Carvalho Chehab
17dade67f4SMauro Carvalho ChehabinDoorBell
18dade67f4SMauro Carvalho Chehab    bit0
19dade67f4SMauro Carvalho Chehab	data in ready
20dade67f4SMauro Carvalho Chehab	zDRIVER DATA WRITE OK)
21dade67f4SMauro Carvalho Chehab    bit1
22dade67f4SMauro Carvalho Chehab	data out has been read
23dade67f4SMauro Carvalho Chehab	(DRIVER DATA READ OK)
24dade67f4SMauro Carvalho Chehab
25dade67f4SMauro Carvalho ChehaboutDooeBell:
26dade67f4SMauro Carvalho Chehab    bit0
27dade67f4SMauro Carvalho Chehab	data out ready
28dade67f4SMauro Carvalho Chehab	(IOP331 DATA WRITE OK)
29dade67f4SMauro Carvalho Chehab    bit1
30dade67f4SMauro Carvalho Chehab	data in has been read
31dade67f4SMauro Carvalho Chehab	(IOP331 DATA READ OK)
32dade67f4SMauro Carvalho Chehab
33dade67f4SMauro Carvalho Chehab3. Index Memory Usage
34dade67f4SMauro Carvalho Chehab---------------------
35dade67f4SMauro Carvalho Chehab
36dade67f4SMauro Carvalho Chehab============   ==========================================
37dade67f4SMauro Carvalho Chehaboffset 0xf00   for RS232 out (request buffer)
38dade67f4SMauro Carvalho Chehaboffset 0xe00   for RS232 in  (scratch buffer)
39dade67f4SMauro Carvalho Chehaboffset 0xa00   for inbound message code message_rwbuffer
40dade67f4SMauro Carvalho Chehab	       (driver send to IOP331)
41dade67f4SMauro Carvalho Chehaboffset 0xa00   for outbound message code message_rwbuffer
42dade67f4SMauro Carvalho Chehab	       (IOP331 send to driver)
43dade67f4SMauro Carvalho Chehab============   ==========================================
44dade67f4SMauro Carvalho Chehab
45dade67f4SMauro Carvalho Chehab4. RS-232 emulation
46dade67f4SMauro Carvalho Chehab-------------------
47dade67f4SMauro Carvalho Chehab
48dade67f4SMauro Carvalho ChehabCurrently 128 byte buffer is used:
49dade67f4SMauro Carvalho Chehab
50dade67f4SMauro Carvalho Chehab============   =====================
51dade67f4SMauro Carvalho Chehab1st uint32_t   Data length (1--124)
52dade67f4SMauro Carvalho ChehabByte 4--127    Max 124 bytes of data
53dade67f4SMauro Carvalho Chehab============   =====================
54dade67f4SMauro Carvalho Chehab
55dade67f4SMauro Carvalho Chehab5. PostQ
56dade67f4SMauro Carvalho Chehab--------
57dade67f4SMauro Carvalho Chehab
58dade67f4SMauro Carvalho ChehabAll SCSI Command must be sent through postQ:
59dade67f4SMauro Carvalho Chehab
60dade67f4SMauro Carvalho Chehab    (inbound queue port)
61dade67f4SMauro Carvalho Chehab	Request frame must be 32 bytes aligned:
62dade67f4SMauro Carvalho Chehab
63dade67f4SMauro Carvalho Chehab	    #bit27--bit31
64dade67f4SMauro Carvalho Chehab		flag for post ccb
65dade67f4SMauro Carvalho Chehab	    #bit0--bit26
66dade67f4SMauro Carvalho Chehab		real address (bit27--bit31) of post arcmsr_cdb
67dade67f4SMauro Carvalho Chehab
68dade67f4SMauro Carvalho Chehab		=====   ===================
69dade67f4SMauro Carvalho Chehab		bit31   ==  ===============
70dade67f4SMauro Carvalho Chehab			0   256 bytes frame
71dade67f4SMauro Carvalho Chehab			1   512 bytes frame
72dade67f4SMauro Carvalho Chehab			==  ===============
73dade67f4SMauro Carvalho Chehab		bit30   ==  ==============
74dade67f4SMauro Carvalho Chehab			0   normal request
75dade67f4SMauro Carvalho Chehab			1   BIOS request
76dade67f4SMauro Carvalho Chehab			==  ==============
77dade67f4SMauro Carvalho Chehab		bit29   reserved
78dade67f4SMauro Carvalho Chehab		bit28   reserved
79dade67f4SMauro Carvalho Chehab		bit27   reserved
80dade67f4SMauro Carvalho Chehab		=====   ===================
81dade67f4SMauro Carvalho Chehab
82dade67f4SMauro Carvalho Chehab    (outbount queue port)
83dade67f4SMauro Carvalho Chehab	Request reply:
84dade67f4SMauro Carvalho Chehab
85dade67f4SMauro Carvalho Chehab	    #bit27--bit31
86dade67f4SMauro Carvalho Chehab		    flag for reply
87dade67f4SMauro Carvalho Chehab	    #bit0--bit26
88dade67f4SMauro Carvalho Chehab		    real address (bit27--bit31) of reply arcmsr_cdb
89dade67f4SMauro Carvalho Chehab
90dade67f4SMauro Carvalho Chehab		    =====   =======================================================
91dade67f4SMauro Carvalho Chehab		    bit31   must be 0 (for this type of reply)
92dade67f4SMauro Carvalho Chehab		    bit30   reserved for BIOS handshake
93dade67f4SMauro Carvalho Chehab		    bit29   reserved
94dade67f4SMauro Carvalho Chehab		    bit28   ==  ===================================================
95dade67f4SMauro Carvalho Chehab			    0   no error, ignore AdapStatus/DevStatus/SenseData
96dade67f4SMauro Carvalho Chehab			    1   Error, error code in AdapStatus/DevStatus/SenseData
97dade67f4SMauro Carvalho Chehab			    ==  ===================================================
98dade67f4SMauro Carvalho Chehab		    bit27   reserved
99dade67f4SMauro Carvalho Chehab		    =====   =======================================================
100dade67f4SMauro Carvalho Chehab
101dade67f4SMauro Carvalho Chehab6. BIOS request
102dade67f4SMauro Carvalho Chehab---------------
103dade67f4SMauro Carvalho Chehab
104dade67f4SMauro Carvalho ChehabAll BIOS request is the same with request from PostQ
105dade67f4SMauro Carvalho Chehab
106dade67f4SMauro Carvalho ChehabExcept:
107dade67f4SMauro Carvalho Chehab
108dade67f4SMauro Carvalho ChehabRequest frame is sent from configuration space:
109dade67f4SMauro Carvalho Chehab
110dade67f4SMauro Carvalho Chehab	============   ==========================
111dade67f4SMauro Carvalho Chehab	offset: 0x78   Request Frame (bit30 == 1)
112dade67f4SMauro Carvalho Chehab	offset: 0x18   writeonly to generate
113dade67f4SMauro Carvalho Chehab		       IRQ to IOP331
114dade67f4SMauro Carvalho Chehab	============   ==========================
115dade67f4SMauro Carvalho Chehab
116dade67f4SMauro Carvalho ChehabCompletion of request::
117dade67f4SMauro Carvalho Chehab
118dade67f4SMauro Carvalho Chehab	(bit30 == 0, bit28==err flag)
119dade67f4SMauro Carvalho Chehab
120dade67f4SMauro Carvalho Chehab7. Definition of SGL entry (structure)
121dade67f4SMauro Carvalho Chehab--------------------------------------
122dade67f4SMauro Carvalho Chehab
123dade67f4SMauro Carvalho Chehab8. Message1 Out - Diag Status Code (????)
124dade67f4SMauro Carvalho Chehab-----------------------------------------
125dade67f4SMauro Carvalho Chehab
126dade67f4SMauro Carvalho Chehab9. Message0 message code
127dade67f4SMauro Carvalho Chehab------------------------
128dade67f4SMauro Carvalho Chehab
129dade67f4SMauro Carvalho Chehab======  =================================================================
130dade67f4SMauro Carvalho Chehab0x00    NOP
131dade67f4SMauro Carvalho Chehab0x01    Get Config
132dade67f4SMauro Carvalho Chehab	->offset 0xa00 :for outbound message code message_rwbuffer
133dade67f4SMauro Carvalho Chehab	(IOP331 send to driver)
134dade67f4SMauro Carvalho Chehab
135dade67f4SMauro Carvalho Chehab	===================== ==========================================
136dade67f4SMauro Carvalho Chehab	Signature             0x87974060(4)
137dade67f4SMauro Carvalho Chehab	Request len           0x00000200(4)
138dade67f4SMauro Carvalho Chehab	numbers of queue      0x00000100(4)
139dade67f4SMauro Carvalho Chehab	SDRAM Size            0x00000100(4)-->256 MB
140dade67f4SMauro Carvalho Chehab	IDE Channels          0x00000008(4)
141dade67f4SMauro Carvalho Chehab	vendor                40 bytes char
142dade67f4SMauro Carvalho Chehab	model                 8 bytes char
143dade67f4SMauro Carvalho Chehab	FirmVer               16 bytes char
144dade67f4SMauro Carvalho Chehab	Device Map            16 bytes char
145dade67f4SMauro Carvalho Chehab	FirmwareVersion       DWORD
146dade67f4SMauro Carvalho Chehab
147dade67f4SMauro Carvalho Chehab			      - Added for checking of
148dade67f4SMauro Carvalho Chehab				new firmware capability
149dade67f4SMauro Carvalho Chehab	===================== ==========================================
150dade67f4SMauro Carvalho Chehab0x02    Set Config
151dade67f4SMauro Carvalho Chehab	->offset 0xa00 :for inbound message code message_rwbuffer
152dade67f4SMauro Carvalho Chehab	(driver send to IOP331)
153dade67f4SMauro Carvalho Chehab
154dade67f4SMauro Carvalho Chehab	========================= ==================
155dade67f4SMauro Carvalho Chehab	Signature                 0x87974063(4)
156dade67f4SMauro Carvalho Chehab	UPPER32 of Request Frame  (4)-->Driver Only
157dade67f4SMauro Carvalho Chehab	========================= ==================
158dade67f4SMauro Carvalho Chehab0x03    Reset (Abort all queued Command)
159dade67f4SMauro Carvalho Chehab0x04    Stop Background Activity
160dade67f4SMauro Carvalho Chehab0x05    Flush Cache
161dade67f4SMauro Carvalho Chehab0x06    Start Background Activity
162dade67f4SMauro Carvalho Chehab	(re-start if background is halted)
163dade67f4SMauro Carvalho Chehab0x07    Check If Host Command Pending
164dade67f4SMauro Carvalho Chehab	(Novell May Need This Function)
165dade67f4SMauro Carvalho Chehab0x08    Set controller time
166dade67f4SMauro Carvalho Chehab	->offset 0xa00   for inbound message code message_rwbuffer
167dade67f4SMauro Carvalho Chehab	(driver to IOP331)
168dade67f4SMauro Carvalho Chehab
169dade67f4SMauro Carvalho Chehab	======   ==================
170dade67f4SMauro Carvalho Chehab	byte 0   0xaa <-- signature
171dade67f4SMauro Carvalho Chehab	byte 1   0x55 <-- signature
172dade67f4SMauro Carvalho Chehab	byte 2   year (04)
173dade67f4SMauro Carvalho Chehab	byte 3   month (1..12)
174dade67f4SMauro Carvalho Chehab	byte 4   date (1..31)
175dade67f4SMauro Carvalho Chehab	byte 5   hour (0..23)
176dade67f4SMauro Carvalho Chehab	byte 6   minute (0..59)
177dade67f4SMauro Carvalho Chehab	byte 7   second (0..59)
178dade67f4SMauro Carvalho Chehab	======   ==================
179dade67f4SMauro Carvalho Chehab======  =================================================================
180dade67f4SMauro Carvalho Chehab
181dade67f4SMauro Carvalho Chehab
182dade67f4SMauro Carvalho ChehabRS-232 Interface for Areca Raid Controller
183dade67f4SMauro Carvalho Chehab==========================================
184dade67f4SMauro Carvalho Chehab
185dade67f4SMauro Carvalho Chehab      The low level command interface is exclusive with VT100 terminal
186dade67f4SMauro Carvalho Chehab
187dade67f4SMauro Carvalho Chehab1. Sequence of command execution
188dade67f4SMauro Carvalho Chehab--------------------------------
189dade67f4SMauro Carvalho Chehab
190dade67f4SMauro Carvalho Chehab	(A) Header
191dade67f4SMauro Carvalho Chehab		3 bytes sequence (0x5E, 0x01, 0x61)
192dade67f4SMauro Carvalho Chehab
193dade67f4SMauro Carvalho Chehab	(B) Command block
194dade67f4SMauro Carvalho Chehab		variable length of data including length,
195dade67f4SMauro Carvalho Chehab		command code, data and checksum byte
196dade67f4SMauro Carvalho Chehab
197dade67f4SMauro Carvalho Chehab	(C) Return data
198dade67f4SMauro Carvalho Chehab		variable length of data
199dade67f4SMauro Carvalho Chehab
200dade67f4SMauro Carvalho Chehab2. Command block
201dade67f4SMauro Carvalho Chehab----------------
202dade67f4SMauro Carvalho Chehab
203dade67f4SMauro Carvalho Chehab	(A) 1st byte
204dade67f4SMauro Carvalho Chehab		command block length (low byte)
205dade67f4SMauro Carvalho Chehab
206dade67f4SMauro Carvalho Chehab	(B) 2nd byte
207dade67f4SMauro Carvalho Chehab		command block length (high byte)
208dade67f4SMauro Carvalho Chehab
209dade67f4SMauro Carvalho Chehab		.. Note:: command block length shouldn't > 2040 bytes,
210dade67f4SMauro Carvalho Chehab			  length excludes these two bytes
211dade67f4SMauro Carvalho Chehab
212dade67f4SMauro Carvalho Chehab	(C) 3rd byte
213dade67f4SMauro Carvalho Chehab		command code
214dade67f4SMauro Carvalho Chehab
215dade67f4SMauro Carvalho Chehab	(D) 4th and following bytes
216dade67f4SMauro Carvalho Chehab		variable length data bytes
217dade67f4SMauro Carvalho Chehab
218dade67f4SMauro Carvalho Chehab	    depends on command code
219dade67f4SMauro Carvalho Chehab
220dade67f4SMauro Carvalho Chehab	(E) last byte
221dade67f4SMauro Carvalho Chehab	    checksum byte (sum of 1st byte until last data byte)
222dade67f4SMauro Carvalho Chehab
223dade67f4SMauro Carvalho Chehab3. Command code and associated data
224dade67f4SMauro Carvalho Chehab-----------------------------------
225dade67f4SMauro Carvalho Chehab
226dade67f4SMauro Carvalho ChehabThe following are command code defined in raid controller Command
227dade67f4SMauro Carvalho Chehabcode 0x10--0x1? are used for system level management,
228dade67f4SMauro Carvalho Chehabno password checking is needed and should be implemented in separate
229dade67f4SMauro Carvalho Chehabwell controlled utility and not for end user access.
230dade67f4SMauro Carvalho ChehabCommand code 0x20--0x?? always check the password,
231dade67f4SMauro Carvalho Chehabpassword must be entered to enable these command::
232dade67f4SMauro Carvalho Chehab
233dade67f4SMauro Carvalho Chehab	enum
234dade67f4SMauro Carvalho Chehab	{
235dade67f4SMauro Carvalho Chehab		GUI_SET_SERIAL=0x10,
236dade67f4SMauro Carvalho Chehab		GUI_SET_VENDOR,
237dade67f4SMauro Carvalho Chehab		GUI_SET_MODEL,
238dade67f4SMauro Carvalho Chehab		GUI_IDENTIFY,
239dade67f4SMauro Carvalho Chehab		GUI_CHECK_PASSWORD,
240dade67f4SMauro Carvalho Chehab		GUI_LOGOUT,
241dade67f4SMauro Carvalho Chehab		GUI_HTTP,
242dade67f4SMauro Carvalho Chehab		GUI_SET_ETHERNET_ADDR,
243dade67f4SMauro Carvalho Chehab		GUI_SET_LOGO,
244dade67f4SMauro Carvalho Chehab		GUI_POLL_EVENT,
245dade67f4SMauro Carvalho Chehab		GUI_GET_EVENT,
246dade67f4SMauro Carvalho Chehab		GUI_GET_HW_MONITOR,
247dade67f4SMauro Carvalho Chehab		//    GUI_QUICK_CREATE=0x20, (function removed)
248dade67f4SMauro Carvalho Chehab		GUI_GET_INFO_R=0x20,
249dade67f4SMauro Carvalho Chehab		GUI_GET_INFO_V,
250dade67f4SMauro Carvalho Chehab		GUI_GET_INFO_P,
251dade67f4SMauro Carvalho Chehab		GUI_GET_INFO_S,
252dade67f4SMauro Carvalho Chehab		GUI_CLEAR_EVENT,
253dade67f4SMauro Carvalho Chehab		GUI_MUTE_BEEPER=0x30,
254dade67f4SMauro Carvalho Chehab		GUI_BEEPER_SETTING,
255dade67f4SMauro Carvalho Chehab		GUI_SET_PASSWORD,
256dade67f4SMauro Carvalho Chehab		GUI_HOST_INTERFACE_MODE,
257dade67f4SMauro Carvalho Chehab		GUI_REBUILD_PRIORITY,
258dade67f4SMauro Carvalho Chehab		GUI_MAX_ATA_MODE,
259dade67f4SMauro Carvalho Chehab		GUI_RESET_CONTROLLER,
260dade67f4SMauro Carvalho Chehab		GUI_COM_PORT_SETTING,
261dade67f4SMauro Carvalho Chehab		GUI_NO_OPERATION,
262dade67f4SMauro Carvalho Chehab		GUI_DHCP_IP,
263dade67f4SMauro Carvalho Chehab		GUI_CREATE_PASS_THROUGH=0x40,
264dade67f4SMauro Carvalho Chehab		GUI_MODIFY_PASS_THROUGH,
265dade67f4SMauro Carvalho Chehab		GUI_DELETE_PASS_THROUGH,
266dade67f4SMauro Carvalho Chehab		GUI_IDENTIFY_DEVICE,
267dade67f4SMauro Carvalho Chehab		GUI_CREATE_RAIDSET=0x50,
268dade67f4SMauro Carvalho Chehab		GUI_DELETE_RAIDSET,
269dade67f4SMauro Carvalho Chehab		GUI_EXPAND_RAIDSET,
270dade67f4SMauro Carvalho Chehab		GUI_ACTIVATE_RAIDSET,
271dade67f4SMauro Carvalho Chehab		GUI_CREATE_HOT_SPARE,
272dade67f4SMauro Carvalho Chehab		GUI_DELETE_HOT_SPARE,
273dade67f4SMauro Carvalho Chehab		GUI_CREATE_VOLUME=0x60,
274dade67f4SMauro Carvalho Chehab		GUI_MODIFY_VOLUME,
275dade67f4SMauro Carvalho Chehab		GUI_DELETE_VOLUME,
276dade67f4SMauro Carvalho Chehab		GUI_START_CHECK_VOLUME,
277dade67f4SMauro Carvalho Chehab		GUI_STOP_CHECK_VOLUME
278dade67f4SMauro Carvalho Chehab	};
279dade67f4SMauro Carvalho Chehab
280dade67f4SMauro Carvalho ChehabCommand description
281dade67f4SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^^
282dade67f4SMauro Carvalho Chehab
283dade67f4SMauro Carvalho ChehabGUI_SET_SERIAL
284dade67f4SMauro Carvalho Chehab	Set the controller serial#
285dade67f4SMauro Carvalho Chehab
286dade67f4SMauro Carvalho Chehab	================  =============================================
287dade67f4SMauro Carvalho Chehab	byte 0,1          length
288dade67f4SMauro Carvalho Chehab	byte 2            command code 0x10
289dade67f4SMauro Carvalho Chehab	byte 3            password length (should be 0x0f)
290dade67f4SMauro Carvalho Chehab	byte 4-0x13       should be "ArEcATecHnoLogY"
291dade67f4SMauro Carvalho Chehab	byte 0x14--0x23   Serial number string (must be 16 bytes)
292dade67f4SMauro Carvalho Chehab	================  =============================================
293dade67f4SMauro Carvalho Chehab
294dade67f4SMauro Carvalho ChehabGUI_SET_VENDOR
295dade67f4SMauro Carvalho Chehab	Set vendor string for the controller
296dade67f4SMauro Carvalho Chehab
297dade67f4SMauro Carvalho Chehab	================  =============================================
298dade67f4SMauro Carvalho Chehab	byte 0,1          length
299dade67f4SMauro Carvalho Chehab	byte 2            command code 0x11
300dade67f4SMauro Carvalho Chehab	byte 3            password length (should be 0x08)
301dade67f4SMauro Carvalho Chehab	byte 4-0x13       should be "ArEcAvAr"
302dade67f4SMauro Carvalho Chehab	byte 0x14--0x3B   vendor string (must be 40 bytes)
303dade67f4SMauro Carvalho Chehab	================  =============================================
304dade67f4SMauro Carvalho Chehab
305dade67f4SMauro Carvalho ChehabGUI_SET_MODEL
306dade67f4SMauro Carvalho Chehab	Set the model name of the controller
307dade67f4SMauro Carvalho Chehab
308dade67f4SMauro Carvalho Chehab	================  =============================================
309dade67f4SMauro Carvalho Chehab	byte 0,1          length
310dade67f4SMauro Carvalho Chehab	byte 2            command code 0x12
311dade67f4SMauro Carvalho Chehab	byte 3            password length (should be 0x08)
312dade67f4SMauro Carvalho Chehab	byte 4-0x13       should be "ArEcAvAr"
313dade67f4SMauro Carvalho Chehab	byte 0x14--0x1B   model string (must be 8 bytes)
314dade67f4SMauro Carvalho Chehab	================  =============================================
315dade67f4SMauro Carvalho Chehab
316dade67f4SMauro Carvalho ChehabGUI_IDENTIFY
317dade67f4SMauro Carvalho Chehab	Identify device
318dade67f4SMauro Carvalho Chehab
319dade67f4SMauro Carvalho Chehab	================  =============================================
320dade67f4SMauro Carvalho Chehab	byte 0,1          length
321dade67f4SMauro Carvalho Chehab	byte 2            command code 0x13
322dade67f4SMauro Carvalho Chehab			    return "Areca RAID Subsystem "
323dade67f4SMauro Carvalho Chehab	================  =============================================
324dade67f4SMauro Carvalho Chehab
325dade67f4SMauro Carvalho ChehabGUI_CHECK_PASSWORD
326dade67f4SMauro Carvalho Chehab	Verify password
327dade67f4SMauro Carvalho Chehab
328dade67f4SMauro Carvalho Chehab	================  =============================================
329dade67f4SMauro Carvalho Chehab	byte 0,1          length
330dade67f4SMauro Carvalho Chehab	byte 2            command code 0x14
331dade67f4SMauro Carvalho Chehab	byte 3            password length
332dade67f4SMauro Carvalho Chehab	byte 4-0x??       user password to be checked
333dade67f4SMauro Carvalho Chehab	================  =============================================
334dade67f4SMauro Carvalho Chehab
335dade67f4SMauro Carvalho ChehabGUI_LOGOUT
336dade67f4SMauro Carvalho Chehab	Logout GUI (force password checking on next command)
337dade67f4SMauro Carvalho Chehab
338dade67f4SMauro Carvalho Chehab	================  =============================================
339dade67f4SMauro Carvalho Chehab	byte 0,1          length
340dade67f4SMauro Carvalho Chehab	byte 2            command code 0x15
341dade67f4SMauro Carvalho Chehab	================  =============================================
342dade67f4SMauro Carvalho Chehab
343dade67f4SMauro Carvalho ChehabGUI_HTTP
344dade67f4SMauro Carvalho Chehab	HTTP interface (reserved for Http proxy service)(0x16)
345dade67f4SMauro Carvalho Chehab
346dade67f4SMauro Carvalho ChehabGUI_SET_ETHERNET_ADDR
347dade67f4SMauro Carvalho Chehab	Set the ethernet MAC address
348dade67f4SMauro Carvalho Chehab
349dade67f4SMauro Carvalho Chehab	================  =============================================
350dade67f4SMauro Carvalho Chehab	byte 0,1          length
351dade67f4SMauro Carvalho Chehab	byte 2            command code 0x17
352dade67f4SMauro Carvalho Chehab	byte 3            password length (should be 0x08)
353dade67f4SMauro Carvalho Chehab	byte 4-0x13       should be "ArEcAvAr"
354dade67f4SMauro Carvalho Chehab	byte 0x14--0x19   Ethernet MAC address (must be 6 bytes)
355dade67f4SMauro Carvalho Chehab	================  =============================================
356dade67f4SMauro Carvalho Chehab
357dade67f4SMauro Carvalho ChehabGUI_SET_LOGO
358dade67f4SMauro Carvalho Chehab	Set logo in HTTP
359dade67f4SMauro Carvalho Chehab
360dade67f4SMauro Carvalho Chehab	================  =============================================
361dade67f4SMauro Carvalho Chehab	byte 0,1          length
362dade67f4SMauro Carvalho Chehab	byte 2            command code 0x18
363dade67f4SMauro Carvalho Chehab	byte 3            Page# (0/1/2/3) (0xff --> clear OEM logo)
364dade67f4SMauro Carvalho Chehab	byte 4/5/6/7      0x55/0xaa/0xa5/0x5a
365dade67f4SMauro Carvalho Chehab	byte 8            TITLE.JPG data (each page must be 2000 bytes)
366dade67f4SMauro Carvalho Chehab
367dade67f4SMauro Carvalho Chehab			  .. Note:: page0 1st 2 byte must be
368dade67f4SMauro Carvalho Chehab				    actual length of the JPG file
369dade67f4SMauro Carvalho Chehab	================  =============================================
370dade67f4SMauro Carvalho Chehab
371dade67f4SMauro Carvalho ChehabGUI_POLL_EVENT
372dade67f4SMauro Carvalho Chehab	Poll If Event Log Changed
373dade67f4SMauro Carvalho Chehab
374dade67f4SMauro Carvalho Chehab	================  =============================================
375dade67f4SMauro Carvalho Chehab	byte 0,1          length
376dade67f4SMauro Carvalho Chehab	byte 2            command code 0x19
377dade67f4SMauro Carvalho Chehab	================  =============================================
378dade67f4SMauro Carvalho Chehab
379dade67f4SMauro Carvalho ChehabGUI_GET_EVENT
380dade67f4SMauro Carvalho Chehab	Read Event
381dade67f4SMauro Carvalho Chehab
382dade67f4SMauro Carvalho Chehab	================  =============================================
383dade67f4SMauro Carvalho Chehab	byte 0,1          length
384dade67f4SMauro Carvalho Chehab	byte 2            command code 0x1a
385dade67f4SMauro Carvalho Chehab	byte 3            Event Page (0:1st page/1/2/3:last page)
386dade67f4SMauro Carvalho Chehab	================  =============================================
387dade67f4SMauro Carvalho Chehab
388dade67f4SMauro Carvalho ChehabGUI_GET_HW_MONITOR
389dade67f4SMauro Carvalho Chehab	Get HW monitor data
390dade67f4SMauro Carvalho Chehab
391dade67f4SMauro Carvalho Chehab	================  =============================================
392dade67f4SMauro Carvalho Chehab	byte 0,1          length
393dade67f4SMauro Carvalho Chehab	byte 2 		  command code 0x1b
394dade67f4SMauro Carvalho Chehab	byte 3 		  # of FANs(example 2)
395dade67f4SMauro Carvalho Chehab	byte 4 		  # of Voltage sensor(example 3)
396dade67f4SMauro Carvalho Chehab	byte 5 		  # of temperature sensor(example 2)
397dade67f4SMauro Carvalho Chehab	byte 6 		  # of power
398dade67f4SMauro Carvalho Chehab	byte 7/8          Fan#0 (RPM)
399dade67f4SMauro Carvalho Chehab	byte 9/10         Fan#1
400dade67f4SMauro Carvalho Chehab	byte 11/12 	  Voltage#0 original value in ``*1000``
401dade67f4SMauro Carvalho Chehab	byte 13/14 	  Voltage#0 value
402dade67f4SMauro Carvalho Chehab	byte 15/16 	  Voltage#1 org
403dade67f4SMauro Carvalho Chehab	byte 17/18 	  Voltage#1
404dade67f4SMauro Carvalho Chehab	byte 19/20 	  Voltage#2 org
405dade67f4SMauro Carvalho Chehab	byte 21/22 	  Voltage#2
406dade67f4SMauro Carvalho Chehab	byte 23 	  Temp#0
407dade67f4SMauro Carvalho Chehab	byte 24 	  Temp#1
408dade67f4SMauro Carvalho Chehab	byte 25 	  Power indicator (bit0   power#0,
409dade67f4SMauro Carvalho Chehab			  bit1   power#1)
410dade67f4SMauro Carvalho Chehab	byte 26 	  UPS indicator
411dade67f4SMauro Carvalho Chehab	================  =============================================
412dade67f4SMauro Carvalho Chehab
413dade67f4SMauro Carvalho ChehabGUI_QUICK_CREATE
414dade67f4SMauro Carvalho Chehab	Quick create raid/volume set
415dade67f4SMauro Carvalho Chehab
416dade67f4SMauro Carvalho Chehab	================  ==============================================
417dade67f4SMauro Carvalho Chehab	byte 0,1       	  length
418dade67f4SMauro Carvalho Chehab	byte 2         	  command code 0x20
419dade67f4SMauro Carvalho Chehab	byte 3/4/5/6   	  raw capacity
420dade67f4SMauro Carvalho Chehab	byte 7 		  raid level
421dade67f4SMauro Carvalho Chehab	byte 8 		  stripe size
422dade67f4SMauro Carvalho Chehab	byte 9 		  spare
423dade67f4SMauro Carvalho Chehab	byte 10/11/12/13  device mask (the devices to create raid/volume)
424dade67f4SMauro Carvalho Chehab	================  ==============================================
425dade67f4SMauro Carvalho Chehab
426dade67f4SMauro Carvalho Chehab    This function is removed, application like
427dade67f4SMauro Carvalho Chehab    to implement quick create function
428dade67f4SMauro Carvalho Chehab
429dade67f4SMauro Carvalho Chehab    need to use GUI_CREATE_RAIDSET and GUI_CREATE_VOLUMESET function.
430dade67f4SMauro Carvalho Chehab
431dade67f4SMauro Carvalho ChehabGUI_GET_INFO_R
432dade67f4SMauro Carvalho Chehab	Get Raid Set Information
433dade67f4SMauro Carvalho Chehab
434dade67f4SMauro Carvalho Chehab	================  =============================================
435dade67f4SMauro Carvalho Chehab	byte 0,1          length
436dade67f4SMauro Carvalho Chehab	byte 2            command code 0x20
437dade67f4SMauro Carvalho Chehab	byte 3            raidset#
438dade67f4SMauro Carvalho Chehab	================  =============================================
439dade67f4SMauro Carvalho Chehab
440dade67f4SMauro Carvalho Chehab	::
441dade67f4SMauro Carvalho Chehab
442dade67f4SMauro Carvalho Chehab	    typedef struct sGUI_RAIDSET
443dade67f4SMauro Carvalho Chehab	    {
444dade67f4SMauro Carvalho Chehab		    BYTE grsRaidSetName[16];
445dade67f4SMauro Carvalho Chehab		    DWORD grsCapacity;
446dade67f4SMauro Carvalho Chehab		    DWORD grsCapacityX;
447dade67f4SMauro Carvalho Chehab		    DWORD grsFailMask;
448dade67f4SMauro Carvalho Chehab		    BYTE grsDevArray[32];
449dade67f4SMauro Carvalho Chehab		    BYTE grsMemberDevices;
450dade67f4SMauro Carvalho Chehab		    BYTE grsNewMemberDevices;
451dade67f4SMauro Carvalho Chehab		    BYTE grsRaidState;
452dade67f4SMauro Carvalho Chehab		    BYTE grsVolumes;
453dade67f4SMauro Carvalho Chehab		    BYTE grsVolumeList[16];
454dade67f4SMauro Carvalho Chehab		    BYTE grsRes1;
455dade67f4SMauro Carvalho Chehab		    BYTE grsRes2;
456dade67f4SMauro Carvalho Chehab		    BYTE grsRes3;
457dade67f4SMauro Carvalho Chehab		    BYTE grsFreeSegments;
458dade67f4SMauro Carvalho Chehab		    DWORD grsRawStripes[8];
459dade67f4SMauro Carvalho Chehab		    DWORD grsRes4;
460dade67f4SMauro Carvalho Chehab		    DWORD grsRes5; //     Total to 128 bytes
461dade67f4SMauro Carvalho Chehab		    DWORD grsRes6; //     Total to 128 bytes
462dade67f4SMauro Carvalho Chehab	    } sGUI_RAIDSET, *pGUI_RAIDSET;
463dade67f4SMauro Carvalho Chehab
464dade67f4SMauro Carvalho ChehabGUI_GET_INFO_V
465dade67f4SMauro Carvalho Chehab	Get Volume Set Information
466dade67f4SMauro Carvalho Chehab
467dade67f4SMauro Carvalho Chehab	================  =============================================
468dade67f4SMauro Carvalho Chehab	byte 0,1          length
469dade67f4SMauro Carvalho Chehab	byte 2            command code 0x21
470dade67f4SMauro Carvalho Chehab	byte 3            volumeset#
471dade67f4SMauro Carvalho Chehab	================  =============================================
472dade67f4SMauro Carvalho Chehab
473dade67f4SMauro Carvalho Chehab	::
474dade67f4SMauro Carvalho Chehab
475dade67f4SMauro Carvalho Chehab	    typedef struct sGUI_VOLUMESET
476dade67f4SMauro Carvalho Chehab	    {
477dade67f4SMauro Carvalho Chehab		    BYTE gvsVolumeName[16]; //     16
478dade67f4SMauro Carvalho Chehab		    DWORD gvsCapacity;
479dade67f4SMauro Carvalho Chehab		    DWORD gvsCapacityX;
480dade67f4SMauro Carvalho Chehab		    DWORD gvsFailMask;
481dade67f4SMauro Carvalho Chehab		    DWORD gvsStripeSize;
482dade67f4SMauro Carvalho Chehab		    DWORD gvsNewFailMask;
483dade67f4SMauro Carvalho Chehab		    DWORD gvsNewStripeSize;
484dade67f4SMauro Carvalho Chehab		    DWORD gvsVolumeStatus;
485dade67f4SMauro Carvalho Chehab		    DWORD gvsProgress; //     32
486dade67f4SMauro Carvalho Chehab		    sSCSI_ATTR gvsScsi;
487dade67f4SMauro Carvalho Chehab		    BYTE gvsMemberDisks;
488dade67f4SMauro Carvalho Chehab		    BYTE gvsRaidLevel; //     8
489dade67f4SMauro Carvalho Chehab		    BYTE gvsNewMemberDisks;
490dade67f4SMauro Carvalho Chehab		    BYTE gvsNewRaidLevel;
491dade67f4SMauro Carvalho Chehab		    BYTE gvsRaidSetNumber;
492dade67f4SMauro Carvalho Chehab		    BYTE gvsRes0; //     4
493dade67f4SMauro Carvalho Chehab		    BYTE gvsRes1[4]; //     64 bytes
494dade67f4SMauro Carvalho Chehab	    } sGUI_VOLUMESET, *pGUI_VOLUMESET;
495dade67f4SMauro Carvalho Chehab
496dade67f4SMauro Carvalho ChehabGUI_GET_INFO_P
497dade67f4SMauro Carvalho Chehab	Get Physical Drive Information
498dade67f4SMauro Carvalho Chehab
499dade67f4SMauro Carvalho Chehab	================  =============================================
500dade67f4SMauro Carvalho Chehab	byte 0,1          length
501dade67f4SMauro Carvalho Chehab	byte 2            command code 0x22
502dade67f4SMauro Carvalho Chehab	byte 3            drive # (from 0 to max-channels - 1)
503dade67f4SMauro Carvalho Chehab	================  =============================================
504dade67f4SMauro Carvalho Chehab
505dade67f4SMauro Carvalho Chehab	::
506dade67f4SMauro Carvalho Chehab
507dade67f4SMauro Carvalho Chehab	    typedef struct sGUI_PHY_DRV
508dade67f4SMauro Carvalho Chehab	    {
509dade67f4SMauro Carvalho Chehab		    BYTE gpdModelName[40];
510dade67f4SMauro Carvalho Chehab		    BYTE gpdSerialNumber[20];
511dade67f4SMauro Carvalho Chehab		    BYTE gpdFirmRev[8];
512dade67f4SMauro Carvalho Chehab		    DWORD gpdCapacity;
513dade67f4SMauro Carvalho Chehab		    DWORD gpdCapacityX; //     Reserved for expansion
514dade67f4SMauro Carvalho Chehab		    BYTE gpdDeviceState;
515dade67f4SMauro Carvalho Chehab		    BYTE gpdPioMode;
516dade67f4SMauro Carvalho Chehab		    BYTE gpdCurrentUdmaMode;
517dade67f4SMauro Carvalho Chehab		    BYTE gpdUdmaMode;
518dade67f4SMauro Carvalho Chehab		    BYTE gpdDriveSelect;
519dade67f4SMauro Carvalho Chehab		    BYTE gpdRaidNumber; //     0xff if not belongs to a raid set
520dade67f4SMauro Carvalho Chehab		    sSCSI_ATTR gpdScsi;
521dade67f4SMauro Carvalho Chehab		    BYTE gpdReserved[40]; //     Total to 128 bytes
522dade67f4SMauro Carvalho Chehab	    } sGUI_PHY_DRV, *pGUI_PHY_DRV;
523dade67f4SMauro Carvalho Chehab
524dade67f4SMauro Carvalho ChehabGUI_GET_INFO_S
525dade67f4SMauro Carvalho Chehab	Get System Information
526dade67f4SMauro Carvalho Chehab
527dade67f4SMauro Carvalho Chehab	================  =============================================
528dade67f4SMauro Carvalho Chehab	byte 0,1          length
529dade67f4SMauro Carvalho Chehab	byte 2            command code 0x23
530dade67f4SMauro Carvalho Chehab	================  =============================================
531dade67f4SMauro Carvalho Chehab
532dade67f4SMauro Carvalho Chehab	::
533dade67f4SMauro Carvalho Chehab
534dade67f4SMauro Carvalho Chehab	    typedef struct sCOM_ATTR
535dade67f4SMauro Carvalho Chehab	    {
536dade67f4SMauro Carvalho Chehab		    BYTE comBaudRate;
537dade67f4SMauro Carvalho Chehab		    BYTE comDataBits;
538dade67f4SMauro Carvalho Chehab		    BYTE comStopBits;
539dade67f4SMauro Carvalho Chehab		    BYTE comParity;
540dade67f4SMauro Carvalho Chehab		    BYTE comFlowControl;
541dade67f4SMauro Carvalho Chehab	    } sCOM_ATTR, *pCOM_ATTR;
542dade67f4SMauro Carvalho Chehab	    typedef struct sSYSTEM_INFO
543dade67f4SMauro Carvalho Chehab	    {
544dade67f4SMauro Carvalho Chehab		    BYTE gsiVendorName[40];
545dade67f4SMauro Carvalho Chehab		    BYTE gsiSerialNumber[16];
546dade67f4SMauro Carvalho Chehab		    BYTE gsiFirmVersion[16];
547dade67f4SMauro Carvalho Chehab		    BYTE gsiBootVersion[16];
548dade67f4SMauro Carvalho Chehab		    BYTE gsiMbVersion[16];
549dade67f4SMauro Carvalho Chehab		    BYTE gsiModelName[8];
550dade67f4SMauro Carvalho Chehab		    BYTE gsiLocalIp[4];
551dade67f4SMauro Carvalho Chehab		    BYTE gsiCurrentIp[4];
552dade67f4SMauro Carvalho Chehab		    DWORD gsiTimeTick;
553dade67f4SMauro Carvalho Chehab		    DWORD gsiCpuSpeed;
554dade67f4SMauro Carvalho Chehab		    DWORD gsiICache;
555dade67f4SMauro Carvalho Chehab		    DWORD gsiDCache;
556dade67f4SMauro Carvalho Chehab		    DWORD gsiScache;
557dade67f4SMauro Carvalho Chehab		    DWORD gsiMemorySize;
558dade67f4SMauro Carvalho Chehab		    DWORD gsiMemorySpeed;
559dade67f4SMauro Carvalho Chehab		    DWORD gsiEvents;
560dade67f4SMauro Carvalho Chehab		    BYTE gsiMacAddress[6];
561dade67f4SMauro Carvalho Chehab		    BYTE gsiDhcp;
562dade67f4SMauro Carvalho Chehab		    BYTE gsiBeeper;
563dade67f4SMauro Carvalho Chehab		    BYTE gsiChannelUsage;
564dade67f4SMauro Carvalho Chehab		    BYTE gsiMaxAtaMode;
565dade67f4SMauro Carvalho Chehab		    BYTE gsiSdramEcc; //     1:if ECC enabled
566dade67f4SMauro Carvalho Chehab		    BYTE gsiRebuildPriority;
567dade67f4SMauro Carvalho Chehab		    sCOM_ATTR gsiComA; //     5 bytes
568dade67f4SMauro Carvalho Chehab		    sCOM_ATTR gsiComB; //     5 bytes
569dade67f4SMauro Carvalho Chehab		    BYTE gsiIdeChannels;
570dade67f4SMauro Carvalho Chehab		    BYTE gsiScsiHostChannels;
571dade67f4SMauro Carvalho Chehab		    BYTE gsiIdeHostChannels;
572dade67f4SMauro Carvalho Chehab		    BYTE gsiMaxVolumeSet;
573dade67f4SMauro Carvalho Chehab		    BYTE gsiMaxRaidSet;
574dade67f4SMauro Carvalho Chehab		    BYTE gsiEtherPort; //     1:if ether net port supported
575dade67f4SMauro Carvalho Chehab		    BYTE gsiRaid6Engine; //     1:Raid6 engine supported
576dade67f4SMauro Carvalho Chehab		    BYTE gsiRes[75];
577dade67f4SMauro Carvalho Chehab	    } sSYSTEM_INFO, *pSYSTEM_INFO;
578dade67f4SMauro Carvalho Chehab
579dade67f4SMauro Carvalho ChehabGUI_CLEAR_EVENT
580dade67f4SMauro Carvalho Chehab	Clear System Event
581dade67f4SMauro Carvalho Chehab
582dade67f4SMauro Carvalho Chehab	================  =============================================
583dade67f4SMauro Carvalho Chehab	byte 0,1          length
584dade67f4SMauro Carvalho Chehab	byte 2            command code 0x24
585dade67f4SMauro Carvalho Chehab	================  =============================================
586dade67f4SMauro Carvalho Chehab
587dade67f4SMauro Carvalho ChehabGUI_MUTE_BEEPER
588dade67f4SMauro Carvalho Chehab	Mute current beeper
589dade67f4SMauro Carvalho Chehab
590dade67f4SMauro Carvalho Chehab	================  =============================================
591dade67f4SMauro Carvalho Chehab	byte 0,1          length
592dade67f4SMauro Carvalho Chehab	byte 2            command code 0x30
593dade67f4SMauro Carvalho Chehab	================  =============================================
594dade67f4SMauro Carvalho ChehabGUI_BEEPER_SETTING
595dade67f4SMauro Carvalho Chehab	Disable beeper
596dade67f4SMauro Carvalho Chehab
597dade67f4SMauro Carvalho Chehab	================  =============================================
598dade67f4SMauro Carvalho Chehab	byte 0,1          length
599dade67f4SMauro Carvalho Chehab	byte 2            command code 0x31
600dade67f4SMauro Carvalho Chehab	byte 3            0->disable, 1->enable
601dade67f4SMauro Carvalho Chehab	================  =============================================
602dade67f4SMauro Carvalho Chehab
603dade67f4SMauro Carvalho ChehabGUI_SET_PASSWORD
604dade67f4SMauro Carvalho Chehab	Change password
605dade67f4SMauro Carvalho Chehab
606dade67f4SMauro Carvalho Chehab	================  =============================================
607dade67f4SMauro Carvalho Chehab	byte 0,1          length
608dade67f4SMauro Carvalho Chehab	byte 2 		  command code 0x32
609dade67f4SMauro Carvalho Chehab	byte 3 		  pass word length ( must <= 15 )
610dade67f4SMauro Carvalho Chehab	byte 4 		  password (must be alpha-numerical)
611dade67f4SMauro Carvalho Chehab	================  =============================================
612dade67f4SMauro Carvalho Chehab
613dade67f4SMauro Carvalho ChehabGUI_HOST_INTERFACE_MODE
614dade67f4SMauro Carvalho Chehab	Set host interface mode
615dade67f4SMauro Carvalho Chehab
616dade67f4SMauro Carvalho Chehab	================  =============================================
617dade67f4SMauro Carvalho Chehab	byte 0,1          length
618dade67f4SMauro Carvalho Chehab	byte 2 		  command code 0x33
619dade67f4SMauro Carvalho Chehab	byte 3 		  0->Independent, 1->cluster
620dade67f4SMauro Carvalho Chehab	================  =============================================
621dade67f4SMauro Carvalho Chehab
622dade67f4SMauro Carvalho ChehabGUI_REBUILD_PRIORITY
623dade67f4SMauro Carvalho Chehab	Set rebuild priority
624dade67f4SMauro Carvalho Chehab
625dade67f4SMauro Carvalho Chehab	================  =============================================
626dade67f4SMauro Carvalho Chehab	byte 0,1          length
627dade67f4SMauro Carvalho Chehab	byte 2 		  command code 0x34
628dade67f4SMauro Carvalho Chehab	byte 3 		  0/1/2/3 (low->high)
629dade67f4SMauro Carvalho Chehab	================  =============================================
630dade67f4SMauro Carvalho Chehab
631dade67f4SMauro Carvalho ChehabGUI_MAX_ATA_MODE
632dade67f4SMauro Carvalho Chehab	Set maximum ATA mode to be used
633dade67f4SMauro Carvalho Chehab
634dade67f4SMauro Carvalho Chehab	================  =============================================
635dade67f4SMauro Carvalho Chehab	byte 0,1          length
636dade67f4SMauro Carvalho Chehab	byte 2 		  command code 0x35
637dade67f4SMauro Carvalho Chehab	byte 3 		  0/1/2/3 (133/100/66/33)
638dade67f4SMauro Carvalho Chehab	================  =============================================
639dade67f4SMauro Carvalho Chehab
640dade67f4SMauro Carvalho ChehabGUI_RESET_CONTROLLER
641dade67f4SMauro Carvalho Chehab	Reset Controller
642dade67f4SMauro Carvalho Chehab
643dade67f4SMauro Carvalho Chehab	================  =============================================
644dade67f4SMauro Carvalho Chehab	byte 0,1          length
645dade67f4SMauro Carvalho Chehab	byte 2            command code 0x36
646dade67f4SMauro Carvalho Chehab			  * Response with VT100 screen (discard it)
647dade67f4SMauro Carvalho Chehab	================  =============================================
648dade67f4SMauro Carvalho Chehab
649dade67f4SMauro Carvalho ChehabGUI_COM_PORT_SETTING
650dade67f4SMauro Carvalho Chehab	COM port setting
651dade67f4SMauro Carvalho Chehab
652dade67f4SMauro Carvalho Chehab	================  =================================================
653dade67f4SMauro Carvalho Chehab	byte 0,1	  length
654dade67f4SMauro Carvalho Chehab	byte 2 		  command code 0x37
655dade67f4SMauro Carvalho Chehab	byte 3 		  0->COMA (term port),
656dade67f4SMauro Carvalho Chehab			  1->COMB (debug port)
657dade67f4SMauro Carvalho Chehab	byte 4 		  0/1/2/3/4/5/6/7
658dade67f4SMauro Carvalho Chehab			  (1200/2400/4800/9600/19200/38400/57600/115200)
659dade67f4SMauro Carvalho Chehab	byte 5 		  data bit
660dade67f4SMauro Carvalho Chehab			  (0:7 bit, 1:8 bit   must be 8 bit)
661dade67f4SMauro Carvalho Chehab	byte 6 		  stop bit (0:1, 1:2 stop bits)
662dade67f4SMauro Carvalho Chehab	byte 7 		  parity (0:none, 1:off, 2:even)
663dade67f4SMauro Carvalho Chehab	byte 8 		  flow control
664dade67f4SMauro Carvalho Chehab			  (0:none, 1:xon/xoff, 2:hardware => must use none)
665dade67f4SMauro Carvalho Chehab	================  =================================================
666dade67f4SMauro Carvalho Chehab
667dade67f4SMauro Carvalho ChehabGUI_NO_OPERATION
668dade67f4SMauro Carvalho Chehab	No operation
669dade67f4SMauro Carvalho Chehab
670dade67f4SMauro Carvalho Chehab	================  =============================================
671dade67f4SMauro Carvalho Chehab	byte 0,1          length
672dade67f4SMauro Carvalho Chehab	byte 2            command code 0x38
673dade67f4SMauro Carvalho Chehab	================  =============================================
674dade67f4SMauro Carvalho Chehab
675dade67f4SMauro Carvalho ChehabGUI_DHCP_IP
676dade67f4SMauro Carvalho Chehab	Set DHCP option and local IP address
677dade67f4SMauro Carvalho Chehab
678dade67f4SMauro Carvalho Chehab	================  =============================================
679dade67f4SMauro Carvalho Chehab	byte 0,1          length
680dade67f4SMauro Carvalho Chehab	byte 2            command code 0x39
681dade67f4SMauro Carvalho Chehab	byte 3            0:dhcp disabled, 1:dhcp enabled
682dade67f4SMauro Carvalho Chehab	byte 4/5/6/7      IP address
683dade67f4SMauro Carvalho Chehab	================  =============================================
684dade67f4SMauro Carvalho Chehab
685dade67f4SMauro Carvalho ChehabGUI_CREATE_PASS_THROUGH
686dade67f4SMauro Carvalho Chehab	Create pass through disk
687dade67f4SMauro Carvalho Chehab
688dade67f4SMauro Carvalho Chehab	================  =============================================
689dade67f4SMauro Carvalho Chehab	byte 0,1          length
690dade67f4SMauro Carvalho Chehab	byte 2 		  command code 0x40
691dade67f4SMauro Carvalho Chehab	byte 3 		  device #
692dade67f4SMauro Carvalho Chehab	byte 4 		  scsi channel (0/1)
693dade67f4SMauro Carvalho Chehab	byte 5 		  scsi id (0-->15)
694dade67f4SMauro Carvalho Chehab	byte 6 		  scsi lun (0-->7)
695dade67f4SMauro Carvalho Chehab	byte 7 		  tagged queue (1   enabled)
696dade67f4SMauro Carvalho Chehab	byte 8 		  cache mode (1   enabled)
697dade67f4SMauro Carvalho Chehab	byte 9 		  max speed (0/1/2/3/4,
698dade67f4SMauro Carvalho Chehab			  async/20/40/80/160 for scsi)
699dade67f4SMauro Carvalho Chehab			  (0/1/2/3/4, 33/66/100/133/150 for ide  )
700dade67f4SMauro Carvalho Chehab	================  =============================================
701dade67f4SMauro Carvalho Chehab
702dade67f4SMauro Carvalho ChehabGUI_MODIFY_PASS_THROUGH
703dade67f4SMauro Carvalho Chehab	Modify pass through disk
704dade67f4SMauro Carvalho Chehab
705dade67f4SMauro Carvalho Chehab	================  =============================================
706dade67f4SMauro Carvalho Chehab	byte 0,1          length
707dade67f4SMauro Carvalho Chehab	byte 2 		  command code 0x41
708dade67f4SMauro Carvalho Chehab	byte 3 		  device #
709dade67f4SMauro Carvalho Chehab	byte 4 		  scsi channel (0/1)
710dade67f4SMauro Carvalho Chehab	byte 5 		  scsi id (0-->15)
711dade67f4SMauro Carvalho Chehab	byte 6 		  scsi lun (0-->7)
712dade67f4SMauro Carvalho Chehab	byte 7 		  tagged queue (1   enabled)
713dade67f4SMauro Carvalho Chehab	byte 8 		  cache mode (1   enabled)
714dade67f4SMauro Carvalho Chehab	byte 9 		  max speed (0/1/2/3/4,
715dade67f4SMauro Carvalho Chehab			  async/20/40/80/160 for scsi)
716dade67f4SMauro Carvalho Chehab			  (0/1/2/3/4, 33/66/100/133/150 for ide  )
717dade67f4SMauro Carvalho Chehab	================  =============================================
718dade67f4SMauro Carvalho Chehab
719dade67f4SMauro Carvalho ChehabGUI_DELETE_PASS_THROUGH
720dade67f4SMauro Carvalho Chehab	Delete pass through disk
721dade67f4SMauro Carvalho Chehab
722dade67f4SMauro Carvalho Chehab	================  =============================================
723dade67f4SMauro Carvalho Chehab	byte 0,1          length
724dade67f4SMauro Carvalho Chehab	byte 2            command code 0x42
725dade67f4SMauro Carvalho Chehab	byte 3            device# to be deleted
726dade67f4SMauro Carvalho Chehab	================  =============================================
727dade67f4SMauro Carvalho ChehabGUI_IDENTIFY_DEVICE
728dade67f4SMauro Carvalho Chehab	Identify Device
729dade67f4SMauro Carvalho Chehab
730dade67f4SMauro Carvalho Chehab	================  =============================================
731dade67f4SMauro Carvalho Chehab	byte 0,1          length
732dade67f4SMauro Carvalho Chehab	byte 2            command code 0x43
733dade67f4SMauro Carvalho Chehab	byte 3            Flash Method
734dade67f4SMauro Carvalho Chehab			  (0:flash selected, 1:flash not selected)
735dade67f4SMauro Carvalho Chehab	byte 4/5/6/7      IDE device mask to be flashed
736dade67f4SMauro Carvalho Chehab			  .. Note:: no response data available
737dade67f4SMauro Carvalho Chehab	================  =============================================
738dade67f4SMauro Carvalho Chehab
739dade67f4SMauro Carvalho ChehabGUI_CREATE_RAIDSET
740dade67f4SMauro Carvalho Chehab	Create Raid Set
741dade67f4SMauro Carvalho Chehab
742dade67f4SMauro Carvalho Chehab	================  =============================================
743dade67f4SMauro Carvalho Chehab	byte 0,1          length
744dade67f4SMauro Carvalho Chehab	byte 2            command code 0x50
745dade67f4SMauro Carvalho Chehab	byte 3/4/5/6      device mask
746dade67f4SMauro Carvalho Chehab	byte 7-22         raidset name (if byte 7 == 0:use default)
747dade67f4SMauro Carvalho Chehab	================  =============================================
748dade67f4SMauro Carvalho Chehab
749dade67f4SMauro Carvalho ChehabGUI_DELETE_RAIDSET
750dade67f4SMauro Carvalho Chehab	Delete Raid Set
751dade67f4SMauro Carvalho Chehab
752dade67f4SMauro Carvalho Chehab	================  =============================================
753dade67f4SMauro Carvalho Chehab	byte 0,1          length
754dade67f4SMauro Carvalho Chehab	byte 2            command code 0x51
755dade67f4SMauro Carvalho Chehab	byte 3            raidset#
756dade67f4SMauro Carvalho Chehab	================  =============================================
757dade67f4SMauro Carvalho Chehab
758dade67f4SMauro Carvalho ChehabGUI_EXPAND_RAIDSET
759dade67f4SMauro Carvalho Chehab	Expand Raid Set
760dade67f4SMauro Carvalho Chehab
761dade67f4SMauro Carvalho Chehab	================  =============================================
762dade67f4SMauro Carvalho Chehab	byte 0,1          length
763dade67f4SMauro Carvalho Chehab	byte 2            command code 0x52
764dade67f4SMauro Carvalho Chehab	byte 3            raidset#
765dade67f4SMauro Carvalho Chehab	byte 4/5/6/7      device mask for expansion
766dade67f4SMauro Carvalho Chehab	byte 8/9/10       (8:0 no change, 1 change, 0xff:terminate,
767dade67f4SMauro Carvalho Chehab			  9:new raid level,
768dade67f4SMauro Carvalho Chehab			  10:new stripe size
769dade67f4SMauro Carvalho Chehab			  0/1/2/3/4/5->4/8/16/32/64/128K )
770dade67f4SMauro Carvalho Chehab	byte 11/12/13     repeat for each volume in the raidset
771dade67f4SMauro Carvalho Chehab	================  =============================================
772dade67f4SMauro Carvalho Chehab
773dade67f4SMauro Carvalho ChehabGUI_ACTIVATE_RAIDSET
774dade67f4SMauro Carvalho Chehab	Activate incomplete raid set
775dade67f4SMauro Carvalho Chehab
776dade67f4SMauro Carvalho Chehab	================  =============================================
777dade67f4SMauro Carvalho Chehab	byte 0,1          length
778dade67f4SMauro Carvalho Chehab	byte 2            command code 0x53
779dade67f4SMauro Carvalho Chehab	byte 3            raidset#
780dade67f4SMauro Carvalho Chehab	================  =============================================
781dade67f4SMauro Carvalho Chehab
782dade67f4SMauro Carvalho ChehabGUI_CREATE_HOT_SPARE
783dade67f4SMauro Carvalho Chehab	Create hot spare disk
784dade67f4SMauro Carvalho Chehab
785dade67f4SMauro Carvalho Chehab	================  =============================================
786dade67f4SMauro Carvalho Chehab	byte 0,1          length
787dade67f4SMauro Carvalho Chehab	byte 2            command code 0x54
788dade67f4SMauro Carvalho Chehab	byte 3/4/5/6      device mask for hot spare creation
789dade67f4SMauro Carvalho Chehab	================  =============================================
790dade67f4SMauro Carvalho Chehab
791dade67f4SMauro Carvalho ChehabGUI_DELETE_HOT_SPARE
792dade67f4SMauro Carvalho Chehab	Delete hot spare disk
793dade67f4SMauro Carvalho Chehab
794dade67f4SMauro Carvalho Chehab	================  =============================================
795dade67f4SMauro Carvalho Chehab	byte 0,1          length
796dade67f4SMauro Carvalho Chehab	byte 2            command code 0x55
797dade67f4SMauro Carvalho Chehab	byte 3/4/5/6      device mask for hot spare deletion
798dade67f4SMauro Carvalho Chehab	================  =============================================
799dade67f4SMauro Carvalho Chehab
800dade67f4SMauro Carvalho ChehabGUI_CREATE_VOLUME
801dade67f4SMauro Carvalho Chehab	Create volume set
802dade67f4SMauro Carvalho Chehab
803dade67f4SMauro Carvalho Chehab	================  =============================================
804dade67f4SMauro Carvalho Chehab	byte 0,1          length
805dade67f4SMauro Carvalho Chehab	byte 2            command code 0x60
806dade67f4SMauro Carvalho Chehab	byte 3            raidset#
807dade67f4SMauro Carvalho Chehab	byte 4-19         volume set name
808dade67f4SMauro Carvalho Chehab			  (if byte4 == 0, use default)
809dade67f4SMauro Carvalho Chehab	byte 20-27        volume capacity (blocks)
810dade67f4SMauro Carvalho Chehab	byte 28 	  raid level
811dade67f4SMauro Carvalho Chehab	byte 29 	  stripe size
812dade67f4SMauro Carvalho Chehab			  (0/1/2/3/4/5->4/8/16/32/64/128K)
813dade67f4SMauro Carvalho Chehab	byte 30 	  channel
814dade67f4SMauro Carvalho Chehab	byte 31 	  ID
815dade67f4SMauro Carvalho Chehab	byte 32 	  LUN
816dade67f4SMauro Carvalho Chehab	byte 33 	  1 enable tag
817dade67f4SMauro Carvalho Chehab	byte 34 	  1 enable cache
818dade67f4SMauro Carvalho Chehab	byte 35 	  speed
819dade67f4SMauro Carvalho Chehab			  (0/1/2/3/4->async/20/40/80/160 for scsi)
820dade67f4SMauro Carvalho Chehab			  (0/1/2/3/4->33/66/100/133/150 for IDE  )
821dade67f4SMauro Carvalho Chehab	byte 36 	  1 to select quick init
822dade67f4SMauro Carvalho Chehab	================  =============================================
823dade67f4SMauro Carvalho Chehab
824dade67f4SMauro Carvalho ChehabGUI_MODIFY_VOLUME
825dade67f4SMauro Carvalho Chehab	Modify volume Set
826dade67f4SMauro Carvalho Chehab
827dade67f4SMauro Carvalho Chehab	================  =============================================
828dade67f4SMauro Carvalho Chehab	byte 0,1          length
829dade67f4SMauro Carvalho Chehab	byte 2            command code 0x61
830dade67f4SMauro Carvalho Chehab	byte 3            volumeset#
831dade67f4SMauro Carvalho Chehab	byte 4-19         new volume set name
832dade67f4SMauro Carvalho Chehab			  (if byte4 == 0, not change)
833dade67f4SMauro Carvalho Chehab	byte 20-27        new volume capacity (reserved)
834dade67f4SMauro Carvalho Chehab	byte 28 	  new raid level
835dade67f4SMauro Carvalho Chehab	byte 29 	  new stripe size
836dade67f4SMauro Carvalho Chehab			  (0/1/2/3/4/5->4/8/16/32/64/128K)
837dade67f4SMauro Carvalho Chehab	byte 30 	  new channel
838dade67f4SMauro Carvalho Chehab	byte 31 	  new ID
839dade67f4SMauro Carvalho Chehab	byte 32 	  new LUN
840dade67f4SMauro Carvalho Chehab	byte 33 	  1 enable tag
841dade67f4SMauro Carvalho Chehab	byte 34 	  1 enable cache
842dade67f4SMauro Carvalho Chehab	byte 35 	  speed
843dade67f4SMauro Carvalho Chehab			  (0/1/2/3/4->async/20/40/80/160 for scsi)
844dade67f4SMauro Carvalho Chehab			  (0/1/2/3/4->33/66/100/133/150 for IDE  )
845dade67f4SMauro Carvalho Chehab	================  =============================================
846dade67f4SMauro Carvalho Chehab
847dade67f4SMauro Carvalho ChehabGUI_DELETE_VOLUME
848dade67f4SMauro Carvalho Chehab	Delete volume set
849dade67f4SMauro Carvalho Chehab
850dade67f4SMauro Carvalho Chehab	================  =============================================
851dade67f4SMauro Carvalho Chehab	byte 0,1          length
852dade67f4SMauro Carvalho Chehab	byte 2            command code 0x62
853dade67f4SMauro Carvalho Chehab	byte 3            volumeset#
854dade67f4SMauro Carvalho Chehab	================  =============================================
855dade67f4SMauro Carvalho Chehab
856dade67f4SMauro Carvalho ChehabGUI_START_CHECK_VOLUME
857dade67f4SMauro Carvalho Chehab	Start volume consistency check
858dade67f4SMauro Carvalho Chehab
859dade67f4SMauro Carvalho Chehab	================  =============================================
860dade67f4SMauro Carvalho Chehab	byte 0,1          length
861dade67f4SMauro Carvalho Chehab	byte 2            command code 0x63
862dade67f4SMauro Carvalho Chehab	byte 3            volumeset#
863dade67f4SMauro Carvalho Chehab	================  =============================================
864dade67f4SMauro Carvalho Chehab
865dade67f4SMauro Carvalho ChehabGUI_STOP_CHECK_VOLUME
866dade67f4SMauro Carvalho Chehab	Stop volume consistency check
867dade67f4SMauro Carvalho Chehab
868dade67f4SMauro Carvalho Chehab	================  =============================================
869dade67f4SMauro Carvalho Chehab	byte 0,1          length
870dade67f4SMauro Carvalho Chehab	byte 2            command code 0x64
871dade67f4SMauro Carvalho Chehab	================  =============================================
872dade67f4SMauro Carvalho Chehab
873dade67f4SMauro Carvalho Chehab4. Returned data
874dade67f4SMauro Carvalho Chehab----------------
875dade67f4SMauro Carvalho Chehab
876dade67f4SMauro Carvalho Chehab(A) Header
877dade67f4SMauro Carvalho Chehab    3 bytes sequence (0x5E, 0x01, 0x61)
878dade67f4SMauro Carvalho Chehab(B) Length
879dade67f4SMauro Carvalho Chehab    2 bytes
880dade67f4SMauro Carvalho Chehab    (low byte 1st, excludes length and checksum byte)
881dade67f4SMauro Carvalho Chehab(C)
882dade67f4SMauro Carvalho Chehab    status or data:
883dade67f4SMauro Carvalho Chehab
884dade67f4SMauro Carvalho Chehab	1) If length == 1 ==> 1 byte status code::
885dade67f4SMauro Carvalho Chehab
886dade67f4SMauro Carvalho Chehab		#define GUI_OK                    0x41
887dade67f4SMauro Carvalho Chehab		#define GUI_RAIDSET_NOT_NORMAL    0x42
888dade67f4SMauro Carvalho Chehab		#define GUI_VOLUMESET_NOT_NORMAL  0x43
889dade67f4SMauro Carvalho Chehab		#define GUI_NO_RAIDSET            0x44
890dade67f4SMauro Carvalho Chehab		#define GUI_NO_VOLUMESET          0x45
891dade67f4SMauro Carvalho Chehab		#define GUI_NO_PHYSICAL_DRIVE     0x46
892dade67f4SMauro Carvalho Chehab		#define GUI_PARAMETER_ERROR       0x47
893dade67f4SMauro Carvalho Chehab		#define GUI_UNSUPPORTED_COMMAND   0x48
894dade67f4SMauro Carvalho Chehab		#define GUI_DISK_CONFIG_CHANGED   0x49
895dade67f4SMauro Carvalho Chehab		#define GUI_INVALID_PASSWORD      0x4a
896dade67f4SMauro Carvalho Chehab		#define GUI_NO_DISK_SPACE         0x4b
897dade67f4SMauro Carvalho Chehab		#define GUI_CHECKSUM_ERROR        0x4c
898dade67f4SMauro Carvalho Chehab		#define GUI_PASSWORD_REQUIRED     0x4d
899dade67f4SMauro Carvalho Chehab
900dade67f4SMauro Carvalho Chehab	2) If length > 1:
901dade67f4SMauro Carvalho Chehab
902dade67f4SMauro Carvalho Chehab		data block returned from controller
903dade67f4SMauro Carvalho Chehab		and the contents depends on the command code
904dade67f4SMauro Carvalho Chehab
905dade67f4SMauro Carvalho Chehab(E) Checksum
906dade67f4SMauro Carvalho Chehab    checksum of length and status or data byte
907dade67f4SMauro Carvalho Chehab
908