标签:初始化 uboot 启动 基本知识 内核 linux Uboot
c参考视频:https://video.100ask.net/p/t_pc/course_pc_detail/column/p_63ff16eae4b07b055838a303
Uboot本质上就是一个裸驱
Uboot基本概念:
uboot就是一个bootloader,作用就是用于启动linux kernel或者其他系统。uboot最主要的工作就是初始化DDR,因为linux是运行在DDR里面的。对于6ull系列,DDR初始化是由内部的boot rom来完成的,但是用的其他的cortex a芯片,一般都是uboot来初始化DDR的。
一般linux镜像zimage(uimage)和设备树存在在SD卡、EMMC、NAND、SPI FLASH等外置存储区域,这里就涉及到一个问题:需要将linux镜像从外置的flash拷贝到ddr中,然后才能启动。uboot主要目的就是为系统启动做准备(拷贝linux镜像到ddr中,配置ddr等信息)
1、uboot不仅仅可以启动linux,也可以启动系统系统,比如vxworks
2、linux不仅仅能通过uboot启动,其他的bootloader也可以使用
3、uboot是一个通用的bootloader,支持多种架构。
linux系统三要素:uboot、linux驱动、根文件系统
uboot:启动内核:
1. 读emmc,uboot有emmc驱动,读取emmc,将内核copy进内存
1.1 初始化内存
1.2 初始化其他硬件,如时钟
1.3 emmc或flash里面的内核拷贝进内存
内核:启动应用程序
1、能读写flash/emmc:驱动程序
2、能够读写文件:文件系统
3、找到启动APP
uboot = uboot.bin + 某个dtb
XIP:execute in place 原地执行
内部RAM、flash称为XIP设备
SD卡:cpu不能直接访问SD卡,SD卡为非XIP设备
为啥芯片可以支持SD卡:
cpu读取,运行BROM代码,BROM copy uboot拷贝到内存里
uboot启动流程:
1、XIP设备,第一硬件初始化,第二把flash上的内核拷贝到内存,第三启动内核
2、非XIP设备,BROM将Uboot拷贝到ram,执行uboot,不再初始化内存ram
uboot为什么要驱动网卡:uboot可做调用功能,也可以网络下载
uboot里面的设备树可理解为简化版本的kernel设备树
Uboot源码结构:
文件夹说明:
board:单板相关
arch:系统架构相关,如arm、mips
cmd:命令相关
fs:文件系统相关
include:头文件
lib:库文件
api:与硬件无关的API函数
driver:驱动程序
configs:配置文件夹
。。。
标签:初始化,
uboot,
启动,
基本知识,
内核,
linux,
Uboot
From: https://www.cnblogs.com/lethe1203/p/18079134