u-boot2011.06移植到2440全过程
UBOOT移植1

移植u-boot-2011.03到S3C2440(utu2440)方法与步骤###1. 配置和初步编译摘要:在2011年的时候,本人把u-boot-2011.03成功移植到了S3C2440(utu2440开发板)上。
通过这次移植使自己对u-boot有了较深刻的理解并掌握了u-boot 的移植。
对于未移植过u-boot的人来说,可能觉得很神秘,甚至觉得很难。
实际上,从整个移植过程来看,并未想像中那么难。
如果你接触过嵌入式linux的开发,我觉得移植u-boot并不是难事,至少没想象中的难。
reille博客作为技术分享、技术交流的个人博客,把自己移植u-boot-2011.03的过程、遇到的问题及解决方法作为一个系列专题分享出来。
希望对正在移植u-boot的人有用。
本节主要介绍u-boot-2011.03的配置和初步编译。
开发环境:主机:Window XP SP2;linux:VMware7.01+ubuntu9.10;目标板:扬创utu2440-F开发板交叉编译器:arm-linux-gcc4.3.2(一开始用的是编译内核的版本arm-linux-gcc3.4.1,但出现了软浮点问题,于是换成了现在用的版本,当然本人编译内核的时候还是用3.4.1版本)。
1. 下载uboot源码:u-boot-2011.03本来想移植最新版本u-boot-2011.06,但见其还在修改中,故改为移植u-boot-2011.03,其源码可从如下地址中下载:ftp://ftp.denx.de/pub/u-boot/ 2. 裁减和配置2.1 裁减:1). 删除u-boot-2011.03/arch目录下除arm目录外的所有目录;2). 删除u-boot-2011.03/arch/arm/cpu目录下除arm920tmulu外的所有目录;3). 删除u-boot-2011.03/arch/arch/arm/cpu/arm920t目录下除s3c24x0目录外的所有目录,注:文件不要删;4). 删除u-boot-2011.03/arch/arm/include/asm目录下除arch-s3c24x0目录外的所有arch-xxxx目录,注:文件不要删;5). 删除u-boot-2011.03/board目录下除samsung目录外的所有目录;6). 删除u-boot-2011.03/board/samsung目录下除smdk2410目录外的所有目录;7). 删除u-boot-2011.03/include/configs目录下除smdk2410.h文件外的所有头文件。
U-Boot移植(3)增加对S3C2440的支持

U-Boot移植(3)增加对S3C2440的⽀持昨天跟张⽼师去打乒乓球了,还没写完今天接着写。
6、S3C2440是S3C2410的改进版,它们的操作基本相似,只是在系统时钟的设置、NAND Flash控制器的操作等⽅⾯有⼀些⼩差别。
⽽下⾯我要做的就是令⼀个U-Boot⼆进制代码既可以在S3C2410上运⾏,也可以在S3C2440上运⾏。
虽说我的板也是S3C2410的,但是增加S3C2440的U-Boot练习,可以提⾼我们的能⼒,为后⾯的学习打下基础。
GSTATUS1寄存器的值:0x32410000表⽰S3C2410,0x32410002表⽰S3C2440。
S3C2410:FCLK=200MHZ;S3C2440:FCLK=400MHZ,UCLK=48MHZ;搞清楚之后,下⾯我们就可以开始了。
⾸先先在board/100ask24x0/100ask24x0.c 中的前⾯定义如下⼀些值:我的开发板输⼊时钟为12MHZ,如果你的开发板时钟和我的不⼀样的话,可以根据以前代码中的公式计算,然后修改系统时钟,这在include/configs/100ask24x0.h中的宏CONFIG_SYS_CLK_FREQ中定义。
接下来,就是使⽤不同的宏设置系统时钟,包括S3C2410、S3C2440。
7、在后⾯设置串⼝波特率时需要获得系统时钟,就是在U-Boot的第⼆个阶段,即是lib_arm/board.c中start_armboot函数调⽤serial_init函数初始化串⼝时,会调⽤get_PCLK、get_HCLK、get_PLLCLK等函数,这需要我们作相应的修改。
⾸先要在board_init函数的开关增加如下⼀⾏,才能使⽤变量gd,因为识别出S3C2410和S3C2440,设置了机器类型ID:gd->bd->bi_arch_number 。
接着在get_PLLCLK函数中增加如下:由于分频系数设置⽅法也不⼀样,get_HCLK、get_PCLK也需要修改。
uboot在2440上移植(一)-xgc94418297的日志-网易博客

