UFS_DEVICE_DESCRIPTOR structure (ufs.h)
UFS_DEVICE_DESCRIPTOR est le descripteur main pour les appareils de stockage Flash universel (UFS) et doit être le premier descripteur récupéré, car il spécifie la classe et la sous-classe d’appareil et le protocole (jeu de commandes) à utiliser pour accéder à cet appareil et le nombre maximal d’unités logiques (LU) contenues dans l’appareil.
Syntaxe
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;
Membres
bLength
Spécifie la longueur, en octets, de ce descripteur.
bDescriptorIDN
Spécifie le type du descripteur. Ce descripteur aura la valeur UFS_DESC_DEVICE_IDN.
bDevice
Spécifie le type d’appareil.
Valeur | Description |
---|---|
0x00 | Appareil |
Toutes les autres erreurs | Paramètres réservés pour un usage ultérieur |
bDeviceClass
Spécifie la classe d’appareil.
Valeur | Description |
---|---|
0x00 | Stockage de masse |
Toutes les autres erreurs | Paramètres réservés pour un usage ultérieur |
bDeviceSubClass
Spécifie les sous-classes de stockage de masse UFS dans un mappage de bits comme suit :
bit | Valeur |
---|---|
0 | Démarrable ou non démarrable |
1 | Incorporé ou amovible |
2 | Réservé pour JESD220-1 (UME) |
Toutes les autres erreurs | Paramètres réservés pour un usage ultérieur |
bProtocol
Spécifie la prise en charge du protocole par l’appareil UFS.
Valeur | Description |
---|---|
0x00 | SCSI |
Toutes les autres erreurs | Paramètres réservés pour un usage ultérieur |
bNumberLU
Spécifie le nombre d’unités logiques. Cela n’inclut pas le nombre d’unités logiques connues.
bNumberWLU
Spécifie le nombre d’unités logiques connues.
bBootEnable
Spécifie si la fonctionnalité de démarrage d’un appareil est activée.
Valeur | Description |
---|---|
0x00 | Fonctionnalité de démarrage désactivée |
0x01 | Fonctionnalité de démarrage activée |
Toutes les autres erreurs | Paramètres réservés pour un usage ultérieur |
bDescrAccessEn
Indique si le descripteur d’appareil peut être lu après la phase d’initialisation partielle de la séquence de démarrage.
Valeur | Description |
---|---|
0x00 | Accès du descripteur d’appareil désactivé |
0x01 | Accès au descripteur d’appareil activé |
Toutes les autres erreurs | Paramètres réservés pour un usage ultérieur |
bInitPowerMode
bInitPowerMode définit le mode d’alimentation après l’initialisation de l’appareil ou la réinitialisation matérielle.
Valeur | Description |
---|---|
0x00 | mode UFS-Sleep |
0x01 | Mode actif |
Toutes les autres erreurs | Paramètres réservés pour un usage ultérieur |
bHighPriorityLUN
bHighPriorityLUN définit l’unité logique de priorité élevée.
bSecureRemovalType
Spécifie le type de suppression sécurisée.
Valeur | Description |
---|---|
0x00 | Informations supprimées par une effacement de la mémoire physique |
0x01 | Informations supprimées en remplaçant les emplacements adressés par un caractère unique suivi d’une effacement |
0x02 | Informations supprimées en remplaçant les emplacements adressés par un caractère, son complément, puis un caractère aléatoire |
0x03 | Informations supprimées à l’aide d’un mécanisme défini par le fournisseur. |
Toutes les autres erreurs | Paramètres réservés pour un usage ultérieur |
bSecurityLU
Spécifie si les unités logiques de sécurité sont prises en charge.
Valeur | Description |
---|---|
0x00 | Non prise en charge |
0x01 | Relire le bloc de mémoire protégée (RPMB) |
Toutes les autres erreurs | Paramètres réservés pour un usage ultérieur |
bBackgroundOpsTermLat
bBackgroundOpsTermLat définit la latence maximale pour le démarrage de la transmission de données lorsque les opérations en arrière-plan sont en cours. La limite de latence d’arrêt s’applique à deux cas :
- Lorsque l’appareil reçoit une UPIU (COMMAND UFS Protocol Information Units) avec une demande de transfert. L’appareil doit démarrer le transfert de données et envoyer un UPIU DATA IN UPIU ou un UPIU RTT dans la limite de latence.
- Lorsque l’appareil reçoit l’UPIU DE REQUÊTE DE REQUÊTE pour effacer l’indicateur fBackgroundOpsEn . L’appareil est censé mettre fin aux opérations en arrière-plan dans la limite de latence.
bInitActiveICCLevel
bInitActiveICCLevel définit la valeur bActiveICCLevel après la mise sous tension ou la réinitialisation. La plage de la valeur est comprise entre 0x00 et 0x0F.
wSpecVersion[2]
Indique la version de spécification au format décimal codé binaire (BCD).
wManufactureDate[2]
Spécifie la date de fabrication au format BCD comme 0xMMYY.
iManufacturerName
Contient une valeur d’index de la chaîne qui contient le nom du fabricant.
iProductName
Contient une valeur d’index de la chaîne qui contient le nom du produit.
iSerialNumberID
Contient une valeur d’index de la chaîne qui contient le numéro de série.
iOemID
Contient une valeur d’index de la chaîne qui contient l’ID OEM.
wManufacturerID[2]
Spécifie l’ID du fabricant de l’appareil.
bUD0BaseOffset
Spécifie le décalage des paramètres configurables du descripteur d’unité 0 dans le descripteur de configuration , UFS_CONFIG_DESCRIPTOR.
bUDConfigPLength
Taille totale des paramètres d’un UFS_UNIT_CONFIG_DESCRIPTOR.
bDeviceRTTCap
Spécifie le nombre maximal d’UPIU PRÊTS À TRANSFÉRER pris en charge par appareil. La valeur minimale est 2.
wPeriodicRTCUpdate[2]
Spécifie la fréquence et la méthode des mises à jour d’horloge en temps réel. Les bits 10 à 15 sont réservés.
bUFSFeaturesSupport
Spécifie les fonctionnalités prises en charge sur cet appareil. Une fonctionnalité est prise en charge si son bit associé est défini sur 1.
bit | Valeur |
---|---|
0 | Field Firmware Update (FFU) |
1 | Sensibilisation à l’état de production (PSA) |
2 | Durée de vie de l’appareil |
Toutes les autres erreurs | Paramètres réservés pour un usage ultérieur |
bFFUTimeout
Durée maximale, en secondes, pendant laquelle l’accès à l’appareil est limité ou impossible via les ports associés en raison de l’exécution d’une commande WRITE BUFFER.
bQueueDepth
Spécifie la profondeur de la file d’attente. Si ce membre est égal à 0, l’appareil implémente l’architecture de mise en file d’attente par lu.
wDeviceVersion[2]
Spécifie la version de l’appareil.
bNumSecureWPArea
Spécifie le nombre total de zones de protection en écriture sécurisée prises en charge par l’appareil. La valeur de ce membre est comprise entre bNumberLU et 32.
dPSAMaxDataSize[4]
Spécifie la quantité maximale de données pouvant être écrites pendant la phase de pré-brasage du flux PSA.
dPSAStateTimeout
Ce membre correspond à bPSAStateTimeout (29h) dans la spécification JEDEC .
iProductRevisionLevel
Spécifie l’index de la chaîne qui contient le niveau de révision du produit.
Reserved[5]
Réservé à un usage ultérieur.
Reserved2[16]
Réservé à un usage ultérieur.
wHPBVersion
Spécifie la version du booster de performances de l’hôte.
bHPBControl
Reserved3[12]
Réservé pour un usage futur.
dExtendedUFSFeaturesSupport[4]
dExtendedUFSFeaturesSupport est un masque de bits indiquant les fonctionnalités étendues prises en charge.
bWriteBoosterBufferPreserveUserSpaceEn
La définition de bWriteBoosterBufferPreserveUserSpaceEn sur 0x01 permet d’éviter la réduction de l’espace utilisateur total qui peut être configuré pendant l’approvisionnement, mais peut entraîner une baisse des performances. Si bWriteBoosterBufferPreserveUserSpaceEn est défini sur 0x00, la mémoire tampon de rappel d’écriture réduit l’espace utilisateur total qui peut être configuré pendant l’approvisionnement.
bWriteBoosterBufferType
bWriteBoosterBufferType configure le type de mémoire tampon de rappel d’écriture. La valeur 0x00 spécifie le mode de mémoire tampon dédié à l’unité logique. La valeur 0x01 spécifie le mode de mémoire tampon partagée.
dNumSharedWriteBoosterBufferAllocUnits[4]
dNumSharedWriteBoosterBufferAllocUnits spécifie la taille de mémoire tampon de rappel d’écriture pour une configuration de mémoire tampon de rappel d’écriture partagée.
Remarques
Si bBootEnable dans le UFS_DEVICE_DESCRIPTOR est défini sur zéro ou si l’unité logique bien connue de démarrage n’est pas mappée à une unité logique activée, l’unité logique bien connue de démarrage se termine.
UFS_DEVICE_DESCRIPTOR est en lecture seule, certains de ses paramètres peuvent être modifiés en modifiant le paramètre correspondant dans UFS_UNIT_CONFIG_DESCRIPTOR.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 10, version 1709 |
Serveur minimal pris en charge | Windows Server 2016 |
En-tête | ufs.h |