[#4138] uClinux-dist-2008R1-RC8 supports yaffs2 on nand flash err

Document created by Aaronwu Employee on Aug 29, 2013
Version 1Show Document
  • View in full screen mode

[#4138] uClinux-dist-2008R1-RC8 supports yaffs2 on nand flash err

Submitted By: w w

Open Date

2008-06-01 21:22:39     Close Date

2009-04-08 22:18:34

Priority:

Medium High     Assignee:

Nobody

Status:

Closed     Fixed In Release:

N/A

Found In Release:

2008R1.5-RC3     Release:

uClinux-dist-2008R1-RC8

Category:

N/A     Board:

STAMP

Processor:

BF533     Silicon Revision:

0.5

Is this bug repeatable?:

Yes     Resolution:

Not reproducible

Uboot version or rev.:

u-boot-1.1.3     Toolchain version or rev.:

blackfin-toolchain-08r1

App binary format:

N/A     

Summary: uClinux-dist-2008R1-RC8 supports yaffs2 on nand flash err

Details:

 

I download uClinux-dist-2008R1-RC8 and the toolchain 2008R1.

I compile the uClinux and run on my board.(CPU:BF533, nand falsh:ST nand512w3a).But when I mount the nand flash with yaffs2 filesystem, the err is

yaffs: Block struck out

**>> Block 290 retired

yaffs: Block struck out

**>> Block 292 retired

yaffs: Block struck out

**>> Block 289 retired

yaffs: Block struck out

**>> Block 293 retired

.

On my board, I use uClinux2006R2-RC2 and the toolchain 2006, I get no errors.

so I think the err occured maybe there are bugs about yaffs2 filesystem in uClinux-dist-2008R1-RC8, because I didn't modify any source code about nand flash driver and yaffs2 filesystem.

 

1)my mtd partition:

root:~> cat /proc/mtd

dev:    size   erasesize  name

mtd0: 00020000 00010000 "Bootloader"

mtd1: 00160000 00010000 "Kernel"

mtd2: 00280000 00010000 "RootFS"

mtd3: 04000000 00004000 "linux fs" //(this is my nand flash)

 

2)dmesg:(part)

BF5xx-Flash: probing 16-bit flash bus

BF5xx-Flash: Found 1 x16 devices at 0x0 in 16-bit bank

Amd/Fujitsu Extended Query Table at 0x0040

number of CFI chips: 1

cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.

cmdlinepart partition parsing not available

RedBoot partition parsing not available

BF5xx-Flash: Using board partition definition

Creating 3 MTD partitions on "BF5xx-Flash":

0x00000000-0x00020000 : "Bootloader"

0x00020000-0x00180000 : "Kernel"

0x00180000-0x00400000 : "RootFS"

NAND device: Manufacturer ID: 0x20, Chip ID: 0x76 (ST Micro NAND 64MiB 3,3V 8-bi

t)

Scanning device for bad blocks

Bad eraseblock 2697 at 0x02a24000

Bad eraseblock 3346 at 0x03448000

Creating 1 MTD partitions on "NAND 64MiB 3,3V 8-bit":

0x00000000-0x04000000 : "linux fs"

 

3)my application is asterrisk. After I run this application, the errors didn't occur immediately, after it run a long time (12 hours or more ), the errors occured. In the asterrisk application, I use many commands like sqlite3_open/querry/close etc to access the nand flash.(my database is on nand flash).

 

4)this errors can repeat on all my board. I think if you access the nand flash many times in a long time, you can get the errors.

 

5)thank you.

 

Follow-ups

 

--- Bryan Wu                                                 2008-06-19 04:02:42

Hi,

 

I failed to reproduce this bug on my bf537-ezkit with NAND flash extand card.

Because we don't have bf533 board for NAND flash, we can not reproduce it now.

----

Linux version 2.6.22.19-ADI-2008R1-svn4863 (roc@roc-desktop) (gcc version 4.1.2

(ADI svn)) #3 Thu Jun 19 12:42:44 CST 2008

early printk enabled on early_BFuart0

Hardware Trace Active and Enabled

Blackfin support (C) 2004-2007 Analog Devices, Inc.

Compiled for ADSP-BF537 Rev 0.3

Blackfin Linux support by   blackfin.uclinux.org/

Processor Speed: 500 MHz core clock and 100 MHz System Clock

Board Memory: 64MB

Kernel Managed Memory: 64MB

