您的位置 首页 解答

PCI总线的装备

24PCI总线的配置PCI总线定义了两类配置请求,一个是Type00h配置请求,另一个是Type01h配置请求。PCI总线使用这些配置请求访问PCI总线

2.4PCI总线的装备

PCI总线界说了两类装备恳求,一个是Type 00h装备恳求,另一个是Type 01h装备恳求。PCI总线运用这些装备恳求拜访PCI总线树上的设备装备空间,包含PCI桥和PCI Agent设备的装备空间。
其间HOST主桥或许PCI桥运用Type 00h装备恳求,拜访与HOST主桥或许PCI桥直接相连的PCI Agent设备或许PCI桥[1];而HOST主桥或许PCI桥运用Type 01h装备恳求,需求至少穿越一个PCI桥,拜访没有与其直接相连的PCI Agent设备或许PCI桥。如图2‑8所示,HOST主桥能够运用Type 00h装备恳求拜访PCI设备01,而运用Type 01h装备恳求经过PCI桥1、2或许3转化为Type 00h装备恳求之后,拜访PCI总线树上的PCI设备11、21、22、31和32[2]。
当x86处理器对CONFIG_DATA寄存器进行读写操作时,HOST主桥将决定向PCI总线发送Type 00h装备恳求仍是Type 01h装备恳求。在PCI总线业务的地址周期中,这两种装备恳求总线业务的不同反映在PCI总线的AD[31:0]信号线上。
值得注意的是,PCIe总线还能够运用ECAM(Enhanced Configuration Access Mechanism)机制拜访PCIe设备的扩展装备空间,运用这种方法能够拜访PCIe设备256B~4KB之间的扩展装备空间。可是本节仅介绍怎么运用CONFIG_ADDRESS和CONFIG_FATA寄存器发生Type 00h和Type 01h装备恳求。有关ECAM机制的具体阐明见第5.3.2节。
处理器首要将方针PCI设备的ID号保存在CONFIG_ADDRESS寄存器中,之后HOST主桥依据该寄存器的Bus Number字段,决定是发生Type 00h装备恳求,仍是Type 01h装备恳求。当Bus Number字段为0时,将发生Type 00h装备恳求,由于与HOST主桥直接相连的总线号为0;大于0时,将发生Type 01h装备恳求。

2.4.1 Type 01h和Type 00h装备恳求

本节首要介绍Type 01h装备恳求,并从PCI总线运用的信号线的角度上,叙述HOST主桥怎么生成Type 01装备恳求。在PCI总线中,只要PCI桥能够接纳Type 01h装备恳求。Type 01h装备恳求不能直接发向终究的PCI Agent设备,而只能由PCI桥将其转化为Type 01h持续发向其他PCI桥,或许转化为Type 00h装备恳求发向PCI Agent设备。PCI桥还能够将Type 01h装备恳求转化为Special Cycle总线业务(HOST主桥也能够完成该功用),本节对这种状况不做介绍。
在地址周期中,HOST主桥运用装备读写总线业务,将CONFIG_ADDRESS寄存器的内容复制到PCI总线的AD[31:0]信号线中。CONFIG_ADDRESS寄存器与Type 01h装备恳求的对应联系如图2‑11所示。

从图2‑11中能够发现,CONFIG_ADDRESS寄存器的内容基本上是原封不动的复制到PCI总线的AD[31:0]信号线上的[3]。其间CONFIG_ADDRESS的Enable位不被复制,而AD总线的第0位为有必要为1,表明当时装备恳求是Type 01h。
当PCI总线接纳到Type 01装备恳求时,将寻觅适宜的PCI桥[4]接纳这个装备信息。假如这个装备恳求是直接发向PCI桥下的PCI设备时,PCI桥将接纳个Type 01装备恳求,并将其转化为Type 00h装备恳求;不然PCI桥将当时Type 01h装备恳求原封不动的传递给下一级PCI总线。
假如HOST主桥或许PCI桥建议的是Type 00h装备恳求,CONFIG_ADDRESS寄存器与AD[31:0]的转化如图2‑12所示。

此刻处理器对CONFIG_DATA寄存器进行读写时,处理器将CONFIG_ADDRESS寄存器中的Function Number和Register Number字段复制到PCI的AD总线的第10~2位;将AD总线的第1~0位赋值为0b00。PCI总线在装备恳求总线业务的地址周期依据AD[1:0]判别当时装备恳求是Type 00h仍是Type 01h,假如AD[1:0]等于0b00表明是Type 00h装备恳求,假如AD[1:0]等于0b01表明是Type 01h装备恳求。
而AD[31:11]与CONFIG_ADDRESS的Device Number字段有关,在Type 00h装备恳求的地址周期中,AD[31:11]位有且只要一位为1,其间AD[31:11]的每一位选通一个PCI设备的装备空间。如第1.2.2节所述,PCI设备装备空间的片选信号是IDSEL,因而AD[31:11]将与PCI设备的IDSEL信号对应相连。
当以下两种恳求之一满意时,HOST主桥或许PCI桥将生成Type 00h装备头,并将其发送到指定的PCI总线上。
(1) CONFIG_ADDRESS寄存器的Bus Number字段为0时,处理器拜访CONFIG_DATA寄存器时,HOST主桥将直接向PCI总线0宣布Type 00h装备恳求。由于与HOST主桥直接相连的PCI总线号为0,此刻表明HOST主桥需求拜访与其直接相连的PCI设备。
(2) 当PCI桥收到Type 01h装备头时,将查看Type 01装备头的Bus Number字段,假如这个Bus Number与PCI桥的Secondary Bus Number相同,则将这个Type 01装备头转化为Type 00h装备头,并发送到该PCI桥的Secondary总线上。

