User`s manual
Overview
2-8 Single Board Computers SCSI Software UserÕs Manual
2
After the command request completes, the MPU code updates some fields in
the command structure (siop_struc), updates Firmware queues, and then calls
the user's return status routine. At this point, the siop_struc is back in the
control of the user. The user may immediately call the Firmware through
siop_cmd() to send a new command request; however, it is recommended that
the user wait until the Firmware returns control of the MPU via the
siop_cmd() return before sending any more command requests. If the user
calls siop_cmd() each time the return status routine is invoked then the stack
eventually overflows. This happens because the Firmware will not have
returned (unstacked) from any of the calls to siop_cmd().
Upon return from the user's return status routine, control of the MPU is
returned to the user. The user should now check the status in the status.allstat
field of the command structure (siop_struc) to determine if any recovery
actions are needed.
Interrupt Mechanism
Interrupts from the SIOP are generated in response to various hardware
conditions or are programmed interrupts generated by the SCRIPTS INT
instruction. The SIOP halts SCRIPTS execution whenever an interrupt occurs.
The following is the list of SIOP interrupts.
SCSI Bus Reset
This interrupt is generated when the SIOP detects a SCSI bus
reset. The Firmware terminates all outstanding commands
and returns status for each.
Phase Mismatch
This interrupt is generated when a target changes SCSI phases
before the SIOP data counter register has exhausted its count.
This interrupt occurs when an intermediate disconnect is
pending or a data underrun has occurred.
Selection Timeout
This interrupt is generated when a device at a selected SCSI
address fails to respond within 250 milliseconds after the start
of the SELECTION phase.
Unexpected Disconnect
This interrupt is generated when a target device unexpectedly
transitions to the BUS FREE phase. The Firmware determines
if the disconnect resulted from an intentional action initiated
by the Firmware (i.e., device reset message).