平台: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的更多相关文章

  1. u-boot-2014-04 网络不通解决一例

    不久前我移植了u-boot-214-04到Tq2440的板子上,基本功能都有了,网卡也可以使用了.有一天打算把u-boot-2010-06也也一直到tq2440上,移植完后发现u-boot-214-0 ...

  2. [docker]通过阿里云源安装docker && flannel不通问题解决(try this guy out)

    docker清理容器 # 容器停止后就自动删除: docker run --rm centos /bin/echo "One"; # 杀死所有正在运行的容器: docker kil ...

  3. tiny210 u-boot 网络ping不通主机解决方案

    站在巨人的肩膀上: http://blog.csdn.net/liukun321/article/details/7438880 http://www.arm9home.net/read.php?ti ...

  4. 工程中实际问题解决两例——基于C#

    工程中实际问题解决两例--基于C# 目录 工程中实际问题解决两例--基于C# 1. try catch的妙用 1.1 遇到问题的现象 1.2 原因分析 1.2.1 先从数据库入手 1.2.2 代码日志 ...

  5. vbox虚拟机和vm虚拟机 虚拟机网络不通的解决方法

    vm网络不通的情况: 第一步 :打开物理机, 选中“计算机”*(,右键—管理—服务,找到以VM开头的服务,选中后,右键—启动,就可以了.如图: 第二步: 这样基本就可以了,如果还不行 如果重启失效了, ...

  6. 一次Flannel和Docker网络不通定位问题

    一次Flannel和Docker网络不通定位问题    查看路由表的配置 路由表情况 [root@k8s-master ~]# route -n Kernel IP routing table Des ...

  7. oracle 两个网络不通的远程数据库如何将一个库中的表数据导入到另一个库中?

      1.情景展示 本地可以直接连接2个不同的远程数据库: 两个数据库由于网络不通,无法建立DBLINK完成数据传输: 将A库中C表的数据插入到B库中C表,如何快速实现? 2.解决方案 通过kettle ...

  8. vmware克隆的linux机器网络不通

    当我使用vmware的完全克隆功能克隆出两台虚拟机之后,登录发现网络不通,仔细检查发现几个问题,由于克隆之后默认的eth0网卡在系统中会变成eth1,导致之前的eth0网卡配置信息无法加载,网络不通, ...

  9. 由安装两块网卡的linux系统中引起网络不通想到的

    由安装两块网卡的linux系统中引起网络不通想到的 一天,小王突然急匆匆的来找我,他说:"我在机子上刚装的redhat怎么老也ping不通服务器,我网卡的驱动都安装了,ping 自己的两块网 ...

随机推荐

  1. algorithm@ Sieve of Eratosthenes (素数筛选算法) & Related Problem (Return two prime numbers )

    Sieve of Eratosthenes (素数筛选算法) Given a number n, print all primes smaller than or equal to n. It is ...

  2. 关于在 mac上配置pytesseract的相关问题

    因为踩了两个小时坑 特别是在配置依赖tesseract-ORC识别库时候的问题 特别麻烦 一定要用brewhome 一定要用brewhome 一定要用brewhome 重要的事情说三遍. 刚开始我在网 ...

  3. 第二百零八天 how can I 坚持

    今天徐斌生日,生日快乐.买了两个小蛋糕,哈哈 还买了两条熊猫鱼.不知道鱼会不会冻死啊,买了加热器又不想用,看他们造化吧. LOL不错的游戏的. 睡觉,好冷.

  4. Django中如何使用django-celery完成异步任务2(转)

    原文链接: http://www.weiguda.com/blog/74/ 在上一篇博文中, 我们介绍了如何在开发环境中使用Celery. 接下来我们介绍一下如何在部署环境使用Celery. 1. 简 ...

  5. AnnotationSessionFactoryBean用法介绍

    http://blog.csdn.net/flyingfalcon/article/details/8273618 —————————————————————————————————————————— ...

  6. AJAX小练习,防止以后忘记

    <div id="content"> <input id="btnShow" type="button" value=&q ...

  7. uestc oj 1217 The Battle of Chibi (dp + 离散化 + 树状数组)

    题目链接:http://acm.uestc.edu.cn/#/problem/show/1217 给你一个长为n的数组,问你有多少个长度严格为m的上升子序列. dp[i][j]表示以a[i]结尾长为j ...

  8. 编译安装-Apache

    一.配置选项说明 二.安装apache 1.环境准备 2.安装apr 3.安装apr-util 4.安装pcre 5.安装httpd 6.修改配置文件 7.开机自启动 8.注册为服务 9.测试 一.配 ...

  9. Unity3d:播放物理目录下的MP3文件

    u3d里,是支持播放MP3文件的,但要放到资源里,不支持播放物理目录下的MP3文件.由于界面上无需显示,只是当作背景音乐来播放,所以想到调用c#的组件来解决此问题.主要代码都在附件中,根据需要加到自己 ...

  10. DbHelperSQL和Dapper数据访问的性能对比

    http://www.cnblogs.com/finesite/archive/2012/08/23/2652491.html