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 (LUs) 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 atau Non-Bootable |
1 | Disematkan atau 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 unit logis 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 QUERY REQUEST UPIU untuk menghapus Bendera fBackgroundOpsEn . Perangkat diharapkan untuk mengakhiri operasi latar belakang dalam batas latensi.
bInitActiveICCLevel
bInitActiveICCLevel mendefinisikan nilai bActiveICCLevel setelah daya menyala atau direset. 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 minimumnya 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, yang aksesnya 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 adalah antara bNumberLU dan 32.
dPSAMaxDataSize[4]
Menentukan jumlah maksimum data yang dapat ditulis selama fase pra-solder aliran 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
Menentukan versi peningkatan performa host.
bHPBControl
Reserved3[12]
Disiapkan untuk penggunaan masa mendatang.
dExtendedUFSFeaturesSupport[4]
dExtendedUFSFeaturesSupport adalah bitmask yang menunjukkan fitur yang diperluas mana yang didukung.
bWriteBoosterBufferPreserveUserSpaceEn
Mengatur bWriteBoosterBufferPreserveUserSpaceEn ke 0x01 menghindari pengurangan total ruang pengguna yang dapat dikonfigurasi selama provisi, tetapi dapat mengakibatkan performa yang lebih rendah. Jika bWriteBoosterBufferPreserveUserSpaceEn diatur ke 0x00, buffer booster tulis mengurangi total ruang pengguna yang dapat dikonfigurasi selama provisi.
bWriteBoosterBufferType
bWriteBoosterBufferType mengonfigurasi jenis buffer booster tulis. Nilai 0x00 menentukan mode buffer khusus unit logis. Nilai 0x01 menentukan mode buffer bersama.
dNumSharedWriteBoosterBufferAllocUnits[4]
dNumSharedWriteBoosterBufferAllocUnits menentukan ukuran buffer booster tulis untuk konfigurasi buffer booster tulis bersama.
Keterangan
Jika bBootEnable dalam UFS_DEVICE_DESCRIPTOR diatur ke nol atau jika Unit Logis Boot Well Known tidak dipetakan ke unit logis yang diaktifkan, unit Logis Boot Well Known akan dihentikan.
UFS_DEVICE_DESCRIPTOR bersifat baca saja, beberapa parameternya dapat diubah dengan mengubah parameter yang sesuai di 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 |