摘要: 1. 简介 在调试网口驱动的过程中发现phy芯片的驱动框架结构还有点复杂,不仔细研究的话还不好搞懂,另外百度到的资料也不够全面,这篇就总结梳理一下这方面的知识。 我们知道一个 phy 驱动的原理是非常简单的,一般流程如下: 1、用轮询/中断的方式通过 mdio 总线读取 phy 芯片的状态。 2、在 阅读全文
posted @ 2023-04-30 11:17 学习,积累,成长 阅读(6230) 评论(0) 推荐(1) 编辑
摘要: 1. 概述 PHY芯片为OSI的最底层-物理层(Physical Layer),通过MII/GMII/RMII/SGMII/XGMII等多种媒体独立接口(介质无关接口)与数据链路层的MAC芯片相连,并通过MDIO接口实现对PHY状态的监控、配置和管理。 PHY与MAC整体的大致连接框架如下(图片来源 阅读全文
posted @ 2023-04-30 11:16 学习,积累,成长 阅读(2480) 评论(0) 推荐(0) 编辑
摘要: PHY 寄存器的地址空间为 5 位,从 0 到 31 最多可以定义 32 个寄存器(随着芯片功能不断增加,很多 PHY 芯片采用分页技术来扩展地址空间以定义更多的寄存器),IEEE802.3 定义了地址为 0-15 这 16 个寄存器的功能,地址16 - 31的寄存器留给芯片制造商自由定义,如下表所 阅读全文
posted @ 2023-04-30 11:15 学习,积累,成长 阅读(5340) 评论(0) 推荐(0) 编辑
摘要: 本文主要介绍以太网的MAC(Media Access Control,即媒体访问控制子层协议)和PHY(物理层)之间的MII(Media Independent Interface ,媒体独立接口),以及MII的各种衍生版本——GMII、SGMII、RMII、RGMII等。 简介 从硬件的角度看,以 阅读全文
posted @ 2023-04-30 11:13 学习,积累,成长 阅读(4781) 评论(0) 推荐(1) 编辑
摘要: 1 内核错误处理方式 当内核出现致命错误时,只要cpu还能正常运行,那么最重要的就是向用户输出详细的错误信息,以及保存问题出现时的错误现场。以上致命错误可包含以下两种类型: (1)硬件能检测到的错误,如非法内存访问,非法指令等,此时cpu会触发异常,并进入异常处理流程。在异常处理流程中会触发oops 阅读全文
posted @ 2023-04-30 11:12 学习,积累,成长 阅读(1135) 评论(0) 推荐(0) 编辑
摘要: 没有完美的代码 没有完美的人,更没有完美的代码。虽然教科书上说deadlock(死锁)多么不好不好,但是在现实生活中,很难把它完全消灭。假设不小心内核出现了deadlock,可能你得干瞪眼。CPU就在那里空等着,空转着,叫天天不应,叫地地不灵。等到海枯石烂,CPU生锈的那一天,它还会那么痴痴地等着那 阅读全文
posted @ 2023-04-30 11:11 学习,积累,成长 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 1 概述 linux内核包括进程管理、内存管理、中断管理、设备驱动、同步机制等各种模块,它们共同运行在一个共享的地址空间中,因此在运行中一旦出现问题,彼此之间可能具有千丝万缕的联系。 而且与用户态不同,内核还需要与形形色色的硬件打交道,因此对于某些较为诡异的问题,除了软件以外还可能受到硬件的影响。如 阅读全文
posted @ 2023-04-30 11:10 学习,积累,成长 阅读(547) 评论(0) 推荐(0) 编辑
摘要: crash简介 crash是redhat的工程师开发的,主要用来离线分析linux内核转存文件,它整合了gdb工具,功能非常强大。可以查看堆栈,dmesg日志,内核数据结构,反汇编等等。 crash支持多种工具生成的转存文件格式,如kdump,LKCD,netdump和diskdump,而且还可以分 阅读全文
posted @ 2023-04-30 10:35 学习,积累,成长 阅读(1889) 评论(0) 推荐(0) 编辑