现在的位置: 首页 > 综合 > 正文

pci总线概述

2017年08月25日 ⁄ 综合 ⁄ 共 1220字 ⁄ 字号 评论关闭

总线---

是一种传输信号的信道;由电气接口编程接口组成。

体系结构----

系统的各个部分通过pci总线pci-pci桥连接在一起。cpu和ram通过pci桥连接到pci总线0(即主pci总线),而具有pci接口的显卡直接连接到主pci总线上。pci-pci桥是一个特殊的pci设备,它负责将pci总线0和pci总线1连接在一起。

pci设备寻址----

每个pci设备由一个总线号,一个设备号,和一个功能号确定。pci规范允许一个系统最多拥有256条总线,每条总线最多带32个设备,但每个设备可以是最多8个功能的多功能板

/proc/iomem描述了系统中所有的设备I/O在内存地址空间上的映射。我们来看地址从1G开始的第一个设备在/proc/iomem中是如何描述的:

40000000-400003ff0000:00:1f.1

这是一个pci设备,40000000-400003ff是它所映射的内存空间地址,占据了内存地址空间1024 bytes的位置。0000:00:1f,1是pci外设的地址,第一个16位表示域,第二个8位表示一个总线号,第三个5位表示一个设备号,最后3位,表示功能号。

lspci ------查看系统中的pci设备。


配置寄存器---

每个pci设备都有一组固定格式的寄存器,即配置寄存器,配置寄存器由linux内核中的pci初始化代码与驱动程序共同使用。内核在启动时负责对配置寄存器进行初始化,包括设置中断号以及I/O基址等。

00H---01H vendor id 制造商标识

02H---03H device id 设备标识

04H---05H command 命令寄存器

06H---07H status 状态寄存器

08H revision id 版本识别号寄存器

09H ----0bH class code 分类代码寄存器

0cH cache line size cache 行长度寄存器

0dH  latency timer 主设备延迟时间寄存器

0eH header type 头标类型寄存器

0fH built-in-test-register自测试寄存器

10H---13H base address register 0 基地址寄存器0-------记录此设备使用的I/O与内存空间的位置。

14H---17H base address register 1 基地址寄存器1

18H---1bH base address register 2 基地址寄存器2

1cH---19H base address register 3 基地址寄存器3

30H----33H expasion rom base address扩展rom基地址

34H----3bH---------保留

3cH interrupt line 中断线寄存器-----记录此设备使用的中断号

3dH interrupt pin 中断引脚寄存器------记录pci设备使用的引脚号----为0不支持中断,非0支持中断。

3eH min_gnt 最小授权寄存器

3fH max_lat 最大延迟寄存器

抱歉!评论已关闭.