接前一篇文章:《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置(13)

2.3.1 PCI桥

在PCI Agent设备的配置空间中包含了许多寄存器,这些寄存器决定了该设备在PCI总线中的使用方法,本节不会全部介绍这些寄存器,因为系统软件只对部分配置寄存器感兴趣。PCI Agent设备使用的配置空间如图2-9所示:

《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置(14)-LMLPHP

本回继续讲解在PCI Agent设备的配置空间中包含的其余寄存器:

(7)Capabilities Pointer寄存器

在PCI设备中,该寄存器是可选的;但是在PCI-X和PCIe设备中,必须支持这个寄存器Capabilities Pointer寄存器存放Capabilities寄存器组的基地址,PCI设备使用Capabilities寄存器组存放一些与PCI设备相关的扩展配置信息

(8)Interrupt Line寄存器

这个寄存器是系统软件对PCI设备进行配置时写入的,该寄存器记录当前PCI设备使用的中断向量号,设备驱动程序可以通过这个寄存器,判断当前PCI设备使用处理器系统中的哪个中断向量号并将驱动驱动程序的中断服务例程注册到操作系统中

该寄存器由系统软件初始化,其保存的值与8259A中断控制器相关该寄存器的值也是由PCI设备与8259A中断控制器的连接关系决定的如果在一个处理器系统中,没有使用8259A中断控制器管理PCI设备的中断,则该寄存器中的数据并没有意义

在多数PowerPC处理器系统中,并不使用8259A中断控制器管理PCI设备的中断请求,因此该寄存器没有意义。即使在x86处理器系统中,如果使用了I/O APIC中断控制器(即未使用8259A中断控制器),该寄存器保存的内容仍然无效。目前在绝大多数处理器系统中,并没有使用该寄存器存放PCI设备使用的中断向量号

(9)Interrupt Pin寄存器

这个寄存器保存PCI使用的中断引脚(Interrupt Line中是中断向量号)。PCI总线提供了4个中断引脚:INTA#、INTB#、INTC#和INTD#。Interrupt Pin寄存器为1时表示使用INTA#引脚向中断控制器提交中断请求,为2时表示使用INTB#为3时表示使用INTC#为4时表示使用INTD#

如果PCI设备只有一个子设备时,该设备只能使用INTA#如果有多个子设备时,可以使用INTB~D#信号如果PCI设备不使用这些中断引脚,向处理器提交中断请求时,该寄存器的值必须是0。值得注意的是,虽然在PCIe设备中并不含有INTA~D#信号,但是依然可以使用该寄存器,因为PCIe设备可以使用INTx中断消息模拟PCI设备的INTA~D#信号

PCI Agent设备配置空间中包含的其余寄存器请看下回。

01-10 04:03