Group 4 测试Controller Registers
Test 4.1 Offset 00h: Cap – Memory Page Size Maximum (MPSMAX)
测试步骤:
- Host读取 MPSMAX (bit 55:52)
期望结果:
- MPSMAX大于等于CAP.MPSMIN;
Test 4.2 Offset 00h: Cap – Memory Page Size Minimum (MPSMIN)
测试步骤:
- Host读取 MPSMIn (bit 51:48)
期望结果:
- MPSMAX大于等于CAP.MPSMIN;
Test 4.3 Offset 00h: Cap – Command Sets Support (CSS)
测试步骤:
- Host读取 CSS (bit 44:37)
期望结果:
- CSS bit 37=1 – 该SSD支持NVM Command Set
Test 4.4 Offset 00h: Cap – Doorbell Stride (DSTRD)
测试步骤:
- Host读取 DSTRD (bit 35:32);
- 上报读取到的值;
期望结果:
本测试结果供参考
Test 4.5 Offset 00h: Cap – Timeout (TO)
测试步骤:
- Host读取 TO (bit 31:24);
- Host 设置EN为‘0’,进行controller reset;
- Host以100ms间隔pooling CSTS.RDY,直到其值由‘1’变为‘0’;
- Host 设置EN为‘1’,重新使能controller (重新使能前先完成其他相关register的设置);
- Host以100ms间隔pooling CSTS.RDY,直到其值由‘0’变为‘1’;
期望结果:
- 步骤3,5中测量到RDY转换时间,小于等于CAP. TO中指定的值;
Test 4.6 Offset 00h: Cap – Arbitration Mechanism Supported (AMS)
测试步骤:
- Host读取 AMS (bit 18:17);
- Host设置AMS字段,使controller进入其支持的不同Arbitration mechanism;
期望结果:
- Host能够成功将AMS设置为相应的值;
Test 4.7 Offset 00h: Cap – Contiguous Queue Required (CQR)
测试步骤:
- Host读取 CQR (bit 16);
- 上报读取到的值;
期望结果:
本测试结果供参考
Test 4.8 Offset 00h: Cap – Maximum Queue Entries Supported (MQES)
测试步骤:
- Host读取 MQES (bit 15:00);
期望结果:
- MQES大于等于1 (Queue Entry size大于等于2);
Test 4.9 Offset 0Ch-10h: INTMS – Interrupt Mask Set and INTMC – Interrupt Mask Clear
测试步骤:
- Host读取INTMS和INTMC register;
- Host对INTMS和INTMC register所有位写‘0’;
- Host读取INTMS和INTMC register;
期望结果:
- 步骤3读取INTMS和INTMC值与步骤1相同;
Test 4.10 Offset 14h: CC – I/O Completions Queue Entry Size (IOCQES)
测试步骤:
- Host读取IOCQES (bit 23:20);
期望结果:
- 检查I/O completion queue entries 等于2的 N次方 (N=CC.IOCQES);
Test 4.11 Offset 14h: CC – I/O Submission Queue Entry Size (IOSQES)
测试步骤:
- Host读取IOCQES (bit 19:16);
期望结果:
- 检查I/O submission queue entries 等于2的 N次方 (N=CC.IOSQES);
Test 4.12 Offset 14h: CC-Shutdown Notification
测试结果:
- Host读取SHN (bit 15:14);
- Host向SHN写入01b,启动shutdown progress并发送normal shutdown notification;
- 等待SHST变为10b(shutdown完成),Host执行full controller reset;
- Host发送Identify Command(指定CNS=01h);
- Host向SHN写入10b,启动shutdown progress并发送abrupt shutdown notification;
- 等待SHST变为10b(shutdown完成),Host执行full controller reset;
- Host发送Identify Command(指定CNS=01h);
期望结果:
- Controller Level Reset以后,SHN值回复到缺省值00b (no notification);
- Host设置SHN后,Controller按照下表将CSTS.SHST设置为对应值;
- Host执行controller reset后,当SHST为00b(normal operation)时,SSD可以正常接收命令;
4.13 Offset 14h: CC- Arbitration Mechanism Select
测试步骤
- Host设置EN为0;
- Host读取AMS;
- Host读取AMS;
- 根据AMS申明支持的各个arbitration mechanism:
- Host设置AMS调整SSD当前的arbitration mechanism;
- Host读取AMS;
期望结果:
- Host设置EN为0后, CC.AMS为默认值000b;
- Host能够成功设置AMS字段;
Test 4.14 Offset 14h: CC – I/O Command Set Selected (CSS)
测试步骤
- Host读取CSS(bit 06:04);
- 根据SSD在CSS中申明的各个I/O command set:
- Host设置CSS到相应的值;
- Host读取CSS;
期望结果:
- Host设置EN为0后, CC.CSS为默认值000b;
- Host能够成功设置CSS字段;
Test 4.15 Offset 14h: CC – Enable (EN)
测试步骤:
- Host读取EN(bit 00);
期望结果:
- 当EN为1时,SSD能够正常处理SQ中的命令;
- 当EN清0时,SSD不会处理命令,也不会返回CQ;
Test 4.16 Offset 1Ch:CSTS – Shutdown Status (SHST)
测试步骤:
- Host读取SHST(bit 03:02);
- Host向SHN写入01b,启动shutdown progress并发送normal shutdown notification;
- Host读取SHST;
- 等待SHST变为10b(shutdown完成),Host执行full controller reset;
- Host读取SHST;
- Host发送Identify Command(指定CNS=01h);
- Host向SHN写入10b,启动shutdown progress并发送abrupt shutdown notification;
- Host读取SHST;
- 等待SHST变为10b(shutdown完成),Host执行full controller reset;
- Host读取SHST;
- Host发送Identify Command(指定CNS=01h);
期望结果:
- Controller Level Reset以后,SHST恢复到缺省值00b;
- Host设置SHN为01b或者10b时,SSD设置CSTS.SHST为01b (代表shutdown正在进行);
- 记录步骤2,步骤7以后,SSD CSTS.SHST从01b到10b的时间;
- Host执行controller reset后,当SHST为00b(normal operation)时,SSD可以正常接收命令;
Test 4.17 Offset 1Ch:CFS – Controller Fatal Status (CFS)
测试步骤
- Host读取CFS (bit 01);
- 上报读取到的值;
期望结果
本测试结果供参考
Test 4.18 Offset -08h: Version (VS)
测试步骤
- Host读取VS;
- 上报读取到的值;
- Host发送Identify Command(指定CNS=01h),获取Identify Controller data structure;
期望结果
- SSD返回有效的VS值 (0, 1.1, 1.2, 1.3);
Identify controller data structure与 VS中的版本信息相同;