Edit online

测试指南

DMA 测试所需的测试环境如下:
  • 硬件:开发板,或 FPGA 板
  • 软件
    • PC 端的串口终端软件,用于 PC 和开发板进行串口通信

    • Linux 内核原生的 dmatest 模块

测试步骤如下所示:
  1. 配置软件
    dmatest 是 Linux 内核中原生的一个模块,在 luban 的根目录下通过 menuconfig,按如下选择:
    Linux
        Device Drivers
            [*] DMA Engine support
                 <*>   DMA Test client
    注: dmatest 模块test-dma 只限于测试 Mem To Mem 的数据传输操作。
  2. dmatest 测试
    dmatest 模块初始化成功后,会在 Sysfs 目录创建一些节点,测试过程就是通过这些节点配置参数、启动测试。
    [aic@] # cd /sys/module/dmatest/parameters/
    [aic@parameters] # ls
    alignment         max_channels      run               transfer_size
    channel           norandom          test_buf_size     verbose
    device            noverify          test_list         wait
    dmatest           polled            threads_per_chan  xor_sources
    iterations        pq_sources        timeout
    
    [aic@parameters] # echo 30 > iterations
    [aic@parameters] # echo 8 > max_channels
    [aic@parameters] # echo Y > polled
    [aic@parameters] # echo Y > run
    [  104.696480] dmatest: No channels configured, continue with any
    [  104.697377] dmatest: Added 1 threads using dma0chan2
    [  104.698061] dmatest: Added 1 threads using dma0chan3
    [  104.698695] dmatest: Added 1 threads using dma0chan4
    [  104.699334] dmatest: Added 1 threads using dma0chan5
    [  104.699964] dmatest: Added 1 threads using dma0chan6
    [  104.700599] dmatest: Added 1 threads using dma0chan7
    [  104.701248] dmatest: Added 1 threads using dma0chan8
    [  104.701883] dmatest: Added 1 threads using dma0chan9
    [  104.702328] dmatest: Started 1 threads using dma0chan2
    [  104.702776] dmatest: Started 1 threads using dma0chan3
    [  104.703223] dmatest: Started 1 threads using dma0chan4
    [  104.703671] dmatest: Started 1 threads using dma0chan5
    [  104.704118] dmatest: Started 1 threads using dma0chan6
    [  104.704564] dmatest: Started 1 threads using dma0chan7
    [  104.705011] dmatest: Started 1 threads using dma0chan8
    [  104.705457] dmatest: Started 1 threads using dma0chan9
    [  105.006038] dmatest: dma0chan4-copy0: summary 30 tests, 0 failures 106.28 iops 836 KB/s (0)
    [  105.306046] dmatest: dma0chan2-copy0: summary 30 tests, 0 failures 106.58 iops 884 KB/s (0)
    [  105.606055] dmatest: dma0chan3-copy0: summary 30 tests, 0 failures 106.60 iops 1044 KB/s (0)
    [  105.906057] dmatest: dma0chan5-copy0: summary 30 tests, 0 failures 106.59 iops 835 KB/s (0)
    [  106.206050] dmatest: dma0chan6-copy0: summary 30 tests, 0 failures 106.59 iops 792 KB/s (0)
    [  106.506034] dmatest: dma0chan7-copy0: summary 30 tests, 0 failures 106.61 iops 856 KB/s (0)
    [  106.806048] dmatest: dma0chan8-copy0: summary 30 tests, 0 failures 107.64 iops 843 KB/s (0)
    [  107.106044] dmatest: dma0chan9-copy0: summary 30 tests, 0 failures 106.81 iops 993 KB/s (0)