This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TI6678 SRIO Direct I/O

Hi.

I have two TI6678EVM connected using SRIO channel. (one for SENDER, the other for RECEIVER)

You know, TI6678 have LSUx_Reg0 to LSUx_Reg6 registers and SENDER can write data to RECEIVER's memory area in direct I/O mode with following setting.

  ftype = Srio_SocketType_DIO

  ttype = Srio_Ttype_Write_NWRITE

I confirmed that data was transferred successfully from SENDER to RECEIVER, but I want know if there is any register in RECEIVER side to get last written address and size (i.e. status registers of RECEIVER like LSUx_Reg0, LSUx_Reg1, LSUx_Reg3 of SENDER)

Regards,

Brian.

  • Hi Brain,

    The load/store unit (LSU) controls the transmission of direct I/O packets, and the memory access unit (MAU) controls the reception of direct I/O packets.

    In receiver(Rx) operation incoming packet is moved to the MAU local buffer. All incoming directIO packets contain a memory address field. The address is the location in the device’s memory map from which the data will be written or read.

    Thanks,

  • Where can I find document about MAU ?

    Is it just a local buffer, or is there are any MAU registers?

    I have SPRUGW1B November 2012 edition, but there is no exact definition about MAU.

    All I can find is 3.10.20 SUPRVSR_ID (MAU) register only.

    Regards,

    Brian.

  • Hi Brain,

    Yes, it is a local buffer. MAU transfers data to the absolute address provided in the packet segments.

    Thanks,

  • Oh, it looks like there is some miscommunication between us.

    I know the incoming packet data is written to local buffer.

    What I want to know is actual written packet address and length (from RECEIVER size).


    The reason I'm asking this question is:

    SENDER write RECEIVER's MSMC area (address 0x0c000000 - 0c3fffff) 4MB space. (this is our local buffer)

    SENDER write this area from start address to last address in sequence but at random interval. RECEIVER don't know when new packet is arrived.

    So I hope there is any way RECEIVER to know where is last written address and length of incoming SRIO packet to process new incoming packet.

    Regards,

    Brian

  • Hi Brain,

    I don’t think there is such a register in Receiver (destination) side to store/get last written address and size. As Per the SRIO User Guide:

    With direct I/O, the RapidIO packet contains the specific address where the data should be stored or read in the destination device. Direct I/O requires that a RapidIO source device keep a local table of addresses for memory within the destination device. Once these tables are established, the RapidIO source controller uses this data to compute the destination address and insert it into the packet header. The RapidIO destination peripheral extracts the destination address from the received packet header and transfers the payload to memory via the DMA.

    Thanks,