当前位置: 首页 > web >正文

UFS 描述符、标志和属性(二)

 UFS 描述符

6 RPMB 单元描述符 (RPMB Unit Descriptor)

在 QUERY REQUEST UPIU 中,通过设置以下参数来寻址 RPMB 单元描述符:DESCRIPTOR IDN = 02h, INDEX = C4h, 和 SELECTOR = 00h。

表 14.15 — RPMB 单元描述符

bLogicalBlockSize逻辑块大小 可寻址逻辑块的大小等于以 2 为底、bLogicalBlockSize 值为指数的幂运算结果:2^bLogicalBlockSize(即,在正常 RPMB 中,bLogicalBlockSize = 08h 对应于 256 字节逻辑块大小。在高级 RPMB 中,bLogicalBlockSize = 0Ch 对应于 4KB 逻辑块大小)此值应根据 RPMB 配置更改为适当的值。
qLogicalBlockCount逻辑块计数 RPMB LU 中可寻址逻辑块的总数。对于正常 RPMB,逻辑块计数应为 512 的倍数。对于高级 RPMB,逻辑块计数应为 32 的倍数。(即 128 Kbyte)此值应根据 RPMB 配置更改为适当的值。
bRPMBRegion0SizeRPMB 区域 0 大小 RPMB 区域 0 大小以 128KB 为单位定义(00h: 0KB, 01h: 128KB, … , 80h: 16384KB)。
bRPMBRegion1SizeRPMB 区域 1 大小 RPMB 区域 1 大小以 128KB 为单位定义(00h: 0KB, 01h: 128KB, … , 80h: 16384KB)。
bRPMBRegion2SizeRPMB 区域 2 大小 RPMB 区域 2 大小以 128KB 为单位定义(00h: 0KB, 01h: 128KB, … , 80h: 16384KB)。
bRPMBRegion3SizeRPMB 区域 3 大小 RPMB 区域 3 大小以 128KB 为单位定义(00h: 0KB, 01h: 128KB, … , 80h: 16384KB)。
bProvisioningType配置类型 00h: 精简配置 (Thin Provisioning) 禁用
qPhyMemResourceCount物理内存资源计数 逻辑单元中可用的物理内存资源总数。以 bLogicalBlockSize 为单位表示的值。动态设备容量功能不适用于 RPMB 知名逻辑单元,因此 qPhyMemResourceCount 值始终等于 qLogicalBlockCount 值。

7 电源参数描述符 (Power Parameters Descriptor)

此描述符包含有关设备电源能力和电源状态的信息。在 QUERY REQUEST UPIU 中,通过设置以下参数来寻址电源参数描述符:DESCRIPTOR IDN = 08h, INDEX = 00h, 和 SELECTOR = 00h。

8 互连描述符 (Interconnect Descriptor)

互连描述符包含 MIPI M-PHY® 规范版本号和 MIPI UniPro® 规范版本号。在 QUERY REQUEST UPIU 中,通过以下设置寻址互连描述符:DESCRIPTOR IDN = 04h, INDEX = 00h, 以及 SELECTOR = 00h。

9 制造商名称字符串描述符 (Manufacturer Name String Descriptor)**

此描述符包含**左对齐**的 UNICODE 制造商名称字符串。

描述符的内容应与查询响应数据 (Inquiry Response Data) 中的“**供应商标识 (VENDOR IDENTIFICATION)**”字段内容完全相同。描述符的长度应为 12h(十进制 18),包含**恰好 8 个 UNICODE 字符**,以匹配查询响应数据中的“供应商标识”字段。

在 QUERY REQUEST UPIU 中,通过以下设置寻址制造商名称字符串描述符:DESCRIPTOR IDN = 05h, INDEX = iManufacturerName(设备描述符参数), 以及 SELECTOR = 00h。

10 产品名称字符串描述符 (Product Name String Descriptor)**

此描述符包含**左对齐**的 UNICODE 产品名称字符串。

