u-boot(五) - 启动流程概述

一,XIP设备

  • 一上电,CPU必定从XIP设备得到第1条指令。

  • XIP设备是指一种可以直接在存储器中执行程序代码的设备,而不需要将代码复制到内存中。XIP的全称是eXecute In Place,即芯片内执行。这类设备包括片内的SRAM、NOR Flash、BootROM等。XIP设备的启动方式是系统上电之后CPU执行的第一条指令是直接在非易失性存储器中执行的,比如被存储在flash中的启动程序,便可以直接在flash中执行,而不需要拷贝到内存中运行。这种启动方式的特点是节省了从存储器到内存的复制过程,从而减少了启动时间和资源消耗。

  • CPU上电之后可以直接从XIP设备中取指令到CPU中运行,看上去像是在flash或者ram中执行。

  • Nand Flash是非XIP设备,CPU不能直接从nand flash中取指令运行。

 

二,BootROM的作用

号称支持Nand启动、支持SD卡启动、支持USB启动、支持UART启动的芯片,里面必定有BootROM。

BootROM:硬件初始化、把程序从非XIP设备复制进RAM,从RAM里执行。

如何支持多种启动方式(SD卡、EMMC、USB、UART启动):

  • 方法1:芯片有boot pin,决定使用哪个外设。bootrom根据引脚决定读取哪个设备的程序

  • 方法2:芯片有boot pin,决定多种外设的尝试顺序

            示例顺序1:SD、EMMC、USB

            示例顺序2:EMMC、SD、USB

            示例顺序3:USB

三,完整的u-boot复制进内存

BootROM被用来启动用户程序,用户程序可能有几百KB、几MB,但是片内的RAM只有几KB:

  • 方法1:

        BootROM从启动设备读取用户程序的前几KB到SRAM,运行它;

        这前几KB的代码负责:初始化DDR、把完