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

另请参阅