device number: PCIE设备在它的primary interface(upstream port)只有一个device number, 而一个device number可以有1~8个function.
pcie地址空间与存储器空间的区别。
pcie设备之间或者与处理器或主存储器进行数据传输时,使用的都是pcie地址空间,pcie host主桥将负责pcie地址空间与存储器空间的转换。
Posted总线事务指PCI主设备向PCI目标设备进行数据传递时,当数据到达PCI桥后,即由PCI桥接管来自上游总线的总线事务,并将其转发到下游总线。采用这种数据传送方式,在数据还没有到达最终的目的地之前,PCI总线就可以结束当前总线事务,从而在一定程度上解决了PCI总线的拥塞。
而Non-Posted总线事务是指PCI主设备向PCI目标设备进行数据传递时,数据必须到达最终目的地之后,才能结束当前总线事务的一种数据传递方式。
其中HOST主桥或者PCI桥使用Type 00h配置请求,访问与HOST主桥或者PCI桥直接相连的PCI Agent设备或者PCI桥;而HOST主桥或者PCI桥使用Type 01h配置请求,需要至少穿越一个PCI桥,访问没有与其直接相连的PCI Agent设备或者PCI桥。
BAR的设置
PCIE一般有BAR0~5六个基地址寄存器,BAR可以用来指定一个地址空间。
BAR寄存器的最低位为0表明是memory space,为1表明是IO space.
D0~D3
D0状态分为D0-uninitialized和D0-active状态。Reset结束之后,link建立之后,device即处在D0-uninitialized状态,然后进行enumeration,enumeration结束后就进入D0-active状态。
D1(optional):Fucntion只能发送PME message,且只能接收message和configuration TLP。
D2(optional):Fucntion只能发送PME message,且只能接收message和configuration TLP。
D3(required):分D3-cold和D3-hot,在D3-hot,如果PMCSR的No_Soft_Reset位置为1,表明function context在D3-hot能被保持住,从D3-hot跳转至D0时,不用重新做enumeration,否则,会跳转至D0-uninitialized状态,需要重新初始化。如果Link状态跳转到了L2/L3,则不管No_Soft_Reset是否为1,function都会被reset掉。D3-hot能接收Configuration和message TLP。当main power被remove后,function会进到D3-cold。
原文:http://www.cnblogs.com/lybinger/p/5276568.html