[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
MCM: problems using DMA
We developed 2 video-compression boards identical with the exception of the
processor: Etrax 100 LX and Etrax 100 LX MCM.
We have different behavior when we access the external bus to read the
incoming compressed video stream.
We set 10kbytes DMA transfer from the external peripheral to the processor
1) on the 100 LX MCM board, randomly after 0-4 loops the processor hangs,
the DMA finishes the current 10kbyte transfer and the debug port reports:
"Unable to handle kernel NULL pointer dereference at virtual address
2) on the 100 LX board, the DMA loops successfully and the processor
continues its task (looping to the following DMA)
The software is the same for the 2 boards, and for that we are reasonably
confident that the error is not in our drivers.
For Etrax 100 LX we tested both Kernel 2.4.14 and 2.4.19.
For Etrax 100 LX MCM we tested (Kernel 2.4.14 + MCM patch) and (Kernel
2.4.19 + official MCM release - downloaded last week)
We developed another version without using DMA, and repeating single
read-access to the external peripheral. In this case both 100 LX and 100 LX
MCM boards work fine and with no hangs.
We do need to use DMA mode for high performance data transfer.
Any suggestion to bypass this annoying problem would be appreciated.