Hello,About jffs2 on NAND,on S3C2410

xuelu at xuelu.org xuelu at xuelu.org
Sat Aug 21 00:45:20 EDT 2004


Hello everybody:
   I am using Samsung SMDK S3C2410 with one 64MB SM card,MIZI linux, Linux
version 2.4.18-rmk7-pxa1 with jffs2 compiled in.Now I meet one problem of
erase jffs2 filesystem on SM card.
	I have done the kernel to partition my SM card as:
------------------------------------------------------------------
NAND device: Manufacture ID: 0xec, Chip ID: 0x76 (Samsung K9D1208V0M)
Creating 5 MTD partitions on "Samsung K9D1208V0M":
0x00000000-0x00020000 : "vivi"
0x00020000-0x00030000 : "param"
0x00030000-0x00100000 : "kernel"
0x00100000-0x02800000 : "root"
0x02800000-0x03ffc000 : "data"
-------------------------------------------------------------------
	I use vivi to part the SM card as the same size above and specify
the "data" to jffs2:
-------------------------------------------------------------------
vivi> part show
mtdpart info. (5 partitions)
name              offset        size        flag
------------------------------------------------
vivi            : 0x00000000    0x00020000     4  128k
param           : 0x00020000    0x00010000     4   64k
kernel          : 0x00030000    0x000c0000     4  768k
root            : 0x00100000    0x02700000     4   39M
data            : 0x02800000    0x017fc000     8   23M+1008k
------------------------------------------------
	The flag 4 is CRAMFS,the flag 8 is jffs2.
	The vivi has no "flash erase" command to format/erase the mtdblock.
	Now,I try to use the mtd's util tools to erase the jffs2 part.
	I cvs the recently source code,cross-compiled the util dir in the
mtd's source tree.
	I use flash_erase/flash_eraseall/flash_info do as follow:
-------------------------------------------------
# ./flash_erase /dev/mtd/4
File open error
# ./flash_erase /dev/mtdblock/4 
Erase Total 1 Units
# ./flash_eraseall  /dev/mtd/4 
./flash_eraseall: /dev/mtd/4: Permission denied
# ./flash_eraseall  /dev/mtdblock/4 
./flash_eraseall: /dev/mtdblock/4: unable to get MTD device info
# ./flash_info /dev/mtd/4
Device /dev/mtd/4 has 0 erase regions
# ./flash_info /dev/mtdblock/4 
# mkdir /tmp/mtd
# mount -t jffs2 /dev/mtd/4 /tmp/mtd/
mount: Mounting /dev/mtd/4 on /tmp/mtd failed: Block device required
# mount -t jffs2 /dev/mtdblock/4 /tmp/mtd/ 
mount: Mounting /dev/mtdblock/4 on /tmp/mtd failed: Permission denied
# mount
/dev/mtdblock/3 on / type cramfs (rw)
none on /dev type devfs (rw)
ramfs on /etc type ramfs (rw)
none on /proc type proc (rw)
none on /dev/pts type devpts (rw)
tmpfs on /dev/shm type tmpfs (rw)
-----------------------------------------
	I also tried to use jffs2 image to dd:
-----------------------------------------
# dd if=data.img of=/dev/mtdblock/4
dd: /dev/mtdblock/4: Operation not permitted
# dd if=data.img of=/dev/mtd/4     
dd: /dev/mtd/4: Permission denied
-----------------------------------------
	Other more,the device seems readonly,I am comfused here:
