持久内存 - 🔐 8.2.3 Boot Partition Protection(引导分区保护) (第359页)
NVME2.0协议解读 1 min read

持久内存 - 🔐 8.2.3 Boot Partition Protection(引导分区保护) (第359页)

Blog Author

我们继续用中文深入解读 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 中的数据结构格式

我可以继续中文详细解读接下来的小节内容。你希望我优先讲解哪一块?📘