Linux 2.6.x, MTD drivers and NAND flashes

Gary Kenaley gkenaley at echelon.com
Tue Jun 12 05:59:53 EST 2007


Laurent,

Can't you just use the flashcp copy command from the mtd-utils package?
-----------------------------------------------------------------------
flash_eraseall -j /dev/mtd0

mkfs.jffs2 -b -n --eraseblock=131072 --pagesize=2048 -p -r /test_root -v -o test_root.img

flashcp test_root.img /dev/mtd0


The other way is what Bill mentions:
------------------------------------
flash_eraseall -j /dev/mtd0
mount -t jffs2 /dev/mtdblock0 /tmp/mnt
tar -xzf test_root.tgz -C /tmp/mnt
umount /tmp/mnt

Gary

> > ________________________________________
> > From: linuxppc-embedded-bounces+gkenaley=echelon.com at ozlabs.org > > > [mailto:linuxppc-embedded-bounces+gkenaley=echelon.com at ozlabs.org] On Behalf > > Of Bill Gatliff
> > Sent: Monday, June 11, 2007 9:00 AM
> > To: Laurent Lagrange
> > Cc: linuxppc-embedded at ozlabs.org
> > Subject: Re: Linux 2.6.x, MTD drivers and NAND flashes
> >
> > Laurent Lagrange wrote: 
> > Hello,
> >
> > I use a Linux 2.6.9 on a 85xx custom board with a NAND flash. 
>> > This flash has some bad blocks.
> > NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB > > 3,3V 8-bit)
> > Scanning device for bad blocks
> > Bad eraseblock 8 at 0x00100000
> > Bad eraseblock 430 at 0x035c0000
> >...
> > Creating 1 MTD partitions on "NAND 128MiB 3,3V 8-bit":
> > 0x00000000-0x08000000 : "flash partition 1".
>> > I have selected in the kernel :
> > 1) the MTD character and block supports for NAND,
> > 2) the CRAMFS and JFFS2 supports for NAND.
>> > I can erase the flash but receive IO errors for each bad blocks (that > > seems right).
> > I can mount an empty JFFS2 partition on the NAND and untar some > > directories and files in it.
>> > I would like to generate some JFFS2 images and program them in the flash > > with a character 
> > command like "cat img > /dev/mtd/0". If I dont encounter a bad block, it > > runs right else the 
> > command fails. 
>> > This is a little bit annoying. So my question is simple : 
> > Is there a MTD character driver which can detect and ignore the bad > blocks > in a NAND flash ? 
> >
> Wrong question.  :)

> With NAND, working directly with the media is indeed a pain because of bad > blocks.  What's done instead is to leave that to the filesystem.  Pick a > NAND-aware one like YAFFS.
>
>
> b.g.
>
> -- 
> Bill Gatliff
> bgat at billgatliff.com



More information about the Linuxppc-embedded mailing list