bcm54xx系列phy光口电口的配置方法

1.芯片型号及平台

BCM54XX是博通公司的一个系列的PHY芯片,我这里是BCM54616

芯片所在平台为zynq7000系列的自制ZC7045板卡,要支持两路网卡,一路光口一路电口


2.问题

电口的配置,大同小异,不管是哪一个Phy芯片,主要就是以下寄存器:

Auto-negotiation advertisement register

1000BASE-T control register

Control register

一般就是设置速率,自协商,然后读取协商状态和link状态,可能需要注意的就是扩展寄存器的读写方法,有的是通过22号寄存器,有的是自己特有的方式,这个需要阅读手册。

现在在配置千兆光口的时候,总是出问题,怎么配置都无法达到千兆光口的速率,乍一看博通的手册,都看不出支持千兆光口,如下:

一度使得我的配置陷入了僵局。


3.解决办法

其实这个很简单,写在这里也是方便以后遇到这个芯片的朋友注意下,BCM54616的寄存器组当中有一个0X1C号寄存器如下:

这是个影子寄存器,意思就是说,一个寄存器根据指定位写入的数值不同,可以切换到不同的寄存器模式,这里有一个Mode control register


在最后这几位可以看到选择phy芯片的工作模式,这里

0位置1,选择1000-x register 00-0FH

2:1位为[0:1],选择RGMII TO fiber,外部我们连接的是光纤,然后由光纤接到光纤收发器上去

这样配置之后,其实前面的寄存器组就变成了光口的寄存器组,但是不能参照前面电口的00-0F的寄存器,要在手册的后面

有个serdes register descripter,在这里有对光口寄存器的描述,如下图:

其实打开看一下,第0x00号寄存器,乍一看和电口的一样的,仔细对比下发现还是有一些差别,这就导致如果你按照电口的地址和位去配置光口,注定是不会成功的,对比如下:

左边为光口右边为电口:

能够找到光口配置的入口已经对应的配置寄存器组,其实就成功了,剩下的对着手册一步步配置即可。


吐槽下,博通这个datasheet真的写的不敢恭维。。。

猜你喜欢

转载自blog.csdn.net/Deep_l_zh/article/details/80613074