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.

How to config SRIO with this certain situation?

Hi,all:

Now I am working with C6678EVM and I want to use SRIO to interconnect

between 6678s.Assumes a certain situation.

I have 3 C6678s.DSP0 DSP1 and DSP2.Meanwhile,C6678 has four lanes(lane0-3) on chip.

So,Suppose that DSP0 and DSP1 connect each other via SRIO lane0 ,DSP0 and DSP2

connect via SRIO lane1.See figure below:

DSP0   <------ lane0 -------->  DSP1

DSP0  <------- lane1 ---------> DSP2

While,my question is :

1.

Take the situation that DSP0 and DSP1 connect via SRIO lane0.When I want to

transfer data from DSP0 to DSP1,Do I use the only one port(port0) and only one

lane(lane0)?

2.

Does it mean that I only config SRIO for 1x and I cannot config SRIO for 2x or 4x

as we just I only one lane(lane0)  to connect DSP0 and DSP1?

So we cannot get 4x and 2x config.It means that at most we obtain 5Gbps bandwith
when we want to transfer data from DSP0 to DSP1. Doesn't it?

Does it mean that I only can use lane0 and I cannot use lane1,lane2 and lane3?

3.

Does it also mean that I only use one port (port0) in my program and I cannot use

port1 ,port2 and port3 because there is only one lane we can use?

I guess like this:

If I have four lanes 4x,I can use four ports at most(one port vs one lane).

If I have 2 lanes  2x, I can use two ports at most (one port vs one lane).

But If I only have one lane 1x.it means that I can only use one port at most.

I cannot use more than one port.

Doesn't it ? Is true or not true about my guess?

  • Hi David,

    The SRIO peripheral on the C6678 has 4 SerDes lanes available for use. More description can be found in section 2.3.1.4 SerDes Configuration Example and 3.17.10 PLM Port(n) Path Control Register of the SRIO Users Guide (http://www.ti.com/lit/pdf/sprugw1). It should be noted that table 2-4 is pending an update and that the modes for configuration 4 should be as depicted in the table below:

    As you can see, the 4 lanes can form various port widths. Based on the example setup you provided (DSP0 connected to DSP1 and DSP2), you could use mode 3 and have 2 2x ports. One 2x port connecting  DSP0 to DSP1 and the other 2x port connecting DSP0 to DSP2. As shown below:

    DSP0 <--- lane A & lane B ---> DSP1

    DSP0 <--- lane C & lane D ---> DSP2

    Other configurations are possible as well depending on what your system requirements are. For example you could use mode 0, 1 or 2 and have additional ports available to connect to other devices.

    For further information on throughput capabilities of SRIO, have a look at our Keystone I Throughput Guide (http://www.ti.com/lit/pdf/sprabk5).

    Let us know if you have any additional questions.

    Thanks,

    Clinton

  • Hi,Clinton:

    I think you cannot totally understand my meaning.My example said that DSP0 and

    DSP1 connect each other only using one lane not two lane.So do DSP0 and DSP2.

    So what you provided is not correct like this :

    DSP0  <----laneA&laneB---->DSP1

    DSP0 <-----laneC&laneD----->DSP2

    The correct situation that I expect is like below:

    DSP0 <------laneA-------->DSP1

    DSP0<-------laneB-------->DSP2

    So you are only permitted to use one lane to connect DSP0 and DSP1 or DSP0 and DSP2.

    Since,Based these points,I am not sure which Configs (Config1 or Config2 or Config4) and

    which modes are suitable for my example.I guess some cases below and if I am wrong please

    correct me.

    1.

    I think Config1 is not suitable,Since that only has one lane but DSP0 need two lane at least

    to connect DSP1 and DSP2

    2.

    I think Config2_mode0 is the right one I expect.Since there are two lanes and I can dispatch 

    one lane to connect DSP0 and DSP1,the other lane to connect DSP0 and DSP2.

    I don't think Config2_mode1 is suitable,Since I cannot use two lanes to connect and I just

    use one lane with reasons I tell above.Because DSP0 and DSP1 connect just use one lane

    not two lane.

    3.

    The same reason,I think under Config4,mode 0 or mode1 or mode2 is ok excluding mode4

    and mode3.

    As to mode3.I cannot dispatch two-lane port to connect DSP0 and DSP1 or DSP0 and DSP2.

    I only have one-lane port.So mode3 is absolutely not suitable.So is mode4.

    4.

    But I meet a strange problem,we all know that Config4_mode4 is not suitable.

    Though When I config my example provided above with Config4_mode4  the

    program can run successfully without any errors.I am confused and why?

    I repeat and I am sure that DSP0 and DSP1 connect using one lane, DSP0 and

    DSP2 connect using one lane.   why we use four-lane port(Config4-mode4) to transfer

    data successfully?

    Doesn't this situation produce errors that physically you only has one-lane port to transfer

    but in practice you set four-lane port to transfer?

    It's so unbelievable .So how to explain this config?

  • C66x DSPs only support configuration 4.  You can choose any of the modes 0-4.  For what you are describing, you want a single lane port to each DSP, so mode 0.

    Regards,

    Travis

  • Hi,Travis:

    1.

    For what reason,Do C66x DSPs only support configuration 4.

    2.

    Like the situation which I described,I think I should select configuration 4

    mode0 not configuration 4 mode4.But,can you help me to analyse the reason

    that my application run ok when I select configuration 4 mode4 not mode0?

  • Hi David,

    Some questions about your HW:

    1. So you are using 3 C6678 EVMs?
    2. How do you physically have them connected to each other?

    Some questions about your SW:

    1. Are you using example code included in the MCSDK? If so, which example?
    2. How are you modifying the code to change the mode you are using and accounting for the change in the example?
    3. Can you provide the console output of your successful and failed runs?

     If you specifically would like to use lane A and lane B, modes 0 or 2 should work for you. To address your question about mode 4 working, it's possible that the code is set up to work on port 0 in mode 4, which then auto-negotiates down to a 1x port when it realizes that the 4x port is not available.

    Mode 0 might not work due to something that you have or have not changed in the code to accommodate this change. I'll be able to provide more insight once I know more about your HW and SW setup.

    Thanks,

    Clinton