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 自己的两块网 ...
随机推荐
- 20151227感知机(perceptron)
1 感知机 1.1 感知机定义 感知机是一个二分类的线性分类模型,其生成一个分离超平面将实例的特征向量,输出为+1,-1.导入基于误分类的损失函数,利用梯度下降法对损失函数极小化,从而求得此超平面,该 ...
- iOS 检测有没有安装其它应用 和ios9下要注意的地方
UIApplication *app = [UIApplication sharedApplication]; NSURL *url = [NSURL URLWithString:@"Tri ...
- dom 留言加强
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- SharePoint咨询师之路:备份和恢复系列二 - 备份服务器场
本系列包括: 备份服务器场和配置 备份web和服务应用程序 备份内容数据库 备份网站集 备份自定义项 根据“SharePoint咨询师之路:备份和恢复系列--制定备份计划”我们制定了一下备份计划如下: ...
- Spark RDD概念学习系列之RDD的缺点(二)
RDD的缺点? RDD是Spark最基本也是最根本的数据抽象,它具备像MapReduce等数据流模型的容错性,并且允许开发人员在大型集群上执行基于内存的计算. 为了有效地实现容错,(详细见ht ...
- JVM系列一:JVM内存组成及分配
java内存组成介绍:堆(Heap)和非堆(Non-heap)内存 按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Java 虚拟机启动时 ...
- MYSQL数据库性能调优之二:定位慢查询
windows下开启慢查询: 第一步:先查看版本 第二步查看查询日志和慢查询配置 第三步:配置开启慢查询 在my.ini配置文件的[mysqld]选项下增加: slow_query_log=TRUE ...
- MS 数据库存储过程加密解密
存储过程加密解密在网上有很多,刚刚好最近需要用到,所以就查询了一下资料.记录一下 加密方法:执行如下存储过程 DECLARE @sp_name nvarchar(400) DECLARE @sp_co ...
- USB枚举过程(2)
用bus hound 得到的数据 GET MAX LUN 命令 详见USB_MSC_BlukOnly_v1.0 接下来用到的是UFI SCSI
- oracle学习 二(持续更新中)
oracle数据库的启动停止 以oracle用户身份登录 登录后输入以下命令: oracle-> sqlplus /nolog SQL*Plus: Release 9.2.0.1.0 - Pro ...