百问网Linux技术区Linux系统开发 支持S3C2410/S3C2440、yaffs、网卡CS8900、NAND Flash、xmodem的u-boot

1  /  2  页   12 跳转 查看:7259

支持S3C2410/S3C2440、yaffs、网卡CS8900、NAND Flash、xmodem的u-boot

支持S3C2410/S3C2440、yaffs、网卡CS8900、NAND Flash、xmodem的u-boot

这是我的书中支持烧写yaffs的u-boot,修改说明暂时不能发放。
自己对比代码就可以了。

添加的功能:
1.  同时支持S3C2410和S3C2440
2. 支持串口xmodem协议
3. 支持网卡芯片CS8900
4. 支持NAND Flash读写
5. 支持烧写yaffs文件系统映象

附件附件:

下载次数:557
文件类型:application/octet-stream
文件大小:
上传时间:2008-1-12 1:35:06
描述:rar

最后编辑thisway.diy 最后编辑于 2008-01-12 01:40:56
 

回复:支持S3C2410/S3C2440、yaffs、网卡CS8900、NAND Flash、xmodem...

多谢版主供的补丁,我在网上也搜到了一些相关的补丁,问题是我的内核是2.4.18,网上很多人都提到ECC校验出错的问题,不知道你提供的补丁的代码是否与与我内核的yaffs  ECC兼容?
 

回复:支持S3C2410/S3C2440、yaffs、网卡CS8900、NAND Flash、xmodem...

我用的是3.3.2的链
编译过程出现以下错误

                --start-group lib_generic/libgeneric.a board/100ask24x0/lib100ask24x0.a cpu/arm920t/libarm920t.a cpu/arm920t/s3c24x0/libs3c24x0.a lib_arm/libarm.a fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a net/libnet.a disk/libdisk.a rtc/librtc.a dtt/libdtt.a drivers/libdrivers.a drivers/nand/libnand.a drivers/nand_legacy/libnand_legacy.a drivers/sk98lin/libsk98lin.a post/libpost.a post/cpu/libcpu.a common/libcommon.a --end-group -L /usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2 -lgcc \
                -Map u-boot.map -o u-boot
arm-linux-ld: ERROR: /usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_udivdi3.oS) uses hardware FP, whereas u-boot uses software FP
File in wrong format: failed to merge target specific data of file /usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_udivdi3.oS)
arm-linux-ld: ERROR: /usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_clz.oS) uses hardware FP, whereas u-boot uses software FP
File in wrong format: failed to merge target specific data of file /usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_clz.oS)
make: *** [u-boot] Error 1

好像要把硬件FP改为软件FP,不知道如何下手。不知道斑鱼有没有遇到过这种问题,你用的是哪个版本的练?
 

回复: 支持S3C2410/S3C2440、yaffs、网卡CS8900、NAND Flash、xmodem...

修改cpu/arm920t/config.mk,解决编译时软浮点问题
PLATFORM_RELFLAGS += -fno-strict-aliasing  -fno-common -ffixed-r8

去掉了“-msoft-float”选项;
 

回复: 支持S3C2410/S3C2440、yaffs、网卡CS8900、NAND Flash、xmodem...



引用:
原帖由 xzsxiao213 于 2008-6-25 11:52:00 发表
修改cpu/arm920t/config.mk,解决编译时软浮点问题
PLATFORM_RELFLAGS += -fno-strict-aliasing  -fno-common -ffixed-r8

去掉了“-msoft-float”选项;



正想过来帖,结果别你先了
 

回复: 支持S3C2410/S3C2440、yaffs、网卡CS8900、NAND Flash、xmodem...

我下了一个uboot 1.1.6,地址是
http://dl2.csdn.net/fd.php?i=59952809201836&s=482f0e53c5a6ccb8bcdf5ff9df4ea566
下完以后我打了你给的补丁
patch -p1 < u-boot-1.1.6_100ask24x0_patch
然后我换3.3.2的链
而后make  100ask24x0_config
最后make  CROSS_COMPILE=arm-linux-
编译成功,但是烧写以后没有任何反映...........
不知道什么原因,可以解释下吗?谢谢。
附件里面是我的编译结果,不知道你们的板子上跑是什么结果。

附件附件:

文件名:u-boot.rar
下载次数:137
文件类型:application/octet-stream
文件大小:
上传时间:2008-6-25 20:55:21
描述:rar

 

回复:支持S3C2410/S3C2440、yaffs、网卡CS8900、NAND Flash、xmodem...

你的板子可能不同:
1.晶振是12MHz吗?
2.SDRAM是64M吗?
3.SDRAM位宽是32位吗?
 

回复: 支持S3C2410/S3C2440、yaffs、网卡CS8900、NAND Flash、xmodem...



引用:
原帖由 thisway.diy 于 2008-6-25 22:01:00 发表
你的板子可能不同:
1.晶振是12MHz吗?
2.SDRAM是64M吗?
3.SDRAM位宽是32位吗?


我的板子是友善之臂的SBC2410V6:http://www.arm9.net/matrix-v.asp


10M的.................

