The outbound TLP packets on CXS contain CCIX messages that are events based on what has occurred on any of the AXI slave ports, or as a response to the CXS inbound messages. The first are primarily requests and the second are snoop responses or CompAck.
The CXS links work the same independent of direction: CXS0_VALID_TX
/CXS0_VALID_RX
is asserted when valid information is available on CXS0_DATA_TX
/CXS0_DATA_RX
.
Framing of data is defined in CXS0_CNTL_TX
/CXS0_CNTL_RX
, for example start and stop of packets.
Since CXS is credit based, there are no ready signals to indicate when a
valid FLIT is consumed, it is implicitly only valid for a single clock cycle. To
distribute credits the receiver side, which is the owner of the credits, asserts CXS0_CRDGNT_TX
/CXS0_CRDGNT_RX
one cycle per credit granted to the transmit side. This
mean that credits need to be distributed before any traffic can occur. The credit
distribution is usually initiated when a CXS link is activated with a
request/acknowledge handshake, such as CXS0_ACTIVE_REQ_TX
/CXS0_ACTIVE_ACK_TX
.
For more detailed information of CXS framing see Arm AMBA CXS Protocol Specification, ARM IHI 0079A , and for the actual embedded messages see CCIX Base Specification Revision 1.1 Version 1.0.