Compartir a través de


estructura UFS_DEVICE_DESCRIPTOR (ufs.h)

UFS_DEVICE_DESCRIPTOR es el descriptor principal de los dispositivos de almacenamiento flash universal (UFS) y debe ser el primer descriptor recuperado, ya que especifica la clase de dispositivo y la subclase y el protocolo (conjunto de comandos) que se va a usar para acceder a este dispositivo y el número máximo de unidades lógicas (LU) contenidas en el dispositivo.

Sintaxis

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;

Miembros

bLength

Especifica la longitud, en bytes, de este descriptor.

bDescriptorIDN

Especifica el tipo del descriptor. Este descriptor tendrá un valor de UFS_DESC_DEVICE_IDN.

bDevice

Especifica el tipo de dispositivo.

Valor Descripción
0x00 Dispositivo
Todos los demás valores Reservado para uso futuro

bDeviceClass

Especifica la clase de dispositivo.

Valor Descripción
0x00 Almacenamiento masivo
Todos los demás valores Reservado para uso futuro

bDeviceSubClass

Especifica las subclases de almacenamiento masivo UFS en un mapa de bits de la siguiente manera:

bit Value
0 Arranque o no arranque
1 Incrustado o extraíble
2 Reservado para JESD220-1 (UME)
Todos los demás valores Reservado para uso futuro

bProtocol

Especifica la compatibilidad del protocolo por parte del dispositivo UFS.

Valor Descripción
0x00 SCSI
Todos los demás valores Reservado para uso futuro

bNumberLU

Especifica el número de unidades lógicas. Esto no incluye el número de unidades lógicas conocidas.

bNumberWLU

Especifica el número de unidades lógicas conocidas.

bBootEnable

Especifica si la característica de arranque de un dispositivo está habilitada.

Valor Descripción
0x00 Característica de arranque deshabilitada
0x01 Característica de arranque habilitada
Todos los demás valores Reservado para uso futuro

bDescrAccessEn

Indica si el descriptor de dispositivo se puede leer después de la fase de inicialización parcial de la secuencia de arranque.

Valor Descripción
0x00 Acceso al descriptor de dispositivo deshabilitado
0x01 Acceso al descriptor de dispositivo habilitado
Todos los demás valores Reservado para uso futuro

bInitPowerMode

bInitPowerMode define el modo de alimentación después de la inicialización del dispositivo o el restablecimiento de hardware.

Valor Descripción
0x00 modo de UFS-Sleep
0x01 Modo activo
Todos los demás valores Reservado para uso futuro

bHighPriorityLUN

bHighPriorityLUN define la unidad lógica de prioridad alta.

bSecureRemovalType

Especifica el tipo de eliminación segura.

Valor Descripción
0x00 Información eliminada por un borrado de la memoria física
0x01 Información eliminada mediante la sobrescritura de las ubicaciones direccionadas con un solo carácter seguido de un borrado
0x02 Información eliminada sobrescribiendo las ubicaciones direccionadas con un carácter, su complemento y, a continuación, un carácter aleatorio
0x03 Información eliminada mediante un mecanismo definido por el proveedor.
Todos los demás valores Reservado para uso futuro

bSecurityLU

Especifica si hay compatibilidad con unidades lógicas de seguridad.

Valor Descripción
0x00 No compatible
0x01 Reproducir bloque de memoria protegida (RPMB)
Todos los demás valores Reservado para uso futuro

bBackgroundOpsTermLat

bBackgroundOpsTermLat define la latencia máxima para iniciar la transmisión de datos cuando las operaciones en segundo plano están en curso. El límite de latencia de terminación se aplica a dos casos:

  • Cuando el dispositivo recibe una unidad de información del protocolo UFS COMMAND (UPIU) con una solicitud de transferencia. El dispositivo iniciará la transferencia de datos y enviará un DATA IN UPIU o un UPIU RTT dentro del límite de latencia.
  • Cuando el dispositivo recibe QUERY REQUEST UPIU para borrar la marca fBackgroundOpsEn . Se espera que el dispositivo finalice las operaciones en segundo plano dentro del límite de latencia.

bInitActiveICCLevel

bInitActiveICCLevel define el valor bActiveICCLevel después de encender o restablecer. El intervalo del valor va de 0x00 a 0x0F.

wSpecVersion[2]

Indica la versión de especificación en formato decimal codificado binario (BCD).

wManufactureDate[2]