uboot在2440上移植(一)-xgc94418297的日志-网易博客uboot在2440上移植(一) - xgc94418297的日志 - 网易博客以前一直在用vivi,很精简很方便,源码很好懂,想改什么就改什么,但是功能差了点,所以移植个uboot来跑跑,uboot很好很强大,但是想搞清它的机制有点困难,先移植个最简单的试试,还没有增加对yaffs的支持和usb下载,遇到一些小问题也都解决了。
我用的2440开发板,取名为TX2440。
解压U-BOOT-1.1.6,进入U-BOOT目录,修改Makefile:在smdk2410_config : unconfig@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0加上TX2440_config : unconfig@$(MKCONFIG) $(@:_config=) arm arm920t TX2440 NULL s3c24x0各项的意思如下:arm: CPU的架构(ARCH)arm920t: CPU的类型(CPU),其对应于cpu/arm920t子目录。
TX2440: 开发板的型号(BOARD),对应于board/TX2440目录。
NULL: 开发者/或经销商(vender)。
s3c24x0: 片上系统(SOC)。
在第128行:ifeq ($(ARCH),arm)CROSS_COMPILE = arm-linux-指定交叉编译器,我使用的是3.4.1,这里也可以写绝对路径修改完Makefile后,在board目录下,新建自己的开发板目录TX2440,把smdk2410目录下的所有文件拷到TX2440,把smdk2410.c改为TX2440.c。
修改该目录下的Makefile,把smdk2410.o改为TX2410.o。
COBJS := TX2440.o flash.o将board目录下所有文件夹全部删除,只留TX2440在include/configs目录下创建板子的配置头文件,把smdk2410.h改名为TX2440.h,再把所有的文件全部删除,只留TX2440.h测试能否编译成功:执行make TX2440_config出现make: execvp: …………/mkconfig: 权限不够查看mkconfig的权限,发现没有可执行权限,用chmod 764 mkconfig加上权限然后再make,成功后可出现 Configuring for TX2440 board.....修改SDRAM配置,在board/TX2440/lowlevel_init.S中,检查#define B6_BWSCON (DW32)位宽为32把B1_BWSCON 改为(DW16) B5_BWSCON 改为(DW8)根据HCLK设置SDRAM 的刷新参数,主要是REFCNT寄存器,开发板HCLK为100M将 #define REFCNT 0x1113改为#define REFCNT 0x4f4增加对S3C2440的支持,2440的时钟计算公式、NAND操作和2410不太一样。
u-boot在S3C2440上的移植问题及解决方法集锦(三)

一、移植环境∙主机:VMWare6.5--Fedora 9∙开发板:自制开发板CPU:S3C2440;SDRAM:HY57V561620FTP-H;NOR flash:SST_39VF1601(2M);NAND flash:K9F1G08U0B(128M);网卡芯片:DM9000EP∙编译器:arm-linux-gcc-4.3.2∙u-boot:u-boot-2009.08∙linux kernel:linux-2.6.30∙busybox:busybox-1.13.3二、博客地址/liuqiqi677如有错误,欢迎指正。
三、参考资料主要参考了黄刚的博客/u3/101649/,他的博客写得相当不错,将嵌入式开发各个阶段的知识以边做边学的方式,辅以图片、解释,清晰地呈现给读者,能够让读者把握主线,对嵌入式开发有整体的了解。
强烈推荐!!!四、问题及解决方法7、Fedora9的bug,“No network connection”我的虚拟机采用桥接的方式与Windows连接,并且在Fedora9中能够ping通Windows XP,但是右上角的网络连接图标无论是否手动激活网卡都会一直提示"No network connection",如图7所示,显示一把红色小叉。
图7 网络连接图标显示无连接这个问题之前一直存在,但是没有找到解决方法,就搁置下来了。
后来,我想用tftp将linux内核下载到开发板上,但是一直不能成功,我就怀疑是不是网络部分没有配置好,因此又去仔细研究了一下,终于发现问题所在!这实际上是Fedora 9 的一个bug。
(以前的版本没用过不清楚)造成这个问题的原因是Network Configuration 图形设置界面的默认选项值与/etc/sysconfig/network-scripts/ifcfg-eth0 配置文件的默认值不一致。
刚装完系统的情况下:在Network Configuration 中,编辑Device 下的eth0,会发现"Controlled by NetworkManager" 是不打勾的。
Uboot在S3C2440上的移植

