Wie werden Daten per DMA von RAM zu RAM übertragen?

Ich möchte ein Kernelmodul schreiben, das Daten per DMA von RAM zu RAM übertragen kann. Es gibt einige Posts, die dies diskutieren, aber ich verstehe es nicht wirklich. Einige sagen, es ist möglich, andere sagen, es ist nicht möglich.

Wenn ich ldd3 richtig verstanden habe, ist das Kopieren von RAM zu RAM mit der DMA-API von Linux nicht möglich, aber das driver / dma / dmaengine.c stellt ein Flag DMA_MEMCPY für einen "DMA-Übertragungstyp" bereit, daher sollte es einen Weg geben.

Ist das richtig, kann ich eine DMA-Engine verwenden, um Daten von einer RAM-Adresse zu einer anderen zu übertragen?

Wie kann ich feststellen, ob mein System dma memcpy unterstützt, wenn dies hardwareabhängig ist?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage