Section 5
SCSI Programming Guidelines
If
the ProDrive recognizes that negotiation is required, it sends a SYNCHRONOUS DATA TRANSFER
REQUEST
message to the initiator. The REQ/ACK offset is selected to prevent buffer and offset counter
overflows, while the minimum transfer period
is
chosen to meet the ProDrive's data handling
requirements.
The implied agreement will remain in effect until a
BUS DEVICE RESET message is received, until a
"hard" RESET condition occurs,
or
until one
of
the two devices elects to modify the agreement.
Renegotiation at every selection is not
rec~mmended,
since a significant performance impact is likely.
The default mode
of
data transfer
is
asynchronous. This mode
is
entered at power on, after a BUS DEVICE
RESET message, or after a "hard" RESET condition. The SYNCHRONOUS DATA TRANSFER
REQUEST
message exchange can only take place following a SELECTION phase that includes the SCSI
IDs for both the initiator and ProDrive. Violation
of
this rule may make data transfer impossible owing
to disagreements among devices about the data transfer mode.
SA
VE
DATA POINTER
028
- This message is sent from the
ProDrive
to direct the initiator to
save a copy
of
the present active data pointer for the drive. (See Section 5.4 for a definition
of
pointers.) This message
is
usually sent just prior to the DISCONNECT message when disconnecting
in the DATA phase.
DISCONNECT 04H - This message is sent from the ProDrive to inform an initiator that the present
physical data path is going to
be broken (the ProDrive plans to disconnect by releasing BSY), but
that a later reconnect will
be required to complete the current operation.
If
the initiator detects the
BUS FREE phase (other than as a result
of
an ABORT or BUS DEVICE RESET message
or
a
RESET condition) without first receiving a DISCONNECT
or
COMMAND COMPLETE message, it
should consider it a catastrophic error condition. The initiator should not save the data pointer as a
result
of
this message.
INITIA TOR DETECTED ERROR
OSU
- This message is sent from an initiator to inform the
ProDrive that an error (e.g., parity error on the SCSI bus) has occurred that does not preclude a retry
of
the operation. The ProDrive will terminate the command with a CHECK CONDITION status.
The sense key will
be set to ABORTED COMMAND with a sense code
of
Initiator Detected Error.
ABORT
068
- This message is sent from the initiator to the ProDrive to clear the present operation.
All pending data and status for the issuing initiator will
be cleared, and the ProDrive will go to the
BUS FREE phase. Pending data and status for other initiators will not be cleared. No status
or
ending message will be sent for the operation.
MESSAGE REJECT
078
- This message will be sent by the
ProDrive
to an initiator
if
the last
message received from that initiator was inappropriate
or
has not been implemented. This message
will
be interpreted in the same way if it
is
received from an initiator.
To
indicate its intentions
of
sending this message, the initiator must assert the A TN signal prior to
its release
of
ACK for the
REQ/ACK
handshake
of
the message that is to be rejected. When the
ProDrive sends this message, it will change to MESSAGE IN phase and send the message prior to
requesting additional message bytes from the initiator. This provides an interlock so that the initiator
can detennine which message is rejected. The initiator must support this message
if
it asserts A TN
during the initial SELECTION phase
of
the command.
NO OPERATION
088
- This message is sent from an initiator in response to the ProDrive 's
request for a message, when the initiator currently has no other valid message to send. No action
will
be taken by the ProDrive upon receipt
of
this message.
5-12
SCSI
Programming
Guidelines