前置:
- PCIE枚举过程是通过事务层报文TLP来完成的。
- PCIE枚举过程中,RC通过device id和function id来定向选择要访问的设备,其他不同device function id的设备不会响应不是给自己的报文。
- Bus number, device number, function number(BDF)这个三个number是PCIE拓扑的重要信息
- Bus number: RC是bus 0, 其他的bus number都是RC在枚举过程中生成的,可以理解成软件分配的
- Device number,硬件决定,跟ep无关,PCI 与PCIe对于device number 有不同的方式
- PCI总线是并行总线基于共享总线的数据传输方式,一条PCI总线上可以链接多个PCI Agent,每个Agent设备都提供了一个IDSEL信号(类似片选或者地址选择信号),PCI总线根据IDSEL与地址线的连接关系决定设备的 device number
- PCIe总线采用端对端的连接方式,一个PCIe链路只能接一个终端设备,device number只能为0. 只有在PCIe Switch这种虚拟总线上会有多个端口对应多个device number。所以ep的device number是其连接的RC端口或者switch 端口决定的。
- Device Number:在物理链路建立后,每个PCIe端口都有一个固定的内部寄存器用于存储Device Number;这个值是通过