UFS的initial过程(一)

对于不同的设备,eMMC和UFS来说,初始化的过程都很重要。从客户端来看,很多不良都发生在初始化阶段。

UFS的初始化比较麻烦,先再来看下UFS的结构。

UFS不同的layer有不同的SPEC,那么初始化的过程在不同的层面有不同的process. 这里分为UFS initial, M-PHY initial, Uni-pro initial 三个过程来介绍。

(一)UFS initial 过程

在UFS JEDEC中,对于UFS initial过程的描述还是比较清楚的,如下图。这里的UFS host和UFS device指的是

1. 上电行为:Power-on Reset/HW Reset/EndPointReset

2. M-PHY layer initiation。这个动作是由host 和device端的M-PHY 各自独立完成的,中间没有信息交互。后面再展开。

3. Unipro 的boot sequence. 这个过程也是两端独立完成。后面再展开。

4. 第一个握手动作。NOP OUT UPIU-> NOP IN UPIU.

5. 读取device descriptor, 这个过程是optional的。

6. SCSI read读取boot data from BOOT LU. 这个过程也是optional的,只有当BOOT LU ENABLE,及host选择从UFS boot时,才会有这个过程。 BOOT LU的大小一般都是几十MB左右,里面存放是bootloader的数据,大部分的系统数据,如kernel等还是存放在user分区的LU中。

7. Query request(SET FLAG fDeviceInit)这是host 最后和device确认initial的过程已经完成了。

在实际的手机启动过程中,开机过程并不是一次initial过程完成的,可能需要2,3甚至5次initial的过程。

猜你喜欢

转载自blog.csdn.net/comeonbestxiaohe/article/details/88549918
今日推荐