QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1657|回复: 2

Linux 2.6.9 Nand Flash JFFS2

[复制链接]
发表于 2005-10-6 12:10:48 | 显示全部楼层 |阅读模式
各位大侠,我在这个论坛的lumit4510项目里学习。国庆期间,我在lumit4510的S3c4510板子上移植了uClinux with Kernel 2.6.9,并且
加入了自己的NAND Flash的支持,希望最终能用这个Nand Flash作为
根文件系统。但是现在还有一些问题,所以到这里来向各位请教,希望大侠们
不吝赐教!谢谢!!
目前状态:
1.uClinux with kernel 2.6.9已经能成功跑起来
2.我甚至换了Romfs,改用NFS方式来作为Rootfs。(弄这个好辛苦,折腾半天)
3.已经能够检测到NandFlash,并且已经可以分区,可以eraseall /dev/mtd0.
4.JFFS2 on Nand Flash还存在问题。不太清楚具体在哪里!
下面是我dump的信息:

[code:1]
U-Boot 1.1.3 (Sep 28 2005 - 00:33:39)
                                                                                                                                                
U-Boot code: 00ED0000 -> 00EE8434  BSS: -> 00EF2688
IRQ Stack: 00eaef7c
FIQ Stack: 00eadf7c
RAM Configuration:
Bank #0: 00000000 16 MB
Flash:  2 MB
In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:  0
lumit4510 # tftp
TFTP from server 192.168.1.2; our IP address is 192.168.1.5
Filename 'uImage.bin'.
Load address: 0x100000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #########################
done
Bytes transferred = 1456708 (163a44 hex)
lumit4510 # bootm
## Booting image at 00100000 ...
   Image Name:   Linux 2.6.7-hcs0 Kernel Image
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1456644 Bytes =  1.4 MB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
OK
                                                                                                                                                
Starting kernel ...
                                                                                                                                                
Linux version 2.6.9-hsc0 ([email protected]) (gcc version 3.4.0) #15 Thu Oct 6 11:20:22 CST 2005
CPU: Samsung-S3C4510B [36807001] revision 1 (ARMv4T)
Machine: ESPD 4510B(S3C4510B)
Built 1 zonelists
Kernel command line: root=/dev/nfs rw nfsroot=192.168.1.2:/root/lumit/src/uClinux/2.6/uClinux-dist/romfs ip=192.168.1.5:::::eth0:any
PID hash table entries: 128 (order: 7, 2048 bytes)
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 16MB = 16MB total
Memory: 14696KB available (1250K code, 178K data, 68K init)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
NET: Registered protocol family 16
JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
Initializing Cryptographic API
ttyS0 at I/O 0x3ffd000 (irq = 4) is a Samsung S3C4510B Internal UART
ttyS1 at I/O 0x3ffe000 (irq = 6) is a Samsung S3C4510B Internal UART
RAMDISK driver initialized: 16 RAM disks of 1024K size 1024 blocksize
loop: loaded (max 8 devices)
Samsung S3C4510B Ethernet Driver version 0.2 (2004-06-13) <[email protected]>
Using anticipatory io scheduler
NAND device: Manufacturer ID: 0xec, Chip ID: 0x73 (Samsung NAND 16MiB 3,3V 8-bit)
Scanning device for bad blocks
Creating 2 MTD partitions on "NAND 16MiB 3,3V 8-bit":
0x00000000-0x00800000 : "LUMIT4510 flash partition A"
mtd: Giving out device 0 to LUMIT4510 flash partition A
0x00800000-0x01000000 : "LUMIT4510 flash partition B"
mtd: Giving out device 1 to LUMIT4510 flash partition B
NET: Registered protocol family 2
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 1024 bind 2048)
NET: Registered protocol family 1
NET: Registered protocol family 17
IP-Config: Guessing netmask 255.255.255.0
IP-Config: Complete:
      device=eth0, addr=192.168.1.5, mask=255.255.255.0, gw=255.255.255.255,
     host=192.168.1.5, domain=, nis-domain=(none),
     bootserver=255.255.255.255, rootserver=192.168.1.2, rootpath=
Looking up port of RPC 100003/2 on 192.168.1.2
Looking up port of RPC 100005/1 on 192.168.1.2
VFS: Mounted root (nfs filesystem).
Freeing init memory: 68K
Shell invoked to run file: /etc/rc
Command: hostname Samsung
Command: /bin/expand /etc/ramfs.img /dev/ram0
Command: mount -t proc proc /proc
Command: mount -t ext2 /dev/ram0 /var
mount: Mounting /dev/ram0 on /var failed: No such device
pid 16: failed 256
Command: mkdir /var/config
/var/config: File exists
Command: mkdir /var/tmp
/var/tmp: File exists
Command: mkdir /var/log
/var/log: File exists
Command: mkdir /var/run
/var/run: File exists
Command: mkdir /var/lock
/var/lock: File exists
Command: mkdir /var/empty
/var/empty: File exists
Command: cat /etc/motd
Welcome to
          ____ _  _
         /  __| ||_|
    _   _| |  | | _ ____  _   _  _  _
   | | | | |  | || |  _ \| | | |\ \/ /
   | |_| | |__| || | | | | |_| |/    \
   |  ___\____|_||_|_| |_|\____|\_/\_/
   | |
   |_|
                                                                                                                                                
For further information check:
http://www.uclinux.org/
                                                                                                                                                
Command: ifconfig lo 127.0.0.1
Command: route add -net 127.0.0.0 netmask 255.255.255.0 lo
Execution Finished, Exiting
                                                                                                                                                
