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 |