RE: MTD Flash Howto ?

3 messages, 3 authors, 2006-08-11 · open the first message on its own page

RE: MTD Flash Howto ?

From: Ned W. Rhodes <hidden>
Date: 2006-08-04 14:33:48

The book Building Embedded Linux Systems has a good section on the use of
flash file systems.

When you boot, you will see something like this, depending on the type of
flash driver you have. Make sure you have defined your mtd map in
kernel/drivers/mtd/map.

JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
JFS: nTxBlock = 965, nTxLock = 7720

Then if you have the MTD partitions correctly identified, the kernel will
show you something like:

CBG flash bank 0: Found 1 x16 devices at 0x0 in 16-bit bank
 Intel/Sharp Extended Query Table at 0x0031
Using buffer write method
cfi_cmdset_0001: Erase suspend on write enabled
Creating 2 MTD partitions on "CBG flash bank 0":
0x00000000-0x01800000 : "ffw1"
0x01800000-0x02000000 : "filesystem1"

Once booted you can look at /proc/mtd and you should see the partitions
something like:

[root@lbg ]# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 01800000 00020000 "ffw1"
mtd1: 00800000 00020000 "filesystem1"

Your mileage may vary depending on the type of flash you have and all the
configuration options, but that is basically how to tell that things are
mapped and ready for use.

Ned W. Rhodes
Software System Group
703.812.5072 x100

Re: MTD Flash Howto ?

From: David H. Lynch Jr. <hidden>
Date: 2006-08-04 15:53:00

    Thanks;

          I looked at the Denx stuff that was a good start. But raised
some questions:

          I have a single device. I presume that means it is 8 bits
wide, and constitutes a single Bank.
          I guess I have to query the Hardware people, on that.
          What exactly drives CONFIG_MTD_I? and CONFIG_MTD_B?

          A hard disk partition is usually reflected by data structures
(a partition table) written to the Disk.
          Am I correct in assuming that these are in drivers/mtd/maps.
          In my instance all the flash belongs to a single file system
There is a single reserved block at the begining,
          but it is reflected in the filesystem structure not the
partitioning.

          So as I understand things I have a single partition.
          When I ran menuconfig, I indicated that I did not need/had a
single partitions - would that be the correct choice ?

          There is a platform ram "map" that seems to allow defining the
flash region in a platform data structure - is that a viable alternative
to a machine specific map file ?
          Is it limited to just RAM.
         
          Prior to loading a filesystem driver shouldn;'t I get some
message indicating that mtd detected my specific type of flash ? or Is
that queriable inside /proc ?




Ned W. Rhodes wrote:
The book Building Embedded Linux Systems has a good section on the use of
flash file systems.

When you boot, you will see something like this, depending on the type of
flash driver you have. Make sure you have defined your mtd map in
kernel/drivers/mtd/map.

JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
JFS: nTxBlock = 965, nTxLock = 7720

Then if you have the MTD partitions correctly identified, the kernel will
show you something like:

CBG flash bank 0: Found 1 x16 devices at 0x0 in 16-bit bank
 Intel/Sharp Extended Query Table at 0x0031
Using buffer write method
cfi_cmdset_0001: Erase suspend on write enabled
Creating 2 MTD partitions on "CBG flash bank 0":
0x00000000-0x01800000 : "ffw1"
0x01800000-0x02000000 : "filesystem1"

Once booted you can look at /proc/mtd and you should see the partitions
something like:

[root@lbg ]# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 01800000 00020000 "ffw1"
mtd1: 00800000 00020000 "filesystem1"

Your mileage may vary depending on the type of flash you have and all the
configuration options, but that is basically how to tell that things are
mapped and ready for use.

Ned W. Rhodes
Software System Group
703.812.5072 x100

  

-- 
Dave Lynch 					  	    DLA Systems
Software Development:  				         Embedded Linux
717.627.3770 	       dhlii@dlasys.net 	  http://www.dlasys.net
fax: 1.253.369.9244 			           Cell: 1.717.587.7774
Over 25 years' experience in platforms, languages, and technologies too numerous to list.

"Any intelligent fool can make things bigger and more complex... It takes a touch of genius - and a lot of courage to move in the opposite direction."
Albert Einstein

RE: MTD Flash Howto ?

From: Lee Revell <hidden>
Date: 2006-08-11 21:26:20

On Fri, 2006-08-04 at 10:20 -0400, Ned W. Rhodes wrote:
The book Building Embedded Linux Systems has a good section on the use of
flash file systems.

When you boot, you will see something like this, depending on the type of
flash driver you have. Make sure you have defined your mtd map in
kernel/drivers/mtd/map.

JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
JFS: nTxBlock = 965, nTxLock = 7720
Is JFFS2 required to mount MTD devices?

Everything seems to be set up correctly here:

S29GL512N MirrorBit Flash: probing 16-bit flash bus
S29GL512N MirrorBit Flash: Found 1 x16 devices at 0x0 in 16-bit bank
 Amd/Fujitsu Extended Query Table at 0x0040
S29GL512N MirrorBit Flash: CFI does not contain boot bank location.
Assuming top.
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
Creating 2 MTD partitions on "S29GL512N MirrorBit Flash":
0x00000000-0x02a00000 : "Raw Area"
ftl_cs: FTL header not found.
0x02a00000-0x02b80000 : "User FS"
ftl_cs: FTL header not found.
blkmtd: version $Revision: 1.24 $
blkmtd: error: missing `device' name

cat /proc/mtd:

dev:    size   erasesize  name
mtd0: 02a00000 00020000 "Raw Area"
mtd1: 00180000 00020000 "User FS"

cat /proc/partitions:

major minor  #blocks  name

  31     0      43008 mtdblock0
  31     1       1536 mtdblock1

~ # ls -al /dev/mtdblock[01]
brw-r--r--    1 root     0         31,   0 Aug 11 14:27 /dev/mtdblock0
brw-r--r--    1 root     0         31,   1 Aug 11 14:27 /dev/mtdblock1

As you can see the major and minor numbers are correct, but I cannot
mount the MTD partitions:

~ # mount -t minix /dev/mtdblock1 foo
mount: Mounting /dev/mtdblock1 on /foo failed: No such device

What am I doing wrong?

Lee
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help