UFS系列七:描述符、标识和属性

UFS 功能描述:UFS boot UFS 启动过程介绍:启动配置,启动代码下载过程安全性 阅读详情

转载:蛋蛋读UFS之七:描述符、标识和属性

UFS中也有吉祥三宝,那就是描述符(Deors)、标识(Flags)和属性(Attributes),主机通过这三宝,来控制与管理UFS设备。

描述符

描述符是一块或者一页参数用以描述一个UFS设备,比如,UFS有整个UFS设备的描述符 (Device Deor),UFS设备的配置描述符(Configuration Deor),每一个LU还有其描述符(Unit Deor),等等。下面是UFS里面所有种类的描述符。

除了配置描述符和OEM_ID字符串描述符,所有的描述符都是只读的,即UFS设备一旦出厂,主机是不能对它进行修改。

还记得Query Request UPIU吗?主机是通过设备管理器来访问这些描述符的。

主机读描述符:

主机通过发Query Request UPIU给UFS设备,然后设备通过Query Response UPIU返回描述符数据。

主机写描述符:

主机如果想更改配置,可以写配置描述符。主机要写入的数据包含在Query Request UPIU中,一旦UFS设备更新完,返回Query Response UPIU。

我们简单过一下上面的这些描述符,更加详细的描述大家可以自行看UFS spec。

UFS设备只有一个,所以只有一个设备描述符;

一共有32个普通LU,每个LU有一个逻辑单元描述符,所以最多有32个逻辑单元描述符;

每8个LU有一个配置描述符,所以一共最多4个配置描述符。

1. 设备描述符

设备描述符就是描述整个UFS设备属性的描述符,这些参数在UFS设备出厂时就由厂家设置好,主机对它只可读不可写。

上面只是截取了一部分设备描述符数据结构内容,有关完整的设备描述符内容,大家可以看spec。

前面说了设备描述符是只读属性,为什么我们看到设备描述符里的有些项是可配置的呢?设备描述符的确只可能读不可写,但是主机通过写配置描述符(主机可写),然后这些项的变化就反映到设备描述符里来了。

UFS设备只有一个,所以一共只有一个设备描述符。

2. 逻辑单元(LU)描述符

逻辑单元描述符用来描述某个具体LU的特性和能力,比如该LU逻辑块大小、该逻辑块是不是存有启动代码、该逻辑块内存类型等等。

对于逻辑单元描述符中可配置的项,主机可以通过写配置描述符进行相应的更改。

3. 配置描述符

用户想对UFS做一些配置,或者使能/禁止一些feature, 可以通过写配置描述符达到目的。这些项的更新会反映到设备描述符或者逻辑单元描述符上。注意只有在属性(Attribute)bConfigDescrLock = 0时才可以写配置描述符,即配置描述符没有被锁住,配置描述符才能写,否则也是只读的。

UFS2.1有32个普通的LU,每8个LU有个配置描述符,所以一共有4个描述符。

拿出一个配置描述符来看看它的格式。

该配置描述符,包含了设备描述符可配置的参数和LU 0-7中可配置的参数。

举例来说,bBootEnable是设备描述符中一个可配置的项。它在出厂设置时bBootEnable = 0,用户在使用UFS设备时,把启动代码存放在UFS设备上,因此,为使能Boot feature, 用户须通过写配置描述符把该比特置起来:

bBootEnable = 1。然后,主机在读取设备描述符的时候,会看到bBootEnable 变成了1。

除了配置UFS设备,配置描述符还可以对每一个LU进行配置。

比如,主机可以通过写配置描述符,使能某个LU,或者设置某个LU的逻辑块大小,以及其它和LU相关的配置。

UFS中还有其它的一些描述符,这里就不一一细看。

我们接下里看看另一宝:标志(flags)。

