struktur UFS_DEVICE_DESCRIPTOR (ufs.h)

UFS_DEVICE_DESCRIPTOR adalah deskriptor utama untuk perangkat Universal Flash Storage (UFS) dan harus menjadi deskriptor pertama yang diambil karena menentukan kelas perangkat dan sub-kelas dan protokol (set perintah) untuk digunakan untuk mengakses perangkat ini dan jumlah maksimum unit logis yang terkandung dalam perangkat.

Sintaks

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;

Anggota

bLength

Menentukan panjang, dalam byte, dari deskriptor ini.

bDescriptorIDN

Menentukan jenis deskriptor. Deskriptor ini akan memiliki nilai UFS_DESC_DEVICE_IDN.

bDevice

Menentukan jenis perangkat.

Nilai Deskripsi
0x00 Perangkat
Semua nilai lainnya Disiapkan untuk penggunaan di masa mendatang

bDeviceClass

Menentukan kelas perangkat.

Nilai Deskripsi
0x00 Penyimpanan Massal
Semua nilai lainnya Disiapkan untuk penggunaan di masa mendatang

bDeviceSubClass

Menentukan subkelas penyimpanan massal UFS dalam peta bit sebagai berikut:

Bit Nilai
0 Dapat di-boot / Non-Bootable
1 Tertanam / Dapat Dilepas
2 Dicadangkan untuk JESD220-1 (UME)
Semua nilai lainnya Disiapkan untuk penggunaan di masa mendatang

bProtocol

Menentukan dukungan protokol oleh perangkat UFS.

Nilai Deskripsi
0x00 SCSI
Semua nilai lainnya Disiapkan untuk penggunaan di masa mendatang

bNumberLU

Menentukan jumlah Unit Logis. Ini tidak termasuk jumlah unit logis terkenal.

bNumberWLU

Menentukan jumlah unit logis terkenal.

bBootEnable

Menentukan apakah fitur boot perangkat diaktifkan.

Nilai Deskripsi
0x00 Fitur boot dinonaktifkan
0x01 Fitur boot diaktifkan
Semua nilai lainnya Disiapkan untuk penggunaan di masa mendatang

bDescrAccessEn

Menunjukkan apakah Deskriptor Perangkat dapat dibaca setelah fase inisialisasi parsial urutan boot.

Nilai Deskripsi
0x00 Akses Deskriptor Perangkat dinonaktifkan
0x01 Akses Deskriptor Perangkat diaktifkan
Semua nilai lainnya Disiapkan untuk penggunaan di masa mendatang

bInitPowerMode

bInitPowerMode menentukan Mode Daya setelah inisialisasi perangkat atau reset perangkat keras.

Nilai Deskripsi
0x00 mode UFS-Sleep
0x01 Mode aktif
Semua nilai lainnya Disiapkan untuk penggunaan di masa mendatang

bHighPriorityLUN

bHighPriorityLUN mendefinisikan unit logis prioritas tinggi.

bSecureRemovalType

Menentukan tipe penghapusan aman.

Nilai Deskripsi
0x00 Informasi yang dihapus oleh penghapusan memori fisik
0x01 Informasi dihapus dengan menimpa lokasi yang ditangani dengan satu karakter diikuti dengan penghapusan
0x02 Informasi dihapus dengan menimpa lokasi yang ditangani dengan karakter, pelengkapnya, lalu karakter acak
0x03 Informasi dihapus menggunakan mekanisme yang ditentukan vendor.
Semua nilai lainnya Disiapkan untuk penggunaan di masa mendatang

bSecurityLU

Menentukan apakah ada dukungan untuk LU keamanan

Nilai Deskripsi
0x00 Tidak didukung
0x01 Putar Ulang Blok Memori Terproteksi (RPMB)
Semua nilai lainnya Disiapkan untuk penggunaan di masa mendatang

bBackgroundOpsTermLat

bBackgroundOpsTermLat mendefinisikan latensi maksimum untuk memulai transmisi data saat operasi latar belakang sedang berlangsung. Batas latensi penghentian berlaku untuk dua kasus:

  • Ketika perangkat menerima COMMAND UFS Protocol Information Units (UPIU) dengan permintaan transfer. Perangkat harus memulai transfer data dan mengirim DATA DI UPIU atau UPIU RTT dalam batas latensi.
  • Saat perangkat menerima PERMINTAAN KUERI UPIU untuk menghapus Bendera fBackgroundOpsEn . Perangkat diharapkan untuk mengakhiri operasi latar belakang dalam batas latensi.

