структура 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 |