Other Parts Discussed in Thread: OMAP-L138, OMAPL138
Hi
I encountered a weird problem while implementing my system on OMAP-L138. Here's what's going on:
My custom OMAP-L138 card is connected to our baseboard (through EMIFA CS#2) and some of the baseboard's resources are mapped into Linux kernel-space memory using ioremap_nocache on 0x60000000 (as seen in the memory map). In Linux I have a 120Hz workqueue in which I read a certain amount of bytes from the mapped memory.
On the DSP side I have McASP and DMA configured (using EDMA3 LLD) that serves as a PCM interface.
What's going on is that after a few seconds after my kernel module (that performs the mapped read) gets loaded and the DSP program starts running etc. DMA on the DSP side seems to fail and McASP indicates a XUNDRN and/or RUNDRN error (mostly at the transfer side, but sometimes on both). Naturally my PCM stops functioning and my whole system fails since it is dependent on it.
I'm positive that the read from 0x60000000 and on messes up things since when I comment the line responsible for it from the kernel module everything works stable. Moreover, the few seconds it works without commenting anything , it works 100% correctly (the bytes read from the baseboard are OK and valid).
Since I don't know how the processor works internally I cannot connect these two facts together. I would appreciate if you could explain to me what could be wrong.
Regards
Szymon