Hello,
I would like to transfer buffer data out to the EMIF by EDMA for the OMAP L138, and the transmission is controlled by ARM side under Linux OS. In order to simplify the testing, buffer size is set to 24bytes, AB-synchronization is used. The PaRAM settings are as follow:
acnt = 2
bcnt = 4
ccnt = 3
src bidx = 2
src cidx = 8
dst bidx = 2
dst cidx = 8
PaRam data is as follow:
opt: 80300004
src addr: c1e41000
a_b_cnt: 40002
dst addr: 60000000
src_des_bidx: 20002
link_bcntrld: FFFF
src_dst_cidx: 80008
ccnt: 3
When the destination address is set to internal memory, the above task is simply the memory copy and everything is working fine. But when the destination address is set to the EMIF address (0x60000000), I found the following issues (with the help of the Logic Analyzer):
1) There are only 4 write cycles (bcnt) on the EMIF bus, and the count for 3rn dimension (ccnt) has same effect as 1 no matter how I change it. (The CS2 lasts for 4 write cycles only).
2) The EMIF address bus is incremented but per every 2 write cycles.
For above 1st issue: I found that there were 3 times manually triggers but only the first trigger had the effect on the EMIF bus, while the other 2 triggers received the transmission completion interrupt, but nothing on the EMIF bus.
For the 2nd issue, the bus can be incremented per write cycle when the destination B index is 4, but the transmission is not optimized then.
Is there something wrong in the above settings?
Thanks