admin管理员组文章数量:1650780
1.get feature
1.1字段参数
Get Features命令检索指定feature的属性,get feature 用data pointer,cdword10, cdword11和cdword14字段,如下表:
bits | 描述 |
127:00 | data pointer(DPTR):这个字段指示起始data buffer, 如果feature中没有数据结构,则此字段无效,可忽略。 |
bits | 描述 |
31:11 | reserved |
10:08 | select(SEL):此字段指定要在提供的数据中返回的属性值. 000b: current,返回当前feature的当前操作属性值 001b:default返回当前feature的默认操作属性值 010b:saved,返回上次保存的值 011b:supported capabillities, 返回的cdw0的bit0为1,指示可saved;bit1置1表示namespace独有的feature;bit2置1,指示该feature支持changeable 100b-111b:reserved 如果接收到Get Features命令,选择字段设置为010b(即saved),并且控制器当前feature不支持saved值或当前没有任何已保存的值,则控制器应像选择字段设置为001b(即default)一样操作 |
07:00 | feature identifier(FID):指示返回值的feature |
如果控制器支持Get Features命令选择UUID,并且控制器支持为指定的vendor特定功能标识符选择UUID,则使用命令Dword 14指定UUID索引值。如果控制器不支持通过Get Features命令选择UUID,或者控制器不支持为指定的供应商特定feature id选择UUID,则命令Dword 14不指定UUID索引值。
bits | 描述 |
31:07 | reserved |
06:00 | UUID Index |
1.2测试点
2.set feature
2.1 参数字段
set feature 用data pointer,cdword10, cdword11,cdword12,cdword13,cdword14和cdword15字段,如下:
bits | 描述 |
127:00 | data pointer(DPTR):这个字段指示起始data buffer,因为数据缓冲区不能跨越多个页面边界,所以使用PRP,此字段不是指向PRP列表的指针。如果feature中没有数据结构,则此字段无效,可忽略。 |
bits | 描述 |
31 | save(SV)该位指定控制器应保存该属性,以便该属性在所有电源状态下保持并重置。 控制器在图247中标识控制器数据结构的可选NVM命令支持字段的第4位指示是否支持该位。 如果控制器无法保存设置特性命令中指定的feature id,并且控制器收到一个set feature命令,且save位置为1,则该命令应以feature id不可保存的状态中止。 |
30:08 | reserved |
07:00 | feature identifier(FID):指示feature |
如果控制器支持Set Features命令选择UUID,并且控制器支持为指定的vendor特定功能标识符选择UUID,则使用命令Dword 14指定UUID索引值。如果控制器不支持通过Set Features命令选择UUID,或者控制器不支持为指定的供应商特定feature id选择UUID,则命令Dword 14不指定UUID索引值。
bits | description |
31:07 | reserved |
06:00 | UUID Index |
当一个特征被改变时,可能有命令在执行中。Set feature时,新设置可能应用于也可能未应用于已提交执行的命令。在set feature命令成功完成后,提交到提交队列的任何命令都应使用新的设置功能。为确保特征值应用于所有后续命令,主机
应允许正在处理的命令在发出“set feature”命令之前完成。
如果控制器不支持命令可修改,若提交一个set feature命令,若set的值和目前的值不同,则控制器中断该命令并返回Feature Not Changeable;若set的值和目前的值相同,则控制器成功执行set feature命令或返回Feature Not Changeable。下表是所有支持的feature ID。
2.2 set feature (feature identifier)
(1)aribitration(feature identifier 01h)
该命令控制命令仲裁。如果使用get feature查询此命令,则下表内容将会返回在cq的dword0中。
(2)Volatile Write Cache(feature identifier 06h)
此功能控制控制器上的易失性写缓存。如果存在,则应支持此功能。这些属性在命令Dword 11中指明。
注意:如果控制器能够保证写缓存中的数据在断电时写入非易失性介质,则该写缓存被认为是非易失性的,并且该功能不适用于该写缓存
如果不存在易失性写缓存,则指定易失性写缓存特征标识符的Set Features和Get Features命令将失败,并返回Invalid Field in Command
(3)number of queue (feature identifier 07h)
该特性是指示主机像控制器请求的queue的数量。此功能只能在创建任何I/O提交和/或完成队列之前的初始化期间发布。如果在创建任何I/O提交和/或I/O完成队列后为该功能发出Set Features命令,则Set Features命令将失败,状态代码为Command Sequence Error。在reset时,控制器不得改变queue分配的值。对于Set Features命令,属性在命令Dword 11中表示(下表)。Get Features命令中忽略Dword 11。
使用get feature和set feature获取该功能的状态时,下表的内容将返回在dword0中。
(4)Interrupt Coalescing(feature identifier 08h)
(5)Interrupt Vector Configuration(feature identifier 09h)
(6)Asynchronous Event Configuration(feature identifier 0Bh)
此功能控制触发到主机的异步事件通知的事件。此功能可用于在持续情况下禁用报告事件(请参阅nvme协议的第5.2节)。如果在启用相应通知时事件的条件为true,则会将事件发送到主机。命令Dword 11中指示了这些属性。
使用get feature和set feature获取该功能的状态时,下表的内容将返回在dword0中。
bits | description |
31:28 | Refer to the NVMe over Fabrics specification |
27:15 | reserved |
14 | Endurance Group Event Aggregate Log Change Notices: |
13 | LBA Status Information Notices: |
12 | Predictable Latency Event Aggregate Log Change Notices: |
11 | Asymmetric Namespace Access Change Notices: |
10 | Telemetry Log Notices:此位决定当Telemetry Controller-Initiated的数据可用字段从0h转换到1h时,是否向主机发送异步事件通知。置为1时则发送,置为0则不发送。 |
09 | Firmware Activation Notices:此位决定当固件激活启动事件发生时,是否向主机发送异步事件通知。置为1时则发送,置为0则不发送 |
08 | Namespace Attribute Notices:此位决定当命名空间属性更改事件发生时,是否向主机发送异步事件通知。置为1时则发送,置为0则不发送 |
07:00 | SMART / Health Critical Warnings:此位决定SMART /Health Information log中定义的事件发生时,是否向主机发送异步事件通知。置为1时则发送,置为0则不发送 |
2.3 测试点
本文标签: commandadminsetampfeature
版权声明:本文标题:NVMe1.4 Admin Command学习(6) get feature & set feature 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1729530831a1204781.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论