E vrc n n i cme t
硬 拷 贝 到 内 部 B o nen lS AM, 被 映 射 到 n C O的 otItra R 且 GS
片 选 空 间 O 0 0 ,0 0 O 0 0 ,0 0; o ls 方 式 启 x 0 00 0 - x 8 00 0 N r Fah
U o t ¥ C 4 0上的移植 b o 在 3 24
卢 伟 ,潘 炼
( 汉 科 技 大 学 信 息 科 学 与 工 程 学 院 自动 化 系 , 北 武 汉 4 4 0 ) 武 湖 32 0
摘 要 :通 过 分 析 U o t的 文 件 结 构 及 其 启 动 流 程 , 细 给 出 了 Ub o 基 于 A M9 0 开 发 板 上 bo 详 ot在 R 2T
( eto no t n Si c n nier gWu a nvrt o c n ea dT c nlg, hn 4 4 0 ,hn ) D p.fIfr i ce e ad E g e n , h n U iesy fS i c n eh ooyWu a 3 20 C ia ma o n n i i e
的移 植 方 案 , 包括 编 译 、 试 全 过 程 , 终 能 够 在 U ot 令 方 式 下 加 载 映 像 文 件 , 成 Ln x内 核 与 调 最 bo 命 完 iu yf af 像 文 件 的 调 试 , 有 B olae 植 的 通 用 性 。 s映 具 ot dr移 o
关 键 词 :Ub o;¥ C 4 0 R 2 T o t 3 2 4 ;A M9 0 ;引 导 过 程 ;启 动 代 码
t e nie s l ha a tr o Bo to de r n p a a in. h u v ra c r ce f ol a r ta s lntto
u-boot-2011.03在TQ2440上的移植--最新uboot移植文档

