FSL Imx53 启动流程分析(1) --上电启动


分类: Android   172人阅读  评论(0)  收藏  举报

 

IMx53上电后,进入的是其内部的Memory,从iMx53RM.pdf  Chapter 2中可以查看到System Memory Map图如下:

 Memory Map

从片内地址的0x0000_00000x0000_FFFF64KBoot Rom的空间,其固化有Boot CodeIMx53在硬件复位后会强制Arm内核从Boot Rom启动,运行Boot Code

       Boot Code会根据BOOT_MODE[1:0]的寄存器值、eFUSEs状态和GPIO Setting来完成从不同的boot devices启动,Serial Downloader from UART or USBDevice Configuration DataDigital signature based High Assurance BootBoot Devices包括包括NOR FLASHNAND FLASHOneNAND FLASHSD/MMCParmllel ATA/Serial ATA HDDSerial ROM devices(EEPROM)

       BOOT_MODE[1:0]对应PIN脚为C18B20BOOT_MODE的值会在RESET复位的上升沿进行一次采样(仅此一次),并保存在BOOT_MODE寄存器中,之后不论PIN脚电平的变化,均不会改变BOOT_MODE寄存器的值。BOOT_MODE的定义如下图所示:

BOOT_MODE 定义

       BOOT_MODE[1:0]0b00时,选择Internal Boot模式启动,在此模式下,启动设备和参数的选择根据BT_FUSE_SELeFUSEsGPIO Setting来选择启动的设备和参数。当BT_FUSE_SEL1(fuse is blown)boot参数是由eFUSEs决定的,它是第一次烧录时选择的devices和参数的保存值;当BT_FUSE_SEL0(fuse is unblown),此时eFUSEs的部分值将被GPIO pin的状态来覆盖,从而选择不同的devices和参数进行启动。GPIO pin的定义及覆盖的eFUSEs值见下图:

 Gpio 覆盖 eFUSEs图

        

由于这些GPIO在产品开发时会被使用,飞思卡尔建议Internal Boot模式启动的参数由eFUSEs来决定,只是保留GPIO这种模式用作开发和测试时使用。

       BOOT_MODE[1:0]0b01,保留!

       BOOT_MODE[1:0]0b10,选择Boot From FUSES模式启动,在此模式下,GPIO pin的状态将被忽略,直接选择eFUSEs的设置来进行启动。当BT_FUSE_SEL0时,说明boot devices还没有被烧录,将直接跳到Serial Downloader模式。当BT_FUSE_SEL1时,将按照eFUSEs的设置启动系统。一般选择此模式启动,如果BT_FUSE_SEL1,但是eFUSEs设置对应的设备又不存在时,系统也会自动跳转到Serial Downloader模式,并在重新抄录成功后,改变eFUSEs的值,从而避免硬件boot devices的更改而芯片已经烧录过无法更新eFUSEs的问题。

       BOOT_MODE[1:0]0b11,选择Serial Downloader模式启动。通过USB或者UART进行系统程序下载。

 

eFUSEs的说明见下表:

eFUSEs 说明表

对应于devices及其参数的选择由BOOT_CFG来决定,在此不再赘述,仅列出通过ESDHC boot的参数如下:

ESDHC boot 参数

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值