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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk