博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
i.MX53的启动模式
阅读量:4058 次
发布时间:2019-05-25

本文共 1675 字,大约阅读时间需要 5 分钟。

2012/11/24

今天上午去西直门跟李哥碰头了,拿到了板子。同时看到了他那5岁可爱的儿子,很可爱。我也很喜欢小孩,唉。说来就伤感啊。苦逼的北漂一族啊。

板子结构采用了母板+底板的形式,一看这样式就觉得很操蛋。唉,上映辰汉电子。要是让我Layout的话,非给他整到一起。有点自夸了啊,其实我水平也一般,只不过会使用CadenceAllegro而已。

 

好了,总结一下,i.MX53的启动吧。我是参照了以下的文档:

1、《i.MX53 Multimedia Applications Processor Reference Manual.pdf ,Document Number: iMX53RM

2、《mx53_mdk1_cpu_sch_v0_1.pdf

3、《MX53_MDK1_MOTHER_BOARD_V1.0.pdf

 

i.MX53参考手册的第七章主要讲解了系统启动的一些知识点。处理器内嵌的ROM程序根据内部寄存器BOOT_MODE[1:0]和各种eFUSEs决定启动方式。而eFUSEs的值又会被GPIO引脚的值所改变。

根据BOOT_MODE[1:0]的值,会有4种不同的启动方式,在这次开发中,只会使用2种,如下:

BOOT_MODE[1:0]=00,内部启动,处理器内部ROM固化的代码再根据外部引脚状态决定从哪个外设启动,NAND/SD

BOOT_MODE[1:0]=11,串行下载模式,通过UARTUSB将程序烧写到外部存储设备中。

 

在内部启动模式中,处理器内部固化的程序,执行硬件初始化,从选择的启动设备载入程序映像,验证后跳转至映像中执行。如果这期间发生任何错误,则跳转到串行下载模式。内部启动模式的启动流程受eFUSE设置的影响,而eFUSE又受GPIO引脚的影响。

如果BT_FUSE_SEL=1,则所有的启动选项均受eFUSE控制。

如果BT_FUSE_SEL=0,则可以使用GPIO引脚的状态改变eFUSE

根据手册可知,BT_FUSE_SEL该在出厂时由厂商将值置为0了。

根据原理图可知,BOOT_MODE[1:0]由拨码开关的8控制,当8打到ON的位置,BOOT_MODE[1:0]=11,当打到OFF的位置,BOOT_MODE[1:0]=00,通过电阻下拉到地。

 

开发板板载NAND芯片为iNAND,查手册获知其符合eMMC规范,故可归为MMC/eMMC设备,故应该从此启动,从数据手册中可知,当BOOT_CFG1[7:4]=011x时,处理器即从内部启动后,从MMC/eMMC加载程序映像。

拨码开关

 
 
 

定义

 
 
 

描述

 
 
 

功能

 
 
 

iNAND下载

 
 
 

iNAND启动

 
 
 

1

 
 
 

BOOT_CFG3[3]

 
 
 

 

 
 
 

 

 
 
 

0

 
 
 

0

 
 
 

2

 
 
 

BOOT_CFG3[4]

 
 
 

 

 
 
 

 

 
 
 

0

 
 
 

0

 
 
 

3

 
 
 

BOOT_CFG3[5]

 
 
 

 

 
 
 

 

 
 
 

1

 
 
 

1

 
 
 

4

 
 
 

BOOT_CFG2[5]

 
 
 

 

 
 
 

 

 
 
 

0

 
 
 

0

 
 
 

5

 
 
 

BOOT_CFG1[4]

 
 
 

[7:4]=011x,boot from MMC/eMMC

 

而电路板BOOT_CFG[7]直接通过电阻

 

接地了

 
 
 

0

 
 
 

0

 
 
 

6

 
 
 

BOOT_CFG1[5]

 
 
 

1

 
 
 

1

 
 
 

7

 
 
 

BOOT_CFG1[6]

 
 
 

1

 
 
 

1

 
 
 

8

 
 
 

BOOT_MODE[1:0]

 
 
 

内部模式或下载模式

 
 
 

00:内部模式

 

11:下载模式

 
 
 

1

 
 
 

0

 

唯一不明白的一点就是,BOOT_CFG[4],手册上说这个值为10都可以,但现实中必须为0才行,否则启动不了。有时间得多读读手册。

SD/MMC/eSD/eMMC可以以ESDHCV2-1ESDHCV2-2ESDHCV3-3ESDHCV2-4标准启动,由BOOT_CFG3[5:4]的值决定。对于eMMC4.3eMMC4.4只能使用ESDHCV3-3标准。对于我们开发板上的iNAND属于eMMC4.41,故需要将BOOT_CFG3[5:4]设置为10

 

 

烧写工具有2种,一是ATK针对于老版本的,支持UARTUSB下载;而新版本的工具是MFGi.MX53只受新版本的支持。故只能使用MFG下载程序。苦于PCB上是MiniUSB,俺没有USB线啊。先不弄了吧。

 

 

 

 

转载地址:http://wjzji.baihongyu.com/

你可能感兴趣的文章
MongoDB基本使用
查看>>
mongodb管理与安全认证
查看>>
nodejs内存控制
查看>>
nodejs Stream使用中的陷阱
查看>>
MongoDB 数据文件备份与恢复
查看>>
数据库索引介绍及使用
查看>>
MongoDB数据库插入、更新和删除操作详解
查看>>
MongoDB文档(Document)全局唯一ID的设计思路
查看>>
mongoDB简介
查看>>
Redis持久化存储(AOF与RDB两种模式)
查看>>
memcached工作原理与优化建议
查看>>
Redis与Memcached的区别
查看>>
redis sharding方案
查看>>
程序员最核心的竞争力是什么?
查看>>
Node.js机制及原理理解初步
查看>>
linux CPU个数查看
查看>>
分布式应用开发相关的面试题收集
查看>>
简单理解Socket及TCP/IP、Http、Socket的区别
查看>>
利用HTTP Cache来优化网站
查看>>
利用负载均衡优化和加速HTTP应用
查看>>