取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
stone_stone
Explorer
Explorer
386 次查看
注册日期: ‎10-22-2019

zynq7000平台,在linux下,如何手动开启axidma的cache功能

zynq7000平台,在linux下,想开启dma的cache功能,提高缓冲区的读取数据的效率,如何手动开启axidma的cache功能?有相关接口参考吗?谢谢!

0 项奖励
2 回复数
yzhang
Moderator
Moderator
336 次查看
注册日期: ‎05-11-2010

Zynq-7000平台的HP接口不具有hardware cache coherent功能,ACP接口有这个功能,下面这个wiki页面提到了部分dma在linux使用acp接口的事情,acp接口速率不能太快,否则可能会有系统问题。

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842418/Linux+DMA+From+User+Space

另外,ACP接口的cache功能对axi总线某些信号有要求。如下,

Description

ACP cache coherent read access need ARUSER[0]=1 and ARCACHE[1]=1. ACP cache coherent write access need AWUSER[0]=1 and AWCACHE[1]=1.

However, many IPs master port has no ARUSER and AWUSER ports, so it cant generate cache coherent access to ACP port.

Solution:

There are two solutions: 
                 1. connecting the ARUSER and AWUSER ports to vcc in processing_system7 instance.
 
                 2. Turn on the ACP option "use slave driven AxUSER values" and the processing system will automatically drive the signals high.
0 项奖励
stone_stone
Explorer
Explorer
184 次查看
注册日期: ‎10-22-2019

你好!我在https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842418/Linux+DMA+From+User+Space 的2.1章节上看到了这句话:

Zynq 7K is s/w coherent when using the HP ports  and hardware coherent when using the ACP port.

也就是说如果用的是HP接口,也是可以通过软件手段实现一致性的,目前我用的是Linux平台,不知有没有相关接口推荐?

谢谢!

0 项奖励