-----------------------------------------
# cd /dev/mtd/
# ls -l
crw-rw-rw-    1 0        0         90,   0 Jan  1  1970 0
crw-rw-rw-    1 0        0         90,   1 Jan  1  1970 0ro
crw-rw-rw-    1 0        0         90,   2 Jan  1  1970 1
crw-rw-rw-    1 0        0         90,   3 Jan  1  1970 1ro
crw-rw-rw-    1 0        0         90,   4 Jan  1  1970 2
crw-rw-rw-    1 0        0         90,   5 Jan  1  1970 2ro
crw-rw-rw-    1 0        0         90,   6 Jan  1  1970 3
crw-rw-rw-    1 0        0         90,   7 Jan  1  1970 3ro
crw-rw-rw-    1 0        0         90,   8 Jan  1  1970 4
crw-rw-rw-    1 0        0         90,   9 Jan  1  1970 4ro
# cd /dev/mtdblock/
# ls -l
brw-rw-rw-    1 0        0         31,   0 Jan  1  1970 0
brw-rw-rw-    1 0        0         31,   1 Jan  1  1970 1
brw-rw-rw-    1 0        0         31,   2 Jan  1  1970 2
brw-rw-rw-    1 0        0         31,   3 Jan  1  1970 3
brw-rw-rw-    1 0        0         31,   4 Jan  1  1970 4
-----------------------------------------
I guess the *ro means the block filesystem is readonly,so so much "
Permission denied" show......
I do not know how to do with this problem......
Can somebody help?Thanks first.;-(
Paste my kernel's .config:
-----------------------------------------
[root at xuelu]#grep MTD .config
# Memory Technology Devices (MTD)
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
CONFIG_MTD_PARTITIONS=y
CONFIG_MTD_CONCAT=y
# CONFIG_MTD_REDBOOT_PARTS is not set
CONFIG_MTD_CMDLINE_PARTS=y
# CONFIG_MTD_AFS_PARTS is not set
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_CFI=y
CONFIG_MTD_JEDECPROBE=y
CONFIG_MTD_GEN_PROBE=y
# CONFIG_MTD_CFI_ADV_OPTIONS is not set
# CONFIG_MTD_CFI_INTELEXT is not set
# CONFIG_MTD_CFI_AMDSTD is not set
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_OBSOLETE_CHIPS is not set
# CONFIG_MTD_AMDSTD is not set
# CONFIG_MTD_SHARP is not set
# CONFIG_MTD_JEDEC is not set
CONFIG_MTD_PHYSMAP=y
CONFIG_MTD_PHYSMAP_START=0x8000000
CONFIG_MTD_PHYSMAP_LEN=0x4000000
CONFIG_MTD_PHYSMAP_BUSWIDTH=2
# CONFIG_MTD_ARM_INTEGRATOR is not set
# CONFIG_MTD_CDB89712 is not set
# CONFIG_MTD_SA1100 is not set
# CONFIG_MTD_DC21285 is not set
# CONFIG_MTD_LUBBOCK is not set
# CONFIG_MTD_FORTUNET is not set
# CONFIG_MTD_EPXA10DB is not set
# CONFIG_MTD_PXA_CERF is not set
# CONFIG_MTD_AUTCPU12 is not set
# CONFIG_MTD_PCI is not set
# Self-contained MTD device drivers
# CONFIG_MTD_PMC551 is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_MTDRAM is not set
# CONFIG_MTD_BLKMTD is not set
# CONFIG_MTD_DOC1000 is not set
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOCPROBE is not set
# CONFIG_MTD_NAND is not set
CONFIG_MTD_SMC=y
CONFIG_MTD_NANDY=y
CONFIG_MTD_NAND_ECC=y
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
# CONFIG_MTD_NAND_BONFS is not set
CONFIG_MTD_SMC_S3C2410_SMDK=y
[root at xuelu]# grep -i NAND .config
# NAND Flash Device Drivers
# CONFIG_MTD_NAND is not set
CONFIG_MTD_NANDY=y
CONFIG_MTD_NAND_ECC=y
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
# CONFIG_MTD_NAND_BONFS is not set
[root at xuelu]# grep -i jffs .config
# CONFIG_JFFS_FS is not set
CONFIG_JFFS2_FS=y
CONFIG_JFFS2_FS_DEBUG=0
[root at xuelu]# grep -i cfi .config 
CONFIG_MTD_CFI=y
# CONFIG_MTD_CFI_ADV_OPTIONS is not set
# CONFIG_MTD_CFI_INTELEXT is not set
# CONFIG_MTD_CFI_AMDSTD is not set
-----------------------------------------

Thanks very much again~~!!!

	
xuelu at 2004.08.21.China





More information about the linux-mtd mailing list