描述符的内容应与查询响应数据 (Inquiry Response Data) 中的“**产品标识 (PRODUCT IDENTIFICATION)**”字段内容完全相同。描述符的长度应为 **22h(十进制 34)**,包含**恰好 16 个 UNICODE 字符**,以匹配查询响应数据中的“产品标识”字段。

在 QUERY REQUEST UPIU 中,通过以下设置寻址产品名称字符串描述符:DESCRIPTOR IDN = 05h, INDEX = iProductName(设备描述符参数), 以及 SELECTOR = 00h。

11 OEM ID 字符串描述符 (OEM ID String Descriptor)**

此描述符包含 UNICODE OEM ID 字符串,该字符串最多可包含 **126 个 UNICODE 字符**。UNICODE 字符的数量计算公式为:`(bLength - 2) / 2`。

在 QUERY REQUEST UPIU 中,通过以下设置寻址 OEM ID 字符串描述符:DESCRIPTOR IDN = 05h, INDEX = iOemID(设备描述符参数), 以及 SELECTOR = 00h。

OEM ID 字符串描述符用于标识 OEM 名称(例如,手机制造商的名称、汽车制造商的名称等)。

OEM_ID 字符串描述符是:**可读的**,**当 `bConfigDescrLock` 属性值等于 00h 时可写入**。

12 序列号字符串描述符 (Serial Number String Descriptor)**

此描述符包含 UNICODE 序列号字符串,该字符串最多可包含 **126 个 UNICODE 字符**。UNICODE 字符的数量计算公式为:`(bLength - 2) ÷ 2`。

在 QUERY REQUEST UPIU 中,通过以下设置寻址序列号字符串描述符:DESCRIPTOR IDN = 05h, INDEX = iSerialNumber(设备描述符参数), 以及 SELECTOR = 00h。

13 产品修订版本字符串描述符 (Product Revision Level String Descriptor)

此描述符包含**左对齐**的 UNICODE 产品修订版本字符串。

描述符的内容应与查询响应数据 (Inquiry Response Data) 中的“**产品修订版本 (PRODUCT REVISION LEVEL)**”字段内容完全相同。描述符的长度应为 **0Ah(10 十进制)**,包含**恰好 4 个 UNICODE 字符**,以匹配查询响应数据中的“产品修订版本”字段。

在 QUERY REQUEST UPIU 中,通过以下设置寻址产品修订版本字符串描述符:DESCRIPTOR IDN = 05h, INDEX = iProductRevisionLevel(设备描述符参数), 以及 SELECTOR = 00h。

14 设备健康描述符 (Device Health Descriptor)

设备健康描述符提供与设备健康相关的信息。

在 QUERY REQUEST UPIU 中,通过设置以下参数来寻址设备健康描述符:DESCRIPTOR IDN = 09h, INDEX = 00h 和 SELECTOR = 00h。

15 供应商特定描述符 (Vendor Specific Descriptor)

供应商特定描述符的详细格式由设备制造商定义。

在 QUERY REQUEST UPIU 中,通过设置以下参数来寻址供应商特定描述符:DESCRIPTOR IDN = F0h 到 FFh。INDEX 和 SELECTOR 的值由供应商确定。有关详细定义,请参阅设备制造商数据手册。

标志 (Flags)

标志是表示 TRUE 或 FALSE、'0' 或 '1'、ON 或 OFF 类型值的单个布尔值。标志可以被清除或复位、置位、切换或读取。标志对于启用或禁用设备内的某些功能、模式或状态非常有用。

为每个标志定义了读访问属性(只读或只写)和写访问属性(只读、只写、持久性等)。表 14.25 描述了标志支持的访问属性。

