野火-RK3588S-LUBANCAT4 UBOOT网络修复

野火RK3588开发板

野火的RK3588系列开发板有两款,分别是搭载RK3588SLUBANCAT4和搭载RK3588的LUBAN-CAT5,笔者使用的是RK3588S的,即LUBAN-CAT4,实物如图所示!笔者买回开发板并下载SDK源码在测试过程中发现LINUX内核中100M/1000M的以太网都是正常的;笔者将开发板和100M路由器连接起来的时候发现UBOOT模式100M网络不正常,1000M网络是正常的。

在这里插入图片描述

一. 网络测试思路

由于现在大多数电脑的网口都是1000M的,当把开发板的网线和开发板直连,会被自动协商为1000M的网络;而把开发板和路由器连接起来(大部分路由器的网口是100M的),会被协商为100M的网络!

二. LINUX内核启动时网络测试

2.1 1000M网络测试

在这里插入图片描述
如上图所示,网络eth0协商的网速是1Gbps/Full,即1000M的全双工,可以看到ping的时候是正常的!!!

2.2 100M网络测试

在这里插入图片描述

如上图所示,网络eth0协商的网速是100Mbps/Full,即100M的全双工,可以看到ping的时候也是正常的!!!

三. UBOOT模式下网络测试

3.1 1000M网络测试

在这里插入图片描述
可以看到1000M的时候网络是能够ping通的,这里虽然没打印网速,但是可以通过调试增加uboot打印,或者看电脑端状态!!

3.1 100M网络测试

在这里插入图片描述
可以看到100M的时候网络是不能够ping通的,这里虽然没打印网速,但是可以通过调试增加uboot打印,或者看电脑端状态!!

大多数读者和我一样,把开发板插入到路由器中,然后通过网络引导,这个时候就会发现问题了!!

四. 问题分析

4.1 网络方案分析

在这里插入图片描述
根据原理图,可以知道野火的RK3588使用的是GMAC1来实现网络的介质层,然后外接一个JL2101的PHY芯片,这个是一家叫鲸落的半导体公司吧!!

4.2 PHY驱动分析

由于PHY的驱动程序比较简单,通过对比linux内核和uboot的驱动发现PHY驱动是正确的,有兴趣的老哥也可以分析下PHY的驱动程序,uboot的代码较少,内核的稍微多点!

4.3 MAC驱动分析

由于MAC的驱动程序比较复杂,加上MAC是瑞芯微提供的通常不会有问题吧,但是没办法只能查下去!!通过对比linux内核和uboot的驱动发现,果然是RK的MAC驱动有问题的,有兴趣的老哥也可以分析下MAC的驱动程序!

最后黄天不负有心人,我定位到是RK官方UBOOT的问题,是因为UBOOT协商为100M的时候,RK的uboot仍然把TX_CLK配置为125MHZ,即按照1000M网络的方式去配置,这显然不合理!

我修改了下面的地方,UBOOT的100M和1000M网络都正常了!

解决方法:

drivers/net/gmac_rockchip.c   通过UBOOT源码找到这个文件!!

然后搜索函数 rk3588_set_rgmii_speed

在这里插入图片描述
拖到函数结尾处,删除下面两行代码,如图的712~714行!!!
在这里插入图片描述

5. 重新测试网络100M/1000M

在这里插入图片描述
可以发现修改之后,无论uboot和linux内核模式下,100M/1000M网络都是正常的!!

  • 30
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值