Поделиться через


структура UFS_DEVICE_DESCRIPTOR (ufs.h)

UFS_DEVICE_DESCRIPTOR является дескриптором main для устройств универсального хранилища флэш-памяти (UFS) и должен быть первым извлеченным дескриптором, так как он указывает класс устройства и подкласс, а также протокол (набор команд), используемый для доступа к этому устройству, и максимальное количество логических единиц (LUs), содержащихся на устройстве.

Синтаксис

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;

Члены

bLength

Указывает длину этого дескриптора в байтах.

bDescriptorIDN

Указывает тип дескриптора. Этот дескриптор будет иметь значение UFS_DESC_DEVICE_IDN.

bDevice

Указывает тип устройства.

Значение Описание
0x00 Устройство
Все остальные значения Зарезервировано для использования в будущем.

bDeviceClass

Указывает класс устройства.

Значение Описание
0x00 Массовое хранилище
Все остальные значения Зарезервировано для использования в будущем.

bDeviceSubClass

Указывает подклассы хранилища UFS в битовом сопоставлении следующим образом:

bit Значение
0 Загрузочный или незагрузочный
1 Встроенные или съемные
2 Зарезервировано для JESD220-1 (UME)
Все остальные значения Зарезервировано для использования в будущем.

bProtocol

Указывает поддержку протокола устройством UFS.

Значение Описание
0x00 SCSI
Все остальные значения Зарезервировано для использования в будущем.

bNumberLU

Указывает количество логических единиц. Сюда не входит число хорошо известных логических единиц.

bNumberWLU

Указывает количество хорошо известных логических единиц.

bBootEnable

Указывает, включена ли функция загрузки устройства.

Значение Описание
0x00 Функция загрузки отключена
0x01 Функция загрузки включена
Все остальные значения Зарезервировано для использования в будущем.

bDescrAccessEn

Указывает, можно ли считать дескриптор устройства после этапа частичной инициализации последовательности загрузки.

Значение Описание
0x00 Доступ к дескрипторов устройству отключен
0x01 Доступ к дескриптору устройства включен
Все остальные значения Зарезервировано для использования в будущем.

bInitPowerMode

bInitPowerMode определяет режим питания после инициализации устройства или сброса оборудования.

Значение Описание
0x00 режим UFS-Sleep
0x01 Активный режим
Все остальные значения Зарезервировано для использования в будущем.

bHighPriorityLUN

bHighPriorityLUN определяет логическую единицу с высоким приоритетом.

bSecureRemovalType

Указывает тип безопасного удаления.

Значение Описание
0x00 Сведения, удаленные путем очистки физической памяти
0x01 Сведения, удаленные путем перезаписи адресных расположений одним символом и последующим стиранием
0x02 Сведения, удаленные путем перезаписи адресных расположений символом, его дополнением, а затем случайным символом
0x03 Сведения, удаленные с помощью механизма, определенного поставщиком.
Все остальные значения Зарезервировано для использования в будущем.

bSecurityLU

Указывает, поддерживается ли логические единицы безопасности.

Значение Описание
0x00 Не поддерживается
0x01 Воспроизведение защищенного блока памяти (RPMB)
Все остальные значения Зарезервировано для использования в будущем.

bBackgroundOpsTermLat

bBackgroundOpsTermLat определяет максимальную задержку при запуске передачи данных при выполнении фоновых операций. Предел задержки завершения применяется в двух случаях:

  • Когда устройство получает command UFS Protocol Information Units (UPIU) с запросом на передачу. Устройство должно запустить передачу данных и отправить ДАННЫЕ В UPIU или RTT UPIU в пределах предельной задержки.
  • Когда устройство получает ЗАПРОС ЗАПРОСА UPIU для очистки флага fBackgroundOpsEn . Ожидается, что устройство завершит фоновые операции в пределах предельной задержки.

bInitActiveICCLevel

bInitActiveICCLevel определяет значение bActiveICCLevel после включения или сброса питания. Диапазон значения — от 0x00 до 0x0F.

wSpecVersion[2]

Указывает версию спецификации в двоичном десятичном формате (BCD).

wManufactureDate[2]

Указывает дату производства в формате BCD как 0xMMYY.

