TI中文支持网
TI专业的中文技术问题搜集分享网站

c6678 与 host(linux) 通过pcie通信问题

各位:

 

     最近在研究多核dsp-c6678。大概了解dsp c6788和主机host之间是通过pcie进行数据交互。

我的疑问如下:

 

对于host to  dsp

 

1.

host端 如何把存在host的内存ddr中的数据发送给pcie。

2.

dsp端  如何从pcie获取数据,并存放到dsp的内存ddr上。

 

对于dsp to host

1.

dsp端,如何把dsp内存中的处理结果发送给pcie。

2.

host端, 如何从pcie上获取结果。并存放到host的主机内存中。

 

谁能讲讲这四个过程的大致原理。谢谢!

Andy Yin1:

主要是涉及到一个in-outboud地址转换,首先需要配置好地址转换关系。

每个设备内部有一段PCIe data memory,在out输出时,将数据写到PCIe data memory,PCIe硬件会对改地址段进行输出地址转换为PCIe总线地址,向外发送;对于接收端,接收到PCIe总线地址后,根据相应的inbout地址转换map转换成内部地址,然后PCIe会自动将接受的数据写到内部转换后的地址。

C6678 PCIe user guide中有相应的In-outbound地址转换说明。

Armstrong:

回复 Andy Yin1:

Andy Yin1

主要是涉及到一个in-outboud地址转换,首先需要配置好地址转换关系。

每个设备内部有一段PCIe data memory,在out输出时,将数据写到PCIe data memory,PCIe硬件会对改地址段进行输出地址转换为PCIe总线地址,向外发送;对于接收端,接收到PCIe总线地址后,根据相应的inbout地址转换map转换成内部地址,然后PCIe会自动将接受的数据写到内部转换后的地址。

C6678 PCIe user guide中有相应的In-outbound地址转换说明。

mike lee1:

回复 Andy Yin1:

Andy Yin1,您好

我是不是可以这么理解:device1的0x1230_0000映射到了device2的outbound region0(0x6000_0000),OB_SIZE=1MB,是不是就意味着0x1230_0000开始的1MB地址的内容都自动传输到了device2的region0?如果起始地址为0x1230_0000的1MB内存中内容有变化,那region0需要什么操作才会同步于起始地址为0x1230_0000的1MB中的内容呢?

谢谢!

dong zhang5:

楼主您好,我现在也在研究这个问题,想向您请教,方便加个联系方式吗

赞(0)
未经允许不得转载:TI中文支持网 » c6678 与 host(linux) 通过pcie通信问题
分享到: 更多 (0)