查看: 132|回复: 4

3520DV300-uboot网络不通(加载kernel后是通的)

[复制链接]
发表于 2019-5-15 17:38:09 | 显示全部楼层 |阅读模式
网上淘的一块3520DV300板子,开机进uboot后,ping不通网络;等加载kernel,进系统后,网络是通的,这个时候,如果:
1,执行reboot,然后进uboot里面, 可以ping通网络; (mii read 2 1是0x780d)
2.  直接断电,重新上电,进uboot,ping不通网络;(mii read 2 1的结果是0x7809)
ping不通的时候,提示ETH0: PHY(phyaddr=2, rgmii) not link!, mii 可以读到网口的ID: 0x7C0F1, 也能读到当前status确实是link down
请问问题出在哪呢?
 楼主| 发表于 2019-5-15 18:47:30 | 显示全部楼层
个人感觉是,kernel里面GMAC的驱动,做了uboot里面没做的操作,所以当reboot进uboot的时候,网口可以使用,但是断电进uboot的时候,应该是uboot的GMAC驱动还有问题,所以网口用不了;
但kernel里面的GMAC驱动具体干嘛了,没怎么看懂
 楼主| 发表于 2019-5-15 19:52:20 | 显示全部楼层
又跟踪了一下,不能说是加载kerlnel后reboot进uboot,网络是通的; 应该是:
必须加载文件系统后,执行ifconfig eth0 up; 然后reboot进uboot,网络是通的,如果不up,reboot进uboot网络还是不通;  注意的是,如果先up再down,再reboot,uboot的网络也是通的;
也就是说,弄清楚 eth0 up的时候,内核干嘛了,这个问题也许就能解了
 楼主| 发表于 2019-5-16 09:46:18 | 显示全部楼层
终于搞定了!虽然没弄懂原因,至少找到了一个解决办法:phy改为自动协商方式---mii write 2 0 0x3100(先read一下,我的phy是2,都出来0寄存器的值是2100,然后打开bit12)
但是进uboot直接用mii提示NULL device name,先ping一下,才能mii,这个也没搞懂为什么要先ping或者tftp才能出device name;
至于关掉自动协商,为什么会出现我最开始提到的问题,哪位大神如果能找到解决办法,麻烦告知一下
 楼主| 发表于 2019-5-16 11:27:33 | 显示全部楼层
本帖最后由 qn1557912141 于 2019-5-16 11:30 编辑

跟踪了一下为什么进uboot直接mii会提示NULL device name,是因为网口初始化只会在ping或者其他网络请求的时候发生;所以我直接放在higma_init里面的phy_fixup函数去mii write,这样上电进uboot就可以ping通网络了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

© 2008-2017 当前位置 易百纳技术社区论坛 返回 易百纳技术社区 ( 苏ICP备14036084 )   Powered by Discuz! X3.1
快速回复 返回顶部 返回列表