RK3588平台开发系列讲解(GMAC delay开发篇)

目录

RGMII Delayline 获取步骤

代码确认

节点确认

扫描 delayline 窗口

测试扫描出来的中间值

自动扫描

硬件


RGMII Delayline 获取步骤

如果你的项目具有千兆以太网功能,使用的是 RGMII 接口,只要有硬件差别,都需要重新做一次 delayline 的配置。因为如果配置的 delayline 值与你项目的硬件不匹配,将会影响你千兆以太网的性能, 甚至正常的网络功能。

代码确认

代码实现部分都在 drivers/net/ethernet/stmicro/stmmac/dwmac-rk-tool.c 文件,所以也比较方 便移植。如果你手头上的工程没有这部分代码,请在 Redmine 上索要补丁,有 Kernel-4.4 和 Kernel-3.10 版本,Kernel-4.19 和之后的版本本身已经包含这部分代码,无需补丁。 Kernel-4.4 补丁:Rockchip_RGMII_Delayline_Kernel4.4.tar.gz 4.4 内核有优化过性能,补丁代码是基于当前代码生成的,如果有编译不过的问题,先打上 kernel4.4_stmmac_optimize_output_performances_20191119.zip 。 Kernel-3.10 补丁:Rockchip_RGMII_Delayline_Kernel3.10.tar.gz

节点确认

上一步的代码确认并编译后,新的固件会生成几个 sysfs 节点,如果没有生成则说明补打的有问题。以 RK3399 为例,在 /sys/devices/platform/fe300000.ethernet 目录下可以看到这几个节点:

扫描 delayline 窗口

通过 phy_lb_scan 节点扫描到一个窗口,会得到一个中间坐标,需要使用千兆速度 1000 来扫描。

横轴表示 TX 方向的 delayline(坐标范围 ), 纵轴表示 RX 方向的 delayline, (坐标范围也是 )。其中的 "O" 表示该点的坐标是可以 pass, 空白处都是 failed。以 RK3399 为例,通过千兆 扫描命令,丢弃掉有空缺的行或列,可以得到一个矩形窗口,并得到其中间点坐标,纵轴的 RX 坐标已 经有打印,横轴坐标因为打印的关系,没有显示出来,需要手动找下,从 RX(0xXX): 的 : 开始算起。

测试扫描出来的中间值

将扫描得到的值通过命令配置到 常,通过 rgmii_delayline 节点,然后测试该配置下 TX/RX 数据传输是否正 phy_lb 节点测试,至少这个测试需要先 pass。

自动扫描

如果遇到一组 delayline 的值无法适配所有硬件板子的时候,原因可能是硬件比较差,窗口很小冗余度 差;可以打开自动扫描功能,menuconfig 上打开 CONFIG_DWMAC_RK_AUTO_DELAYLINE 。这边需要注意 的是窗口很小的问题没有解决的话,打开这个宏也不能完全解决问题,一般来说不需要打开这个宏。

硬件

按照最新的 RGMII 协议,需要满足以下时序要求,请测试你的板子是否符合,如果不会测试或者没有能 测试的示波器进行测试,请在 Redmine 上提出需求。

比如确认千兆时 CLK 的信号质量,分别在靠近接收端的位置(不要在发送端量取,发送端信号反射严 重,波形不能反应实际信号质量),测量 MAC_CLK、TX_CLK、RX_CLK 信号的波形,重点看占空 比、幅度、以及上升下降时间,测量示波器及探头带宽需大于 125M 的 5 倍,如是单端探头注意接地回 路要尽可能的短,最好是用差分探头测度,占空比控制在 45% ~ 55% 之间。在测试环境没问题时测出的 信号应为方波,而非正弦波,一般客户自测是正玄波,且占空比 为50%,基本都是测量不正确。

MAC_CLK 或 RXCLK 由 PHY 提供,如果接收的 CLK 测量信号完整性有问题,因为一般 PHY 端没有寄 存器可调,可能只能通过硬件手段调整,可以在发送端串高频电感来改善边沿过缓(不能用普通电感, 带宽要满足才可用),通过发送端电阻分压,降低幅值调整占空比

