PCIE枚举失败问题及分析

在接触PCIe接口的这两年当中,遇到了很多关于PCIe启动的问题,做了一个汇总,以加固自己的认识和了解,也希望可以帮助其他新入门的同学,少走弯路。

 

首先,第一步,先介绍一下PCIe的枚举过程(关于PCIe的路由,架构等知识不在本文中进行介绍,请查阅相关资料)

在系统上电或者Reset之后,设备会有一个初始化的过程,这个过程中设备的寄存器都是无意义的,当初始化之后,所有寄存器数据稳定并且有意义。这是才可以进行Configuration和设备的枚举。

PCIE枚举失败问题及分析_第1张图片

如图,在系统初始化时,只有RC被硬编码为bus0,枚举过程将从bus0 开始。

再次还要介绍两个概念,PCie设备中有Device ID和Vendor ID,它们都是硬编码在芯片当中,不同的设备有着不同的ID,其中值FFFFh保留 ,任何设备不能使用。当RC发出一个Configuration读请求时,如果返回的不是

你可能感兴趣的:(硬件设计,pci-e)