参考
Petalinux2020.2 开发ZYNQ的AXI DMA.zhihu
xilinx_axidma.github
改后代码
xilinx_axidma.gitee
设备树
pl.dtsi
petalinux自动生成的
/home/minglie/petalinux/antdma/components/plnx_workspace/device-tree/device-tree
/* * CAUTION: Thisfileis automatically generated by Xilinx. * Version: * Today is: Tue Jul2116:48:142026*/ /{amba_pl: amba_pl{#address-cells = <1>;#size-cells = <1>;compatible="simple-bus";ranges;axi_dma_0: dma@40400000{#dma-cells = <1>;clock-names="s_axi_lite_aclk","m_axi_mm2s_aclk","m_axi_s2mm_aclk";clocks=<&clkc15>,<&clkc15>,<&clkc15>;compatible="xlnx,axi-dma-7.1","xlnx,axi-dma-1.00.a";interrupt-names="mm2s_introut","s2mm_introut";interrupt-parent=<&intc>;interrupts=<02940304>;reg=<0x40400000 0x10000>;xlnx,addrwidth=<0x20>;xlnx,sg-length-width=<0xe>;dma-channel@40400000{compatible="xlnx,axi-dma-mm2s-channel";dma-channels=<0x1>;interrupts=<0294>;xlnx,datawidth=<0x40>;xlnx,device-id=<0x0>;};dma-channel@40400030{compatible="xlnx,axi-dma-s2mm-channel";dma-channels=<0x1>;interrupts=<0304>;xlnx,datawidth=<0x40>;xlnx,device-id=<0x0>;};};};};system-user.dtsi
用户覆盖的
antdma/project-spec/meta-user/recipes-bsp/device-tree/files
/include/"system-conf.dtsi"/{};&amba_pl{axidma_chrdev: axidma_chrdev@0{compatible="xlnx,axidma-chrdev";dmas=<&axi_dma_00&axi_dma_01>;dma-names="tx_channel","rx_channel";};};&axi_dma_0{dma-channel@40400000{xlnx,device-id=<0x0>;};dma-channel@40400030{xlnx,device-id=<0x1>;};};编译驱动
makeKBUILD_DIR=/home/minglie/workspace/kernel-driver/linux-xlnx-xlnx_rebase_v5.4_2020.2 build编译app
makeexamplesBD
简单回环测试
qq_ant_axi_dma_system.tcl
地址映射
| 模块路径 | 接口名称 | 端口类型 | 内存范围 (Range) | 基地址 (Base Address) | 结束地址 (End Address) |
|---|---|---|---|---|---|
/axi_dma_0/Data_MM2S | processing_system7_0/S_AXI_HP0 | S_AXI_HP0 | 512M | 0x0000_0000 | 0x1FFF_FFFF |
/axi_dma_0/Data_S2MM | processing_system7_0/S_AXI_HP0 | S_AXI_HP0 | 512M | 0x0000_0000 | 0x1FFF_FFFF |
/processing_system7_0/Data | /axi_dma_0/S_AXI_LITE | S_AXI_LITE | 64K | 0x4040_0000 | 0x4040_FFFF |
测试
# 1. 生成 4KB 的随机测试文件ddif=/dev/urandomof=4k.binbs=4Kcount=1# 2. 运行 DMA 传输./axidma_transfer-t0-r14k.bin out_4k.bin# 3. 校验 MD5md5sum 4k.bin out_4k.bin 5cf6cbb7256f239283d47a1e9eb73c26 4k.bin 5cf6cbb7256f239283d47a1e9eb73c26 out_4k.bin# 比较两个文件差异cmp-l1m.bin out_1m.bin|head-n10