This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] XIO2001:关于非致命错误的原因

Guru**** 2518210 points
Other Parts Discussed in Thread: XIO2001

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1314477/xio2001-about-the-causes-of-non-fatal-error

器件型号:XIO2001

大家好、

我有一个关于 XIO2001的问题。
当我特意生成了一个不支持请求(UR)时、器件状态中某些状态发生了变化。 有关器件状态、请参阅表1。

有关与错误处理相关的"8.4.62 TL 控制诊断寄存器0"和"8.5.5不可纠正的错误严重性寄存器"的设置、请参阅表2。

PCIe 标准定义如下。
"如果 UR/CA 错误的严重程度不是致命的、则 Completer 必须将此案例处理为咨询性非致命错误。
AER 的 Completer 通过发送 ERR_COR 消息来发出非致命错误信号(如果已启用)。 没有 AER 的 Completer 不发送此案例的错误消息。"

在这种情况下、请说明为什么只应根据标准检测可纠正的错误、但也检测到非致命错误。


CPU:CORE i3-2310E (Sandy Bridge)
PCH:HM65 (美洲狮点)

此致、

若村市

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Wakumura-San:

    我不确定我是否完全理解您的问题。 默认情况下、XIO2001支持"备用错误报告"和"不受支持的请求"错误严重性为"非致命"、因此支持任何"咨询性非致命错误报告"。 根据您所指示的状态位、XIO2001已正确报告非致命错误和不受支持的请求。

    请帮助澄清我是否误解了。 另请说明您参考的 PCI Express 规范。

    此致!
    大卫

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David-san:

    感谢您的答复。
    我对没有解释表示歉意。

    参考标准是"PCI ExpressRegistered基本规范6.0版"。

    该标准的"6.2.3.2.4咨询性非致命错误案例"说明了以下内容:"咨询性非致命错误"案例主要由检测代理(请求者、遵从者、 或者在这种情况下,具有 AER 的座席通过发送 ERR_COR 消息作为此类情况下的咨询来发出非致命错误(如果已启用)信号,而具有 AER 的座席则通过发送 ERR_COR 消息作为咨询的咨询来发出非致命错误(如果已启用)信号。 "

    从标准中、我们认识到在出现通报性非致命错误的情况下、会发送 ERR_COR 并且不会发送 ERR_Nonhalfal。
    为什么发送 ERR_NonFATAL?

    此致、

    若村市

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Wakumura-San

    感谢您的进一步澄清。 您能否提供数据表中8.5.3、8.5.4、8.5.6和8.5.7节的寄存器读回?

    如果可能、最好转储整个 PCI Express 寄存器空间。

    此致!
    大卫

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David-san:

    感谢您的具体指示。
    发送寄存器回读的结果。

    我们正在检查是否可以发送整个 PCI Express 寄存器空间的转储。 我们将在确认后尽快与您联系。
    请检查我们这次发送的寄存器回读。

    此致、

    若村市

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Wakumura-San:

    感谢您提供所请求的寄存器回读。

    在查看 PCI Express 到 PCI/PCI-X 桥接器(修订版1.0)的规范时、我在10.1.1.2部分(可选支持)中注意到了以下内容:

    在通过具有 ECRC 5保护功能的 PCI Express 接收 TLP 时、电桥可选择检查 ECRC 错误。 网桥检测 ECRC 错误的能力是通过高级错误报告功能报告的。  

    当电桥检查和检测到 ECRC 错误时、它必须:

    • 丢弃事务(即、不将其转发到传统的 PCI/PCI-X 接口)。 由于无法确定事务是请求(发布还是非10发布)还是完成,网桥必须丢弃数据包。
    • 设置高级错误报告功能不可纠正错误状态寄存器中的 ECRC 错误状态位、记录标头、更新高级错误功能和控制寄存器中的第一个错误指针字段、 和根据高级错误报告规则(在 PCI Express Base 1.0a 的第7章中指定)在 PCI Express 上生成一条错误消息。 ECRC 错误的默认15错误严重性为 ERR_NONFATAL。 按照 PCI Express Base 1.0a 规则设置设备状态寄存器中的"Non-Fatal Error Detected"(检测到的非致命错误)或"Fatal Error Detected"(检测到的致命错误)位。
    • 设置桥接器的状态寄存器中检测到的奇偶校验错误位。

    根据此规范的说明、我认为电桥正确地发出非致命错误信号。

    此致!
    大卫

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David-san:

    感谢您的答复。

    表3:不可纠正的错误状态寄存器的内容如下。
    位:19 ECRC_ERROR = 0、位:20 UR_ERROR = 1。

    您提到 ECRC_ERROR 会导致非致命错误、但不会在不可纠正的错误状态寄存器中发送 ECRC_ERROR。
    我们的问题是、为什么在出现 UR_ERROR 时出现 ERR_Nonhalfal。

    问题1)
    从数据表中可以看出,XIO2001符合 PCI ExpressRegistered基本规范2.0版。
    从 PCI ExpressRegistered基本规范修订版2.0中,图52 6-2:显示设备错误信令和记录操作顺序的流程图

    UR 是不可纠正的错误(请参阅表6-4)。
    由于 UR 是修正的非致命错误,它似乎不是发送 ERR_Nonbatal 的分支。

    问题(2)。
    由于发送转储数据、导致 ERR_Nonhalfal 的原因是什么?

    此致、

    若村市

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Wakumura-San:

    不支持的请求似乎不被视为非致命的咨询请求。 您能否就不受支持的请求是如何产生的提供更多说明? 它是来自 PCIe 总线还是 PCI 总线?

    此外,在您提供的 PCI 配置空间日志中,未发送不支持的请求。 您能否提供在发送不受支持的请求时出现的转储?

    此致!
    大卫

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David-san:

    感谢您的答复。

    您能否提供有关如何生成不受支持的请求的更多说明?
    >这是来自 PCIe 总线还是 PCI 总线?
    我们访问了不存在 PCIe 设备的 PCI 配置空间。
    此时、位3 (不受支持的请求检测)上的 XIO2001器件状态寄存器(7Ah)为"0→1"。
    位1 (检测到非致命错误)处的器件状态寄存器(7Ah)为"0→1"。
    位0 (检测到可纠正的错误)处的器件状态寄存器(7Ah)为"0→1"。

    >不支持的请求似乎不被视为咨询性非致命。
    我们可以查看哪个寄存器来显示该信息?
    位20处的不可纠正的错误严重性寄存器(10Ch)(不支持的请求错误严重性。) 为"0:错误条件使用 ERR_NonFATAL 发出信号"。

    >此外,在您提供的 PCI 配置空间日志中,未发送不支持的请求。
    我们可以查看哪个寄存器来显示该信息?
    我已确定器件状态寄存器(7Ah)在 Bit3 (不支持的请求检测)处检测到的 XIO2001 UR 是否为"1"。
    我想知道为什么当 XIO2001检测到 UR 时、它也会检测到非致命错误。

    此致、

    若村市

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Wakumura-San:

    根据 PCIe 规范(表6-4)、UR 被归类为不可纠正的非致命错误。 对我来说、这就是为什么这两个位都被设置的原因。

    此致!
    大卫

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David-san:

    问题1)

    根据图6-2:显示器件错误信令和记录操作序列的流程图
    对于寄存器回读结果、是否通过图6-2中红色箭头指示的流程图发送了 ERR_NONFATAL?

    问题2)

    来自 PCI Express 基本规范修订版2.0 6.2.3.4.1。 完成者发送带有 UR/CA 状态的完成、"如果 UR/CA 错误的严重程度是 UR/CA 错误的严重程度不是致命的、则完成者必须将此案例作为咨询性非致命错误处理。 AER 的 Completer 通过发送 ERR_COR 消息来发出非致命错误信号(如果已启用)。 "
    如果 UR 被视为咨询性非 FatalError、它是否会按照图6-2中所示的绿色箭头流程图来处理?

    此致、

    若村市

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Wakumura-San:

    1. 我同意、如果在所示的红色箭头中满足所有条件、则 ERR_NonFATAL 将作为完成状态发送。
    2. 如果 UR 被视为非致命咨询、则应穿过图表中标记的绿色箭头。

    我认为、在这种情况下、通过将 PCI 配置寄存器110h 中的状态位13设置为1 (如 PCI 配置空间转储中所示)、桥接器可以正确检测到通报性非致命错误。

    此外、由于检测到 UR、因此 PCI 配置空间寄存器7Ah 中不支持的检测到请求位(位3)被设置为1。 不支持的请求通过 PCI 配置空间寄存器10Ch (位20设置为0)指示为 ERR_NONFATAL。

    此外、在 PCI 配置寄存器78h (器件控制寄存器)中、不会启用可纠正的错误报告(位0)、因为它当前设置为0。 因此、由于此配置、桥接器不会发送 ERR_COR 消息、但会正确检测 PCI 配置寄存器7Ah 的位0 (此位设置为1)中的可纠正错误。


    此致!
    大卫

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David-san:

    XiO 规范是否意味着即使 UR 被视为建议性非致命、也会发送 ERR_Nonhalf?

    如果是这样、这是否违反了 PCI Express 基本规范修订版2.0中的流程图6-2和6.2.3.2.4.1。 完成发送具有 UR/CA 状态的完成状态?

    此致、

    若村市

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Wakemura-San,

    不,我不认为情况是这样的。 此器件已在 PCI-SIG 集成商列表中 按照 PCIe 基本规范修订版本2.0进行认证。

    我在上面已经注意到、默认情况下、电桥配置为不向根复合体发送 ERR_Nonhalfal 或 ERR_COR、如数据表表表表8-36中所述。 流程图中规定、如果先声未启用、ERR_COR 不会发送到上游。 相同的逻辑适用于 ERR_FATAL 和 ERR_NonFATAL、并添加了 SERR_EN 位的逻辑。

    最佳
    大卫

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David-san:

    抱歉、我们已了解在哪些条件下将 ERR_COR、ERR_FATAL 和 ERR_NonFATAL 发送到上游。

    XIO2001 By 支持"备用错误报告"和"不支持的请求"错误严重性为"非致命"、因此 UR 是一种识别方法、它成为"咨询性非致命错误"。
    警告非致命错误被归类为可纠正的错误、因此我认为在 Bit3 (不受支持的请求检测)处的 XiO 器件状态寄存器(7Ah)为"0→1"、在 Bit0 (检测到可纠正的错误)处为"0→1"。
    但我认为位1 (检测到非致命错误)处的 XiO 设备状态寄存器(7Ah)可能为"0→1"。

    从 PCIe 基本规范修订版2.0中、关于"显示器件错误信令和记录操作序列的流程图(图6-2)"。
    在"咨询性非致命错误?"条件下跳转到"是"时 (第6.2.3.2.4节)"、转换为"在器件状态寄存器中设置可更正的错误检测位"。
    它不会转换为"设置器件状态寄存器中的致命/非致命错误检测位"。
    因此、XIO2001器件状态寄存器(7Ah)在 Bit1 (检测到非致命错误)为"0→1"时是不可能的。
    我的理解是错的吗?

    未检测到非致命错误这一事实(对于通报性非致命错误,发送 ERR_COR 消息,而不是发送 ERR_Nonhalfal)也被写入图2-6以外的位置。

    ・关于"6.2.2.3.2.4. 非致命错误案例报告"
    编写以下内容:具有 AER 的座席通过发送 ERR_COR 消息作为软件的咨询而不是发送 ERR_NonFATAL 来发出非致命错误(如果已启用)信号。

    ・关于"6.2.2.3.2.4.1. 完成者发送具有 UR/CA 状态的完成"。
    编写以下代码:如果 UR/CA 错误的严重程度不是致命的,编译者必须将此案例处理为咨询性非致命错误。
    AER 的 Completer 通过发送 ERR_COR 消息来发出非致命错误信号(如果已启用)。

    ・关于"UR Detecting Agent Action (Table 6-4)"。
    编写以下代码:针对第6.2.2.3.4.1节中描述的咨询性非致命错误案例,向根复合体发送 ERR_Nonhalfal 或 ERR_COR。

    此致、

    若村市

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Wakumura-San:

    我认为通报非致命错误不应设置非致命错误检测状态位。  您是否认为"不受支持的请求"的单个事务会将"非致命错误检测"位设置为1?

    此致!
    大卫

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David-san:

    XIO2001检测 UR 的步骤如下。

    1) 1)在我的系统中、XIO2001是 B:7/D:0/F:0。
    2)我故意访问了一个不存在的设备(B:7/D:0/F:3)。
    3)此时、位3 (不受支持的请求检测)处的 XIO2001器件状态寄存器(7Ah)为"0→1"。
    位1 (检测到非致命错误)处的器件状态寄存器(7Ah)为"0→1"。
    位0 (检测到可纠正的错误)处的器件状态寄存器(7Ah)为"0→1"。

    请回答下面的一些问题。

    Q1:UR 检测期间是否可能检测到可纠正的错误和非致命错误、具体取决于寄存器设置?
    问题2:XIO2001中是否存在检测 UR 时同时检测可纠正错误和非致命错误的潜在错误?
    Q3:在 UR 检测期间检测到可纠正错误和非致命错误的原因是否可能?

    此致、

    若村市

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Wakumura-San:

    请允许我复查您的问题并在接下来的24小时内作出答复。

    此致!
    大卫

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Wakumura-San:

    1. 我认为根据桥的配置可以实现这一点。
    2. 很难判断这是否是错误。
    3. 从 PCI Express 到 PCI/PCI-X 桥接器规范修订版1.0、不受支持的请求错误报告将根据 PCI Express 基本规范修订版1.0a 进行处理。 这可能是不一致的地方。
      • 从 PCI Express 规范1.0a 版来看、错误报告的序列如图6-2所示。
      • 根据图、规范概述了"设置器件状态寄存器中的致命/非致命错误检测位"。

    我相信这可能就是为什么要设置该位的原因。

    此致!
    大卫

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David-san:

    我知道这可以根据电桥的配置来实现。

    感谢您的答复。

    此致、

    若村市

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David-san:

    让我确认两点。

    ・您是否能够重现此现象?

    ・您是否计划将其包含在以下勘误表中?

    此致、

    若村市

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Wekumura-San:

    我们 以前没有看到过这个问题、我也没有能够重现这个问题。 我现在必须继续审查并考虑到勘误表。

    此致!
    大卫