博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

Tekkaman Ninja

Linux我的梦想,我的未来! 专注linux内核和驱动!本博客的原创文章的内容会不定期更新或修正错误! 转载文章都会注明出处,若有侵权,请即时同我联系,我一定马上删除!! 原创文章版权所有!如需转载,请注明出处: tekkman.cublog.cn ,谢谢合作!!!!!
  tekkman.cublog.cn

关于作者
姓名:Tekkaman  Ninja
职业:ARM9+Linux
年龄:25
位置:福建龙岩
个性介绍:钻研嵌入式Linux技术
E-Mail:tekkamanninja@163.com
|| << >> ||
我的分类


移植U-Boot.1.3.1到S3C2410和S3C2440

移植U-Boot.1.3.1到S3C2410和S3C2440

   在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)

文件: u-boot-1.3.1.rar
大小: 121KB
下载: 下载


以下是进一步学习后的改进版(暂时只支持2410),使用nand驱动,支持Xmodem传输和yaffs镜像烧写(我使用Linux2.6.24.3内核):

文件: u-boot-1.3.1.tar.gz
大小: 118KB
下载: 下载

以下是配套的yaffs镜像制作工具:

文件: mkyaffsimage.tar.gz
大小: 7KB
下载: 下载

Xmodem传输是参考了http://www.100ask.net/showtopic-27.aspx上的补丁。

yaffs烧写除了参考了http://www.100ask.net/中的补丁外还主要参考了嵌入式中国http://www.armchina.cn/中的文章。在这里谢谢hiboy的分享


修改记录如下(大致如下,若有遗漏以压缩包中文件为准(老版本,不支持yaffs烧写,使用nand_legacy)):

 

·移植U-Boot.1.3.1到S3C244和S3C2410
·移植U-Boot.1.3.1到S3C24X0(补:DM9000网卡移植)
·U-Boot1.3.1中JFFS2文件系统支持和U盘支持的使用备忘

发表于: 2008-03-01,修改于: 2008-06-19 20:12,已浏览2675次,有评论17条 推荐 投诉


网友评论
网友: 刚学嵌入式的菜鸟 时间:2008-03-05 17:36:09 IP地址:58.49.224.★
真的很感谢你啊,朋友,学习中。

网友: skyful_stars 时间:2008-03-10 17:31:38 IP地址:218.58.60.★
你好,我是刚开始学习linux,我使用的是扬创的YC2440的板子,用你的这个方法在Fedora8系统下编译u-boot 1.1.4 (官网的源包)环境是arm-linux-gcc 2.95.3,应该适用吧?但我怎么第一步编译就不能通过呢?不只如此我编译内核自带的smdk2410_config都是同样的错误,最后的错误提示
in -ffreestanding -nostdinc -isystem /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/include -pipe  -DCONFIG_ARM -D__ARM__ -march=armv4 -mabi=apcs-gnu -Wall -Wstrict-prototypes -c -o hello_world.o hello_world.c
cc1: Invalid option `abi=apcs-gnu'
make[1]: *** [hello_world.o] 错误 1
make[1]: Leaving directory `/utuLinux/s3c2440/u-boot-1.1.4/examples'
make: *** [examples] 错误 2

能指导下问题出在哪里了吗?万分感谢!

Blog作者的回复:
这种时候 google 一下其实很好解决,给你两个链接:
http://hi.baidu.com/wangy0919/blog/item/55390c60093e6edd8db10dc5.html
http://www.lupaworld.com/32316/viewspace_14587.html


网友: skyful_stars 时间:2008-03-11 09:09:55 IP地址:218.58.60.★
谢谢,这个问题解决了。
在你的说明里,#include <status_led.h>    /*这是针对AT91RM9200DK开发板的。对于SCB2440V4也有4个LED指示灯,我用来指示程序用行的进度。*/
我的板子也有4个LED,也想这么用,但我找你给的文件里没找到 status_led.h这个文件,还有#if    defined(CONFIG_AT91RM9200DK)
    bl coloured_LED_init
    bl red_LED_on
