This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

How to set the appropriate timings configuration for EMIF

Hi,

I have Am-1808 running linux and I am using EMIF-A interface in the asynchronous mode. For emif configuration i am using this code, with these configuration i can read/write successfully to/from fpga but data rate is very slow because all the timings configurations(setup, strobe, hold, turn around)  are set to maximum values.

The current configurations in the code are:

static struct davinci_aemif_timing da850_naii_timing = {
 .wsetup         = 1,
 .wstrobe        = 1,  
 .whold          = 1,
 .rsetup         = 1,  
 .rstrobe        = 1,
 .rhold          = 0,
 .ta             = 1,  
};


But when we measure cycles on fpga we are getting:

setup = 16 cycles ; strobe = 64; hold = 8; turn-around = 4

which are the maximum possible values.

I tried hard-coding the values in the kernel source in mach-davinci/aemif.c file but still we got same number of cycles. N changing the values from the C-code are not being effected too.


So if u can please tell any way by which we can change the values of setup, strobe, hold and turn-around to increase our data rate.


Edit:

I am performing read/write in 8-bit mode i.e by using ioread8()/iowrite8().


Thanks


Regards

Usama