只有Type01h配置请求可以被转换为Type00h,反之不行。当CONFIG_ADDRESS寄存器的Bus Number字段为0时,处理器对CONFIG_DATA寄存器操作时,HOST主桥将直接产生Type00h配置请求,挂接在PCI总线0上的某个设备将通过ID译码接收这个Type00h配置请求,并对配置寄存器进行读写操作。如果PCI总线上没有设备接收这个Type00h配置请求,将引I发MasterAbort,详情见PCI总线规范。
如果CONFIG_ADDRESS寄存器的Bus Number字段为n(n≠0),即访问的PCI设备不是直接挂接在PCI总线0上的,此时HOST主桥对CONFIG_DATA寄存器操作时,将产生 Type01h配置请求,PCI总线0将遍历所有在这条总线上的PCI桥,确定由哪个PCI桥接收这个Type01h配置请求。
如果n大于或等于某个PCI桥的Secondary Bus Number寄存器,而且小于或等于Subordinate Busnumber寄存器,那么这个PCI桥将接收在当前PCI总线上的Type01配置请求,并采用以下规则进行递归处理:
- 开始遍历当前PCI总线的所有桥。
- 如果n等于某个桥的Secondary Bus Number,说明这个Type01h配置请求的目标直接连接在该PCI桥的Secondary bus上。此时PCI桥将Type 01配置请求转换为Type00h配置请求,并且将这个配置请求转发到Secondary bus上,其中的某个设备会响应这个Type00请求,并与Host主桥进行配置信息的交换。流程结束。
- 如果n大于某个桥的Secondary Bus Number,且小于或等于Subordinate Busnumber寄存器,说明这个Type01h配置请求的目标设备不与该PCI桥的Secondary bus直接相连,但是由这个PCI桥下游总线上的某个PCI桥管理。此时PCI桥将首先认领这个Type01配置请求,将其转发到Secondary bus上。