全志A40i应用笔记 | 3种常见的网卡软件问题以及排查思路

在飞凌嵌入式OKA40i-C开发板上虽然只有一个网口,但全志A40i-H处理器本身是有两个网络控制器的,因此在飞凌嵌入式提供的产品资料中提供了双网口解决方案。有的工程师小伙伴在开发过程中会遇见一些网卡的设计问题,今天小编为大家分享3种在使用OKA40i-C开发板时容易遇到的网卡软件问题以及排查思路。

一、问题分析:

问题描述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)。

以上是我们在OKA40i-C开发板的使用过程中常见网卡设计问题,有些可能是因为大家在参考方案时出现了配置问题,或者是因为芯片输出的信号不正常导致。大家在参考OKA40i-C开发板的双网口方案时,可以查看本文章整理的问题点,说不定就是您现在项目中遇见的bug。

接下来,小编将给大家介绍一些常用的网卡软件问题对应的排查手段。

二、排查手段:

这些排查手段可以帮助您在调试phy时有一个基本的调试思路,提到的一些工具可以帮助您快速定位并且解决网卡问题。

(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成功并且工作正常。

在这里插入图片描述

以上就是小编为大家整理的关于OKA40i-C开发板双网口方案的网卡软件问题分析以及排查方向,希望能够为您的项目开发有所帮助。

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

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

相关文章

基于Java+SpringBoot+Mybaties-plus+Vue+ElementUI 失物招领小程序 设计与实现

一.项目介绍 失物招领小程序 用户登录、忘记密码、退出系统 发布失物 和 发布招领 查看我发布的失物和招领信息 失捡物品模块可以查看和搜索所有用户发布的信息。 二.环境需要 1.运行环境:java jdk1.8 2.ide环境:IDEA、Eclipse、Myeclipse都可以&#…

【紫光同创国产FPGA教程】【PGC1/2KG第七章】7.数字钟实验例程

本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处 适用于板卡型号: 紫光同创PGC1/2KG开发平台(盘古1K/2K) 一:盘古1K/2K开发板(紫光同创PGC…

k8s configMap挂载(项目配置文件放到configMap中,不同环境不同配置)

背景说明 项目对接配置文件加密,比如数据库密码、redis密码等。但是密文只能放到指定的配置文件中(important.properties),该配置文件又不能接收环境变量,所以就很难区分不同环境的不同配置(不同环境的数据库密码、redis密码一般…

ECA-Net(Efficient Channel Attention Network)

ECA-Net(Efficient Channel Attention Network)是一种用于计算机视觉任务的注意力模型,旨在增强神经网络对图像特征的建模能力。本文详细介绍ECA-Net注意力模型的结构设计,包括其背景、动机、组成部分以及工作原理。ECA-Net模块的…

LoRaWAN物联网架构

与其他网关一样,LoRaWAN网关也需要在规定的工作频率上工作。在特定国家部署网关时,必须要遵循LoRa联盟的区域参数。不过,它是没有通用频率的,每个国家对使用非授权MHZ频段都有不同的法律规定。例如,中国的LoRaWAN频段是…

react-native 0.63 适配 Xcode 15 iOS 17.0+

iOS 17.0 Simulator(21A328)下载失败 App Store 更新到 Xcode15 后,无法运行模拟器和真机。需要下载iOS 17对应的模拟器。Xcode中更新非常容易中断失败,可以在官网单独下载iOS 17模拟器文件,例如:iOS_17.0.1_Simulator_Runtime.d…

开放智慧,助力学习——电大搜题,打开学无止境的新篇章

随着信息技术的迅猛发展,学习已经不再受时间和空间的限制。电大搜题微信公众号为广播电视大学和河南开放大学的学子们带来了便利和智慧,让学习变得更加高效和愉快。 电大搜题微信公众号作为一款专为电大学生而设计的学习助手,是学习中不可或…

红队专题-从零开始VC++C/S远程控制软件RAT-MFC-远程控制软件总结

红队专题 招募六边形战士队员[30]远控班第一期课程与远控总结 招募六边形战士队员 一起学习 代码审计、安全开发、web攻防、逆向等。。。 私信联系 [30]远控班第一期课程与远控总结 一.Bug修复(1)生成路径(2)显示系统版本号二.内存泄露(1)如何检查内存泄露 #define CRTDBG_…

【广州华锐互动】VR虚拟仿真技术为航测实践教学提供了哪些帮助?

在过去的几十年里,航空测量技术发展迅速,为我们提供了前所未有的地理信息获取手段。然而,这个领域的发展并未停止,最新的技术进步——虚拟现实(VR)——正在为航测实践教学开启新的篇章。 VR虚拟现实技术能够创建和体验三维虚拟环境…

基于SSM的二手车交易网站的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

金融工作怎么做?低代码如何助力金融行业

10月30日至31日,中央金融工作会议在北京举行。金融是国民经济的“血脉”,是国家核心竞争力的重要组成部分。会议指出,党的十八大以来,在党中央集中统一领导下,金融系统有力支撑经济社会发展大局,坚决打好防…

常见React Hooks 钩子函数用法

一、useState useState()用于为函数组件引入状态(state)。纯函数不能有状态,所以把状态放在钩子里面。 import React, { useState } from react import ./Button.cssexport function UseStateWithoutFunc() {const [name, setName] useStat…

华为云分布式数据库GaussDB,做金融数字化的坚实数据底座

本篇为大家分享下GaussDB的商业进展以及产品能力升级方面的最新情况。 1. 华为云GaussDB正在从金融覆盖到更多行业 从2019年开始,在华为内部通过持续的锤炼,推出了融合多项技术的自主创新的GaussDB数据库,而且陆续完成了华为公司内部核心系统…

华为交换机端口 access、trunk和hybrid收发数据规则

文章目录 1. 三个端口类型处理数据帧的汇总表2. access 端口3. trunk端口4. Hybrid 端口(交换机的默认端口类型)5.常用命令 1. 三个端口类型处理数据帧的汇总表 端口类型收到不带VLAN标签的帧的处理规则收到带VLAN标签的帧的处理规则发送帧时的处理规则…

线性代数(二)| 行列式性质 求值 特殊行列式 加边法 归纳法等多种方法

文章目录 1. 性质1.1 重要性质梳理1.1.1 转置和初等变换1.1.2加法行列式可拆分1.1.3 乘积行列式可拆分 1.2 行列式性质的应用1.2.1 简化运算1.2.2 将行列式转换为(二)中的特殊行列式 2 特殊行列式2.1 上三角或下三角行列式2.2 三叉行列式2.3 行列式行和&…

Leetcode—125.验证回文串【简单】

2023每日刷题&#xff08;二十三&#xff09; Leetcode—125.验证回文串 实现代码 class Solution { public:bool isPalindrome(string s) {int n s.size();if(n 1 && s[0] ) {return true;}int left 0, right 0;for(right 0; right < n; right) {if(s[rig…

微服务-服务注册中心

概念 服务注册中心相当于我们例子中说的餐馆管理者&#xff0c;负责服务实例的注册、心跳、简单的负载均衡等功能&#xff0c;同一个服务的不同实例&#xff0c;在注册中心中使用同一个名称。在调用时根据名称找到具体的实例执行具体的任务。如果实例长时间没有心跳&#xff0…

11-08 周三 图解机器学习之实现逻辑异或,理解输出层误差和隐藏层误差项和动量因子

11-08 周三 图解机器学习之实现逻辑异或&#xff0c;理解输出层误差和隐藏层误差项 时间版本修改人描述2023年11月8日14:36:36V0.1宋全恒新建文档 简介 最近笔者完成了《图解机器学习》这本书的阅读&#xff0c;由于最近深度学习网络大行其是&#xff0c;所以也想要好好的弄清…

2023.11.09 homework

4年级数学&#xff1a;不会做就作图&#xff0c;画出来&#xff0c;简单化就容易懂 2023.11.09 homework &#xff08;2&#xff09;-CSDN博客

Langchain-Chatchat实践详解

简介 本质上是在Langchain基础上封装的一层聊天服务&#xff0c;可以对接底层多种离线LLM和在线的LLM&#xff08;也可以对接自定义的在线LLM&#xff09;。提供基于知识库聊天功能相关的一系列API。 下载源码 源码地址&#xff1a; https://github.com/chatchat-space/Lang…