持久内存 - 🔐 8.2.3 Boot Partition Protection(引导分区保护) (第359页)
我们继续用中文深入解读 NVMe Base Specification Revision 2.0b 中第 348 页的 Boot Partition Protection(引导分区保护机制) 以及 Capacity Management(容量管理机制)。
🔐 8.2.3 Boot Partition Protection(引导分区保护)
🧱 保护机制结构总览
见 Figure 413:Boot Partition Protection Overview
✅ 默认状态
- 所有 Boot Partitions 初始状态为 Unlocked(未锁定)
- 可被主机软件 读取和写入
✅ 启用保护机制
- 主机通过设置 RPMB Device Configuration Block 中的 Boot Partition Protection Enable 位来启用保护。
- 这个操作是永久性的:一旦启用,不可再禁用。
- 所有试图禁用保护的 Authenticated Configuration Block Write 命令都会被拒绝。
✅ 启用保护后的行为
- 所有 Boot Partition 默认状态变为 Locked(锁定)
- 读取 仍然允许
- 写入 操作(如
Firmware Commit)会被控制器拒绝
✅ 解锁机制
- 通过 RPMB 授权机制 来对每个 Boot Partition 进行单独解锁
- 使用
Device Configuration Block中相应的位来控制每个 Boot Partition 的锁定状态
📌 总结与建议
| 项目 | 启用前 | 启用后 |
|---|---|---|
| 写操作 | ✅ 允许 | ❌ 默认不允许,需解锁 |
| 读操作 | ✅ 允许 | ✅ 允许 |
| 是否可取消保护 | ✅ 可写回配置块关闭保护 | ❌ 不可撤销 |
➤ 实际应用中:Boot Partition Protection 是用于增强启动区域防篡改能力的安全机制,建议在固件镜像写入验证完毕后立即启用此功能,以防止恶意修改。
📦 8.3 容量管理(Capacity Management)
🎯 能力概述
容量管理机制用于 将物理介质划分成可控的逻辑区域,主要包括:
- Endurance Groups(耐久组)
- NVM Sets(NVM 设定集合)
✅ 控制器类型要求
- 支持 Capacity Management 的控制器,必须至少支持以下两种机制之一:
- 固定容量管理(Fixed Capacity Management)
- 可变容量管理(Variable Capacity Management)
📌 固定容量管理(Fixed Capacity)
主机通过精确选择配置来: - 将 Media Units(介质单元) 分配给: - Endurance Groups - NVM Sets
→ 类似于提前规划好“逻辑盘的物理组成”,适用于 计划性资源分配与划区策略。
📌 可变容量管理(Variable Capacity)
主机可以动态调整容量,支持以下操作:
| 操作 | 说明 |
|---|---|
| 创建 Endurance Group | 指定容量,系统内部自动分配 |
| 创建 NVM Set | 同样通过设定容量实现 |
| 删除 Endurance Group | 动态释放相关资源 |
| 删除 NVM Set | 动态释放设定集合 |
→ 适用于云环境或弹性资源配置,强调 灵活性与自动分配机制。
📝 总结对比
| 特性 | Fixed Capacity | Variable Capacity |
|---|---|---|
| 分配方式 | 精确配置 | 自动配置 |
| 适用场景 | OEM/预配置 | 云/用户可控 |
| 是否动态 | 否 | 是 |
| 是否细粒度分配 | 是 | 否(按整组) |
如果你想继续了解: - 如何使用 NVMe 命令(Set Features、Format NVM、Identify)配置 Endurance Group / NVM Set - 或是 Boot Partition Protection 具体在 RPMB 中的数据结构格式
我可以继续中文详细解读接下来的小节内容。你希望我优先讲解哪一块?📘