Partager via


structure UFS_DEVICE_DESCRIPTOR (ufs.h)

UFS_DEVICE_DESCRIPTOR est le descripteur principal pour les appareils UFS (Universal Flash Storage) et doit être le premier descripteur récupéré, car il spécifie la classe d’appareil et la sous-classe et le protocole (jeu de commandes) à utiliser pour accéder à cet appareil et le nombre maximal d’unités logiques 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 une valeur de UFS_DESC_DEVICE_IDN.

bDevice

Spécifie le type d’appareil.

Valeur Description
0x00 Appareil
Toutes les autres valeurs Réservé à une utilisation ultérieure

bDeviceClass

Spécifie la classe d’appareil.

Valeur Description
0x00 Stockage de masse
Toutes les autres valeurs Réservé à une utilisation ultérieure

bDeviceSubClass

Spécifie les sous-classes de stockage de masse UFS dans un mappage de bits comme suit :

Mors Valeur
0 Démarrage ou non-démarrage
1 Incorporé ou amovible
2 Réservé pour JESD220-1 (UME)
Toutes les autres valeurs Réservé à une utilisation ultérieure

bProtocol

Spécifie la prise en charge du protocole par l’appareil UFS.

Valeur Description
0x00 SCSI
Toutes les autres valeurs Réservé à une utilisation ultérieure

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 valeurs Réservé à une utilisation ultérieure

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 de descripteur d’appareil désactivé
0x01 Accès de descripteur d’appareil activé
Toutes les autres valeurs Réservé à une utilisation ultérieure

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 valeurs Réservé à une utilisation ultérieure

bHighPriorityLUN

bHighPriorityLUN définit l’unité logique à priorité élevée.

bSecureRemovalType

Spécifie le type de suppression sécurisé.

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 traité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 valeurs Réservé à une utilisation ultérieure

bSecurityLU

Spécifie s’il existe une prise en charge des unités logiques de sécurité.

Valeur Description
0x00 Non pris en charge
0x01 Relire le bloc de mémoire protégée (RPMB)
Toutes les autres valeurs Réservé à une utilisation ultérieure

bBackgroundOpsTermLat

bBackgroundOpsTermLat définit la latence maximale pour démarrer la transmission des données lorsque des 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 démarre le transfert de données et envoie un UPIU DATA IN UPIU ou un UPIU RTT dans la limite de latence.
  • Lorsque l’appareil reçoit l’UPIU QUERY REQUEST 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 à la chaîne qui contient le nom du fabricant.

iProductName

Contient une valeur d’index à la chaîne qui contient le nom du produit.

iSerialNumberID

Contient une valeur d’index sur la chaîne qui contient le numéro de série.

iOemID

Contient une valeur d’index sur 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 d’un UFS_UNIT_CONFIG_DESCRIPTORparamètres.

bDeviceRTTCap

Spécifie le nombre maximal de READY TO TRANSFER UPIU en attente pris en charge par l’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.

Mors Valeur
0 Mise à jour du microprogramme de champ (FFU)
1 Sensibilisation à l’état de production (PSA)
2 Durée de vie de l’appareil
Toutes les autres valeurs Réservé à une utilisation ultérieure

bFFUTimeout

Durée maximale, en secondes, à 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 qui peuvent être écrites pendant la phase de pré-soldement 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é pour une utilisation ultérieure.

Reserved2[16]

Réservé pour une utilisation ultérieure.

wHPBVersion

Spécifie la version du booster de performances de l’hôte.

bHPBControl

Reserved3[12]

Réservé pour une utilisation ultérieure.

dExtendedUFSFeaturesSupport[4]

dExtendedUFSFeaturesSupport est un masque de bits indiquant les fonctionnalités étendues prises en charge.

bWriteBoosterBufferPreserveUserSpaceEn

Définir bWriteBoosterBufferPreserveUserSpaceEn pour 0x01 évite la réduction de l’espace utilisateur total qui peut être configuré pendant l’approvisionnement, mais peut entraîner des performances inférieures. 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 d’rappel d’écriture. Une valeur de 0x00 spécifie le mode de mémoire tampon dédié d’unité logique. Une valeur de 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 l'UFS_DEVICE_DESCRIPTOR a la valeur zéro ou si l’unité logique boot well known n’est pas mappée à une unité logique activée, l’unité logique boot well known doit se terminer.

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.

Exigences

Exigence Valeur
client minimum pris en charge Windows 10, version 1709
serveur minimum pris en charge Windows Server 2016
d’en-tête ufs.h

Voir aussi