Help with UBI failure analysis

Sergei Poselenov sposelenov at emcraft.com
Thu Sep 24 04:35:18 EDT 2020


Hello,

i.MX SoloX ARM SoC, running Linux 4.5 with the root filesystem on UBI on 512MB NAND chip. A customer is complaining on the following UBI error (excerpts from the boot log below):
...
nand: device found, Manufacturer ID: 0x01, Chip ID: 0xdc
nand: AMD/Spansion S34ML04G1
nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
gpmi-nand 1806000.gpmi-nand: mode:4 ,failed in set feature.
Bad block table found at page 262080, version 0x01
Bad block table found at page 262016, version 0x01
nand_read_bbt: bad block at 0x00001d0a0000
6 ofpart partitions found on MTD device gpmi-nand
Creating 6 MTD partitions on "gpmi-nand":
0x000000000000-0x000000400000 : "nand_uboot_env"
0x000000400000-0x000000e00000 : "nand_splash_image"
0x000000e00000-0x000000e20000 : "nand_dtb_image"
0x000000e20000-0x000001a20000 : "nand_linux_image"
0x000001a20000-0x00000ba20000 : "nand_rootfs_image"
0x00000ba20000-0x000040000000 : "nand_ubifs"
mtd: partition "nand_ubifs" extends beyond the end of device "gpmi-nand" -- size truncated to 0x145e0000
...
ubi0: default fastmap pool size: 60
ubi0: default fastmap WL pool size: 30
ubi0: attaching mtd4
ubi0: attached by fastmap
ubi0: fastmap pool size: 60
ubi0: fastmap WL pool size: 30
ubi0: attached mtd4 (name "nand_rootfs_image", size 160 MiB)
ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
ubi0: good PEBs: 1280, bad PEBs: 0, corrupted PEBs: 0
ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128
ubi0: max/mean erase counter: 3/0, WL threshold: 4096, image sequence number: 244395915
ubi0: available PEBs: 0, total reserved PEBs: 1280, PEBs reserved for bad PEB handling: 80
ubi0: background thread "ubi_bgt0d" started, PID 140
input: gpio-keys as /devices/soc0/gpio-keys/input/input2
hctosys: unable to open rtc device (rtc0)
ALSA device list:
  No soundcards found.
UBIFS (ubi0:0): background thread "ubifs_bgt0_0" started, PID 141
UBIFS (ubi0:0): recovery needed
UBIFS (ubi0:0): recovery completed
UBIFS (ubi0:0): UBIFS: mounted UBI device 0, volume 0, name "rootfs"
UBIFS (ubi0:0): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
UBIFS (ubi0:0): FS size: 74788864 bytes (71 MiB, 589 LEBs), journal size 9023488 bytes (8 MiB, 72 LEBs)
UBIFS (ubi0:0): reserved for root: 0 bytes (0 KiB)
UBIFS (ubi0:0): media format: w4/r0 (latest is w4/r0), UUID 09F04725-4F95-492E-B899-800AFEC97FB9, small LPT model
VFS: Mounted root (ubifs filesystem) on device 0:13.
devtmpfs: mounted
Freeing unused kernel memory: 280K (80898000 - 808de000)
UBIFS error (ubi0:0 pid 1): ubifs_read_node: bad node type (0 but expected 9)
UBIFS error (ubi0:0 pid 1): ubifs_read_node: bad node at LEB 12:100352, LEB mapping status 1
Not a node, first 24 bytes:
00000000: 55 42 49 23 01 00 00 00 00 00 00 00 00 00 00 02 00 00 08 00 00 00 10 00                          UBI#....................
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.5.0 #4
Hardware name: Freescale i.MX6 SoloX (Device Tree)
[<800160f4>] (unwind_backtrace) from [<80013400>] (show_stack+0x10/0x14)
[<80013400>] (show_stack) from [<8029c6ec>] (dump_stack+0x88/0x9c)
...
UBIFS error (ubi0:0 pid 142): ubifs_iget: failed to read inode 438, error -22
UBIFS error (ubi0:0 pid 142): ubifs_lookup: dead directory entry 'etc', error -22
can't run '/etc/init.d/rcS': Invalid argument
...

I see that NAND has a badblock at 0x00001d0a0000, but it's not on the "rootfs" partition.

What could cause such error? Any thoughts will be much appreciated.

Regards,
Sergei



More information about the linux-mtd mailing list