TX_CLK 有问题,出现边沿过缓,可以通过 IO 读取相应寄存器,看 IO 驱动强度是否有调整到最大,可 以接上示波器看;同时,直接通过 IO 命令来调整驱动强度观察波形的变化,驱动调整改善不明显也可偿 试串高频电感,或将串接 22ohm 电阻改大;如出现占空比不在规范内,可以通过分压 MAC_CLK的幅度 来调整 TX_CLK 占空比,分压值为串接 100ohm,下地电阻值因布板而异,不同的板子值不一样,可以 从100 向上调,直到示波器观察到占空比符合要求为止。如果以上收效都不大,并且现在使用的 IO 是 3.3V,在 PHY 与 RK 平台端都支持 1.8V IO 的情况下,可以将 IO 电源改为 1.8V 再看信号完整性,1.8V IO 信号指标强于 3.3V,推荐使用1.8V IO。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/535332.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

今天讲讲MYSQL数据库事务怎么实现的!

目录 什么是数据库事务 Mysql如何保证原子性 Mysql如何保证持久性 MySQL怎么保证隔离性 事务隔离级别 脏读的解决 不可重复读的解决 幻读的解决 MVCC实现 Read View 那么RC、RR级别下的InnoDB快照读有什么不同? 什么是数据库事务 数据库事务是指一组数据…

鸿蒙让我赚到了第一笔桶金!年薪33.6W!

抢人!抢人!抢人! 所谓抢滩鸿蒙,人才先行。鸿蒙系统火力全开后,抢人已成鸿蒙市场的主题词! 智联招聘数据显示,春节后首周,鸿蒙相关职位数同比增长163%,是去年同期的2.6倍…

【包编译】库文件安装错位置怎么办

背景: 在建图的工作空间mapping中,编译好了GeographphicLib-2.3之后,对工作空间mapping进行编译,报错,找不到下面这俩。 总结: 原因:因为GeographphicLib的库文件在编译的时候没有放到默认系统…

“人工智能+数字人”,让数字技术赋能多领域智能化管理、数字化服务

AI数字人结合了语音合成、语音识别、语义理解、图像处理、虚拟形象驱动等多项AI核心技术,可以实现导览服务、信息播报、互动交流、业务咨询等智能化功能。 如今,AI数字人逐渐被政务、文旅、展馆展厅、博物馆、数字会议、金融、校园等等领域多元化应用&am…

springboot如何切换内置web服务器?

切换内置web服务器 这是没有引入web依赖的服务 这是引入web依赖的服务 由此可知默认是tomcat服务器 那么如何切换内置服务器 只要有对应服务器的坐标即可自动切换&#xff0c;先排除tomcat再引入依赖&#xff0c;比如切换成jetty服务器 <dependency><groupId>org…

SQL Serve---查询

概要 1、order by子句 —默认asc&#xff08;升序&#xff09;、desc&#xff08;降序&#xff09; 2、distinct关键字 3、group by子句 4、聚合函数 —max()、min()、sum()、avg()、count() 5、having子句 6、compute子句 英文关键字 order by 排序 asc…

【SpringBoot整合系列】SpringBoot整合FastDFS(二)

目录 SpringBoot整合FastDFSJava客户端/依赖常用api接口解释1.uploadFile参数返回值 2.uploadSlaveFile参数返回值 3.getMetadata参数返回值 4.overwriteMetadata参数&#xff1a;返回值&#xff1a;无 5.mergeMetadata参数&#xff1a;返回值&#xff1a;无 6.queryFileInfo参…

linux重定向符号

将ls命令执行结果重定向到a文件中 将错误ls命令执行结果重定向到a文件中&#xff08;这里用到前面的标准错误输出重定向&#xff09;

python linux服务器ssh简单爆破(测试用户名密码)(连接ssh服务器)(测试登录ssh服务器)

文章目录 背景示例代码代码解释导入模块SSH服务器的地址和端口用户名和密码列表生成所有可能的用户名和密码组合尝试连接到SSH服务器并验证用户名和密码遍历并测试每一对凭证 背景 我们华为摄像头linux终端的密码忘了&#xff0c;还不太好初始化&#xff0c;手动一个个测试太麻…

宏观认知第一篇--AI 是否就是第四次工业革命?

