OCP_DatacenterSSD_2_0_UserInput

OCP_DCSSD_2_0_FormFactor_E1L_1CConnector.py

This script will run the following tests:
  1. Verify PCI Express Link Capabilities register (0Ch) lane width supports at least x4

  2. Have the user verify the device only has a 1C connector

NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered

Pass/Fail: Script passes if all tests pass

Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:

FFE1L-12

OCP_DCSSD_2_0_FormFactor_E1L_AmberLED.py

This script will run the following tests:
  1. Drive LED/activity pin high and have the user check that the LED is on

  2. Drive LED/activity pin low and have the user check that the LED is off

  3. Disconnect LED/activity pin by putting it in high impedance state and have the user check that the LED is off

  4. Drive LED/activity pin high and have the user check that the LED is on

  5. Assert PWRDIS, wait for device to shutdown, and have the user check that the LED is on

  6. De-assert PWRDIS, wait for device to come up, and have the user check that the LED is on

  7. Disable 12V supply and have the user check that the LED is on

  8. Disable 3.3V supply and have the user check that the LED is on

  9. Enable 12V and 3.3V supplies and have the user check that the LED is on

  10. Drive LED/activity pin low and have the user check that the LED is off

NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered

Pass/Fail: Script passes if all tests pass

Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:

FFE1L-7

wait_assert(dut)

Wait for PWRDIS signal to be asserted

Parameters:

dut (XML_API) – Device object under test

Return type:

None

wait_deassert(dut)

Wait for PWRDIS signal to be de-asserted

Parameters:

dut (XML_API) – Device object under test

Return type:

None

OCP_DCSSD_2_0_FormFactor_E1L_GreenLED.py

This script will run the following tests:
  1. Have the user check drive green activity LED is lit solidly

  2. Start write I/O and have the user check drive green activity LED is flashing while I/O is running

  3. Start read I/O and have the user check drive green activity LED is flashing while I/O is running

  4. Power off drive and have the user check drive green activity LED is off

  5. Power on drive and have the user check drive green activity LED is lit solidly

NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered

Pass/Fail: Script passes if all tests pass

Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:

FFE1L-3/4

OCP_DCSSD_2_0_FormFactor_E1L_HotSwap.py

This script will run the following tests:
  1. Run sequential read and write I/O test for 5 minutes

  2. Verify performance is within 5% of performance numbers supplied in adaptation parameters

  3. Run sequential write I/O test

  4. Have the user unplug and plugin the drive

  5. Do a sequential read and verify there’s no miscompare

  6. Stop sequential write I/O test

  7. Run sequential read and write I/O test for 5 minutes

  8. Verify performance is within 5% of performance numbers supplied in adaptation parameters

NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered

Pass/Fail: Script passes if all tests pass

Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:

GFF-5

OCP_DCSSD_2_0_FormFactor_E1S_1CConnector.py

This script will run the following tests:
  1. Verify PCI Express Link Capabilities register (0Ch) lane width supports at least x4

  2. Have the user verify the device only has a 1C connector

NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered

Pass/Fail: Script passes if all tests pass

Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:

FFE1S-12

OCP_DCSSD_2_0_FormFactor_E1S_AmberLED.py

This script will run the following tests:
  1. Drive LED/activity pin high and have the user check that the LED is on

  2. Drive LED/activity pin low and have the user check that the LED is off

  3. Disconnect LED/activity pin by putting it in high impedance state and have the user check that the LED is off

  4. Drive LED/activity pin high and have the user check that the LED is on

  5. Assert PWRDIS, wait for device to shutdown, and have the user check that the LED is on

  6. De-assert PWRDIS, wait for device to come up, and have the user check that the LED is on

  7. Disable 12V supply and have the user check that the LED is on

  8. Disable 3.3V supply and have the user check that the LED is on

  9. Enable 12V and 3.3V supplies and have the user check that the LED is on

  10. Drive LED/activity pin low and have the user check that the LED is off

NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered

Pass/Fail: Script passes if all tests pass

Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:

FFE1S-7

wait_assert(dut)

Wait for PWRDIS signal to be asserted

Parameters:

dut (XML_API) – Device object under test

Return type:

None

wait_deassert(dut)

Wait for PWRDIS signal to be de-asserted

Parameters:

dut (XML_API) – Device object under test

Return type:

None

OCP_DCSSD_2_0_FormFactor_E1S_GreenLED.py

This script will run the following tests:
  1. Have the user check drive green activity LED is lit solidly

  2. Start write I/O and have the user check drive green activity LED is flashing while I/O is running

  3. Start read I/O and have the user check drive green activity LED is flashing while I/O is running

  4. Power off drive and have the user check drive green activity LED is off

  5. Power on drive and have the user check drive green activity LED is lit solidly

NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered

Pass/Fail: Script passes if all tests pass

Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:

FFE1S-3/4

OCP_DCSSD_2_0_FormFactor_E1S_HotSwap.py

