U-boot移植记录
sean_dw
这个作者很懒,什么都没留下…
展开
-
代码格式用
ENTRY(relocate_code) mov r4, r0 /* save addr_sp */ mov r5, r1 /* save addr of gd */ mov r6, r2 /* save addr of destination */ //用户添加,跳转到board_init_r函数执行 mov sp, r4 mov r0, r5 mov r1, r6原创 2014-01-09 14:18:54 · 987 阅读 · 0 评论 -
S5PV210(TQ210)学习笔记——内核移植与文件系统构建
由于之前做过2440和6410,鉴于时间原因,这里暂时跨过其他模块的裸机驱动和uboot移植,直接进入内核移植及驱动开发方面的学习。内核移植其实很简单,因为内核是linus率领的linux内核开发团队开发并维护的,我们只需要跟我们的平台交叉编译一下即可使用,但是,内核移植也不简单,因为内核移植起见出现任何问题都可能会被卡住,因为内核代码非常庞大,我们无法通读内核代码,下面是我移植期间遇到的各种悲催转载 2014-02-21 21:06:14 · 2360 阅读 · 0 评论 -
real210移植记录-u-boot2013.10引导linux3.10.30进入控制台
这篇文章下周再写。原创 2014-02-22 13:57:29 · 1854 阅读 · 2 评论 -
real210移植记录-支持eMMC,增加菜单操作
本次记录的移植是使该u-boot支持eMMC,开发板为real210最新版的开发板,标配eMMC 8GB flash,之前的移植都是在之前的210硬件上进行的核心板版本为v2,flash为nand 512MB。本次修改让其支持eMMC,并且添加菜单操作。首先考虑到emmc和SD卡操作协议兼容,那么之前做的u-boot是不是可以启动呢,说做就做,使用配带的u-boot把我自己的u-boot烧写进原创 2014-02-25 17:37:49 · 1938 阅读 · 0 评论 -
u-boot移植第四弹——2013.10u-boot增加dm9000的支持
本次移植是使u-boot支持网络,并能使用tftp功能,以及支持命令补全功能。本次移植建立在上次版本上。首先修改real210.h在最后增加下面的代码/* * Ethernet Contoller driver 网络配置 */#define CONFIG_DM9000 #define CONFIG_DRIVER_DM9000 1#define CONFI原创 2014-02-15 11:39:47 · 1889 阅读 · 0 评论 -
u-boot移植重要问题说明
u-boot移植重要问题说明一、从SD卡拷贝BL2到内存的函数 函数名字叫copy_uboot_to_ram,位置在board/samsung/real210/mmc_boot.c 其中有这个一部分ch = *(volatileu32 *)(0xD0037488); copy_sd_mmc_to_memcopy_bl2 =原创 2014-02-15 11:09:54 · 1931 阅读 · 0 评论 -
u-boot移植第三弹——移植2013.10u-boot到RealARM210 cortex-A8开发板(支持moviNAND_Fusing_Tool_v2.0)
在移植2012.10过程中遇到个麻烦的问题,到写这篇文章的时候还是没找原因在哪,导致无法正常运行。我遇到的问题如下:__bss_start和__bss_end__这两个地址无法正确得到地址,也就是bss段清除的时候失败,程序死掉。使用前两篇文件介绍的bl1,且没有开启重定位功能的情况下board_init_f这个函数中的addr -= gd->mon_len;这句一定要修改成你的u-boot基址,原创 2014-01-24 19:13:46 · 4720 阅读 · 4 评论 -
u-boot移植第五弹——2013.10u-boot通过tftp下载到内存中运行
本次修改是很重要的,实现的功能是不必通过SD卡启动u-boot,使用tftp功能下载u-boot到内存然后使用go命令直接跳转到对应的内存地址即可。为什么说本次移植很重要呢,原因是为了调试方便。可以试想,如果每次修改都需要用SD卡,可以想象工作量有多大,很没效率,而使用tftp方式就方便快捷多了,几条命令就行了。好了开始介绍怎么修改。首先添加宏定义#define CONFIG_SK原创 2014-02-15 12:01:45 · 3134 阅读 · 0 评论 -
2013.10u-boot移植之SD保存环境变量
本次修改是建立在上次版本之上,相对于nand的环境变量支持,SD卡的就相对麻烦些。修改real210.h头文件,修改部分如下所示:/*----------------------------------------------------------------------- * Boot configuration */#if 0//#define CONFIG_ENV_原创 2014-02-17 17:11:00 · 2784 阅读 · 0 评论 -
2013.10u-boot移植之增加nand保存环境变量
本次修改较为简单,在上个版本上只需要修改real210.h头文件即可。找到下面代码的部分,修改成如下所示编译即可。/*----------------------------------------------------------------------- * Boot configuration */#if 0//#define CONFIG_ENV_IS_IN_ONENAN原创 2014-02-17 16:56:39 · 1400 阅读 · 0 评论 -
u-boot中添加自定义命令
1.u-boot命令机制u-boot中,每个命令都使用一个struct cmd_tbl_s结构体定义,该定义在include/command.h中实现:struct cmd_tbl_s{char *name,//u-boot中执行的命令int maxargs,//命令所能带的参数个数,最少为1int repeatable,//该命令是否可重复int转载 2014-02-21 12:10:24 · 1075 阅读 · 0 评论 -
uboot分析之bootm_start
bootm命令执行过程中调用了bootm_start函数,这个函数比较重要,所以先分析它。1.common/cmd_bootm.c static int bootm_start(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { void *os_hdr; int转载 2014-02-21 12:08:41 · 1243 阅读 · 0 评论 -
u-boot.lds文件详解
网上大部分u-boot.lds文件的分析大部分都是千遍一律,例如下面就是本人在网上找到的关于u-boot.lds的资料。OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")/*指定输出可执行文件是elf格式,32位ARM指令,小端*/OUTPUT_ARCH(arm)/*指定输出可执行转载 2014-01-10 11:43:14 · 2724 阅读 · 0 评论 -
GNU ARM汇编--(十七)u-boot的makefile和mkconfig解读
自己写的bootloader可以引导kernel了,我以为曾经神秘的u-boot代码将变得毫无挑战,然事实表明u-boot作为优秀的开源代码,阅读起来还是很有挑战的,值得一读! 阅读碰到的头等问题:Makefile和shell脚本看不懂... 说起来做linux也很久了,Makefile和shell脚本都接触过,但真的都是略懂而已.因为公司的Makefi转载 2014-01-10 14:08:41 · 1336 阅读 · 0 评论 -
u-boot移植第一弹——制作可用的BL1
我的BL1源代码来源于网路,博客地址是http://blog.csdn.net/xiaojiaohuazi/article/details/8265757。在这里记录下自己的移植心得。 为什么要制作这个BL1呢,对于官方以及很多人说的它是u-boot启动的第二阶段,这里我不做过多说明,我想说的是,这个BL1可以让你对内存操作的理解更加深入,对于后面移植u-boot的理解有帮助。原创 2014-01-09 10:47:53 · 2859 阅读 · 1 评论 -
u-boot2013.01.01 for s5pv210: u-boot启动流程
转载请注明地址:http://blog.csdn.net/zsy2020314/article/details/98240351.关于启动流程1.1 启动阶段分为3个,bl0,bl1,bl2。下面只是就功能方面对它们做说明,实际设计的时候,也许会对其具体功能做出调整,也就是说,这几个阶段的划分是就功能而言的,不能看得太死。 bl0:出厂的时候就固化在irom中一段转载 2014-01-13 17:16:10 · 1459 阅读 · 0 评论 -
gd->flags |= GD_FLG_RELOC; 问题遗留
在移植u-boot-2012.10版本时,遇到了如下问题:当程序运行到gd->flags |= GD_FLG_RELOC;这里时会直接死掉,当时怀疑内存初始化错误,跑飞了,可是当我单独测试内存写和读时,没有问题。尝试gd->baudrate=115200;写入没有问题。之后把结构体gd_t中flags和baudrate调换了位置,没有作用,问题依旧。搞了两天了,能想到的手段都用了,没有结果原创 2014-01-22 13:08:02 · 1932 阅读 · 5 评论 -
u-boot移植第二弹——移植2012.10u-boot到RealARM210 cortex-A8开发板
本次移植的目的: 1.u-boot能够跑起来2.能够进入控制台打印出如下信息 本次移植是基于官方的u-boot版本是u-boot-2012.10,温馨提示,如果是新手可以完全按照这个步骤走就行。好,下面开始。 第一步,修改u-boot-2012.10根目录下的boards.cfg文件,用gedit打开该文件,使用搜索功能,搜索文原创 2014-01-24 13:24:54 · 2554 阅读 · 2 评论 -
u-boot.lds详细的分析
对u-boot.lds的更详细的分析Linker Script FormatLinker scripts are text files.You write a linker script as a series of commands.Each command is either a keyword,possibly followed by arguments,or转载 2014-01-18 10:28:45 · 1146 阅读 · 0 评论 -
uboot 命令分析(一) — bootm
bootm 用于将内核镜像加载到内存的指定地址处,如果有需要还要解压镜像,然后根据操作系统和体系结构的不同给内核传递不同的启动参数,最后启动内核。一、arm 架构处理器对 linux 内核启动之前环境的五点需求1、cpu 寄存器设置 * R0 = 0 * R1 = 板级 id * R2 = 启动参数在内存中的起始地址2、cpu 模式转载 2014-02-21 12:09:36 · 2902 阅读 · 0 评论 -
u-boot2013.10引导linux3.10.30记录
首先确定real210.h头文件的配置是否正确,我的完整配置如下:/* * (C) Copyright 2009 Samsung Electronics * Minkyu Kang * HeungJun Kim * Inki Dae * * Configuation settings for the SAMSUNG SMDKC100 board. * * SPDX-Lic原创 2014-02-22 12:07:10 · 2254 阅读 · 0 评论 -
warning: function declaration isn’t a prototype解决方法
在编译u-boot时,出现了这样的警告warning: function declaration isn’t a prototype [-Wstrict-prototypes]原因是在添加了自己的函数之后出现的如char tst_key()。经过网上搜索,解决这个警告需要给函数加个void声明没有参数传入,如果本身有参数那么就没什么问题了。改成char tst_key(void)这种形原创 2015-02-05 10:41:45 · 6416 阅读 · 0 评论