uboot启动第一阶段主要做什么

原创 2018年04月16日 19:54:04

这只是博主的个人见解,如有错误之处,还望指出,一起交流学习!!

uboot的start.s分析:


start.s:
globl _start(构建异常向量表)
set_l2cache_auxctrl_cycleL2(ache相关初始化)  关闭MMU
读启动信息,判断用那种方式启动
ldr sp, =0xd0036000(设置栈,0xd0036000 SRAM中用来放栈的) lowlevel_init()
lowlevel_init:
关看门狗,SRAM 初始化,开发板的供电锁存
判定当前代码执行的位置在SRAM中还是DDR中,主要是通过判断这俩个来确定还要不要对系统时钟和DDR进行初始化
system_clock_init初始化系统时钟 mem_ctrl_asm_init初始化DDR(动态内存) 由上面的判断来确定要不要执行
uart_asm_init 串口初始化,并且初始化完成发送一个 O
tzpc_init 可信任区域初始化
pop {pc} 返回前通过串口打印'K',串口打印OK表明lowlevel_init,初始化完成
开发板再次置锁
再次设置栈,这次是把栈设置到DDR里面去的
再次判断程序是在DDR还是SRAM中运行,是否进行uboot的relocate
uboot重定位(mmcsd_boot)
使能域访问,设置cp15相关的寄存器

设置TTB,TTB就是translation table base,转换表基地址

        _start_armboot,第一阶段结束,跳转到第二阶段


UBoot启动代码第一阶段流程

前段时间了看了UBoot的源码,放了一段时间之后忘得差不多了。现做一些注释,方便以后温习。 第一阶段代码主要位于start.S中,其流程如下: 1.设置中断向量表。 2.设置CPU为管理员模...
  • xautfengzi
  • xautfengzi
  • 2012年04月17日 16:45
  • 1494

uboot - 启动流程分析【第一阶段】

**进入uboot/cpu/s5pc11x/start.S: (1)构建异常向量表 (2)设置CPU工作在SVC模式,ARM状态,禁止FIQ IRQ。 **在SRAM设置栈并进入uboo...
  • KayChanGEEK
  • KayChanGEEK
  • 2015年11月25日 05:48
  • 992

uboot源码分析1-启动第一阶段

笔者发现以前做的时候,不是很详细,现在回头看很多东西需要重新查~从这篇开始尽量写的详细,以前的慢慢补好。 start.S引入 1.u-boot.lds中找到start.S入口 /* * (C) C...
  • czg13548930186
  • czg13548930186
  • 2016年12月06日 11:50
  • 764

uboot启动第一阶段详细分析

声明此贴为转载 Uboot中start.S源码的指令级的详尽解析 版本:v1.9 Crifan Li 摘要 本文对Uboot中的Start.S的源码的几乎每一行,都进行了详细的解析...
  • tianle100601113
  • tianle100601113
  • 2013年10月31日 09:07
  • 1821

x210---uboot第一阶段

start.S: 1---异常向量表的构建; 2---nand启动(inand和SD)16字节校验头占位,详见Application note; 3---设置CPU进入SVC模式(可省略...
  • qq_24696949
  • qq_24696949
  • 2016年04月15日 00:41
  • 432

回味经典——uboot1.1.6 之 第一阶段

最近打算移植一个比较新的 uboot 到开发板,回想起来上一次移植 uboot1.1.6 已经差不多是一年前了,手头保留了一些当时移植分析时的笔记,但是没有归纳梳理,在移植新版 uboot 之前,再来...
  • lizuobin2
  • lizuobin2
  • 2016年07月28日 20:52
  • 1934

uboot源码分析-启动第一阶段

注:基于九鼎x210 uboot 在SourceInsight软件下 一、start.S引入 1、u-boot.lds中找到start.S入口 (1)在C语言中整个项目的入口就是main函数(这...
  • qr_ljj
  • qr_ljj
  • 2017年02月28日 15:18
  • 182

U-Boot启动过程完全分析(uboot启动2个阶段的分析)

1.1       U-Boot工作过程   U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下:        (1)第一阶段的功能 Ø  硬件设备初始化 Ø  加载U-Boot第二阶段...
  • hanchaoman
  • hanchaoman
  • 2013年07月09日 16:14
  • 4228

001.1 - uboot启动 [ 第一阶段 ]

用了三周时间、终于把Uboot启动内核的过程看了一遍、现在把自己的总结贴出来、如果有不对的地方、希望指出~~...
  • u010759127
  • u010759127
  • 2016年09月11日 17:32
  • 73

uboot——启动第一阶段分析

一、程序的开始   在C语言中,main函数是整个程序的入口,这是规定。在uboot中因为有汇编参与,因此不能直接找main.c,整个程序的入口取决于中ENTRY声明的地方 ENTRY(_start...
  • achesong
  • achesong
  • 2017年02月05日 17:57
  • 146
收藏助手
不良信息举报
您举报文章:uboot启动第一阶段主要做什么
举报原因:
原因补充:

(最多只允许输入30个字)