0

我正在尝试使用 DMA 对连接到 OMAP-L138 的 SPI 总线的 FPGA 进行编程,但没有成功。

目前,我正在使用 linux 3.19 附带的库存 davinci-spi 驱动程序 (drivers/spi/spi-davinci.c)。FPGA 配置成功(未启用 DMA),但速度很慢。我正在使用设备树来配置 SPI 接口。

我想使用 DMA 来提高性能,但是通过查看 spi-davinci.c 源代码及其设备树绑定,驱动程序在配置设备树时似乎不支持 DMA。我的理解正确吗?如果是这样,在使用设备树的同时,是否有计划支持使用 davinci 的 SPI 驱动程序进行 DMA 传输?

4

1 回答 1

0

以下是实现目标的一些指导方针:

首先,检查 SPI 是否有自己的 DMA 引擎。如果没有,可能是板上有一个通用的 DMA 控制器。您可以通过查看 SPI 数据表并查看板互连原理图来检查这一点。

如果以上都不是,那么您不能将 DMA 与 SPI 一起使用。

如果 SPI 有自己的 DMA,则需要为此编写驱动程序。如果板上有 DMA,它可能已被其他组件使用,请搜索该特定设备的 dma_dngine 驱动程序。然后,您需要为该特定 DMA 引擎创建一个 DMA 客户端。

请阅读:

DMA 提供程序

DMA 客户端

祝你好运

于 2015-12-03T03:29:38.377 回答