After reset Linux, DMA transfer stop occasionally while initializing MMC driver.
[platform]
CPU DM368
OS Linux(dvsdk_dm368-evm_4_02_00_06)
SDcard SDHC 16GB Class10(Silicon Power)
[Details]
Read from MMCDRR of Multimedia Card Controller Registers, does not complete transfer count and read damaged data occasionally.
Set MMC Controller Registers and EDMA Controller as follows.
(DVSDK default set, not customize)
MMC
MMCFIFOCTL.ACCWD = 0 (CPU/EDMA access width of 4 byte)
MMCFIFOCTL.FIFOLEV = 1 (EDMA request every 512 bits sent/received)
MMCFIFOCTL.FIFODIR = 0 (Read from FIFO)
EDMA
SRC = address of DAVINCI_MMCDRR register
DST = address of DDR memory
SRC_BIDX = 0
SRC_CIDX = 0
DST_BIDX = 4
DST_CIDX = 32
A_B_CNT.ACNT = 4
A_B_CNT.BCNT = 8
CCNT.CCNT = 2
OPT.FWID = 0 (FIFO width is 8-bit)
OPT.SAM = 1 (Constant addressing)
OPT.DAM = 1 (Constant addressing)
OPT.SYNCDIM = 1 (AB-synchronized)
There's no error bit on EDMA error status when problems occur.
This problem occur occasionally when reset Linux, but does not occur Power On Reset and Warm Reset.
any possible cause?