Condividi tramite


UFS_DEVICE_DESCRIPTOR struttura (ufs.h)

UFS_DEVICE_DESCRIPTOR è il descrittore principale per i dispositivi UFS (Universal Flash Storage) e deve essere il primo descrittore recuperato come specifica la classe del dispositivo e la sottoclasse e il protocollo (set di comandi) da usare per accedere a questo dispositivo e al numero massimo di unità logiche contenute nel dispositivo.

Sintassi

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;

Members

bLength

Specifica la lunghezza, in byte, di questo descrittore.

bDescriptorIDN

Specifica il tipo del descrittore. Questo descrittore avrà un valore di UFS_DESC_DEVICE_IDN.

bDevice

Specifica il tipo di dispositivo.

Valore Descrizione
0x00 Dispositivo
Tutti gli altri valori Riservate per utilizzo futuro

bDeviceClass

Specifica la classe del dispositivo.

Valore Descrizione
0x00 Archiviazione di massa
Tutti gli altri valori Riservate per utilizzo futuro

bDeviceSubClass

Specifica le sottoclassi di archiviazione di massa UFS in una mappa a bit come indicato di seguito:

bit Valore
0 Avvio o non avviabile
1 Incorporato o rimovibile
2 Riservato per JESD220-1 (UME)
Tutti gli altri valori Riservate per utilizzo futuro

bProtocol

Specifica il supporto del protocollo dal dispositivo UFS.

Valore Descrizione
0x00 SCSI
Tutti gli altri valori Riservate per utilizzo futuro

bNumberLU

Specifica il numero di unità logiche. Ciò non include il numero di unità logiche note.

bNumberWLU

Specifica il numero di unità logiche note.

bBootEnable

Specifica se la funzionalità di avvio di un dispositivo è abilitata.

Valore Descrizione
0x00 Funzionalità di avvio disabilitata
0x01 Funzionalità di avvio abilitata
Tutti gli altri valori Riservate per utilizzo futuro

bDescrAccessEn

Indica se il descrittore del dispositivo può essere letto dopo la fase di inizializzazione parziale della sequenza di avvio.

Valore Descrizione
0x00 Accesso descrittore dispositivo disabilitato
0x01 Accesso descrittore dispositivo abilitato
Tutti gli altri valori Riservate per utilizzo futuro

bInitPowerMode

bInitPowerMode definisce la modalità di alimentazione dopo l'inizializzazione del dispositivo o la reimpostazione hardware.

Valore Descrizione
0x00 UFS-Sleep modalità
0x01 Modalità attiva
Tutti gli altri valori Riservate per utilizzo futuro

bHighPriorityLUN

bHighPriorityLUN definisce l'unità logica con priorità elevata.

bSecureRemovalType

Specifica il tipo di rimozione sicura.

Valore Descrizione
0x00 Informazioni rimosse da una cancellazione della memoria fisica
0x01 Informazioni rimosse sovrascrivendo le posizioni indirizzate con un singolo carattere seguito da una cancellazione
0x02 Informazioni rimosse sovrascrivendo le posizioni indirizzate con un carattere, il relativo complemento, quindi un carattere casuale
0x03 Informazioni rimosse usando un meccanismo definito dal fornitore.
Tutti gli altri valori Riservate per utilizzo futuro

bSecurityLU

Specifica se è disponibile il supporto per le unità logiche di sicurezza.

Valore Descrizione
0x00 Non supportato
0x01 Riprodurre il blocco di memoria protetto (RPMB)
Tutti gli altri valori Riservate per utilizzo futuro

bBackgroundOpsTermLat

bBackgroundOpsTermLat definisce la latenza massima per avviare la trasmissione dei dati quando le operazioni in background sono in corso. Il limite di latenza di terminazione si applica a due casi:

  • Quando il dispositivo riceve un'unità di informazione del protocollo UFS COMMAND (UPIU) con una richiesta di trasferimento. Il dispositivo avvia il trasferimento dei dati e invia un'UPIU DATA IN UPIU o un UPIU RTT entro il limite di latenza.
  • Quando il dispositivo riceve L'UPIU QUERY REQUEST per cancellare il flag fBackgroundOpsEn . Il dispositivo deve terminare le operazioni in background entro il limite di latenza.

bInitActiveICCLevel

bInitActiveICCLevel definisce il valore bActiveICCLevel dopo l'alimentazione o la reimpostazione. L'intervallo del valore è compreso tra 0x00 e 0x0F.

wSpecVersion[2]

