6
TARGET ROLE ROUTINES
Introduction
According to SCSI definitions, an initiator is an SCSI device that initiates a
command on the bus to be executed by the TARGET; a TARGET is an SCSI
device that is selected by an initiator and executes what is requested by the
initiator. The MVME147 is capable of playing both the initiator and TARGET
roles with the WD33C93 SCSI interface chip. Because most of the SCSI
protocol is performed outside the WD33C93, the TARGET role routines of the
MVME147 SCSI firmware provide the means of supporting command
execution and message passing for the MVME147 operating as a processor
device TARGET on the SCSI bus. As defined by the SCSI draft revisions 17 and
earlier, only three commands for processor-type devices are considered
standard; these are: SEND (0A), RECEIVE (08), and REQUEST SENSE (03).
The contents of the data sent are not defined by SCSI standard and are totally
interpretable by the user application. An entire decoding scheme could be
built around the three basic commands for interprocessor communication
over the SCSI bus.
MVME147 SCSI Firmware Background
The MVME147 SCSI firmware provides routines that supports initiator role on
the SCSI bus. Execution of disk reads, writes, and formats are provided by
read, write, and format packets, respectively. Another important support of
SCSI execution is also provided by the custom SCSI sequence packets of the
MVME147 firmware. With the custom SCSI sequence, you pass a pointer to a
particular "script" (a sequence of information transfer phase codes) and a
pointer to the data that supports this script to the firmware, along with the
code for the custom SCSI sequence and also provides a return vector for status
and processor control. With this particular interface, the firmware performs
any sequence of SCSI information transfer phases that you require. The
TARGET role routines provide the missing half for these custom SCSI
sequences -- execution of scripts in the TARGET role.
The SCSI bus makes allowance for only eight SCSI devices. Each SCSI device
is allowed to service eight peripheral devices. If all peripheral devices were
present on the SCSI bus, there would be a maximum of 64. The MVME147
SCSI firmware developes a method of indexing the devices on the SCSI bus.
This index is the "attach table", a table of 64 entries, each entry peculiar to a