当前位置: 首页 > news >正文

T527 RTL8211F_JL2101B-N040C 以太网PHY调试

文章目录

  • 1、环境介绍
  • 2、前言
  • 3、T527 GMAC 资源
  • 4、原理图查看
  • 5、内核配置
  • 6、设备树配置
  • 7、测试
    • 7.1、GMAC
    • 7.2、GMAC200
  • 8、delay参数调试
    • 8.1、GMAC Rx/Txdelay最优值调试
    • 8.2、GMAC2XX Rx/Txdelay最优值调试
    • 8.3、设备树修改
  • 9、常见问题
    • 9.1、找不到phy
    • 9.2、吞吐速率不达标
  • 10、参考文章
  • 11、总结

1、环境介绍

硬件:t527板卡

软件:原厂t527-tina5.0-aiot-v1.4 sdk(buildroot,Linux 5.15)

2、前言

景略 JL2101B-N040C 可以 P2P 替换 RTL8211F。本次调试实际使用的是RTL8211F。

3、T527 GMAC 资源

T527 包含两个千兆以太网控制器,分别是 GMAC、GMAC200。以下是 AI 根据 T527 数据手册总结出的区别:

GMAC 使用 AHB 总线比 GMAC‑2XX 的 AXI 总线带宽少 10~40M 左右。

4、原理图查看

以下是 T527板卡 关于以太网部分的原理图,共有两个以太网接口:

相关信息总结如下:

ETH0:

  • 使用 GMAC 控制器;
  • RESET 引脚为 PH8;
  • PHY Address:001;

ETH1:

  • 使用 GMAC200 控制器;
  • RESET 引脚为 PJ10;
  • PHY Address:002;

5、内核配置

GMAC 配置:

CONFIG_AW_GMAC
CONFIG_AW_GMAC_MDIO

GMAC2XX 配置:

CONFIG_AW_STMMAC_ETH

6、设备树配置

