Partager via


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

Voir aussi