PCI Configuration Cycle Generation

之前的文章说过CPU只能通过I/O地址空间访问PCI设备的配置空间,下面就来说说这个访问过程是怎么实现的。

PCI Configuration Cycle Generation

步骤一:CPU向北桥的I/O空间地址端口(地址为CF8h)生成一个IO写请求,写入要访问的PCI配置寄存器的地址。这个PCI配置寄存器地址中包含了总线号(Bus Number)设备号(Device Number)功能号(Function Number)寄存器位置(Register Pointer,64DW),具体格式下图:

PCI Configuration Cycle Generation

步骤二:CPU向北桥I/O空间中的数据端口(地址为FCFh)发送IO读或者IO写请求。基于该请求,北桥向地址端口指定的PCI总线位置发送配置读或者配置写事务。