【Linux bootloader】
种瓜大爷
Graphics Stack:Linux Openharmony Android
PKS体系深度耕耘者,为国产化奉献一份力量!
展开
-
【补充】uboot makefile 中的unconfig
以JZ2440为例:在uboot编译中,要先输入单板配置命令:100ask24x0_config_config进入makefile中,看到100ask24x0_config_config的配置规则如下:100ask24x0_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t 100ask24x0 NULL s3c24x0原创 2017-07-28 21:59:54 · 7000 阅读 · 0 评论 -
(六) 自己写简单的u-boot
前言:想想 uboot 的代码量,我们说自己写一个 bootloader 是不是口出狂言了?然而并没有,bootloader 的唯一目的只有一个,那便是启动内核。内核就是一大段可执行程序,我们只要跳转到它的入口地址去执行不就OK? 所以,写一个简单的 bootloader 并不困难。 现在来思考一下,目的是启动内核,那么内核在哪里?刚上电的时候,内核肯定是位于 nandflash 里的,我们得原创 2017-07-27 16:03:39 · 3296 阅读 · 2 评论 -
(六) u-boot 启动内核解析
一、我们从上一节命令解析可以知道,u-boot启动启动Linux内核有两种方法:第一种u-boot等待无空格按下自启内核: s = getenv ("bootcmd"); if (bootdelay >= 0 && s && !abortboot (bootdelay)) { ...... run_command (s, 0); ......原创 2017-07-30 15:58:00 · 3791 阅读 · 0 评论 -
(五) u-boot 命令执行过程解析与添加自定义命令
当我们在控制台的时候,输入boot可以启动Linux内核,那么我们以boot为例子来解析一下uboot命令的执行过程,为下一步分析uboot怎样启动Linux来做准备。一、我们搜索boot命令grep -wnR "boot" common 得到:common/cmd_bootm.c:1162: boot, 1, 1, do_bootd, 打开common/原创 2017-07-29 21:33:04 · 4162 阅读 · 0 评论 -
(四) u-boot 启动分析_第二阶段
在第一阶段,清 BSS 段之后,CPU 跳转到 sdram 里的 start_armboot() 函数,本文,分析 uboot 启动流程的第二阶段。 start_armboot函数在lib_arm/board.c中定义,是U-Boot第二阶段代码的入口。第二阶段的主要工作是进行单板级别的初始化,初始化 nandflash 、norflash 、初始化串口、设置环境变量、最终跳转到 main_loop 里,接收串口传递进来的各种命令。原创 2017-07-29 17:40:24 · 2112 阅读 · 0 评论 -
(三) u-boot 启动分析_第一阶段
本文重点在于分析 uboot 启动流程以及 uboot 自身的细节,比如栈空间的划分、如何设置 tag 、如何添加一个自定义命令等。但是不涉及基本的硬件驱动的分析,比如内存初始化、时钟初始化、mmu 、nandflash 等等这些详细细节不是我们的重点。u-boot 版本: uboot 1.1.6使用的开发板: JZ2440V3原创 2017-07-29 14:08:04 · 1752 阅读 · 1 评论 -
(一) u-boot 基本介绍
U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目。U-Boot的作用是系统引导。U-Boot从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是根据相应的Linux内核源程序进行简化而形成的,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。一、u原创 2017-07-28 12:51:27 · 25593 阅读 · 4 评论 -
【补充】U-boot启动代码指令级分析与启动图解
[start.S代码指令集详细分析点我]Stage1:建立堆栈对应内存布局:上图中U-Boot是Nor Flash。第一阶段没有初始化初始化NandFlash,所以默认 uboot是从norflash启动,不支持 Nandflash 启动。如果修改代码支持Nand Flash启动,那么启动时Nand Flash控制器前4KB的代码复制到SRAM中,这4KB的代码再将整个U-Boot复制到SDRAM中原创 2017-07-29 10:08:23 · 6445 阅读 · 0 评论 -
(二) u-boot 配置、编译过程分析
由于u-boot比较庞大,所以我们分开来分析,对于一个大型的项目我们想快速的了解其代码架构和内容,最方便的方法就是分析Makefile,所以我用uboot-1.1.6来分析Makefile。通过对u-boot的分析想要得到以下内容: 1. U-boot的入口 2. 链接地址 由顶层Readme文件说明,可以知道如果要使用开发板board/,就先执行make <boa原创 2017-07-28 18:50:55 · 7752 阅读 · 0 评论 -
关于uboot一些概念
学习于百问科技U-boot的环境变量值得注意的有两个: bootcmd 和bootargs。bootcm前面有说过bootcmd是自动启动时默认执行的一些命令,因此你可以在当前环境中定义各种不同配置,不同环境的参数设置,然后设置bootcmd为你经常使用的那种参数。 比如nfs下载和nand read… bootcmd的一般设置:nand read 30000000 k...原创 2018-08-31 21:43:39 · 1090 阅读 · 0 评论