Memory map:

  text      = 0x00001000-0x00106bd0

  rodata    = 0x00107000-0x00152acc

  data      = 0x00153000-0x00166000

    stack   = 0x00154000-0x00156000

  init      = 0x00166000-0x00882000

  bss       = 0x00882000-0x00890f70

  available = 0x00890f70-0x03eff000

  DMA Zone  = 0x03f00000-0x04000000

Instruction Cache Enabled

Data Cache Enabled (write-through)

Built 1 zonelists.  Total pages: 16002

Kernel command line: root=/dev/mtdblock0 rw earlyprintk=serial,uart0,57600

console=ttyBF0,57600

ip=192.168.0.66:192.168.0.55:192.168.0.1:255.255.255.0:bf537-stamp:eth0:off

Configuring Blackfin Priority Driven Interrupts

PID hash table entries: 256 (order: 8, 1024 bytes)

bfin-rtc: invalid date; resetting

console handover: boot [early_BFuart0] -> real [ttyBF0]

Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)

Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)

Memory available: 55160k/65536k RAM, (7280k init code, 1046k kernel code, 441k

data, 1024k dma, 584k reserved)

Blackfin Scratchpad data SRAM: 4 KB

Blackfin Data A SRAM: 16 KB (15 KB free)

Blackfin Data B SRAM: 16 KB (16 KB free)

Blackfin Instruction SRAM: 48 KB (40 KB free)

Security Framework v1.0.0 initialized

Mount-cache hash table entries: 512

NET: Registered protocol family 16

Blackfin GPIO Controller

Blackfin DMA Controller

stamp_init(): registering device resources

Generic PHY: Registered new driver

NET: Registered protocol family 2

                                  IP route cache hash table entries: 1024

(order: 0, 4096 bytes)

TCP established hash table entries: 2048 (order: 2, 16384 bytes)

TCP bind hash table entries: 2048 (order: 1, 8192 bytes)

TCP: Hash tables configured (established 2048 bind 2048)

TCP reno registered

yaffs Jun 19 2008 12:37:45 Installing.

io scheduler noop registered

io scheduler anticipatory registered (default)

io scheduler cfq registered

bfin-wdt: initialized: timeout=20 sec (nowayout=0)

Serial: Blackfin serial driver

bfin-uart.1: ttyBF0 at MMIO 0xffc00400 (irq = 18) is a BFIN-UART

RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize

SMSC LAN83C185: Registered new driver

bfin_mac_mdio: probed

bfin_mac: attached PHY driver [SMSC LAN83C185] (mii_bus:phy_addr=0:01, irq=-1,

mdc_clk=2500000Hz(mdc_div=19)@sclk=100MHz)

bfin_mac: Version 1.1, Blackfin BF53[67] BF527 on-chip Ethernet MAC driver

NAND device: Manufacturer ID: 0x20, Chip ID: 0xf1 (ST Micro NAND 128MiB 3,3V

8-bit)

Scanning device for bad blocks

Creating 2 MTD partitions on "NAND 128MiB 3,3V 8-bit":

0x00000000-0x00400000 : "linux kernel"

0x00400000-0x08000000 : "file system"

bfin-spi bfin-spi.0: Blackfin BF5xx on-chip SPI Contoller Driver, Version 1.0,

regs_base@ffc00500, dma channel@7

rtc-bfin rtc-bfin: rtc core: registered rtc-bfin as rtc0

TCP cubic registered

NET: Registered protocol family 1

NET: Registered protocol family 17

rtc-bfin rtc-bfin: setting the system clock to 1970-01-01 00:00:01 (1)

IP-Config: Complete:

      device=eth0, addr=192.168.0.66, mask=255.255.255.0, gw=192.168.0.1,

     host=bf537-stamp, domain=, nis-domain=(none),

     bootserver=192.168.0.55, rootserver=192.168.0.55, rootpath=

Freeing unused kernel memory: 7280k freed

dma_alloc_init: dma_page @ 0x0087f000 - 256 pages at 0x03f00000

                           _____________________________________

        a8888b.           / Welcome to the uClinux distribution \

       d888888b.         /       _     _                         \

       8P"YP"Y88        /       | |   |_|            __  __ (TM)  |

       8|o||o|88  _____/        | |    _ ____  _   _ \ \/ /       |

       8'    .88       \        | |   | |  _ \| | | | \  /        |

       8`._.' Y8.       \       | |__ | | | | | |_| | /  \        |

      d/      `8b.       \      \____||_|_| |_|\____|/_/\_\       |

     dP   .    Y8b.       \   For embedded processors including   |

    d8:'  "  `::88b        \    the Analog Devices Blackfin      /

   d8"         'Y88b        \___________________________________/

  :8P    '      :888

   8a.   :     _a88P         For further information, check out:

