0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【技术分享】在M3568上移植ePort-G驱动及调试技巧

AGk5_ZLG_zhiyua 来源:未知 2023-02-08 11:35 次阅读
产品上网口没有显示?无法进行ping命令?速度拉跨?还经常丢包?那一定是漏掉了什么细节了,看看下面操作,说不定能够帮到你。


  网口驱动移植的准备

本次我们使用的平台是致远电子M3568系列核心板,网口模块是致远电子ePort系列的ePort-G型号产品,速率可达千兆,而且简化硬件设计,缩短开发时间。

配置网口驱动时,我们得先了解原理图中网口对应的模式以及地址,确认好用到的引脚,方便之后的设备树配置,如下图参考:

可以看到我们要使用的物理地址及PHY的工作模式,同时也要注意电压的配置,与硬件工程师确认网口模块所需要的IO电压,根据需求不同去配置电源域(3.3V或1.8V)。

  驱动程序的移植及设备树的修改

调试之前需要根据官方说明去修改drivers/net/phy下的Makefile和Kconfig,然后将官方的驱动拷贝到该目录下。或者直接修改Makefile将该驱动文件编译到内核,不修改Kconfig,这样就不用make menuconfig去勾选上网口驱动。之后在RK平台下调整设备树部分,由于ePort-G该网口型号支持千兆,官方说明千兆时钟应设为125M,如下参考(注:其他如复位引脚和设置pinctrl的引脚未写出),根据原理图实际配置来修改设备树。

&gmac1 {
phy-mode = "rgmii"; //PHY接口模式
clock_in_out = "output"; //时钟输入输出方向,该为MAC输出给PHY,input则相反

//设置千兆所需要的时钟
assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>;
assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>, <&cru CLK_MAC0_2TOP>;
assigned-clock-rates = <0>, <125000000>;


//根据PCB布线不同修改值
tx_delay = <0x21>;
rx_delay = <0x2f>;


phy-handle = <&rgmii_phy0>;
status = "okay";
};
&mdio1 {
rgmii_phy1: phy@2 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <7>; //PHY的物理地址,原理图上有标出
};
}

之后编译内核,查看drivers/net/phy下有无生成对应驱动的.o文件,若驱动程序在编译过程出现报错,可能要根据自己内核版本去修改官方的驱动程序,将一些没有的函数屏蔽或替换。编译完成后将boot.img烧录到开发板上(内核和设备树)


查看网口是否配置成功及网口调试

1. 配置检查

进入开发板,查看sys/bus/mdio_bus/下面的drivers和devices,分别进入查看是否在devices中生成对应节点以及查看devices下的phy_id是否与驱动程序中自己网口型号的phy_id一致,如果没有出现对应节点情况检查设备树中compatible的属性,如果还不一致则将iee部分改成id+网口型号的phy_id。如下图:

输入命令ifconfig ethx dowm和ifconfig ethx up(x为网口号)检查是否能正常起来,尝试更改设置ip地址,连接网线进行ping命令查看可否通同一网段下的网线另一端地址。

2. 网口调试

在ping通外网之后可以尝试使用iperf3来进行网络测试,测试通过iperf3功能从板子做服务器接收速度和板子做客户端发送速度的数据来观测是否达到要求。如下图:

当然,也可能存在丢包情况,这种情况需要适当的调整MAC的tx_delay和rx_delay,也可以通过在驱动程序中调整寄存器值的方式来控制phy的tx_delay和rx_delay,一般调整MAC。通过RK平台下中/sys/device/platform/fe….ethernet/rgmii_delay可以调试修改tx_delay和rx_delay,输入命令echo 0x2a 0x26 > rgmii_delay(第一个延迟参数为tx,第二个为rx),修改的数值可以根据该目录下的phy_ld_scan工具来查看。拔掉网线,输入命令echo 1000> phy_ld_scan后,如下图所示:

有0的表示通路,根据横(TX的延时)纵(RX的延时)坐标来观察出TX和RX的延时应设置为多少。如果根本没有0或者0很少的情况则考虑下硬件走线是否过长导致。


技术交流
长按识别如下二维码可加入“工控板/核心板交流群”,与志同道合的朋友交流,并有专业技术人员为您答疑解惑,如有问题可以咨询小致微信zlgmcu-888。

该二维码7天内(2月13日前)有效


原文标题:【技术分享】在M3568上移植ePort-G驱动及调试技巧

文章出处:【微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 致远电子
    +关注

    关注

    13

    文章

    405

    浏览量

    31255

原文标题:【技术分享】在M3568上移植ePort-G驱动及调试技巧

