自己根据开发板设计的板卡,两片DSP,一片phy,一片16端口sgmii switch的bcm5396芯片。
两片dsp的sgmii 0都结在bcm5396上,phy芯片是88e1111,也通过sgmii接到bcm上
phy芯片的配置是 自协商,1000M fullduplex
bcm5396不知道怎么配置。
phy芯片和bcm5396均可以单独配置。
现有以下问题:
1.每个dsp都跑完了 ge例程上的internal test都能跑完,现在想测试外部通信,两个
dsp之间通信都需要改什么配置?例程给的说明文件是做的sgmii1口的,看网上说sgmii0例程不支持?
2.在单个dsp上测试ge test serdes loopback时,phy芯片连接rj45到电脑上,电脑通过抓包工具能够收到数据包
这是正常的吗?自己分析是因为连到了bcm上,因为没有配置bcm端口,所以数据包被广播了,因此在pc端能收到!
不知分析的对否?
3.可不可以不用配置5396,让每个dsp之间完成数据收发之后,5396是不是就会自动记住端口呢?
Thomas Yang1:
1 请参考STK中2片DSP对通测试的例子
2 您可以看看到抓到的包头是不是广播地址
3 一般来说switch都有学习功能的,会通过MAC地址和PORT端口映射进行学习和更新路由表,具体操作您要咨询BCM5396的供应商
q zhao:
回复 Thomas Yang1:
谢谢您的回答,我现在硬件是sgmii0连出来了,sgmii1没有使用。看文档上讲externalfifoloopback是用的sgmii0端口,您说的通是这两个通吗?我能不能用sgmii0口也实现 dsp0_to_dsp1的测试呢?需要把Port_connect改掉吗?
q zhao:
回复 q zhao:
我的板子上的SGMII的参考时钟是156.25MHZ,PASSCLK是100MHZ,这个需要重新设置吗?
两片DSP 对通的列子是 走的SGMII 1口啊,也就是内部的SWITCH PORT2口,需要怎么修改成SGMII 0呢?
Thomas Yang1:
回复 q zhao:
驱动中SGMII CLK是需要根据板子实际参考时钟(156.25M)做倍频的,看看你驱动中是怎么配的吧
可以用这个方法修改端口:
CPU 把packet push到tx queue 比如 queue 648,并且设置Tx descriptor的ps_flag = 1,表示把这个packet直接发送到GbE switch port1,也就是SGMII port 0
q zhao:
回复 Thomas Yang1:
谢谢您的回答