Areca SCSI & RAID Devices Driver Download For Windows 10
The lsscsi command lists information about SCSI devices in Linux. Disk SEAGATE ST200FM0073 0007 /dev/sdd 6:0:3:0 enclosu Areca ARC-802801. The ARC-1330 series is a low profile host adapter. It brings the fastest available connections to SAS data transfer rates of 12, 6, and 3 Gb/s per lane and SATA data transfer rates of 6 and 3Gb/s per lane interface storage on any computer, workstation and server with PCI Express 3.0 interface.
Areca ARC-1330-8i (PCIe 3.0 12Gb/s SAS Host Adapter) x8 lane PCI Express® 3.0; 8 x internal; 128 X 3Gb/s, 6Gb/s and 12Gb/s SAS/SATA; Connects to SAS/SATA HDDs, solid state driver (SSDs) and removable media (DAS/JBOD) Support a maximum 128 SAS/SATA devices using SAS expander; Serial Attached SCSI (SAS-3.0) compliant; Hot-plug capability. Areca JBOD Expander Solutions Areca JBOD Expander Solutions SAS-to-SAS JBOD box provides a compact external storage chassis capable of accommodating up to 8 to 12, 12Gb/s, Serial-Attached SCSI (SAS) drives or 6Gb/s Serial ATA (SATA) drives.
(All In/Out is in IOP331’s view)
2. Doorbell is used for RS-232 emulation¶
- inDoorBell
- bit0
- data in readyzDRIVER DATA WRITE OK)
- bit1
- data out has been read(DRIVER DATA READ OK)
- outDooeBell:
- bit0
- data out ready(IOP331 DATA WRITE OK)
- bit1
- data in has been read(IOP331 DATA READ OK)
3. Index Memory Usage¶
offset 0xf00 | for RS232 out (request buffer) |
offset 0xe00 | for RS232 in (scratch buffer) |
offset 0xa00 | for inbound message code message_rwbuffer(driver send to IOP331) |
offset 0xa00 | for outbound message code message_rwbuffer(IOP331 send to driver) |
4. RS-232 emulation¶
Currently 128 byte buffer is used:
1st uint32_t | Data length (1–124) |
Byte 4–127 | Max 124 bytes of data |
5. PostQ¶
All SCSI Command must be sent through postQ:
Request frame must be 32 bytes aligned:
real address (bit27–bit31) of post arcmsr_cdb
bit31 |
| ||||
bit30 |
| ||||
bit29 | reserved | ||||
bit28 | reserved | ||||
bit27 | reserved |
Request reply:
real address (bit27–bit31) of reply arcmsr_cdb
bit31 | must be 0 (for this type of reply) | ||||
bit30 | reserved for BIOS handshake | ||||
bit29 | reserved | ||||
bit28 |
| ||||
bit27 | reserved |
6. BIOS request¶
All BIOS request is the same with request from PostQ
Except:
Request frame is sent from configuration space:
offset: 0x78 | Request Frame (bit30 1) |
offset: 0x18 | writeonly to generateIRQ to IOP331 |
Completion of request:
7. Definition of SGL entry (structure)¶
9. Message0 message code¶
0x00 | NOP | ||||||||||||||||||||
0x01 | Get Config->offset 0xa00 :for outbound message code message_rwbuffer(IOP331 send to driver)
| ||||||||||||||||||||
0x02 | Set Config->offset 0xa00 :for inbound message code message_rwbuffer(driver send to IOP331)
| ||||||||||||||||||||
0x03 | Reset (Abort all queued Command) | ||||||||||||||||||||
0x04 | Stop Background Activity | ||||||||||||||||||||
0x05 | Flush Cache | ||||||||||||||||||||
0x06 | Start Background Activity(re-start if background is halted) | ||||||||||||||||||||
0x07 | Check If Host Command Pending(Novell May Need This Function) | ||||||||||||||||||||
0x08 | Set controller time->offset 0xa00 for inbound message code message_rwbuffer(driver to IOP331)
|
1. Sequence of command execution¶
- Header
- 3 bytes sequence (0x5E, 0x01, 0x61)
- Command block
- variable length of data including length,command code, data and checksum byte
- Return data
- variable length of data
2. Command block¶
- 1st byte
command block length (low byte)
- 2nd byte
command block length (high byte)
Note
command block length shouldn’t > 2040 bytes,length excludes these two bytes
- 3rd byte
command code
- 4th and following bytes
variable length data bytes
depends on command code
last bytechecksum byte (sum of 1st byte until last data byte)
3. Command code and associated data¶
The following are command code defined in raid controller Commandcode 0x10–0x1? are used for system level management,no password checking is needed and should be implemented in separatewell controlled utility and not for end user access.Command code 0x20–0x?? always check the password,password must be entered to enable these command:
Command description¶
Set the controller serial#
byte 0,1 | length |
byte 2 | command code 0x10 |
byte 3 | password length (should be 0x0f) |
byte 4-0x13 | should be “ArEcATecHnoLogY” |
byte 0x14–0x23 | Serial number string (must be 16 bytes) |
Set vendor string for the controller
byte 0,1 | length |
byte 2 | command code 0x11 |
byte 3 | password length (should be 0x08) |
byte 4-0x13 | should be “ArEcAvAr” |
byte 0x14–0x3B | vendor string (must be 40 bytes) |
Set the model name of the controller
byte 0,1 | length |
byte 2 | command code 0x12 |
byte 3 | password length (should be 0x08) |
byte 4-0x13 | should be “ArEcAvAr” |
byte 0x14–0x1B | model string (must be 8 bytes) |
Identify device
byte 0,1 | length |
byte 2 |
|
Verify password
byte 0,1 | length |
byte 2 | command code 0x14 |
byte 3 | password length |
byte 4-0x?? | user password to be checked |
Logout GUI (force password checking on next command)
byte 0,1 | length |
byte 2 | command code 0x15 |
Areca SCSI & RAID Devices Driver Download For Windows 10
Set the ethernet MAC address
byte 0,1 | length |
byte 2 | command code 0x17 |
byte 3 | password length (should be 0x08) |
byte 4-0x13 | should be “ArEcAvAr” |
byte 0x14–0x19 | Ethernet MAC address (must be 6 bytes) |
Set logo in HTTP
byte 0,1 | length |
byte 2 | command code 0x18 |
byte 3 | Page# (0/1/2/3) (0xff –> clear OEM logo) |
byte 4/5/6/7 | 0x55/0xaa/0xa5/0x5a |
byte 8 | TITLE.JPG data (each page must be 2000 bytes) Note page0 1st 2 byte must beactual length of the JPG file |
Poll If Event Log Changed
byte 0,1 | length |
byte 2 | command code 0x19 |
Read Event
byte 0,1 | length |
byte 2 | command code 0x1a |
byte 3 | Event Page (0:1st page/1/2/3:last page) |
Get HW monitor data
byte 0,1 | length |
byte 2 | command code 0x1b |
byte 3 | # of FANs(example 2) |
byte 4 | # of Voltage sensor(example 3) |
byte 5 | # of temperature sensor(example 2) |
byte 6 | # of power |
byte 7/8 | Fan#0 (RPM) |
byte 9/10 | Fan#1 |
byte 11/12 | Voltage#0 original value in *1000 |
byte 13/14 | Voltage#0 value |
byte 15/16 | Voltage#1 org |
byte 17/18 | Voltage#1 |
byte 19/20 | Voltage#2 org |
byte 21/22 | Voltage#2 |
byte 23 | Temp#0 |
byte 24 | Temp#1 |
byte 25 | Power indicator (bit0 power#0,bit1 power#1) |
byte 26 | UPS indicator |
Quick create raid/volume set
byte 0,1 | length |
byte 2 | command code 0x20 |
byte 3/4/5/6 | raw capacity |
byte 7 | raid level |
byte 8 | stripe size |
byte 9 | spare |
byte 10/11/12/13 | device mask (the devices to create raid/volume) |
This function is removed, application liketo implement quick create function
need to use GUI_CREATE_RAIDSET and GUI_CREATE_VOLUMESET function.
Get Raid Set Information
byte 0,1 | length |
byte 2 | command code 0x20 |
byte 3 | raidset# |
Get Volume Set Information
byte 0,1 | length |
byte 2 | command code 0x21 |
byte 3 | volumeset# |
Get Physical Drive Information
byte 0,1 | length |
byte 2 | command code 0x22 |
byte 3 | drive # (from 0 to max-channels - 1) |
Get System Information
byte 0,1 | length |
byte 2 | command code 0x23 |
Clear System Event
byte 0,1 | length |
byte 2 | command code 0x24 |
Mute current beeper
byte 0,1 | length |
byte 2 | command code 0x30 |
Disable beeper
byte 0,1 | length |
byte 2 | command code 0x31 |
byte 3 | 0->disable, 1->enable |
Change password
byte 0,1 | length |
byte 2 | command code 0x32 |
byte 3 | pass word length ( must <= 15 ) |
byte 4 | password (must be alpha-numerical) |
Set host interface mode
byte 0,1 | length |
byte 2 | command code 0x33 |
byte 3 | 0->Independent, 1->cluster |
Set rebuild priority
byte 0,1 | length |
byte 2 | command code 0x34 |
byte 3 | 0/1/2/3 (low->high) |
Set maximum ATA mode to be used
byte 0,1 | length |
byte 2 | command code 0x35 |
byte 3 | 0/1/2/3 (133/100/66/33) |
Reset Controller
byte 0,1 | length |
byte 2 | command code 0x36* Response with VT100 screen (discard it) |
COM port setting
byte 0,1 | length |
byte 2 | command code 0x37 |
byte 3 | 0->COMA (term port),1->COMB (debug port) |
byte 4 | 0/1/2/3/4/5/6/7(1200/2400/4800/9600/19200/38400/57600/115200) |
byte 5 | data bit(0:7 bit, 1:8 bit must be 8 bit) |
byte 6 | stop bit (0:1, 1:2 stop bits) |
byte 7 | parity (0:none, 1:off, 2:even) |
byte 8 | flow control(0:none, 1:xon/xoff, 2:hardware => must use none) |
No operation
byte 0,1 | length |
byte 2 | command code 0x38 |
Set DHCP option and local IP address
byte 0,1 | length |
byte 2 | command code 0x39 |
byte 3 | 0:dhcp disabled, 1:dhcp enabled |
byte 4/5/6/7 | IP address |
Create pass through disk
byte 0,1 | length |
byte 2 | command code 0x40 |
byte 3 | device # |
byte 4 | scsi channel (0/1) |
byte 5 | scsi id (0–>15) |
byte 6 | scsi lun (0–>7) |
byte 7 | tagged queue (1 enabled) |
byte 8 | cache mode (1 enabled) |
byte 9 | max speed (0/1/2/3/4,async/20/40/80/160 for scsi)(0/1/2/3/4, 33/66/100/133/150 for ide ) |
Modify pass through disk
byte 0,1 | length |
byte 2 | command code 0x41 |
byte 3 | device # |
byte 4 | scsi channel (0/1) |
byte 5 | scsi id (0–>15) |
byte 6 | scsi lun (0–>7) |
byte 7 | tagged queue (1 enabled) |
byte 8 | cache mode (1 enabled) |
byte 9 | max speed (0/1/2/3/4,async/20/40/80/160 for scsi)(0/1/2/3/4, 33/66/100/133/150 for ide ) |
Delete pass through disk
byte 0,1 | length |
byte 2 | command code 0x42 |
byte 3 | device# to be deleted |
Identify Device
byte 0,1 | length |
byte 2 | command code 0x43 |
byte 3 | Flash Method(0:flash selected, 1:flash not selected) |
byte 4/5/6/7 | IDE device mask to be flashed.. Note:: no response data available |
Create Raid Set
byte 0,1 | length |
byte 2 | command code 0x50 |
byte 3/4/5/6 | device mask |
byte 7-22 | raidset name (if byte 7 0:use default) |
Delete Raid Set
byte 0,1 | length |
byte 2 | command code 0x51 |
byte 3 | raidset# |
Expand Raid Set
byte 0,1 | length |
byte 2 | command code 0x52 |
byte 3 | raidset# |
byte 4/5/6/7 | device mask for expansion |
byte 8/9/10 | (8:0 no change, 1 change, 0xff:terminate,9:new raid level,10:new stripe size0/1/2/3/4/5->4/8/16/32/64/128K ) |
byte 11/12/13 | repeat for each volume in the raidset |
Activate incomplete raid set
byte 0,1 | length |
byte 2 | command code 0x53 |
byte 3 | raidset# |
Create hot spare disk
byte 0,1 | length |
byte 2 | command code 0x54 |
byte 3/4/5/6 | device mask for hot spare creation |
Delete hot spare disk
byte 0,1 | length |
byte 2 | command code 0x55 |
byte 3/4/5/6 | device mask for hot spare deletion |
Create volume set
byte 0,1 | length |
byte 2 | command code 0x60 |
byte 3 | raidset# |
byte 4-19 | volume set name(if byte4 0, use default) |
byte 20-27 | volume capacity (blocks) |
byte 28 | raid level |
byte 29 | stripe size(0/1/2/3/4/5->4/8/16/32/64/128K) |
byte 30 | channel |
byte 31 | ID |
byte 32 | LUN |
byte 33 | 1 enable tag |
byte 34 | 1 enable cache |
byte 35 | speed(0/1/2/3/4->async/20/40/80/160 for scsi)(0/1/2/3/4->33/66/100/133/150 for IDE ) |
byte 36 | 1 to select quick init |
Modify volume Set
byte 0,1 | length |
byte 2 | command code 0x61 |
byte 3 | volumeset# |
byte 4-19 | new volume set name(if byte4 0, not change) |
byte 20-27 | new volume capacity (reserved) |
byte 28 | new raid level |
byte 29 | new stripe size(0/1/2/3/4/5->4/8/16/32/64/128K) |
byte 30 | new channel |
byte 31 | new ID |
byte 32 | new LUN |
byte 33 | 1 enable tag |
byte 34 | 1 enable cache |
byte 35 | speed(0/1/2/3/4->async/20/40/80/160 for scsi)(0/1/2/3/4->33/66/100/133/150 for IDE ) |
Delete volume set
byte 0,1 | length |
byte 2 | command code 0x62 |
byte 3 | volumeset# |
Areca Scsi & Raid Devices Driver Download For Windows 10 32-bit
Start volume consistency check
byte 0,1 | length |
byte 2 | command code 0x63 |
byte 3 | volumeset# |
Stop volume consistency check
byte 0,1 | length |
byte 2 | command code 0x64 |
4. Returned data¶
Header3 bytes sequence (0x5E, 0x01, 0x61)
Length2 bytes(low byte 1st, excludes length and checksum byte)
status or data:
If length 1 > 1 byte status code:
If length > 1:
data block returned from controllerand the contents depends on the command code
- Checksumchecksum of length and status or data byte