This script will run the following tests:
  1. Run sequential read and write I/O test for 5 minutes

  2. Verify performance is within 5% of performance numbers supplied in adaptation parameters

  3. Run sequential write I/O test

  4. Have the user unplug and plugin the drive

  5. Do a sequential read and verify there’s no miscompare

  6. Stop sequential write I/O test

  7. Run sequential read and write I/O test for 5 minutes

  8. Verify performance is within 5% of performance numbers supplied in adaptation parameters

NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered

Pass/Fail: Script passes if all tests pass

Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:

GFF-5

OCP_DCSSD_2_0_FormFactor_M2_LED.py

This script will run the following tests:
  1. Have the user check drive activity LED is lit solidly

  2. Start write I/O and have the user check drive activity LED is flashing while I/O is running

  3. Start read I/O and have the user check drive activity LED is flashing while I/O is running

  4. Power off drive and have the user check drive activity LED is off

  5. Power on drive and have the user check drive activity LED is lit solidly

NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered

Pass/Fail: Script passes if all tests pass

Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:

FFM2-6/7

OCP_DCSSD_2_0_FormFactor_M2_ManualInspection.py

This script will run the following tests:
  1. Have the user check drive dimensions

  2. Have the user check drive uses M key

  3. Have the user check drive label placement

NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered

Pass/Fail: Script passes if all tests pass

Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:

FFM2-1/2/3/4/11

OCP_DCSSD_2_0_FormFactor_U2U3_LED.py

This script will run the following tests:
  1. Have the user check drive activity LED is off

  2. Start write I/O and have the user check drive activity LED is flashing while I/O is running

  3. Start read I/O and have the user check drive activity LED is flashing while I/O is running

  4. Power off drive and have the user check drive activity LED is off

  5. Power on drive and have the user check drive activity LED is off

NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered

Pass/Fail: Script passes if all tests pass

Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:

FF8639-3/4

OCP_DCSSD_2_0_Labeling_Barcodes.py

This script will run the following tests:
  1. Have the user verify barcode-1 scanned value

  2. Have the user verify model number is same between adaptation parameters, label, and barcode-1 scanned value

  3. Have the user verify serial number is same between adaptation parameters, label, and barcode-1 scanned value

  4. If adaptation parameter PSID Type is “unique”, have the user verify PSID is the same between label and barcode-2 scanned value

NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered

Pass/Fail: Script passes if all tests pass

Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:

LABL-1/5/11/12/14/21

OCP_DCSSD_2_0_Labeling_IdentifyCommand.py

This script will run the following tests:
  1. Get various fields from Identify Controller

  2. Have the user verify model number is same between identify controller, adaptation parameters, and label

  3. Have the user verify serial number is same between identify controller, adaptation parameters, and label

  4. Have the user verify firmware version is same between identify controller, adaptation parameters, and label

  5. Have the user verify drive capacity is same between identify controller, adaptation parameters, and label

NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered

Pass/Fail: Script passes if all tests pass

Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:

LABL-1/4/11/12

OCP_DCSSD_2_0_Labeling_ManualInspection.py

This script will run the following tests:
  1. Have the user check drive label placement

  2. Have the user verify various fields are the same between adaptation parameters and label

  3. Have the user verify PSID is either on or not on the label

  4. Have the user verify either one or two barcodes are on the label

  5. Have the user verify vendor logo and storage device text are on the label

  6. Have the user check logos on the label

NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered

Pass/Fail: Script passes if all tests pass

Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:

LABL-1/2/4/6/7/10/11/12/13/15/16/17/23

OCP_DCSSD_2_0_Thermal_CompositeTemperature.py

NOTE: Two identical drives are required to run this script – same vendor, same model, same capacity, same firmware version

This script will run the following tests:
  1. Precondition both drives with 128KiB sequential writes twice, followed by 4KiB random writes twice

  2. Have the user insert DUT1 and power it on

  3. Wait 10 minutes for DUT1 to reach idle steady state

  4. Issue GetLogPage for LID 2h and record composite temperature

  5. Start 100% 128KiB sequential writes and wait for steady state

  6. Every 10 minutes for 2 hours, compute mininum, maximum, and average composite temperature values, and verify mininum and maximum delta is <= 2 degrees C

  7. Stop I/O

  8. Have the user replace DUT1 with DUT2 and power it on

  9. Repeat steps 3-8

  10. Verify delta for idle, mininum, maximum, and average composite temperature values, respectively, between both drives is <= 2 degrees C

  11. Have the user replace DUT2 with DUT1 and power it on

NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered

Pass/Fail: Script passes if all tests pass

Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:

TRPT-2/3

OCP_DCSSD_2_0_Thermal_Shutdown.py

