特性配置 - Lockdown命令结构 (第290页)
NVME2.0协议解读 1 min read

特性配置 - Lockdown命令结构 (第290页)

Blog Author

在《NVM Express® Base Specification, revision 2.0b》中,Lockdown命令的作用是控制命令和功能的锁定或解锁状态。这可以用于禁止或允许特定的管理命令或功能执行。下面是对Lockdown命令的深入分析,特别是命令结构和完成状态。

Lockdown命令结构

Lockdown命令允许对特定的命令或功能标识符进行锁定或解锁。这些功能包括管理命令(例如Set Features命令)或特定接口的操作。

命令字段详解

Command Dword 10(如Figure 291)中的字段: - Scope(SCP):定义了OpcodeFeature Identifier字段的内容,决定了命令所操作的范围。以下是Scope字段的不同值: - 0h:Admin命令操作码。 - 1h:保留。 - 2h:Set Features功能标识符。 - 3h:管理接口命令集操作码。 - 4h:PCIe命令集操作码。 - 5h-Fh:保留。

  • UUID选择:如果控制器支持选择UUID(通过Lockdown命令或Set Features命令),则可以通过Scope=2h来指定UUID索引值。如果不支持UUID选择,则UUID Index字段会被忽略。

Command Dword 14(如Figure 292)中的字段: - UUID Index:如果Scope字段设置为2h,则该字段指定UUID的索引值,指向相关的UUID。

命令执行条件

  • 禁止命令或功能:如果执行了禁止执行的命令或功能(由Scope和Opcode/Feature Identifier字段指定),控制器会根据Prohibition of Command Execution Not Supported的状态代码终止该命令。

  • 无效命令或功能:如果接口字段设置为01b10b且NVM子系统未包含管理端点,则命令会被终止,状态为Invalid Field in Command

  • 无效的Scope设置:如果接口字段为00b01b,且Scope字段设置为4h,则该命令会被终止,并返回Invalid Field in Command

  • 状态已锁定或解锁:如果尝试禁止一个已经被禁止执行的命令,或者尝试允许一个已被允许执行的命令,这并不算作错误。

命令完成

一旦Lockdown命令完成,控制器会将状态信息通过Admin Completion Queue发布,指示命令的完成状态。具体的Lockdown命令状态值将在Figure 293中定义,用于指示执行过程中的各种状态。

总结

  • Lockdown命令提供了灵活的命令锁定功能,允许对特定的命令或功能进行锁定或解锁,以增强控制器的操作安全性。
  • Scope字段UUID选择功能进一步细化了命令的执行范围和条件,确保在不同场景下能够控制具体操作的执行。
  • 命令执行的条件确保了控制器在无法处理某些命令时能够适时地返回错误状态,避免无效命令的执行。

通过这些机制,Lockdown命令能够提供对命令执行的强大控制,使得系统在执行敏感操作时能够得到更高的安全性和一致性。