CUSTOM SCSI PACKETS
2-24
2
This third "class" of custom packets is used to service received commands and
messages for an enabled MVME147 TARGET logical unit. When an initiator
selects the MVME147 as a TARGET, the firmware switches to TARGET role,
determines which logical unit is desired by the initiator, and returns to the
TARGET service routine (through the vector supplied in the TARGET enable
packet) for user service of the initiator request. If the initiator that selected the
MVME147 as a TARGET does not send an illegal message, the TARGET role
firmware sequences the SCSI bus to the command phase, read in a CDB, store
the CDB in the command table provided through the TARGET enable packet,
and return through the vector provided for the selected logical unit for
command service. If the command was received, a final status of $xx17 or an
intermediate status of $xx06 is stored in the status word of the particular LUN
packet. The final status code of $xx17 is returned if an IDENTIFY WITH
RESELECTION message was received. The intermediate status code of $xx06
is returned if ATN* was not asserted during selection or if an IDENTIFY
WITHOUT RESELECTION message was received. You then use a TARGET
sequence packet to service the command.
IMPLEMENTATION NOTE: The SCSI firmware DOES provide information
to you as to which SCSI initiator is requesting service from the TARGET in
command table byte offset $15.
Packet description:
WORD $00: CONTROLLER LUN -- This binary number must match the
SCSI level of the MVME147 as in Target Enable Custom
Packet.
DEVICE LUN -- This number identifies the particular logical
unit to service an initiator request.
WORD $02: STATUS bytes 0 and 1 -- This is the firmware status word that
tells you how your packet was serviced (finished, error, etc.).
$19 xxxxxxxx Status from SCSI
firmware (byte 3)
(Note 1)
$1A 00000000 Reserved
$1B 0000xxxx Retry count must be 0
NOTES:
1. Refer to Chapter 3.
2. Command Table = 384 bytes
RAM work area.