DMA Broken Up on MPC8248

Jun 24, 2006 3 Replies

I am running Linux 2.4 on an MPC8248. In my code, I do many chaining DMAs with chains consisting of a single segment descriptor. Each segment descriptor has a valid source and destination physical address. The byte count = 0x60 and the next descriptor = 1. The DMAs seem to work as expected, i.e., the 0x60 bytes are successfully transferred from the given sources to the given destinations, but, when I look at the logic analyzer, rather than seeing single DMAs of 0x60 bytes, I see



6 separate DMAs of 0x10 bytes where there should be a single DMA of
0x60 bytes. Shouldn't it DMA 0x60 bytes in one single DMA transfer?

I do not know the 8248, but I remember on the 8240 I tried to use the DMA to move memory to memory. It worked, only several times slower than when I did it using the CPU, so I abandoned it. I did not bother to look into why it was so slow, it obviously not going to get me anywhere so I did tweak the CPU move code as far as I could and am happy ever since :-).

Dimiter

------------------------------------------------------ Dimiter Popoff Transgalactic Instruments

formatting link

------------------------------------------------------

Bill wrote:

Play with the following parameters: BUF_INV,SS_MAX,STS,DTS.

Dimiter, Unlike the mpc8240, where the DMA was implemented in H/W, the mpc8248 IDMA is CPM microcode based. This suggests that the PQx-IDMA is more sophisticated, and can be fine tuned to specific requirements.

David Gabbay DoGav Systems

Play with the following parameters: BUF_INV,SS_MAX,STS,DTS.

Dimiter, Unlike the mpc8240, where the DMA was implemented in H/W, the mpc8248 IDMA is CPM microcode based. This suggests that the PQx-IDMA is more sophisticated, and can be fine tuned to specific requirements.

David Gabbay DoGav Systems

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required