PCIe的capability扩展空间字段解释

在这里插入图片描述

解释

说明:
UEMsk 掩码寄存器中的各个位通常用于指示设备的错误状态或支持的功能,而不是直接表示已发生的问题。因此,SDES+ 表示设备支持并启用了错误检测功能,而不是指示设备当前存在某个特定问题;

这是一段关于高级错误报告的信息,其中包含多个字段和值。以下是每个字段的详细解释:

  • Capabilities: [100 v1] Advanced Error Reporting
    • 这是该设备支持高级错误报告的能力标识符。
  • UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
    • 这是未经校验的错误状态(Uncorrectable Error Status)位域。DLP表示Data Link Protocol错误;SDES表示Surprise Down Error Status;TLP表示Transaction Layer Packet错误;FCP表示Flow Control Protocol错误;CmpltTO表示Completion Timeout错误;CmpltAbrt表示Completion Abort错误;UnxCmplt表示Unexpected Completion错误;RxOF表示Receiver Overflow错误;MalfTLP表示Malformed TLP错误;ECRC表示End-to-End CRC错误;UnsupReq表示Unsupported Request错误;ACSViol表示ACS Violation错误。
  • UEMsk: DLP- SDES+ TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
    • 这是未经校验的错误掩码(Uncorrectable Error Mask)。与UESta类似,但只有在相应位上置位时才会触发中断或记录日志。
  • UESvrt: DLP+ SDES- TLP+ FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
    • 这是已经校验的错误状态(Correctable Error Status)位域。DLP+表示Data Link Protocol错误已被纠正;SDES-表示Surprise Down Error Status未发生;TLP+表示Transaction Layer Packet错误已被纠正;FCP+表示Flow Control Protocol错误已被纠正;RxOF+表示Receiver Overflow错误已被纠正;MalfTLP+表示Malformed TLP错误已被纠正;ECRC-表示End-to-End CRC错误未被纠正;UnsupReq-表示Unsupported Request错误未被纠正;ACSViol-表示ACS Violation错误未被纠正。
  • CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
    • 这是已知的可纠正错误(Correctable Error Status)位域。RxErr表示接收错误;BadTLP表示错误格式的TLP;BadDLLP表示无效的DLLP;Rollover表示计数器溢出;Timeout表示超时;NonFatalErr-表示非致命错误。
  • CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
    • 这是已知的可纠正错误掩码(Correctable Error Mask)。与CESta类似,但只有在相应位上置位时才会触发中断或记录日志。
  • AERCap: First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
    MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap+
    • 这是高级错误报告的能力寄存器。First Error Pointer表示第一个错误指针的位置;ECRCGenCap+表示设备支持生成ECRC校验码;ECRCGenEn-表示设备未启用ECRC校验码生成;ECRCChkCap+表示设备支持检查ECRC校验码;ECRCChkEn-表示设备未启用ECRC校验码检查;MultHdrRecCap-表示设备支持多个头部记录;MultHdrRecEn-表示设备未启用多个头部记录;TLPPfxPres-表示设备支持TLP前缀保留;HdrLogCap+表示设备支持头部日志记录。
  • HeaderLog: 4a000002 65000008 fc200000 00000000
    • 这是高级错误报告的头部日志(Header Log)。它记录了最近发生的错误信息,其中每个32位数字都代表一条错误记录。该示例中有四条记录。
  • RootCmd: CERptEn- NFERptEn- FERptEn-
    • 这是高级错误报告的命令寄存器。CERptEn-表示禁用可纠正错误报告;NFERptEn-表示启用非致命错误报告;FERptEn-表示启用致命错误报告。
  • RootSta: CERcvd- MultCERcvd- UERcvd- MultUERcvd-
    FirstFatal- NonFatalMsg- FatalMsg- IntMsg 0
    • 这是高级错误报告的状态寄存器。CERcvd-表示未收到可纠正错误;MultCERcvd-表示收到多个可纠正错误;UERcvd-表示收到未经校验的错误;MultUERcvd-表示收到多个未经校验的错误;FirstFatal-表示尚未收到致命错误;NonFatalMsg-表示存在非致命错误;FatalMsg-表示存在致命错误;IntMsg 0表示无中断信息。
  • ErrorSrc: ERR_COR: 0000 ERR_FATAL/NONFATAL: 0000
    • 这是错误源(Error Source)寄存器。ERR_COR表示可纠正错误;ERR_FATAL/NONFATAL表示致命或非致命错误。在这个例子中,都没有发生错误。

headerlog解释

HeaderLog是高级错误报告的头部日志,它记录了最近发生的错误信息。在这个示例中,HeaderLog由四个32位数字组成:4a000002、65000008、fc200000和00000000。

每个32位数字代表一条错误记录,其中包含以下字段:

  • DW0: 错误状态(Error Status)。DW0的最高位(第31位)表示错误是否已经校验,如果该位为1,则表示该错误已经被纠正,如果该位为0,则表示该错误未经校验。DW0的其他位表示错误的类型和详细信息。
  • DW1: 物理地址(Physical Address)。DW1记录引起错误的物理地址。
  • DW2: 参考标签(Reference Tag)。DW2记录与引起错误的事务相关的参考标签(Reference Tag)。
  • DW3: 数据(Data)。DW3记录引起错误的数据。

具体来说,对于示例中的每个32位数字:

  • 4a000002:表示一个未经校验的错误,错误类型为TLP错误。
  • 65000008:表示一个未经校验的错误,错误类型为TLP错误。
  • fc200000:表示一个未经校验的错误,错误类型为TLP错误。
  • 00000000:表示没有错误发生。
    每个设备的HeaderLog格式可能会有所不同,但通常都会包含类似的字段,用于记录错误的类型、位置和详细信息。
  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值