前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >88e1512 排坑(二)sgmii网口存在丢包现象

88e1512 排坑(二)sgmii网口存在丢包现象

作者头像
咖啡走糖
发布2022-11-05 16:39:21
1.8K0
发布2022-11-05 16:39:21
举报
文章被收录于专栏:咖啡走糖咖啡走糖

距上次88e1512的sgmii不稳定的问题已经过去好久,这几天测试部发现sgmii网口偶尔会出现丢包现象,设备是做过EMC测试(静电,群脉冲,浪涌)的,经硬件工程师排查EMC实验造成phy损坏的概率很低,但是设备上下电网线插着时出现CRC错误/丢包的很容易出现,终端里面一直会打印如下错误信息,

     看datasheet想做一下环路测试以判断是物理层一侧传输就有问题还是软件处理这边有问题,

    设置了这个寄存器值接下去不知道怎么搭建测试环境,经同事提醒可以用ethool工具直接进行环路测试,但是需要网卡驱动封装完善,才能支持ethtool对网卡的自检功能。参照https://www.cnblogs.com/imapla/p/4575621.html

   很遗憾我直接输入ethtool -t eth2 online就输出不支持的信息,看来drivers/net/phy/marvell.c这个驱动封装不够完善。

   只能再看datasheet,看关于sgmii寄存器配置,发现第一页的第26个寄存器有对于sgmii接口电平的配置,

在驱动中将该寄存器打印出来是默认值0x42,初始化的时候没有对其进行配置,猜测这个跟sgmii信号质量有关,于是将这个值设为0x47(700mV),在dts中修改入下

代码语言:javascript
复制
&mdio {
    status = "okay";
    phy0: ethernet-phy@0 {
    compatible = "marvell,88e1510";
    reg = <0>;
    };
 
    phy1: ethernet-phy@1 {
    compatible = "marvell,88e1510";
    reg = <1>;
    marvell,reg-init = <0x01 0x1A 0x0 0x47>;
    };
};

编译后替换dtb,之后开关机测试几十次没有发现出现CRC错误丢包,至此问题解决。

其它设备在未替换dtb之前没有发现以上错误信息。猜测是EMC实验之后,使sgmii接口达到了某一个临界值,在数据传输时容易出现CRC丢包错误。

版权属于:咖啡走糖

本文链接:https://cloud.tencent.com/developer/article/2152386

若无注明,本文皆咖啡走糖原创,转载时必须注明出处及本声明!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020 年 07 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档