Sailor_forever

Forward My Dreams( long lifetime)

U-boot在AT91RM9200上的全线移植分析

 

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

U-bootAT91RM9200上的全线移植分析

 

Sailor_forever  sailing_9806@163.com  转载请注明

http://blog.csdn.net/sailor_8318/archive/<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2007/10/11/1820904.aspx

 

**********************************************************************

【摘要】:本文介绍了bootloader的基础知识,分析了U-boot的源代码结构、常见命令及其启动流程,对于AT91RM9200的片内片外启动方式进行了详尽分析,分析启动所需的引导文件的详细流程。针对具体开发板的内存分配情况,介绍了U-bootAT91RM9200上移植的详细过程。分析了使用gobootm启动linux内核的方法,对于bootm方式的内核是否压缩、-a、-e、运行地址等16种组合情况,给出了详细的测试过程,提出了6种可用方法种的三种最优解。

 

【关键字】:U-bootAT91RM9200bootmmkimage;-a;-e;-c

 

后记:

纸上得来终觉浅,以前由于课题任务较紧张,只是对U-boot的移植进行了一些了解,并没有仔细分析其详细的移植过程,尤其是对于一些地址设置方面的问题不太清楚。

 

上次给小布丁的参考资料有点零散,她也没看太明白,让我下定决心把Uboot的移植过程详细整理下。很多东西心里明白,但要写出来,确要花费更多的时间,但同时也会更注重于细节,对所做的项目也是一个总结完善的过程。求职在即,总结整理此文,也算是为求职做了些准备吧。

 

本文参考了众多网友的帖子,在此表示感谢!还有一些不太明白的地方,可能还有些错误,欢迎大家讨论指正。

 

谨以此文献给小布丁,希望她永远开心,工作学习顺利!

 

Sailor_forever

2007-10-10

****************************************************

 

本文的详细内容请参见
http://blog.csdn.net/sailor_8318/archive/2008/08/04/2768049.aspx
【嵌入式Linux学习七步曲之第三篇 Linux系统bootlaoder移植】U-BOOT全线移植分析系列

 

目录

 

bootloader介绍 - 1 -

1.1 Bootloader移植的必要性 - 1 -

1.2 BootLoader所支持的CPU和嵌入式系统板 - 1 -

1.3. Boot Loader的安装媒介 - 1 -

1.4 Boot Loader的操作模式(Operation Mode) - 1 -

15. Bootloader与主机之间进行文件传输所用的通信设备及协议 - 2 -

  U-boot基础 - 3 -

2.1 U-boot源代码目录结构 - 3 -

2.2 U-Boot支持的主要功能 - 4 -

2.3 U-boot命令介绍及环境变量 - 4 -

2.4 U-Boot的启动流程分析 - 6 -

  U-BOOTAT91RM9200上的移植 - 10 -

3.1  at91rm9200的启动方式 - 10 -

3.1.1 片内引导 - 10 -

3.1.2 片外引导 - 12 -

3.2  loader.bin, boot.bin, u-boot.bin代码执行流分析. - 12 -

3.2.1  loader.bin - 12 -

3.2.2  boot.bin执行流程 - 14 -

3.2.1  uboot.bin执行流程 - 14 -

3.3  AT91RM9200开发板的存储器情况 - 15 -

3.3.1 内部存储器映射 - 16 -

3.3.2 外部存储器映射 - 17 -

3.4  U-BOOTat91rm9200上移植修改的文件 - 18 -

3.5 移植的具体步骤 - 19 -

U-boot如何引导Linux内核启动? - 24 -

4.1  GO命令引导未用mkimage生成的内核 - 24 -

4.1.1 非压缩内核Image - 24 -

4.1.2 压缩内核zImage - 24 -

4.2 Mkimage参数意义解析 - 25 -

4.3 Bootm的流程分析 - 26 -

4.4 如何用mkimage生成uImage - 28 -

4.5 Bootm命令引导mkimage生成的内核全程解析 - 29 -

4.5.1 非压缩的Image内核 - 29 -

4.5.2 压缩的zImage内核 - 32 -

4.5.3 关于压缩及非压缩内核bootm启动的全面总结 - 35 -

 

待续:

U-boot如何向Linux内核传递命令行参数?

Go引导内核的详细方法?

Ramdiskinitrd怎么传给内核?

 

                                                                                          

参考鸣谢:

U-BootS3C2410上的移植――东华理工学院  焦玉全   黄乡生   鲍玉军

基于Atmel at91rm9200armlinuxbootloader启动代码分析――balancesli

基于ATMEL AT91RM9200的嵌入式Linux移植笔记――super

基于ARM的嵌入式Linux系统移植技术研究与应用5_1Bootloader移植――未知

uboot  移植步骤详解――EmbedTheWorld

U-bootkernel的关系――bobzhang

U-BOOT下使用bootm引导内核方法――luofuchong

http://www.linuxforum.net/forum/showflat.php?Cat=&Board=embedded&Number=651003&page=&view=&sb=&o=&fpart=all&vc=1

http://docs.blackfin.uclinux.org/doku.php?id=customizing_u-boot_for_your_own_board

 

阅读更多
个人分类: 嵌入式Linux
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