用于 IDT Tsi721 PCI Express 到 SRIO 桥的 RapidIO 子系统 mport 驱动程序。

1. 概述

此驱动程序实现所有当前定义的 RapidIO mport 回调函数。它支持维护读取和写入操作、入站和出站 RapidIO 门铃、入站维护端口写入和 RapidIO 消息传递。

为了生成 SRIO 维护事务,此驱动程序使用 Tsi721 DMA 通道之一。此机制提供对更大范围的跳数和目标 ID 的访问,而无需更改出站窗口转换。

RapidIO 消息传递支持为每个邮箱使用专用的消息传递通道。对于入站消息,此驱动程序使用目标 ID 匹配将消息转发到相应的消息队列。消息传递回调的实现与 RIONET 驱动程序(通过 RapidIO 消息传递服务的以太网)完全兼容。

  1. 模块参数

  • “dbg_level”
    • 此参数允许控制此设备驱动程序生成的调试信息量。此参数由对应于特定功能块的位掩码集形成。有关掩码定义,请参阅“drivers/rapidio/devices/tsi721.h”。此参数可以动态更改。使用 CONFIG_RAPIDIO_DEBUG=y 在顶层启用调试输出。

  • “dma_desc_per_channel”
    • 此参数定义为每个注册的 Tsi721 DMA 通道分配的硬件缓冲区描述符的数量。其默认值为 128。

  • “dma_txqueue_sz”
    • DMA 事务队列大小。定义每个 DMA 通道可以接受的挂起事务请求的数量。默认值为 16。

  • “dma_sel”
    • DMA 通道选择掩码。定义哪些硬件 DMA 通道(0 ... 6)将使用 DmaEngine 内核注册的位掩码。如果位设置为 1,则将注册相应的 DMA 通道。此设备驱动程序将不使用此掩码未选择的 DMA 通道。默认值为 0x7f(使用所有通道)。

  • “pcie_mrrs”
    • 覆盖 PCIe 最大读取请求大小 (MRRS) 的值。此参数提供覆盖在 PCIe 配置过程中设置的 MRRS 值的能力。Tsi721 支持高达 4096B 的读取请求大小。此参数的值必须按照 PCIe 规范定义设置:0 = 128B,1 = 256B,2 = 512B,3 = 1024B,4 = 2048B 和 5 = 4096B。默认值为“-1”(= 保留平台设置)。

  • “mbox_sel”
    • RIO 消息传递 MBOX 选择掩码。这是一个位掩码,定义了此设备驱动程序管理的哪些消息传递 MBOX。掩码位 0 - 3 对应于 MBOX0 - MBOX3。如果相应的位设置为“1”,则 MBOX 处于驱动程序的控制之下。默认值为 0x0f(= 全部)。

2. 已知问题

无。

3. DMA 引擎支持

Tsi721 mport 驱动程序支持本地系统内存和远程 RapidIO 设备之间的 DMA 数据传输。此功能按照通用 Linux 内核 DMA 引擎框架定义的 SLAVE 模式 API 实现。

根据系统要求,可以通过设置 CONFIG_RAPIDIO_DMA_ENGINE 选项来包含/排除 RapidIO DMA 操作。Tsi721 miniport 驱动程序使用八个可用 BDMA 通道中的七个来支持 DMA 数据传输。保留一个 BDMA 通道用于生成维护读取/写入请求。

如果已构建 Tsi721 mport 驱动程序,并包含 RAPIDIO_DMA_ENGINE 支持,则此驱动程序将接受 DMA 特定模块参数

“dma_desc_per_channel”
  • 定义 Tsi721 的每个 BDMA 通道使用的硬件缓冲区描述符的数量(默认情况下为 128)。

  1. 版本历史

1.1.0

DMA 操作经过重新处理,以支持大于硬件缓冲区描述符环的数据散布/收集列表。

1.0.0

初始驱动程序发布。

5. 许可证

版权所有 (c) 2011 Integrated Device Technology, Inc. 保留所有权利。

本程序是自由软件;您可以根据自由软件基金会发布的 GNU 通用公共许可证的条款重新分发和/或修改它;无论是许可证的第 2 版,还是(由您选择)任何更高版本。

分发本程序的目的是希望它有用,但不提供任何保证;甚至没有对适销性或特定用途适用性的暗示保证。有关更多详细信息,请参阅 GNU 通用公共许可证。

您应该已经收到了随本程序一起提供的 GNU 通用公共许可证副本;如果没有,请写信给自由软件基金会,地址为:59 Temple Place - Suite 330, Boston, MA 02111-1307, USA。