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