Uboot移植文档v20.doc
上传人:sy****28 上传时间:2024-09-14 格式:DOC 页数:24 大小:267KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

Uboot移植文档v20.doc

Uboot移植文档v20.doc

预览

免费试读已结束,剩余 14 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

本文档采用了Uboot1.1.6中的nandflash的新驱动,没有用nand_legacy,同时添加了yaffs文件系统烧写的功能,并且对网上一些移植文档的不妥,缺少之处进行补充。如有不妥之处,欢迎指正。联系方式:HYPERLINK"mailto:edaworld@yeah.net"edaworld@yeah.net零、移植前说明:1.工作环境:Fedora7,内核2.6.21交叉编译器:Arm-linux-gcc3.3.2目标板:优龙FS2410,NANDFlash:64MK9F1208,NORFlash:2MSST39VF1601(本次移植不包含NORFlash支持),RAM64M,CS8900Q32.下载源码,建立工作目录u-boot的源码可以从以下网址下载:http://downloads.sourceforge.net/u-boot/u-boot-1.1.6.tar.bz2建立工作目录:mkdir/bootloadercd/bootloader把下载的源码拷贝到该目录,解压;tarjxvfu-boot-1.1.6.tar.bz2注意使用交叉编译器为3.3.2版本一、移植步骤如下:(1)、建立自己fs2410开发板的配置cd/u-boot-1.1.61)#cp–rboard/smdk2410board/fs24102)#cpinclude/configs/smdk2410.hinclude/configs/fs2410.hfs2410.h是开发板的配置文件,他包括开发板的CPU、系统时钟、RAM、FLASH系统及其他相关的配置信息,由于u-boot已经支持三星的SMDK2410开发板,所以移植的时候直接拷贝SMDK2410的配置文件,做相应的修改即可。由于Uboot对SMDK2410板的NANDFlash初始化部分没有写,即lib_arm/board.c中的start_armboot函数中有这么一句:#if(CONFIG_COMMANDS&CFG_CMD_NAND)puts("NAND:");nand_init();/*goinittheNAND*/#endif但是在board/smdk2410目录下源文件中都没有定义nand_init这个函数。所以需要我们补充这个函数以及这个函数涉及的底层操作,NANDFlash的读写操作相对复杂,将在u-boot-1.1.6移植的后面部分介绍。(2).修改顶层Makefilecd/u-boot-1.1.6geditMakefile找到:smdk2410_config:unconfig@$(MKCONFIG)$(@:_config=)armarm920tsmdk2410NULLs3c24x0在其后面添加:fs2410_config:unconfig@$(MKCONFIG)$(@:_config=)armarm920tfs2410NULLs3c24x0各项的意思如下:arm:CPU的架构(ARCH)arm920t:CPU的类型(CPU),其对应于cpu/arm920t子目录。fs2410:开发板的型号(BOARD),对应于board/fs2410目录。NULL:开发者/或经销商(vender)。s3c24x0:片上系统(SOC)。(3).修改include/configs/fs2410.h:修改:#defineCFG_PROMPT“SMDK2410#”为:#defineCFG_PROMPT“[Neusoft2410]#”这是u-boot的命令行提示符。此处是bootloader启动后的提示符定义。(4)修改board/fs2410/Makefile将:COBJS:=smdk2410.oflash.o改为:COBJS:=fs2410.oflash.o当然,fs2410下的smdk2410.c要改成fs2410.c;(5)依照你自己开发板的内存地址分配情况修改board/fs2410/lowlevel_init.S文件这里我参考了FS2410开发板自带S3C2410_BIOS,代码如下:#include<config.h>#include<version.h>/*someparametersfortheboard*//***Takenfromlinux/arch/arm/boot/compressed/head-s3c2410.S**Copyright(C)2002SamsungElectronicsSW.LEE<hitchcar@sec.samsung.com>**/#defineBWSCON0x48000000/*BWSCON*/#defineDW8(0x0)#defineDW16(0x1)#defineDW32(0x2)#defineWAIT(0