P1394> Revised PWG1394 Cmd Set

P1394> Revised PWG1394 Cmd Set

Fumio Nagasaka fumiona at venus.dtinet.or.jp
Mon Jul 27 20:26:16 EDT 1998


Greg Shue wrote:
>
>Fumio Nagasaka wrote:
>
>> 3.1. TRANSPORT_I2T_ABORT
>> 	An initiator requests a target to stop ORB fetching, 
>> 	and solicits the target to reply STATUS block when
>> 	the last ORB had been executed.
>
>I probably don't understand this one.
>
>  Since we're using the UNORDERED model, all the ORBs on the
>  task list have been fetched by the target as soon as they
>  are placed on it.  There is no point to issuing this command.
>
>  This command would really need to be issued as a vendor-specific
>  Management Agent command, since it needs to be executed
>  asynchronously to the two ordered execution queues or
>  else a third queue needs to be defined.
>
>  Using the ABORT TASK management function defined by SBP-2
>  beginning with the last task in the queue will do the same
>  thing if you want a queue-specific function.  
>
>I don't think this provides any additional usefulness and
>significantly changes the device model.  What am I missing?
>
You are missing one point;
Let me come back to your first note.

Greg Shue wrote:

GS>
GS>Now, error recovery for when a target detects an ACK Timeout on a
GS>Status FIFO write requires some special considerations.  When
GS>this condition happens the initiator and target may be
GS>out-of-sync with each other, and the SBP-2 protocol does not
GS>provide a mechanism for the initiator to determine that the
GS>condition exists.  The problem breaks down to two issues:

SBP-2 protocol *does* provide a mechanism to show this status.
An AGENT_STATE register has two bit to describe status.

In this case "SBP-2 Specification Rev.4" is saying, the fetch agent
shall transition to state DEAD. See page 62 "Transition Any:F5".
The only way to recover from this state, the initiator need to
write data on AGENT_RESET register.

Your scenario cause an impression that the target device shall
be responsible for recovery. However, SBP-2 specification requires
the initiator to be responsible in this case.

SBP-2>State F5: Dead. The dead state is a unique state that preserves fetch agent information in the
SBP-2>AGENT_STATE and ORB_POINTER registers. Writes to any fetch agent register except AGENT_RESET
SBP-2>shall have no effect while in state F5.

After AGENT_RESET the initiator need to inquire what is the
last ORB consumed by the target. In my idea, the initiator
shall invoke TRANSPORT_I2T_ABORT command to receive reply
from the target.

---
Fumio Nagasaka
EPSON Software Deveopment Lab., Inc.
voice: +81 268 25-4111



More information about the P1394 mailing list