&mdio0 {status = "okay";gmac0_phy0: ethernet-phy@1 {reset-gpios = <&pio PH 8 GPIO_ACTIVE_LOW>;	// 根据原理图配置};
};&gmac0 {phy-mode = "rgmii";pinctrl-names = "default", "sleep";pinctrl-0 = <&gmac0_pins_default>;pinctrl-1 = <&gmac0_pins_sleep>;sunxi,phy-clk-type = <1>;		// 0:使用soc内置的25M时钟,1:使用外部25M时钟。根据原理图配置tx-delay = <1>;rx-delay = <5>;gmac3v3-supply = <&reg_cldo3>;	// 根据soc的PH组io电压来配置status = "okay";
};&gmac1_phy0 {reg = <0x2>;					// 根据原理图的 PHY Address 来配置,默认是0x1 reset-gpios = <&pio PJ 10 GPIO_ACTIVE_LOW>;
};&gmac1 {phy-mode = "rgmii";pinctrl-names = "default", "sleep";pinctrl-0 = <&gmac1_pins_default>;pinctrl-1 = <&gmac1_pins_sleep>;//aw,soc-phy25m;				// 使用soc内置的25M时钟。根据原理图配置tx-delay = <1>;rx-delay = <5>;dwmac3v3-supply = <&reg_dcdc4>;	// 根据soc的PJ组io电压来配置status = "okay";
};

7、测试

7.1、GMAC

使能 eth0 log:

ifconfig eth0 up

插入网线 log:

获取 IP,联网测试:

udhcpc -i eth0
ping baidu.com

7.2、GMAC200

使能 eth1 log:

ifconfig eth1 up

插入网线 log:

获取 IP,联网测试:

udhcpc -i eth1
ping baidu.com

8、delay参数调试

如果 ping 不通,可能是rx/txdelay值不正确。

8.1、GMAC Rx/Txdelay最优值调试

# 进入操作目录
cd /sys/devices/platform/soc\@3000000/4500000.gmac0
# 调整rxdelay参数
echo val > rx_delay
# 调整txdelay参数
echo val > tx_delay

8.2、GMAC2XX Rx/Txdelay最优值调试

GMAC2XX 的 Rx/Txdelay最优值调试会比较方便,直接操作接口即可:

echo > /sys/devices/platform/soc@3000000/4510000.ethernet/calibrate

8.3、设备树修改

最后将delay值填到设备树即可:

9、常见问题

9.1、找不到phy

up节点失败,提示找不到phy:

检查设备树配置,包括时钟配置,phy地址配置。检查phy芯片供电是否正常。本次调试中,因为设备树中没有正确配置gmac200控制器的phy地址,出现过该错误。

更多常见问题及解决思路请参考:《Linux_EMAC_开发指南.pdf》

9.2、吞吐速率不达标

使用 iperf3 对两个千兆网口进行上传与下载速率测试时,发现上传速率均不达标,只有600Mbits/sec左右。

根本原因如下:

  1. CPU占用过高,导致测试结果异常;
  2. 线材原因;
  3. phy模块的tx-delay和rx-delay值不是最优的;
  4. DDR带宽不足;
  5. 硬件问题;

解决方法如下:

  1. 降低CPU占用,检查内核是否开启了SLUB_DEBUG/KASAN/LOCKDEP等会影响系统负载的内核调试机制,可关闭这些调试机制再测试iperf。本人在内核配置中关闭SLUB_DEBUG后,iperf3测试正常,各网口上传速率达标。
  2. 更换支持千兆的线材;
  3. 调整tx/rx delay;
  4. 适当调高ddr频率,注意该DDR频率需要满足DDR稳定性测试要求;
  5. 找硬件工程师解决;

10、参考文章

  1. 《Linux_EMAC_开发指南.pdf》
  2. 全志客户服务平台 FAQ ID:FAQ2625(以太网TX-RX吞吐不达标排查方法)

11、总结

本文主要记录在 T527 下调试 RTL8211F 的过程。

http://www.dtcms.com/a/474675.html

相关文章:

  • Docker 镜像进阶维护:MySQL 数据、配置与日志的宿主机持久化方案
  • FDConv:频率动态卷积在密集图像预测中的突破性进展
  • 消防有哪些网站合适做网站下面版权代码
  • SQLSugar和EF框架的区别
  • 我的网站模板初学者自己做网站
  • 前端工程师是做网站吗网站源码运行
  • 【C语言实战(14)】深入C语言函数基础:从理论到实战
  • 基础算法:二分查找
  • 深度学习入门(四)——从激活到注意力:神经网络的现代模块与工程实践
  • Linux下的压缩(zip)解压(unzip)缩命令
  • 湖南平台网站建设推荐dedecms网站如何上线
  • 网站后台都有哪些中国建设工程监理网站
  • JWT(JSON Web Token)详解
  • 快手KAT-Dev-72B模型开源登顶!国产AI编程助手迎来技术突
  • 网站建设app开发有哪里可以做兼职翻译的网站
  • Web 开发入门:从前端到后端的全栈开发探索
  • Redis-Zest
  • 深圳市升华建设有限公司网站制作网页的
  • 用opencv来识别信用卡的号码 Vs 使用yolo+paddleocr
  • 小程序 地理位置授权怎么搞
  • 福州贸易公司网站制作seo的网站
  • 开网站 主机 服务器百度竞价广告的位置
  • 【Unity每日一记】Unity脚本教程:用脚本创建物体与输入系统详解
  • 动易网站官网使用python建设一个论坛网站
  • Java-集合练习3
  • 2.c++面向对象(六)
  • STM32 环境监测项目笔记(一):DHT11 温湿度传感器原理与驱动实现
  • C++ 完全背包
  • 【Linux】理解链接过程
  • 广州做网站多少钱怎么做简单的网站首页