1.启动方式
During reset, the chip checks the power gating controller status register.
During boot, the core’s behavior is defined by the boot mode pin settings,When waking up from the low-power boot mode, the core skips
the clock settings. The boot ROM checks that the PERSISTENT_ENTRY0 。如果PERSISTENT_ENTRY0 为有效地址,则直接执行该地址,否则执行系统复位。
BOOT_MODE是在上电的时候采集 BOOT_MODE0 和BOOT_MODE1的值,采集后这2个引脚就不会影响BOOT_MODE的值了。
00模式在我们的开发过程中很少用到。在这种模式下,GPIO的值被忽略。Boot ROM会根据eFUSE的值来选择启动设备、设置启动设备。但是,对于刚出厂的芯片eFUSE值可能是错乱的、不适合你的设备的,怎么办?eFUSE中有一个值BT_FUSE_SEL,它的出厂值是0,表示eFUSE未被烧写。boot ROM程序发现BT_FUSE_SEL为0时,它会通过USB或串口来下载程序;发现BT_FUSE_SEL为1时,才会根据eFUSE的值选择启动设备,读出、运行该设备上的程序。
01模式,boot ROM程序通过USB或串口下载、运行程序,这个模式可以用来烧写EMMC等设备。当产品在出厂时通过这个模式下载、烧写出厂程序的。
10模式,称之为内部模式,简单地说就是从SD卡、EMMC等设备启动程序。
那怎么选择从sd卡 还是emmc 还是nand启动呢?imx6ull使用GPIO或者efuse来选择,同时可以设置启动设备的参数,如nandflash 的页大小,从哪个esdhc 接口启动emmc。具体如下图所示,作为软件人员只需要知道产品怎么启动即可。