UFS之Boot 启动

原创内容,转载请注明:  [http://www.ssdfans.com]  谢谢!

作者:望月闲人

 

把大象关冰箱总共分几步?

 

想要和望月闲人还有全世界的大牛讨论SSD及存储相关技术?加nanoarch为微信好友,拉你进ssdfans微信群 

 


 

在eMMC时代boot是很重要也是出问题比较多的一块,回到UFS我们也不得不聊聊UFS的启动。如果你对UFS的软件架构还不了解的话,请先阅读”UFS之M-PHY,UniPro”,才能理解系统是如何剥茧抽丝最终把UFS Boot Up起来的。

 

进入正题……

提问:把大象关冰箱总共分几步……(⊙﹏⊙)b,错了!把UFS启动起来总共分几步?

回答:七步!请结合下面的流程图和文字说明加以理解。

 

第一步:需要给UFS供三路电VCCVCCQVCCQ2。这三路电的供电是需要满足一定时序要求的,就不详细说了,如果用到就翻Spec吧。

第二步:M-PHY层初始化,这个初始化是在正确上电之后自动做的,不光在UFS这端作,同时Host controller那里也需要作M-PHY层的初始化。初始化完成后,M-PHY进入到Hibern8状态。

第三步:UniPro层的初始化,这层的初始化也是在hostUFS两端同时进行的。

第四步:UTP层的初始化。首先Host会发NOP OUT UPIU来询问UFSUTP层是否已经初始化完成了。当然,UFS因为内部要做很多处理一般不会这么痛快就完成UTP的初始化。于是Host会一直等,直到UFSUTP初始化完成后,回NOP IN UPIUHost,通知UFS UTP已经初始化完成,可以进行到下一步初始化,第四步才算结束。(这就好比两口子出门,老公问老婆,收拾好了没,可以走了吗?你懂的,一般女士出门前会有很多很多事情要做,虽然对老公来说完全不知道老婆都忙些啥,但是你必须在旁边等着。直到老婆把事情做完下懿旨可以起銮驾的时候,你俩这才能高高兴兴的一起出门。)

第五步:Host需要从UFS Device Descriptor读取的一些关键信息(比如DeviceClass, Subclass, Boot Enable, Boot LUs size等)来为后面的操作打基础。但对于boot的过程这步不是必须的,可作可不作。

UFS boot

 

第六步:最关键的一步,这也是为什么在第四步Host不离不弃等UFS一起完成初始化的原因。因为这一步UFS要给整个系统提供Bootloader开机代码。首先HostTEST UNIT READY命令到Boot LULU非常重要的概念,后面会讲)来询问是否Boot LU可以被访问。如果访问请求被允许,那么Host会继续发SCSI READ命令来请求读取Bootloader代码,UFS收到命令后就会从boot LU中把bootloader搬运到系统的RAM中,直到把所有的bootloader代码搬移完毕,才会开始最后一步。

第七步:bootloader搬移完成后,host会置标志位fDeviceInit1来通知UFS可以完成最后的初始化收尾工作,并开始轮询这个标志位。UFS完成所有的初始化工作之后,UFSreset fDeviceInit0,来回应hostUFS已经完成所有的初始化工作。至此,UFS已经准备好接受host端的任何读写命令。

 

很简单清晰的吧O(∩_∩)O~

 

不想错过望月闲人的后续精彩文章?长按或扫描下面二维码关注ssdfans就可以了!

 


 

 

公司招聘:

深圳大普微电子招聘SSD芯片设计,固件开发,机器学习相关人才!

上海飞斯招聘: 存储开发工程师RAIDUSBSATAAHCINVMEFTL、文件系统的开发及调试

记忆科技上海UFS FW内推机会UFS FW开发

ssdfans帮你内推

ssdfans帮你赚推荐费

分类目录 未分类.
扫一扫二维码或者微信搜索公众号ssdfans关注(添加朋友->点最下面的公众号->搜索ssdfans),可以经常看到SSD技术和产业的文章(SSD Fans只推送干货)。
ssdfans微信群介绍
技术讨论群 覆盖2000多位中国和世界华人圈SSD以及存储技术精英
固件、软件、测试群 固件、软件和测试技术讨论
异构计算群 讨论人工智能和GPU、FPGA、CPU异构计算
ASIC-FPGA群 芯片和FPGA硬件技术讨论群
闪存器件群 NAND、3D XPoint等固态存储介质技术讨论
企业级 企业级SSD、企业级存储
销售群 全国SSD供应商都在这里,砍砍价,会比某东便宜20%
工作求职群 存储行业换工作,发招聘,要关注各大公司招聘信息,赶快来
高管群 各大SSD相关存储公司高管和创始人、投资人

想加入这些群,请微信扫描下面二维码,或搜索nanoarchplus,加阿呆为微信好友,介绍你的昵称-单位-职务,注明群名,拉你进群。SSD业界需要什么帮助,也可以找阿呆聊。