Sash command shell (version 1.1.1)
/>
Sash command shell (version 1.1.1)
/> cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00800000 00004000 "LUMIT4510 flash partition A"
mtd1: 00800000 00004000 "LUMIT4510 flash partition B"
/>
==================================================================================
/> eraseall /dev/mtd0
MTD_open
MTD_ioctl
Erasing 16 Kibyte @ 0 --  0 % complete.MTD_ioctl
Erasing 16 Kibyte @ 4000 --  0 % complete.MTD_ioctl
Erasing 16 Kibyte @ 8000 --  0 % complete.MTD_ioctl
Erasing 16 Kibyte @ c000 --  0 % complete.MTD_ioctl
Erasing 16 Kibyte @ 10000 --  0 % complete.MTD_ioctl
Erasing 16 Kibyte @ 14000 --  0 % complete.MTD_ioctl
Erasing 16 Kibyte @ 18000 --  1 % complete.MTD_ioctl
Erasing 16 Kibyte @ 1c000 --  1 % complete.MTD_ioctl
Erasing 16 Kibyte @ 20000 --  1 % complete.MTD_ioctl
Erasing 16 Kibyte @ 24000 --  1 % complete.MTD_ioctl
Erasing 16 Kibyte @ 28000 --  1 % complete.MTD_ioctl
Erasing 16 Kibyte @ 2c000 --  2 % complete.MTD_ioctl
Erasing 16 Kibyte @ 30000 --  2 % complete.MTD_ioctl
Erasing 16 Kibyte @ 34000 --  2 % complete.MTD_ioctl
Erasing 16 Kibyte @ 38000 --  2 % complete.MTD_ioctl
Erasing 16 Kibyte @ 3c000 --  2 % complete.MTD_ioctl
Erasing 16 Kibyte @ 40000 --  3 % complete.MTD_ioctl
Erasing 16 Kibyte @ 44000 --  3 % complete.MTD_ioctl
Erasing 16 Kibyte @ 48000 --  3 % complete.MTD_ioctl
Erasing 16 Kibyte @ 4c000 --  3 % complete.MTD_ioctl
Erasing 16 Kibyte @ 50000 --  3 % complete.MTD_ioctl
Erasing 16 Kibyte @ 54000 --  4 % complete.MTD_ioctl
Erasing 16 Kibyte @ 58000 --  4 % complete.MTD_ioctl
Erasing 16 Kibyte @ 5c000 --  4 % complete.MTD_ioctl
Erasing 16 Kibyte @ 60000 --  4 % complete.MTD_ioctl
Erasing 16 Kibyte @ 64000 --  4 % complete.MTD_ioctl
Erasing 16 Kibyte @ 68000 --  5 % complete.MTD_ioctl
......................................................................
Erasing 16 Kibyte @ 7d0000 -- 97 % complete.MTD_ioctl
Erasing 16 Kibyte @ 7d4000 -- 97 % complete.MTD_ioctl
Erasing 16 Kibyte @ 7d8000 -- 98 % complete.MTD_ioctl
Erasing 16 Kibyte @ 7dc000 -- 98 % complete.MTD_ioctl
Erasing 16 Kibyte @ 7e0000 -- 98 % complete.MTD_ioctl
Erasing 16 Kibyte @ 7e4000 -- 98 % complete.MTD_ioctl
Erasing 16 Kibyte @ 7e8000 -- 98 % complete.MTD_ioctl
Erasing 16 Kibyte @ 7ec000 -- 99 % complete.MTD_ioctl
Erasing 16 Kibyte @ 7f0000 -- 99 % complete.MTD_ioctl
Erasing 16 Kibyte @ 7f4000 -- 99 % complete.MTD_ioctl
Erasing 16 Kibyte @ 7f8000 -- 99 % complete.MTD_ioctl
Erasing 16 Kibyte @ 7fc000 -- 99 % complete.MTD_ioctl
Erased 8192 Kibyte @ 0 -- 100% complete.
MTD_close
/>
CTRL-A Z for help | 19200 8N1
====================================================================================
/> nandwrite
usage: nandwrite <mtdname> <input file> <start address>
pid 21: failed 256
/> nandwrite /dev/mtd0 /var/tmp/jffs2.img 0
MTD_open
MTD_ioctl
MTD_write
MTD_ioctl
nand_write_oob: Failed write verify, page 0x00000000
ioctl(MEMWRITEOOB): Input/output error
MTD_close
pid 22: failed 256
/> nanddump
usage: nanddump <mtdname> <dumpname> [start addr] [length]
pid 23: failed 256
/> nanddump /dev/mtd0 cory.txt
MTD_open
MTD_ioctl
Would you like formatted output? y
y: Bad command or file name
/> nanddump /dev/mtd0 cory.txt
Dumping data starting at 0x00000000 and ending at 0x00800000...
MTD_read
nand_read_ecc: Failed ECC read, page 0x00000000
nand_read_ecc: Failed ECC read, page 0x00000000
pread: Bad message
MTD_close
pid 24: failed 256
/> cp /var/tmp/jffs2.img /dev/mtd0
MTD_open
MTD_write
nand_write_ecc: Attempt to write not page aligned data
/dev/mtd0: Invalid argument
MTD_close
/>
[/code:1]
 楼主| 发表于 2005-10-8 12:14:35 | 显示全部楼层
换了MTD和JFFS2之后,问题已经解决.谢谢.
回复

使用道具 举报

发表于 2006-5-9 14:27:02 | 显示全部楼层
问一下我出现的问题大部分和你的一样?你怎么换得MTD和JFFS2???
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-23 07:56 , Processed in 0.102096 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表