Especifica la fecha de fabricación en formato BCD como 0xMMYYY.

iManufacturerName

Contiene un valor de índice a la cadena que contiene el nombre del fabricante.

iProductName

Contiene un valor de índice para la cadena que contiene el nombre del producto.

iSerialNumberID

Contiene un valor de índice a la cadena que contiene el número de serie.

iOemID

Contiene un valor de índice para la cadena que contiene el identificador de OEM.

wManufacturerID[2]

Especifica el identificador de fabricante del dispositivo.

bUD0BaseOffset

Especifica el desplazamiento de los parámetros configurables del descriptor de unidad 0 dentro del descriptor de configuración, UFS_CONFIG_DESCRIPTOR.

bUDConfigPLength

Tamaño total de los parámetros de un UFS_UNIT_CONFIG_DESCRIPTOR.

bDeviceRTTCap

Especifica el número máximo de PENDIENTES READY TO TRANSFER UPIU compatibles con el dispositivo. El valor mínimo es 2.

wPeriodicRTCUpdate[2]

Especifica la frecuencia y el método de las actualizaciones del reloj en tiempo real. Los bits de 10 a 15 están reservados.

bUFSFeaturesSupport

Especifica qué características se admiten en este dispositivo. Se admite una característica si su bit relacionado está establecido en 1.

bit Value
0 Actualización de firmware de campo (FFU)
1 Reconocimiento del estado de producción (PSA)
2 Intervalo de vida del dispositivo
Todos los demás valores Reservado para uso futuro

bFFUTimeout

El tiempo máximo, en segundos, al que el acceso al dispositivo está limitado o no es posible a través de los puertos asociados debido a la ejecución de un comando WRITE BUFFER.

bQueueDepth

Especifica la profundidad de la cola. Si este miembro es igual a 0, el dispositivo implementa la arquitectura de puesta en cola por LU.

wDeviceVersion[2]

Especifica la versión del dispositivo.

bNumSecureWPArea

Especifica el número total de áreas de protección de escritura segura compatibles con el dispositivo. El valor de este miembro está entre bNumberLU y 32.

dPSAMaxDataSize[4]

Especifica la cantidad máxima de datos que se pueden escribir durante la fase de soldadura previa del flujo PSA.

dPSAStateTimeout

Este miembro corresponde a bPSAStateTimeout (29h) en la especificación JEDEC .

iProductRevisionLevel

Especifica el índice de la cadena que contiene el nivel de revisión del producto.

Reserved[5]

Reservado para un uso futuro.

Reserved2[16]

Reservado para un uso futuro.

wHPBVersion

Especifica la versión del refuerzo de rendimiento del host.

bHPBControl

Reserved3[12]

Reservado para uso futuro.

dExtendedUFSFeaturesSupport[4]

dExtendedUFSFeaturesSupport es una máscara de bits que indica qué características extendidas se admiten.

bWriteBoosterBufferPreserveUserSpaceEn

Si se establece bWriteBoosterBufferPreserveUserSpaceEn en 0x01 se evita la reducción del espacio total del usuario que se puede configurar durante el aprovisionamiento, pero podría dar lugar a un rendimiento inferior. Si bWriteBoosterBufferPreserveUserSpaceEn está establecido en 0x00, el búfer de refuerzo de escritura reduce el espacio total del usuario que se puede configurar durante el aprovisionamiento.

bWriteBoosterBufferType

bWriteBoosterBufferType configura el tipo de búfer de refuerzo de escritura. Un valor de 0x00 especifica el modo de búfer dedicado de unidad lógica. Un valor de 0x01 especifica el modo de búfer compartido.

dNumSharedWriteBoosterBufferAllocUnits[4]

dNumSharedWriteBoosterBufferAllocUnits especifica el tamaño del búfer de refuerzo de escritura para una configuración de búfer de refuerzo de escritura compartida.

Comentarios

Si bBootEnable en el UFS_DEVICE_DESCRIPTOR se establece en cero o si la unidad lógica conocida de arranque no está asignada a una unidad lógica habilitada, la unidad lógica conocida de arranque finalizará.

UFS_DEVICE_DESCRIPTOR es de solo lectura, algunos de sus parámetros se pueden cambiar cambiando el parámetro correspondiente en UFS_UNIT_CONFIG_DESCRIPTOR.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10, versión 1709
Servidor mínimo compatible Windows Server 2016
Encabezado ufs.h

Consulte también