Hi,
I'm using the CriticalLink L138 board with the OMAPL138 processor on it.
At the moment I have major problem to get the EDMA transfers on the DSP Running while Linux is running on the ARM core.
I got the information that i have to reserve the channels i will use on DSP in the linux Kernel. Therefore, I took the following code out of the "board-da850-evm.c" file and put it into my config file. but the problem is still there. no dma transfers from dsp side. In my case, the Timer64P3, Event 26 on Channel Controller 1, reqests the transfer on DSP side.
/*
* The following EDMA channels/slots are not being used by drivers (for
* example: Timer, GPIO, UART events etc) on da850/omap-l138 EVM, hence
* they are being reserved for codecs on the DSP side.
*/
static const s16 da850_dma0_rsv_chans[][2] = {
/* (offset, number) */
{ 8, 6},
{24, 4},
{30, 2},
{-1, -1}
};
static const s16 da850_dma0_rsv_slots[][2] = {
/* (offset, number) */
{ 8, 6},
{24, 4},
{30, 50},
{-1, -1}
};
static const s16 da850_dma1_rsv_chans[][2] = {
/* (offset, number) */
{ 0, 28},
{30, 2},
{-1, -1}
};
static const s16 da850_dma1_rsv_slots[][2] = {
/* (offset, number) */
{ 0, 28},
{30, 90},
{-1, -1}
};
static struct edma_rsv_info da850_edma_cc0_rsv = {
.rsv_chans = da850_dma0_rsv_chans,
.rsv_slots = da850_dma0_rsv_slots,
};
static struct edma_rsv_info da850_edma_cc1_rsv = {
.rsv_chans = da850_dma1_rsv_chans,
.rsv_slots = da850_dma1_rsv_slots,
};
static struct edma_rsv_info *da850_edma_rsv[2] = {
&da850_edma_cc0_rsv,
&da850_edma_cc1_rsv,
};
ret = da850_register_edma(da850_edma_rsv);
My Problem is, that I don't know if the structs above cover also the event 26 on cc1.
Does anybody know how it works with the structs and how I have to set the values to reserve the dma channel for event 26?
I'm using Angstrom v2012.05 - Kernel 3.2.0
Thanks for all informations about this!!
Christian