UBOOT 概述
[uboot] (第一章)uboot流程——概述
2016年10月26日 22:30:45閱讀數:2519[uboot] uboot流程系列:?
[project X] tiny210(s5pv210)上電啟動流程(BL0-BL2)
建議先看《[project X] tiny210(s5pv210)上電啟動流程(BL0-BL2)》,根據例子了解一下上電之后的BL0\BL1\BL2階段,以及各個階段的運行位置,功能。
=================================================================================
一、bootloader & uboot
1、bootloader的概念
Bootloader是在操作系統運行之前執行的一段小程序。而這段小程序的最終目的,正確地設置好軟硬件環境,使之能夠成功地引導操作系統。
2、bootloader的核心功能
bootloader的核心功能就是引導操作系統,部分工作如下
- 初始化部分硬件,包括時鐘、內存等等
- 加載內核到內存上
- 加載文件系統、atags或者dtb到內存上
- 根據操作系統啟動要求正確配置好一些硬件
- 啟動操作系統
3、bootloader的monitor功能
上述2是bootloader的核心功能,也就是引導操作系統的功能。?
但是部分bootloader還支持monitor功能,提供了更多的命令行接口,具體部分功能如下:
- 進行調試
- 讀寫內存
- 燒寫Flash
- 配置環境變量
- 命令引導操作系統
4、嵌入式幾種常見的bootloader
- uboot?
這也是最常見的bootloader,開源,常用于ARM,MIPS等平臺。?
支持monitor功能,也是在項目project X中,使用的bootloader?
所以后續兩節會針對這個bootloader進行說明 - superboot?
不開源,友善之臂的tiny210代碼中默認使用這個bootloader - LK(Little Kernel)?
常用于高通平臺,支持monitor功能。
二、uboot-spl & uboot
1、uboot-spl
由uboot編譯生成,對應于BL1階段,也就是BL1的鏡像,uboot-spl.bin。?
根據《[project X] tiny210(s5pv210)上電啟動流程(BL0-BL2)》,其代碼運行于IRAM中
- 主要工作有:?
- 初始化部分時鐘(和SDRAM相關)
- 初始化DDR(外部SDRAM)
- 從存儲介質上(比如SD\eMMC\nand flash)將BL2鏡像加載到SDRAM上
- 驗證BL2鏡像的合法性
- 跳轉到BL2鏡像所在的地址上
后續會從編譯和代碼流程兩方面來介紹uboot-spl。?
對應文章:?
《[uboot] (第二章)uboot流程——uboot-spl編譯流程》?
《[uboot] (第三章)uboot流程——uboot-spl代碼流程》
2、uboot
由uboot編譯生成,對應于BL2階段,也就是BL2的鏡像,uboot.bin。?
根據《[project X] tiny210(s5pv210)上電啟動流程(BL0-BL2)》,其代碼運行于SDRAM中.
- 主要工作有:?
- 初始化部分硬件,包括時鐘、內存等等
- 加載內核到內存上
- 加載文件系統、atags或者dtb到內存上
- 根據操作系統啟動要求正確配置好一些硬件
- 啟動操作系統
- monitor工作,主要是處理命令行的命令,以下是部分操作:?
- flash操作
- 環境變量操作
- 啟動操作
后續會從編譯、代碼整體流程以及部分功能的具體流程來介紹uboot-spl。?
對應文章:?
《[uboot] (第四章)uboot流程——uboot編譯流程》?
《[uboot] (第五章)uboot流程——uboot整體代碼流程》
總結
- 上一篇: 使用Celery踩过的坑
- 下一篇: uboot-spl编译流程