uboot

u-boot

谁说胖子不能爱 提交于 2019-11-27 06:39:52
1.解压好u-boot后,打开uboot根目录的README文件,在software configuration 里有写明,如果要针对某个单板进行配置,需要执行:make <board_name>_config 其中uboot支持的board_name可以在根目录的include/configs/下查看。 2.makefile 2.1 uboot version确定 (Makefile 24-29行) U_BOOT_VERSION “1.3.4xyz” 1)uboot版本号分为4个级别: VERSION : 主板号 PATCHLEVEL : 次版本号 SUBLEVEL : 再次版本号 EXTRAVERSION : 另外附加的版本信息 这4个用 . 分隔开共同构成了最终的版本号。 2)makefile中版本号最终生成一个变量U_BOOT_VERSION,这个变量记录了Makefile中配置的版本号。 Include/version_autogenerated.h文件是编译过程中自动生成的一个文件,所有源目录中没有,但是编译过后的uboot中就有了。它里面的内容是一个宏定义,宏定义的值就是我们在Makefile中配置的uboot版本号。 3)验证方法:自己修改主makefile中几个version有关的变量,然后编译uboot,然后烧录到SD卡中,从SD卡中启动

Uboot命令U_BOOT_CMD分析

做~自己de王妃 提交于 2019-11-27 04:54:41
其中U_BOOT_CMD命令格式如下: U_BOOT_CMD(name,maxargs,repeatable,command,"usage","help")  各个参数的意义如下: name:命令名,非字符串,但在U_BOOT_CMD中用“ #”符号转化为字符串 maxargs:命令的最大参数个数 repeatable:是否自动重复(按Enter键是否会重复执行) command:该命令对应的响应函数指针 usage:简短的使用说明(字符串) help:较详细的使用说明(字符串) U_BOOT_CMD宏在include/command.h中定义: # define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \     cmd_tbl_t __u_boot_cmd_ ##name Struct_Section = {#name, maxargs, rep, cmd, usage, help} “##” 与 “#” 都是预编译操作符, “##” 有字符串连接的功能, “#” 表示后面紧接着的是一个字符串。 其中Struct_Section在include/command.h中定义如下: #define Struct_Section __attribute__ ((unused,section (".u_boot_cmd"))) 凡是带有

uboot tag存储主要部分代码

你离开我真会死。 提交于 2019-11-26 17:26:47
https://www.cnblogs.com/pokerface/p/5217106.html cmd_bootm.c //传递给内核的参数 int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) do_bootm_linux (cmdtp, flag, argc, argv, addr, len_ptr, verify); 原型:void do_bootm_linux (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[], ulong addr, ulong *len_ptr, int verify) char *commandline = getenv ("bootargs"); void (*theKernel)(int zero, int arch, uint params); //函数指针 theKernel = (void (*)(int, int, uint))ntohl(hdr->ih_ep); //跳转到内核的位置ntohl(hdr->ih_ep) setup_start_tag //tag分为tag_header、union.u两部分组成 params->hdr.tag = 0x54410001 //tag

更新Preloader与uboot

Deadly 提交于 2019-11-26 12:34:48
1、用bsp-editor 产生Preloader 参考 https://rocketboards.org/foswiki/Documentation/AVGSRD160Preloader 根据QSYS产生的handoff文件生成Preloader文件和uboot文件,文件路径如下 来源: https://www.cnblogs.com/FZLGYZ/p/11320340.html

iMX6Q Sabresd Board SPL Mode

南笙酒味 提交于 2019-11-26 08:23:48
uboot 2014以后的版本已经加入了支持快速启动的spl模式,本文用iMX6Q-SDP开发板做个简单讲解 在官方的yocot中下载fsl-L4.9.11_1.0.0-ga版本代码并编译,提取出uboot、kernel和rootfs做为SPL模式的示范 看一下uboot官方对SPL和过去对比的描述 如下是denx对spl的描述 如下是SPL模式的简易时序图 如下针对iMX6Q Sabresd SD开发板打开SPL模式 uboot部分 开发板对应的配置文件为mx6qsabresd_defconfig 打开SPL模式需要在配置文件加入一个宏CONFIG_SPL=y 此时的defconfig配置文件已经打开SPL模式了,能够完成boot_rom --> SPL --> uboot --> kernel 的过程了 但此时还没达到快速启动的目的,需要跳过uboot直达kernel才行:boot_rom --> SPL --> kernel 为此查看uboot/README的SPL framework部分 CONFIG_SPL Enable building of SPL globally. 此项我们在defconfig中已经打开 CONFIG_SPL_OS_BOOT Enable booting directly to an OS from SPL. See also: doc