文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【米尔-国产瑞芯微RK3568开发板试用体验】评测一 系统配置

    : NameMYB-LR3568X-EMYD-LR3568B2-16E2D-200-EMYC-LR3568 区别PCB底板开发板包装袋核心板 二、烧录 以前安卓机可以USB刷机和TF卡刷机,同样本次的RK3568B2同样可以进行线刷和卡刷。
    发表于 11-04 23:11

    为什么M3568核心板由四个连接器,却有黑白两种颜色?

    本文揭秘了M3568核心板连接器颜色差异的设计理念,解释了不同颜色连接器对高速信号传输性能的影响,并展示了如何通过巧妙设计来平衡性能与成本。M3568核心板配备了四种连接器,为何用到两种颜色去标识
    的头像 发表于 10-01 08:07 137次阅读
    为什么<b class='flag-5'>M3568</b>核心板<b class='flag-5'>上</b>由四个连接器,却有黑白两种颜色?

    Openharmony软件评估指南-米尔瑞芯微RK3568开发板

    Openharmony软件评估指南用于介绍米尔的开发板运行Openharmony系统下的核心资源与外设资源的测试步骤与评估方法。本文可作为前期评估指南使用,也可以作为通用系统开发的测试指导书
    发表于 09-06 20:06

    混合部署 | RK3568同时部署RT-Thread和Linux系统-迅为电子

    混合部署 | RK3568同时部署RT-Thread和Linux系统-迅为电子
    的头像 发表于 09-06 15:32 321次阅读
    混合部署 | <b class='flag-5'>在</b>RK<b class='flag-5'>3568</b><b class='flag-5'>上</b>同时部署RT-Thread和Linux系统-迅为电子

    【米尔-国产瑞芯微RK3568开发板试用体验】评测一 系统配置

    :NameMYB-LR3568X-EMYD-LR3568B2-16E2D-200-EMYC-LR3568 区别PCB底板开发板包装袋核心板 二、烧录 以前安卓机可以USB刷机和TF卡刷机,同样本次的RK3568B2同样可以进行线刷和卡刷。
    发表于 08-25 11:52

    鸿蒙OpenHarmony南向/北向快速开发教程-迅为RK3568开发板

    的小白还是资大佬,都能在这里找到属于自己的成长路径。 对于初学者来说,南向和北向学习教程可是关键哦!南向,是深入硬件底层;北向,则是与上层应用交互,玩转各功能的舞台。那么,如何在RK3568玩转南向和北
    发表于 07-23 10:44

    RK3568安装RT-Thread,根据板级支持包操作时遇到的疑问求解

    我想在RK3568安装RT-Thread,根据板级支持包操作时,遇到了一些疑问,大佬求教! 我已经完成了编译部分,生成了rtthread.elf与rtthread.bin文件 请问烧录进SD
    发表于 03-01 06:23

    迅为RK3568开发板驱动开发指南-输入子系统

    迅为RK3568开发板驱动开发指南-输入子系统
    的头像 发表于 02-23 15:11 734次阅读
    迅为RK<b class='flag-5'>3568</b>开发板<b class='flag-5'>驱动</b>开发指南-输入子系统

    RK3568驱动指南|驱动基础进阶篇-进阶5 自定义实现insmod命令实验

    RK3568驱动指南|驱动基础进阶篇-进阶5 自定义实现insmod命令实验
    的头像 发表于 02-20 14:10 604次阅读
    RK<b class='flag-5'>3568</b><b class='flag-5'>驱动</b>指南|<b class='flag-5'>驱动</b>基础进阶篇-进阶5 自定义实现insmod命令实验

    M3568多屏同显异显应用实例

    M3568-T核心板多屏同显、异显技术,提升效率与安全性。车载领域实现安全驾驶与娱乐并行;工业领域做到实时监控和快速响应。M3568-EV-Board评估板(如图1所示)是致远电子精心推出的集工控
    的头像 发表于 02-20 08:23 533次阅读
    <b class='flag-5'>M3568</b>多屏同显异显应用实例

    RK3568驱动指南|驱动基础进阶篇-进阶8 内核运行ko文件总结

    RK3568驱动指南|驱动基础进阶篇-进阶8 内核运行ko文件总结
    的头像 发表于 01-31 14:58 1069次阅读
    RK<b class='flag-5'>3568</b><b class='flag-5'>驱动</b>指南|<b class='flag-5'>驱动</b>基础进阶篇-进阶8 内核运行ko文件总结

    RK3568-GDB程序调试方法说明

    RK3568-GDB程序调试方法说明
    的头像 发表于 01-19 16:16 1687次阅读
    RK<b class='flag-5'>3568</b>-GDB程序<b class='flag-5'>调试</b>方法说明

    stm32必须要移植系统吗

    电子等。使用STM32进行开发时,是否需要进行系统移植是一个常见的问题。 系统移植是指将操作系统或者驱动程序从一个硬件平台移植到另一个硬件
    的头像 发表于 01-08 14:17 791次阅读

    Android ART玄铁C910移植和性能优化

    在过去的3年里,我们玄铁C910分别移植了Android 10和Android 12,ART我们也做了一些更加深入的优化。
    的头像 发表于 11-16 09:43 1385次阅读
    Android ART<b class='flag-5'>在</b>玄铁C910<b class='flag-5'>上</b>的<b class='flag-5'>移植</b>和性能优化

    【风火轮YY3568开发板免费体验】+ YY3568安装运行Unity的自制游戏教程范例

    。 插上USB数据线,YY3568设置开发者选项-USB调试等设置项; 开发电脑,用a
    发表于 11-14 11:44