新版本uboot启动流程分析

参考页面

友善之臂文章

UBOOT启动过程介绍,非常有用!

启动过程分析

第一阶段

初始化RAM,CPU阶段,准备初始化板

操作时钟,设置CPU模式,设置中断,关看门狗,

底层初始化CPU,初始化RAM,初始化C环境,设置GD全局数据结构

执行board_init_f

第二阶段

前期初始化板阶段,此时已经可以使用串口,显示板子信息,然后重定位代码

board_init_f,其实就是在RAM中设置各种内存,然后重定位跳转过去,好进行下一步继续初始化

执行init_sequence_f 函数数组里面的函数

设置堆栈,BSS等C环境

最后一个步骤是---重定位代码jump_to_copy

在调用board_init_f()完成板卡与全局结构体变量 gd 的初始化后将其拷贝到在代码段下重新分配的全局结构体中。接下来进行sp的重新设置,将r9指向重新分配的全局变量gd,然后进行代码的重定位。

第三阶段

板子第二初始化阶段,此时C的环境已经建立,已经重定位后在RAM中运行

board_init_r

开始初始化各种外设

init_sequence_r

最后一个步骤是main_loop()

主循环

第四阶段

主循环

开始进行CLI等待和命令处理了。

原文地址:https://www.cnblogs.com/lizhensheng/p/11161415.html

时间: 2024-10-09 05:55:01

新版本uboot启动流程分析的相关文章

u-boot启动流程分析(2)_板级(board)部分

转自:http://www.wowotech.net/u-boot/boot_flow_2.html 目录: 1. 前言 2. Generic Board 3. _main 4. global data介绍以及背后的思考 5. 前置的板级初始化操作 6. u-boot的relocation 7. 后置的板级初始化操作 1. 前言 书接上文(u-boot启动流程分析(1)_平台相关部分),本文介绍u-boot启动流程中和具体版型(board)有关的部分,也即board_init_f/board_i

Uboot启动流程分析(四)

1.前言 在前面的文章Uboot启动流程分析(三)中,链接如下: https://www.cnblogs.com/Cqlismy/p/12006287.html 已经对init_sequence_f前半部分函数进行了简单分析,前半部分主要是对调试串口终端进行了初始化,以及输出了一些必要的字符串,接下来,本篇文章将对init_sequence_f后半部分函数进行分析,后半部分主要是对DRAM的内存进行分配,并对gd的相关结构体成员进行初始化,在init_sequence_f函数初始化列表中,已经执

Uboot启动流程分析(五)

1.前言 在前面的文章Uboot启动流程分析(五),链接如下: https://www.cnblogs.com/Cqlismy/p/12147411.html 已经对board_init_f() 函数作出了简单的分析,该函数对一些早期的外设进行了初始化,例如调试串口,并填充了gd_t结构体中的成员变量,最主要的是对整个DRAM的内存进行了分配,以便uboot的重定位,接下来,先回顾一下_main函数的大概流程,如下: _main | board_init_f_alloc_reserve-->re

u-boot启动流程分析(1)_平台相关部分

转自:http://www.wowotech.net/u-boot/boot_flow_1.html 1. 前言 本文将结合u-boot的“board—>machine—>arch—>cpu”框架,介绍u-boot中平台相关部分的启动流程.并通过对启动流程的简单分析,掌握u-boot移植的基本方法. 注1:本文所使用的u-boot版本,是2016/4/23从u-boot官网(git://git.denx.de/u-boot.git)导入的一个快照,具体可参考“https://github

am335x uboot启动流程分析

基本指令含义 .globl _start .globl指示告诉汇编器,_start这个符号要被链接器用到,所以要在目标文件的符号表中标记它是一个全局符号 b,bl b是不带返回的跳转  bl带返回的跳转 .word 插入一个32-bit的数据队列.(与armasm中的DCD功能相同) 芯片到uboot启动流程 :ROM → MLO(SPL)→ uboot.img 启动脚本:/u-boot2011.09/arch/arm/cpu/armv7/omap-common/u-boot_spl.lds M

Linux嵌入式驱动学习之路⑤u-boot启动流程分析

这里说的u-boot启动流程,值得是从上电开机执行u-boot,到u-boot,到u-boot加载操作系统的过程.这一过程可以分为两个过程,各个阶段的功能如下. 第一阶段的功能: 硬件设备初始化. 加载u-boot第二阶段代码到RAM空间. 设置好栈. 跳转到第二阶段代码入口. 第二阶段的功能: 初始化本阶段使用的硬件设备. 检查系统内存映射. 将内核从Flash读取到RAM中. 为内核设置启动参数. 调用内核. u-boot启动第一阶段流程 根据连接器脚本 board/samsung/$(BO

U-BOOT启动流程分析--start_armboot函数(二)

第二阶段的功能: 初始化本阶段所需的硬件设备(主要设置系统时钟.初始化串口.Flash.网卡.USB) 检测系统内存映射(memory map) 将内核映像和根文件系统映象从Flash上读到RAM空间中 为内核设置启动参数 调用内核 从start_armboot开始,程序流程如图 原文地址:https://www.cnblogs.com/y4247464/p/10597504.html

uboot boot流程分析

下面这篇文章分析得比较好: 2014.4新版uboot启动流程分析 http://blog.csdn.net/skyflying2012/article/details/25804209 感谢作者分享

一,移植uboot,分析uboot启动流程

文档时间:2018-08-08 交叉编译器:arm-linux-gcc-4.3.2 Ubuntu版本:16.04 uboot版本:2013.10 uboot启动流程简要如下: a,设置CPU为管理模式 b,关闭看门狗 c,关闭中断 d,设置时钟频率 e,进入lowlevel_init.S,初始化各个bank f,进入board_init_f()函数 h,代码重定位,清除bss i,跳转到board_init_r(),进入第二阶段 1,进入https://www.amazon.com/cloudd