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 |