lkml.org 
[lkml]   [1997]   [Aug]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: Kernel virtual memory?
Date
>   DMA needs _physically_ contigious memory, it doesn't use the CPUs MMU.
> (At least on Intel. Not 100% sure what can be done with external MMUs,
> but I guess DMA still works on physical and not virtual address otherwise
> there would be all sort of problems).

The Linux supported MMU 68851, one of the external MMU can translate
DMA addresses. For DMA translation it has a separate pagetable tree
just like the one that is being used for the CPU. The Linux/m68k
systems I know of however don't make use of this possibility; at least
in the case of the A2620 accelerator card for the Amiga this even isn't
possible.

There are also many MIPS systems (the Jazz family, SGI system) that support
virtual DMA. For these systems DMA adresses translation can not be
disabled. The trivial approach to handle virtual DMA on these machines
is to install a 1:1 translation table. But virtual DMA is a far to nice
feature not to be used; on the Jazz machines for example it eleminated
the problems with DMA memory allocation as we have it in the floppy
driver and gives scatter gather even for the dumbest DMA hardware.

Ralf

\
 
 \ /
  Last update: 2005-03-22 13:40    [W:0.088 / U:0.204 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site