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