搜档网
当前位置:搜档网 › A20启动过程

A20启动过程

注:由于全志A10和A20在加载Bootloader过程方面基本一致,下面仅以A20叙述,但同时也适用于A10。
另外在不需要区分Cubieboard1和Cubieboard2的情况下,统称为Cubieboard;
另现在市面上一般所说的SD卡即为Micro SD Card,也就是TF卡,为区别于一般传统的SD卡,本文一般使用TF卡描述,但同于平时所说的SD卡。
A20的启动过程大概可分为5步:Boot ROM,SPL,Uboot,Kernel,RootFileSystem。
本文关注的是镜像的加载和启动过程,分析Boot ROM→SPL→Uboot→Kernel的启动流程。
系统上电后,ARM处理器在复位时从地址0x000000开始执行指令,把板上ROM或Flash映射到这一地址。
A20将启动设备选择程序固化在CPU内部的一个32KB ROM中,默认的启动时序为SD Card0,NAND FLASH,SD Card2,SPI NOR FLASH。
另外通过外部的一个启动选择引脚可以使其跳转到USB启动模式。通常情况下,启动选择引脚状态连接50K内部上拉电阻。
在上电后,执行存储在Boot ROM中的启动代码,将自动检测启动选择引脚状态。只有当该引脚状态为低电平时才选择USB启动模式。
在选择启动设备后将加载并执行bootloader程序,CPU通过拷贝或映射bootloader程序到内存,然后执行bootloader的第一条指令。
通过阅读官方的uboot烧写方法,发现A20通过uboot引导系统之前先载入了uboot SPL。
什么是SPL?通过查阅uboot的官网资料得知,SPL是一个迷你版的uboot,全拼为Second Program Loader。
适用于SOC的内部SRAM<64K的情况,用它来加载完整的uboot程序到SDRAM,并通过完整uboot加载内核来启动系统。
其中SRAM一般指CPU内部的L1/L2或外部的L2高速缓存,这里即为Boot ROM,而SDRAM一般指内存。
SPL程序流程如下:
初始化ARM处理器
初始化串口控制台
配置时钟和最基础的分频
初始化SDRAM
配置引脚多路复用功能
启动设备初始化(即上面选择的启动设备)
加载完整的uboot程序并转交控制权

相关主题