Discussion:
DMA Broken Up on MPC8248
(too old to reply)
Bill
2006-06-24 00:11:06 UTC
Permalink
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?
Didi
2006-06-24 06:27:05 UTC
Permalink
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

http://www.tgi-sci.com
------------------------------------------------------
Post by Bill
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?
d***@dogav.net
2006-06-25 19:20:45 UTC
Permalink
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
d***@dogav.net
2006-06-25 19:21:19 UTC
Permalink
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

Loading...