Part Number: 66AK2G12
I am using Processor SDK 22.214.171.124 with CCSv7.3.0. The various component versions are those that came with that release.
I have modified the MCASP example project to use the hardware configuration on my custom K2G board. I merged this project with an IPC example so that I could get the DSP running at the same time as Linux, and it does do that. The catch is that I must manually enable the LPSC in charge of the McASP. My procedure goes something like this:
- Power up system, let Linux boot.- Get audio clocks running and IIS routed around the board- Launch target config and connect DSP- Load DSP GEL, enable all PSC- resume processor- use mpmcl to reset, load, and run the DSP.
This works some of the time. Sometimes the McASP gets stuck transmitting a single buffer (as though the processor has been halted), or I get an Event Combiner error saying that the event I have connected to the DSP through the CIC (DSP Event 64) is "unplugged". Sometimes CCS just crashes when I try to connect the processor. The event combiner error happens whenever I try to restart the program using mpmcl, i.e. if the program was running and I reset and reloaded it.
I encountered similar behavior when I was developing this project using the OMAP-L138. That post is located here: https://e2e.ti.com/support/dsp/omap_applications_processors/f/42/t/612298?tisearch=e2e-sitesearch&keymatch=%20user:301823
How would I go about setting up the LPSC in Linux for the DSP to use? I would like for Linux to do all of the chip level configuration. I have:
- Enabled McASP0 in the device tree- Added reserved slot ranges in the device tree ( ti,edma-reserved-slot-ranges = <24 2>, <128 48>; )
Any ideas of where to look/what to do to make these two coexist on this platform?
In reply to Nick Saulnier:
We are glad that we were able to resolve this issue, and will now proceed to close this thread.
If you have further questions related to this thread, you may click "Ask a related question" below. The newly created question will be automatically linked to this question.
With respect to the LPSC setting from RTOS, I noticed that the McASP driver attempts to set the LPSC (at least the source references it mcasp_drv.c:5563:Mcasp_localLpscOn()). Wouldn't this negate the need to manually enable the LPSC?
I have yet to implement the device tree changes. That will likely happen sometime this week.
In reply to Jeffrey Limbocker:
I have some updates. I have finally been able to implement the suggested changes. I removed the change I made to the McASP linux driver, disabled the device tree node, and modified the board init function. I simply modified the pscConfigs array in evmK2G_clock.c to only include the PSC I needed, then I changed the Board_init(arg) call to only take BOARD_INIT_MODULE_CLOCK as a parameter. With this change, the program will run when I start it with the debugger.
At the present moment, I cannot get the application to run through MPMCL. The log (/var/log/messages) shows that the memory allocation is failing. I suspect this has something to do with the memory map. I'm still waiting to hear from the DSP engineer that was mentioned earlier.
Hello Jeff, Sorry for the delay. I pinged our DSP experts to see if they can comment.
EDIT 7/16/2018: I moved Jeff's response asking about the resource table and IPC here. This particular thread will continue discussing the issue of LPSC, but might be influenced by the discussion at that new thread.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.