嵌入式启动顺序 - uboot之前

//本文章基于HI35XX soc 与 U-boot-2010.06

从上电到加载uboot第一阶段

  • 关于为什么不写从上电到加载bootloader,因为uboot是一种bootloader,在uboot运行之前,CPU运行的程序也是一种bootloader

  • uboot启动后做的工作请参考嵌入式启动顺序 - uboot

uboot 之前的启动顺序 是 1 2 或者 1 3 .

具体有多少种启动顺序,这个是soc相关的,也就是说一个soc制造出来,就已经确定了有几种启动顺序.
具体可以看soc 的芯片手册
这里只是概述出了作者见过的各种启动顺序的集合
1/上电
执行块:索引代码
存放位置:未知
运行位置:未知
上序:无
功能:检查硬件的config,去判断从哪里启动,并执行对应的操作
下序:多种可能.可能1:bootrom中的bootimage.可能2:类似sram接口的Norflash中的uboot第一阶段.
其他1:我也不知道他是什么,有人说这一块是硬件电路.但是我不确定.
其他2:cpu需要从sram或者norflash中取指.这个接口必须要初始化或者这个接口根本不需要初始化
2/ 从bootrom启动
执行块:bootImage
存放位置:bootrom(soc中的irom)
运行位置:sram(也叫iram,也叫L2 Cache)
上序:索引代码
功能:
	1.初始化串口
    2.初始化spi接口
    2.检测上位机是否发送东西
      	2.1.如果没有,则从norflash(spi接口)上读取uboot第一阶段到sram.
        2.2.如果有,则从串口读取数据到sram,并尝试启动从串口来的数据(程序)//该路径不会执行到uboot第一阶段
其他:
	1.cpu与sram的接口是不需要初始化的.
    2.cpu与irom的接口也是不需要初始化的.
  	2.所以cpu可以直接读irom里面的数据到sram.
3/ 从NorFlash(类sram接口)启动
执行块:uboot第一阶段
存放位置 :NorFlash 0x00000000处
运行位置 :NorFlash
上序 :索引代码
功能 : 
	uboot第一阶段的功能
其他 :
	1.cpu与sram的接口是不需要初始化的.
    2.cpu与NorFlash(类sram)的接口也是不需要初始化的.
  	2.所以cpu可以直接读NorFlash里面的数据到sram.

综上,如果说从NorFlash启动的话,那么NorFlash与SOC(cpu)的接口一定是类SRAM接口.

存在一种特殊情况,芯片手册上写着支持NorFlash启动,且NorFlash是SPI接口.其实是从bootrom启动的.

硬件上的config

当BOOTROM_SEL=1,芯片从片内ROM 启动,将会启动串口通信机制,通过串口与PC 端相应的软件建立通
信
	如果在规定时间内,通信成功,则开始下载boot程序.
	如果与串口通信超时,置BOOTROM_SEL为0,并判断BOOT_SEL1(与芯片外部管脚NF_ALE 复用)和BOOT_SEL0(与芯片外部管脚NF_CLE 复用)的上下拉电平.
 
当BOOTROM_SEL=0、BOOT_SEL1=1、BOOT_SEL0=0 时,NAND Flash 启动。
当BOOTROM_SEL=0、BOOT_SEL1=0、BOOT_SEL0=0 时,SPI Flash 启动。
当BOOTROM_SEL=0、BOOT_SEL1=0、BOOT_SEL0=1 时,DDR 启动。
      
一般情况下,一开始在硬件上都是置BOOTROM_SEL为1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值