# 资料真实性与协议追溯说明

Created: 2026-05-28
Primary reference:

```text
specs/NCB-PCI_Express_Base_5.0r1.0-2019-05-22.pdf
```

PDF metadata:

```text
PCI Express Base Specification Revision 5.0 Version 1.0
```

## 1. 先把话说清楚

我不能用“我说的就是对的”来保证正确性。

对 PCIe 这种协议内容，可靠的方法应该是：

```text
协议原文/章节定位
  -> 提炼结构
  -> 标注哪些是教学简化
  -> 标注哪些是逐条条件
  -> 后续根据 debug case 继续修正
```

当前 Recovery / EQ 图解包属于：

```text
L1/L2：教学理解 + 章节级对照
```

还不是：

```text
L3：逐条协议条件级验证手册
```

所以这些动画和图现在适合帮你快速建立理解，但不能直接当作 checker/assertion 的完整依据。

## 2. 内容可信度分级

| 等级 | 含义 | 能不能用于验证实现 |
| --- | --- | --- |
| L1 教学简化 | 为了零基础理解做的图解、比喻、动画 | 只能用于学习直觉 |
| L2 章节对照 | 已确认对应协议章节，但没有逐条列完所有条件 | 可用于学习和初步 debug |
| L3 条件级整理 | 每个状态跳转、字段、timeout、例外都有协议定位 | 可转 checker/coverage |
| L4 Debug 校准 | 被实际 waveform/log/debug case 验证过 | 可作为项目经验库 |

## 3. 当前资料状态

| 文件 | 当前等级 | 说明 |
| --- | --- | --- |
| `concepts/10_recovery_overview.md` | L2 | 已按 Recovery 相关章节组织，但跳转条件是主线提炼，不是逐条协议表。 |
| `assets/animations/recovery_layered_learning.html` | L1 | 零基础教学动画，强调理解，不保证覆盖全部跳转条件。 |
| `assets/animations/recovery_ltssm_animation.html` | L1 | 双端 TX/RX 动画，展示互动模型，不是完整 LTSSM 状态机。 |
| `qa/recovery_debug_questions.md` | L2 | Debug 方向基本合理，但需要继续接入字段/flag 表。 |
| `topics/equalization/README.md` | L1/L2 | EQ 专题框架，尚未逐条整理 phase 条件。 |
| `assets/animations/eq_layered_learning.html` | L1 | EQ 教学页，phase 描述是结构化入门，不是协议级细节。 |

## 4. 已确认的协议章节定位

Recovery 主要章节：

| 主题 | 协议章节 |
| --- | --- |
| Recovery overview | 4.2.5.4 |
| Recovery state rules | 4.2.6.4 |
| Recovery.RcvrLock | 4.2.6.4.1 |
| Recovery.Equalization | 4.2.6.4.2 |
| Recovery.Speed | 4.2.6.4.3 |
| Recovery.RcvrCfg | 4.2.6.4.4 |
| Recovery.Idle | 4.2.6.4.5 |

Equalization 相关章节：

| 主题 | 协议章节 |
| --- | --- |
| Link Equalization Procedure | 4.2.3 |
| Encoding of Presets | 4.2.3.2 |
| Recovery.Equalization | 4.2.6.4.2 |
| Downstream Equalization Phases | 4.2.6.4.2.1 |
| Upstream Equalization Phases | 4.2.6.4.2.2 |
| Lane Equalization Control Register | 7.7.3.4 / 7.7.5.9 / 7.7.6.9 |
| Transmitter Equalization electrical details | 8.3.3 |
| Receiver Equalization behavior | 8.4.1.6 / 8.4.1.7 |

## 5. 当前我认为不足的地方

### Recovery 不足

- `Recovery.RcvrLock -> RcvrCfg / Equalization / Speed / Detect` 的所有条件还没有逐条展开。
- `Recovery.RcvrCfg` 中 TS2 相关字段还没有做字段级表格。
- `Recovery.Speed` 的 `successful_speed_negotiation`、`changed_speed_recovery`、fallback 细节还没有做完整条件树。
- `Recovery.Idle` 到 Configuration / Loopback / Disabled / Hot Reset 的条件还没有逐条展开。
- 动画里两端状态同步是教学模型，真实协议可能存在短暂不同步、超时和例外路径。

### EQ 不足

- 当前 phase 图只说明结构，不代表每个 phase 的精确行为。
- Downstream / Upstream phase 的具体 TS 字段、preset/coefficient 请求和状态位还没逐条对照。
- 第 7 章寄存器和第 8 章电气参数还没有接入图解。
- Retimer 参与 EQ 的情况还没展开。

## 6. 补正策略

后续不能只继续画图，必须增加“来源表”：

```text
每个状态
  -> 对应协议章节
  -> 入口条件
  -> 发送内容
  -> 接收判定
  -> 退出条件
  -> timeout
  -> 失败去向
  -> debug 观察信号
```

## 7. 立即建议补的两个文件

### 1. Recovery 条件级表

建议新增：

```text
topics/recovery/recovery_transition_source_table.md
```

作用：

- 把 Recovery 每个子状态的入口/退出/timeout/特殊分支逐条列出来。
- 每条都标协议章节。
- 作为后续 checker/coverage 的基础。

### 2. EQ 字段和 Phase 表

建议新增：

```text
topics/equalization/eq_phase_source_table.md
```

作用：

- 把 Downstream / Upstream 的 phase 逐条对照。
- 标明涉及 EQ TS1、EQ TS2、preset、coefficient、status bit。
- 标协议章节。

## 8. 使用建议

当前最安全的使用方式：

```text
动画/图片：用来建立直觉。
Markdown 总览：用来形成知识框架。
协议 PDF：作为最终判断依据。
后续 source table：作为 debug/checker 的依据。
```

如果你发现某张图或某句话不对，不要直接删掉整套资料。正确做法是：

```text
记录错误点
  -> 找到协议章节
  -> 修改 source table
  -> 再 rewrite 图和动画
  -> 在 debug 问答里补一条“易错点”
```
