第5章 管理接口命令集 - 页码92
太好了!你现在已经进入了 Configuration Get 命令的详细说明阶段,下面我们来逐项深入分析 Configuration Identifier 的具体含义与字段解读。
🔹 Figure 75:NVMe-MI Configuration Identifiers 概览
CID | 名称 | Out-of-Band | In-Band | 说明 |
---|---|---|---|---|
00h |
Reserved | - | - | 保留 |
01h |
SMBus/I2C Frequency | Mandatory | Prohibited | 获取 SMBus 模式下的 2-Wire 端口频率 |
02h |
Health Status Change | Mandatory | Mandatory | 获取健康状态变化的配置 |
03h |
MCTP Transmission Unit Size | Mandatory | Prohibited | 获取 MCTP 传输单元大小 |
04h |
Asynchronous Event | Optional | Prohibited | 获取异步事件相关的配置 |
05h - BFh |
Reserved | - | - | 保留 |
C0h - FFh |
Vendor Specific | Optional | Optional | 厂商自定义 |
🔹 CID = 01h
:SMBus/I2C Frequency 配置项详解
✳️ 使用场景:
此配置用于查询特定 Management Endpoint 当前在 SMBus 模式下的频率设置。如果不是 SMBus 模式(例如 I3C 模式),那么返回值是未定义的。
🔧 请求格式 - NMD0 字段(Figure 76)
位段 | 字段名 | 说明 |
---|---|---|
31:24 | PORTID |
指定你想要读取哪个端口的频率信息 |
23:08 | Reserved | 保留 |
07:00 | CID = 01h |
固定为该配置标识符 |
✅ NMD1 全部保留,不使用
📥 响应格式 - NVMe Management Response 字段(Figure 77)
位段 | 字段名 | 说明 |
---|---|---|
23:04 | Reserved | 保留 |
03:00 | SFREQ |
指示当前 2-Wire(SMBus 模式)下的工作频率 |
SFREQ 的值定义如下:
Value | Frequency |
---|---|
0h |
Obsolete(废弃,不应使用) |
1h |
100 kHz |
2h |
400 kHz |
3h |
1 MHz |
4h - Fh |
保留 |
💡 在发生 Management Endpoint Reset 后,该值应被重置为
1h
(即 100kHz)。
✅ 总结记忆点:
- 这是 命令响应中使用 NVMe Management Response 字段直接返回结果 的一种方式。
- 只适用于 SMBus 模式,I3C 模式下该值不定义。
- 如果你是用多端口设备,可以通过设置
PORTID
来分别读取不同端口的频率。
如果你想继续解析 CID = 02h
的 Health Status Change 配置项(非常关键,涉及 AEM/健康轮询),我可以帮你一段段深入讲解。你想继续吗?