Condividi tramite


struttura UFS_DEVICE_DESCRIPTOR (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 di dispositivo e la sottoclasse e il protocollo (set di comandi) da usare per accedere a questo dispositivo e il numero massimo di unità logiche (UNITÀ LOGICHE) contenute all'interno del 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;

Membri

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 Riservato per uso futuro

bDeviceClass

Specifica la classe del dispositivo.

Valore Descrizione
0x00 Archiviazione di massa
Tutti gli altri valori Riservato per uso futuro

bDeviceSubClass

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

Pezzo Valore
0 Avviabile o non avviabile
1 Incorporato o rimovibile
2 Riservato per JESD220-1 (UME)
Tutti gli altri valori Riservato per uso futuro

bProtocol

Specifica il supporto del protocollo dal dispositivo UFS.

Valore Descrizione
0x00 SCSI
Tutti gli altri valori Riservato per uso futuro

bNumberLU

Specifica il numero di unità logiche. Questo 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 Riservato per uso 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 al descrittore di dispositivo abilitato
Tutti gli altri valori Riservato per uso futuro

bInitPowerMode

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

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

bHighPriorityLUN

bHighPriorityLUN definisce l'unità logica ad alta priorità.

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 Riservato per uso futuro

bSecurityLU

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

Valore Descrizione
0x00 Non supportato
0x01 Replay Protected Memory Block (RPMB)
Tutti gli altri valori Riservato per uso futuro

bBackgroundOpsTermLat

bBackgroundOpsTermLat definisce la latenza massima per l'avvio della 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'UPIU (COMMAND UFS Protocol Information Unit) con una richiesta di trasferimento. Il dispositivo avvia il trasferimento dei dati e invia un UPIU DATA IN o un UPIU RTT entro il limite di latenza.
  • Quando il dispositivo riceve QUERY REQUEST UPIU per cancellare il fBackgroundOpsEn Flag. Il dispositivo dovrebbe terminare le operazioni in background entro il limite di latenza.

bInitActiveICCLevel

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

wSpecVersion[2]

Indica la versione della specifica in formato BCD (Binary Coded Decimal).

wManufactureDate[2]

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

iManufacturerName

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

iProductName

Contiene un valore di indice alla stringa che contiene il nome del prodotto.

iSerialNumberID

Contiene un valore di indice alla stringa che contiene il numero di serie.

iOemID

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

wManufacturerID[2]

Specifica l'ID produttore del dispositivo.

bUD0BaseOffset

Specifica l'offset dei parametri configurabili del descrittore di 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 UPIU READY TO TRANSFER in sospeso supportati dal dispositivo. Il valore minimo è 2.

wPeriodicRTCUpdate[2]

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

bUFSFeaturesSupport

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

Pezzo Valore
0 Aggiornamento firmware sul campo (FFU)
1 Sensibilizzazione dello stato di produzione (PSA)
2 Intervallo di vita del dispositivo
Tutti gli altri valori Riservato per uso futuro

bFFUTimeout

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 protezione della scrittura supportate dal dispositivo. Il valore di questo membro è compreso tra bNumberLU e 32.

dPSAMaxDataSize[4]

Specifica la quantità massima di dati che è possibile scrivere durante la fase di pre-soldering del flusso PSA.

dPSAStateTimeout

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

iProductRevisionLevel

Specifica l'indice della stringa che contiene il livello di revisione del prodotto.

Reserved[5]

Riservato per uso futuro.

Reserved2[16]

Riservato per uso futuro.

wHPBVersion

Specifica la versione del booster delle prestazioni dell'host.

bHPBControl

Reserved3[12]

Riservato per uso futuro.

dExtendedUFSFeaturesSupport[4]

dExtendedUFSFeaturesSupport è una maschera di 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 dell'unità logica. Il valore 0x01 specifica la modalità buffer condiviso.

dNumSharedWriteBoosterBufferAllocUnits[4]

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

Osservazioni

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

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

Fabbisogno

Requisito Valore
client minimo supportato Windows 10, versione 1709
server minimo supportato Windows Server 2016
intestazione ufs.h

Vedere anche