加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 07:09:58 所属栏目:百科 来源:网络整理
导读:IMx53 上电后,进入的是其内部的 Memory ,从 iMx53RM.pdf? Chapter 2 中可以查看到 System Memory Map 图如下: ? 从片内地址的 0x0000_0000 至 0x0000_FFFF 这 64K 是 Boot Rom 的空间,其固化有 Boot Code 。 IMx53 在硬件复位后会强制 Arm 内核从 Boot R

IMx53上电后,进入的是其内部的Memory,从iMx53RM.pdf? Chapter 2中可以查看到System 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[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在产品开发时会被使用,飞思卡尔建议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的说明见下表:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读