P1394 Mail Archive: Re: P1394> Revised PWG1394 Cmd Set

Re: P1394> Revised PWG1394 Cmd Set

Fumio Nagasaka (fumiona@venus.dtinet.or.jp)
Tue, 28 Jul 1998 09:26:16 +0900 (JST)

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