以下PCIe error handler 的内容主要来自于PCIe spec 2.0. 最近开始看,还不是太清楚。
先贴上error 的分类:
首先PCIe error 分为correctable ,uncorrectable .后者又分为fatal 和 unfatal。
spec 2.x将错误分为按层进行分类,分为物理层,链路层和事务层。spec 3.0又增加了一种internel error。internel error是实现定义的。暂时不用考虑。
首先物理层的错误比较简单,基本就是receive error ,为correctable的。
链路层和事务层的错误则复杂一些,而且uncorrectable的错误很多可以通过AER寄存器来调整严重性。