uboot网口调试Marvell phy 88E1111

转载地址:https://blog.csdn.net/charliewangg12/article/details/39697287

首先要给88E1111复位信号信号,复位引脚电平 高电平->低电平->高电平保持,低电平要维持10ms以上,

可以给15ms。

  复位之后,最好的情况就是LED_LINK引脚的LED点亮,连接网线后电脑这边的本地连接由叉号变为正在

连接,LED_RX和LED_TX引脚连接的LED灯也会闪。如果这样的话,证明你的板子网口这一块的硬件电路

都是正常的,硬件工程师是下了功夫的在CONFIG0-CONFIG6的配置上。

  很遗憾,我的板子LED_LINK没有亮,那只有通过MDIO接口配置里面的寄存器了。读状态寄存器可以发现,

自动协商没有完成Auto-Negotiation  process not complete,link down。

  解决方案:重点关注的几个寄存器R0,R4,R9,R20,R27。

  首先确保自动协商Auto-Negotiation Enable,交叉线使能Crossover Enable,

光纤/电缆自动选择使能 Enable fiber/Copper auto selection。这几个都是硬件配置了的,可以通过读寄存器

确认一下。我的这些都没问题,问题出在R4[9:5],这几个位置1,advertise,PHY自协商的时候告诉对方我

支持这种工作方式。我的PHY在这几个位置位之后,软件复位芯片,LIINK灯马上亮了。R4的这几位是支持

10M,100M的全双工,半双工。R9是设置1000M的全双工,半双工支持。

  网口通了,下一步就是如何让它支持tftp通信了。我的板子ping之后,显示接口not alive。现象是LINK_RX和

LINK_TX的灯都亮了,表明有数据收发,但是ping不同,说明数据收发有误。通过分析uboot里面程序,发现

大多数PHY都会使能发送延迟,不同的PHY这个寄存器位置不同。88E1111是在R20[1],使能之后还没好。

又重新把硬件配置的那些位打印出来重新分析,问题出在R27[3:0],硬件复位之后的配置时0011,RGMII to Fiber,

改为1011,RGMII to Copper。软件复位之后,ping正常。所以一旦你一定要读出这个寄存器来查看一下是否

和你期望的一致。

  通过这几个寄存器配置,一切正常。

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值