Hi,
In the past I have ran with a Keystone I, but am not using a Keystone II device. I would like to have the DSPs use QMSS LLD similarly to how I used it before and I would like to have the ARM Linux use the QMSS LLD as well.
At the moment I have the same code I had working for the Keystone I DSPs running (with minor mods to account for the ARM). The DSP initialize QMSS like they used to and work fine. However if I have the ARM Linux attempt to open a queue (Qmss_queueOpen) after the DSP initialization it fails.
The Qmss_queueOpen() fails with an error code of -130 (QMSS_NOT_INITIALIZED). After searching through the QMSS LLD, I found that this function must be failing when it checks qmssLObjIsValid[QMSS_MAX_SUBSYS] = { 0, 0 }; If compiled for the DSP, a #ifdef _TMS320C6X flag puts this variable in a specific data section for each of the DSPs to find. This is not the case for the ARM build.
How is the ARM Linux supposed to know if a DSP initialized the QMSS or vice versa. I noticed this variable has a space for 2 flags. Does the ARM Linux do a separate QMSS initialization? If so, how do the two coexist?
Thanks in advance,
-Dan