fPurgeEnable清除启用 (Purge Enable) 0b: 清除操作禁用。1b: 清除操作启用。此标志应仅在所有逻辑单元的命令队列为空且 bPurgeStatus 为 00h(空闲)时设置。当操作完成或发生错误条件时,UFS 设备会自动清除 fPurgeEnable。主机可以清除 fPurgeEnable 以中断正在进行的清除操作。
fRefreshEnable刷新启用 (Refresh Enable) 0b: 刷新操作禁用。1b: 刷新操作启用。此标志应仅在所有逻辑单元的命令队列为空且 bRefreshStatus 为 00h(空闲)时设置。当操作完成或发生错误条件时,UFS 设备会自动清除 fRefreshEnable。主机可以清除 fRefreshEnable 以中断正在进行的刷新操作。
fPhyResourceRemoval物理资源移除 (Physical Resource Removal) 主机将此标志设置为 1,表示动态容量操作应在设备端点复位 (EndPointReset) 或硬件复位时开始。设备应在动态容量操作完成后将此标志复位为 0。主机无法复位此标志。
fBusyRTC实时时钟忙 (Busy Real Time Clock) 0b:设备未执行与 RTC 相关的内部操作。1b: 设备正在执行与 RTC 相关的内部操作。当此标志设置为 1 时,建议主机不要向设备发送命令。
fPermanentlyDisableFwUpdate永久禁用固件更新 (Permanently Disable Firmware Update) 0b: UFS 设备固件可以修改。1b: UFS 设备应永久禁止未来的 UFS 设备固件更新。
fWriteBoosterEn写入加速器启用 (WriteBooster Enable) 0b: 写入加速器 (WriteBooster) 未启用。1b: 写入加速器 (WriteBooster) 启用。
fWriteBoosterBufferFlushEn将写入加速器 (WriteBooster) 缓冲区中的数据刷新到存储器的用户区域。0b: 未执行刷新操作。1b: 执行刷新操作。
fWriteBoosterBufferFlushDuringHibernate在休眠状态期间刷新写入加速器 (WriteBooster) 缓冲区。0b: 不允许设备在链路休眠状态期间刷新写入加速器 (WriteBooster) 缓冲区。1b: 允许设备在链路休眠状态期间刷新写入加速器 (WriteBooster) 缓冲区。

属性 (Attributes)

属性是表示特定数值范围的参数,可以写入或读取。例如,最大数据输入 (Data In) 数据包大小将是一个属性。属性大小可以从 1 位到 64 位。相同类型的属性可以组织在数组中,每个元素由索引标识。例如,对于特定于逻辑单元的参数,LUN 将用作索引。

为每个属性定义了读访问属性(读或只写)和写访问属性(只读、写一次、持久性等)。表 14.27 描述了属性支持的访问属性。

