1.start.S

  初始化 icache

  看门狗

  时钟

  DDR

  设置栈

  初始化串口,并打印 OK

  以上完成 lowlevel_init

  -----------------------------------------

  重定位

  开启MMU

  清BSS

  远跳转到 _start_armboot

2.start_armboot

  |

  |------------init_sequence

  |      |---------------------cpu_init 空

  |      |---------------------board_init  初始化网卡设置  arch_number boot_params 基地址

  |      |---------------------interrupt_init 初始化定时器

  |      |---------------------env_init 获得合法的环境变量的基地址

  |      |-------------------- init_baudrate 取得波特率值

  |      |--------------------- serial_init  初始化串口

  |      |--------------------- console_init_f  控制台的首次初始化

  |      |---------------------display_banner 打印uboot version 等信息

  |      |---------------------printcpuinfo 打印cpu时钟频率

  |      |---------------------checkboard 打印板子版本信息

  |      |---------------------init_func_i2c 初始化i2c

  |      |---------------------- dram_init 记录DDR地址信息

  |      |--------------------- display_dram_config 打印DDR地址信息

  |

  |------------------------------ 初始化堆空间

  |------------------------------ 根据soc不同,初始化flash

  |------------------------------ 开启异常中断处理

  |------------------------------  main_loop

环境变量:如果没有合法的环境变量,uboot会使用程序内嵌的默认环境变量。

需要注意的是 arch_number, uboot的 arch_number将作为参数传给kernel,kernel有自己的arch_number,两者必须一样,kernel才能继续执行。

重要的还有内存地址,uboot初始化DDR设置的地址表,必须和kernel 使用的地址表相同

可以看出 start.S 阶段是初始化Soc内部,start_armboot 是初始化Soc外部并准备启动参数。

uboot分析——初始化的更多相关文章

  1. u-boot分析(九)----nand flash初始化|nand flash读写分析

    u-boot分析(九) 上篇博文我们按照210的启动流程,分析到了初始化串口,由于接下来的取消存储保护不是很重要,所以我们今天按照u-boot的启动流程对nand flash初始化进行分析. 今天我们 ...

  2. u-boot分析(八)----串口初始化

    u-boot分析(八) 上篇博文我们按照210的启动流程,分析到了内存初始化,今天我们继续按照u-boot的启动流程对串口的初始化进行分析. 今天我们会用到的文档: 1.        2440芯片手 ...

  3. u-boot分析(七)----内存初始化

    u-boot分析(七) 上篇博文我们按照210的启动流程,分析到了时钟初始化,今天我们继续按照u-boot的启动流程对内存的初始化进行分析. 今天我们会用到的文档: 1.        2440芯片手 ...

  4. u-boot分析(六)----时钟初始化

    u-boot分析(六) 上篇博文我们按照210的启动流程,分析到了关闭看门狗,今天我们继续按照u-boot的启动流程进行分析,今天我们会主要分析时钟的初始化. 今天我们会用到的文档: 1.       ...

  5. Linux之uboot分析与移植20160601

    说一下uboot分析与移植: 1.下载.建立source insight工程.编译.烧写.如果无运行分析原因 tar xjf u-boot-2012.04.01.tar.bz2 cd u-boot-2 ...

  6. u-boot分析(十一)----MMU简单分析|u-boot分析大结局|学习规划

    u-boot分析(十一) 通过前面十篇博文,我们已经完成了对BL1阶段的分析,通过这些分析相信我们对u-boot已经有了一个比较深入的认识,在BL2阶段大部分是对外设的初始化,并且有的我们已经分析过, ...

  7. u-boot分析(十)----堆栈设置|代码拷贝|完成BL1阶段

    u-boot分析(十) 上篇博文我们按照210的启动流程,分析到了初始化nand flash,由于接下来的关闭ABB比较简单所以跳过,所以我们今天按照u-boot的启动流程继续进行分析. 今天我们会用 ...

  8. u-boot分析(五)----I/D cache失效|关闭MMU和cache|关闭看门狗

    u-boot分析(五) 上篇博文我们按照210的启动流程,对u-boot启动中的设置异常向量表,设置SVC模式进行了分析,今天我们继续按照u-boot的启动流程对以下内容进行分析. 今天我们会用到的文 ...

  9. u-boot分析(四)---设置异常向量表|设置SVC模式

    u-boot分析(四) 通过前三篇的分析,我们对u-boot已经有了整体的认识和掌握,但是我们仍然对于其部分硬件是如何初始化的不太清楚,所以接下来几篇博文我将会对我们在http://www.cnblo ...

随机推荐

  1. jsoncpp笔记

    Json Json是一种轻量级数据交换格式,可以表示数字,字符串,布尔值,null,数组,键值对: { "encoding" : "UTF-8", " ...

  2. k8s node上查看节点

    node执行 mkdir -p /root/.kube master执行 scp admin.conf node1:/root/.kube/config

  3. linux(centos8):prometheus使用alertmanager发送报警邮件(prometheus 2.18.1/alertmanager 0.20.0)

    一,alertmanager的用途 1,Alertmanager的作用: Alertmanager是一个独立的报警模块, 它接收Prometheus等客户端发来的警报,并通过分组.删除重复等处理, 通 ...

  4. linux(centos8):用tr替换或删除字符

    一,tr命令的用途 tr命令可以替换或删除文件中的字符 它从标准输入设备读取数据, 处理完成将结果输出到标准输出设备 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnbl ...

  5. 赋予楼宇“智慧大脑”:厦门双子塔3D可视化

    前言 今年10月7日,是国务院批准设立厦门经济特区40周年纪念日.1980年的这一天,国务院正式批复同意在厦门湖里地区划出一块2.5平方公里的土地,设立经济特区.厦门,成为中国最早设立的四个经济特区之 ...

  6. C++ Primer第5版 第一章课后练习

    练习1.9 #include <iostream> int main() { int sum = 0, val = 50; while (val <= 100) { sum += v ...

  7. laytable 前台删除后加载当前页数据。

    laytable一次性获取数据后,点击删除调用后台删除.返回成功状态后刷新当前页数据. 渲染方法: //渲染表格 function renderingTable(pageIndex, sourceDa ...

  8. django—视图相关

    FBV与CBV FBV:function based view   基于函数的视图 CBV:class based view  基于类的视图 CBV的定义: from django.views imp ...

  9. CocoaFoundation和CoreFoundation之间数据转换(桥接__bridge)

    ARC仅管理Objective-C指针(retain.release.autorelease),不管理CoreFoundation指针,CF指针由人工管理,手动的CFRetain和CFRelease来 ...

  10. 自动识别PC端、移动端,并跳转

    PC端和移动端代码是分开的,各有一套代码的情况下: 在PC端的HTML文件head标签中间添加一段自动识别移动端的JavaScript代码: <script type="text/ja ...