Hello,
I have an application that runs on the DSP side of an L138, it uses the DMA to read data from the SPI1 peripheral. When this application is run standalone (loaded and run via JTAG) it works fine and will run all day long. However, when the application is loaded from the ARM running Arago Linux using DSP/LINK, the data transmission stops. Upon investigation, it seems that the DMAREQEN bit in the SPI1 SPIINT0 register is periodically being reset, causing DMA transfers from the port to cease. I am fairly certain that there is nothing in the DSP side code that is doing this so it must be the ARM. I notice that when Linux boots, amongst the LBG (Linux Booting Garbage) that gets spewed out of the debug port are the lines (they do not appear together):
spi_davinci spi_davinci.1: DaVinci SPI driver in EDMA mode
m25p80 spi1.0: m25p64 (8192 Kbytes)
spi_davinci spi_davinci.1: Controller at 0xfef0e000
Does this imply that there is some code in Linux trying to do something with the SPI1 port and is this the culprit that resets the DMAREQEN bit? If so, how do I stop it? If not, what else could be causing this problem.
Cheers,
John.