mirror of https://github.com/akuker/RASCSI.git
Commit original version 1.20 of Roger Burrow's SCSI Command Set documentation
parent
8c59904f45
commit
7ab08f9761
|
@ -0,0 +1,180 @@
|
|||
DaynaPort SCSI/Link: SCSI Command Set
|
||||
Revision 1.20 (16 July 2005)
|
||||
|
||||
|
||||
Copyright 2002-2005 by Roger Burrows. All Rights Reserved. Permission
|
||||
is granted to copy this document providing that no changes are made to
|
||||
the contents.
|
||||
|
||||
|
||||
LIMITATION OF LIABILITY AND DISCLAIMER OF WARRANTY
|
||||
--------------------------------------------------
|
||||
The information cantained in this document is provided "as-is", without
|
||||
warranty of any kind, expressed or implied, including without limitation
|
||||
any warranty concerning the accuracy, adequacy, or completeness of such
|
||||
information or material. The Author shall not be responsible for any
|
||||
claims attributable to errors, omissions, or other inaccuracies in the
|
||||
information or material contained in this document, and in no event
|
||||
shall the Author be liable for direct, indirect, special, incidental,
|
||||
or consequential damages arising out of the use of such information or
|
||||
material.
|
||||
|
||||
|
||||
SCOPE
|
||||
-----
|
||||
This document applies to the following hardware devices:
|
||||
DaynaPort SCSI/Link-T (Model DP0801)
|
||||
DaynaPort SCSI/Link-3 (Model DP0802)
|
||||
and to the following firmware revisions:
|
||||
1.4a
|
||||
2.0f
|
||||
It probably also applies to other firmware revisions; it may also apply
|
||||
to other Dayna SCSI/Link devices. Any feedback on this is welcomed.
|
||||
Please supply any additions or corrections to Roger Burrows
|
||||
(roger@anodynesoftware.com).
|
||||
|
||||
|
||||
REVISION HISTORY
|
||||
----------------
|
||||
Version 1.00 (8/August/2002)
|
||||
Original version
|
||||
Version 1.10 (22/April/2005)
|
||||
Added description of 'Set Interface Mode/Set MAC Address' command
|
||||
Version 1.20 (16/July/2005)
|
||||
Corrected description of 'Set Interface Mode/Set MAC Address' command
|
||||
|
||||
|
||||
NOTATION
|
||||
--------
|
||||
All numbers are expressed in hexadecimal, unless otherwise noted.
|
||||
|
||||
|
||||
COMMAND SET SUMMARY
|
||||
-------------------
|
||||
The following is a partial list of implemented SCSI commands:
|
||||
|
||||
03 Request Sense
|
||||
08 Read
|
||||
09 Retrieve Statistics
|
||||
0a Write
|
||||
0c Set Interface Mode / Set MAC Address
|
||||
0e Enable/disable Interface
|
||||
12 Inquiry
|
||||
|
||||
A number of other SCSI commands are implemented, but their usage is
|
||||
not yet fully known.
|
||||
|
||||
|
||||
Enable/disable Interface (0e)
|
||||
-----------------------------
|
||||
Command: 0e 00 00 00 00 XX (XX = 80 or 00)
|
||||
Function: Enable (80) / disable (00) Ethernet interface
|
||||
Type: No data transferred
|
||||
Notes: After issuing an Enable, the initiator should avoid sending
|
||||
any subsequent commands to the device for approximately 0.5
|
||||
seconds
|
||||
|
||||
|
||||
Inquiry (12)
|
||||
------------
|
||||
Command: 12 00 00 00 LL 00 (LL is data length)
|
||||
Function: Perform a standard SCSI Inquiry command: reference the
|
||||
SCSI spec for further information
|
||||
Type: Input; reference the SCSI spec for the data returned
|
||||
Notes: The length is user-selectable to a maximum of 25 (37 decimal)
|
||||
|
||||
|
||||
Read (08)
|
||||
---------
|
||||
Command: 08 00 00 LL LL XX (LLLL is data length, XX = c0 or 80)
|
||||
Function: Read a packet at a time from the device (standard SCSI Read)
|
||||
Type: Input; the following data is returned:
|
||||
LL LL NN NN NN NN XX XX XX ... CC CC CC CC
|
||||
where:
|
||||
LLLL is normally the length of the packet (a 2-byte
|
||||
big-endian hex value), including 4 trailing bytes
|
||||
of CRC, but excluding itself and the flag field.
|
||||
See below for special values
|
||||
NNNNNNNN is a 4-byte flag field with the following meanings:
|
||||
FFFFFFFF a packet has been dropped (?); in this case
|
||||
the length field appears to be always 4000
|
||||
00000010 there are more packets currently available
|
||||
in SCSI/Link memory
|
||||
00000000 this is the last packet
|
||||
XX XX ... is the actual packet
|
||||
CCCCCCCC is the CRC
|
||||
|
||||
Notes:
|
||||
. When all packets have been retrieved successfully, a length field
|
||||
of 0000 is returned; however, if a packet has been dropped, the
|
||||
SCSI/Link will instead return a non-zero length field with a flag
|
||||
of FFFFFFFF when there are no more packets available. This behaviour
|
||||
seems to continue until a disable/enable sequence has been issued.
|
||||
. The SCSI/Link apparently has about 6KB buffer space for packets.
|
||||
|
||||
|
||||
Request Sense (03)
|
||||
------------------
|
||||
Command: 03 00 00 00 00 00
|
||||
Function: Perform a standard SCSI Request Sense command
|
||||
Type: Input; reference the SCSI spec for the data returned
|
||||
Notes:
|
||||
. This command always transfers exactly 9 bytes of data (note that cdb
|
||||
byte 4 is always zero, however).
|
||||
. If the sense key is 5, the driver should reinitialise the device via
|
||||
a disable/enable sequence; otherwise, it need do nothing.
|
||||
|
||||
|
||||
Retrieve Statistics (09)
|
||||
------------------------
|
||||
Command: 09 00 00 00 12 00
|
||||
Function: Retrieve MAC address and device statistics
|
||||
Type: Input; returns 18 (decimal) bytes of data as follows:
|
||||
. bytes 0-5: the current hardware ethernet (MAC) address
|
||||
. bytes 6-17: three long word (4-byte) counters (little-endian).
|
||||
Notes: The contents of the three longs are typically zero, and their
|
||||
usage is unclear; they are suspected to be:
|
||||
. long #1: frame alignment errors
|
||||
. long #2: CRC errors
|
||||
. long #3: frames lost
|
||||
|
||||
|
||||
Set Interface Mode (0c)
|
||||
-----------------------
|
||||
Command: 0c 00 00 00 FF 80 (FF = 08 or 04)
|
||||
Function: Allow interface to receive broadcast messages (FF = 04); the
|
||||
function of (FF = 08) is currently unknown.
|
||||
Type: No data transferred
|
||||
Notes: This command is accepted by firmware 1.4a & 2.0f, but has no
|
||||
effect on 2.0f, which is always capable of receiving broadcast
|
||||
messages. In 1.4a, once broadcast mode is set, it remains set
|
||||
until the interface is disabled.
|
||||
|
||||
|
||||
Set MAC Address (0c)
|
||||
--------------------
|
||||
Command: 0c 00 00 00 FF 40 (FF = 08 or 04)
|
||||
Function: Set MAC address
|
||||
Type: Output; overrides built-in MAC address with user-specified
|
||||
6-byte value
|
||||
Notes: This command is intended primarily for debugging/test purposes.
|
||||
Disabling the interface resets the MAC address to the built-in
|
||||
value.
|
||||
|
||||
|
||||
Write (0a)
|
||||
----------
|
||||
Command: 0a 00 00 LL LL XX (LLLL is data length, XX = 80 or 00)
|
||||
Function: Write a packet at a time to the device (standard SCSI Write)
|
||||
Type: Output; the format of the data to be sent depends on the value
|
||||
of XX, as follows:
|
||||
. if XX = 00, LLLL is the packet length, and the data to be sent
|
||||
must be an image of the data packet
|
||||
. if XX = 80, LLLL is the packet length + 8, and the data to be
|
||||
sent is:
|
||||
PP PP 00 00 XX XX XX ... 00 00 00 00
|
||||
where:
|
||||
PPPP is the actual (2-byte big-endian) packet length
|
||||
XX XX ... is the actual packet
|
||||
|
||||
========================= END OF DOCUMENT =========================
|
Loading…
Reference in New Issue