Re: nandwrite/ubi memory corruption?

Artem Bityutskiy
2008-10-16T14:57:20Z

On Thu, 2008-10-16 at 17:49 +0300, Artem Bityutskiy wrote:
> On Thu, 2008-10-16 at 23:10 +1300, Michal Ludvig wrote:
> > Hi all,
> >
> > I've got an ARM board with 64MB of NAND flash with 3 logical partitions
> > and am experiencing (probably) memory corruption of UBI/UBIFS on
> > /dev/mtd2 after writing data with nandwrite to /dev/mtd1.
> >
> > These are my logical partitions on NAND:
> >
> > S3C24XX NAND Driver, (c) 2004 Simtec Electronics
> > s3c2410-nand s3c2410-nand: Tacls=3, 30ns Twrph0=7 70ns, Twrph1=3 30ns
> > NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB
> > 3,3V 8-bit)
> > Scanning device for bad blocks
> > Creating 3 MTD partitions on "NAND 64MiB 3,3V 8-bit":
> > 0x00000000-0x00050000 : "boot"
> > 0x00050000-0x00220000 : "kernel"
> > 0x00220000-0x04000000 : "ubi"
> > s3c2410-nand s3c2410-nand: clock idle support enabled
> >
> >
> >
> > I use u-boot 1.1.4 as the bootloader and 2.6.27 as the kernel. The
> > kernel image size is 1492552 bytes, that should fit into the kernel
> > partition as far as I can tell.
> >
> > When I load the kernel in u-boot and write into NAND with 'nandw'
> > command of u-boot it works fine.
> >
> > However when I use nandwrite from linux it does "something" but
> > 1) the kernel won't boot
> > 2) it probably corrupted the 'ubi' partition:
> >
> > ~ # nandwrite -p /dev/mtd1 uimage26
> > Writing data to block 0
> > Writing data to block 4000
> > [...]
> > Writing data to block 164000
> > Writing data to block 168000
> > Writing data to block 16c000
> >
> > ~ # ls
> > UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB
> > 2414:15360, written 0 bytes
> > UBI warning: ubi_eba_write_leb: failed to write data to PEB 2414
> > UBI: recover PEB 2414, move data to PEB 2428
> > UBI warning: ubi_io_read_vid_hdr: bad magic number at PEB 2414: 00000000
> > instead of 55424921
> > UBI warning: ubi_ro_mode: switch to read-only mode
> > UBIFS error (pid 224): ubifs_wbuf_sync_nolock: cannot write 512 bytes to
> > LEB 746:14336
> > UBIFS error (pid 224): ubifs_bg_wbufs_sync: cannot sync write-buffer,
> > error -5
> > UBIFS warning (pid 224): ubifs_ro_mode: switched to read-only mode, error -5
>
> Could you please try ubiformat instead of nandwrite? See here:
> http://www.linux-mtd.infradead.org/faq/ubi.html#L_ubierase

Also, please, give me your page and sub-page size. See here:
http://www.linux-mtd.infradead.org/faq/ubi.html#L_find_min_io_size

--
Best regards,
Artem Bityutskiy (Битюцкий Артём)