linux-kernel – 将现有的Linux设备结构与设备文件相关联

linux-kernel – 将现有的Linux设备结构与设备文件相关联,第1张

概述我正在使用嵌入在具有 Linux内核2.6.33的Virtex4 FPGA中的PowerPC 405进行开发. 到目前为止,我一直在以内核可加载模块的形式编写FPGA中实现的平台设备的驱动程序.使用平面Open Firmware Device Tree文件注册设备.要创建设备文件,我使用OF函数获取设备节点,然后注册一个新的miscdevice,然后自动注册一个次设备号并为我创建设备文件.这也会创 我正在使用嵌入在具有 Linux内核2.6.33的Virtex4 FPGA中的PowerPC 405进行开发.

到目前为止,我一直在以内核可加载模块的形式编写FPGA中实现的平台设备的驱动程序.使用平面Open Firmware Device Tree文件注册设备.要创建设备文件,我使用OF函数获取设备节点,然后注册一个新的miscdevice,然后自动注册一个次设备号并为我创建设备文件.这也会创建一个嵌入miscdevice的设备(即miscdevice.this_device)

问题是现在我需要执行DMA *** 作.我尝试使用miscdevice.this_device调用dma_alloc_coherent()函数,但此设备未与任何总线关联并始终返回错误.我做了一些挖掘,结果发现struct_device还有一个嵌入在其中的结构设备(即of_device.dev).当我尝试使用dma_alloc_coherent()时,它运行得很好.

所以现在我有两种不同的结构设备结构,一种用于管理我的角色设备文件,另一种用于管理底层的Open Firmware系统调用,总线和DMA事务.当然,这些设备在sysfs中并不相互关联.

我的问题是,是否有可能以某种方式请求为我从OF层获得的设备结构创建设备文件而不是使用Misc设备API创建新设备?这样一切都将与单个设备结构相关联.

解决方法 我认为你对dma_alloc_coherent()的修正是正确的.

但我不认为使用嵌入在结构of_device中的设备结构来替换您创建的miscdevice是不对的. of_device是Open Firmware数据库中对象的描述.并且根据linux设备驱动程序模型,设备结构嵌入在linux内核中的各种设备对象中.我认为你将miscdevice注册为一个字符设备,应该有file_operations结构相关联.

总之,它们是不同的观点,它们不能互相替代.

总结

以上是内存溢出为你收集整理的linux-kernel – 将现有的Linux设备结构与设备文件相关联全部内容,希望文章能够帮你解决linux-kernel – 将现有的Linux设备结构与设备文件相关联所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1017902.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存