Hi,
We are currently developing a system using the C6678 Multicore DSP.
Our project runs Linux on Core 0 and we have DSP/BIOS on core1 and core2 (other cores unused).
For the project we need to use the SRIO interface to pass messages to/and from an FPGA, and this interface is shared by all the cores. The aim is to mostly use Data Streaming (Type9) packets, but DIO functionality is also required.
I started to dig into the SRIO LLD, as well as the required CPPI LLD and QMSS LLD on the BIOS side. I have also followed the provided SRIO examples provided in the TI library.
I have perused the Keystone Linux SRIO drivers, but have not studied them in depth.
What I have seen is, the Linux drivers for SRIO/CPPI/QMSS and the BIOS LLDs do not function in the same way. As far as I could tell, the BIOS LLDs all use global structures for managing/tracking status of the subsytems (ie which queues have been assigned etc, where memory regions are etc). The Linux driver does not use the same type of structures. Now if I allocate a Queue in BIOS LLD, the Linux side will not know and might use the same Queue elsewhere. There are more of the same shared resource potential conflicts between BIOS/Linux.
Now my question is, is there some way to use both the current Linux SRIO driver as well as the BIOS LLDs together? The aim is to have the Linux core setup all the required peripherals (ie the SRIO HW setup and the Queue manager memory regions etc) and the LLDs to just use them. Has anyone done this before, do the drivers work together or do we have to re-write one/both of the driver sets?
Regards,
Hanno