SRIO Packets:
The RapidIOdata stream consists of data fields pertaining to the logical layer, thetransport layer, and the physical layer.
? The logical layer consists of the header (defining the type of access) and thepayload (if present).
? The transport layer is somewhat dependent on the physical topology in thesystem, and consists of source and destination IDs for the sending and receivingdevices.
? The physical layer is dependent on the physical interface (i.e. serial versus parallelRapidIO) and includes priority, acknowledgement, and error
checking fields.
Operation Sequence:
SRIO transactions are based on request and response packets. Packets are thecommunication element between endpoint devices in the system. A master
or initiatorgenerates a request packet which is transmitted to a target. The target then generates aresponse packet back to the initiator
to complete the transaction(如NWRITE_R求情包,需要slave给出response). SRIO endpoints are typically not connected directly to each other but instead
have intervening connection fabric devices.
SRIO packet Tyoe:
The type of SRIO packageis determined by the combination of Ftype(format type) and Ttype(transaction type) fields in
the packet.Table 2-2
lists all supported combinations of Ftype/Ttype and the corresponding decoded actions on the packets.
如根据上图,涉及到DirectIO的包类型有:
#define DIOTYPE_NREAD (0x24) //Srio transfer type for a NREAD request packet
#define DIOTYPE_NWRITE (0x54) //Srio transfer type for a NWRITE packet
#define DIOTYPE_NWRITE_R (0x55) // Srio transfer type for a NWRITE with response packer
#define DIOTYPE_SWRITE (0x60) //Srio transfer type for a SWRITE packet
#define DIOTYPE_DOORBELL (0xA0) //Srio transfer type for a DOORBELL packet
举例,两种不同的包格式,FType 5(message passage包),11(SWRITE包),区别仅在逻辑层:
Message Passing Logical Specification(包含FType 11):Only device
Ids and mailbox numbers are transferred in the packets, no memory addresses;Destination Device is responsible for storing and managing memory space.
Direct I/O Logical Specification(包含FType 6):Target memory
address is specified in the transferred packet;Source device needs to know memory map of destination device.
对于上述FType 6的包,即SWRITE包,他是DirectIO操作的一种包。如在做DirectIO操作时,可以通过配置LSU_Reg5寄存器选择包格式,即选择了相应的操作,对于TI C66x DSP SRIO DirectIO操作,在master端只需要配置LSU寄存器,之后,硬件会自动打包,将LSU寄存器中的值对应到协议中去,按照协议中的包格式(如上图)形成传输包,再加上payload,发送给slave端:
TI_DSP_SRIO - package type(包格式)