linux下ifconfig没有网络适配器

今天调试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之后可以正常识别到网络适配器。

4、总结:这个小问题让我进一步理解了从BMC的mac端到RJ45整个链路的工作过程。

BMC ==> PHY ==> switch ==> PHY ==> RJ45

如上面一个简图所示,BMC的mac端口首先通过RGMII连接到PHY卡上,然后phy芯片上可以出MDI信号也可以出SGMII,在我们的架构中连接BMC的PHY芯片出一路SGMII信号到switch上面,然后通过switch接出到输出端的PHY芯片上,此PHY芯片通过RJ45对外输出MDI。

在这个链路中两个PHY的管理口都是通过MDIO挂在BMC的mac1下面的,因此在u-boot当中使用mii device的时候会扫出来两个设备。并且该设备的地址正确与否也会影响到BMC的网络适配器的初始化,如果无法识别到phy芯片的话就无法初始化成功。

 

 

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值