当前位置:网站首页>一文解决! A40i最常见的3种网卡软件问题
一文解决! A40i最常见的3种网卡软件问题
2022-07-19 17:57:00 【飞凌嵌入式】
OKA40i-C开发板的底板虽然只有一个网口,但A40i本身是有两个网络控制器的,因此在飞凌嵌入式发布的资料中有双网口方案。有的工程师小伙伴在开发过程中会遇见一些网卡的设计问题,今天小编来为大家分析3种常见的网卡软件问题以及排查思路。
1 问题分析
问题描述1:以太网初始化报错 No phy found
在执行ifconfig eth0 up命令时,出现"No phy found"异常log。
问题分析:
出现"No phy found",常见原因是供给phy使用的25M时钟异常,导致phy工作不正常,gmac驱动通过mdio接口也读不到phy的设备信息。
或者MDIO引脚配置不正确或者phy地址不正确,再就是MDIO没做上拉电阻,GMAC读取不到phy设备信息,用示波器量一下MDIO波形是否正确。
再或是phy芯片复位失败,需要更换phy芯片复位上拉电阻。
排查步骤:
(1)检查phy供电是否正常;
(2)检查phy使用的25M时钟(Soc ephy25M或外部晶振)是否正常;
(3)检查phy-mode是否按板级实际情况配置(mii/rmii/rgmii);
(4)检查MDIO是否有上拉电阻;
(5)检查MDIO引脚配置是否正确;
(6) eMAC phy地址是否和硬件一致;
(7) 检查复位上拉电阻是否和原理参考方案一致。
MDIO通讯正常验证:
使用phytool工具读取0x02 0x03寄存器 是否正确读取PHY芯片ID,读取成功,代表MDIO通讯正常。
问题描述2:以太网初始化报错NO SUCN DEVICE
执行ifconfig -a/ifconfig eth0/ifconfig eth0 up命令,找不到eth0设备。
问题分析:
以太网模块配置未生效或存在GPIO冲突。
排查步骤:
步骤1:抓取内核启动log,搜索"gmac"关键字段,检查gmac驱动是否probe成功;
步骤2:若内核启动log显示mac控制器probe失败,常见原因是GPIO资源冲突导致。
解决方法:
GPIO冲突会有报错信息,根据报错信息,查看GPIO冲突引脚。
查看以太网模块是否配置。
问题描述3:以太网初始化报错Initialize hardware error
执行ifconfig eth0 up命令,出现"Initialize hardware error"异常log。
问题分析:
出现"Initialize hardware error",一般是由于phy没有输出RX CLK至MAC控制器,导致MAC控制器内部soft reset失败,常见原因是phy供电异常或25M时钟异常;或者是检查数据引脚的时钟是否正确,RMILL RX CLK TX CLK 是否是正确时钟。
排查步骤:
用示波器抓取rx_clk时钟波形,查看是否保持25M时钟稳定,如果出现25M/2.5M 来回跳动。即MAC与phy未link成功。
解决方法:
软件上可通过在phy复位之后,设置寄存器0 固定为100M全双工,可link成功。目前可这样解决问题:
在drivers/net/ethernet/allwinner/sunxi-gmac.c 中 geth_phy_init函数中 phy_connect_direct 之前加入phy_write(phydev, 0x0, 0x2100)。
以上是我们在A40i开发过程中常见网卡设计问题,有些可能是因为大家在参考方案时出现了配置问题,或者是因为芯片输出的信号不正常导致。大家在参考飞凌A40i的双网口方案时,可以查看本文章整理的问题点,说不定就是您现在项目中遇见的bug。
接下来,小编将给大家介绍一些常用的网卡软件问题对应的排查手段。这些排查手段可以帮助您在调试phy时有一个基本的调试思路,提到的一些工具可以帮助您快速定位并且解决网卡问题。
2 排查手段
(1)检查menuconfig及dts以太网配置是否打开;
(2)检查phy-mode配置是否与PHY和GMAC之间的物理接口匹配,如rgmii、rmii等;
(3)检查GPIO配置是否正确,如IO复用功能、驱动能力等;
(4)使用phytool工具读取phy ID 验证MDIO是否正确。
如下图示例,能够正常读取JL11x1的phy ID则代表MDIO通讯正常。
使用phytool工具读取phy 状态寄存器,查看phy芯片状态。以JL11x1为例,如0x01状态寄存器读取值为0x786d,说明link成功并且工作正常。
以上就是小编为大家整理的关于A40i双网口方案的网卡软件问题分析以及排查方向。
边栏推荐
- 基于C语言的自动机dot画图脚本设计
- ES6中的模板字符串,简化对象写法
- ROS回调函数新发现
- Preparation of water-soluble sodium ferulate albumin nanoparticles /p-cs-np loaded teniposide multilayer coated serum protein nanoparticles
- Extended operator in ES6
- Magicdata Ramc data set evaluation | northwest Polytechnic University champion team sharing
- Arrow function in ES6
- ARM指令CMP详解
- 申万宏源证券开户安全吗,开户就可以买股票了吗
- 一图解释RIB表与FIB表区别
猜你喜欢
【软件测试】—— 水杯测试用例
Crazy God redis notes 03
Preparation of dox-bsanp doxorubicin albumin nanoparticles / platinum loaded albumin nanoparticles targeting EGFR
Preparation of inh-rfp-bsa-nps loaded INH and RFP albumin nanoparticles / capataxel loaded albumin nanoparticles
Community Shangxin | magichub IO open source this wave of data is quite "Ollie to"
每日刷题记录 (二十八)
《如何打一场数据挖掘赛事》入门版
RES-BSANP白藜芦醇白蛋白纳米粒/包裹紫杉烷类的白蛋白纳米颗粒载体
About GCC compilation common commands
百度、阿里、腾讯,谁最先倒下?
随机推荐
[cloud co creation] design Huawei cloud storage architecture with the youngest cloud service hcie (Part 2)
性能工具 -- jmeter 环境准备
基于C语言的自动机dot画图脚本设计
群晖NPV套件(NPV Server)下载
R语言使用wilcox.test函数执行wilcox符号秩检验获取总体中位数(median)的置信区间(设置conf.level参数指定置信水平、置信区间的大小)
Filebeat采集日志交给Logstash
【Qt】解决 Qt console 输出中文乱码问题
关于GCC编译常用命令
Preparation of tacrolimus loaded HSA protein nanoparticles / dct-bsa docetaxel albumin nanoparticles / serum albumin hyaluronic acid nanoparticles
PMP考试易混淆概念辨析技巧!看完不丢分!
权限系统就该这么设计,yyds
一条 SQL 的执行过程
面试官必问的 3 道 MQ 面试题,还有谁不会??
STEPN链游系统开发模式详解(运动赚钱模式)
Preparation of PDA RBCs NPs polydopamine modified erythrocyte nanoparticles / hyaluronic acid coated brucine bovine serum protein nanoparticles
Structure assignment in ES6
R语言ggpubr包ggarrange函数将多幅图像组合起来、annotate_figure为组合图像添加注释、注解、标注信息、使用right参数在可视化图像右侧添加注解信息(在文本中添加上标和下标
VO、DTO、DO、PO区分和使用
R语言data.table包进行数据分组聚合统计变换(Aggregating transforms)、计算dataframe数据的分组四分位距(interquartile range, IQR)
INH-RFP-BSA-NPs载INH和RFP白蛋白纳米粒/载卡巴他赛的白蛋白纳米粒的制备