8:操作模式1-boot mode
1.前言
eMMC总线操作包含:
- boot mode
- device identification mode
- interrupt mode
- data transfer mode
本文主要描述boot mode。
2. boot operation mode
2.1 boot mode状态机
图 eMMC boot mode state
- pre-idle state
. 三种方式可以进入pre-idle状态:(1)power on后;(2)GO_PRE_IDLE_STATE命令(CMD0+0xf0f0f0f0参数);(3)hw reset by host
. GO_PRE_IDLE_STATE或hw reset assert后,device端output bus将呈现高阻态,device的初始地址被设置为0x0001,bus会有默认的驱动能力
. device可以检测到rst_n产生一段脉冲信号,通过上升沿来确定device是否发生了reset操作
. 有两个boot分区,每个分区大小最小为128KB,boot分区与user area是分离的,单独编址
. 可以使用CMD6来设置BOOT_PARTITION_ENABLE=1从boot area启动(否则从user area启动),进入到pre-boot state,如果BOOT_PARTITION_ENABLE=0或不支持boot mode(4.2以前的版本)则直接进入到idle state
- pre-boot state
. 上电或reset后且发送第一个命令CMD1之前,CMD LINE要保持至少74个周期的低电平,device识别到,进入boot state执行初始化,并准备boot data
若是CMD lines没有保持74个时钟周期的LOW,又若是host在初始话过程之前发送任意的正常eMMC命令的话,slave应该没有任何反应且会退出boot mode到Idle State状态即card identification mode
注:CMD0+0xfffffffa执行alternative boot初始化是针对4.4的规范,CMD LINE不是保持74个周期的低电平,而是通过发送CMD0,并带有参数0XFFFFFFFA
- boot state
主要进行boot数据的读取操作:
. host要读取的分区以及data size可以通过extended csd来设置
. 通过保持CMD line低电平或发送CMD0+0XFFFFFFFA来读取boot数据
. 在读取数据期间,cmd line必须保持低电平
. host必须采用push-pull模式,直到boot mode结束
. host可以采用single data rate(SDR)或dual data rate(DDR)
. HS200 & HS400在boot mode不支持
. host可以设置是否从device接收boot acknowledge
. 通过拉高CMD line则会终止boot mode进入idle state,从此离开boot mode 进入到card identification mode
注1:在SDR模式中,数据由设备发出的时钟控制而host则在时钟上升沿取样。而且每一个data line都有一个单独的CRC内容。
注2:在DDR模式中,数据则会在时钟的上升和下降沿同时取样,而且每一个data line有两个CRC内容。在这个模式下,block长度总是为512 bytes,而且数据会以4bit或者8bit模式交叉出现。奇数bytes(1,3,5……511)会被host在时钟上升沿取样,而偶数bytes(2,4,6……512)则被host在时钟的下降沿取样。设备会附加两个CRC16到每个有效地data line上(若是4bit数据模式,则有4个line是无效的),一个对应上升沿的奇数bytes,一个对应下降沿的偶数bytes。
注3:所有DAT lines的时序都应该按照DDR时序来。开始bit,结束bit 还有boot acknowledge只在时钟的上升沿有效。如果这些数据出现在下降沿是没用的。
2.2 boot mode时序
图 boot mode时序
进入boot state后:
. 若是boot acknowledge被激活,在CMD信号变LOW之后的50ms之内,slave必须发送acknowledge内容"010"到host。若是boot acknowledge没被激活,slave不会 发送;
.在CMD line变低的1S内,device 必须发出第一个数据给host;
.host必须保持CMD信号为LOW来读取所有的boot数据, host必须使用push-pull模式
.当boot数据读取操作完成,boot操作将会终止;
.通过拉高CMD line则会终止boot mode进入idle state,从此进入card identification mode
.当拉高CMD line后需要经过至少56个clock,才可以发送CMD1
注1:host选择从哪个partition读取boot数据是可以被提前设置的(EXT_CSD byte[179], bits[5:3]). Master可以读取的boot数据大小也是可以计算的(128KB x BYTE_SIZE_MULT (EXT_CSD byte[226]))
注2:host可以通过设置EXT_CSD byte[179],bit 6来选择是否从slave接受acknowledge,若是选择接受host可以通过acknowledge确认slave是在boot模式中运行。
注3:在数据传输阶段若是host把CMD拉高,slave必须在Nst个时钟周期内中终止数据或者acknowledge内容的传输。Nst值为一个数据周期和一个结束bit周期。若是在block传输过程中,master终止了boot模式,则slave必须在Nst个时钟周期内释放data lines。
3.参考文档
[1]http://www.jedec.org/sites/default/files/docs/JESD84-B51.pdf
[2]eMMC启动过程 http://blog.sina.com.cn/s/blog_6cb8cdbd0102vno5.html
8:操作模式1-boot mode相关推荐
- eMMC基础技术8:操作模式1-boot mode
1.前言 eMMC总线操作包含: boot mode device identification mode interrupt mode data transfer mode 本文主要描述boot m ...
- linux cpu运行模式,Linux上的32位,64位CPU操作模式
lscpu告诉您您的架构是i686(Intel 32位CPU),并且您的CPU支持32位和64位操作模式.您将无法安装x64构建的应用程序,因为它们是专门为x64体系结构构建的. 您的特定CPU可以处 ...
- eMMC的五种操作模式
eMMC的五种操作模式:开机模式.ID辨识模式.中断模式.数据传输模式.无效模式. 开机模式 Boot mode Power ON后,卡若收到CMD0(GO_Idle_State)并带argument ...
- android 中文件操作模式
可以调用content.openOutputStram(filename,OPerator_model)来生产一个文件 其生成的文件操作模式有 Context.Module_private,Conte ...
- 内核:多内核操作模式
多内核操作模式: 1. <<QNX-–-微内核结构的实时操作系统.pdf>> 2. 对称多处理"(Symmetrical Multi-Processing) SM ...
- Android心得4.1--文件的保存与读取及文件的操作模式详解.doc
一.保存到手机内存 1. 很多时候我们的软件需要对处理后的数据进行存储或再次访问.Android为数据存储提供了多种方式,分别有如下几种: l 文件(采用IO数据流的方式) l Sh ...
- android sharedpre,Android SharedPreferences四种操作模式使用详解_Android_脚本之家
Android SharedPreferences详解 获取SharedPreferences的两种方式: 1 调用Context对象的getSharedPreferences()方法 2 调用Ac ...
- 密码学常用的算法填充模式_密码学的操作模式
密码学常用的算法填充模式 Modes of operation of a block cipher are procedural rules for a generic block cipher. T ...
- cortex-m3 操作模式 寄存器组 异常类型 堆栈 中断
cortex-m3 操作模式 寄存器组 异常类型 堆栈 中断 参考 操作模式 处理器的操作模式:为了区别正在执行代码的类型.复位后,处理器进入线程模式.特权级. 处理者模式(handler mode) ...
最新文章
- ext form验证tip_FormValidator表单验证
- 工作随笔之nginx 应用场景
- Visual C# 3.0 新特性概览
- jQuery框架风云榜案例
- linux运维必备,100道常见面试题
- 数据结构课程设计---------用栈来实现表达式求值
- 基于kb的问答系统_1KB以下基于表的Q学习
- 国产数据库占央采九成份额
- mysql自带的卸数工具_数据库卸数必备工具下载-数据库数据导出工具(DBexport)下载v1.3官方版-西西软件下载...
- 在java中使用ffmpeg将amr格式的语音转为mp3格式
- linux服务端开发vs2012,Vs2012在Linux开发中的应用(1):开发环境
- SAP License:ERP厂商比较
- 成员方法的使用及其调用
- hutool工具类的使用,国内自己封装的工具包,挺好用的
- 【病毒查杀】CAD杀毒方法
- 亚马逊账号关联申诉管用吗?账号能要回来吗
- 【蓝桥杯省赛】冲刺练习题【数学公式】倒计时【05】天(准考证组委会已下发,请查询)
- CSS - 移动Web网页开发(2)- 必掌握知识点 - #博学谷IT学习技术支持#
- 解决Spring5源码编译各种Gradle报错问题
- 第七课:树莓派WiringPi库