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

1 前言

1.1 声明

本文依据UFS3.1 JEDEC协议及个人工作经验整理而成,如有错误请留言。
文章为个人辛苦整理,付费内容,禁止私自转载。
文章所在专栏:《黑猫带你学:UFS协议详解》

1.2 参考链接

由于《蛋蛋读UFS之六:UFS设备初始化和启动》一文对UFS初始化过程讲解清晰明了,因此本文部分内容来自该文,侵删。
原文链接:http://www.ssdfans.com/?p=92738

2 引导配置

很多平台会将系统引导代码放置在UFS设备中,当UFS上电初始化过程中,就要将系统启动代码读出来用来启动整个平台。

UFS中BOOT LU A和BOOT LU B可以用来存放这个系统引导代码,但是在启动过程中,只有一个BOOT LU被使用。为了进行读操作,在启动过程中的逻辑单元被映射到BOOT well known logical unit(W-LUN = 30h)。这样,当主机更新引导代码时,当被使用的那个逻辑单元从A交换到B或反之亦然时,会保留一个固定逻辑单元号。

设备描述符和单元描述符中一些可配置的域决定着引导过程中设备的行为。

如果设备描述符中的bBootEnable = 01h时,UFS的引导特征就被使能了。

逻辑单元描述符中dNumAllocUnits域用来配置逻辑单元的大小,bBootLunID

你可能感兴趣的:(黑猫带你学:UFS协议详解,ufs,嵌入式硬件,手机,嵌入式,存储)