免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1752 | 回复: 0
打印 上一主题 下一主题

QQ2440通过uboot1.1.6从nand flash启动的修改 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-23 14:28 |只看该作者 |倒序浏览
友善的mini2440用户往往要碰到这个问题:
将光盘中的uboot1.1.6按用户手册的方法下到nand flash中,
希望从nand flash启动,然后按uboot的menu提示烧写内核到板子上,启动内核。
往往会出错,
重启... 嘿嘿,发现已经烧的u-boot不见了,啥都启不动了~~~
今在
http://www.arm9home.com
论坛上看到很多帖子讨论此事,
综合前辈们的意见,终于使uboot在板子启动内核了。
先是改了uboot1.1.6两个地方:
1.将/include/configs/open24x0.h的56行:
#define MTDPARTS_DEFAULT "mtdparts=nandflash0:2m@0(kernel)," \
                            "8m(jffs2)," \
                            "-(yaffs)"
改为:
#define MTDPARTS_DEFAULT "mtdparts=nandflash0:256k@0(bootloader),2m(kernel)," \
                            "8m(jffs2)," \
                            "-(yaffs)"
原因是没分好区,烧内核时烧在uboot的地址上将其覆盖了。
2.将/board/open24x0/Open24x0.c的65行:
else
    {
        /* arch number of SMDK2440-Board */
        gd->bd->bi_arch_number = MACH_TYPE_S3C2440;
    }
改为:
else
    {
        /* arch number of SMDK2440-Board */
        gd->bd->bi_arch_number = 782;
    }
将机器Id改为782;这是因为友善提供的内核中的机器ID是782,这要与bootload中相同。
改好后重新编译uboot1.1.6
make Open24x0_config
make
编完后通过Supervivi烧进nand flash中。
接下来因为友善给的内核镜像是zImage而uboot支持的格式是uImage
因此要自己编一个uImage的内核。
首先要make menuconfig一下,
关于make menuconfig这里要说一下,因为本人的交叉编译环境是ubuntu7.10
首先得先安装两个包:
apt-get install libncurses
apt-get install libncurses5-dev
就没有问题了。
按用户手册make menuconfig完毕
编译之前还要做几个事情。
将编好的uboot1.1.6的/tools里的mkimage拷到/usr/bin目录下
还要打个补丁,友善给的uboot1.1.6中arch/arm/boot/Makefile屏蔽掉了uImage的编译
补丁下面给出。
拷在顶层,
输入命令:
patch -p1

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/104319/showart_2076638.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP