Emerson MVME147 Computer Hardware User Manual


 
Initiator Role Custom Packet
2-7
2
If you suspect data integrity error, you can set up the SCSI script to execute the
data phase and then disconnect from the bus (script code 0x2c) or just return
as an intermediate return without disconnect from the bus (script code 0x28).
Firmware executes the data phase and then returns the firmware parity error
status, if any, command packet, and command table back to you.
You can examine the data as well as the firmware status to decide what SCSI
status should be returned to initiator. After the status is determined, a new
TARGET sequence command packet needs to be sent to firmware with status,
message (for message-in phase), and proper scripts to complete the SCSI bus
command.
For the previous disk read example, the script would be:
$14,$04,$0C,$10,$18,$00.
The above sequence of codes may be written anywhere in the MVME147-
accessible space. It may even be ROMed. The script pointer in the custom
SCSI packet is the address of the first entry of the script. In the example, it
would point to the $14. Therefore, the message-out phase should always be
the first phase in any initiator script.
2. COMMAND TABLE (384 bytes of RAM). The second data structure
required by the SCSI firmware for the execution of a custom SCSI packet
is a Command Table.
For unsupported controllers, the control of certain functions (parity checking,
DMA, linked commands, SCSI rules, DMA scatter/gather, SYNC/ASYNC
transfer) is dictated to the firmware through the status/flag byte of the
Command Table.
The CDB is one of the pieces of the command table. The user of the initiator
role custom SCSI packet loads the CDB to be passed to the SCSI target that is
to be selected. The initiator role custom SCSI packet has a Command Table
pointer which is the address of the first word of this data structure. Unlike the
script, the Command Table must be in MVME147-accessible RAM because the
firmware writes to portions of the table. All the user accessible pieces of the
Command Table are shown in the following table.
Even Byte \
Odd Byte \