UFS_DEVICE_DESCRIPTOR 结构 (ufs.h)
UFS_DEVICE_DESCRIPTOR是通用闪存存储 (UFS) 设备的main描述符,应是检索到的第一个描述符,因为它指定设备类和子类以及用于访问此设备的协议 (命令集) ,以及设备中包含的逻辑单元 (LU) 的最大逻辑单元数。
语法
typedef struct {
UCHAR bLength;
UCHAR bDescriptorIDN;
UCHAR bDevice;
UCHAR bDeviceClass;
UCHAR bDeviceSubClass;
UCHAR bProtocol;
UCHAR bNumberLU;
UCHAR bNumberWLU;
UCHAR bBootEnable;
UCHAR bDescrAccessEn;
UCHAR bInitPowerMode;
UCHAR bHighPriorityLUN;
UCHAR bSecureRemovalType;
UCHAR bSecurityLU;
UCHAR bBackgroundOpsTermLat;
UCHAR bInitActiveICCLevel;
UCHAR wSpecVersion[2];
UCHAR wManufactureDate[2];
UCHAR iManufacturerName;
UCHAR iProductName;
UCHAR iSerialNumberID;
UCHAR iOemID;
UCHAR wManufacturerID[2];
UCHAR bUD0BaseOffset;
UCHAR bUDConfigPLength;
UCHAR bDeviceRTTCap;
UCHAR wPeriodicRTCUpdate[2];
UCHAR bUFSFeaturesSupport;
UCHAR bFFUTimeout;
UCHAR bQueueDepth;
UCHAR wDeviceVersion[2];
UCHAR bNumSecureWPArea;
UCHAR dPSAMaxDataSize[4];
UCHAR dPSAStateTimeout;
UCHAR iProductRevisionLevel;
UCHAR Reserved[5];
UCHAR Reserved2[16];
USHORT wHPBVersion;
UCHAR bHPBControl;
UCHAR Reserved3[12];
UCHAR dExtendedUFSFeaturesSupport[4];
UCHAR bWriteBoosterBufferPreserveUserSpaceEn;
UCHAR bWriteBoosterBufferType;
UCHAR dNumSharedWriteBoosterBufferAllocUnits[4];
} UFS_DEVICE_DESCRIPTOR, *PUFS_DEVICE_DESCRIPTOR;
成员
bLength
指定此描述符的长度(以字节为单位)。
bDescriptorIDN
指定描述符的类型。 此描述符的值为 UFS_DESC_DEVICE_IDN。
bDevice
指定设备类型。
值 | 说明 |
---|---|
0x00 | 设备 |
所有其他值 | 保留以供将来使用 |
bDeviceClass
指定设备类。
值 | 说明 |
---|---|
0x00 | 大容量存储 |
所有其他值 | 保留以供将来使用 |
bDeviceSubClass
指定位映射中的 UFS 大容量存储子类,如下所示:
bit | 值 |
---|---|
0 | 可启动或不可启动 |
1 | 嵌入式或可移动 |
2 | 保留给 JESD220-1 (UME) |
所有其他值 | 保留以供将来使用 |
bProtocol
指定 UFS 设备的协议支持。
值 | 说明 |
---|---|
0x00 | SCSI |
所有其他值 | 保留以供将来使用 |
bNumberLU
指定逻辑单元数。 这不包括已知逻辑单元的数量。
bNumberWLU
指定已知逻辑单元的数目。
bBootEnable
指定是否启用设备的启动功能。
值 | 说明 |
---|---|
0x00 | 已禁用启动功能 |
0x01 | 已启用启动功能 |
所有其他值 | 保留以供将来使用 |
bDescrAccessEn
指示是否可以在启动序列的部分初始化阶段之后读取设备描述符。
值 | 说明 |
---|---|
0x00 | 设备描述符访问已禁用 |
0x01 | 已启用设备描述符访问 |
所有其他值 | 保留以供将来使用 |
bInitPowerMode
bInitPowerMode 定义设备初始化或硬件重置后的电源模式。
值 | 说明 |
---|---|
0x00 | UFS-Sleep 模式 |
0x01 | 主动模式 |
所有其他值 | 保留以供将来使用 |
bHighPriorityLUN
bHighPriorityLUN 定义高优先级逻辑单元。
bSecureRemovalType
指定安全删除类型。
值 | 说明 |
---|---|
0x00 | 通过擦除物理内存删除的信息 |
0x01 | 通过用单个字符后跟擦除覆盖寻址位置来删除的信息 |
0x02 | 通过使用字符、补码和随机字符覆盖寻址位置来删除的信息 |
0x03 | 使用供应商定义的机制删除的信息。 |
所有其他值 | 保留以供将来使用 |
bSecurityLU
指定是否支持安全逻辑单元。
值 | 说明 |
---|---|
0x00 | 不支持 |
0x01 | 重播受保护的内存块 (RPMB) |
所有其他值 | 保留以供将来使用 |
bBackgroundOpsTermLat
bBackgroundOpsTermLat 定义后台操作正在进行时开始数据传输的最大延迟。 终止延迟限制适用于两种情况:
- 当设备收到命令时,UFS 协议信息单元 (UPIU) 传输请求。 设备应启动数据传输,并在延迟限制内发送数据 IN UPIU 或 RTT UPIU。
- 当设备收到查询请求 UPIU 以清除 fBackgroundOpsEn 标志时。 设备应在延迟限制内终止后台操作。
bInitActiveICCLevel
bInitActiveICCLevel 定义开机或重置后的 bActiveICCLevel 值。 该值的范围是从 0x00 到 0x0F。
wSpecVersion[2]
指示二进制编码的十进制 (BCD) 格式的规范版本。
wManufactureDate[2]
将 BCD 格式的制造日期指定为 0xMMYY。
iManufacturerName
包含包含制造商名称的字符串的索引值。
iProductName
包含包含产品名称的字符串的索引值。
iSerialNumberID
包含包含序列号的字符串的索引值。
iOemID
包含包含 OEM ID 的字符串的索引值。
wManufacturerID[2]
指定设备的制造商 ID。
bUD0BaseOffset
指定单元描述符 0 的可配置参数在配置描述符中的偏移量, UFS_CONFIG_DESCRIPTOR。
bUDConfigPLength
UFS_UNIT_CONFIG_DESCRIPTOR参数的总大小。
bDeviceRTTCap
指定设备支持的未完成的 READY TO TRANSFER UPIU 的最大数目。 最小值为 2。
wPeriodicRTCUpdate[2]
指定实时时钟更新的频率和方法。 保留位 10 到 15。
bUFSFeaturesSupport
指定此设备支持哪些功能。 如果功能的相关位设置为 1,则支持该功能。
bit | 值 |
---|---|
0 | 现场固件更新 (FFU) |
1 | 生产状态意识 (PSA) |
2 | 设备生命周期 |
所有其他值 | 保留以供将来使用 |
bFFUTimeout
由于执行 WRITE BUFFER 命令而限制或无法通过任何关联的端口访问设备的最长时间(以秒为单位)。
bQueueDepth
指定队列深度。 如果此成员等于 0,则设备将实现每 LU 队列体系结构。
wDeviceVersion[2]
指定设备版本。
bNumSecureWPArea
指定设备支持的安全写入保护区域的总数。 此成员的值介于 bNumberLU 和 32 之间。
dPSAMaxDataSize[4]
指定在 PSA 流的预焊接阶段可以写入的最大数据量。
dPSAStateTimeout
此成员对应于 JEDEC 规范中的 bPSAStateTimeout (29h) 。
iProductRevisionLevel
指定包含产品修订级别的字符串的索引。
Reserved[5]
留待将来使用。
Reserved2[16]
留待将来使用。
wHPBVersion
指定主机性能提升器版本。
bHPBControl
Reserved3[12]
保留供将来使用。
dExtendedUFSFeaturesSupport[4]
dExtendedUFSFeaturesSupport 是一个位掩码,指示支持哪些扩展功能。
bWriteBoosterBufferPreserveUserSpaceEn
将 bWriteBoosterBufferPreserveUserSpaceEn 设置为 0x01 可避免在预配期间配置的总用户空间减少,但可能会导致性能降低。 如果将 bWriteBoosterBufferPreserveUserSpaceEn 设置为 0x00,则写入提升器缓冲区会减少预配期间可配置的总用户空间。
bWriteBoosterBufferType
bWriteBoosterBufferType 配置写入提升器缓冲区类型。 值 0x00 指定逻辑单元专用缓冲区模式。 值 0x01 指定共享缓冲区模式。
dNumSharedWriteBoosterBufferAllocUnits[4]
dNumSharedWriteBoosterBufferAllocUnits 指定共享写入提升器缓冲区配置的写入提升器缓冲区大小。
注解
如果UFS_DEVICE_DESCRIPTOR中的 bBootEnable 设置为零,或者启动已知逻辑单元未映射到已启用的逻辑单元,则启动已知逻辑单元应终止。
UFS_DEVICE_DESCRIPTOR 为只读,则可以通过更改 UFS_UNIT_CONFIG_DESCRIPTOR中的相应参数来更改其某些参数。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 版本 1709 |
最低受支持的服务器 | Windows Server 2016 |
标头 | ufs.h |