今年春节期间李一舟老师突然爆火&#xff0c;成功晋升为能与 ChatGPT 公司 CEO 齐名的中国 AI 大佬&#xff0c;赚到几个小目标后又火速被封&#xff0c;于是想着有空写篇小文章讲一讲跟普通人切身相关的话题-- AI 是否就是第四次工业革命&#xff1f; “AI 是否就是第四次工业…

数学杂谈之三:数学思想方法

数学杂谈之三&#xff1a;数学思想方法 数学杂谈之一&#xff1a;数学的形态 https://blog.csdn.net/cnds123/article/details/137437208 数学杂谈之二&#xff1a;数学中的概念和理解 https://blog.csdn.net/cnds123/article/details/137500537 数学思维、数学思想和数学方法…

SpringBoot学习(一)引入、分析、核心

文章目录 SpringBoot特性示例总结简化整合简化开发简化配置简化部署简化运维 Spring Initializer创建向导 应用分析依赖管理机制自动配置机制初步理解完整流程 SpringBoot学习点 核心技能常用注解YAML配置文件基本语法示例辅助工具lombok 日志配置简介格式组成记录日志日志级别…

看AI赋能数智化 | Gooxi AI服务器闪耀CITE 2024

4月9日“中国电子信息博览会暨2024 AI算力产业大会”在深圳如期开展&#xff0c;Gooxi携最新产品、行业应用全栈解决方案出席盛会&#xff0c;全面展示Gooxi回应数智新时代下机遇与挑战的丰富AI创新实践成果。 All in AI&#xff0c;奔赴新质生产力 作为中国领先的服务器解决…

题目 2348: 信息学奥赛一本通T1436-数列分段II【二分答案】

信息学奥赛一本通T1436-数列分段II - C语言网 (dotcpp.com) #include<iostream> #include<algorithm> #include<cstring> using namespace std; #define int long long const int N1e5100; const int inf1e9; int n,m; int a[N]; bool check(int mid) {int s…

Linux网络名称空间和虚拟机有何区别

在Linux系统中&#xff0c;网络名称空间和虚拟机都是实现资源隔离和虚拟化的技术&#xff0c;但它们在设计理念、实现机制、资源消耗、使用场景等方面存在着显著的区别。本文旨在全方位、系统性地分析这两种技术的区别。&#x1f50d; 1. 设计理念与实现机制 1.1. 网络名称空…

中通科技数仓数据治理实践

目录 一、背景 1.1 中通数仓架构介绍 1.2 中通数仓层级划分 1.3 中通数据现状 1.4 中通数仓现面临的压力 二、数据仓库具体实践 2.1 时效治理 2.1.1 数据入仓治理 2.1.2 核心模型治理 2.2 存储治理 2.3 内存治理 2.3.1 内存浪费治理 2.3.2 数据倾斜治理 2.3.3 内…

10:00面试,10:08就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到8月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

基于 MATLAB 和 App Designer 的 UI 交互框架开发的一款电力系统潮流计算工具

基于 MATLAB 和 App Designer 的 UI 交互框架开发的一款电力系统潮流计算工具 文章目录 基于 MATLAB 和 App Designer 的 UI 交互框架开发的一款电力系统潮流计算工具一、软件介绍二、软件功能1、数据输入 2、潮流作业设置3、 潮流结果报表及可视化三、 软件设计思路1 、牛顿拉…

C语言操作符详解(三)

一、表达式求值 1.1整型提升 C语言中整型算术运算总是至少以缺省整型类型的精度来进行的。 为了获得这个精度&#xff0c;表达式中的字符和短整型操作数在使用之前被转换为普通整型&#xff0c;这种转换称为整型提升。 如何进行整型提升呢&#xff1f; 1. 有符号整数提升是按…

高并发高性能接口中,异步打印并采集业务日志的实现方案

一、背景 高并发接口中&#xff0c;为了提高接口的高性能&#xff0c;在需要保存审计及操作记录的时候&#xff0c;往往有以下常见方案&#xff1a; 保存到redis数据库异步保存到mysql/mongodb/es等数据库logger打印业务日志&#xff0c;采集与展示则交由elk模块 对于第一种…