uboot 网络不通问题解决一例1
平台:Hi3531
PHY:RTL8211
现象:在uboot中执行ping命令的时候,总是超时。
过程:
使用uboot自带的phy操作命令mii读出的数据全是0xff。这里要介绍一下uboot中的phy寄存器操作命令mii。
关于uboot中的mii命令可以参见common/cmd_mii.c。
注意:在使用mii命令之前应该执行一次ping或者其他的会发生联网动作的命令(如tftp、dhcp)。

使用范例:
mii write 0 0 0x8000 向地址为0的phy芯片的0寄存器写入0x8000
mii read 0 0 读取地址为0的phy芯片的寄存器0的值
mii dump 0 0 读取地址为0的phy芯片的寄存器0的值。结果更具可读性:

mii dump 0 1 读取地址为0的phy芯片的寄存器1的值。结果更具可读性:

接着上面的内容:
由于对uboot代码不是很熟,刚开始走了些弯路,直接去分析uboot代码了,因为这个版本的硬件跟上一个没什么区别,使用的也是同一款phy芯片。然后有分析了是不是3531与rtl8211的接口工作模式不对(支持RGMII和MII,实际使用的是RGMII),是不是与RGMII接口相关的管脚复用功能出错,是不是phy芯片的地址有问题(phy的地址是设计PCB板子的时候定死的),是不是RGMII的接口错了(我的意思是:因为3531支持两个GMAC,所以有RGMII0和RGMII1,实际使用的是RGMII0),是不是没有有效的芯片复位。
经过一番折腾,最后发现时3531配置rtl8211是使用的MDIO的管脚在修改硬件时忘记去掉了下拉电阻。具体情况是这个样子:
3531的BOOTROMSEL和MDCK是复用的,刚开始BOOTROM_SEL是接了一个4.7k的电阻接地的,这种情况下不支持从fastboot启动,为了调试方便,需要从fastbot启动,需要将BOOTROM_SEL拉高,所以又在BOOTROM_SEL引脚上焊了一个0欧姆的电阻接到VCC3.3上,而没有去掉那个4.7K的下拉电阻。这种情况他下可能导致MDCK的时钟信号不正常。
解决办法: 将那个4.7k的下拉电阻去掉,焊到刚才那个0欧姆电阻的位置上。
所以以后如果遇到在芯片基本没动的情况下遇到的问题,最好先确认一下是不是硬件的问题(如地址、接口),如果刚开始就用示波器量一下MDCK的波形是不是正常就不是走弯路了。
在用mii命令读phy寄存器时,如果读到的全是ff,可能的问题:phy的地址、mdio接口。
uboot 网络不通问题解决一例1的更多相关文章
- u-boot-2014-04 网络不通解决一例
不久前我移植了u-boot-214-04到Tq2440的板子上,基本功能都有了,网卡也可以使用了.有一天打算把u-boot-2010-06也也一直到tq2440上,移植完后发现u-boot-214-0 ...
- [docker]通过阿里云源安装docker && flannel不通问题解决(try this guy out)
docker清理容器 # 容器停止后就自动删除: docker run --rm centos /bin/echo "One"; # 杀死所有正在运行的容器: docker kil ...
- tiny210 u-boot 网络ping不通主机解决方案
站在巨人的肩膀上: http://blog.csdn.net/liukun321/article/details/7438880 http://www.arm9home.net/read.php?ti ...
- 工程中实际问题解决两例——基于C#
工程中实际问题解决两例--基于C# 目录 工程中实际问题解决两例--基于C# 1. try catch的妙用 1.1 遇到问题的现象 1.2 原因分析 1.2.1 先从数据库入手 1.2.2 代码日志 ...
- vbox虚拟机和vm虚拟机 虚拟机网络不通的解决方法
vm网络不通的情况: 第一步 :打开物理机, 选中“计算机”*(,右键—管理—服务,找到以VM开头的服务,选中后,右键—启动,就可以了.如图: 第二步: 这样基本就可以了,如果还不行 如果重启失效了, ...
- 一次Flannel和Docker网络不通定位问题
一次Flannel和Docker网络不通定位问题 查看路由表的配置 路由表情况 [root@k8s-master ~]# route -n Kernel IP routing table Des ...
- oracle 两个网络不通的远程数据库如何将一个库中的表数据导入到另一个库中?
1.情景展示 本地可以直接连接2个不同的远程数据库: 两个数据库由于网络不通,无法建立DBLINK完成数据传输: 将A库中C表的数据插入到B库中C表,如何快速实现? 2.解决方案 通过kettle ...
- vmware克隆的linux机器网络不通
当我使用vmware的完全克隆功能克隆出两台虚拟机之后,登录发现网络不通,仔细检查发现几个问题,由于克隆之后默认的eth0网卡在系统中会变成eth1,导致之前的eth0网卡配置信息无法加载,网络不通, ...
- 由安装两块网卡的linux系统中引起网络不通想到的
由安装两块网卡的linux系统中引起网络不通想到的 一天,小王突然急匆匆的来找我,他说:"我在机子上刚装的redhat怎么老也ping不通服务器,我网卡的驱动都安装了,ping 自己的两块网 ...
随机推荐
- 纯JS Web在线可拖拽的流程设计器
F2工作流引擎之-纯JS Web在线可拖拽的流程设计器 Web纯JS流程设计器无需编程,完全是通过鼠标拖.拉.拽的方式来完成,支持串行.并行.分支.异或分支.M取N路分支.会签.聚合.多重聚合.退回. ...
- 【转】使用json-lib进行Java和JSON之间的转换
原文链接:http://www.cnblogs.com/mailingfeng/archive/2012/01/18/2325707.html 1. json-lib是一个java类库,提供将Java ...
- $watch How the $apply Runs a $digest
作者:junyuecao | 发表于 8-8 13:39 | 最后更新时间:8-9 02:34 原文地址:http://angular-tips.com/blog/2013/08/watch-how- ...
- 一键安装GitLab7
1. Install and configure the necessary dependencies If you install Postfix to send email please sele ...
- JS初识(着重讲解Date函数)
查看类型:typeof() 转换为int类型:parseInt() isNaN() 函数用于检查其参数是否是非数字值. NaN,是Not a Number的缩写.一种计算机用语.NaN 用于处理计算中 ...
- Cocos2d-x 关于在iOS平台真机测试的一些注意
下面简单记录一下在最近cocos2d-x项目在iOS平台真机测试和模拟器测试中遇到的一些要注意的地方(使用ipod): 1.图片大小 游戏中基本上都是会用到图片,那么在使用图片的时候要特别注意图片的s ...
- chrome emulator use-agent 设置 chrom模拟手机客户端
谷歌升级以后,发现找不到use-agent设置了 在Element 下点击ESC 出现console,再点击Emulation就出现了
- android 绘图之Canvas,Paint类
Canvas,Paint 1.在android 绘图但中经常要用到Canvas和Paint类,Canvas好比是一张画布,上面已经有你想绘制图画的轮廓了,而Paint就好比是画笔,就要给Canvas进 ...
- VC、MFC中设置控件的背景色、标题、字体颜色、字体要注意的地方[转]
在MFC中设置控件的背景色.字体.字体颜色.标题等属性主要是利用OnCtlColor函数来实现. 如: HBRUSH CAlarm::OnCtlColor(CDC* pDC, CWnd* pWnd, ...
- 窥探EasyMock(1)基础使用篇
EasyMock的应用分为5步: 1. 使用 EasyMock 生成 Mock 对象: SomeInterface mockObj = createMock(SomeInterface.class); ...