|
各位大侠,我在这个论坛的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] |
|