今天调试openBMC的时候遇到了一个小问题,在解决的过程中对BMC和phy之间的交互有了进一步的理解。
1、问题:进入openBMC系统,输入ifconfig,没有找到AST2500芯片所对应的网络适配器的端口。
2、解决过程:
(2)怀疑是phy芯片的配置信息的问题,AST2500芯片上有2个MAC,mac0没有使用,mac1下面挂了2个phy芯片。在BMC启动的时候按esc进入U-boot界面,输入mii device,查看目前控制MDIO总线的mac端口,将mac端口切换至正在使用的mac口,使用mii info address指令来查看对应address下的phy的配置信息,发现两个phy芯片的速率设置都没问题,并且也都开了自协商;
(2)查看BMC的启动log,发现其中有一条如下的提示:
ftgmac100 le680000.ethernet (unamed net_device) (uninitialized): eth%d: no PHY found
因此怀疑是因为BMC的mac下面没有找到phy芯片,从而导致BMC中的网络适配器初始化失败。但是刚才的一个步骤已经验证了phy已经正常工作了,且和BMC之间的MDIO链路是正常的。检查另一台ok的机器发现其phy芯片的地址是0x08和0x09,而出问题的机器的地址是0x00和0x09。查看原理图发现在原理图中是将phy的地址设计成了0x00,应该是之前同事调试的过程中发现了这个问题然后改成了0x08。
3、问题解决:通过rework,将phy的地址从0x00修改为0x08之后,BMC的开机log正常,不再提示no PHY found,并且ifconfig之后可以正常识别到网络