欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Zynq linux加载axi_dma驱动报错 axidma: axidma_dma.c: axidma_request_channels: 651: Unable to get slave chan

程序员文章站 2022-07-03 11:00:22
...

Xilinx SDK 2018.3 Linux版本

建立bsp项目,经过编译,生成system-top.dts,pl.dsti文件等,编译好axi-dma驱动后加载出现如下错误

axidma: axidma_dma.c: axidma_request_channels: 651: Unable to get slave channel 0: tx_channel.

Zynq linux加载axi_dma驱动报错 axidma: axidma_dma.c: axidma_request_channels: 651: Unable to get slave chan

提示找不到dma驱动的slave channel

经过煎熬的观察,发现生成的pl.dsti中,dma有bug如下图,生成的时钟有问题,其中clock-names应该用","区分

Zynq linux加载axi_dma驱动报错 axidma: axidma_dma.c: axidma_request_channels: 651: Unable to get slave chan

应该改如下所示,这四个始终分别为axi_lite时钟,dma的Scatter Gather Engine时钟,dma的master和slave时钟

Zynq linux加载axi_dma驱动报错 axidma: axidma_dma.c: axidma_request_channels: 651: Unable to get slave chan

重新编译uboot后加载,还是失败

再仔细确认后发现,少了一个中断信号

Zynq linux加载axi_dma驱动报错 axidma: axidma_dma.c: axidma_request_channels: 651: Unable to get slave chan

检查下PL端布局,加上了concat模块,两个中断线接入到软核的中断

Zynq linux加载axi_dma驱动报错 axidma: axidma_dma.c: axidma_request_channels: 651: Unable to get slave chan

重新编译,再次导入bit工程编译uboot,生成dts,显示到了两个中断信号

Zynq linux加载axi_dma驱动报错 axidma: axidma_dma.c: axidma_request_channels: 651: Unable to get slave chan

更新下UBOOT.bin和devicetree.dtb,加载axi_amd.ko驱动,解决问题

Zynq linux加载axi_dma驱动报错 axidma: axidma_dma.c: axidma_request_channels: 651: Unable to get slave chan

相关标签: 硬件 嵌入式