linux 网口phy问题记录

简介: 问题是这样的,内核启动识别网口的时候,多识别了一个,驱动本身是支持双网口的,理论上另一个phy不存在,应该识别不到。 后来发现是读phy_id的时候,对于不存在的Phy地址,有返回0的情况,但是内核认为只有0x1fffffff的才是空,多加了个判断条件得以解决。

记录下识别phy的过程:

  1. 在网口驱动的probe中,调用mdiobus_register;
  2. 在mdiobus_register函数中,会对从0到PHY_MAX_ADDR(一般是31)依次调用mdiobus_scan;
  3. 在mdiobus_scan中会调用get_phy_device,如果返回成功,则调用phy_device_register;
  4. 在get_phy_device中,会调用get_phy_id来读取对应地址上的phy_id,然后如果满足((phy_id & 0x1fffffff) == 0x1fffffff),则认识该phy不存在。
  5. 然后在port的probe中会调用phy_connect来连接phy;
  6. 在phy_connect中,会调用bus_find_device_by_name来查找对应的phy是否存在。存在则connect_direct。
相关文章
|
6月前
|
Linux
|
Ubuntu 网络协议 Linux
嵌入式Linux系列第8篇:操作网口
嵌入式Linux系列第8篇:操作网口
|
6月前
|
安全 Linux
Linux【问题记录 03】阿里云+腾讯云服务器的 kdevtmpfsi(H2Miner挖矿蠕虫变种)病毒处理(5个详细步骤)
Linux【问题记录 03】阿里云+腾讯云服务器的 kdevtmpfsi(H2Miner挖矿蠕虫变种)病毒处理(5个详细步骤)
212 1
|
6月前
|
安全 Linux 数据安全/隐私保护
Linux【问题记录 05】阿里云+腾讯云服务器挖矿木马 kthreaddk 处理记录+云服务器使用建议
Linux【问题记录 05】阿里云+腾讯云服务器挖矿木马 kthreaddk 处理记录+云服务器使用建议
168 0
|
6月前
|
安全 Unix Linux
Linux【问题记录 02】腾讯云 cron、sshd 进程CPU占用超95%(亡命徒 Outlaw 僵尸网络攻击)问题排查及处理步骤
Linux【问题记录 02】腾讯云 cron、sshd 进程CPU占用超95%(亡命徒 Outlaw 僵尸网络攻击)问题排查及处理步骤
192 0
|
6月前
|
分布式计算 安全 网络协议
Linux【问题记录 04】SSH突然无法连接排查2个小时最终解决Failed to start OpenSSH server daemon及阿里云服务器的 kdevtmpfsi 挖矿病毒处理
Linux【问题记录 04】SSH突然无法连接排查2个小时最终解决Failed to start OpenSSH server daemon及阿里云服务器的 kdevtmpfsi 挖矿病毒处理
513 0
|
6月前
|
弹性计算 Linux 数据安全/隐私保护
Linux【问题记录 01】阿里云CPU使用率 100% ECS 同时连接数峰值 25k+ 问题排查无果(附阿里云重新初始化云盘详细步骤)
Linux【问题记录 01】阿里云CPU使用率 100% ECS 同时连接数峰值 25k+ 问题排查无果(附阿里云重新初始化云盘详细步骤)
342 0
|
Ubuntu NoSQL Java
超详细的linux部署nginx实战记录
最近新购置一台阿里云4核8G服务器,需要部署nginx.记录一下操作步骤,以后有新的服务器部署直接拿过来用就可以.这里购置的服务器配置信息:ubuntu16.04 64位.nginx官网下载地址:http://nginx.org/en/download.html.这里安装nginx-1.8.0.tar.gz,快捷下载地址:nginx-1.8.0.tar.gz下载,以后不用每次去官网下载.下面是具体的安装步骤(注意本文的命令是基于Ubuntu,不是centos或其他版本,安装同样软件对应的命令会有区别)
超详细的linux部署nginx实战记录
|
SQL Shell Linux
LInux shell 编写记录-日期9月判断中遇到shell默认八进制计算
很高兴能开始是新的知识点,我在使用sh 运行hive脚本以后才发现不知不觉的时候我已经开始使用shell了。。。
140 0
LInux shell 编写记录-日期9月判断中遇到shell默认八进制计算
|
Linux 内存技术
Linux NFS挂载时候解决的记录
Linux NFS挂载时候解决的记录
230 0
Linux NFS挂载时候解决的记录