linux-4.17-rc4 marvell-nand.c driver problems
Greg Ungerer
gerg at kernel.org
Fri May 11 00:11:28 PDT 2018
Hi Miquel,
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:
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
More information about the linux-mtd
mailing list