i.MX53的启动模式
2012-12-24 09:06
162 查看
分类: Linux驱动开发2012-11-24
18:07 59人阅读 评论(0) 收藏 举报
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,串行下载模式,通过UART或USB将程序烧写到外部存储设备中。
在内部启动模式中,处理器内部固化的程序,执行硬件初始化,从选择的启动设备载入程序映像,验证后跳转至映像中执行。如果这期间发生任何错误,则跳转到串行下载模式。内部启动模式的启动流程受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加载程序映像。
唯一不明白的一点就是,BOOT_CFG[4],手册上说这个值为1或0都可以,但现实中必须为0才行,否则启动不了。有时间得多读读手册。
SD/MMC/eSD/eMMC可以以ESDHCV2-1,ESDHCV2-2,ESDHCV3-3,ESDHCV2-4标准启动,由BOOT_CFG3[5:4]的值决定。对于eMMC4.3和eMMC4.4只能使用ESDHCV3-3标准。对于我们开发板上的iNAND属于eMMC4.41,故需要将BOOT_CFG3[5:4]设置为10。
烧写工具有2种,一是ATK针对于老版本的,支持UART、USB下载;而新版本的工具是MFG,i.MX53只受新版本的支持。故只能使用MFG下载程序。苦于PCB上是MiniUSB,俺没有USB线啊。先不弄了吧。
18:07 59人阅读 评论(0) 收藏 举报
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,串行下载模式,通过UART或USB将程序烧写到外部存储设备中。
在内部启动模式中,处理器内部固化的程序,执行硬件初始化,从选择的启动设备载入程序映像,验证后跳转至映像中执行。如果这期间发生任何错误,则跳转到串行下载模式。内部启动模式的启动流程受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 |
SD/MMC/eSD/eMMC可以以ESDHCV2-1,ESDHCV2-2,ESDHCV3-3,ESDHCV2-4标准启动,由BOOT_CFG3[5:4]的值决定。对于eMMC4.3和eMMC4.4只能使用ESDHCV3-3标准。对于我们开发板上的iNAND属于eMMC4.41,故需要将BOOT_CFG3[5:4]设置为10。
烧写工具有2种,一是ATK针对于老版本的,支持UART、USB下载;而新版本的工具是MFG,i.MX53只受新版本的支持。故只能使用MFG下载程序。苦于PCB上是MiniUSB,俺没有USB线啊。先不弄了吧。
相关文章推荐
- i.MX53的启动模式
- android开发的activity启动模式
- Android教程 -07 Activity的任务栈和启动模式
- Windows XP八种启动模式详解
- activity启动模式
- weblogic开启debug模式启动时出现ERROR: Cannot load this JVM TI agent twice
- Activity的启动模式
- Activity启动模式&任务栈
- Activity的四种启动模式(LaunchMode)
- 2. whoami,常用包,调优selinux,七种启动模式,系统开机服务
- Android中Activity四种启动模式和taskAffinity属性详解
- 活动的启动模式
- Activity 的四种启动模式详解
- Android中Activity启动模式
- eclipse debug模式下启动非常慢的问题
- 解决安装ubuntu系统时,出现机器以UEFI模式启动了安装器的问题
- 在单用户模式下启动 SQL Server
- 【Android基础】Activity的启动模式(android:launchMode) .
- windows下kibana源码用dev模式启动,出现403 forbidden问题
- Activity生命周期以及启动模式对生命周期的影响