如上图标示,RootPort的个数为40,但实际上某平台只有5个,导致后面的测试会报错。分析了ACS的源码,发现Pcie的扫描会遍历每一个bus,dev,fun设备,但是像内核或者UEFI中的Pcie扫描流程会判断该设备是否为多功能设备,才会去扫描非0 fun号。在某平台,假设某个RooPort的为0.1.0;如果不去判断它是否为多功能设备,而是直接再去扫描0.1.1,此时VendorID还是有值的,因此会认为0.1.1也是由设备存在。参考Pcie规范中的说明,建议扫描时判断下是否为多功能设备更加合理。