名称描述
bOutOfOrderDataEn乱序数据传输启用 (Out of Order Data transfer Enable) 00h: DATA IN 和 DATA OUT UPIU 的乱序数据传输均禁用 01h: DATA IN 和 DATA OUT UPIU 的乱序数据传输均启用 02h: 仅启用 DATA IN UPIU 的乱序数据传输,而 DATA OUT UPIU 禁用 03h: 仅启用 DATA OUT UPIU 的乱序数据传输,而 DATA IN UPIU 禁用 其他: 保留 仅当 bDataOrdering 声明设备支持特定 UPIU 的启用时,此位才有效
bBackgroundOpStatus后台操作状态 (Background Operations Status) 后台操作的设备健康状态 00h: 不需要 01h: 需要,不严重 02h: 需要,影响性能 03h: 严重。其他: 保留
bPurgeStatus清除操作状态 (Purge Operation Status) 00h: 空闲(清除操作禁用)01h: 清除操作正在进行中 02h: 清除操作过早停止 03h: 清除操作成功完成 04h: 清除操作因逻辑单元队列不空而失败 05h: 清除操作一般失败。其他: 保留 当 bPurgeStatus 等于 02h、03h、04h 或 05h 时,第一次读取时 bPurgeStatus 会自动清除为 00h(空闲)。
bMaxDataInSize最大数据输入大小 (Maximum Data In Size) DATA IN UPIU 中的最大数据大小。以 512 字节为单位表示的值。bMaxDataInSize 不得超过 bMaxInBufferSize 参数。UFS 设备出厂时 bMaxDataInSize = bMaxInBufferSize。仅当所有 LU 任务队列为空时,主机才能写入此参数。
bMaxDataOutSize最大数据输出大小 (Maximum Data-Out Size) 使用 READY TO TRANSFER UPIU 可以请求的最大字节数不得超过此属性指示的值。以 512 字节为单位表示的值。bMaxDataOutSize 不得超过 bMaxOutBufferSize 参数。UFS 设备出厂时 bMaxDataOutSize = bMaxOutBufferSize。仅当所有 LU 任务队列为空时,主机才能写入此参数。
dDynCapNeeded所需动态容量 (Dynamic Capacity Needed) 需要从特定逻辑单元的物理内存资源池中移除的物理内存量,以 bOptimalWriteBlockSize 为单位。
bRefClkFreq参考时钟频率值 (Reference Clock Frequency value) 0h:19.2 MHz 1h: 26 MHz 2h: 38.4 MHz 3h: 52 MHz (默认) 其他: 保留 此属性值仅在 LSS 为低电平时使用。当 LSS 为高电平时,它被忽略。
bConfigDescrLock配置描述符锁定 (Configuration Descriptor Lock) 0h: 配置描述符未锁定 1h: 配置描述符锁定 其他: 保留
bMaxNumOIRTT设备中允许的最大当前未完成 RTT 数量。bMaxNumOIRTT 不得超过 bDeviceRTTCap 参数。仅当所有 LU 任务队列为空时,主机才能写入此参数。
wExceptionEventControl异常事件控制 (Exception Event Control) 此属性设置 RESPONSE UPIU 中包含的设备信息字段 (Device Information field) 的 EVENT_ALERT 位。如果至少发生一个异常事件 (wExceptionEventStatus[i]) 且此属性中的相应位为 1 (wExceptionEventControl[i]),则 EVENT_ALERT 设置为 1。位 0: DYNCAP_EVENT_EN 位 1: SYSPOOL_EVENT_EN 位 2: URGENT_BKOPS_EN 位 3: TOO_HIGH_TEMP_EN 位 4: TOO_LOW_TEMP_EN 位 5: WRITEBOOSTER_EVENT_EN 位 6: PERFORMANCE_THROTTLING_EN 位 7 -15: 保留
wExceptionEventStatus每位代表一个异常事件。仅当相关事件发生时(无论 wExceptionEventControl 状态如何),位才会被设置。位 0: DYNCAP_NEEDED 位 1: SYSPOOL_EXHAUSTED 位 2: URGENT_BKOPS 位 3: TOO_HIGH_TEMP 位 4: TOO_LOW_TEMP 位 5: WRITEBOOSTER_FLUSH_NEEDED 位 6: PERFORMANCE_THROTTLING 位 7 -15: 保留
wContextConfINDEX 指定 LU 编号。SELECTOR 指定 LU 内的上下文 ID。有效值为 01h – Fh。位[15:8]: 保留 位[7:6]: 可靠性模式 (Reliability mode) 00b: 模式0 (正常) 01b: 模式1 (非大型单元,可靠模式或大型单元逐单元模式) 10b: 模式2 (大型单元,单单元尾模式) 11b: 保留 位[5:3]: 大型单元乘数 (Large Unit multiplier) 如果设置了大型单元上下文,此字段定义大型单元大小,否则忽略。位[2]: 大型单元上下文 (Large Unit context) 0b: 上下文不遵循大型单元规则 1b: 上下文遵循大型单元规则 位 [1:0]: 激活和方向模式 (Activation and direction mode) 00b: 上下文已关闭且不再活动 01b: 上下文已配置并激活为只写上下文。 10b: 上下文已配置并激活为只读上下文 11b: 上下文已配置并激活为读/写上下文
dCurrentWriteBoosterBufferSize当前写入加速器 (WriteBooster) 缓冲区大小。在保留用户空间模式的情况下,根据剩余可用用户空间,用于写入加速器 (WriteBooster) 缓冲区的存储块可能会用于用户空间。因此,写入加速器 (WriteBooster) 缓冲区大小可能小于初始配置的写入加速器 (WriteBooster) 缓冲区大小。主机可以通过检查此属性来检查当前写入加速器 (WriteBooster) 缓冲区大小。以分配单元为单位表示的值。如果此值为 0,则当前写入加速器 (WriteBooster) 缓冲区大小为 0。在用户空间减少模式的情况下,此值应与 dLUNumWriteBoosterBufferAllocUnits 或 dNumSharedWriteBoosterBufferAllocUnits 的值相同,具体取决于缓冲区配置模式。
bEXTIIDEnEXT_IID 启用 (EXT_IID Enable) 00h: EXT_IID 被忽略 01h: EXT_IID 有效 其他: 保留
wHostHintCacheSize此属性由主机设置,以指示主机控制器提示缓存 (Hint Cache) 大小。wHostHintCacheSize 指示允许设备发送到主机控制器的未完成提示数据计数 (Hint Data Count) 字段的最大总和。当提示已提供给主机控制器但相应的 DATA IN UPIU / RTT UPIU 尚未传输到主机控制器时,该提示被视为未完成。如果设备发送的提示超过 wHostHintCacheSize,可能会导致性能下降,因为主机可能无法以最佳方式处理命令。未完成提示计数字段的最大总数 = 32 x 2^wHostHintCacheSize。例如,如果 wHostHintCacheSize = 2,则未完成提示数据计数字段的最大总数为 128 个单位,每个单位对应 4KB 数据。
bRefreshStatus刷新操作状态 (Refresh Operation Status) 00h: 空闲(刷新操作禁用)01h: 刷新操作正在进行中 02h: 刷新操作过早停止 03h: 刷新操作成功完成 04h: 刷新操作因逻辑单元队列不空而失败 05h: 刷新操作一般失败。其他: 保留 当 bRefreshStatus 等于 02h、03h、04h 或 05h 时,第一次读取时 bRefreshStatus 会自动清除为 00h(空闲)。
bRefreshFreq刷新频率 (Refresh Frequency) 主机应确保 dRefreshTotalCount 按此频率递增。00h: 未定义 01h: 1 个月 02h: 2 个月 … FFh: 255 个月
http://www.xdnf.cn/news/16261.html

