UBI ECC errors on kernel 3.16.2

Angelo Dureghello angelo70 at gmail.com
Wed Oct 1 13:41:15 PDT 2014


Dear all,

i am working on an embedded system: arm TI AM1808 cpu with a nand flash 
mt29f1g08abb.

The flash is 128MB, no-subages, pages as 2048bytes, OOB 64 bytes

Type:                           nand
Eraseblock size:                131072 bytes, 128.0 KiB
Amount of eraseblocks:          480 (62914560 bytes, 60.0 MiB)
Minimum input/output unit size: 2048 bytes
Sub-page size:                  512 bytes
OOB size:                       64 bytes
Character device major/minor:   90:12
Bad blocks are allowed:         true
Device is writable:             true

I had UBI/UBIFS working fine with kernel 3.5.1 (flashing it through u.boot).
As ecclayout, from my board.c, i was setting up a custom one:

/* NAND ECC modified to reflect the DaVinci RBL layout (i.e. 512B rather 
than 2kB)
  * patch from http://processors.wiki.ti.com/index.php/DM365_Nand_ECC_layout
  */
static struct nand_ecclayout ipam390_nand_ecclayout = {
     .eccbytes    = 40,
     .eccpos        = {6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
               22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
               38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
               54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
     },
     .oobfree    = {{2, 4}, {16, 6}, {32, 6}, {48, 6} },
};


Now i am moving to kernel 3.16.2.

With quite same config, the same UBI image now produces several errors

platform barix-ipam390.0: Driver barix-ipam390 requests probe deferral
UBI: scanning is finished
UBI: volume 0 ("rootfs") re-sized from 205 to 456 LEBs
UBI: attached mtd6 (name "rootfs", size 60 MiB) to ubi0
UBI: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
UBI: min./max. I/O unit sizes: 2048/2048, sub-page size 512
UBI: VID header offset: 2048 (aligned 2048), data offset: 4096
UBI: good PEBs: 480, bad PEBs: 0, corrupted PEBs: 0
UBI: user volume: 1, internal volumes: 1, max. volumes count: 128
UBI: max/mean erase counter: 1/0, WL threshold: 4096, image sequence 
number: 1641262122
UBI: available PEBs: 0, total reserved PEBs: 480, PEBs reserved for bad 
PEB handling: 20
UBI: background thread "ubi_bgt0d" started, PID 1025
davinci_emac 1e20000.ethernet: failed to get EMAC clock
davinci_emac: probe of 1e20000.ethernet failed with error -16
davinci_emac davinci_emac.1: Runtime PM disabled, clock forced on.
davinci_emac davinci_emac.1: Runtime PM disabled, clock forced on.
davinci_emac davinci_emac.1: Runtime PM disabled, clock forced on.
barix-ipam390 barix-ipam390.0: ASoC: platform davinci-pcm-audio not 
registered
gpio-keys gpio-keys.0: Unable to get irq number for GPIO 126, error -6
platform barix-ipam390.0: Driver barix-ipam390 requests probe deferral
omap_rtc da830-rtc: setting system clock to 2014-10-01 18:55:35 UTC 
(1412189735)
ALSA device list:
   No soundcards found.
UBI warning: ubi_io_read: error -74 (ECC error) while reading 4096 bytes 
from PEB 2:4096, read only 4096 bytes, retry
UBI warning: ubi_io_read: error -74 (ECC error) while reading 4096 bytes 
from PEB 2:4096, read only 4096 bytes, retry
UBI warning: ubi_io_read: error -74 (ECC error) while reading 4096 bytes 
from PEB 2:4096, read only 4096 bytes, retry
UBI error: ubi_io_read: error -74 (ECC error) while reading 4096 bytes 
from PEB 2:4096, read 4096 bytes
UBIFS: background thread "ubifs_bgt0_0" started, PID 1032


I tred also to boot a jffs2 file system and had similar ECC errors.

I suspect something in the mtd/ecc part is changed in a way that my 
custom ecc is no more valid.

Every help is very appreciated.

Thanks
Regards,
Angelo




More information about the linux-mtd mailing list