如何将用户空间数据传递给dmaengine客户端使用调用?

问题描述 投票:0回答:1

我在带fpga(SoC)的arm64上有一块板。

我已经阅读了“ Linux设备驱动程序”和其他主题。现在,我有点困惑。

任务很简单-可以在使用和不使用dma支持的情况下,将数据(设备cfg)从“用户空间”区域(应用程序)与“内核空间” phys mem(fpga规则)进行传输。该dma位于板中(ZynqMP / GDMA)。我将在fpga和外部使用多个设备,这些设备应该使用此通信。目前,我探索dmaengine客户端(https://github.com/Xilinx/linux-xlnx/blob/master/drivers/dma/dmatest.c)。

对于当前测试,我只有一个fpga mem区域,具有用于数据传输的最大大小。

正确组织该驱动程序的好方法是什么?我应该创建platform_device驱动程序并在其中使用dmaengine吗?如何将数据从美国传递到DMA转接电话?我想比较mmup-memcpy和burst dma之间的性能。

linux-device-driver dma soc
1个回答
0
投票

因此,我不会结束本主题,因为可能会出现一些问题。目前,我知道主内存是在驱动程序内部分配的,该内存将由dma enigine控制,并且该内存应映射到用户空间的外部才能访问它。

© www.soinside.com 2019 - 2024. All rights reserved.