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.

break needed after pushing descriptor to Packet Accelerator(PA)?

Hi experts,

I'am using a C6670 DSP and sending out UDP-data via the PA.

We determine that a break is necessary after pushing the descriptor.

The question is now why the break is needed and how we can determine or calculate the necessary time for the break.

Best regards Frank

  • Hi experts,

    To clarify the problem.

    e,g, in the simple example projectof the PALLD

    */ti/pdk_C6670_1_0_0_21/packages/ti/drv/pa/example/simpleExample/paExample

    file pkttxrx.c

      /* Give some time for the PA to process the packet */
      CycleDelay (10000);

    In our actual project this delay is not enough so we have to increase the break to about 100 000.

    So in our eyes there is a kind of bottleneck between the core and the Network Coprocessor.

    It would be fine if someone can explain this problem or point us to an other solution.

    Regards

    Frank

  • Quote from expert Eric Ruei :

    It is just a sample code. In the real application, the egress and ingress operation should be independent. There is no need to delay the egress traffic.  The application should use polling or interrupt for ingress traffic.

     

    Other expert Javier Malave-Bonet asks:

    That delay to me is only relevant when running on the simulator. This delay is not needed on Silicon. There is no bottleneck between PA and the core on real silicon, on simulator this is due to how the emulation is performed not because it represents and actual cycle accurate “bottleneck” or dependency between core and PA.  “

     

     Are you using simulator ?

  • Hi Varada,

    no I'm not using the simulator.

    The problem is, that after a few packets are send out to the ethernet the process stuck and it seams that the descriptors will not be recycled correctly.

    So we now handle it the following was:

    1. setup two host packet descriptors for the free tx queue
    2. First round
    1. pop for one host packet descriptor out of the free tx queue
    2. generate the data which should be send out
    3. push the descriptor to the Packet Accelerator (PA)
    • Second to infinity round
    1. pop for one host packet descriptor out of the free tx queue
    2. generate the data which should be send out
    3. WAIT untill one dscriptor will be availiable in the free tx queue (so no descriptor will be on the way or be processed by the PA) otherwise yield the task
    4. push the descriptor to the Packet Accelerator (PA)

    With this setup the sending of data will be go well.

    In an other post I read, that setting the PS-Flag to one respectively two will avoid this problem.

    Regards Frank