参考了
http://blog.chinaunix.net/u3/96581/showart.php?id=1934280不过是针对nand 64M的
我用的也是uboot2008.10:可以saveenv命令,nand write 也能写内核,为了支持nand write.yaffs,板子mini2440 flash 128M
参照网上修改了部分东西:在cmd_util.c文件中添加了
//长度不是528整数倍,认为数据出错。
if (((*length)%(nand->oobsize+nand->writesize)) != 0) {
printf ("Attempt to write error length data!\n");
return -EINVAL;
}
我知道128M nand flash 是2k对齐的 所以最初启动出现了 上面打印的 Attempt to write error length data,请问这里要怎么修改才能识别2k对齐呢?
我再注释掉了上面几行后,又出现了以下错误:
[mini2440]# tftp 30800000 fs_yaffs.image
dm9000 i/o: 0x20000300, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:00:3e:26:0a:5b
TFTP from server 192.168.9.101; our IP address is 192.168.9.100
Filename 'fs_yaffs.image'.
Load address: 0x30800000
Loading: T #################################################################
############################################
done
Bytes transferred = 1599312 (186750 hex)
[mini2440]# nand write.yaffs 30800000 300000 200000
NAND write: device 0 offset 0x300000, size 0x200000
skip the first blcok!
Skip bad block 0x00320000
data abort
pc : [<33f85cb4>] lr : [<33fa3254>]
sp : 33f3faa8 ip : 33fa332c fp : 33fa31ac
r10: 00020000 r9 : 30821000 r8 : 33f3ffdc
r7 : 30820800 r6 : 00000000 r5 : 33fa3254 r4 : 00000000
r3 : c0a76665 r2 : 00020000 r1 : cfc5f7ff r0 : 00000000
Flags: NzCv IRQs off FIQs off Mode SVC_32
Resetting CPU ...
我直接用nand write 写yaffs文件系统,起不来,最后出现 init出错,可能必须要实现nand write.yaffs才能写yaffs格式的文件吧,还请高手帮帮!