免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: almeydifer

请问可以用PCI驱动程序来驱动一个字符设备吗? [复制链接]

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2009-03-11 15:03 |显示全部楼层
原帖由 almeydifer 于 2009-3-11 15:01 发表
多谢大家的解答,
现在的问题是不知道通过什么方式将字符设备和PCI驱动联系起来。


其实LDD3中展示的字符设备就是一个裸设备,一块内存而已。你所需要完成的可能就是PCI中如果读取一块内存吧?

论坛徽章:
0
发表于 2009-03-11 15:05 |显示全部楼层

回复 #11 Godbach 的帖子

是的,就是这样。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2009-03-11 15:16 |显示全部楼层
原帖由 almeydifer 于 2009-3-11 15:05 发表
是的,就是这样。


那看一下在设备的操作的结构体重,那个地方可以挂一个指针,指向你这块内存啊。

论坛徽章:
0
发表于 2009-03-11 15:19 |显示全部楼层
可以,但是完全没有必要。 一个普通的pseudo chardev driver就行了, why PCI?

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2009-03-11 15:20 |显示全部楼层

回复 #14 albcamus 的帖子

不知道LZ是基于什么需求?

论坛徽章:
0
发表于 2009-03-11 15:31 |显示全部楼层

回复 #15 Godbach 的帖子

现在在研究虚拟化系统,
想在特权域里虚构一个PCI设备,该设备其实就是一块内存,
在特权域里加入该设备后,然后因为PCI设备有热插拔的特性,我就想通过这种方式,让两个全虚拟化非特权域里都能够看到这个设备,并且正常的操作该设备。

论坛徽章:
0
发表于 2009-03-11 15:33 |显示全部楼层
我觉得成是成,但是发挥不了pci设备的优势。
我觉得pci最重要的就是能把设备的寄存器映射到总线上,通过内存访问的方式,
就可以控制硬件。
字符设备就是简单的对应几个函数就可以了。

这也就是为什么linux要实现多种类型的驱动框架的原因。
用一种框架写所有的驱动是不太合适的。

论坛徽章:
0
发表于 2009-03-11 16:38 |显示全部楼层
大部分资料都是假定PCI设备已经加载到总线后,相应的驱动程序怎么去绑定相应的设备的。
如何在系统中构造一个PCI设备,不知道有相应的源码吗?

论坛徽章:
0
发表于 2009-03-11 16:52 |显示全部楼层
如果你只是想在两个guests之间共享内存, 那么hypervisor是什么? 它的vm实现应该有这种共享内存的东西。

如果是要让guests直接看到host机器上的设备, 这需要特殊的技术; 如果是虚拟一个pci设备让guest看到, 这需要在虚拟机BIOS里下功夫。

论坛徽章:
0
发表于 2009-03-11 17:19 |显示全部楼层

回复 #19 albcamus 的帖子

的确就是想共享内存。
设想一下,在vmware里面,在host上插入一个USB优盘,guests的确可以感知到这个设备,并且可以正常的使用它。
Xen平台上我没有做过类似的试验,但是看到Xen summit 上好像也有提及,我就是想用类似的一个思想来为两个guests之间共享内存。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP