网上关于PCIE的bus、device、function的枚举过程已有很多 (【PCIE-3】---PCIE设备的枚举扫描(经典好文) - 一粒厘米 - 博客园、使用Xilinx IP核进行PCIE开发学习笔记(四)PCIE系统configuration和设备枚举篇 - 知乎),但有些细节没有说清楚,在此补充一下提醒自己。
PCIE的枚举过程只分配bus号,并不分配device号。因为对于switch而言,brige上的device号需要硬件确定,无需进行分配。switch在物理呈现出来是芯片,在设计的时候就要考虑device号,否则无法正常工作。对于endpoint而言,device只能是0,PCIE采用P2P的方式进行通信,endpoit会单独占一个bus,这个bus下不会有两个endpoint。