注:该工程需要使用6.0以上的新版TD
1. 工程说明
SGDMA是一个 PCIe2AXI4 系列接口的高性能DMA。样例工程包含两个模块,sgdma_subsys模块和sgdma_app模块,其中sgdma_subsys模块是实现了PCIe DMA子系统和PCIe to AXI系列接口转化的模块,sgdma_app模块是用于测试的app模块。DMA子系统框图如下所示:
DMA模块的端口描述如下:
app_auxclk | 输入 | 提供给PCIe硬核的常在辅助时钟,时钟频率为25MHZ或50MHZ |
user_clk | 输出 | PCIe core时钟,用于驱动用户接口 |
app_power_up_rst_n | 输入 | PCIe core输入复位,当前连接到金手指的复位信号上 |
user_resetn | 输入 | PCIe core输出用户复位,低电平有效 |
| | |
user_link_up | 输出 | PCIe core link up信号 |
ltssm_state | 输出 | PCIe core ltssm状态机信号 |
| | |
m_axis* | | AXI_ST master接口 |
s_axis_* | | AXI_ST slave接口 |
cfg_mgmt* | | 读写PCIe控制器配置空间 |
m_axil_* | | AXI_lite master接口,读写user寄存器 |
s_axil_* | | AXI_lite slave接口,读写dma寄存器 |
2. 上板测试说明
该PCIE需要在Linux上位机中测试,推荐使用Ubuntu 20.04或其它较新的Linux发行版,否则可能存在一些软件编译问题。将PH1a开发板烧录完成并接入主板,确保在上位机启动前烧录bit流。如果在烧录PH1a之后再重启电脑,切记先关机再开机,而不是重启,否则主板可能不检测新的PCIe设备。
启动系统后在终端lspci查询PCIe设备,能见到类似列表。寻找设备RAM memory device (默认的设备号是1ebd:abcd)。
获得root权限,进入到anlogic_pcie_drv目录,执行make进行编译,然后执行insmod anlogic_pci.ko安装驱动
进入到anlogic_pcie_app/src目录,使用make编译用户函数
进入到anlogic_pcie_app/script目录,使用命令./chmod +x *给目录中所有文件可执行权限。
在anlogic_pcie_app/script目录下,是用命令./complex_test.sh进行功能测试。上位机软件画面如下:
不同项目的功能分别为:
Performance test for c2h: 用于 C2H 方向测速。
Performance test for h2c:用于 H2C 方向测速。
One-way transmission for c2h: 用于测试 C2H 方向数据传输。
One-way transmission for h2c: 用于测试 H2C 方向数据传输。
Lookback test: 用于数据环回测试。