pxa3xx-nand failing to find device on linux-next
Chris Packham
Chris.Packham at alliedtelesis.co.nz
Wed May 24 15:58:53 PDT 2017
On 25/05/17 10:36, Boris Brezillon wrote:
> Le Wed, 24 May 2017 22:03:52 +0000,
> Chris Packham <Chris.Packham at alliedtelesis.co.nz> a écrit :
>
>> On 24/05/17 23:25, Boris Brezillon wrote:
>>> On Wed, 24 May 2017 13:23:01 +0200
>>> Boris Brezillon <boris.brezillon at free-electrons.com> wrote:
>>>
>>>> Hi Chris,
>>>>
>>>> On Wed, 24 May 2017 09:36:56 +0000
>>>> Chris Packham <Chris.Packham at alliedtelesis.co.nz> wrote:
>>>>
>>>>> On 23/05/17 17:27, Chris Packham wrote:
>>>>>> Hi,
>>>>>>
>>>>>> I'm doing some testing on linux-next and I'm finding that my nand flash
>>>>>> has disappeared.
>>>>>>
>>>>>> pxa3xx-nand f10d0000.flash: This platform can't do DMA on this device
>>>>>> pxa3xx-nand f10d0000.flash: non-supported command ef
>>>>>> pxa3xx-nand f10d0000.flash: non-supported command ee
>>>>>> pxa3xx-nand f10d0000.flash: non-supported command ef
>>>>>> pxa3xx-nand f10d0000.flash: non-supported command ee
>>>>>> On-die ECC forcefully enabled, not supported
>>>>>> nand: No NAND device found
>>>>>> pxa3xx-nand f10d0000.flash: failed to scan nand at cs 0
>>>>>>
>>>>>> This was working around 4.11. I'll try to do some more digging tomorrow
>>>>>> to narrow down a failure point but I thought I'd send this out now just
>>>>>> in case it rings any bells.
>>>>>>
>>>>>> The board I'm using (DB-88F6820-AMC) is unfortunately out-of tree but it
>>>>>> should be pretty close to the armada-388-db. I can make my dts available
>>>>>> if it's helpful.
>>>>>
>>>>> Still works on 4.12-rc2. Fails on next-20170524.
>>>>>
>>>>> This appears to be due to commit b566d9c055de ("mtd: nand: add support
>>>>> for Micron on-die ECC"). Which based on the description seems intentional.
>>>>>
>>>>> Since I have access to a hardware platform that has a micron flash with
>>>>> ECC forcefully enabled how can I help to get this implemented.
>>>>
>>>> Can you try with this patch applied [1]?
>>>
>>> Sorry, wrong patch. Can you try this one [1] instead?
>>>
>>> [1]http://code.bulix.org/pkfhmi-135875
>>>
>>
>> With the patch above the chip is detected but ubifs is unhappy
>
> Hm, weird. And if you revert my both Thomas patch and mine, what do you
> get?
Seems to work just fine.
> BTW, can you paste the full boot logs, not only the failing part?
Sure. Full log from next-20170524 + http://code.bulix.org/pkfhmi-135875
below.
[root at linuxbox /]# dmesg
pcpu-alloc: [0] 0 [0] 1
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 455168
Kernel command line: console=ttyS0,115200 root=/dev/ram0 loglevel=8
PID hash table entries: 4096 (order: 2, 16384 bytes)
Dentry cache hash table entries: 262144 (order: 8, 1048576 bytes)
Inode-cache hash table entries: 131072 (order: 7, 524288 bytes)
Memory: 1798628K/1835008K available (5120K kernel code, 173K rwdata,
1364K rodata, 1024K init, 123K bss, 36380K reserved, 0K cma-rese
rved)
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
vmalloc : 0xf0800000 - 0xff800000 ( 240 MB)
lowmem : 0x80000000 - 0xf0000000 (1792 MB)
modules : 0x7f000000 - 0x80000000 ( 16 MB)
.text : 0x80008000 - 0x80600000 (6112 kB)
.init : 0x80800000 - 0x80900000 (1024 kB)
.data : 0x80900000 - 0x8092b600 ( 174 kB)
.bss : 0x80930688 - 0x8094f440 ( 124 kB)
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
Preemptible hierarchical RCU implementation.
RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
NR_IRQS:16 nr_irqs:16 16
L2C-310 enabling early BRESP for Cortex-A9
L2C-310 full line of zeros enabled for Cortex-A9
L2C-310 D prefetch enabled, offset 1 lines
L2C-310 dynamic clock gating enabled, standby mode enabled
L2C-310 Coherent cache controller enabled, 16 ways, 1024 kB
L2C-310 Coherent: CACHE_ID 0x410054c9, AUX_CTRL 0x56070001
Switching to timer-based delay loop, resolution 50ns
sched_clock: 32 bits at 20MHz, resolution 50ns, wraps every 107374182375ns
clocksource: armada_370_xp_clocksource: mask: 0xffffffff max_cycles:
0xffffffff, max_idle_ns: 95563022313 ns
Calibrating delay loop (skipped), value calculated using timer
frequency.. 40.00 BogoMIPS (lpj=200000)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 4096 (order: 2, 16384 bytes)
Mountpoint-cache hash table entries: 4096 (order: 2, 16384 bytes)
CPU: Testing write buffer coherency: ok
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Setting up static identity map for 0x100000 - 0x100060
mvebu-soc-id: MVEBU SoC ID=0x6820, Rev=0x4
mvebu-pmsu: Initializing Power Management Service Unit
Hierarchical SRCU implementation.
smp: Bringing up secondary CPUs ...
Booting CPU 1
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
smp: Brought up 1 node, 2 CPUs
SMP: Total of 2 processors activated (80.00 BogoMIPS).
CPU: All CPU(s) started in SVC mode.
devtmpfs: initialized
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff,
max_idle_ns: 19112604462750000 ns
futex hash table entries: 512 (order: 3, 32768 bytes)
pinctrl core: initialized pinctrl subsystem
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
mvebu-pmsu: CPU hotplug support is currently broken on Armada 38x: disabling
mvebu-pmsu: CPU idle is currently broken on Armada 38x: disabling
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
clocksource: Switched to clocksource armada_370_xp_clocksource
NET: Registered protocol family 2
TCP established hash table entries: 16384 (order: 4, 65536 bytes)
TCP bind hash table entries: 16384 (order: 5, 131072 bytes)
TCP: Hash tables configured (established 16384 bind 16384)
UDP hash table entries: 1024 (order: 3, 32768 bytes)
UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes)
NET: Registered protocol family 1
PCI: CLS 0 bytes, default 64
Trying to unpack rootfs image as initramfs...
rootfs image is not initramfs (junk in compressed archive); looks like
an initrd
Freeing initrd memory: 11756K
workingset: timestamp_bits=30 max_order=19 bucket_order=0
squashfs: version 4.0 (2009/01/31) Phillip Lougher
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
io scheduler mq-deadline registered
io scheduler kyber registered
armada-38x-pinctrl f1018000.pinctrl: registered pinctrl driver
mvebu-pcie soc:pcie-controller: PCI host bridge to bus 0000:00
pci_bus 0000:00: root bus resource [io 0x1000-0xfffff]
pci_bus 0000:00: root bus resource [mem 0xe0000000-0xe7ffffff]
pci_bus 0000:00: root bus resource [bus 00-ff]
pci 0000:00:01.0: [11ab:6820] type 01 class 0x060400
PCI: bus0: Fast back to back transfers disabled
pci 0000:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring
PCI: bus1: Fast back to back transfers enabled
pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
pci 0000:00:01.0: PCI bridge to [bus 01]
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
console [ttyS0] disabled
f1012000.serial: ttyS0 at MMIO 0xf1012000 (irq = 21, base_baud =
12500000) is a 16550A
console [ttyS0] enabled
brd: module loaded
loop: module loaded
mtdoops: mtd device (mtddev=name/number) must be supplied
pxa3xx-nand f10d0000.flash: This platform can't do DMA on this device
pxa3xx-nand f10d0000.flash: Wait time out!!!
nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xd3
nand: Micron MT29F8G08ABACAWP
nand: 1024 MiB, SLC, erase size: 256 KiB, page size: 4096, OOB size: 224
pxa3xx-nand f10d0000.flash: ECC strength 16, ECC step size 1024
Bad block table found at page 262080, version 0x01
Bad block table found at page 262016, version 0x01
m25p80 spi1.0: n25q256a (32768 Kbytes)
2 ofpart partitions found on MTD device spi1.0
Creating 2 MTD partitions on "spi1.0":
0x000000000000-0x000000100000 : "u-boot"
0x000000100000-0x000000140000 : "u-boot-env"
libphy: Fixed MDIO Bus: probed
libphy: orion_mdio_bus: probed
mvneta f1070000.ethernet eth0: Using device tree mac address
00:50:43:00:08:fd
mvneta f1034000.ethernet eth1: Using hardware mac address 00:50:43:00:08:fd
usbcore: registered new interface driver asix
usbcore: registered new interface driver cdc_ether
usbcore: registered new interface driver smsc75xx
usbcore: registered new interface driver usb-storage
i2c /dev entries driver
(NULL device *): hwmon_device_register() is deprecated. Please convert
the driver to use hwmon_device_register_with_info().
orion_wdt: Initial timeout 214 sec
Netfilter messages via NETLINK v0.30.
nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
ipip: IPv4 and MPLS over IPv4 tunneling driver
ip_tables: (C) 2000-2006 Netfilter Core Team
Initializing XFRM netlink socket
NET: Registered protocol family 10
Segment Routing with IPv6
sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
NET: Registered protocol family 17
NET: Registered protocol family 15
Registering SWP/SWPB emulation handler
registered taskstats version 1
RAMDISK: squashfs filesystem found at block 0
RAMDISK: Loading 11753KiB [1 disk] into ram disk... -
-
done.
VFS: Mounted root (squashfs filesystem) readonly on device 1:0.
devtmpfs: mounted
Freeing unused kernel memory: 1024K
>systemd[1]: System time before build time, advancing clock.
random: systemd: uninitialized urandom read (16 bytes read)
>systemd[1]: systemd 231 running in system mode. (-PAM -AUDIT -SELINUX
-IMA -APPARMOR -SMACK +SYSVINIT -UTMP -LIBCRYPTSETUP -GCRYPT -
GNUTLS -ACL -XZ -LZ4 -SECCOMP +BLKID -ELFUTILS -KMOD -IDN)
>systemd[1]: Detected architecture arm.
>systemd[1]: Set hostname to <awplus>.
random: systemd: uninitialized urandom read (16 bytes read)
>systemd[1]: Initializing machine ID from random generator.
>systemd[1]: Installed transient /etc/machine-id file.
random: systemd: uninitialized urandom read (16 bytes read)
random: systemd: uninitialized urandom read (16 bytes read)
random: systemd: uninitialized urandom read (16 bytes read)
random: systemd: uninitialized urandom read (16 bytes read)
random: systemd: uninitialized urandom read (16 bytes read)
>udevd[581]: starting version 174
ubi0: attaching mtd0
random: fast init done
random: crng init done
ubi0: scanning is finished
ubi0: attached mtd0 (name "pxa3xx_nand-0", size 1024 MiB)
ubi0: PEB size: 262144 bytes (256 KiB), LEB size: 253952 bytes
ubi0: min./max. I/O unit sizes: 4096/4096, sub-page size 4096
ubi0: VID header offset: 4096 (aligned 4096), data offset: 8192
ubi0: good PEBs: 4088, bad PEBs: 8, corrupted PEBs: 0
ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128
ubi0: max/mean erase counter: 1/0, WL threshold: 4096, image sequence
number: 2130122366
ubi0: available PEBs: 0, total reserved PEBs: 4088, PEBs reserved for
bad PEB handling: 72
ubi0: background thread "ubi_bgt0d" started, PID 597
UBIFS (ubi0:0): background thread "ubifs_bgt0_0" started, PID 601
UBIFS (ubi0:0): recovery needed
UBIFS (ubi0:0): recovery completed
UBIFS (ubi0:0): UBIFS: mounted UBI device 0, volume 0, name "user"
UBIFS (ubi0:0): LEB size: 253952 bytes (248 KiB), min./max. I/O unit
sizes: 4096 bytes/4096 bytes
UBIFS (ubi0:0): FS size: 1016315904 bytes (969 MiB, 4002 LEBs), journal
size 9404416 bytes (8 MiB, 38 LEBs)
UBIFS (ubi0:0): reserved for root: 0 bytes (0 KiB)
UBIFS (ubi0:0): media format: w4/r0 (latest is w5/r0), UUID
2C1F4CD3-FDB1-4A52-8BE8-79AAD15CF6EC, small LPT model
UBIFS error (ubi0:0 pid 599): ubifs_read_node: bad node type (160 but
expected 0)
UBIFS error (ubi0:0 pid 599): ubifs_read_node: bad node at LEB 10:90344,
LEB mapping status 1
Not a node, first 24 bytes:
00000000: 00 00 00 00 31 18 10 06 e5 43 e1 9f 3b 00 00 00 00 00 00 00 a0
00 00 00 ....1....C..;...........
CPU: 1 PID: 599 Comm: mount Not tainted 4.12.0-rc2-next-20170524-at1+ #58
Hardware name: Marvell Armada 380/385 (Device Tree)
[<801102dc>] (unwind_backtrace) from [<8010b658>] (show_stack+0x10/0x14)
[<8010b658>] (show_stack) from [<8031aa0c>] (dump_stack+0x88/0x9c)
[<8031aa0c>] (dump_stack) from [<802aebb8>] (ubifs_read_node+0x130/0x284)
[<802aebb8>] (ubifs_read_node) from [<802ca2a4>]
(ubifs_tnc_read_node+0x4c/0xd4)
[<802ca2a4>] (ubifs_tnc_read_node) from [<802b1e60>]
(ubifs_tnc_locate+0x1c0/0x1c8)
[<802b1e60>] (ubifs_tnc_locate) from [<802aa15c>] (ubifs_iget+0x78/0x554)
[<802aa15c>] (ubifs_iget) from [<802aa90c>] (ubifs_mount+0x2d4/0x1524)
[<802aa90c>] (ubifs_mount) from [<801dfab4>] (mount_fs+0x14/0xa4)
[<801dfab4>] (mount_fs) from [<801fa6b4>] (vfs_kern_mount+0x4c/0xf4)
[<801fa6b4>] (vfs_kern_mount) from [<801fd738>] (do_mount+0x154/0xb50)
[<801fd738>] (do_mount) from [<801fe49c>] (SyS_mount+0x74/0x9c)
[<801fe49c>] (SyS_mount) from [<801077a0>] (ret_fast_syscall+0x0/0x3c)
UBIFS error (ubi0:0 pid 599): ubifs_iget: failed to read inode 1, error -22
UBIFS (ubi0:0): background thread "ubifs_bgt0_0" stops
ubi0: detaching mtd0
ubi0: mtd0 is detached
ubi0: attaching mtd0
ubi0: scanning is finished
ubi0 error: ubi_read_volume_table: the layout volume was not found
ubi0 error: ubi_attach_mtd_dev: failed to attach mtd0, error -22
More information about the linux-mtd
mailing list