Quantcast
Channel: 数字信号处理器 (DSP) & ARM® 微处理器
Viewing all articles
Browse latest Browse all 21822

帖子: RE: 多片C6678通过PCIE switch互联时,有多个方面的表现与PCIE协议及芯片手册表述不一致

$
0
0

[quote user="Zhengdong Li"]

各位工程师好,

       我目前在使用C6678通过PCIE switch——PLX8648进行互联通信,发现C6678在多个方面与PCIE协议不一致,导致后续工作无法开展,请教一下各位工程师:

      4片C6678,DSP0~DSP3分别连接到switch的0~3口,且0口作为上游端口,DSP0作为RC

     1)PCIE协议标准上指出,总线号、功能号都为0的设备是RC内部的虚拟桥,也就是DSP0本身,而switch的上下游端口的总线号分别为1和2;但是实际发现,DSP0作为RC,通过总线号和设备号都为0进行ID路由,访问到的却是switch的0口,通过总线号为1,访问到的是switch的各下游口,通过总线号2,3, 4,访问到的是与下游口相连的各个EP;

    2)pcie协议标准及switch芯片手册均指出,访问中间桥也就是switch的各个上下游口时,CFG_SETUP中的type域为1,访问EP是,type域为0;但是实际上,通过type=0,访问到的永远是switch的上游端口,而对下游端口及EP访问时,要用到type=1.

   3)还是第一个问题所致,使用switch的非透明模式允许一个系统中存在两个RC,我将switch的1口改为非透明口,这样它接的DSP1就可以作为第二个RC即RC2使用。但是非透明口使用时,必须把能够访问它的设备的总线号、设备号放到一个查找表中。switch的芯片手册与PCIE协议标准一致,它指出,与非透明口直连的RC,其设备号、总线号均为0,由于RC2能够访问1口,那么也就是要把查找表中的内容设置为(bus, device)=(0, 0)。但是跟问题1)里面一样,使用6678作为RC,它又把这个非透明口认为是(0, 0),所以查找表中再设置(0,0)是错误的。

      请问各位工程师,这几个问题是否有解决的办法,是否6678里面的配置我给搞错了,导致了上述问题的存在?有没有哪位遇到过我所描述的这些现象?谢谢大家

 

[/quote]您好,请教您一个问题,我也是用4片dsp通过switch连接,现在我配置RC的远端设备配置寄存器空间能访问到switch的配置空间,我将switch的BAR0寄存器的值设成一个0xD0000000,希望通过该地址能配置port口寄存器,可现在问题是配置好以后在该地址看到的不是寄存器的值,而是此地址之前放的值,您能指导一下我该怎么检查或者配置其他的寄存器么?


Viewing all articles
Browse latest Browse all 21822

Trending Articles