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 capture the IP packet from SRIO of C6670

I'm trying to build a communication system based on TMS320C6670L Evaluation Module,the data  transmit between PC and 6670.so if there has IP packet came from the Ethernet port or SRIO of C6670, How can I capture the packet ?is it something about NDK?can anyone give me some examples ?

THANKS!

  • Hi Alex, 

    Yes. The DSP will communicate through Ethernet using NDK. Please download the latest MCSDK which has NDK and examples. 

    Thanks.

    MCSDK: http://software-dl.ti.com/sdoemb/sdoemb_public_sw/bios_mcsdk/latest/index_FDS.html

  • Hi Raja,

    Thank you fou your reply! As your direction,I found the client example project ( C:\ti\mcsdk_2_01_02_06\examples\ndk\client) and import it to CCS,and the program can be running.like the following picture:

    But why there has no output from the console?what can I do to capture the IP packet from the Ethernet?I found someone in the forum said we must allocate an IP address for the DSP board and then use Wireshark to capture the packet,Is that right ?what should I do?  

    Thanks!

  • Can anyone help me to answer the question?Maybe I should configue an IP address for the board,but how to configue it?

    Thanks!

  • Please try one of the examples for the Packet Accelerator (PA) in network coprocessor subsystem (lower right side) shown in figure below

    Please try to import one of the "PA_xxx" examples in folder ......./<C6670_pdk_folder>/packages/ti/drv/exampleProjects

    Best regards

    Mehly

    PS: Please try to explain, what you want to do with Serial Rapid IO (SRIO) because this is another subsystem.


    PS: start with PA_emacExample_exampleProject

  • Hi,Mehly

    Thank your very much for your reply!

    Let me explain what we want to do in our  work.We are trying to build a wireless communication system  based on TMDSEVM6670.I'd like to show you in the following picture:

    So in the transmitter,we need to capture the video packets from the hub and then send the message to wireless module by SRIO;in the receiver,we capture the packets from SRIO and then send them to the hub.So I actually need a procedure to  achieve our goal.

    By your suggestion,I try the emac and multicore example in the pdk example projects folder,and the output like this:

    [C66xx_0] ************************************************
    *** PA Multi Core Example Started on Core 0 ***
    ************************************************
    Initializing Free Descriptors.
    QMSS successfully initialized
    CPPI successfully initialized
    PASS successfully initialized
    Ethernet subsystem successfully initialized
    Tx setup successfully done
    Rx setup successfully done
    PASS setup successfully done
    Waiting for all cores to reach the barrier before transmission starts ...
    [C66xx_1] ************************************************
    *** PA Multi Core Example Started on Core 1 ***
    ************************************************
    Waiting for global config...
    QMSS Local successfully initialized
    Rx setup successfully done
    PASS setup successfully done
    Waiting for all cores to reach the barrier before transmission starts ...
    [C66xx_2] ************************************************
    *** PA Multi Core Example Started on Core 2 ***
    ************************************************
    Waiting for global config...
    QMSS Local successfully initialized
    Rx setup successfully done
    PASS setup successfully done
    Waiting for all cores to reach the barrier before transmission starts ...
    [C66xx_3] ************************************************
    *** PA Multi Core Example Started on Core 3 ***
    ************************************************
    Waiting for global config...
    QMSS Local successfully initialized
    Rx setup successfully done
    PASS setup successfully done
    Waiting for all cores to reach the barrier before transmission starts ...
    Packet Transmission Start ...
    Packet Transmission Done.
    Wait for all packets to be Received ...
    VerifyPacket: Byte 44 expected 0x34, found 0x3a
    VerifyPacket: Byte 44 expected 0x34, found 0x3a
    VerifyPacket: Byte 40 expected 0x1d, found 0x18
    VerifyPacket: Byte 44 expected 0x34, found 0x3a
    VerifyPacket: Byte 44 expected 0x34, found 0x3a
    VerifyPacket: Byte 44 expected 0x34, found 0x3a
    VerifyPacket: Byte 44 expected 0x34, found 0x3a
    VerifyPacket: Byte 44 expected 0x34, found 0x3a
    VerifyPacket: Byte 44 expected 0x34, found 0x3a
    VerifyPacket: Byte 40 expected 0x1d, found 0x18
    [C66xx_0] Packet Transmission Start ...
    [C66xx_1] Packet Transmission Start ...
    [C66xx_2] Packet Transmission Start ...
    [C66xx_0] Packet Transmission Done.
    [C66xx_1] Packet Transmission Done.
    [C66xx_2] Packet Transmission Done.
    [C66xx_0] Wait for all packets to be Received ...
    [C66xx_1] Wait for all packets to be Received ...
    [C66xx_2] Wait for all packets to be Received ...
    [C66xx_0] VerifyPacket: Byte 44 expected 0x34, found 0x3a
    [C66xx_1] VerifyPacket: Byte 44 expected 0x34, found 0x3a
    [C66xx_2] VerifyPacket: Byte 44 expected 0x34, found 0x3a
    [C66xx_0] VerifyPacket: Byte 40 expected 0x1d, found 0x18
    [C66xx_1] VerifyPacket: Byte 44 expected 0x34, found 0x3a
    [C66xx_2] VerifyPacket: Byte 44 expected 0x34, found 0x3a
    [C66xx_0] VerifyPacket: Byte 44 expected 0x34, found 0x3a
    [C66xx_1] VerifyPacket: Byte 40 expected 0x1d, found 0x18
    [C66xx_2] VerifyPacket: Byte 40 expected 0x1d, found 0x18
    [C66xx_0] VerifyPacket: Byte 44 expected 0x34, found 0x3a
    [C66xx_1] VerifyPacket: Byte 44 expected 0x34, found 0x3a
    [C66xx_2] VerifyPacket: Byte 44 expected 0x34, found 0x3a
    [C66xx_0] VerifyPacket: Byte 44 expected 0x34, found 0x3a
    [C66xx_1] VerifyPacket: Byte 40 expected 0x1d, found 0x18
    [C66xx_2] VerifyPacket: Byte 40 expected 0x1d, found 0x18
    [C66xx_0] VerifyPacket: Byte 44 expected 0x34, found 0x39
    [C66xx_1] VerifyPacket: Byte 44 expected 0x34, found 0x3a
    [C66xx_2] VerifyPacket: Byte 44 expected 0x34, found 0x3a
    [C66xx_0] VerifyPacket: Byte 44 expected 0x34, found 0x3a
    [C66xx_1] VerifyPacket: Byte 44 expected 0x34, found 0x3a
    [C66xx_2] VerifyPacket: Byte 44 expected 0x34, found 0x3a
    [C66xx_0] VerifyPacket: Byte 44 expected 0x34, found 0x3a
    [C66xx_1] VerifyPacket: Byte 44 expected 0x34, found 0x3a
    [C66xx_2] VerifyPacket: Byte 44 expected 0x34, found 0x3a
    [C66xx_0] VerifyPacket: Byte 40 expected 0x1d, found 0x18
    [C66xx_1] VerifyPacket: Byte 44 expected 0x34, found 0x3a
    [C66xx_2] VerifyPacket: Byte 44 expected 0x34, found 0x3a
    [C66xx_0] VerifyPacket: Byte 44 expected 0x34, found 0x3a
    [C66xx_1] VerifyPacket: Byte 40 expected 0x1d, found 0x18
    [C66xx_2] VerifyPacket: Byte 40 expected 0x1d, found 0x18

    It just can't  meet our need,so can you give me more advises?

    Thank you!

  • Hi Alex,

    thanks for the detailed overview of your system. The best way to get it running is to understand the examples!


    This is what you have to do.

    I suggest you start with the reciever part of your system, because you can test Ethernet Transmitter first with wireshark or similar program.

    In the example the interessting part is what core0 is doing.

    ----- Multicore Navigator part --------

    Initializing Free Descriptors.           <- reserve memory for buffer pointers in descriptor of queuing system
    QMSS successfully initialized        <- Queue Manager Subsystem
    CPPI successfully initialized          <- Communications Port Programming Interface (Packet DMA)

    ----- Ethernet part --------

    PASS successfully initialized                                          <- initialize packet accelerator (Register, also PacketDMA)
    Ethernet subsystem successfully initialized
    Tx setup successfully done                                             <- here TX part is done
    Rx setup successfully done                                            <- later you need also RX part
    PASS setup successfully done

     

    Try to understand all parts of this example to get ethernet TX and later RX running.

    By the way, I think there was a error. Maybe try to make a full system reset when you start this program.

    <VerifyPacket: Byte 40 expected 0x1d, found 0x18>

    (This could be happen when you start your program twice or start another program with another configuration for network coprocessor!!!)

    List:

    1. reserve Memory for pointers in Host Descriptors of queuing system in shared memory

    2. init QMSS/CPPI so that you are able to create Descriptors and put them into Queues and use Packet DMA

    3. init PASS (prepare network coprocessor for queuing system with internal Packet DMA)

    4. init SRIO (prepare serial rapid io for queuing system with internal Packet DMA)

         I think it is also possible from the picture view.

         Also try to understand flow concept of Descriptors so that SRIO take a descriptor from a free descriptor queue and put it to the input queue of the network coprocessor for automatic TX your payload.

    use also TI Traning Videos

    memory

    interface

     

     Best regards
    Mehly

     

  • Alex,

    There is no direct test code for your requirement.
    You have to understand the NETCP and SRIO peripherals.
    You can run the available test code for NETCP and SRIO separately.
    Then create the both the modules on your application.
    Here client project provided for NDK, which is using QMSS, PKTDMA and NETCP modules(like PA)
    C:\ti\mcsdk_2_01_02_06\examples\ndk\client\evmc6678l
    Refer the SRIO loopback test code at PDK.

    Thanks to Mehly for giving more details and support.