Indica la versione della specifica nel formato decimale codificato binario (BCD).

wManufactureDate[2]

Specifica la data di produzione in formato BCD come 0xMMYYY.

iManufacturerName

Contiene un valore di indice alla stringa contenente il nome del produttore.

iProductName

Contiene un valore di indice nella stringa contenente il nome del prodotto.

iSerialNumberID

Contiene un valore di indice nella stringa contenente il numero di serie.

iOemID

Contiene un valore di indice alla stringa contenente l'ID OEM.

wManufacturerID[2]

Specifica l'ID produttore del dispositivo.

bUD0BaseOffset

Specifica l'offset dei parametri configurabili dell'unità 0 all'interno del descrittore di configurazione UFS_CONFIG_DESCRIPTOR.

bUDConfigPLength

Dimensioni totali dei parametri di un UFS_UNIT_CONFIG_DESCRIPTOR.

bDeviceRTTCap

Specifica il numero massimo di READY TO TRANSFER UPIU supportati dal dispositivo. Il valore minimo è 2.

wPeriodicRTCUpdate[2]

Specifica la frequenza e il metodo degli aggiornamenti in tempo reale. I bit da 10 a 15 sono riservati.

bUFSFeaturesSupport

Specifica le funzionalità supportate in questo dispositivo. Una funzionalità è supportata se il bit correlato è impostato su 1.

bit Valore
0 Aggiornamento del firmware del campo (FFU)
1 Consapevolezza dello stato di produzione (PSA)
2 Intervallo di vita del dispositivo
Tutti gli altri valori Riservate per utilizzo futuro

bFFUTimeout

Il tempo massimo, in secondi, a cui l'accesso al dispositivo è limitato o non è possibile tramite le porte associate a causa dell'esecuzione di un comando WRITE BUFFER.

bQueueDepth

Specifica la profondità della coda. Se questo membro è uguale a 0, il dispositivo implementa l'architettura di accodamento per lu.

wDeviceVersion[2]

Specifica la versione del dispositivo.

bNumSecureWPArea

Specifica il numero totale di aree protette di scrittura protette supportate dal dispositivo. Il valore di questo membro è compreso tra bNumberLU e 32.

dPSAMaxDataSize[4]

Specifica la quantità massima di dati che possono essere scritti durante la fase di pre-vendita del flusso PSA.

dPSAStateTimeout

Questo membro corrisponde a bPSAStateTimeout (29h) nella specifica JEDEC .

iProductRevisionLevel

Specifica l'indice alla stringa contenente il livello di revisione del prodotto.

Reserved[5]

Riservato per usi futuri.

Reserved2[16]

Riservato per usi futuri.

wHPBVersion

Specifica la versione del booster delle prestazioni host.

bHPBControl

Reserved3[12]

Riservato per utilizzi futuri.

dExtendedUFSFeaturesSupport[4]

dExtendedUFSFeaturesSupport è una maschera bit che indica quali funzionalità estese sono supportate.

bWriteBoosterBufferPreserveUserSpaceEn

L'impostazione di bWriteBoosterBufferPreserveUserSpaceEn su 0x01 evita la riduzione dello spazio utente totale che può essere configurato durante il provisioning, ma potrebbe comportare prestazioni inferiori. Se bWriteBoosterBufferPreserveUserSpaceEn è impostato su 0x00, il buffer del booster di scrittura riduce lo spazio utente totale che può essere configurato durante il provisioning.

bWriteBoosterBufferType

bWriteBoosterBufferType configura il tipo di buffer del booster di scrittura. Un valore di 0x00 specifica la modalità buffer dedicato all'unità logica. Un valore di 0x01 specifica la modalità buffer condiviso.

dNumSharedWriteBoosterBufferAllocUnits[4]

dNumSharedWriteBoosterBufferAllocUnits specifica le dimensioni del buffer del booster di scrittura per una configurazione del buffer del booster di scrittura condivisa.

Commenti

Se bBootEnable nella UFS_DEVICE_DESCRIPTOR è impostato su zero o se l'unità logica nota di avvio non viene mappata a un'unità logica abilitata, l'unità logica di avvio nota verrà terminata.

UFS_DEVICE_DESCRIPTOR è in sola lettura, alcuni dei relativi parametri possono essere modificati modificando il parametro corrispondente in UFS_UNIT_CONFIG_DESCRIPTOR.

Requisiti

Requisito Valore
Client minimo supportato Windows 10, versione 1709
Server minimo supportato Windows Server 2016
Intestazione ufs.h

Vedi anche