问题背景:有LS1046A开发板的客户反馈在系统中找不到fm1-mac10的网络节点,ifconfig -a也看不到,但是经过排查最底层设备树中已注册该节点并且相应PHY芯片设备注册也正常,后来查看环境变量是因为该节点没有分配到mac地址导致的,下面是整个排查思路,后续ls系列遇到类似问题或者其他平台也可参考 1.在uboot阶段中执行printenv查看环境变量,查看在mdio总线上注册的网卡设备以及被分配到的mac地址。 注册设备的代码具体位置在: OK10xx-linux-fs/flexbuild/packages/firmware/OK10xx-linux-uboot/board/freescale/ls1046ardb/eth.c(下面截图是注册万兆光口的部分代码,底板SGMII等网卡的注册在此部分代码的下面几行位置,在uboot阶段当mdio总线扫描到有几个网卡设备注册就会分配几个mac地址如第一张截图) 2. 在客户开发板的内核阶段使用dmesg命令查看打印信息时: 通过查找设备树文件(fsl-ok1046a-1133-5a59-c2.dts)中的时钟基地址:“f2000”查看到内核打印信息显示万兆网口mac10没有分配到mac地址。所以才导致您ifconfig -a都看不到fm1-mac10的节点 内核阶段如何给这些网卡设备分配mac地址在源码的位置在: OK10xx-linux-fs/flexbuild/packages/linux/linux/drivers/net/ethernet/freescale/fman/mac.c(具体行数在726-733行,851行-868行,有兴趣可以自行研究这里不做过多解释) 3、应用到的解决方法: 按此顺序顺延fm1-mac10为eth5addr 在uboot阶段中直接手动给fm1-mac10分配mac地址: 4、执行完毕后运行saveenv保存环境变量,reset或者断电重启查看已有fm1-mac10网络节点 |
|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )
GMT+8, 2024-11-22 11:51
Powered by Discuz! X3.4
© 2001-2013 Comsenz Inc.