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.

RTOS/66AK2H14: SRIO Benchmarking application

Part Number: 66AK2H14

Tool/software: TI-RTOS

Hi,

We have designed a customized board with 66AK2H14. In our board we have 3 66AK2H14 processor ,out of which 1 is configured as Centralized Processor (Called CP henceforth) and 2 Distributing Processors (Called DP henceforth). We have SRIO switch (IDT_RXS2448) on board.

I am using CCS v7.4 and SDK  ti-processor-sdk-rtos-k2hk-evm-04.03.00.05.

I need to transfer the SRIO packet from one processor to another through the SRIO switch.

SRIO ports are configured as 4 * 1x.

I used Tput benchmarking in B-S-B mode and I am able to recieve the packets.

but my requirement is  to send the SRIO pakets in all the 4 ports simultaneously and prove the throughput of 5Gbps.

I thought of running the Tput Benchmarking application in multicore with different port in different core by changing

 CONSUMER_CORE , PRODUCER_CORE , SRIO_PORT_NUM .

I tried to create  different socket for different port by changing bindInfo.dio.srcIDMap in each core.

but I am able to create only 2 socket and able to transfer data in only 2 ports simultaneously.

 For bindInfo.dio.srcIDMap = 2 and bindInfo.dio.srcIDMap = 3 it was giving binding error.

 I am not able to transfer the packet in all the ports simultaneously.

Q1. Whether we can use TputBenchmarking application to transfer the SRIO packets in all the ports simultaneously?

Q2. What changes required in TputBenchmarking for my requirement ?

Q3. Whether there is any limitations on number of sockets that can be created ( because bindInfo.dio.srcIDMap = 2 has binding error)?

Thanks and Regards,

Mahima Shanbag

                




  • Hi,

    Which processor SDK RTOS version is this?
    What are the modifications that you've done to the B-S-B Tput Benchmark example?

    Best Regards,
    Yordan
  • Hi,

    Which processor SDK RTOS version is this?

    >>>>>> ti-processor-sdk-rtos-k2hk-evm-04.03.00.05.


    What are the modifications that you've done to the B-S-B Tput Benchmark example?

    I am running tput benchmarking application in multiple cores by changing the CONSUMER_CORE , PRODUCER_CORE , SRIO_PORT_NUM in benchmarking.h file as below

    #define CONSUMER_CORE                     0x0
    #define PRODUCER_CORE                     0x1

    #define SRIO_PORT_NUM                        0
     

    #define CONSUMER_CORE                     0x2
    #define PRODUCER_CORE                     0x3

    #define SRIO_PORT_NUM                        1

    #define CONSUMER_CORE                     0x4
    #define PRODUCER_CORE                     0x5

    #define SRIO_PORT_NUM                        2

    #define CONSUMER_CORE                     0x6
    #define PRODUCER_CORE                     0x7

    #define SRIO_PORT_NUM                        3


    In srio_dio_tput.c I tried to create 4 different socket for 4 SRIO ports to recieve the data simultaneously by changing

        bindInfo.dio.srcIDMap       = 0; // for port 0
        bindInfo.dio.srcIDMap       = 1; // for port 1
        bindInfo.dio.srcIDMap       = 2; // for port 2
        bindInfo.dio.srcIDMap       = 3; // for port 3

    but for
     bindInfo.dio.srcIDMap       = 2;
     bindInfo.dio.srcIDMap       = 3;  

    it was giving error "Error: Binding the DIO Control Socket failed"


    Our requirement is  to send the SRIO pakets in all the 4 ports simultaneously and prove the throughput of 5Gbps/port.

    so my question is :

    Q1. Whether we can use TputBenchmarking application to transfer the SRIO packets in all the ports simultaneously?

    Q2. What changes required in TputBenchmarking for my requirement ?

    Q3. Whether there is any limitations on number of sockets that can be created ( because bindInfo.dio.srcIDMap = 2 has binding error)?

    Please help me with this .

    Thanks and Regards,

    Mahima Shanbag

  • Hi,

    any update?

    Thanks and Regards,
    Mahima Shanbag
  • Mahima,

    The TputBenchmarking application was designed to measure the throughput with two cores only.

    Are you generating 4 separate DSP binaries for your testing code to measure the 4 * 1x SRIO DIO throughput? You might just need one core to do the system_init() and enable_srio() instead of
    /* Initializations depend on the core type. */
    if (coreNum == testControl.srio_initCorenum)
    for each consumer core.

    You can add the srio_drv.c from PDK packages\ti\drv\srio\src into CCS project and step into Srio_sockBind_DIO() to find out the cause of "Error: Binding the DIO Control Socket failed".

    Regarding the limitations - "For DIO sockets the binding maps the socket to an LSU entry. There are 8 LSU entries which are
    available in the SRIO IP block", see SRIO LLD Software Design Specification (SDS) SRIO_SDS.pdf in packages\ti\drv\srio\docs, thus the max number sockets is 8.

    Regards,
    Garrett
  • Hi Garret,

    Thank you for your support.

    I am generating 4 separate DSP binaries for 4 different ports .

    I will debug the binding error and post the updates.


    Thank you,
    Mahima Shanbag
  • mahima,

    I would like to close the thread, and we can continue the discussion in the thread you opened - e2e.ti.com/.../2829452

    Regards,
    Garrett