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

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

  • 描述符

描述符是一块或者一页参数用以描述一个UFS设备,比如,UFS有整个UFS设备的描述符 (Device Descriptor),UF[……]

阅读全文

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

这一节讲讲UFS初始化。

初始化和启动包括三个阶段:部分初始化,加载启动代码(可选)和初始化完成。

  • 部分初始化阶段

这个阶段开始于上电或者设备重启,它涉及到整个UFS栈的初始化。

这个初始化阶段完成后,整个物理层(M-PHY)和数据链路层(UniPro)应该被初始化好,传输层可以和主机交[……]

阅读全文

蛋蛋读UFS之五:逻辑单元(LU)

熟悉NVMe的朋友知道,NVMe里面有namespace的概念,就是把SSD物理空间划分成若干个逻辑地址空间。在UFS的世界里,它也有这个特性。UFS设备的物理存储空间可以有若干个独立的逻辑地址空间,我们把逻辑地址空间叫做LU,即Logical Unit,俗称“撸”。前面看到,在每个UPIU的Hea[……]

阅读全文

蛋蛋读UFS之四:UPIU数据包格式

UPIU是命令、数据和状态信息传输的载体,是UFS协议栈的灵魂。UPIU是有固定格式的数据包,我们分析数据包格式,有助于我们更深的理解UPIU以及整个UFS协议。这一章我们看看UPIU数据包的格式。
每个UPIU都有一个12字节的Header,再加上跟每个UPIU相关的域。一个UPIU(包括Head[……]

阅读全文

蛋蛋读UFS之三:UFS数据包UPIU

UFS中流淌的数据包叫做UPIU(UFS Protocol Information Unit,UFS协议信息单元),它是固定格式的数据结构,用以传输应用层发来的命令或者请求,以及跟它们相关的数据或者状态信息。它就是SATA中的FIS,PCIe中的TLP。
我们看看UFS中命令或请求是怎么执行的。[……]

阅读全文