._/"Yaa_:   .| 88P|            -   blackfin.uclinux.org/

\    YP"    `| 8P  `.          -   docs.blackfin.uclinux.org/

/     \.___.d|    .'           -   www.uclinux.org/

`--..__)8888P`._.'  jgs/a:f    -   www.analog.com/blackfin

 

Have a lot of fun...

 

 

BusyBox v1.4.1 (2008-06-19 12:40:04 CST) Built-in shell (msh)

Enter 'help' for a list of built-in commands.

 

root:/> PHY: 0:01 - Link is Up - 100/Full

 

root:/>

root:/> cat /proc/mtd

dev:    size   erasesize  name

mtd0: 00400000 00020000 "linux kernel"

mtd1: 07c00000 00020000 "file system"

root:/> e

e2fsck      echo        env         eraseall    event_test  expr

root:/> eraseall /dev/mtd

/dev/mtd0       /dev/mtd1       /dev/mtdblock0

/dev/mtd0ro     /dev/mtd1ro     /dev/mtdblock1

root:/> eraseall /dev/mtd

/dev/mtd0       /dev/mtd1       /dev/mtdblock0

/dev/mtd0ro     /dev/mtd1ro     /dev/mtdblock1

root:/> eraseall /dev/mtd1

Erased 126976 Kibyte @ 0 -- 100% complete.      

root:/> mount /dev/mtdblock1 /mnt/ -t yaffs

yaffs: dev is 32505857 name is "mtdblock1"

yaffs: Attempting MTD mount on 31.1, "mtdblock1"

yaffs: auto selecting yaffs2

root:/> df

Filesystem           1k-blocks      Used Available Use% Mounted on

/dev/mtdblock1          126976      2048    124928   2% /mnt

root:/> cd /mnt/

root:/mnt> cp /bin/busybox .

root:/mnt> cd ..

root:/> umount /mnt/

root:/> mount /dev/mtdblock1 /mnt/ -t yaffs

yaffs: dev is 32505857 name is "mtdblock1"

yaffs: Attempting MTD mount on 31.1, "mtdblock1"

yaffs: auto selecting yaffs2

yaffs: restored from checkpoint

root:/> cd /mnt/

root:/mnt> ls

busybox     lost+found

root:/mnt> cd ..

root:/> ls

bin   etc   init  mnt   root  sys   usr

dev   home  lib   proc  sbin  tmp   var

root:/> umount mnt/

root:/> ls

bin   etc   init  mnt   root  sys   usr

dev   home  lib   proc  sbin  tmp   var

root:/> mount /dev/mtdblock1 /mnt/ -t yaffs -o sync

yaffs: dev is 32505857 name is "mtdblock1"

yaffs: Attempting MTD mount on 31.1, "mtdblock1"

yaffs: auto selecting yaffs2

yaffs: restored from checkpoint

root:/> time dd if=/dev/zero of=/mnt/test.bin bs=1M count=10

10+0 records in

10+0 records out

real    0m 3.16s

user    0m 0.00s

sys     0m 3.17s

root:/> umount /mnt/

root:/> mount /dev/mtdblock1 /mnt/ -t yaffs -o sync

yaffs: dev is 32505857 name is "mtdblock1"

yaffs: Attempting MTD mount on 31.1, "mtdblock1"

yaffs: auto selecting yaffs2

yaffs: restored from checkpoint

root:/> ls /mnt/

busybox     lost+found  test.bin

root:/> ls /mnt/ -lh

-rwxr-xr-x    1 root     root       477.2k Jan  1 00:12 busybox

drwx------    1 root     root         2.0k Jan  1 00:14 lost+found

-rw-r--r--    1 root     root        10.0M Jan  1 00:13 test.bin

root:/> umount /mnt/

----

 

-Bryan

 

--- w w                                                      2008-07-17 07:31:07

thank you Bryan, but

 

3)my application is asterrisk. After I run this application, the errors didn't

occur immediately, after it run a long time (12 hours or more ), the errors

occured. In the asterrisk application, I use many commands like

sqlite3_open/querry/close etc to access the nand flash.(my database is on nand

flash).

 

4)this errors can repeat on all my board. I think if you access the nand flash

many times in a long time, you can get the errors.

 

Can you access nand flash many times for a long time(1 day or more)?

 

 

 

    Files

    Changes

    Commits

    Dependencies

    Duplicates

    Associations

    Tags

 

File Name     File Type     File Size     Posted By

No Files Were Found

Attachments

    Outcomes