UBI ECC errors on kernel 3.16.2

Richard Weinberger richard.weinberger at gmail.com
Wed Oct 1 13:51:39 PDT 2014


On Wed, Oct 1, 2014 at 10:41 PM, Angelo Dureghello <angelo70 at gmail.com> wrote:
> 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.

Do mtd and ubi tests pass?

-- 
Thanks,
//richard



More information about the linux-mtd mailing list