#endif
这里面的2个函数,是在哪里?可否给我发过来,我刚开始学这个,比较菜!谢谢!skyful_stars@126.com

Blog作者的回复:
在\board\at91rm9200dk\led.c


网友: skyful_stars 时间:2008-03-11 09:49:40 IP地址:218.58.60.★
我在1.3.1源包里找到了4个status_led.h文件,这里是使用的哪个?
/include   /include/asm-nios  /include/asm-nios2  /include/asm-ppc ,应该是第一个吧?能否把你的发过来参考下?

Blog作者的回复:
看你是用什么芯片,一般会是第一个


网友: 本站网友 时间:2008-03-16 15:59:18 IP地址:59.173.129.★
I have a problem with DM9000.Can I look at your file lowlevel_init.S?
my E-mail chensi_04@126.com
Thank you!

Blog作者的回复:
已发给你了


网友: 本站网友 时间:2008-04-02 23:36:19 IP地址:210.76.98.★
我的nand flash是三星的64m,移植成功,但是saveenv出错。
puts ("Writing to Nand... ");没执行。
估计是前面的nand_legacy_erase错误。请问怎末解决?谢谢

网友: 本站网友 时间:2008-04-02 23:42:40 IP地址:210.76.98.★
惭愧,搞定了。居然忘记屏蔽return 1了。呵呵。

网友: conding 时间:2008-04-08 10:48:24 IP地址:59.54.98.★
楼上的兄弟屏蔽return 1干什么?那 应该是出错返回阿?

网友: conding 时间:2008-04-08 11:31:50 IP地址:59.54.98.★
 Tekkaman,想请问下如果要考虑直接将uboot下载到ram中执行是否要保留
relocate:                /* relocate U-Boot to RAM     */
    adr    r0, _start        /* r0 <- current position of code */
    ldr    r1, _TEXT_BASE        /* test if we run from flash or RAM */
    cmp r0, r1 /* don't reloc during debug */
    beq stack_setup
可是我的移植还是不支持

Blog作者的回复:
看你是nand boot还是nor boot
nand boot:
无需保留,按我的代码改就好了

nor boot:
保留,并去除测试uboot是否在内存中的指令。


网友: kamiuouc 时间:2008-04-14 15:06:54 IP地址:221.0.131.★
你好!我在S3c2410上移植uboot1.3.1网卡是DM9000AEP,没有nor flash,两片三星的32M nand flash,现在移植差不多了。只是板子ping不通主机,而且插上交叉线网卡LED也不亮,只是ping的时候亮一下就灭了,提示
host 192.168.7.6 not alive
请问是不是网卡驱动的问题,我就是用的uboot里的DM9000的驱动没有改,谢谢

Blog作者的回复:
不知是不是你的host防火墙的问题,先确认它已关闭,再试试。

DM9000的驱动只要 基地址之类的设置好了,驱动不改也能用的。


网友: 本站网友 时间:2008-05-11 16:41:21 IP地址:59.173.130.★
楼主,你好。我也是SBC2440 V4的板子,由于原有的VIVI好像不能用了,U-boot弄了几天没跑起来,不知道板子是不是有问题(买回放了大半年)。可不可以把你的SBC2440 v4的u-boot的bin文件发给我。
chensi_04@126.com   万分感激

网友: 本站网友 时间:2008-05-17 04:08:22 IP地址:222.131.35.★
楼主,您好。我用的也是博创2410的板子,正是拜读了楼主的两篇文章,才使我在移植u-boot-1.2.0和linux2.6.25的过程中少走了不少弯路。真是万分感激!
对了,楼主,您移植过博创2410板子上的声卡驱动没有?我在网上找了一段关于S3C2410上Uda1341声卡芯片的驱动代码(linux2.6),同时参照博创光盘上linux2.4.18中的移植好的代码做了修改,但是在播放声音的时候,总是出现dma enqueue failed.的错误,跟进去发现是在内核树中的dma.c文件s3c2410_dma_waitforload函数调用失败,打印dma3: loadbuffer: timeout loading buffer的信息。我修改的部分主要是将L3MODE、L3CLOCK和L3DATA连接的GPIO端口改成了GPG8、GPG9和GPG10。一直弄不清楚是什么原因,不知道楼主有没有这样的经历,谢谢!

