首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >mdio总线上的多个设备

mdio总线上的多个设备
EN

Stack Overflow用户
提问于 2020-08-10 14:59:15
回答 1查看 267关注 0票数 0

我在MDIO总线上有多个设备(一个AR8035物理层和6个DP83849IFVS双物理层)。总线连接到带有Linux4.14.40的AM335x SoC。我认为AR8035的Davinchi_mdio会扫描总线并找到所有设备并附加驱动程序。我怎样通过mdio进入这辆巴士?我想写独立的(不是PHY驱动程序)内核模块,可以简单地访问mdio总线?我该怎么做呢?我想用phy_write/phy_read来做这件事,但是我不能从我的内核模块中获得结构phy_device*。如何从接口的名称("eth0")获取结构phy_device*。它在锁/互斥方面会安全吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-13 00:43:20

如果你已经有了一个用于MDIO控制器的子系统,那么我可以考虑实现一个用于MDIO接口的UIO驱动程序,它处理读写操作。

与乱七八糟的内核驱动程序相比,UIO驱动程序是安全的,完全控制将由使用该UIO的用户应用程序完成。

*每个UIO设备通过一个设备文件和多个sysfs属性文件进行访问。第一个设备的设备文件名为/dev/uio0,后续设备的名称为/dev/uio1、/dev/uio2,依此类推。

/dev/uioX用于访问卡的地址空间。只需使用mmap()来访问卡的寄存器或RAM位置。

通过从/dev/uioX读取来处理中断。一旦中断发生,/dev/uioX的阻塞read()将立即返回。*

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63335496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档