Freigeben über


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

Weitere Informationen