Fedora-ARM
全部博文(241)
分类: LINUX
2008-03-01 14:01:48
移植U-Boot.1.3.1到S3C2410和S3C2440
(本文介绍的uboot已经很旧,请到uboot-2009.01获取最新版本代码补丁)
在9月份移植u-boot1.2.0到S3C2410AL以及10月份在将其移植到s3c2440之后,就再没怎么碰U-Boot了。现在U-Boot已经更新到了1.3.1版本,我决定趁过年的时间看看U-Boot的变化,并移植到S3C2440和S3C2410。这次移植主要是依据以前的移植记录,将S3C2440和S3C2410的移植修改合并了,还加了U-Boot对JFFS2和USB支持配置。至于网卡的支持,沿用以前1.2.0的修改记录(支持的网卡:CS8900、DM9000和AX88796A),这里不再赘述,请看我以前的移植记录。
对于YAFFS文件系统的镜像烧写功能,网上已有高人做了相关补丁,我还没时间研究,待有时间研究完后再写出相关的移植记录。
以下提供所有修改过的文件的压缩包(.rar文件),如果想省时间直接将其复制到相应文件夹,修改\include\configs\tekkaman2440.h(SBC2440V4+DM9000)中的配置就好了(tekkaman2440.h_2410 是2410 (博创UP-NETARM2410-S+AX88796A)的配置文件,修改文件名为tekkaman2440.h即可使用)。
请自行修改Makefile中的编译器路径!(老版本,不支持yaffs烧写,使用nand_legacy)
|
以下是进一步学习后的改进版(暂时只支持2410),使用nand驱动,支持Xmodem传输和yaffs镜像烧写(我使用Linux2.6.24.3内核):
|
以下是配套的yaffs镜像制作工具:
|
Xmodem传输是参考了上的补丁。
yaffs烧写除了参考了中的补丁外还主要参考了嵌入式中国中的文章。在这里谢谢hiboy的分享。
修改记录如下(大致如下,若有遗漏以压缩包中文件为准(老版本,不支持yaffs烧写,使用nand_legacy)):
chinaunix网友2009-08-12 11:26:50
多谢博主,按你的方法,终于把2440的u-boot搞定了。 现补充一点: DM9000响应慢的原因是phy_read(),phy_write()内部的延时不足,错误读取了DM9000寄存器数值。修改如下: /* Read a word from phyxcer */ static u16 phy_read(int reg) { u16 val; int i; /* Fill the phyxcer register into REG_0C */ DM9000_iow(DM9000_EPAR, DM9000_PHY | reg); DM9000_iow(DM9000_EPCR, 0xc); /* Issue phyxcer read command */ i=0; while(DM9000_ior(DM9000_EPCR) & 0x01) /* Wait read complete */ {
chinaunix网友2009-07-03 21:47:41
你好,按照步骤作下来MAKE 时 总是 nand_base.c: In function `nand_select_chip': nand_base.c:290: error: `NAND_CTL_CLRNCE' undeclared (first use in this function) nand_base.c:290: error: (Each undeclared identifier is reported only once nand_base.c:290: error: for each function it appears in.) nand_base.c:293: error: `NAND_CTL_SETNCE' undeclared (first use in this function) nand_base.c: In function `nand_command': nand_base.c:542: error: `NAND_CTL_SETCLE' undeclared (first use in this function) nand_ba
chinaunix网友2009-07-03 10:49:28
请教博主:本人在移植过程中遇到1341不能录音的问题,请问您是怎么解决的?我的内核版本有点老,是2.6.12的,驱动是基于OSS的,您的是基于OSS还是ALSA的?谢谢指点!
chinaunix网友2009-05-18 15:20:18
你好,修改寄存器地址定义部分,新增加了下面定义 #define CLK_CTL_BASE 0x4C000000 /* tekkaman */ #define MDIV_405 0x7f << 12 /* tekkaman */ #define PSDIV_405 0x21 /* tekkaman */ #define MDIV_200 0xa1 << 12 /* tekkaman */ #define PSDIV_200 0x31 /* tekkaman */ 我用的ok2440开发板提供的数据手册中没找到对映项,请问下这几项对应那段寄存器地址的定义,期待你的帮助,谢谢