linux-4.17-rc4 marvell-nand.c driver problems

Greg Ungerer gerg at kernel.org
Sun May 13 16:53:26 PDT 2018


Hi Boris,

On 11/05/18 18:02, Boris Brezillon wrote:
> On Fri, 11 May 2018 17:11:28 +1000
> Greg Ungerer <gerg at kernel.org> wrote:
>> I have a hardware platform built around the Armada 370 using NAND flash.
>> Its old hardware, and has run pretty much every kernel version from
>> 3.10 up to 4.16 with no problems. The flash is 128Mbyte SLC from various
>> vendors (Spansion, Micron, etc).
>>
>> It has always been using the pxa3xx_nand.c driver up to now. With that
>> gone in 4.17 I am trying out the marvell_nand.c driver. I am getting
>> a dump just after startup:
> 
> Can you try to cherry-pick this commit [1] (it should appear in
> 4.17-rc5).

That fixes the problem. Thanks for the quick response.

Regards
Greg



> Thanks,
> 
> Boris
> 
> [1]https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/mtd/nand/raw?h=next-20180511&id=a2ee41fd953e7c3ff6c55a3038c80354d191a318
> 
>>
>> UBIFS (ubi0:1): background thread "ubifs_bgt0_1" started, PID 154
>> marvell-nfc d00d0000.nand: Timeout waiting for RB signal
>> ubi0 error: ubi_io_write: error -110 while writing 2048 bytes to PEB
>> 333:16384, written 0 bytes
>> CPU: 0 PID: 153 Comm: mount Not tainted 4.17.0-rc4-dirty #4
>> Hardware name: Marvell Armada 370/XP (Device Tree)
>> [<c010d8f4>] (unwind_backtrace) from [<c010b350>] (show_stack+0x10/0x14)
>> [<c010b350>] (show_stack) from [<c03ceba0>] (ubi_io_write+0x4d0/0x664)
>> [<c03ceba0>] (ubi_io_write) from [<c03cc004>] (ubi_eba_write_leb+0x80/0x650)
>> [<c03cc004>] (ubi_eba_write_leb) from [<c03cab40>] (ubi_leb_write+0xc0/0xe4)
>> [<c03cab40>] (ubi_leb_write) from [<c0271c38>] (ubifs_leb_write+0xa0/0x130)
>> [<c0271c38>] (ubifs_leb_write) from [<c027331c>]
>> (ubifs_write_node+0xb8/0x1b4)
>> [<c027331c>] (ubifs_write_node) from [<c0278e6c>]
>> (ubifs_write_master+0xbc/0x150)
>> [<c0278e6c>] (ubifs_write_master) from [<c0270020>]
>> (ubifs_mount+0xfc8/0x14ac)
>> [<c0270020>] (ubifs_mount) from [<c01a8c78>] (mount_fs+0x14/0xa4)
>> [<c01a8c78>] (mount_fs) from [<c01c088c>] (vfs_kern_mount+0x48/0xd8)
>> [<c01c088c>] (vfs_kern_mount) from [<c01c33d0>] (do_mount+0x174/0xac4)
>> [<c01c33d0>] (do_mount) from [<c01c4080>] (ksys_mount+0x8c/0xbc)
>> [<c01c4080>] (ksys_mount) from [<c0101000>] (ret_fast_syscall+0x0/0x54)
>> Exception stack(0xceb15fa8 to 0xceb15ff0)
>> 5fa0:                   00000000 befedc80 befedfae befedfba befedfa8
>> 00008000
>> 5fc0: 00000000 befedc80 b6f3b4a0 00000015 00000000 00000000 b6f3df74
>> 00065704
>> 5fe0: b6ec2d18 befedb8c 0002aa60 b6ec2d28
>> ubi0: dumping 2048 bytes of data from PEB 333, offset 16384
>> ubi0 warning: ubi_eba_write_leb: failed to write data to PEB 333
>> ubi0 warning: ubi_eba_write_leb: switch to read-only mode
>> CPU: 0 PID: 153 Comm: mount Not tainted 4.17.0-rc4-dirty #4
>> Hardware name: Marvell Armada 370/XP (Device Tree)
>> [<c010d8f4>] (unwind_backtrace) from [<c010b350>] (show_stack+0x10/0x14)
>> [<c010b350>] (show_stack) from [<c03cc1ac>] (ubi_eba_write_leb+0x228/0x650)
>> [<c03cc1ac>] (ubi_eba_write_leb) from [<c03cab40>] (ubi_leb_write+0xc0/0xe4)
>> [<c03cab40>] (ubi_leb_write) from [<c0271c38>] (ubifs_leb_write+0xa0/0x130)
>> [<c0271c38>] (ubifs_leb_write) from [<c027331c>]
>> (ubifs_write_node+0xb8/0x1b4)
>> [<c027331c>] (ubifs_write_node) from [<c0278e6c>]
>> (ubifs_write_master+0xbc/0x150)
>> [<c0278e6c>] (ubifs_write_master) from [<c0270020>]
>> (ubifs_mount+0xfc8/0x14ac)
>> [<c0270020>] (ubifs_mount) from [<c01a8c78>] (mount_fs+0x14/0xa4)
>> [<c01a8c78>] (mount_fs) from [<c01c088c>] (vfs_kern_mount+0x48/0xd8)
>> [<c01c088c>] (vfs_kern_mount) from [<c01c33d0>] (do_mount+0x174/0xac4)
>> [<c01c33d0>] (do_mount) from [<c01c4080>] (ksys_mount+0x8c/0xbc)
>> [<c01c4080>] (ksys_mount) from [<c0101000>] (ret_fast_syscall+0x0/0x54)
>> Exception stack(0xceb15fa8 to 0xceb15ff0)
>> 5fa0:                   00000000 befedc80 befedfae befedfba befedfa8
>> 00008000
>> 5fc0: 00000000 befedc80 b6f3b4a0 00000015 00000000 00000000 b6f3df74
>> 00065704
>> 5fe0: b6ec2d18 befedb8c 0002aa60 b6ec2d28
>> UBIFS error (ubi0:1 pid 153): ubifs_leb_write: writing 2048 bytes to LEB
>> 1:12288 failed, error -110
>> UBIFS warning (ubi0:1 pid 153): ubifs_ro_mode.part.0: switched to
>> read-only mode, error -110
>> CPU: 0 PID: 153 Comm: mount Not tainted 4.17.0-rc4-dirty #4
>> Hardware name: Marvell Armada 370/XP (Device Tree)
>> [<c010d8f4>] (unwind_backtrace) from [<c010b350>] (show_stack+0x10/0x14)
>> [<c010b350>] (show_stack) from [<c0271cc4>] (ubifs_leb_write+0x12c/0x130)
>> [<c0271cc4>] (ubifs_leb_write) from [<c027331c>]
>> (ubifs_write_node+0xb8/0x1b4)
>> [<c027331c>] (ubifs_write_node) from [<c0278e6c>]
>> (ubifs_write_master+0xbc/0x150)
>> [<c0278e6c>] (ubifs_write_master) from [<c0270020>]
>> (ubifs_mount+0xfc8/0x14ac)
>> [<c0270020>] (ubifs_mount) from [<c01a8c78>] (mount_fs+0x14/0xa4)
>> [<c01a8c78>] (mount_fs) from [<c01c088c>] (vfs_kern_mount+0x48/0xd8)
>> [<c01c088c>] (vfs_kern_mount) from [<c01c33d0>] (do_mount+0x174/0xac4)
>> [<c01c33d0>] (do_mount) from [<c01c4080>] (ksys_mount+0x8c/0xbc)
>> [<c01c4080>] (ksys_mount) from [<c0101000>] (ret_fast_syscall+0x0/0x54)
>> Exception stack(0xceb15fa8 to 0xceb15ff0)
>> 5fa0:                   00000000 befedc80 befedfae befedfba befedfa8
>> 00008000
>> 5fc0: 00000000 befedc80 b6f3b4a0 00000015 00000000 00000000 b6f3df74
>> 00065704
>> 5fe0: b6ec2d18 befedb8c 0002aa60 b6ec2d28
>> CPU: 0 PID: 153 Comm: mount Not tainted 4.17.0-rc4-dirty #4
>> Hardware name: Marvell Armada 370/XP (Device Tree)
>> [<c010d8f4>] (unwind_backtrace) from [<c010b350>] (show_stack+0x10/0x14)
>> [<c010b350>] (show_stack) from [<c0271cb0>] (ubifs_leb_write+0x118/0x130)
>> [<c0271cb0>] (ubifs_leb_write) from [<c027331c>]
>> (ubifs_write_node+0xb8/0x1b4)
>> [<c027331c>] (ubifs_write_node) from [<c0278e6c>]
>> (ubifs_write_master+0xbc/0x150)
>> [<c0278e6c>] (ubifs_write_master) from [<c0270020>]
>> (ubifs_mount+0xfc8/0x14ac)
>> [<c0270020>] (ubifs_mount) from [<c01a8c78>] (mount_fs+0x14/0xa4)
>> [<c01a8c78>] (mount_fs) from [<c01c088c>] (vfs_kern_mount+0x48/0xd8)
>> [<c01c088c>] (vfs_kern_mount) from [<c01c33d0>] (do_mount+0x174/0xac4)
>> [<c01c33d0>] (do_mount) from [<c01c4080>] (ksys_mount+0x8c/0xbc)
>> [<c01c4080>] (ksys_mount) from [<c0101000>] (ret_fast_syscall+0x0/0x54)
>> Exception stack(0xceb15fa8 to 0xceb15ff0)
>> 5fa0:                   00000000 befedc80 befedfae befedfba befedfa8
>> 00008000
>> 5fc0: 00000000 befedc80 b6f3b4a0 00000015 00000000 00000000 b6f3df74
>> 00065704
>> 5fe0: b6ec2d18 befedb8c 0002aa60 b6ec2d28
>> 	magic          0x6101831
>> 	crc            0x3d983859
>> 	node_type      7 (master node)
>> 	group_type     0 (no node group)
>> 	sqnum          21756
>> 	len            512
>> 	highest_inum   515
>> 	commit number  638
>> 	flags          0x3
>> 	log_lnum       5
>> 	root_lnum      11
>> 	root_offs      126096
>> 	root_len       88
>> 	gc_lnum        13
>> 	ihead_lnum     11
>> 	ihead_offs     126976
>> 	index_size     1672
>> 	lpt_lnum       6
>> 	lpt_offs       36921
>> 	nhead_lnum     6
>> 	nhead_offs     38912
>> 	ltab_lnum      6
>> 	ltab_offs      36864
>> 	lsave_lnum     0
>> 	lsave_offs     0
>> 	lscan_lnum     29
>> 	leb_cnt        34
>> 	empty_lebs     16
>> 	idx_lebs       2
>> 	total_free     2314240
>> 	total_dirty    720136
>> 	total_used     11376
>> 	total_dead     0
>> 	total_dark     135168
>> UBIFS (ubi0:1): background thread "ubifs_bgt0_1" stops
>>
>>
>> The driver init during boot up looked good:
>>
>> nand: device found, Manufacturer ID: 0x01, Chip ID: 0xf1
>> nand: AMD/Spansion S34ML01G1
>> nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
>> Bad block table found at page 65472, version 0x01
>> Bad block table found at page 65408, version 0x01
>> 5 fixed-partitions partitions found on MTD device pxa3xx_nand-0
>> Creating 5 MTD partitions on "pxa3xx_nand-0":
>> 0x000000000000-0x000000200000 : "u-boot"
>> 0x000000200000-0x000000300000 : "u-boot-env"
>> 0x000000300000-0x000000500000 : "log"
>> 0x000000500000-0x000008000000 : "flash"
>> 0x000000000000-0x000008000000 : "all"
>>
>>
>> The kernel dump is not fatal, and I can still use the system.
>> I can dd all the flash, and otherwise use the flash and that all
>> seems to work ok. And interestingly if I try to mount that UBIFS
>> again at the command line then it succeeds and I can see the files
>> within it properly.
>>
>> Any ideas?
>>
>> Regards
>> Greg
>>
>>
>> ______________________________________________________
>> Linux MTD discussion mailing list
>> http://lists.infradead.org/mailman/listinfo/linux-mtd/
> 
> 



More information about the linux-mtd mailing list