We have four c6678 DSPs(with SRIO port 0 of each dsp only) connected to a switch(cps1616) on a custom board.
PA_emacExample_exampleProject - I have modified this project to send and receive packets.
SRIO_TputBenchmarkingTestProject - I have modified this project to send packets from Producer core to Consumer core through the SRIO switch.
We are simply trying to combine these two projects as they need to work together. I have added parts of PA_emacExample_exampleProject to SRIO_TputBenchmarkingTestProject.
Modification 1:
Initially, there were two initialization of QMSS and CPPI -
Qmss_init (&qmssInitConfig, &qmssGblCfgParams);
Cppi_init (&cppiGblCfgParams);
Emac initializations were done first then later the SRIO initializations. EMAC is able to send packets up until the SRIO’s QMSS initialization is done. After that, it is able to send 32 packets then it gives error message “No Tx free descriptor. Cant run send/rcv test”.
Modification 2:
if (system_init () < 0) - this function was commented as qmss and cppi modules are already initialised in Init_Qmss() and Init_Cppi() in the emac code. The default qmss memory region is Qmss_MemRegion_MEMORY_REGION0 for emac and Qmss_MemRegion_MEMORY_REGION_NOT_SPECIFIED for srio. This did not give any new errors while running but we had the same error message - “No Tx free descriptor. Cant run send/rcv test”.
When we changed the memory region in srio from Qmss_MemRegion_MEMORY_REGION_NOT_SPECIFIED to Qmss_MemRegion_MEMORY_REGION1 it gave the following error:
Error inserting memory region: -129
We tried changing the number of descriptors to accommodate for both emac and srio but the same error message came up.