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 自己的两块网 ...
随机推荐
- NativeInt
NativeInt ni = 100; //Wrong. Will issue an Error NativeInt ni = NativeInt(100); //Correct System::Ge ...
- android学习笔记(入门篇)
+号只是当你第一次定义一个资源ID的时候需要, 告诉SDK此资源ID需要被创建出来 对于所有的View默认的权重是0,如果你只设置了一个View的权重大于0,那么这个View将占据除去别的View本身 ...
- ESB 客户端调用 处理类
esb package com.isoftstone.synchronize.entrance; import java.io.File; import java.text.SimpleDateFor ...
- Unix 哲学
1.模块原则:使用简洁的接口拼接简单的部件 2.清晰原则:清晰胜于机巧 3.组合原则:设计时考虑拼接组合 4.分离原则:策略同机制分离,接口同引擎分离. 5.简洁原则:设计要简洁,复杂度能低则低 6. ...
- POJ3345
http://poj.org/problem?id=3345 大意: 大意是说现在有n个城市来给你投票,你需要至少拿到m个城市的赞成票.想要获得第i个城市的赞成需要花费w[i],有个条件就是某些城市是 ...
- VS2010编译器下针对C#和C++的opencv的配置方法
我们大家都知道opencv是针对C.C++编写的,没有独立的编译调试工具.所以今天就捣鼓了一下在xp vs2010下配置C++和C#环境下的opencv.请大家一步一步的按步骤操作.本人亲自鉴定可行. ...
- Weka EM 协方差
Weka EM covariance description 1: Dear All, I am trying to find out what is the real meaning of the ...
- IE6 背景透明
IE6 背景透明 第 1 种方法:定义一个样式,给某个div应用这个样式后,div的透明png背景图片自动透明了.(注意两处图片的路径写法不一样,本例中,icon_home.png图片与html文件在 ...
- jquery 显示“加载状态 结束”
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- wikioi 1083 Cantor表
题目描述 Description 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 - 2/1 2/ ...