不积小流,无以成江海。
分类: 嵌入式
2022-07-08 16:37:27
linux 中 phy 驱动框架简析
https://blog.csdn.net/Longyu_wlz/article/details/108720457?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-108720457-blog-116789945.pc_relevant_aa&spm=1001.2101.3001.4242.1&utm_relevant_index=3
下面这个总结的很好
每一个 phy 驱动的行为由以下多个函数指针代表的方法组成:
函数名称 功能描述
soft_reset 执行 phy 的软件复位
config_init 在 phy 复位后将 phy 配置为一个既定的状态
probe 创建 phy->priv 并执行类似驱动绑定的过程
suspend/resume 电源管理挂起与恢复功能
config_aneq 修改速率双工模式自协商等配置
aneq_done 驱动自协商的结果
read_status 获取当前的速率双工与自协商配置状态
ack_interrupt 清楚挂起的中断
did_interrupt 检查是否 phy 触发了一个中断信号
config_intr 开启、关闭中断
remove 当驱动被移除时调用的接口
ts_info 请求查询 HW 时间戳状态
hwtstap 设置 phy 的 HW时间戳配置
rxtstamp 在 phy 这一层为 skb 请求一个接收时间戳
txtsamp 在 phy 这一层为 skd 请求一个发送时间戳
set_wol 使能 Wake-on-Lan
get_wol 获取 Wake-on-Lan 状态
read_mmd_indirect 读取 phy MMD 间接寄存器
write_mmd_indirect 写入 phy MMD 间接寄存器
其他网上文章
1、慢慢欣赏linux phy驱动初始化
https://blog.csdn.net/shipinsky/article/details/107419255
2、【PHY】关于学习以太网PHY的这件事情
https://blog.csdn.net/WongXiaoEr/article/details/123245943?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v1~rank_v31_ecpm-16-123245943-null-null.pc_agg_new_rank&utm_term=phy%E9%A9%B1%E5%8A%A8%E6%A8%A1%E5%9E%8B&spm=1000.2123.3001.4430
个人关注的部分如下(后面再增加)
注:MII命名是有一定规律的,比如G代表1000兆,XG代表10G(万兆),R代表减少引脚,S代表串行通信,例如,RGMII就是减少引脚的1000兆MII总线,SGMII就是串行通信的1000兆MII总线。