FDP Scripts
FDP_Basic_Support.py
FDP Basic Support
Objective:
The objectives of the FDP Basic Support test is to verify the following:
If Flexible Data Placement capability is supported, then the controller supports the following:
The Feature Identifiers Supported and Effects (12h), FDP Configurations (20h), Reclaim Unit Handle Usage (21h), FDP Statistics (22h), and FDP Events (23h) Log Pages
The I/O Management Send Command and the Placement Identifier Update Management Operation
The I/O Management Receive command and the Reclaim Unit Handle Status Management Operation
The Data Placement Directive
The Flexible Data Placement (1Dh), and Flexible Data Placement Events (1Eh) Features
Pass/Fail:
All actions must succeed for script to pass
FDP_Directive_Send_Operation_01h_Enable.py
FDP Directive Send Directive Operation 01h - Enable
Objective:
The objectives of FDP Directive Send Directive Operation 01h Enable are to verify the following:
Issuing a Directive Send command with Directive Type 00h (Identify) and Directive Operation 01h (Enable Directive) correctly enables and disables the directive type specified in Command Dword 12, if that directive type is supported by the controller.
Pass/Fail:
All actions must succeed for script to pass
FDP_Directives_Basic_Support.py
FDP Directives - Basic Support
Objective:
The objectives of FDP Directives - Basic Support tests are to verify the following:
If the controller supports directives, then the controller supports Directive Send and Receive commands.
If the controller supports directives, then the controller supports the Identify Directive (00h) directive type.
All Reserved fields of any parsed structures are cleared to 0.
Pass/Fail:
All actions must succeed for script to pass
FDP_Directives_Controller_Level_Reset.py
FDP Directives - Controller Level Reset
Objective:
The objectives of FDP Directives Negative Response tests are to verify the following:
Issue a Directive Receive Command with Directive Type 00h Identify and Directive Operation 01h Return Parameters and verify:
On a controller level reset, all Directives other than the Identify Directive that have the Directive Persistent Across Controller Level Resets bit cleared to 0 are disabled for that controller.
On a controller level reset, if there is an enabled controller associated with the Host Identifier for the controller that was reset, then for namespaces attached to enabled controllers associated with that Host Identifier, Directives are not disabled.
If the Data Placement Directive is supported, then the Data Placement Directive bit in the Directive Persistent Across Controller Level Resets field shall be set to 1. If not supported, then this bit shall be set to 0.
The Streams Directive bit in the Directive Persistent Across Controller Level Resets field shall be cleared to 0.
The Identify Directive bit in the Directive Persistent Across Controller Level Resets field shall be cleared to 0.
If the Vendor Specific Directive is not supported, then the Vendor Specific Directive bit in the Directive Persistent Across Controller Level Resets field shall be set to 0.
Pass/Fail:
All actions must succeed for script to pass
FDP_Directives_Enabled_Negative_Response.py
FDP Directives - Enabled Negative Response
Objective:
The objectives of FDP Directives Enabled Negative Response are to verify the following:
If a Directive is not supported or is supported and disabled, then all Directive Send commands and Directive Receive commands with that Directive Type shall be aborted with a status code of Invalid Field in Command.
Pass/Fail:
All actions must succeed for script to pass
FDP_Directives_IO_Negative_Response.py
FDP Directives - I/O Negative Response
Objective:
The objectives of FDP Directives I/O Negative Response tests are to verify the following:
In an I/O command, if one or more I/O Command Directives is enabled and the DTYPE field is set to a value that is not supported or not enabled, then the controller shall abort the command with a status code of Invalid Field in Command.
Pass/Fail:
All actions must succeed for script to pass
FDP_Directives_Negative_Response.py
FDP Directives Negative Response
Objective:
The objectives of FDP Directives Negative Response tests are to verify the following:
Issue Directive Receive and Send commands with DTYPE 0h and DOPER 1h and verify:
The command is aborted with a status code of Invalid Field in Command if the NSID field is set to FFFFFFFh.
Issue Directive Receive and Send commands with DTYPE 2h and verify:
The command is aborted with a status code of Invalid Field in Command.
Issue a Directive Send Command with DTYPE 0h, DOPER 1h and the Directive Type field of Command Dword 12 specifying the Data Placement Directive 2h and verify:
The command is aborted with a status code of FDP Disabled if Flexible Data Placement is disabled in the Endurance Group containing the specified namespace.
Pass/Fail:
All actions must succeed for script to pass
FDP_Endurance_Groups_Basic_Support.py
FDP Endurance Groups - Basic Support
Objective:
The objectives of the FDP Endurance Groups Basic Support test is to verify the following:
If Endurance Groups are supported on the drive, then the controller:
Indicates support for Endurance Groups in the Controller Attributes field in the Identify Controller data structure
Indicates the Endurance Group Identifier with which the namespace is associated in the Identify Namespace data structure
Supports the Endurance Group Information Log Page
Supports the Endurance Group Event Aggregate Log Page, if more than one Endurance Group is supported in the NVM subsystem
Pass/Fail:
All actions must succeed for script to pass
FDP_Endurance_Groups_Negative_Response.py
FDP Endurance Groups Negative Response
Objective:
The objectives of FDP Basic Negative Response are to verify the following:
If the host specifies an Endurance Group Identifier cleared to 0h for a command that requires an Endurance Group Identifier, then that command shall abort with a status code of Invalid Field in Command.
Pass/Fail:
All actions must succeed for script to pass
FDP_Endurance_Groups_Unsupported_ENDGID.py
FDP Endurance Groups - Unsupported ENDGID
Objective:
The objectives of the FDP Basic Support test is to verify the following:
If Endurance Groups are not supported and the controller returns information to the host that contains an Endurance Group Identifier field, then that field shall be cleared to 0h.
Pass/Fail:
All actions must succeed for script to pass
FDP_Feature_06h_Negative_Response.py
FDP Volatile Write Cache Feature Identifier 06h - Negative Response
Objective:
The objectives of FDP Volatile Write Cache Feature Identifier 06h Negative Response tests are to verify the following:
Issue a Set Features Command with Feature Identifier 06h and verify:
If a volatile write cache is not present, then the Set Features command aborts with a status code of Invalid Field in Command.
Issue a Get Features Command with Feature Identifier 06h and verify:
If a volatile write cache is not present, then the Get Features command aborts with a status code of Invalid Field in Command.
Pass/Fail:
All actions must succeed for script to pass
FDP_Feature_06h_Volatile_Write_Cache_Persistent.py
FDP Volatile Write Cache Feature Identifier 06h - Persistent
Objective:
The objectives of FDP Volatile Write Cache Feature Identifier 06h Persistent tests are to verify the following:
If a volatile write cache is present, and the volatile write cache is disabled, then user data written by any command to a namespace shall be persistent.
Pass/Fail:
All actions must succeed for script to pass
FDP_Feature_06h_Volatile_Write_Cache_Present.py
FDP Volatile Write Cache Feature Identifier 06h - Volatile Write Cache Present
Objective:
The objectives of FDP Volatile Write Cache Feature Identifier 06h Toggled tests are to verify the following:
If a volatile write cache is present, then Feature Identifier 06h shall be supported.
Pass/Fail:
All actions must succeed for script to pass
FDP_Feature_1Dh_Default.py
FDP Get Features - FID 1Dh Default Values
Objective:
The objectives of FDP Get Features - FID 1Dh Default Values tests are to verify the following:
Perform a Get Feature command with Feature Identifier 1Dh and verify the following fields:
The default value of Dword 0 is set to 0h.
Pass/Fail:
All actions must succeed for script to pass
FDP_Feature_1Dh_Negative_Response.py
FDP Feature FID 1Dh Flexible Data Placement Negative Response
Objective:
The objectives of FDP Feature FID 1Dh Flexible Data Placement Negative Response tests are to verify the following:
Issue a Set Features command with Feature Identifier 1Dh Flexible Data Placement and verify:
The command fails with status code 0x0C Command Sequence Error when issuing the command to an Endurance Group in which one or more namespaces exist, and specifying a different value from the current value of the Feature for that Endurance Group.
Pass/Fail:
All actions must succeed for script to pass
FDP_Feature_1Dh_Saveable.py
FDP Feature FID 1Dh Savable
Objective:
The objectives of FDP Feature FID 1Dh Saveable tests are to verify the following:
Perform a Set Feature command with Feature Identifier 1Dh and verify the following fields:
If bit 4 is set to ‘1’ in the ONCS field in the Identify Controller data structure and the SV bit is cleared to ’0’, then the controller shall abort the command with a status code of Invalid Field in Command.
Pass/Fail:
All actions must succeed for script to pass
FDP_Feature_1Eh_Negative_Response.py
FDP Feature FID 1Eh Negative Response
Objective:
The objectives of FDP Feature FID 1Eh Negative Response tests are to verify the following:
Perform a Get and Set Feature command with Feature Identifier 1Eh and verify:
If Flexible Data Placement is disabled, then the controller aborts the command with status code 29h FDP Disabled.
If the NSID field is set to FFFFFFFFh, then the controller aborts the command with status code 2h Invalid Field in Command.
If the specified Placement Handle is not valid for the namespace, then the controller aborts the command with status code 2h Invalid Field in Command.
Pass/Fail:
All actions must succeed for script to pass
FDP_IO_Controller_Required_Support_IO_Controller.py
FDP I/O Controller Required Support IO Controller
Objective:
Verify basic command support for required IO Controllers Common I/O Command support (Figure 23)
Pass/Fail:
All actions must succeed for script to pass
FDP_IO_Management_Negative_Response.py
FDP I/O Management Negative Response
Objective:
The objectives of FDP I/O Management Negative Response tests are to verify the following:
Issue an I/O Management Receive command with MO = 1h and verify:
The command is aborted with a status code of FDP Disabled if Flexible Data Placement is disabled in the Endurance Group containing the specified namespace.
The command is aborted with a status code of Invalid Namespace or Format if the NSID field is set to 0h or FFFFFFFFh.
Issue an I/O Management Send Command with MO = 1h and verify:
The command is aborted with a status code of FDP Disabled if Flexible Data Placement is disabled in the Endurance Group containing the specified namespace.
The command is aborted with a status code of Invalid Field in Command under the following conditions:
The value of the Reclaim Group Identifier field is greater than or equal to the Number of Reclaim Groups field of the FDP Configuration Descriptor for the Endurance Group associated with the specified namespace.
The specified Placement Handle field is greater than or equal to the Number of Placement Handles field specified when the namespace was created.
The value represented by the Number of Placement Identifiers (NPID) field is greater than the Max Placement Identifiers (MAXPIDS) field in the current FDP configuration.
Pass/Fail:
All actions must succeed for script to pass
FDP_IO_Management_Receive_01h_Time_Increment.py
FDP I/O Management Receive Management Operation 01h Time Increment
Objective:
The objectives of FDP I/O Management Receive Management Operation 01h Time Increment tests are to verify the following:
Issue an I/O Management Receive Command with Management Operation 01h Reclaim Unit Handle Status and verify:
The Estimated Active Reclaim Unit Time Remaining (EARUTR) field in the Reclaim Unit Handle Status Descriptor (RUHSD) properly decrements as time progresses.
Pass/Fail:
All actions must succeed for script to pass
FDP_IO_Management_Receive_01h_Valid.py
FDP I/O Management Receive Management Operation 01h Valid
Objective:
The objectives of FDP I/O Management Receive Management Operation 01h Valid tests are to verify the following:
Issue an I/O Management Receive Command with Management Operation 01h Reclaim Unit Handle Status and verify:
For each Placement Identifier assigned to the namespace, the controller returns a Reclaim Unit Handle Status Descriptor for each Reclaim Group.
The Reserved fields are cleared to 0h.
Pass/Fail:
All actions must succeed for script to pass
FDP_IO_Management_Send_01h_Update.py
FDP I/O Management Send Management Operation 01h Update
Objective:
The objectives of FDP I/O Management Send Management Operation 01h Update tests are to verify the following:
Issue an I/O Management Send Command with Management Operation 01h Reclaim Unit Handle Update and verify:
The reference to the Reclaim Unit specified by each Placement Identifier listed in the Management Operation Specific field references a different Reclaim Unit if the currently referenced Unit has been written with user data.
Pass/Fail:
All actions must succeed for script to pass
FDP_Identify_CNS01h_FCM.py
FDP Identify CNS 1h Identify Controller - FCM
Objective:
The objectives of FDP Identify CNS 1h Identify Controller FCM tests are to verify the following:
The controller does not indicate support for Fixed Capacity Management in the FCM bit of the Identify Controller Data Structure.
Pass/Fail:
All actions must succeed for script to pass
FDP_Identify_CNS01h_FDPS.py
FDP Identify CNS 1h Identify Controller - FDPS
Objective:
The objectives of FDP Identify CNS 1h Identify Controller FDPS tests are to verify the following:
If Flexible Data Placement is supported on the controller, then the controller does not indicate support for Fixed Capacity Management in the Fixed Capacity Management (FCM) bit of the Identify Controller Data Structure.
Pass/Fail:
All actions must succeed for script to pass
FDP_Identify_CNS01h_Flush_Behavior.py
FDP Identify Flush Behavior
Objective:
The objectives of FDP Identify Flush Behavior tests are to verify the following:
Verify the Flush Behavior bit matches accordingly with its intended behavior.
Pass/Fail:
All actions must succeed for script to pass
FDP_Identify_CNS01h_VWC_Valid.py
FDP Identify Controller CNS 1h VWC Valid
Objective:
The objectives of FDP Identify Controller CNS 1h VWC Valid tests are to verify the following:
Issue NVMe Identify command, CNS = 1h, and read the VWC field of the Identify Controller Data Structure to verify the following:
Reserved bits 07:03 are cleared to 0.
Flush Behavior is set to 00b, 10b, or 11b.
Volatile Write Cache Present is set to 0 or 1.
Pass/Fail:
All actions must succeed for script to pass
FDP_Identify_CNS08h_UID_Reuse.py
FDP Identify Controller CNS 1h UID Reuse
Objective:
The objectives of FDP Identify Controller CNS 1h VWC Valid tests are to verify the following:
1. Issue NVMe Identify command, CNS = 1h, and read the Common Namespace Features (NSFEAT) field of the Identify Controller Data Structure to verify the following:
In the Identify Namespace Data Structure, if the NGUID field is 0h and the EUI64 field is 0h, then the UIDREUSE field is 0h.
Pass/Fail:
All actions must succeed for script to pass
FDP_LogPage_20h_Valid.py
FDP Configurations Log Page 20h Valid
Objective:
The objectives of FDP Configurations Log Page 20h Valid tests are to verify the following:
The reserved fields of the FDP Configurations Log Page 20h are properly set to 0.
The Number of Reclaim Units reported in the FDP Configuration Descriptor is set to a non-zero value.
The Number of Reclaim Unit Handles reported in the FDP Configuration Descriptor is set to a non-zero value.
If the Number of Reclaim Unit Groups reported in the FDP Configuration Descriptor is greater than 1, then the Reclaim Group Identifier Format field is set to a non-zero value.
The Max Placement Identifiers reported in the FDP Configuration Descriptor is less than the product of the Number of Reclaim Groups and the Number of Reclaim Unit Handles.
If the Maximum Number of Allowed Namespaces reported in the Identify Controller Data Structure is 0, then the Number of Namespaces Supported reported in the FDP Configuration Descriptor is less than the Number of Namespaces reported in the Identify Controller Data Structure.
If the Maximum Number of Allowed Namespaces reported in the Identify Controller Data Structure is greater than 0, then the Number of Namespaces Supported reported in the FDP Configuration Descriptor is less than or equal to the Maximum Number of Allowed Namespaces.
Pass/Fail:
All actions must succeed for script to pass
FDP_LogPage_20h_Volatile_Write_Cache.py
FDP Configurations Log Page 20h Volatile Write Cache
Objective:
The objectives of FDP Configurations Log Page 20h Volatile Write Cache tests are to verify the following:
Issue Get Log Page command, LID = 20h, and verify the following:
Verify that VWCP in the Identify Controller is 1 if FDPVWC in the FDP Configuration Descriptor is set to 1.
Pass/Fail:
All actions must succeed for script to pass
FDP_LogPage_21h_FDP_Disabled.py
FDP Log Page 21h Reclaim Unit Handle Usage - FDP Disabled
Objective:
The objectives of FDP Log Page 21h Reclaim Unit Handle Usage FDP Disabled tests are to verify the following:
If Flexible Data Placement is disabled in the specified Endurance Group and the Get Log Page command specifies LID = 21h, then the controller shall abort the command with a status code of FDP Disabled.
Pass/Fail:
All actions must succeed for script to pass
FDP_LogPage_21h_Reported_Handle_Attributes.py
FDP Log Page 21h Reclaim Unit Handle Usage - Reported Handle Attributes
Objective:
The objectives of the FDP Log Page 21h Reported Handle Attributes test is to verify the following:
Issue a Namespace Management command with SEL = 0h and verify:
The Reclaim Unit Handle Usage Descriptor List Data Structure returned by Log Page 21h accurately reflects the Placement Handle List specified by the Namespace Management command.
Pass/Fail:
All actions must succeed for script to pass
FDP_LogPage_21h_Valid.py
FDP Reclaim Unit Handle Usage Log Page 21h Valid
Objective:
The objectives of FDP Reclaim Unit Handle Usage Log Page 21h Valid tests are to verify the following:
Issue Get Log Page command, LID = 21h, and verify the following:
The Number of Reclaim Unit Handles (NRUH) field is a non-zero value.
The Number of Reclaim Unit Handles (NRUH) field is set to the value of the NRUH field in the current FDP configuration for the specified Endurance Group.
The Reserved fields are cleared to 0.
For each Reclaim Unit Handle Usage Descriptor (RUHUD), the following conditions are met:
The Reclaim Unit Handle Attributes field is set to 0, 1, or 2.
The Reserved fields are cleared to 0.
No more than one RUHUD has the Reclaim Unit Handle Attributes field set to Controller Specified 2h.
Pass/Fail:
All actions must succeed for script to pass
FDP_LogPage_22h_Cleared.py
FDP Statistics Log Page 22h Cleared
Objective:
The objectives of FDP Statistics Log Page 22h Cleared tests are to verify the following:
Verify that disabling and enabling FDP clears the values in log page 22h.
Pass/Fail:
All actions must succeed for script to pass
FDP_LogPage_22h_Endurance_Group.py
FDP Statistics Log Page 22h Endurance Groups
Objective:
The objectives of FDP Statistics Log Page 22h Endurance Groups tests are to verify the following:
The values reported in this log page include operations on all namespaces that existed in the specified Endurance Group since the Flexible Data Placement was last enabled in that Endurance Group
Pass/Fail:
All actions must succeed for script to pass
FDP_LogPage_22h_FDP_Disabled.py
FDP Statistics Log Page 22h Disabled
Objective:
The objectives of FDP Statistics Log Page 22h FDP Disabled tests are to verify the following:
If Flexible Data Placement is disabled in the specified Endurance Group and the Get Log Page command specifies LID = 22h, then the controller shall abort the command with a status code of FDP Disabled.
Pass/Fail:
All actions must succeed for script to pass
FDP_LogPage_23h_Cleared.py
FDP Log Page 23h Flexible Data Placement (FDP) Events - Cleared
Objective:
The objectives of FDP Log Page 23h Flexible Data Placement (FDP) Events Cleared tests are to verify the following:
Issue a Set Features command with Feature Identifier 1Dh and verify:
If the Set Features command is successful and changes the Feature value, then all events in the FDP Events Log Page are cleared.
Pass/Fail:
All actions must succeed for script to pass
FDP_LogPage_23h_Events_Disabled.py
FDP Log Page 23h Flexible Data Placement (FDP) Events - Events Disabled
Objective:
The objectives of FDP Log Page 23h Flexible Data Placement (FDP) Events - Events Disabled tests are to verify the following:
Issue a Get Log Page command with LID = 23h and verify:
An FDP event shall only be reported if the FDP event occurs and that FDP event is enabled for that Reclaim Unit Handle.
Pass/Fail:
All actions must succeed for script to pass
FDP_LogPage_23h_FDP_Disabled.py
FDP Events Log Page 23h FDP Disabled
Objective:
The objectives of FDP Events Log Page 23h FDP Disabled tests are to verify the following:
Issue Get Log Page command, LID = 23h, and verify the following:
Verify that the Log Page returns data only if Flexible Data Placement is enabled on the specified Endurance Group.
Pass/Fail:
All actions must succeed for script to pass
FDP_LogPage_23h_Reported_Events.py
FDP Log Page 23h Flexible Data Placement (FDP) Events - Reported Events
Objective:
The objectives of FDP Log Page 23h Flexible Data Placement (FDP) Events Reported Events tests are to verify the following:
Issue a Get Log Page command with LID = 23h, and verify:
The controller does not report both host events and controller events in the log page.
Pass/Fail:
All actions must succeed for script to pass
FDP_NS_Management_NPHNDLS_0h.py
FDP Namespace Management - NPHNDLS 0h
Objective:
The objectives of FDP Namespace Management - NPHNDLS 0h tests are to verify the following:
Issue Namespace Management Create Operation with NPHNDLS = 0h and verify:
If no namespace exists in the specified Endurance Group that was created with a Namespace Management command that specified the NPHNDLS field cleared to 0h, then the controller shall select a Reclaim Unit Handle for the Reclaim Unit Handle Identifier 0 field that is not utilized by any namespace in the same Endurance Group that was created with a Namespace Management command that specified a non-zero NPHNDLS field.
If any namespace exists in the specified Endurance Group that was created with a Namespace Management command that specified the NPHNDLS field cleared to 0h, then the controller shall utilize the same Reclaim Unit Handle for the Reclaim Unit Handle Identifier 0 field that is utilized by those namespaces in the same Endurance Group that were created with a Namespace Management command that specified the NPHNDLS field cleared to 0h.
Pass/Fail:
All actions must succeed for script to pass
FDP_NS_Management_Negative_Response.py
FDP Namespace Management - Negative Response
Objective:
The objectives of FDP Namespace Management Negative Response tests are to verify the following:
Issue Namespace Management Create Operation and verify the command fails with status code 2Ah Invalid Placement Handle List in the following scenarios:
When the NPHNDLS field is cleared to 0h, and all Reclaim Unit Handle Identifiers accessible to the namespace are allocated to namespaces created by Namespace Management command with the NPHNDLS field set to a non-zero value.
When the NPHNDLS field is non-zero, and a Reclaim Unit Handle Identifier specified by the host is the same as the Reclaim Unit Handle Identifier selected by the controller due to an existing namespace being created by Namespace Management command with the NPHNDLS field cleared to 0h,
If the NPHNDLS field is greater than the lesser value of:
the number of Reclaim Unit Handles supported by the FDP configuration and
128
If a Reclaim Unit Handle Identifier value in any entry in the Placement Handle List is greater than or equal to the number of Reclaim Unit Handles supported by the FDP configuration for the Endurance Group.
If the same Reclaim Unit Handle Identifier value is in two or more entries in the Placement Handle List.
Issue Namespace Management Create Operation and verify the command fails with status code 0Ah Invalid Format in the following scenario:
- If a Reclaim Unit Handle specified in the Placement Handle List is utilized by another namespace and the
Format Index for that namespace does not match the specified Format Index for the namespace to be created.
Pass/Fail:
All actions must succeed for script to pass
FDP_NVMe_FormatNVM_Format_Index.py
FDP NVMe Format NVM - Format Index
Objective:
The objectives of FDP NVMe Format NVM Format Index h tests are to verify the following:
If any Reclaim Unit Handle utilized by the specified namespace is shared by other namespaces and the specified Format Index does not match the Format Index of the other namespaces, then the command shall be aborted with a status code of Invalid Format.
Pass/Fail:
All actions must succeed for script to pass
FDP_NVMe_Write_DTYPE_0h.py
FDP NVMe Write - DTYPE 0h
Objective:
The objectives of FDP NVMe Write DTYPE 0h tests are to verify the following:
Any write command to a namespace that exists in an Endurance Group with Flexible Data Placement enabled that does not specify the Data Placement Directive uses the Placement Handle value 0h and the controller selects the Reclaim Group for that command.
Pass/Fail:
All actions must succeed for script to pass
FDP_NVMe_Write_Invalid_Handle.py
FDP NVMe Write - Invalid Handle
Objective:
The objectives of FDP NVMe Write DTYPE 0h tests are to verify the following:
If the Placement Identifier in the DSPEC field of a write command is invalid, then the controller shall:
Determine the placement of the user data for that write command.
Generate an Invalid Placement Identifier FDP Event if that event is enabled for the selected Reclaim Unit Handle.
Pass/Fail:
All actions must succeed for script to pass
FDP_Rotational_Media_Basic_Support.py
FDP Rotational Media - Basic Support
Objective:
The objectives of the FDP Rotational Media test is to verify the following:
If the controller supports namespaces that store user data on rotational media, then that controller:
Sets the Rotational Media bit to ‘1’ in the NSFEAT field of the I/O Command Set Independent Identify Namespace data structure for any namespace that stores data on rotational media.
Support the Rotational Media Information log page.
Support the Spinup Control feature.
Set the EG Rotational Media bit to ‘1’ in the EGFEAT field in the Endurance Group Information log page for each Endurance Group that stores data on rotational media.
Pass/Fail:
All actions must succeed for script to pass