Target mode usage and scsi protocol handling, Selection queue, Scsi bus reset handling – Ciprico Rimfire 3880 User Manual

Page 185

Advertising
background image

User’s Guide

21020285 D

Chapter 8 Details of Usage

Target Mode Usage and SCSI Protocol Handling

Page 8 - 11

Target Mode
Usage and
SCSI Protocol
Handling

Writing a driver for Target Mode requires a strong familiarity with the SCSI
protocol. This section explains what you can expect from the adapter under
certain SCSI conditions. This section addresses the following issues:

Selection Queue

SCSI Bus Reset Handling

Target Mode Disable Command Handling

Abort Command Handling

Synchronous Data Transfer Requests

Wide Data Transfer Requests

Unexpected Messages Received from the Initiator

Automatic Adapter Responses

Disconnects

Message Handling

Selection

Queue

In order to buffer SCSI bus activities from Host events, selection information
(from initiators on the SCSI bus), destined for the Target Selection Data
Structure, is queued on the adapter. Information from about sixty initiator
selections can be stored in the Selection Queue. This means that at the time of
a SCSI bus reset, or a Target Mode Disable or Abort command, the queue may
have initiator selection information that has not yet been processed by the Host.

SCSI Bus

Reset

Handling

To avoid a timing window with the host, Target Mode will be terminated upon
receipt of a SCSI bus reset. The host may then re-enable the Target Mode when
it is ready to continue receiving commands from other initiators. During the
time between a bus reset and being re-enabled, the adapter will respond to
selection attempts with Busy status.

Upon reset of the SCSI bus, all targets must terminate all commands in process.
The RF3880 will do the following:

Clear the Selection Queue.

Set the current Target Selection Data Structure Error field to 27H, and
clear the TME bit in the Flags field.

Return Status Blocks for all outstanding Target Mode Response
commands with an Error Code of 27H.

At this time the Host should do the following:

Discard all outstanding initiator selections.

Process and discard Status Blocks from Target Mode Response
commands.

Re-enable Target Mode when all processes are cleared.

Advertising