听你说到晶振的问题,我去改了下面的参数:
include/configs/100ask24x0.h 文件中
#define CONFIG_SYS_CLK_FREQ    10000000/* the SMDK2410 has 12MHz input clock */

但是还是没有用,我后来翻了过去我编译成功的一个uboot,发现当时编译的时候用的也是
#define CONFIG_SYS_CLK_FREQ    12000000/* the SMDK2410 has 12MHz input clock */
但是还是成功编译了

现在打上这个补丁,无论是10000000还是12000000都不行。估计是我改错了,请指教。


其他还要改哪些?应该怎么改,放大了问,对于不同晶振的板子,应该对uboot进行哪些修改,这点应该在你的书上有吧,不过你的书还没有出来,可不可以这边先讲讲
最后编辑billwfox 最后编辑于 2008-06-25 23:25:33
 

回复:支持S3C2410/S3C2440、yaffs、网卡CS8900、NAND Flash、xmodem...

1.时钟方面要看看,要确定FCLK、HCLK、PCLK分别是多少
2.UART的波特率也要计算,是不是真的如你所想?
3.MEMORY COTROLLER的那几个寄存器也是根据时钟来设置的──这点倒不是很严格。
总之,先确定前两个问题。至于改哪些代码,我暂时没时间看。
 

回复: 支持S3C2410/S3C2440、yaffs、网卡CS8900、NAND Flash、xmodem...



引用:
原帖由 thisway.diy 于 2008-6-26 0:43:00 发表
1.时钟方面要看看,要确定FCLK、HCLK、PCLK分别是多少
2.UART的波特率也要计算,是不是真的如你所想?
3.MEMORY COTROLLER的那几个寄存器也是根据时钟来设置的──这点倒不是很严格。
总之,先确定前两个问题。至于改哪些代码,我暂时没时间看。


我今天用万用表打了,发现晶振是12M........
但是还有一个现象,就是我的外接的32.768KHz晶振好像振不起来了。这个跟移植有没有关系?

原先,我移植的uboot可以跑起来,而且只是添加了nand部分。不记得修改了晶振,都能跑起来。
还要换晶振啊.....
 

回复:支持S3C2410/S3C2440、yaffs、网卡CS8900、NAND Flash、xmodem...

外接的32.768KHz晶振好像振不起来,跟UBOOT无关。
在解决UBOOT启动问题前,不用换晶振。
你有能用的BOOTLOADER吗?比如VIVI
另外,是使用串口0吗?
 

回复: 支持S3C2410/S3C2440、yaffs、网卡CS8900、NAND Flash、xmodem...



引用:
原帖由 thisway.diy 于 2008-6-26 15:16:00 发表
外接的32.768KHz晶振好像振不起来,跟UBOOT无关。
在解决UBOOT启动问题前,不用换晶振。
你有能用的BOOTLOADER吗?比如VIVI
另外,是使用串口0吗?


无论是用GEC2410还是SBC2410V6的vivi,还是自己移植的uboot,都试过了,都是可行的。前两个根本没有修改。而uboot,自己移植那个,我用了两种方法,一种是直接打luofuchong的补丁,还有一种是自己修改。这四种都没有问题的.....

我现在再试一回,全部试一回。

一直用的是串口0.

大胆问一句:你用的是哪里的开发板?

/********************************************************************/
刚刚试过了,三种loader都可行,跑起来没有问题,值得注意的是luofuchong的那个补丁,我看了看打补丁以后的uboot,他好像已经就是12M晶振的设置。

我的步骤是:有错吗,应该没有吧,估计还是板子不一样造成的。我再看看其他版本。

打补丁之后
make 100ask24x0_config
make CROSS_COMPILE=arm-linux-
拷贝镜像uboot.bin文件
通过sjf2410.exe直接烧写。
最后编辑billwfox 最后编辑于 2008-06-26 16:43:36
 

回复:支持S3C2410/S3C2440、yaffs、网卡CS8900、NAND Flash、xmodem...

我用的也是友善之臂的板子,2410、2440都试过。
你把luofuchong的那个补丁上传一下。
你的步骤没错。
最后编辑thisway.diy 最后编辑于 2008-06-26 20:06:15
 

回复: 支持S3C2410/S3C2440、yaffs、网卡CS8900、NAND Flash、xmodem...



引用:
原帖由 thisway.diy 于 2008-6-26 20:04:00 发表
我用的也是友善之臂的板子,2410、2440都试过。
你把luofuchong的那个补丁上传一下。
你的步骤没错。


下载地址是:
http://www.hhcn.org/maindoc/nandboot-2410-luofuchong.rar

贴个补丁,源代码大于1m,论坛有限制,传着麻烦

你可不可以贴下uboot.bin?我直接烧写。看看行不行。谢谢

附件附件:

文件名:u-boot-lfc.rar
下载次数:115
文件类型:application/octet-stream
文件大小:
上传时间:2008-6-27 8:21:37
描述:rar

最后编辑billwfox 最后编辑于 2008-06-27 08:47:17
 

回复: 支持S3C2410/S3C2440、yaffs、网卡CS8900、NAND Flash、xmodem...

