您好、欢迎来到现金彩票网!
当前位置:九乐棋牌 > 外围处理机 >

pci总线上这么多设备怎么区分彼此的?

发布时间:2019-06-07 21:02 来源:未知 编辑:admin

  每个pci总线控制器和pci设备相连时,有一根IDSEL信号线。IDSEL信号,一端接在pci设备的IDSEL端,另一头接在pci总线控制器的pci地址线根IDSEL接在同一条AD[31:11]上)。这个独特的连接,决定了pci设备的slot号。

  再问,pci地址空间,这个空间有多大,是不是就是kmalloc所在的位置吧,但是这个和配置空间有什么区别?字符设备好像没有所谓的配置空间吧,配置空间具体干嘛用的,我们driver需要管吗?

  做BSP的很关心pci配置空间,做pci设备driver的,一般也就从pci配置空间读取个中断号和pcimem空间的基址和大小等有限的功能。也有可能大量操作pci配置空间,这个得看具体的pci设备硬件设计。

  pci地址空间和cpu地址空间独立,但是又存在映射关系。所以,虽然pci地址空间可以有32/64位,但实际不可能达到这么大。cpu的内存地址空间,需要空出来一部分专门映射给pci总线GB的空间用作映射到pci地址空间上去的线GB内存地址空间。这时候就不可能支持2GB以上的物理内存了。

  1、linux启动时,会初始化pci总线控制器,告知pci控制器,哪一部分的cpu内存地址能被映射到pci地址总线。这里仅仅是一个整体上的大划分。

  然后扫描pci总线,探测设备,给设备分配中断号,以及在上面约定的范围内,给每一个pci设备分配具体的合法的pci总线基址,然后注册pdev

  我的理解,总线地址,比如pci设备自带ddr内存,从0开始,0x00他在pci的ddr内存的起始位置;物理地址,是cpu操作内存的地址,0x00在系统内存的起始位置,差好多的,为什么会相同

  另外,pci设备自己看自己的资源,例如显卡硬件操作自己的显存,在linux通过配置空间给显卡分配一个pci总线地址前,显卡自己也不会响应任何pci地址总线上的任何读写请求,此时之接受pci配置空间的访问。

  MMAP,把设备内存,比如:显卡的显存,映射到用户进程地址空间,这个和ioremap有什么区别??ioremap就是获得了显存的虚拟地址对其操作,mmap就是映射出去,给用户进程使用,但是也会给显存分配虚拟地址,比ioremap更进一步?

http://mamoohouse.com/waiweichuliji/85.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有