The parameter encodings are used in the buffer that each ORB points to.
For TRANSPORT_CAP., the target provides the initiator with it's preferred
values for each parameter by storing parameters to the buffer pointed to
by the TRANSPORT CAP. buffer; in essence, the initiator is asking the
target, "what parameter values do you support?", and the target is
responding. For TRANSPORT_OPEN, the initiator has examined the target
preferences for the parameters, and the initiator provides "negotiated"
values for the parameters with the 3.3 format in the buffer pointed to
by the TRANSPORT_OPEN ORB. The target reads these parameters and operates
> 2.In 6.1 TRANSPORT_CAPABILITIES command,which field should the initiator
> place the parameter id????Or if target receive this ORB, it will response in
> the same way... It dose not seem make sense.
> 3.If there are two device, initiator wants target to the send file
> (command 4). The file size is just known by target. How does initiator get
> this information(file size)??? Using Status ORB??? and if the initiator just
> want target to write the data on the fixed CSR address range( for example.
> FFFF F0011000 ~ FFFF F0012000). But file size is larger than this memory
> buffer. How should I implement????
The initiator transport client (e.g. application layer) only knows the size
of the target's data by pre-arrangement. In general, the initiator will have
to allocate multiple buffers to the target until all of the data is transferred.
Of course, the target may send less than a full buffer by using the residual
field in the status block for the corresponding ORB. In essence, the initiator
allows T2I transfers by providing ORBs to the target. The target is then enabled
to transfer data to the initiator until it runs into one of the limits (ORB
buffer size, bus reset, task abort ...)
-- Bob Morford (email@example.com) SIS Microelectronics, Inc. A Subsidiary of Aspec Technology, Inc. 1831 Lefthand Cir., Suite #E Longmont, CO 80501 303-776-1667 x226