Hi there.
Our company is currently prototyping a solution using the Digital Spectrum DM355 EVM,
running Montavista Linux 5.0 (kernel 2.6.18). In order to implement our application,
we'll need an SPI communication channel capable of high speed data transfers. For that,
the SPI driver included in the kernel must be capable of DMA transfers. In the Montavista
kernel sources, there's an SPI driver which apparently has support for DMA transfers enabled,
but only when the system processor is not a DM355:
<mv_kernel_src_2.6.18>/drivers/spi/davinci_spi_master.c, line 974 says:
/* DM355 does not have DMA capabilities */
if(cpu_is_davinci_dm355())
use_dma = 0;
We are not certain about what that comment line means. Does the DM355 SPI not support DMA transfers,
in spite of its datasheets and manuals stating clearly that it does? Or does the DM355 have unpublished errata?
A third interpretation could be that this specific driver doesn't use the DMA on the DM355, but
it could be done.
So, our question is: is the lack of DMA support in the SPI driver only a question of driver capabilities?
If that's the case, we can investigate the possibilty of developing a DMA aware SPI driver for
this processor. If the problem is that some kind of hardware issue forbids the use of the DMA controller
for SPI transfers on the DM355, then we could start looking for alternatives for this processor.
Thanks,
Moyses Borges
moyses@esystech.com.br
Esystech Embedded Systems