unsupported subpages: how to be sure/fix ?

David Wagner david.wagner at free-electrons.com
Thu Apr 28 12:42:11 EDT 2011


Hello,

I got the infamous -74 error with the 2-planes OneNand chip I'm using
when trying to create a UBI Volume
(Below are the boot messages after flashing a ubinized image ; but I had
the same error with the trio ubiformat/ubiattach/ubimkvol. If I
understand the "programming ubinized images" well, though, using uboot
to flash ubinized images may also create problems, right ?).

So I ran the pagetest and subpagetest (detailed results below) and got a
-74 error during the subpagetest. (I also got a ecc error during the
pagetest, but I guess it's due to u-boot way of erasing ?)

I then used ubiformat/attach/mkvol/updatevol.
When specifying a VID header offset of 4096 (the page size according to
the MTD subsystem) (and modifying the LEB size in the mkfs.ubifs command
accordingly), everything works fine.


So: According to he FAQ, a possibility is that the chip doesn't support
subpages properly. How could I make sure of that ? Is it a bug ?

Cheers,
David.

----------
	* Boot log:
[    0.000000] Kernel command line: mem=512M console=ttyO2,115200n8
omapfb.mode=dvi:1024x768MR-16 at 60 mpurate=110
mtdparts=omap2-onenand:0x280000(Bootloader)ro,0x400000(Kernel),-(UBI)
ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs
[...]
[    4.290191] mtdoops: mtd device (mtddev=name/number) must be supplied
[    4.302062] OneNAND driver initializing
[    4.307891] omap2-onenand omap2-onenand: initializing on CS0, phys
base 0x20000000, virtual base e0880000
[    4.318603] Muxed OneNAND(DDP) 512MB 1.8V 16-bit (0x58)
[    4.324188] OneNAND version = 0x0031
[    4.337799] Scanning device for bad blocks
[    4.562805] OneNAND eraseblock 1812 is an initial bad block
[    4.586090] OneNAND eraseblock 1954 is an initial bad block
[    4.821655] OneNAND eraseblock 3860 is an initial bad block
[    4.845001] OneNAND eraseblock 4002 is an initial bad block
[    4.851348] OneNAND eraseblock 4003 is an initial bad block
[    4.868835] 3 cmdlinepart partitions found on MTD device omap2-onenand
[    4.876037] Creating 3 MTD partitions on "omap2-onenand":
[    4.882049] 0x000000000000-0x000000280000 : "Bootloader"
[    4.904785] mtd: Giving out device 0 to Bootloader
[    4.933532] 0x000000280000-0x000000680000 : "Kernel"
[    4.950256] mtd: Giving out device 1 to Kernel
[    4.970245] 0x000000680000-0x000020000000 : "UBI"
[    5.045166] mtd: Giving out device 2 to UBI
[    5.081085] UBI: attaching mtd2 to ubi0
[    5.085601] UBI: physical eraseblock size:   262144 bytes (256 KiB)
[    5.092498] UBI: logical eraseblock size:    258048 bytes
[    5.098449] UBI: smallest flash I/O unit:    4096
[    5.103485] UBI: sub-page size:              1024
[    5.108673] UBI: VID header offset:          1024 (aligned 1024)
[    5.115264] UBI: data offset:                4096
[    5.387451] UBI: max. sequence number:       0
[    5.473144] onenand_write_ops_nolock: verify failed -74
[    5.478881] UBI error: ubi_io_write: error -74 while writing 1024
bytes to PEB 26:1024, written 0 bytes
[    5.489135] UBI warning: ubi_eba_write_leb: failed to write VID
header to LEB 2147479551:0, PEB 26
[    5.498901] UBI warning: ubi_ro_mode: switch to read-only mode
[    5.505401] UBI error: autoresize: cannot auto-resize volume 0
[    5.539733] UBI error: ubi_init: cannot attach mtd2

	* mtd_pagetest test:
ended with 1 error (ecc are not all 0xff) (I don't have the exact
message anymore, sorry)

	* mtd_subpages test:
[ 1532.438568] onenand_write_ops_nolock: verify failed -74
[ 1532.444488] mtd_subpagetest: error: write failed at 0x400
[ 1532.450286] mtd_subpagetest:   write size: 0x400
[ 1532.455413] mtd_subpagetest:   written: 0x0
[ 1532.460113] mtd_subpagetest: error -74 occurred

-- 
David Wagner, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com



More information about the linux-mtd mailing list