Changes in NVMe-MI Revision 1.2
This document captures three categories of NVMe-MI 1.2 changes. The NVMe-MI 1.2 changes were made in conjunction with the NVMe 2.0 Refactoring effort, so that the look and feel of NVMe-MI was targeted to be the same as the other specifications in the NVMe 2.0 Library.
The first category of changes is New Features that are new capabilities. These features may be implemented by an NVMe-MI revision 1.2 compatible device based on market need.
The second category is Feature changes that extend past behavior.
The final category of changes are incompatible changes from past behavior, or new mandatory requirements for how a feature shall be implemented (where there may have been multiple reasonable interpretations of previous specification language).
All the changes included in NVMe-MI 1.2 were developed in Technical Proposals and ECNs. Those documents are available at:
- https://nvmexpress.org/wp-content/uploads/NVM-Express-MI-1.1-Ratified-TPs.zip
- https://nvmexpress.org/wp-content/uploads/NVMe-MI-1.1-Ratified-ECNs.zip
New Features:
This section describes the new features in NVMe-MI 1.2 Specification.
- Additional Controller Metadata Type
- Adds a new feature, Enhanced Controller Metadata, which allows multiple metadata elements of the same type
- References
- Technical Proposal 6009
- Command Initiated Auto Pause
- Adds a new feature to improve efficiency and performance for systems based on MUX SMBus architecture by allowing each command message to pause immediately
- References
- Technical Proposal 6010b
- Clarify Get Log Page command effects on AERs
- A Get Log Page command in the out-of-band mechanism is not allowed to clear asynchronous events
- References
- Technical Proposal 6024
- More Processing Required Response
- Added the More Processing Required Response for when a Management Endpoint needs more than 100 ms to complete processing of a Command Message
- References
- Technical Proposal 6030
- Progress Detect During Paused Process State
- Enable detection of process completion for paused command slots without requiring resume or replay
- Clarify pause/resume primitives impact on a More Processing Required Response
- References
- Technical Proposal 6031
- Command Processing Restriction during Format NVM
- Added descriptions of commands messages that are recommended to be allowed during processing of a Format NVM command
- References
- Technical Proposal 4047b
- Capacity Management command
- Added the Capacity Management command to the List of NVMe Admin Commands Supported Using the Out-of-Band Mechanism figure
- Added the Capacity Management command to Command Messages Allowed During Sanitize Operation figure
- References
- Technical Proposal 4052c
- I/O Command Set Identifier field support
- Added the I/O Command Set Identifier (IOCSI) field in NVMe Management Dword 1
- References
- Technical Proposal 4056d
- Command and Feature Lockdown support
- Added Lockdown command to the list of NVMe Admin Commands Supported using the Out-of-Band Mechanism
- Added Command and Feature Lockdown to Management Endpoint – Log Page Support
- References
- Technical Proposal 4046a
- NVM Subsystem Shutdown support
- Added the NVMe-MI Shutdown command to initiate an NVM Subsystem Shutdown
- References
- Technical Proposal 4082
- Rotational Media support
- Added Spinup Control to Management Endpoint – Feature Support
- Added Rotational Media Information to Management Endpoint – Log Page Support
- References
- Technical Proposal 4088
Feature Enhancements:
This section describes optional feature enhancements which are changes from past NVMe-MI specification behavior.
- NVMe Base Specification Alignment changes
- Defined requirements for support of the Get LBA Status command
- Various naming changes to match NVMe Base Specification
- References
- Technical Proposal 6012
- FRU Information Device Extension
- Allow FRU Information device size to grow from 256 up to 4096 bytes
- New Topology MultiRecord Element Descriptor to describe FRU Information Device
- References
- Technical Proposal 6013
- SMBus Reset Enhancements
- Defined the effect of SMBus Reset on each Command Slot in the SMBus/I2C Management Endpoint
- References
- Technical Proposal 6015
- Ported the Set/Get Features from the NVMe-MI Specification to the NVMe Base Specification and extends Namespace Metadata Element Types
- Added the Generate Default Host Metadata (GDHM) bit to the Get Features command that specifies unique information is for a metadata element defined if the host has not created the metadata element
- Added new Namespace Metadata Element Types
- Moved definition of Enhanced Controller Metadata, Controller Metadata, and Namespace Metadata to NVMe Base Specification
- References
- Technical Proposal 6016a
- VPD Data Structure Enhancement
- Optional elimination of 30 bytes of reserved space in VPD MultiRecords
- References
- Technical Proposal 6017
- Added Devices to Form Factor Table
- Added NVMe-oF devices
- Added SFF-TA-1006 device widths
- References
- Technical Proposal 6019a
- Management Endpoint Buffer Enhancements
- Aligned the behavior of the MEB bit to be consistent with the behavior defined by the CIAP bit (TP 6010) for non-command messages and in-band tunneling
- References
- Technical Proposal 6020a
- NVMe-MI Maintenance
- Reference updates
- PCI Express Base Specification, revision 5.0
- MCTP IDs and Codes (DSP0239), version 1.7
- PCIe Base Specification, revision 5.0 support
- Add enumerations for 32 GT/s link speed into multiple figures
- Msg tag clarifications
- Require that the Msg tag in each packet of the replayed Response Message shall be set to the value of the Msg tag in the associated Replay Control Primitive
- Log Identifiers supported
- Added documentation on which Log Identifiers are mandatory, optional, or required for each type of Management Endpoint
- Feature Identifiers supported
- Added documentation on which Feature Identifiers are mandatory, optional, or prohibited for each type of Management Endpoint
- References
- Technical Proposal 6022
- Reference updates
- Data Offset and Length Updates
- Data Offset and Data Length Updates
- Deprecated bits that indicate if Data Offset and Data Length fields are valid
- Specify additional cases where Data Offset/Data Length are within range or not
- Specify error status codes to report when Data Offset/Data Length are not in range
- References
- Technical Proposal 6025a
- Data Offset and Data Length Updates
- NVMe-MI Command Set optional Support
- Some in-band NVMe-MI Command Set commands support changed from mandatory to optional
- Some out-of-band NVMe-MI Command Set commands support changed from mandatory to optional
- References
- Technical Proposal 6028
- Invalid Parameter Error Location Enhancement
- Removed the ordering restriction on if multiple parameter errors exist in a Request Message
- Updated parameter error text to be explicit on the field to be reported in error
- References
- Technical Proposal 6029
Required Changes:
This section describes mandatory behavior changes required to comply with NVM-MI 1.2.
- Errata from ECN 001
- Incompatible Changes
- Read NVMe-MI Data Structures with DTYPE 04h (Optionally Supported Command List) with an NVMe-MI Message Type (NMMT) 2h (NVMe Admin Command) are required to include a Controller Identifier (CTRLID)
- Incompatible Changes
- Errata from ECN 002
- Required Changes
- The Maximum MCTP Transmission Unit Size field in the Port Information Data Structure incorrectly subtracted the header in the definition of the maximum size. The subtraction was removed.
- Incompatible Changes
- Removed conflicting statement that said if a PCIe port is in PCIe Conventional Reset, Management Endpoints associated with other PCIe ports not in PCIe Conventional Reset or an SMBus/I2C not in SMBus/I2C reset may not allow access
- Clarified that for implementations compliant to version 1.1 and earlier of this specification, during a PCI Express conventional reset of a PCIe Management Endpoint, MCTP accesses are permitted to not be processed on other PCIe or SMBus/I2C Management Endpoints in the NVM Subsystem
- Required Changes
- Errata from ECN 004
- Incompatible Changes
- Clarified support for unique command sets on different ports when reporting the Optional Supported Command List
- Incompatible Changes
- Additional Controller Metadata Type
- Required Changes
- Added Enhanced Controller Metadata support declaration requirements to
- I/O Controller – Feature Support
- Administrative Controller – Feature Support
- References
- Technical Proposal 6009
- Required Changes
- Command Initiated Auto Pause
- Required Changes
- Added Command Initiated Auto Pause (CIAP) bit in the Message Header of a Command Message
- Added Command Initiated Auto Pause Supported (CIAPS) bit to Port Information Data Structure
- References
- Technical Proposal 6010b
- Required Changes
- NVMe Base Specification Alignment changes
- Required Changes
- Redefined the keyword “reserved” to match NVMe Base Specification
- References
- Technical Proposal 6012
- Required Changes
- FRU Information Device Extension
- Required Changes
- Accept 16 bit values in addition to 8 bit values over I2C for setting the read command offset pointer
- Incompatible Changes
- Changed write cycles remaining to indicate number of 256 byte block updates remaining
- Require sequential reads past end of FRU Information device size to wrap around back to offset 0
- References
- Technical Proposal 6013
- Required Changes
- SMBus Reset Enhancement
- Incompatible Changes
- Redefined the effect of an SMBus Reset to the behavior of receiving an implicit Abort Control Primitive (without transmitting a response)
- References
- Technical Proposal 6015
- Incompatible Changes
- Ported the Set/Get Features from the NVMe-MI Specification to the NVMe Base Specification and extends Namespace Metadata Element Types
- Required Changes
- Added the Generate Default Host Metadata (GDHM) bit to the Get Features command that specify one of the Host Metadata features
- Added new Namespace Metadata Element Types
- References
- Technical Proposal 6016a
- Required Changes
- VPD Data Structure Enhancement
- Incompatible Changes
- The NVMe MultiRecord length can remain as 3Bh or be reduced to 20h when reserved padding is removed
- The NVMe PCIe Port MultiRecord length can remain as 0Bh or be reduced to 08h when reserved padding is removed
- References
- Technical Proposal 6017
- Incompatible Changes
- Management Endpoint Buffer Enhancements
- Incompatible Changes
- Sets required error messages if the MEB bit is set inappropriately
- References
- Technical Proposal 6020a
- Incompatible Changes
- NVMe-MI 1.1 Maintenance
- Required Changes
- PCIe Base Specification, revision 5.0 support
- Added enumerations for 32 GT/s link speed
- Log Identifiers supported
- Added Figures to specify which Log Identifiers are mandatory, optional, or required for each type of Management Endpoint
- Feature Identifiers supported
- Added Figures to specify which Feature Identifiers are mandatory, optional, or required for each type of Management Endpoint
- Incompatible Changes
- Msg tag clarifications
- Added a requirement that the Msg tag in each packet of the replayed Response Message shall be set to the value of the Msg tag in the associated Replay Control Primitive
- References:
- Technical Proposal 6022
- Required Changes
- NVMe-MI Command Set optional Support
- Incompatible Changes
- The following in-band NVMe-MI Command Set commands support has changed from mandatory to optional
- VPD Write
- Reset
- The following out-of-band NVMe-MI Command Set commands support has changed from mandatory to optional
- Read NVMe-MI Data Structure
- Configuration Set
- Configuration Get
- VPD Write
- Reset
- References
- Technical Proposal 6028
- Incompatible Changes
- More Processing Required Response
- Required Changes
- Added a mandatory More Processing Required Response for when a Management Endpoint needs more than 100 ms to complete processing of a Command Message
- References
- Technical Proposal 6030
- Required Changes
- Progress Detect During Paused Process State
- Incompatible Changes
- When Process State completes, transition to Transmit State, but do not transmit until Pause is cleared
- Resume shall reset the request to response timer if More Processing Required Response is not yet sent
- References
- Technical Proposal 6031
- Incompatible Changes