相关文章:

  • Java进阶3:Java集合框架、ArrayList、LinkedList、HashSet、HashMap和他们的迭代器
  • 外企本土化布局对国内连接器企业影响几何?
  • IO密集型、CPU密集型、负载、负载均衡
  • 从零开发Java坦克大战:架构设计与难点突破 (上)
  • 使用Jmeter进行http接口性能测试
  • 车规级CANFD芯片在汽车车身控制方案中的应用解析
  • 【时时三省】(C语言基础)怎样定义和使用指向函数的指针变量
  • ubuntu的tar解压指令相关
  • 基于单片机智能交通灯设计
  • Mac电脑使用IDEA启动服务后,报service异常
  • AI总结视频以及谷歌浏览器插件安装步骤
  • 【硬件-笔试面试题】硬件/电子工程师,笔试面试题-20,(知识点:热阻的概念,散热)
  • 实时云渲染将UE像素流嵌入业务系统,实现二维管理系统与数字孪生三维可视化程序的无缝交互
  • 嵌入式学习-(李宏毅)机器学习(2)-day29
  • 图片查重从设计到实现(2)Milvus安装准备etcd介绍、应用场景及Docker安装配置
  • SkyWalking异步采集spring gateway日志
  • jax study notes[19]
  • 【C++】简单学——list类
  • uniapp写app做测试手机通知栏展示内容
  • 暑期算法训练.7
  • VR全景制作的流程?VR全景制作可以用在哪些领域?
  • 最短路算法
  • 美林数据用大模型重构电能质量评估,让隐蔽合规问题无所遁形
  • es 和 lucene 的区别
  • 比例谐振控制器(PR控制器)在交流系统中的应用原理详细解析
  • 【OpenCV篇】OpenCV——03day.图像预处理(2)
  • AI大模型各类概念扫盲
  • 汽车需求管理的关键要素及适合汽车行业的最佳需求管理解决方案Jama Connect
  • 《设计模式之禅》笔记摘录 - 9.责任链模式
  • 4️⃣字典(dict)速查表