Blog作者的回复:
声卡方面已经放音成功,全双工的还没做,做好了会上传!

Linux2.6.18以上的UDA1341驱动需要修改才能用。主要是DMA驱动有点小问题。具体的我有空会写一份移植文档。


网友: 本站网友 时间:2008-05-26 20:14:36 IP地址:124.64.177.★
楼主,您好。能不能把uda1341驱动的文件先发一份给我,谢谢!
zhj8407@163.com

网友: 本站网友 时间:2008-06-08 17:02:20 IP地址:121.28.194.★
老兄按你的方法移植了boot,结果网卡灯点亮了,可ping不到,ping自己也ping不到,是什么原因阿,启动信息如下:
U-Boot 1.1.3 (Jun  5 2008 - 11:52:08)


U-Boot code: 33F80000 -> 33FA7974  BSS: -> 33FEA100

RAM Configuration:

Bank #0: 30000000 64 MB

Flash:  2 MB

In:    serial

Out:   serial

Err:   serial

dm9000 i/o: 0x10000300, id: 0x90000a46 

MAC: ff:ff:ff:ff:ff:ff

operating at unknown: 15 mode

Hit any key to stop autoboot:  0 

KILL2440 # 
有时还为:
U-Boot code: 33F80000 -> 33FA7890  BSS: -> 33FEA000

RAM Configuration:

Bank #0: 30000000 64 MB

Flash:  2 MB

In:    serial

Out:   serial

Err:   serial

dm9000 i/o: 0x10000300, id: 0x90000a46 

could not establish link

Hit any key to stop autoboot:  0 

请给予解答,谢谢了,

Blog作者的回复:
是不是你的网卡芯片和uboot的代码不配,你的是DM9000ae或别的什么?uboot下的DM9000的代码基本不用改的,只要配好地址就好。


网友: 本站网友 时间:2008-06-12 16:02:04 IP地址:118.26.196.★
博主,你好,看了你关于u-boot的文章收获颇多,按照你的方法移植了u-boot可以启动了,但是还有个问题希望向博主请教。u-boot启动后进入命令行,网卡的灯不亮,在ping一次,或者是tftp链接一下灯就会亮起,此后一切正常,是不是在uboot启动的时候没有默认激活网卡?查看了板子上带的u-boot的启动,灯会自动亮起的。
比较了各种情况后发现,当启动命令行出现
dm9000 i/o: 0x19000300, id: 0x90000a46 

MAC: 01:02:03:04:05:06
后网卡灯即亮起。查看了代码不知道这一功能应该在何处加入,请问博主有没有这种经历,请赐教,谢谢

Blog作者的回复:
默认DM9000 在启动时没有初始化,只有在使用网络命令时才启动并初始化网卡。我没有特意去加启动初始化的功能。你要加的话可以根据我在移植AX88796时对uboot的网卡驱动的介绍自己加以下。不难的。


网友: wangzhentn 时间:2008-07-11 15:25:54 IP地址:61.183.241.★
博主,你好,我用你提供的u-boot1.3.1,自己使用的扬创开发板yc2440-f.自己可以实现点亮板上的等,知道可以到跳转到函数start_armboot()中去了,我看了vivi串口设置,自己在start.s中可以打印出字符,但是串口没有显示,请问问题出在那里?急切求助!

Blog作者的回复:
看看你的有关串口的代码有没有被编译进取?


网友: yeeman 时间:2008-07-15 23:44:30 IP地址:60.164.193.★
(似乎只支持普通U盘,不支持读卡器之类的USB存储设备)
可以支持读卡器

Blog作者的回复:
我当时做的时候不行,不知道是怎么回事。没怎么研究USB驱动,抱歉!谢谢你的提醒!


 发表评论