bInitActiveICCLevel

bInitActiveICCLevel mendefinisikan nilai bActiveICCLevel setelah daya menyala atau mengatur ulang. Rentang nilainya adalah dari 0x00 hingga 0x0F.

wSpecVersion[2]

Menunjukkan versi spesifikasi dalam format Desimal Berkode Biner (BCD).

wManufactureDate[2]

Menentukan tanggal manufaktur dalam format BCD sebagai 0xMMYY.

iManufacturerName

Berisi nilai indeks ke string yang berisi nama produsen.

iProductName

Berisi nilai indeks ke string yang berisi nama produk.

iSerialNumberID

Berisi nilai indeks ke string yang berisi nomor seri.

iOemID

Berisi nilai indeks ke string yang berisi ID OEM.

wManufacturerID[2]

Menentukan ID Produsen perangkat.

bUD0BaseOffset

Menentukan Offset parameter yang dapat dikonfigurasi Deskriptor Unit 0 dalam Deskriptor Konfigurasi, UFS_CONFIG_DESCRIPTOR.

bUDConfigPLength

Ukuran total parameter UFS_UNIT_CONFIG_DESCRIPTOR.

bDeviceRTTCap

Menentukan jumlah maksimum READY TO TRANSFER UPIU yang luar biasa yang didukung oleh perangkat. Nilai minimum adalah 2.

wPeriodicRTCUpdate[2]

Menentukan frekuensi dan metode pembaruan jam real time. Bit 10 hingga 15 dicadangkan.

bUFSFeaturesSupport

Menentukan fitur mana yang didukung pada perangkat ini. Fitur didukung jika bit terkait diatur ke 1.

Bit Nilai
0 Pembaruan Firmware Bidang (FFU)
1 Kesadaran Status Produksi (PSA)
2 Masa Pakai Perangkat
Semua nilai lainnya Disiapkan untuk penggunaan di masa mendatang

bFFUTimeout

Waktu maksimum, dalam detik, di mana akses ke perangkat dibatasi atau tidak dimungkinkan melalui port apa pun yang terkait karena eksekusi perintah WRITE BUFFER.

bQueueDepth

Menentukan kedalaman antrean. Jika anggota ini sama dengan 0, perangkat mengimplementasikan arsitektur antrean per LU.

wDeviceVersion[2]

Menentukan versi perangkat.

bNumSecureWPArea

Menentukan jumlah total Area Perlindungan Tulis Aman yang didukung oleh perangkat. Nilai anggota ini antara bNumberLU dan 32.

dPSAMaxDataSize[4]

Menentukan jumlah maksimum data yang dapat ditulis selama fase pra-solder alur PSA.

dPSAStateTimeout

Anggota ini sesuai dengan bPSAStateTimeout (29h) dalam spesifikasi JEDEC.

iProductRevisionLevel

Menentukan indeks ke string yang berisi Tingkat Revisi Produk.

Reserved[5]

Disiapkan untuk penggunaan masa mendatang.

Reserved2[16]

Disiapkan untuk penggunaan masa mendatang.

wHPBVersion

bHPBControl

Reserved3[12]

dExtendedUFSFeaturesSupport[4]

bWriteBoosterBufferPreserveUserSpaceEn

bWriteBoosterBufferType

dNumSharedWriteBoosterBufferAllocUnits[4]

Keterangan

Jika bBootEnable dalam UFS_DEVICE_DESCRIPTOR diatur ke nol atau jika unit logis Boot terkenal tidak dipetakan ke unit logis yang diaktifkan, unit logis Boot yang dikenal akan berakhir.

UFS_DEVICE_DESCRIPTOR baca saja, beberapa parameternya dapat diubah dengan mengubah parameter yang sesuai dalam UFS_UNIT_CONFIG_DESCRIPTOR.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 10 versi 1709
Server minimum yang didukung Server Windows 2016
Header ufs.h

Lihat juga

UFS_CONFIG_DESCRIPTOR

UFS_DEVICE_HEALTH_DESCRIPTOR

UFS_GEOMETRY_DESCRIPTOR

UFS_INTERCONNECT_DESCRIPTOR

UFS_POWER_DESCRIPTOR

UFS_RPMB_UNIT_DESCRIPTOR

UFS_STRING_DESCRIPTOR

UFS_UNIT_CONFIG_DESCRIPTOR

UFS_UNIT_DESCRIPTOR