这确实是个问题,我也想弄清楚原因,免得书出后被骂

附件附件:

文件名:u-boot.rar
下载次数:131
文件类型:application/octet-stream
文件大小:
上传时间:2008-6-27 11:43:55
描述:rar

 

回复:支持S3C2410/S3C2440、yaffs、网卡CS8900、NAND Flash、xmodem...

哦,兄弟,这个补丁只能从NOR FLASH启动,你是从NAND启动吗
 

回复: 支持S3C2410/S3C2440、yaffs、网卡CS8900、NAND Flash、xmodem...



引用:
原帖由 thisway.diy 于 2008-6-27 12:04:00 发表
哦,兄弟,这个补丁只能从NOR FLASH启动,你是从NAND启动吗


http://www.hhcn.org/maindoc/nandboot-2410-luofuchong.rar

从上面那个地址里面下uboot和补丁

还有,可以叫其他人也试试你这个帖子的uboot,看看跑起来行不行。可能是我的板子有“先天缺陷”

补丁里面有以下内容(部分),这不就是从nand启动吗,我一直用的是这个uboot,一直是nand启动



引用:
diff -ruN u-boot-20060523/cpu/arm920t/start.S u-boot/cpu/arm920t/start.S
--- u-boot-20060523/cpu/arm920t/start.S 2006-09-25 17:04:03.000000000 +0800
+++ u-boot/cpu/arm920t/start.S 2006-10-22 17:51:13.000000000 +0800
@@ -140,10 +140,10 @@
ldr r0, =INTMSK
str r1, [r0]
# if defined(CONFIG_S3C2410)
- ldr r1, =0x3ff
+ ldr r1, =0x7ff
ldr r0, =INTSUBMSK
str r1, [r0]
-# endif
+# endif /*CONFIG_S3C2410*/

/* FCLK:HCLKCLK = 1:2:4 */
/* default FCLK is 120 MHz ! */
@@ -220,6 +220,20 @@
/* END stuff after relocation */
#endif

+#ifdef CONFIG_S3C2410_NAND_BOOT
+ bl copy_myself
+
+ @ jump to ram
+ ldr r1, =on_the_ram
+ add pc, r1, #0
+ nop
+ nop
+1: b 1b @ infinite loop
+
+on_the_ram:
+#endif
+
+
ldr pc, _start_armboot

_start_armboot: .word start_armboot
@@ -236,6 +250,111 @@
*************************************************************************
*/

+#ifdef CONFIG_S3C2410_NAND_BOOT
+copy_myself:
+ mov r10, lr
+@ reset NAND
+ mov r1, #NAND_CTL_BASE
+ ldr r2, =0xf830 @ initial value
+ str r2, [r1, #oNFCONF]
+ ldr r2, [r1, #oNFCONF]
+ bic r2, r2, #0x800 @ enable chip
+ str r2, [r1, #oNFCONF]
+ mov r2, #0xff @ RESET command
+ strb r2, [r1, #oNFCMD]
+ mov r3, #0 @ wait
+
+1: add r3, r3, #0x1
+ cmp r3, #0xa
+ blt 1b
+2: ldr r2, [r1, #oNFSTAT] @ wait ready
+ tst r2, #0x1
+ beq 2b
+ ldr r2, [r1, #oNFCONF]
+ orr r2, r2, #0x800 @ disable chip
+ str r2, [r1, #oNFCONF]
+
+ @ get read to call C functions (for nand_read())
+ ldr sp, DW_STACK_START @ setup stack pointer
+ mov fp, #0 @ no previous frame, so fp=0
+
+ @ copy vivi to RAM
+ ldr r0, =UBOOT_RAM_BASE
+ mov r1, #0x0 @address
+ mov r2, #0x30000 @size
+ bl nand_read_ll
+
+ tst r0, #0x0
+ beq ok_nand_read
+
+#ifdef CONFIG_DEBUG_LL
+bad_nand_read:
最后编辑billwfox 最后编辑于 2008-06-27 13:33:16
 

回复:支持S3C2410/S3C2440、yaffs、网卡CS8900、NAND Flash、xmodem...

不知道斑鱼有没有得到什么结论?
难道是我板子出问题了?我去换晶振
 

回复: 支持S3C2410/S3C2440、yaffs、网卡CS8900、NAND Flash、xmodem...

我用的扬创2440的板子,试了下版主的补丁,好像不能从nand启动吧,大概搜了下补丁好像没有修改过start.S哦~
 

回复:支持S3C2410/S3C2440、yaffs、网卡CS8900、NAND Flash、xmodem...

这个补丁支持NAND,但是不支持NAND BOOT,标题有歧义
从NOR BOOT后,可以读写NAND
 
1  /  2  页   12 跳转

地址:广东省深圳市南山区南山大道3003号久商大厦C-1406;邮编:518052;电话:0755-86200561

粤ICP备09041549号, 版权所有 百问网   Sitemap

Powered by Discuz!NT 2.0.1214    Copyright © 2001-2010 Comsenz Inc.
Processed in 0.078125 second(s) , 6 queries.
返顶部