标志(flags

UFS中的标志其实就是一些开关,布尔型,非0即1,打开或者关闭。这些标志可以用来使能或者禁止UFS设备的一些功能、模式或者状态。

在UFS2.1协议中,一共有以下一些标志:

主机也是通过设备管理器的Query Request UPIU来读取或者写标志。

属性(Attributes

如果说flags是布尔类型,那么属性就是C语言中的枚举类型。属性的值不仅仅是0或者1,它是一定数字范围的。属性可以表示设备的一些状态,比如当前设备后台任务的状态。有些属性,主机只可读,有些属性,主机可以写。

主机也是通过设备管理器的Query Request UPIU来读取或者写属性。

UFS 描述符、标志属性(一) UFS描述介绍 阅读详情

相关推荐

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

UFS描述符,标志属性

m0_51720747的博客 1334

黑猫带你学UFS协议第13篇:UFS初始化详解(Boot Operation)

本文详细解析了UFS设备的初始化过程,包括部分初始化、加载启动代码(可选)初始化完成三个阶段。重点介绍了如何通过设备描述符逻辑单元描述符配置引导特性,以及如何从UFS设备加载启动代码。内容适用于嵌入式硬件存储领域的开发者。

黑猫奥利奥的博客 3504

UFS Host Controller工作流程

contentsUFS架构图HCI接口架构传输请求接口(Transfer Request Interface)UFS 主机控制器寄存器接口(host controller Interface)UTP 层数据传输Host Software与Host Controller的交互Host Controller初始化配置与控制CRYPTOCFG 配置过程 该文档描述了UFS Host Controller的主要运作流程以及在开源内核代码hisi平台中的host controller的接口函数设计 文档大部分内容参

Frank_sample的专栏 1万+

UFS 介绍 1

本文主要针对UFS的硬件架构及软件应用层架构做了简单的介绍,对于mipi层的协议没有过多的介绍,因为软件流程中mipi层对软件来说是不可见的也不大关心的,我们关心的是应用层协议栈的初始化,后面的文章会针对UFS协议栈的软件初始化详细流程UFS的分区管理作进一步介绍

肥匪斐's blogs 1万+

蛋蛋读UFS之六:UFS设备初始化启动

蛋蛋读UFS之六:UFS设备初始化启动

水瓶子的博客 2711

UFS 4 - UFS Boot

基于UFS 3.1

天使之翼 2391

2. UFS2.1 —— Descriptor描述符

描述符 由Query Request UPIU来访问描述符。 Descriptor length:2 ~ 255B (2B是一个空的描述符描述符是一页或一块参数来描述设备信息。大部分的描述符是Only Read,但Configuration DescriptorOEM_ID String Descriptor是可Write的。 以下为描述符的分类: 有的描述符只有一个实体,如Device Descriptor 有的描述符有多个实体,如Unit Descriptor,所以需要Ind.

dylan的博客 1703

蛋蛋读UFS描述符标识属性

蛋蛋读UFS描述符标识属性

水瓶子的博客 2153

UFS系列7:描述符标识属性

UFS中也有吉祥三宝,那就是描述符(Descriptors)、标识(Flags)属性(Attributes),主机通过这三宝,来控制与管理UFS设备。 描述符 描述符是一块或者一页参数用以描述一个UFS设备,比如,UFS有整个UFS设备的描述符 (Device Descriptor),UFS设备的配置描述符(Configuration Descriptor),每一个LU还有其描述符(Unit Descriptor),等等。下面是UFS里面所有种类的描述符。 除了配置描述符OEM_ID字符串...

俺是太上皇 931

11 UFS 4.0 UFS描述符、标志属性

所有描述符的格式都以一个包含描述符长度标识特定描述符类型的类型值的头开始。长度值包括头的长度加上任何附加数据。对于单元描述符,格式包括对所涉及单元的指示。

qq_42238448的博客 581

黑猫带你学UFS协议第11篇:UFS描述符详解(descriptor)

1 前言 1.1 声明 本文依据UFS3.1 JEDEC协议及个人工作经验整理而成,如有错误请留言。 文章为个人辛苦整理,付费内容,禁止私自转载。 文章所在专栏:《黑猫带你学:UFS协议详解》 1.2 参考链接 本文少量内容参考如下链接: 蛋蛋读UFS描述符标识属性:http://www.ssdfans.com/?p=92744 2 概述 UFS中也有吉祥三宝,那就是描述符(Deors)、标识(Flags)属性(Attributes),主机通过这三宝,来控制与管理UFS设备。这三宝其实就是emm

黑猫奥利奥的博客 2909

UFS协议—新手快速入门(五)【11-13

主机对UFS设备进行上电或重启。主机设备端的物理层数据链路层完成初始化。主机通过NOP OUT UPIU ping设备,设备回送NOP IN UPIU确认连接正常。如果设备描述符可访问(bDescrAccessEn不为0),主机读取描述符以确定是否需要加载启动代码。主机向相应的LU发送“TEST UNIT READY”READ命令,加载启动代码(如果需要)。主机设置并轮询fDeviceInit标志,直至标志清除,表示UFS设备完全初始化。

江湖小浪花的博客 4395

UFS系列五:逻辑单元(LU)

转载:蛋蛋读UFS之五:逻辑单元(LU) 熟悉NVMe的朋友知道,NVMe里面有namespace的概念,就是把SSD物理空间划分成若干个逻辑地址空间。在UFS的世界里,它也有这个特性。UFS设备的物理存储空间可以有若干个独立的逻辑地址空间,我们把逻辑地址空间叫做LU,即Logical Unit,俗称“撸”。前面看到,在每个UPIU的Header中,有个LUN(Logical Unit Numb...

Yannick Jiang 的专栏 1万+

UFS 启动步骤

UFS 启动,M-PHY,UniPro

shuwei1990的博客 1777

UFS协议—新手快速入门(番外- Descriptors、Flags、Attributes)

UFS 3.1 中所有描述符的详细介绍1. Generic Descriptor Format(通用描述符格式)这是所有描述符的通用格式,定义了描述符的基本结构,包括描述符的长度类型。每个描述符都以一个 1 字节的长度字段开头,表示描述符的总长度(包括长度字节本身)。第二个字节是描述符类型标识符,用于区分不同类型的描述符。这种通用格式确保了描述符的可读性可解析性,主机可以通过这些字段快速识别处理描述符。2. Device Descriptor(设备描述符

江湖小浪花的博客 3039

UFS的初始化过程(一)

对于不同的设备,eMMCUFS来说,初始化的过程都很重要。从客户端来看,很多不良都发生在初始化阶段。 UFS的初始化比较麻烦,先再来看下UFS的结构。 UFS不同的layer有不同的SPEC,那么初始化的过程在不同的层面有不同的process.这里先介绍UFS层的init process。 (一)UFSinit过程 在UFS JEDEC中,对于UFSinit过程的描述还是比较清...

comeonbestxiaohe的博客 6220

UFS 启动

. UFS启动概述 二.

guozhidixian的博客 5599

UFS详细介绍---终章

UFS学习

LUOHUATINGYUSHENG的博客 2万+
上一篇: UFS系列六:UFS设备初始化和启动
下一篇: UFS系列八:RPMB(Replay Protected Memory Block)
Yannick_J
博客等级 码龄14年 491粉丝 148原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值