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

另請參閱