PCI设备扫描
来源:互联网 发布:ubuntu 微信调试工具 编辑:程序博客网 时间:2024/05/01 13:37
本博文为原创,转载请注明出处 http://blog.csdn.net/lux_veritas/article/details/8288174
PCI总线在设备的组织上呈现树状结构。pci总线以北桥的HOST-PCI视为它的根,其它与PCI相连的设备或桥都是作总线的子节点,由于pci总线支持pci桥,这棵树可以一直向下生长
典型的PCI总线结构。
每一个PCI设备,都由一个16位的标识符来表示,该标志符由一个总线号、一个设备号和一个功能号组成。总线号是设备所在总线的编号,PCI规范每个系统最多255个总线。设备号是在一条总线上的唯一标识编号,一条总线上最多挂32个设备。所以,这个16位的标识符构成如下:
8~15bit:总线号,3~7bit:设备号,0~2bit:功能号。
程序员通过设置PCI设备的配置寄存器与PCI设备交互,具体的PCI设备配置空间不在这里详述。
PCI设备的扫描过程:
PCI设备的扫描在系统加电自检阶段完成,IA-32架构主要由BIOS程序负责PCI设备的扫描以及配置寄存器的设置,BIOS向上提供PCI设备枚举接口给OS调用。
PCI设备以及PCI桥(包括PCI-PCI桥、PCI-ISA桥)构成了一个完整的树状结构,以HOST-PCI桥(特殊的PCI-PCI桥)作为树的根节点,与它相连的设备作为叶子节点,与它相连的桥作为它的子树并向下生长下去。由此可见,整个设备的枚举过程,实际上是对PCI桥执行递归调用,若为叶节点做标记,若为子树继续执行枚举算法。
PCI-PCI桥主要有三个属性:
1.Primary Bus:表示该桥所属的根总线
2.Secondary Bus:表示以该桥为根的总线号
3.Subordinate Bus:表示以该桥为根的子树中的最高总线号
以该图为例,“PCI-PCI桥1”的Primary Bus为0,Secondary Bus为1,Subordinate Bus为2。
PCI设备的扫描过程为,从HOST-PCI桥开始,首先探测总线0上的设备,探测到桥设备时,再探测以其为根的所有设备及桥。重复执行以上动作,直至全部设备被扫描出来。
- PCI设备扫描
- PCI总线---PCI设备扫描过程
- PCI设备扫描和资源分配
- pci总线扫描设备本地操作(二)(local bus operation)
- linux pci扫描流程
- PCI设备操作--枚举
- PCI设备驱动
- PCI设备驱动开发
- 遍历PCI设备
- pci设备驱动
- PCI设备驱动
- PCI设备驱动开发
- pci问号设备驱动
- PCI设备的初始化
- PCI设备驱动知识点
- PCI设备驱动开发
- PCI设备驱动开发
- 引用 遍历PCI设备
- VC6.0中C++实现线程池
- ZOJ 3675 Trim the Nails(DFS)
- TRIZ理论学习的思考
- 图解Oracle数据库(二)
- size_t
- PCI设备扫描
- 小根堆
- iOS 程序插件及功能动态更新思路
- 欧拉计划:25题斐波那契数列中第一个包含1000位数字的项是第几项?
- php set_time_limit() 函数
- linux下邮件查看命令
- struts 基本知识
- 系统服务详解之时间服务0
- 高性能IO设计的Reactor和Proactor模式 .