2.4.2 PCI总线配置恳求的转化准则

当CONFIG_ADDRESS寄存器的Enable位为1,系统软件拜访CONFIG_DATA寄存器时,HOST主桥能够发生两类PCI总线配置读写总线业务,分别为Type 00h和Type 01h装备读写总线业务。在装备读写总线业务的地址周期和数据周期中,CONFIG_ADDRESS和CONFIG_DATA寄存器中的数据将被放置到PCI总线的AD总线上。其间Type 00h和Type 01h装备读写总线业务映射到AD总线的数据并不相同。
其间Type 00h装备恳求能够直接读取PCI Agent设备的装备空间,而Type 01h装备恳求在经过PCI桥时,终究将被转化为Type 00h装备恳求,并读取PCI Agent设备的装备寄存器。本节要点叙述PCI桥怎么将Type 01h装备恳求转化为Type 00h装备恳求。
首要Type 00h装备恳求不会被转化成Type 01h装备恳求,由于Type 00h装备恳求是发向终究PCI Agent设备,这些PCI Agent设备不会转发这些装备恳求。
当CONFIG_ADDRESS寄存器的Bus Number字段为0时,处理器对CONFIG_DATA寄存器操作时,HOST主桥将直接发生Type 00h装备恳求,挂接在PCI总线0上的某个设备将经过ID译码接纳这个Type 00h装备恳求,并对装备寄存器进行读写操作。假如PCI总线上没有设备接纳这个Type 00h装备恳求,将引发Master Abort,概况见PCI总线标准,本节对此不做进一步阐明。
假如CONFIG_ADDRESS寄存器的Bus Number字段为n(n≠0),即拜访的PCI设备不是直接挂接在PCI总线0上的,此刻HOST主桥对CONFIG_DATA寄存器操作时,将发生Type 01h装备恳求,PCI总线0将遍历一切在这条总线上的PCI桥,确认由哪个PCI桥接纳这个Type 01h装备恳求。
假如n大于等于某个PCI桥的Secondary Bus Number寄存器,并且小于等于Subordinate Bus number寄存器,那么这个PCI桥将接纳在当时PCI总线上的Type 01装备恳求,并选用以下规矩进行递归处理。
(1) 开端。
(2) 遍历当时PCI总线的一切PCI桥。
(3) 假如n等于某个PCI桥的Secondary Bus Number寄存器,阐明这个Type 01装备恳求的方针设备直接连接在该PCI桥的Secondary bus上。此刻PCI桥将Type 01装备恳求转化为Type 00h装备恳求,并将这个装备恳求发送到PCI桥的Secondary Bus上,Secondary Bus上的某个设备将呼应这个Type 00h装备恳求,并与HOST主桥进行装备信息的交流,转(5)。
(4) 假如n大于PCI桥的Secondary Bus Number寄存器,并且小于等于PCI桥的Subordinate Bus number寄存器,阐明这个Type 01装备恳求的方针设备不与该PCI桥的Secondary Bus直接相连,可是由这个PCI桥下流总线上的某个PCI桥办理。此刻PCI桥将首要招领这个Type 01装备恳求,并将其转发到Secondary Bus,转(2)。
(5) 完毕。
下文将举例阐明PCI总线配置恳求的转化准则,并以图2‑8为例阐明处理器怎么拜访PCI设备01和PCI设备31的装备空间。PCI设备01直接与HOST主桥相连,因而HOST主桥能够运用Type 00h装备恳求拜访该设备。
而HOST主桥需求经过多级PCI桥才干拜访PCI设备31,因而HOST主桥需求首要运用Type 01h装备恳求,之后经过PCI桥1、2和3将Type 01h装备恳求转化为Type 00h装备恳求,终究拜访PCI设备31。

1 PCI设备01

这种状况较易处理,当HOST处理器拜访PCI设备01的装备空间时,发现PCI设备01与HOST主桥直接相连,所以将直接运用Type 00h装备恳求拜访该设备的装备空间,具体步骤如下。
首要HOST处理器将CONFIG_ADDRESS寄存器的Enable方位1,Bus Number号置为0,并对该寄存器的Device、Function和Register Number字段赋值。当处理器对CONFIG_DATA寄存器拜访时,HOST主桥将存放在CONFIG_ADDRESS寄存器中的数值,转化为Type 00h装备恳求,并发送到PCI总线0上,PCI设备01将接纳这个Type 00h装备恳求,并与处理器进行装备信息交流。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/jieda/235056.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部