This script will run the following tests:
  1. Precondition the drive twice with 128KiB sequential writes followed by 4KiB random writes

  2. Verify CCTEMP is set to 85 degrees Celsius

  3. Issue two asynchronous event requests

  4. Have the user set the thermal chamber temperature to the maximum operating temperature as indicated in the adaptation data

  5. Start running 128KiB sequential writes

  6. Have the user increase the thermal chamber temperature by 1C/minute until it reaches WCTEMP+1

  7. Verify asynchronous event notification details

  8. Issue GetLogPage for LID 2h and verify the composite temperature is within WCTEMP+2

  9. Issue GetLogPage for LID C0h and verify the throttling status reports the device is in a throttling state

  10. Have the user increase the thermal chamber temperature by 1C/minute until it reaches CCTEMP

  11. If drive hasn’t shutdown: i. Verify asynchronous event notification details ii. Issue GetLogPage for LID 2h and verify the composite temperature equals CCTEMP iii. Have the user increase the thermal chamber temperature by 1C/minute until it reaches the shutdown temperature as indicated in the adaptation data

  12. Stop I/O

  13. Have the user set the thermal chamber temperature to 25 degrees Celsius and allow it to cool down

  14. Power the cycle the device

  15. Verify Identify Controller is successful

  16. Perform sequential reads over the entire capacity of the drive and verify there’s no data corruption

NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered

Pass/Fail: Script passes if all tests pass

Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:

THRMS-1, TTHROTTLE-1/4/8

wait_for_aen(dut, log_file, wait_time)

Verify asynchronous event request completed and has the correct info

Parameters:
  • dut (XML_API) – Device object under test

  • log_file (file) – /var/log/messages output

  • wait_time (int) – Maximum number of minutes to wait for an AEN

Returns:

aer_flag – 0 = AER was successful, 1 = AER failed

Return type:

int

OCP_DCSSD_2_0_Thermal_TemperatureSensors.py

This script will run the following tests:
  1. Precondition the drive twice with 128KiB sequential writes and 4KiB random writes

  2. Let drive reach idle steady state

  3. Issue GetLogPage for LID 2h and record composite temperature field value

  4. Based on temperature sensor count from adaptation data, verify temperature sensors are > 0

  5. Have the user calculate composite temperature using vendor-specific equation and verify it agrees with composite temperature from LID 2h (15 minutes will be allowed to do this)

  6. Perform 128KiB sequential writes

  7. After workload reaches steady state, repeat steps 3-5

NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered

Pass/Fail: Script passes if all tests pass

Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:

TRPT-1/4

get_user_input_value(question)

Ask user a question and wait for input, and verify it’s an integer or float value

Parameters:

question (str) – Question to ask the user

Returns:

input_value – Value entered by the user

Return type:

int or float

OCP_DCSSD_2_0_Thermal_Throttling.py

This script will run the following tests:
  1. Issue IdentifyController and verify WCTEMP and CCTEMP values

  2. Issue AERs

  3. Have the user set the oven temperature to 25 degrees Celsius

  4. Issue GetLogPage for LID C0h and check thermal throttling status and count values

  5. Perform 128KB sequential writes

  6. Have the user increase the oven temperature 1 degree Celsius per minute

  7. Issue GetLogPage for LID 2h and get composite temperature

  8. Issue GetLogPage for LID C0h and check thermal throttling status and count values

  9. Repeat steps 7-8 until composite temperature reaches 75 degrees Celsius

  10. Have the user reduce oven temperature to 25 degrees Celsius

  11. Have the user increase oven temperature to 76 degrees Celsius

  12. Record composite temperature and thermal throttling status and count values

  13. Verify device isn’t in a throttled state

  14. Repeat steps 11-12 until composite temperature reaches 76 degrees Celsius

  15. Have the user increase the oven temperature to 77 degrees Celsius

  16. Verify AER completed successfully

  17. Issue GetLogPage for LID 2h and verify critical warning bit 1 is set to 1

  18. Check thermal throttling status and count values

  19. Verify performance is reduced due to thermal throttling being active

  20. Have the user reduce oven temperature to 70 degrees Celsius

  21. Verify AER completed successfully

  22. Issue GetLogPage for LID 2h and verify critical warning bit 1 is cleared to 0

  23. Have the user increase the oven temperature to 79 degrees Celsius

  24. Issue GetLogPage for LID 2h and record composite temperature until it’s >= 77 degrees Celsius

  25. Record warning composite temperature time and wait 5 minutes

  26. Record composite temperature and verify it’s 77-85 degrees Celsius

  27. Verify warning composite temperature time has increased by 5

  28. Have the user reduce oven temperature to 25 degrees Celsius

  29. Stop I/O

NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered

Pass/Fail: Script passes if all tests pass

Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:

TTHROTTLE-2/3/5/6/7/9/10/11, SMART-12

wait_for_aen(dut, log_file, wait_time)

Verify asynchronous event request completed and has the correct info

Parameters:
  • dut (XML_API) – Device object under test

  • log_file (file) – /var/log/messages output

Returns:

aer_flag – 0 = AER was successful, 1 = AER failed

Return type:

int