
uboot
monkea123
这个作者很懒,什么都没留下…
展开
-
imx6ull bootcmd 和 bootargs 环境变量
uboot 中有两个非常重要的环境变量 bootcmd 和 bootargs,接下来看一下这两个环境变量。bootcmd 和 bootagrs 是采用类似 shell 脚本语言编写的,里面有很多的变量引用,这些变量其实都 是 环 境 变 量 , 有 很 多 是 NXP 自 己 定 义 的 。 文 件 mx6ulevk.h 中 的 宏CONFIG_EXTRA_ENV_SETTINGS 保存着这些环境...原创 2019-11-21 19:51:14 · 1872 阅读 · 0 评论 -
uboot源码分析十二 uboot使用bootz启动linux流程二
bootm_os_get_boot_func 函数do_bootm_states 会调用 bootm_os_get_boot_func 来查找对应系统的启动函数,此函数定义在文件 common/bootm_os.c 中493 boot_os_fn *bootm_os_get_boot_func(int os)494 {495 #ifdef CONFIG_NEEDS_MANUAL_RELO...原创 2019-11-21 09:48:15 · 741 阅读 · 0 评论 -
uboot源码分析十一 uboot使用bootz启动linux流程一
images 全局变量不管是 bootz 还是 bootm 命令,在启动 Linux 内核的时候都会用到一个重要的全局变量:images, images 在文件 cmd/bootm.c 中有如下定义43 bootm_headers_t images; /* pointers to os/initrd/fdt images */images 是 bootm_headers_t 类型的全局变...原创 2019-11-21 09:26:14 · 1162 阅读 · 1 评论 -
uboot源码分析十 uboot启动流程七 run_main_loop 函数 cli_loop 函数
run_main_loopuboot 启动以后会进入 3 秒倒计时,如果在 3 秒倒计时结束之前按下按下回车键,那么就会进入 uboot 的命令模式,如果倒计时结束以后都没有按下回车键,那么就会自动启动 Linux 内核 , 这 个 功 能 就 是 由 run_main_loop 函 数 来 完 成 的 。 run_main_loop 函 数 定 义 在 文 件common/board_r.c ...原创 2019-11-19 20:19:55 · 2541 阅读 · 0 评论 -
uboot源码分析九 uboot启动流程六 board_init_r 函数
board_init_rboard_init_f 函数,在此函数里面会调用一系列的函数来初始化一些外设和 gd 的成员变量。但是 board_init_f 并没有初始化所有的外设,还需要做一些后续工作,这些后续工作就是由函数 board_init_r 来完成的void board_init_r(gd_t *new_gd, ulong dest_addr){#ifdef CONFIG_NEE...原创 2019-11-19 19:10:16 · 1994 阅读 · 0 评论 -
uboot源码分析八 uboot启动流程五 relocate_code 函数
relocate_code 函数relocate_code 函数是用于代码拷贝的 此函数定义在文件 arch/arm/lib/relocate.S 中/* * relocate - common relocation function for ARM U-Boot * * Copyright (c) 2013 Albert ARIBAUD <albert.u.boot@ari...原创 2019-11-19 12:15:17 · 1232 阅读 · 1 评论 -
uboot源码分析七 uboot启动流程四 board_init_f 函数(板子初始化内存空间分配)
_main 中会 board_init_f 函数, board_init_f 函数主要有两个工作:①、初始化一系列外设,比如串口、定时器,或者打印一些消息等。②、初始化 gd 的各个成员变量, uboot 会将自己重定位到 DRAM 最后面的地址区域,也就是将自己拷贝到 DRAM 最后面的内存区域中。这么做的目的是给 Linux 腾出空间,防止 Linux kernel 覆盖掉 uboot,将...原创 2019-11-19 11:08:51 · 1100 阅读 · 0 评论 -
uboot源码分析六 uboot启动流程三 lowlevel_init 函数 s_init 函数 _main 函数
lowlevel_init 函数函数 lowlevel_init 在文件 arch/arm/cpu/armv7/lowlevel_init.S 中定义,/* * A lowlevel_init function that sets up the stack to call a C function to * perform further init. * * (C) Copyright...原创 2019-11-16 21:35:38 · 1871 阅读 · 0 评论 -
[uboot] global_data介绍
==一、global_data功能1、global_data存在的意义在某些情况下,uboot是在某些只读存储器上运行,比如ROM、nor flash等等。在uboot被重定向到RAM(可读可写)之前,我们都无法写入数据,更无法通过全局变量来传递数据。而global_data则是为了解决这个问题。这里顺便一下,后续的uboot的relocation操作,也就是uboot的重定向操作,最...转载 2019-11-16 21:32:24 · 779 阅读 · 0 评论 -
uboot源码分析六 uboot启动流程二
reset 函数第 43 行,读取寄存器 cpsr 中的值,并保存到 r0 寄存器中。第 44 行,将寄存器 r0 中的值与 0X1F 进行与运算,结果保存到 r1 寄存器中,目的就是提取 cpsr 的 bit0~bit4 这 5 位,这 5 位为 M4 M3 M2 M1 M0, M[4:0]这五位用来设置处理器的工作模式,第 45 行,判断 r1 寄存器的值是否等于 0X1A(0b...原创 2019-11-16 19:48:05 · 481 阅读 · 0 评论 -
uboot源码分析五 启动流程分析一 链接脚本 u-boot.lds
链接脚本 u-boot.ldsOUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")OUTPUT_ARCH(arm)ENTRY(_start)SECTIONS{ . = 0x00000000; . = ALIGN(4); .text : { *(.__image_copy_start) ...原创 2019-11-16 17:55:28 · 648 阅读 · 0 评论 -
uboot分析四 make过程
ALL-y 包含 u-boot.srec、 u-boot.bin、 u-boot.sym、System.map、 u-boot.cfg 和 binary_size_check 这几个文件。根据 uboot 的配置情况也可能包含其他的文件ALL-$(CONFIG_ONENAND_U_BOOT) += u-boot-onenand.binifeq ($(CONFIG_SPL_FSL_PBL),...原创 2019-11-16 17:13:26 · 818 阅读 · 1 评论 -
uboot源码分析三 编译处理过程
make xxx_defconfig 过程$(Q)$(MAKE) $(build)=scripts/kconfig $@# To make sure we do not include .config for any of the *config targets# catch them early, and hand them over to scripts/kconfig/Makefil...原创 2019-11-15 21:31:42 · 724 阅读 · 0 评论 -
uboot源码分析二 顶层makefile源码分析二
调用 scripts/Kbuild.include主 Makefile 会调用文件 scripts/Kbuild.include 这个文件交叉编译工具变量设置上面我们只是设置了 CROSS_COMPILE 的名字,但是交叉编译器其他的工具还没有设置导出其他变量接下来在顶层 Makefile 会导出很多变量,)ARCH CPU BOARD VENDOR SOC CPUDIR BOAR...原创 2019-11-14 21:42:05 · 247 阅读 · 0 评论 -
uboot源码分析二 顶层makefile源码分析一
MAKEFLAGS 变量make 是支持递归调用的,也就是在 Makefile 中使用“make”命令来执行其他的 Makefile文件,一般都是子目录中的 Makefile 文件。假如在当前目录下存在一个“subdir”子目录,这个子目录中又有其对应的 Makefile 文件,那么这个工程在编译的时候其主目录中的 Makefile 就可以调用子目录中的 Makefile,以此来完成所有子目录...原创 2019-11-14 21:13:22 · 793 阅读 · 0 评论 -
uboot源码分析一 uboot文件夹包含内容
configs 文件夹此文件夹为 uboot 配置文件, uboot 是可配置的,但是你要是自己从头开始一个一个项目的配置,那就太麻烦了,因此一般半导体或者开发板厂商都会制作好一个配置文件。我们可以在这个做好的配置文件基础上来添加自己想要的功能,这些半导体厂商或者开发板厂商制作好的配置文件统一命名为“xxx_defconfig”, xxx 表示开发板名字,这些 defconfig 文件都存...原创 2019-11-12 21:02:06 · 910 阅读 · 0 评论