using the dma
using the dma
I understand that dma expects contiguous memory from the first 16mb, but does it matter where those are? For example, If I have my kernel control 0-2mb, can I set aside the next 4mb for dma, and just setup all dma transfers to take place in that region or does dma need the whole 16mb to be free?
Re: using the dma
No, you just need a part of it. But the begin of the DMA buffer has to be aligned on 64kB boundaries, as far as I know.
- xenos
- Member
- Posts: 1121
- Joined: Thu Aug 11, 2005 11:00 pm
- Libera.chat IRC: xenos1984
- Location: Tartu, Estonia
- Contact:
Re: using the dma
IIRC, the begin of the DMA buffer does not have to be on a 64 kB boundary. But, nevertheless, the DMA transfer must not cross a 64 kB boundary. I.e. a transfer of, say, 0x4000 bytes to adress 0x68000 is perfectly fine, while a transfer of 0x4000 bytes to 0x6d000 will fail since it crosses tha boundary at 0x70000.
Re: using the dma
OK, then that's right.