UFS_DEVICE_DESCRIPTOR 結構 (ufs.h)
UFS_DEVICE_DESCRIPTOR 是通用 Flash 記憶體 (UFS) 裝置的主要描述元,而且應該是擷取的第一個描述元,因為它指定裝置類別和子類別,以及用來存取此裝置的通訊協定 (命令) 集,以及裝置內所含的邏輯單元數目上限) (RU 數目。
語法
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
指定裝置類型。
值 | Description |
---|---|
0x00 | 裝置 |
所有其他的值 | 保留供日後使用 |
bDeviceClass
指定裝置類別。
值 | Description |
---|---|
0x00 | 大量記憶體 |
所有其他的值 | 保留供日後使用 |
bDeviceSubClass
指定位對應中的 UFS 大型記憶體子類別,如下所示:
bit | 值 |
---|---|
0 | 可開機或不可開機 |
1 | 內嵌或卸除式 |
2 | 保留給 JESD220-1 (UME) |
所有其他的值 | 保留供日後使用 |
bProtocol
指定UFS裝置的通訊協議支援。
值 | Description |
---|---|
0x00 | SCSI |
所有其他的值 | 保留供日後使用 |
bNumberLU
指定邏輯單元的數目。 這不包括已知的邏輯單元數目。
bNumberWLU
指定已知的邏輯單元數目。
bBootEnable
指定裝置的開機功能是否已啟用。
值 | Description |
---|---|
0x00 | 已停用開機功能 |
0x01 | 已啟用開機功能 |
所有其他的值 | 保留供日後使用 |
bDescrAccessEn
指出裝置描述元是否可以在開機順序的部分初始化階段之後讀取。
值 | Description |
---|---|
0x00 | 裝置描述元存取已停用 |
0x01 | 已啟用裝置描述元存取 |
所有其他的值 | 保留供日後使用 |
bInitPowerMode
bInitPowerMode 會在裝置初始化或硬體重設之後定義電源模式。
值 | Description |
---|---|
0x00 | UFS-Sleep 模式 |
0x01 | 主動模式 |
所有其他的值 | 保留供日後使用 |
bHighPriorityLUN
bHighPriorityLUN 會定義高優先順序邏輯單元。
bSecureRemovalType
指定安全移除類型。
值 | Description |
---|---|
0x00 | 由物理記憶體清除移除的資訊 |
0x01 | 藉由以單一字元後面接著清除覆寫尋址位置來移除的資訊 |
0x02 | 藉由以字元、其補碼、隨機字元覆寫尋址位置來移除資訊 |
0x03 | 使用廠商定義的機制移除的資訊。 |
所有其他的值 | 保留供日後使用 |
bSecurityLU
指定是否支援安全性邏輯單元。
值 | Description |
---|---|
0x00 | 不支援 |
0x01 | 重新執行受保護的記憶體區塊 (RPMB) |
所有其他的值 | 保留供日後使用 |
bBackgroundOpsTermLat
bBackgroundOpsTermLat 會定義在背景作業進行時啟動數據傳輸的最大延遲。 終止延遲限制適用於兩種情況:
- 當裝置收到命令 UFS 通訊協定資訊單位時, (UPIU) 傳送要求。 裝置應啟動數據傳輸,並在延遲限制內傳送數據 IN UPIU 或 RTT UPIU。
- 當裝置收到 QUERY REQUEST UPIU 以清除 fBackgroundOpsEn 旗標時。 裝置預期會在延遲限制內終止背景作業。
bInitActiveICCLevel
bInitActiveICCLevel 會在開啟電源或重設之後定義 bActiveICCLevel 值。 值的範圍是從0x00到0x0F。
wSpecVersion[2]
表示二進位編碼十進位 (BCD) 格式的規格版本。
wManufactureDate[2]
將 BCD 格式的製造日期指定為 0xMMYYY。
iManufacturerName
包含包含製造商名稱之字串的索引值。
iProductName
包含包含產品名稱之字串的索引值。
iSerialNumberID
包含包含序號之字串的索引值。
iOemID
包含包含 OEM 識別符之字串的索引值。
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 | 生產狀態感知 () |
2 | 裝置生命週期 |
所有其他的值 | 保留供日後使用 |
bFFUTimeout
存取裝置的時間上限,以秒為單位,會因為執行 WRITE BUFFER 命令而受限或無法透過任何相關聯的埠。
bQueueDepth
指定佇列深度。 如果此成員等於 0,裝置會實作每個 LU 佇列架構。
wDeviceVersion[2]
指定裝置版本。
bNumSecureWPArea
指定裝置所支援的安全寫入保護區域總數。 此成員的值介於 bNumberLU 和 32 之間。
dPSAMaxDataSize[4]
指定在儲存前的一個階段內可寫入之數據量上限。
dPSAStateTimeout
此成員對應於 JEDEC 規格中的 bPSAStateTimeout (29h) 。
iProductRevisionLevel
指定包含產品修訂層級之字串的索引。
Reserved[5]
保留供未來使用。
Reserved2[16]
保留供未來使用。
wHPBVersion
指定主機效能提升器版本。
bHPBControl
Reserved3[12]
保留供未來使用。
dExtendedUFSFeaturesSupport[4]
dExtendedUFSFeaturesSupport 是位掩碼,指出支援哪些擴充功能。
bWriteBoosterBufferPreserveUserSpaceEn
將 bWriteBoosterBufferPreserveUserSpaceEn 設定為 0x01 可避免在布建期間設定的使用者空間總計,但可能會導致效能降低。 如果 bWriteBoosterBufferPreserveUserSpaceEn 設定為 0x00,寫入提升器緩衝區會減少布建期間可設定的用戶空間總數。
bWriteBoosterBufferType
bWriteBoosterBufferType 會設定寫入提升器緩衝區類型。 值0x00指定邏輯單元專用緩衝區模式。 值0x01指定共用緩衝區模式。
dNumSharedWriteBoosterBufferAllocUnits[4]
dNumSharedWriteBoosterBufferAllocUnits 會指定共用寫入提升器緩衝區設定的寫入提升器緩衝區大小。
備註
如果UFS_DEVICE_DESCRIPTOR中的 bBootEnable 設定為零,或開機已知邏輯單元未對應至啟用的邏輯單元,則開機已知邏輯單元應終止。
UFS_DEVICE_DESCRIPTOR 是只讀的,其部分參數可能會變更,方法是變更 UFS_UNIT_CONFIG_DESCRIPTOR中的對應參數。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 (版本 1709) |
最低支援的伺服器 | Windows Server 2016 |
標頭 | ufs.h |