storage组件MCTP over pcie端点创建的时序问题咨询

如图中所示,这是storage组件的nvme硬盘创建mctp端点时使用的一个函数,其中的方式是通过获取pciedevice列表去匹配,注释写着pcie设备比nvme先加载一级,那是否可以确认这个地方是有绝对的时序保证的?如果通过position匹配到的对象bdf全是0则认为是pciedevice组件的问题?

注释写着pcie设备比nvme先加载一级,不能确认这个地方是有绝对的时序保证;系统为异步事件驱动,依赖服务启动顺序与BDF上报时机。bdf全0的话可能的情况为pcie_device未成功接收到BIOS上报的bdf,或者pcie_device接收到的bdf解析失败,再或者对象未上树等,基本可以认为是pcie_device组件的问题。

对象bdf全是0要看下pcie_device组件的资源树对象,如果NVMe对应的PCIeDevice对象的Bus、Device、Function是否全是0,就是拓扑建立阶段没有匹配到,需要排查硬盘背板的CSR、PSR。