iManufacturerName

Содержит значение индекса для строки, содержащей имя производителя.

iProductName

Содержит значение индекса для строки, содержащей имя продукта.

iSerialNumberID

Содержит значение индекса для строки, содержащей серийный номер.

iOemID

Содержит значение индекса для строки, содержащей идентификатор изготовителя оборудования.

wManufacturerID[2]

Указывает идентификатор производителя устройства.

bUD0BaseOffset

Задает смещение настраиваемых параметров дескриптора единиц измерения 0 в дескрипторов конфигурации , UFS_CONFIG_DESCRIPTOR.

bUDConfigPLength

Общий размер параметров UFS_UNIT_CONFIG_DESCRIPTOR.

bDeviceRTTCap

Указывает максимальное число необработанных запросов READY TO TRANSFER UPIU, поддерживаемых устройством. Минимальное значение — 2.

wPeriodicRTCUpdate[2]

Указывает частоту и метод обновления часов в режиме реального времени. Биты от 10 до 15 зарезервированы.

bUFSFeaturesSupport

Указывает, какие функции поддерживаются на этом устройстве. Функция поддерживается, если ее связанный бит имеет значение 1.

bit Значение
0 Обновление встроенного ПО поля (FFU)
1 Сведения о состоянии производства (PSA)
2 Продолжительность жизни устройства
Все остальные значения Зарезервировано для использования в будущем.

bFFUTimeout

Максимальное время (в секундах), в течение которого доступ к устройству ограничен или невозможен через порты, связанные из-за выполнения команды WRITE BUFFER.

bQueueDepth

Задает глубину очереди. Если этот элемент равен 0, устройство реализует архитектуру очередей по lu.

wDeviceVersion[2]

Указывает версию устройства.

bNumSecureWPArea

Указывает общее количество защищенных областей записи, поддерживаемых устройством. Значение этого элемента находится в диапазоне от bNumberLU до 32.

dPSAMaxDataSize[4]

Указывает максимальный объем данных, которые можно записать на этапе предварительной пайки потока PSA.

dPSAStateTimeout

Этот элемент соответствует bPSAStateTimeout (29h) в спецификации JEDEC .

iProductRevisionLevel

Указывает индекс строки, содержащей уровень редакции продукта.

Reserved[5]

Зарезервировано для будущего использования.

Reserved2[16]

Зарезервировано для будущего использования.

wHPBVersion

Указывает версию средства повышения производительности узла.

bHPBControl

Reserved3[12]

Зарезервировано для последующего использования.

dExtendedUFSFeaturesSupport[4]

dExtendedUFSFeaturesSupport — это битовая маска, указывающая, какие расширенные функции поддерживаются.

bWriteBoosterBufferPreserveUserSpaceEn

Задание bWriteBoosterBufferPreserveUserSpaceEn 0x01 позволяет избежать сокращения общего пространства пользователя, которое можно настроить во время подготовки, но может привести к снижению производительности. Если для параметра bWriteBoosterBufferPreserveUserSpaceEn задано значение 0x00, буфер бустера записи уменьшает общее пространство пользователя, которое можно настроить во время подготовки.

bWriteBoosterBufferType

bWriteBoosterBufferType настраивает тип буфера бустера записи. Значение 0x00 указывает режим выделенного буфера логической единицы. Значение 0x01 указывает режим общего буфера.

dNumSharedWriteBoosterBufferAllocUnits[4]

dNumSharedWriteBoosterBufferAllocUnits задает размер буфера бустера записи для конфигурации буфера общего буфера бустера записи.

Комментарии

Если параметр bBootEnable в UFS_DEVICE_DESCRIPTOR равен нулю или если хорошо известная логическая единица загрузки не сопоставлена с включенной логической единицей, то загрузочная общеизвестная логическая единица должна завершиться.

UFS_DEVICE_DESCRIPTOR доступно только для чтения, некоторые из его параметров можно изменить, изменив соответствующий параметр в UFS_UNIT_CONFIG_DESCRIPTOR.

Требования

Требование Значение
Минимальная версия клиента Windows 10 версии 1709
Минимальная версия сервера Windows Server 2016
Верхняя часть ufs.h

См. также раздел