I'm using emif to connect a FPGA FIFO outside.  The FIFO width is 16
bit. To access the FIFO, the address is 0x04002000. I want to copy a
block of data to FPGA. I try to use edma to do the transfer.

source:  DDR     dest:  EMIF

acnt = 2;
bcnt = data_size(bytes) / 2;
ccnt = 1;
A-sync mode


source:(INC mode)
bidx = 2;
cidx = 0;

dest: (INC mode)
bidx = 0;
cidx  = 0;

Here is the code:

        davinci_set_dma_src_params(emif_data->dma_ch,
                        work_buf->dma_addr, INCR, W8BIT);
        davinci_set_dma_dest_params(emif_data->dma_ch,
                        EMIF_ADDR, INCR, W8BIT);
        davinci_set_dma_src_index(emif_data->dma_ch, 2, 0);
        davinci_set_dma_dest_index(emif_data->dma_ch, 0, 0);

       davinci_set_dma_transfer_params(emif_data->dma_ch, 2,
work_buf->data_size/2, 1, 0, ASYNC);

But it seems that no data output.  Can anyone help me? Thanks.
There's one thing I'm not sure. If emif is configured as 16 bit, can
we write bytes twice to form a word? Like this,  one byte to (EMIF
ADDR), one byte to (EMIF ADDR +1).

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to