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

C6670 SRIO配置为4x,但检测为1x

两片DSP C6670通过SRIO交换机相连,在SRIO初始化阶段将你配置为4x模式,对应的寄存器PLM_SP(0)_PATH_CTL(偏移地址0x1B0B0)的值是0x404.

但是寄存器SP(n)_CTL(偏移地址0xB15C)的值有时为0xD0600001(该值表示为4x模式),有时初始化后则是0xC0600001(该值表示为1x模式)

当为0xC0600001时,我们发送LM_REQ,检查到LM_RESP对应的值为0x10,表示端口正常。

同时我们在检查到不是4x模式后,再次重新对DSP SRIO进行初始化,但始终都是1x模式。

请问:以上现象可能啥原因造成的,如何解决?DSP SRIO最终的4x/1x模式由什么决定?

Kevin Cai:

Hi, 您好!

在下面的链接中,有我们的SRIO例程,包括1X, 2X, 4X模式的配置。

模式的配置是在KeyStone_SRIO_set_1x2x4x_Path函数中做的, 具体模式由srio_cfg->srio_1x2x4x_path_control变量决定

http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/47664.aspx

建议一种方法是直接用例程中的代码; 另一种方法是比较两个代码对寄存器的配置的区别(通过比较寄存器的值)、

供您参考,谢谢! 

armywoods liu:

回复 Kevin Cai:

你好,我当前配置就是参考函数KeyStone_SRIO_set_1x2x4x_Path来进行的

现在的问题并不是完全配置不成功,而是有时配置后再读取相关反馈寄存器发现最终是4x模式;

但有时配置后再读取相关反馈寄存器发现最终并不是4x模式,此时再次初始化DSP的SRIO也没有效果

Kevin Cai:

回复 armywoods liu:

Hi, 您好!

这可能跟对端(switch)SRIO状态有关,方便的话可以看下出错时DSP端 LANEn_STAT0 和 LANEn Status 1 CSR寄存器

比如在LANEn Status 1 CSR寄存器中, 可以看到:

LP_WIDTH: 对端是几个LANE的模式

LP_LANE_NUM:当前DSP的这个 LANE是跟对端的哪个LANE连接

LP_TAP_M1/LP_TAP_P1:对端LANE的状态

另外请问一下这个问题是只在一个板上出现 还是在多个板上都有出现?

谢谢

 

armywoods liu:

回复 Kevin Cai:

hi,Kevin

你意思是Dsp这几个寄存器的值对应的是对端的情况?

我比较了两种情况下SRIO寄存器的情况,STAT0确实不一样,见附件照片

当前只有两块板,现象一样

Kevin Cai:

回复 armywoods liu:

Hi, 您好

1。链路状态不对(STAT0 中 RX_SYNC错), 检查一下对端(switch)的状态 ,STAT1 的值图片中没有; 另外从寄存器看,收到很多错误包, 见SPx_ERR_DET寄存器;

2。同一份代码执行后SPx_RATE_EN的值应该一样,但是图片中不一样,用的是两份代码吗?

谢谢!

 

 

armywoods liu:

回复 Kevin Cai:

图片是同一份代码一个配置为4x成功,另一个配置为4x检测结果为1x两种情况导出所有寄存器比较不一致的地方

没有STAT1则说明两种情况STAT1寄存器的值是一样的

所以第二个问题我也不知道为啥,但我可以回答你肯定是同一份代码,在同一个DSP上跑两次的结果

赞(0)
未经允许不得转载:TI中文支持网 » C6670 SRIO配置为4x,但检测为1x
分享到: 更多 (0)