IDT TSI721桥片VxWorks驱动开发

tsi721

Tsi721作为一个PCIe设备挂接在AMD780桥片上。具有6个BAR地址空间。BAR0用于访问Tsi721内部寄存器空间,BAR1作为Outbound doorbell地址空间,BAR2/BAR3组合为64位地址空间作为可预取的PCIe到S-RIO地址命中转换空间,BAR4/BAR5组合为64位地址空间作为不可预取的PCIe到S-RIO地址命中转换空间。

Tsi721包含PCIe接口、S-RIO接口、消息引擎、映射引擎以及块DMA引擎等几个主要功能块。

Tsi721通过PCIe接口经AMD780桥片与CPU联接。S-RIO接口经1848上RapidIO网络。

消息引擎实现PCIe接口与S-RIO接口之间的消息通信。包含8路Outbound Message DMA通道和8路Inbound Message DMA通道。Outbound Message DMA通道实现Tsi721主控发送消息,Mailbox可以为0、1、2、3,消息中传送的数据最大可达4KB。Inbound Message DMA通道实现消息接收,每个Mailbox分配两路DMA通道,一路用于ID不匹配的消息接收,一路用于ID匹配的消息接收,每路接收通道包含16个接收上下文,可以用于同时接收多个消息源。

映射引擎实现PCIe接口到S-RIO接口地址转换(PC2SR)和S-RIO接口到PCIe接口地址转换(SR2PC)。PC2SR包含8个本地地址映射窗,每个地址窗包含8个域,可以将地址窗空间转换为8个RapidIO地址段。CPU主控发起PCIe读写操作在BAR2/BAR3或BAR4/BAR5空间内,由该地址窗命中并转换为相应RapidIO地址的RapidIO数据包,实现CPU主控RapidIO数据包或维护包读写。SR2PC包含8个Inbound地址窗和8个Inbound doorbell接收队列。Inbound地址窗用于接收RapidIO读写访问,将命中的RapidIO地址转换为本地地址的PCIe访问。Inbound doorbell接收队列用于接收ID匹配的doorbell。

块DMA引擎实现DMA方式发起数据包或维护包的读写访问。包含8个DMA通道,每个DMA通道均以链式描述符的方式工作,用于主控发起RapidIO读写操作。