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