pcie控制器中存在多种类型的错误,这些错误有不同的处理方式,大致可分为correctable error和uncorrectable error,其中uncorrectable error可分为fatal error和non-fatal error
correctable error,可修正的错误,通常由硬件进行处理
uncorrectable error,不可修正错误,又分为
non-fatal error,致命错误,由系统软件处理
fatal error,非致命错误,由设备中专用的软件进行处理
描述了无论是RC还是EP设备,都具有的异常处理方式。
当完成报文的状态不是SC,代表该请求失败了;对于Non-posted请求,只要完成报文没有返回,请求就没有完成,在该两种情况下,PCIe控制器的系统总线(AXI)上会发出SLVERR或者异常的response信号。
出现data poisoning时,接收到的TLP报文的EP字段将会置1,此时PCIe控制器解析到该字段后在系统总线(AXI)上会发出SLVERR或者异常的response信号。
出现场景如下:
1)从内存读数据时发生uncorrectable error
2)想内存写数据时出现parity error
3)数据buffer或者cache出现数据完整性错误
RC特有的异常处理。
带内error message:若EP设备或者switch自身产生错误,会根据错误类型发出message报文,此时RC接收并解析该报文,并作处理;
RC支持AER(Advance Error Report),RC会从error message中提取RequestID字段,并记录到RC的error source identification寄存器中,如图所示是该寄存器字段描述
