T527 RTL8211F_JL2101B-N040C 以太网PHY调试

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 的过程。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值