2024年6月11日发(作者:)

T3-Uboot开发笔记及SylixOS启动

1.全志T3Uboot概述

阶段:

全志SoC有一个非常具体的启动过程。首先,它执行一个微小的片上Boot

ROM(BROM),然后检查按钮的FEL模式,然后开始检查各种存储选项的有效的引

导签名在正确的位置。

上电后,SoC开始从BROM所在的地址0xffff0000获取指令。BROM分为两部

分:第一部分(0xffff0000)是FEL模式,第二部分是(位于0xffff4000)。

FEL:FEL是包含在Allwinner设备上的BootROM中的低级子例程。它用于使用USB

的设备的初始编程和恢复。

一般来说,BROM首先检查SD卡(SD/MMC)启动可用性,其次再检查NandFlash

是否可以启动,然后再检查SPINorFlash的启动可用性,如果都无法启动则进

入FEL模式。当程序初始化启动介质成功后,就从固定位置读入bootloader

的Boot0到SRAM,然后跳到SRAM执行。

ader阶段

Bootloader是全志平台上从小系统一直沿用下来的内核加载器,在这里的

主要职责是加载U-Boot到DRAM。Bootloader分为两个部分,分别是Boot0和

Boot1。Boot0:初始化DRAM,加载Boot1到DRAM;Boot1:调频,加载U-Boot

到DRAM;

为什么Bootloader要划分成Boot0和Boot1两个部分?

因为在Bootloader阶段,使用的SRAM大小是32KB,除去C运行环境需要的

栈空间,可用的空间在24KB左右,这点不足以载入整个Bootloader。因此,需

要将Bootloader划分成两个部分,尽可能将繁重的任务放在Boot1执行,这个

情况类似于Linux系统中断执行环境的上半部和下半部。

0执行过程

1的执行过程

Boot1会进行一次系统调频,将CPU的频率调到用户在sys_

target段配置的boot_clock。

1.3.u-boot阶段

概括地说,U-Boot引导内核分为两个阶段,第一阶段负责重定位U-Boot

到最高地址,第二阶段才是真正的引导内核。

1.第一阶段