u-boot-2011.03在TQ2440上的移植(1)--建立自己的demo板收藏参考文章黄刚博客/u3/101649/showart_2276917.htmltekkman博客/u1/34474/showart_2212066.html1、到ftp://ftp.denx.de/pub/u-boot/下载u-boot-2010.06.tar.bz22、解压tar jxvf u-boot-2010.06.tar.bz23、进入uboot cd u-boot-2010.064、删减uboot进入/board,留下samsung,其它全部删除进入/arch,留下arm,其它全部删除进入/arch/arm/cpu,留下arm920t,其它全部删除5、建立自己的DEMO板cd /board/samsungmkdir smdk2440cp -rf smdk2410/* smdk2440///将2410下所有的代码复制到2440下cd smdk2440//进入smdk2440目录mv smdk2410.c smdk2440.c//将smdk2440下的smdk2410.c改名为smdk2440.c然后在文件夹samsung里留下smdk2440,其它全部删除cp include/configs/smdk2410.h include/configs/smdk2440.h//建立2440头文件在include/configs下留下smdk2440.h, 其它全部删除vi board/samsung/smdk2440/Makefile//修改smdk2440下Makefile的编译项,如下:COBJS := smdk2440.o flash.o//修改第28行因在smdk2440下我们将smdk2410.c改名为smdk2440.c6、修改u-boot跟目录下的Makefile文件。
查找到smdk2410_config的地方,在他下面按照smdk2410_config的格式建立my2440_config的编译选项,另外还要指定交叉编译器,修改159行CROSS_COMPILE ?= arm-linux-//指定交叉编译器为arm-linux-gccsmdk2410_config:unconfig//2410编译选项格式@$(MKCONFIG) $(@:_config=)arm arm920t smdk2410 samsung s3c24x0smdk2440_config:unconfig//修改蒂3054行,2440编译选项格式@$(MKCONFIG) $(@:_config=)arm arm920t smdk2440 samsung s3c24x0*说明:arm:CPU的架构(ARCH)arm920t:CPU的类型smdk2440 :对应在board目录下建立新的开发板项目的目录samsung:新开发板项目目录的上级目录,如直接在board下建立新的开发板项目的目录,则这里就为NULLs3c24x0:CPU型号*注意:编译选项格式的第二行要用Tab键开始,否则编译会出错7、测试编译新建的smdk2440开发板项目在uboot根目录测试make smdk2440_configmake即可在uboot根目录下生成bin文件在uboot里,清除中间文件用命令make distcleanu-boot-2011.03在TQ2440上的移植(2)--初始化时钟收藏smdk2440的初始化设置1、u-boot主要的目录结构如下2、启动流程图下图由上图可知u-boot的stage1代码通常放在cpu/xxxx/start.S文件中,他用汇编语言写成;u-boot的stage2代码通常放在lib_xxxx/board.c文件中,他用C语言写成。
ARM 2440 uboot移植过程
详细的boorloader的移植(1)北京顶嵌嵌入式培训机构 2009-09-14 16:52:23 作者:赵老师来源:顶嵌技术部文字大小:[大][中][小]一.BootLoader简介简单的说bootloader是一段程序,它的作用就是加载操作系统,BootLoader(引导加载程序)是系统加电后运行的第一段软件代码。
通过这段代码实现硬件的初始化,建立内存空间的映射图,为操作系统内核准备好硬件环境并引导内核的启动。
如右图所示的那样在设备的启动过程中bootloader位于最底层,首先被运行来引导操作系统运行,很容易可以看出 bootloader是底层程序所以它的实现严重地依赖于硬件,特别是在嵌入式世界。
因此,在嵌入式世界里建立一个通用的BootLoader几乎是不可能的。
尽管如此,一些功能强大、支持硬件环境较多的BootLoader也被广大的使用者和爱好者所支持,从而形成了一些被广泛认可的、较为通用的的bootlo ader实现。
简单的介绍几种:1.U-BOOTuboot是一个庞大的公开源码的软件。
他支持一些系列的arm体系,包含常见的外设的驱动,是一个功能强大的板极支持包。
其代码可以从下载U-BOOT是由PPCBO OT发展起来的,是PowerPC、ARM9、Xscale、X86等系统通用的Boot方案,从官方版本0.3.2开始全面支持SC系列单板机。
u-boot是一个开源的bootloader。
2.vivivivi是韩国mizi 公司开发的bootloader, 适用于ARM9处理器。
Vivi有两种工作模式:启动加载模式和下载模式。
启动加载模式可以在一段时间后(这个时间可更改)自行启动linux内核,这是vivi的默认模式。
如果修改或更新需要进入下载模式,在下载模式下,vivi为用户提供一个命令行接口通过接口可以使用vivi提供的一些命令,来实现flash的烧写、管理、操作mtd分区信息、启动系统等功能。
移植wifi无线网卡到mini2440上全过程
移植wifi无线网卡到mini2440上全过程【转载】SOLO MON'S LINU X 2009-04-16 18:22:24 阅读628 评论0 字号:大中小订阅移植wi fi无线网卡到min i2440上全过程前段时间移植了U-boot和linu x2.6.27.9到mini2440上,最近有点空,手头有一个usb接口的zd1211b芯片的wif i无线网卡(PSP和NDSL玩家都知道的神卡),于是决定在内核中加入此无线网卡的驱动。
我是在我移植的linux2.6.27.9内核上移植的。
关于内核移植,请看我的这篇文章。
http://bl og.ch inaun ix.ne t/u2/75270/show art.p hp?id=1796658新版的li nux2.6.27.9已自带z d1211b的驱动。
此驱动在r at-li nux-2.6.27.9/dr ivers/net/wirel ess/z d1211rw/中。
要让此驱动生效,得修改内核配置。
选中netw orkin g sup port-->wir eless-->Ge neric IEEE 802.11 Ne twork ing S tack(mac80211)选中d evice driv ers-->netw ord d evice supp ort-->wire lss l an-->ZyDAS ZD1211/ZD1211B USB-wirel ess s uppor t重新编译内核。
下载到板子中,重启。
加入无线网卡。
出现u sb 1-1: US B dis conne ct, a ddres s 2u sb 1-1: ne w ful l spe ed US B dev ice u sings3c2410-oh ci an d add ress3usb 1-1: conf igura tion#1 ch osenfrom1 cho iceu sb 1-1: re set f ull s peedUSB d evice usin g s3c2410-ohciand a ddres s 3z d1211rw 1-1:1.0: phy1表示无线网卡已被识别。
uuboot 移植流程
uuboot 移植流程U-Boot 移植流程介绍U-Boot是一个开源的引导加载程序,常用于嵌入式系统中。
移植U-Boot可以将其适配到不同的硬件平台上,以满足特定需求。
本文将详细说明U-Boot移植的流程。
准备工作1.硬件选型:根据项目需求,选择适合的硬件平台。
2.获取源代码:从U-Boot官方网站或仓库下载最新版本的源代码。
3.安装交叉编译工具链:根据目标硬件平台的指令集架构,选择合适的交叉编译工具链,并进行安装。
4.了解目标硬件平台:熟悉目标硬件平台的架构、引导方式、存储器布局等相关信息。
移植流程1.配置编译环境:设置交叉编译工具链的环境变量,以确保正确编译U-Boot源代码。
2.配置U-Boot:修改U-Boot源代码中的配置文件,根据目标硬件平台的特性和需求进行相应配置。
–配置目标硬件平台的处理器类型、存储器布局等基本信息。
–配置启动方式,如通过网络(TFTP)或存储介质(SD卡、NAND Flash)等进行启动。
–配置启动流程,如引导加载程序的加载顺序、启动脚本等。
3.添加适配代码:根据目标硬件平台的需求,编写适配代码,包括引导加载程序和设备驱动等。
–引导加载程序:为目标硬件平台选择合适的程序入口点,配置启动参数,加载适配的设备驱动等。
–设备驱动:根据目标硬件平台的外设,编写相应的设备驱动代码,以支持外设的初始化和操作。
4.编译U-Boot:使用交叉编译工具链,编译修改后的U-Boot源代码。
–执行make clean清除之前的编译结果。
–执行make命令编译U-Boot源代码。
5.烧录和运行:将编译生成的U-Boot镜像烧录到目标硬件平台,并进行测试。
–根据目标硬件平台的烧录方式(串口、JTAG等),将U-Boot镜像烧录到目标设备。
–启动目标设备,观察U-Boot的启动信息是否正常输出,检查设备驱动是否正常加载。
6.调试和优化:根据实际情况,进行U-Boot的调试和性能优化。
–使用调试工具进行调试,如调试器、串口打印信息等。
uboot的移植课堂讲义(gec2440)
没有目录 GEC/gec2440/! !那么我们建立该目录! ! 在 board 目录,执行命令: mkdir -p GEC/gec2440/
在 uboot 的顶层目录下再次 make!! 出现错误: make -C board/gec2440/GEC/
make[1]: 正在进入目录 `/home/bt/uboot_porting/u-boot-2010.06/board/gec2440/GEC' make[1]: *** 没有指明目标并且找不到 makefile。 停止。
在 uboot 的顶层目录下有三个文件需要关注一下: u-boot.bin:可烧写的 uboot 镜像; u-boot:完整的 uboot 执行文件; u-boot.map:符号表文件
下载运行 串口之所以没有输出信息,就在于时钟问题! ! !
打开 gec2440.c,修改:
#define FCLK_SPEED 2 #if FCLK_SPEED==0 #define M_MDIV 0xC3 #define M_PDIV 0x4 #define M_SDIV 0x1 #elif FCLK_SPEED==1 #define M_MDIV 0xA1 #define M_PDIV 0x3 #define M_SDIV 0x1 #elif FCLK_SPEED==2 #define M_MDIV 0x7f #define M_PDIV 0x2 #define M_SDIV 0x1 #endif /* Fout = 203MHz, Fin = 12MHz for Audio */
在 uboot 的顶层目录下再次 make distclean&&make gec2440_config&&make!!,最后出现: arm-linux-objcopy --gap-fill=0xff -O binary u-boot u-boot.bin 说明已经生成了烧写镜像 u-boot.bin!!!
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
u-boot-2011.06虽然支持一些常见的开发板,但如果u-boot-2011.06不支持我们手上的开发板,那就要找到与我们的开发板最接近的u-boot-2011.06所支持的开发板,在这个开发板的基础上进行移植。
u-boot-2011.06所支持的smdk2410开发板是最接近我的开发板的,所以我就在该此基础上进行修改、移植。
在移植之前,我们还需要安装、配置eldk,用于编译u-boot。
下面我们就先介绍一下eldk的安装与配置:1.下载eldk在ftp://ftp.denx.de/pub/eldk/选择任一版本的eldk并下载,我选择的是eldk4.2版本的arm-2008-11-24.iso文件。
把该文件下载到/home/zhaocj/download/目录下。
2.在root权限下安装eldk创建挂载点:mkdir /mnt/dvdrom挂载光驱:mount –o loop /home/zhaocj/download/arm-2008-11-24.iso/mnt/dvdrom安装eldk:cd /mnt/dvdrom./install –d /opt/eldk4.2/这样eldk就安装到了/opt/eldk4.2目录下。
3.设置环境变量cd ~gedit .bashrc在最后添加如下内容:export CROSS_COMPILE=arm-linux-export PATH=/opt/eldk4.2/bin: /opt/eldk4.2/usr/bin:$PATH保存并退出,然后执行:source .bashrc重启电脑就完成了eldk的安装。
下面就介绍u-boot-2011.06的移植,在这里我把我的开发板命名为zhaocj2440:1.下载u-boot在ftp://ftp.denx.de/pub/u-boot/下载目前最新的u-boot版本(即u-boot-2011.06.tar.bz2)到我的用户主目录下。
2.解压u-bootcd ~把u-boot-2011.06解压到当前目录下tar –xvjf u-boot-2011.06.tar.bz2cd u-boot-2011.063.在u-boot中添加我的开发板信息emacsboards.cfg打开boards.cfg文件,在第70行(smdk2410 arm arm920t – samsung s3c24x0)的下面添加一行,内容如下:zhaocj2440 arm arm920t – samsung s3c24x0保存并退出。
4.通过复制的方式添加我的开发板头文件cp include/configs/smdk2410.h include/configs/zhaocj2440.h5.通过复制的方式添加我的开发板文件夹cp –r board/samsung/smdk2410 board/samsung/zhaocj2440更改文件名mv board/samsung/zhaocj2440/smdk2410.c board/samsung/zhaocj2440/zhaocj2440.c 修改Makefile文件emacs board/samsung/zhaocj2440/Makefile打开Makefile文件,在第28行中,把COBJS :=smdk2410.o改为:COBJS:=zhaocj2440.o保存并退出。
6.编译make distcleanmake zhaocj2440_configmake在上一篇文章的基础上,本文详细介绍u-boot-2011.06的NorFlash启动移植方法。
1.修改宏定义打开include/configs/zhaocj2440.h文件第38行“#define CONFIG_S3C2410/*specifically a SAMSUNG S3C2410SoC */”改为:38:#define CONFIG_S3C2440 /* specifically a SAMSUNG S3C2440 SoC */目的是告之系统本开发板使用的是S3C2440处理器。
第131行“#define CONFIG_SYS_PROMPT"SMDK2410 # "”改为:131:#define CONFIG_SYS_PROMPT "ZHAOCJ2440# "目的是使命令行提示符显示为“ZHAOCJ2440# ”。
第185行“#define CONFIG_FLASH_CFI_LEGACY”改为:185:#define CONFIG_SYS_CFI_FLASH_CONFIG_REGS {0xFFFF}因为在u-boot-2011.06中,使用的是CFI的NorFlash接口,所以不需要定义CONFIG_FLASH_CFI_LEGACY,而是要定义CONFIG_SYS_CFI_FLASH_CONFIG_REGS。
第191行“#define CONFIG_SYS_MAX_FLASH_SECT (19)”改为:191:#define CONFIG_SYS_MAX_FLASH_SECT (35)因为本开发板使用的NorFlash是EN29LV160AB,它有35个扇区。
第212行“#define CONFIG_NAND_S3C2410”改为:212:#define CONFIG_NAND_S3C2440第213行“#define CONFIG_SYS_S3C2410_NAND_HWECC”改为:213:#define CONFIG_SYS_S3C2440_NAND_HWECC2.修改系统时钟频率打开arch/arm/cpu/arm920t/start.s文件第164行“# if defined(CONFIG_S3C2410)”改为:164:# if defined(CONFIG_S3C2440)第165行“ldr r1, =0x3ff”改为:165:ldr r1, =0x7fff目的是屏蔽所有子中断。
第173行“mov r1, #3”改为:173:mov r1, #5目的是使FCLK:HCLK:PCLK= 1:4:8。
打开board/samsung/zhaocj2440/zhaocj2440.c文件第42行至第44行的内容改为:42:#define M_MDIV 9243:#define M_PDIV 144:#define M_SDIV 1本开发板的输入晶振频率为12MHz,通过上面的修改,则MPLL频率为400MHz。
第54行至第56行的内容改为:54:#define U_M_MDIV 5655:#define U_M_PDIV 256:#define U_M_SDIV 2通过上面的修改,则UPLL频率为48MHz。
3.修改内存SDRAM时序打开board/samsung/zhaocj2440/lowlevel_init.s文件第54行至第126行的内容改为:54:#define B1_BWSCON (DW16)55:#define B2_BWSCON (DW16)56:#define B3_BWSCON (DW16)57:#define B4_BWSCON (DW32)58:#define B5_BWSCON (DW16)59:#define B6_BWSCON (DW32)60:#define B7_BWSCON (DW32)61:62:/* BANK0CON */63:#define B0_Tacs 0x364:#define B0_Tcos 0x365:#define B0_Tacc 0x766:#define B0_Tcoh 0x367:#define B0_Tah 0x368:#define B0_Tacp 0x169:#define B0_PMC 0x070:71:/* BANK1CON */72:#define B1_Tacs 0x1 73:#define B1_Tcos 0x1 74:#define B1_Tacc 0x6 75:#define B1_Tcoh 0x1 76:#define B1_Tah 0x1 77:#define B1_Tacp 0x0 78:#define B1_PMC 0x0 79:80:#define B2_Tacs 0x1 81:#define B2_Tcos 0x1 82:#define B2_Tacc 0x6 83:#define B2_Tcoh 0x1 84:#define B2_Tah 0x1 85:#define B2_Tacp 0x0 86:#define B2_PMC 0x0 87:88:#define B3_Tacs 0x1 89:#define B3_Tcos 0x1 90:#define B3_Tacc 0x6 91:#define B3_Tcoh 0x1 92:#define B3_Tah 0x1 93:#define B3_Tacp 0x095:96:#define B4_Tacs 0x1 97:#define B4_Tcos 0x1 98:#define B4_Tacc 0x6 99:#define B4_Tcoh 0x1 100:#define B4_Tah 0x1 101:#define B4_Tacp 0x0 102:#define B4_PMC 0x0 103:104:#define B5_Tacs 0x1 105:#define B5_Tcos 0x1 106:#define B5_Tacc 0x6 107:#define B5_Tcoh 0x1 108:#define B5_Tah 0x1 109:#define B5_Tacp 0x0 110:#define B5_PMC 0x0 111:112:#define B6_MT 0x3 113:#define B6_Trcd 0x1 114:#define B6_SCAN 0x1 115:116:#define B7_MT 0x3118:#define B7_SCAN 0x1119:120:/* REFRESH parameter */121:#define REFEN 0x1122:#define TREFMD 0x0123:#define Trp 0x1124:#define Trc 0x1125:#define Tchr 0x2126:#define REFCNT 12684.修改NandFlash相关内容。
尽管本次移植没有涉及到NandFlash,但为了能够编译成功,必须修改下面有关NandFlash的内容。