Hello,
I have successfully run the SRIO multi-core loopback example on the Keystone II TCI6638K2K (ti\pdk_keystone2_3_01_01_04\packages\ti\drv\srio\example\SRIOMulticoreLoopback)
I then converted this from Type 11 host packets to Type 9 Monolithic buffers, as will be required by our application. This also worked fine.
We require the buffers to be in DDR (as there will be a lot of data being transferred). This presented a number of problems, some of which were overcome with using CACHE_wbL1d and CACHE_invL1din the correct places.
The situation is that by splitting the receive and transmit buffers, so I can place either one in DDR, I can successfully receive into DDR (by calling INV in Srio_rxCompletionIsr, just before the Srio_processReceivedBD call).
When trying to send, I call CACHE_wbL1d in Srio_sockSend_TYPE9 just before pushing to the Tx queue with Qmss_queuePushDescSize.
1. If the Tx buffers are NOT in DDR, this work fine.
2. If the Tx buffers ARE in DDR, I get no fail message, but the packet is not received on the next core
3. If (based on https://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/364723) I set the MAR flags to NOT cache (any of) the DDR, the packet is received.
This suggests it is a problem with the caching of the DDR.
Are there any other points in the code that I need to write back the cache?
Do you have any other suggestions?
Thank you for your time.