MDIO总线+88E1111调试笔记

在U_boot下调试以太网的mdio总线

我这里调试的案例是通过的复旦微的FMQL45T900+88E1111来调试的,最开始我是直接参考复旦微的官方手册 (坑有点多,需要自己多做两次才能避开)直接使用FSBL+U_BOOT来测试 上板调试的时候发现网络不通。

pl工程采取的是vivado工程导入proces来开发的fsbl工程

U_boot工程是复旦微的原始psb工程移植的。

第一步:先验证环境

知识点1:在U_boot下的MDIO配置和解析命令

1、指令:mdio list        解析:列出当前所有的MDIO总线

并且显示当前设备挂载的驱动型号 设备号等详细

2、指令mdio read mdio总线   总线地址 寄存器地址 

解析:列出当前mdio总线 下寄存器的值 ps:(多个寄存器:mdio read mdio总线   总线地址 开始寄存器地址 -结束寄存器地址。)

在这里的我phy地址为0x06

3、gmac

GMAC是为了满足千兆网传输而发展起来的,它是构成千兆网必备的条件之一。GMAC在七层ISO标准中属于数据链路层,它对逻辑链路和物理链路之间的通道进行控制和协调,可以连接各种不同物理媒介,不同物理媒介有不同的GMAC标准,GMAC的标准由IEEE802工作组制定。

4、设备树架构

设备树出现以前,所有关于设备的具体信息都要写在驱动里,一旦外围设备变化,驱动代码就要重写。 引入了设备树之后,驱动代码只负责处理驱动的逻辑,而关于设备的具体信息存放到设备树文件中,这样,如果只是硬件接口信息的变化而没有驱动逻辑的变化,驱动开发者只需要修改设备树文件信息,不需要改写驱动代码。

所以在这里我们需要了解设备树的配置

下面是我在设备树下做的修改:

ps:在设备树下不能指定驱动

5、u_boot初始化PHY流程

下面是我手绘的一个u_boot相关结构图 经供参考:

6、mac->phy的传输方式

这里的设计采用是下面的架构

7、u_boot调试

到这里已经将整体的思路梳理清楚了然后读取相关寄存器来分析在什么环节出现了问题

我这里是参考IAR里面的裸机最后定位在了U_boot初始化88e1111的时候phy->rg45接口的时候配置问题。

在bsp工程的

u-boot-2018.07-fmsh\drivers\net\phy\marvell.c中的函数:static int m88e1111s_config(struct phy_device *phydev)

下加入下面代码:

        reg=phy_read(phydev,MDIO_DEVAD_NONE,PHY_88E1111_ESST);

        reg= 0x8484 ;

        phy_write(phydev,MDIO_DEVAD_NONE,PHY_88E1111_ESST,reg);

        reg=phy_read(phydev,MDIO_DEVAD_NONE,PHY_88E1111_ESST);

        phy_reset(phydev);

          phy_write(phydev, MDIO_DEVAD_NONE,

          PHY_88E1111_ESCT_CFG, PHY_88E1111_ESCT_CFG_REG);

然后编译环境 ,上板调试。

调试完成。 

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

orange....

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值