UFS_DEVICE_DESCRIPTOR-Struktur (ufs.h)
UFS_DEVICE_DESCRIPTOR ist der Standard-Deskriptor für UFS-Geräte (Universal Flash Storage) und sollte der erste abgerufene Deskriptor sein, da er die Geräteklasse und die Unterklasse sowie das Protokoll (Befehlssatz) für den Zugriff auf dieses Gerät sowie die maximale Anzahl logischer Einheiten (LUs) im Gerät angibt.
Syntax
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;
Member
bLength
Gibt die Länge dieses Deskriptors in Bytes an.
bDescriptorIDN
Gibt den Typ des Deskriptors an. Dieser Deskriptor hat den Wert UFS_DESC_DEVICE_IDN.
bDevice
Gibt den Gerätetyp an.
Wert | BESCHREIBUNG |
---|---|
0x00 | Sicherungsmedium |
Alle anderen Werte | Für die zukünftige Verwendung reserviert |
bDeviceClass
Gibt die Geräteklasse an.
Wert | BESCHREIBUNG |
---|---|
0x00 | Massenspeicher |
Alle anderen Werte | Für die zukünftige Verwendung reserviert |
bDeviceSubClass
Gibt die UFS-Massenspeicherunterklassen in einer Bitzuordnung wie folgt an:
bit | Wert |
---|---|
0 | Startbar oder nicht startbar |
1 | Eingebettet oder entfernbar |
2 | Reserviert für JESD220-1 (UME) |
Alle anderen Werte | Für die zukünftige Verwendung reserviert |
bProtocol
Gibt die Protokollunterstützung durch das UFS-Gerät an.
Wert | BESCHREIBUNG |
---|---|
0x00 | SCSI |
Alle anderen Werte | Für die zukünftige Verwendung reserviert |
bNumberLU
Gibt die Anzahl der logischen Einheiten an. Dies schließt nicht die Anzahl der bekannten logischen Einheiten ein.
bNumberWLU
Gibt die Anzahl der bekannten logischen Einheiten an.
bBootEnable
Gibt an, ob das Startfeature eines Geräts aktiviert ist.
Wert | BESCHREIBUNG |
---|---|
0x00 | Startfeature deaktiviert |
0x01 | Startfeature aktiviert |
Alle anderen Werte | Für die zukünftige Verwendung reserviert |
bDescrAccessEn
Gibt an, ob der Gerätedeskriptor nach der partiellen Initialisierungsphase der Startsequenz gelesen werden kann.
Wert | BESCHREIBUNG |
---|---|
0x00 | Gerätedeskriptorzugriff deaktiviert |
0x01 | Gerätedeskriptorzugriff aktiviert |
Alle anderen Werte | Für die zukünftige Verwendung reserviert |
bInitPowerMode
bInitPowerMode definiert den Energiemodus nach der Geräteinitialisierung oder dem Zurücksetzen der Hardware.
Wert | BESCHREIBUNG |
---|---|
0x00 | UFS-Sleep Modus |
0x01 | Aktiver Modus |
Alle anderen Werte | Für die zukünftige Verwendung reserviert |
bHighPriorityLUN
bHighPriorityLUN definiert die logische Einheit mit hoher Priorität.
bSecureRemovalType
Gibt den Sicheren Entfernungstyp an.
Wert | BESCHREIBUNG |
---|---|
0x00 | Durch löschen des physischen Speichers entfernte Informationen |
0x01 | Informationen, die entfernt werden, indem die adressierten Speicherorte mit einem einzelnen Zeichen gefolgt von einer Löschung überschrieben werden |
0x02 | Informationen, die entfernt werden, indem die adressierten Orte mit einem Zeichen, seiner Ergänzung und dann einem zufälligen Zeichen überschrieben werden |
0x03 | Informationen, die mithilfe eines vom Anbieter definierten Mechanismus entfernt wurden. |
Alle anderen Werte | Für die zukünftige Verwendung reserviert |
bSecurityLU
Gibt an, ob logische Sicherheitseinheiten unterstützt werden.
Wert | BESCHREIBUNG |
---|---|
0x00 | Nicht unterstützt |
0x01 | Replay Protected Memory Block (RPMB) |
Alle anderen Werte | Für die zukünftige Verwendung reserviert |
bBackgroundOpsTermLat
bBackgroundOpsTermLat definiert die maximale Latenz für den Start der Datenübertragung, wenn Hintergrundvorgänge ausgeführt werden. Der Grenzwert für die Beendigungslatenz gilt für zwei Fälle:
- Wenn das Gerät eine COMMAND UFS-Protokollinformationseinheiten (UPIU) mit einer Übertragungsanforderung empfängt. Das Gerät muss die Datenübertragung starten und innerhalb der Latenzgrenze ein DATA IN UPIU oder ein RTT UPIU senden.
- Wenn das Gerät QUERY REQUEST UPIU empfängt, um das fBackgroundOpsEn-Flag zu löschen. Es wird erwartet, dass das Gerät Hintergrundvorgänge innerhalb der Latenzgrenze beendet.
bInitActiveICCLevel
bInitActiveICCLevel definiert den bActiveICCLevel-Wert nach dem Einschalten oder Zurücksetzen. Der Bereich des Werts reicht von 0x00 bis zu 0x0F.
wSpecVersion[2]
Gibt die Spezifikationsversion im binärcodierten Dezimalformat (BCD) an.
wManufactureDate[2]
Gibt das Herstellungsdatum im BCD-Format als 0xMMYYY an.
iManufacturerName
Enthält einen Indexwert für die Zeichenfolge, die den Namen des Herstellers enthält.
iProductName
Enthält einen Indexwert für die Zeichenfolge, die den Namen des Produkts enthält.
iSerialNumberID
Enthält einen Indexwert für die Zeichenfolge, die die Seriennummer enthält.
iOemID
Enthält einen Indexwert für die Zeichenfolge, die die OEM-ID enthält.
wManufacturerID[2]
Gibt die Hersteller-ID des Geräts an.
bUD0BaseOffset
Gibt den Offset der konfigurierbaren Parameter für unit descriptor 0 innerhalb des Konfigurationsdeskriptors an, UFS_CONFIG_DESCRIPTOR.
bUDConfigPLength
Gesamtgröße der Parameter eines UFS_UNIT_CONFIG_DESCRIPTOR.
bDeviceRTTCap
Gibt die maximale Anzahl der ausstehenden READY TO TRANSFER UPIU'S an, die vom Gerät unterstützt werden. Der Mindestwert beträgt 2.
wPeriodicRTCUpdate[2]
Gibt die Häufigkeit und Methode von Echtzeituhrupdates an. Die Bits 10 bis 15 sind reserviert.
bUFSFeaturesSupport
Gibt an, welche Features auf diesem Gerät unterstützt werden. Ein Feature wird unterstützt, wenn das zugehörige Bit auf 1 festgelegt ist.
bit | Wert |
---|---|
0 | Field Firmware Update (FFU) |
1 | Produktionszustandsbewusstsein (PSA) |
2 | Lebensdauer des Geräts |
Alle anderen Werte | Für die zukünftige Verwendung reserviert |
bFFUTimeout
Die maximale Zeit in Sekunden, auf die der Zugriff auf das Gerät beschränkt ist oder nicht über Ports möglich ist, die aufgrund der Ausführung eines WRITE BUFFER-Befehls zugeordnet sind.
bQueueDepth
Gibt die Warteschlangentiefe an. Wenn dieser Member gleich 0 ist, implementiert das Gerät die Warteschlangenarchitektur pro LU.
wDeviceVersion[2]
Gibt die Geräteversion an.
bNumSecureWPArea
Gibt die Gesamtzahl der sicheren Schreibschutzbereiche an, die vom Gerät unterstützt werden. Der Wert dieses Members liegt zwischen bNumberLU und 32.
dPSAMaxDataSize[4]
Gibt die maximale Datenmenge an, die während der Vorlötphase des PSA-Flusses geschrieben werden kann.
dPSAStateTimeout
Dieser Member entspricht bPSAStateTimeout (29h) in der JEDEC-Spezifikation .
iProductRevisionLevel
Gibt den Index für die Zeichenfolge an, die die Produktrevisionsebene enthält.
Reserved[5]
Für zukünftige Verwendung reserviert.
Reserved2[16]
Für zukünftige Verwendung reserviert.
wHPBVersion
Gibt die Version des Hostleistungs-Boosters an.
bHPBControl
Reserved3[12]
Für die zukünftige Verwendung reserviert.
dExtendedUFSFeaturesSupport[4]
dExtendedUFSFeaturesSupport ist eine Bitmaske, die angibt, welche erweiterten Features unterstützt werden.
bWriteBoosterBufferPreserveUserSpaceEn
Wenn Sie bWriteBoosterBufferPreserveUserSpaceEn auf 0x01 festlegen, wird die Reduzierung des gesamten Benutzerspeicherplatzes vermieden, der während der Bereitstellung konfiguriert werden kann, kann jedoch zu einer geringeren Leistung führen. Wenn bWriteBoosterBufferPreserveUserSpaceEn auf 0x00 festgelegt ist, reduziert der Schreib-Boosterpuffer den gesamten Benutzerspeicher, der während der Bereitstellung konfiguriert werden kann.
bWriteBoosterBufferType
bWriteBoosterBufferType konfiguriert den Puffertyp des Schreibverstärkers. Der Wert 0x00 gibt den dedizierten Puffermodus für logische Einheiten an. Der Wert 0x01 gibt den modus für freigegebenen Puffer an.
dNumSharedWriteBoosterBufferAllocUnits[4]
dNumSharedWriteBoosterBufferAllocUnits gibt die Puffergröße des Schreibverstärkers für eine Pufferkonfiguration für freigegebene Schreibbooster an.
Hinweise
Wenn bBootEnable im UFS_DEVICE_DESCRIPTOR auf 0 (null) festgelegt ist oder wenn die bekannte logische Boot-Einheit keiner aktivierten logischen Einheit zugeordnet ist, wird die bekannte logische Einheit für den Startvorgang beendet.
UFS_DEVICE_DESCRIPTOR schreibgeschützter Wert ist, können einige parameter durch Ändern des entsprechenden Parameters in UFS_UNIT_CONFIG_DESCRIPTOR geändert werden.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 10, Version 1709 |
Unterstützte Mindestversion (Server) | Windows Server 2016 |
Kopfzeile | ufs.h |