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双网口方案的网卡软件问题分析以及排查方向。

一文解决! A40i最常见的3种网卡软件问题相关推荐

  1. rails db 查询优化_如何优化查询以解决Rails中常见的可伸缩性瓶颈

    rails db 查询优化 by Usama Ashraf 通过Usama Ashraf 如何优化查询以解决Rails中常见的可伸缩性瓶颈 (How to optimize your queries ...

  2. linux下hg无法运行_Linux 无法启动常见的几种原因及解决办法

    导致 Linux 无法启动的原因有很多,下面良许小编就将常见的几种原因及解决办法进行详述,希望对大家有所帮助. 文件系统配置不当,如 /etc/inittab文件./etc/fstab 文件等配置错误 ...

  3. 一文解决关于建立时间和保持时间的困惑

    公众号[TechDiary],专注技术分享,手把手教你成为技术大神 之前介绍数字电路复位信号设计的文章中有提到过很多次建立时间.保持时间的概念,事实上建立/保持时间(setup time & ...

  4. 一文解决关于VLAN所有的疑惑

    一文解决关于VLAN所有的疑惑 VLAN 基本概念 为什么需要VLAN? 怎么在交换机上划分VLAN,VLAN的工作原理 有了子网,已经隔离了广播,还需要VLAN干啥? 只进行子网划分,不进行VLAN ...

  5. 过拟合解决方法python_《python深度学习》笔记---4.4、过拟合与欠拟合(解决过拟合常见方法)...

    <python深度学习>笔记---4.4.过拟合与欠拟合(解决过拟合常见方法) 一.总结 一句话总结: 减小网络大小 添加权重正则化 添加 dropout 正则化 1.机器学习的根本问题? ...

  6. Java常见的几种内存溢出及解决方法

    Java常见的几种内存溢出及解决方法[情况一]: java.lang.OutOfMemoryError:Javaheapspace:这种是java堆内存不够,一个原因是真不够(如递归的层数太多等),另 ...

  7. django2.1支持的mysql版本_一文解决django 2.2与mysql兼容性问题

    Django是一个开放源代码的Web应用框架,由Python写成.采用了MTV的框架模式,即模型M,视图V和模版T.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS( ...

  8. MySQL-存储IP地址一文解决(随便问~)

    以下分析基于MySQL5.6及以上,参看: <高性能MySQL 第三版> https://dev.mysql.com/doc/refman/8.0/en/ 在MySQL中存储IP地址有多种 ...

  9. 服务器不稳定怎么解决?常见的4种问题和6种处理方法

    一.常见的4种问题 1.机房或服务器问题 联系服务器提供商,要求协助排查故障并解决或者更换硬件. 2.软件和硬件故障故障问题 要求服务商更换服务器,或者升级服务器. 3.网站本身问题 通过优化网站结构 ...

最新文章

  1. python画饼图-python使用Matplotlib画饼图
  2. python中的range_python中range()与xrange()用法分析
  3. 2018-2019-2 20165212《网络攻防技术》Exp5 MSF基础应用
  4. java空心正方形代码_从Java中的用户输入绘制空心星号正方形/矩...
  5. 计算机网络(二十七)-IPv4
  6. (王道408考研数据结构)第六章图-第四节7:关键路径(最早发生时间、最迟发生时间)
  7. matlab刘卫国课后答案第三版,MATLAB程序设计与应用(刘卫国编)课后实验答案
  8. 吴恩达深度学习4.2练习_Convolutional Neural Networks_Residual Networks
  9. Rocky4.2下安装金仓v7数据库(KingbaseES)
  10. www.12306.cn是安抚群众心灵的吧?
  11. conda create出现连接问题_使用conda安装命令时一直出现问题,因为从2019年4月添加的国内镜像都不能用了...
  12. 氨基-peg2000-水溶CulnS/ZnS量子点|NH2-PEG-CulnS/ZnSQDS的透射电镜(TEM)和高分辨透射电镜(HRTEM)图片
  13. 一种新型的EC编码,LRC码,基于RS码的改进,特点介于RS和副本之间。
  14. android app 设置以太网静态Ip
  15. 移动端布局三种视口_移动端布局:视口viewport的理解
  16. RTL8367RB -CG
  17. Type-c引脚定义
  18. 云主机概念的简单介绍
  19. GDOI2017 总结
  20. Spring Security系列(7)-访问控制流程源码解析

热门文章

  1. python输出去空格_Python去除多余空格
  2. android唤醒音乐播放器,android调用音乐播放器,三种方
  3. 【信号与系统】(二十四)z变换与z域分析——z域分析
  4. android点赞动画仿twritter,Android仿直播特效之点赞飘心效果
  5. LiveNVR高性能RTSP、Onvif探测流媒体服务接入海康、大华等摄像机转WEB无插件直播
  6. iPhone12屏幕问题超多 iPhone12 Pro Max却大获好评
  7. 张家辉为何被叫渣渣辉?
  8. QQ聊天记录可作交易证据 网上购物有了规范
  9. 1267:【例9.11】01背包问题
  10. Java pdf使用aspose分页转图片后再合成pdf再压缩pdf, 所有文件放到缓存中代码