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