加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux-kernel – linux内核如何从Device树中获取数据?

发布时间:2021-01-09 18:49:53 所属栏目:Linux 来源:网络整理
导读:我是 Linux内核的初学者. 据我所知,在旧版本的内核中有一个特定于板的文件,其中所有设备都已注册(通过使用某些API,如platform_get_register等). 在较新版本的内核中,设备所需的信息将通过设备树传递. 我的问题是内核如何从设备树中获取驱动程序的信息? 设备

我是 Linux内核的初学者.
据我所知,在旧版本的内核中有一个特定于板的文件,其中所有设备都已注册(通过使用某些API,如platform_get_register等).
在较新版本的内核中,设备所需的信息将通过设备树传递.
我的问题是内核如何从设备树中获取驱动程序的信息?
设备如何通过设备树在内核中注册?

解决方法

如果您指的是OpenFirmware设备树,则将它们打包成特殊格式(dtb图像)并由引导加载程序与内核映像一起放入RAM中.然后,Bootloader调用内核入口点,将RAM中dtb映像的地址作为参数之一传递.

然后,位于< kernel> / drivers / of子目录中的内核子系统将遍历树,并且对于支持的每个设备条目,它将尝试通过device_add()和朋友(在Linux中创建设备的常规过程)创建所需的设备.如果驱动程序子系统可以找到合适的驱动程序,则该驱动程序的* _probe()回调将能够从传递给它的(可能是子类)设备对象中获取OF设备条目中找到的参数.

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读