[BUG] pxa3xx: wait time out when scanning for bb

Sean Nyekjær sean.nyekjaer at prevas.dk
Tue Nov 28 05:12:45 PST 2017


Hi Miquel

On 2017-11-28 14:02, Miquel RAYNAL wrote:
> Hi Sean,
>
>> I'm currently in the process of doing bringup on a custom armada 38x
>> board. During the firsts boots of the Linux kernel we saw that the
>> NAND driver throws a lot of timeout messages.
>>
>> Like this:
>> [ 28.321054] pxa3xx-nand f10d0000.flash: Wait time out!!!
>> [ 28.521054] pxa3xx-nand f10d0000.flash: Wait time out!!!
>> [ 28.721054] pxa3xx-nand f10d0000.flash: Wait time out!!!
> Could you paste the entire dmesg please ?
Sure, se below. BBT is disabled
>
> Also, what kernel are you using ?
4.14.0 :-)
>
>> That lead me to investigate the issue and found this thread (quite
>> old): https://www.spinics.net/lists/arm-kernel/msg488581.html
>>
>> In the thread some is describing a possible race condition when the
>> NAND framework is scanning for bad blocks.
> Not sure this is still relevant, but, who knows.
>
>
> Thanks,
> Miquèl

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.14.0-00023-gd0f553c82aac-dirty (skn at skn) 
(gcc version 7.2.0 (Arch Repository)) #46 SMP PREEMPT Tue Nov 28 
12:44:43 CET 2017
[    0.000000] CPU: ARMv7 Processor [414fc091] revision 1 (ARMv7), 
cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing 
instruction cache
[    0.000000] OF: fdt: Machine model: Triax DVB-TC Output
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] random: fast init done
[    0.000000] percpu: Embedded 17 pages/cpu @ef7ca000 s37132 r8192 
d24308 u69632
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 260608
[    0.000000] Kernel command line: console=ttyS0,115200 ubi.mtd=1 
mtdparts=pxa3xx_nand-0:1m(uboot),-(ubi0) shell
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 
bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 
bytes)
[    0.000000] Memory: 1026888K/1048576K available (6144K kernel code, 
428K rwdata, 1328K rodata, 1024K init, 159K bss, 21688K reserved, 0K 
cma-reserved, 262144K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0700000   (7136 kB)
[    0.000000]       .init : 0xc0900000 - 0xc0a00000   (1024 kB)
[    0.000000]       .data : 0xc0a00000 - 0xc0a6b230   ( 429 kB)
[    0.000000]        .bss : 0xc0a6b230 - 0xc0a9317c   ( 160 kB)
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]     RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[    0.000000]     Tasks RCU enabled.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] L2C-310 enabling early BRESP for Cortex-A9
[    0.000000] L2C-310 full line of zeros enabled for Cortex-A9
[    0.000000] L2C-310 D prefetch enabled, offset 1 lines
[    0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
[    0.000000] L2C-310 Coherent cache controller enabled, 16 ways, 1024 kB
[    0.000000] L2C-310 Coherent: CACHE_ID 0x410054c9, AUX_CTRL 0x56070001
[    0.000010] sched_clock: 64 bits at 533MHz, resolution 1ns, wraps 
every 2199023255551ns
[    0.000023] clocksource: arm_global_timer: mask: 0xffffffffffffffff 
max_cycles: 0x7aed16d152, max_idle_ns: 440795225656 ns
[    0.000042] Switching to timer-based delay loop, resolution 1ns
[    0.000209] Ignoring duplicate/late registration of 
read_current_timer delay
[    0.000219] clocksource: armada_370_xp_clocksource: mask: 0xffffffff 
max_cycles: 0xffffffff, max_idle_ns: 76450417870 ns
[    0.000559] Console: colour dummy device 80x30
[    0.000580] Calibrating delay loop (skipped), value calculated using 
timer frequency.. 1066.00 BogoMIPS (lpj=5330000)
[    0.000590] pid_max: default: 32768 minimum: 301
[    0.000671] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000680] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 
bytes)
[    0.001053] CPU: Testing write buffer coherency: ok
[    0.001211] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.040132] Setting up static identity map for 0x100000 - 0x100060
[    0.040228] mvebu-soc-id: MVEBU SoC ID=0x6810, Rev=0x4
[    0.040323] mvebu-pmsu: Initializing Power Management Service Unit
[    0.060106] Hierarchical SRCU implementation.
[    0.100104] smp: Bringing up secondary CPUs ...
[    0.170166] Booting CPU 1
[    1.200101] CPU1: failed to come online
[    1.200154] smp: Brought up 1 node, 1 CPU
[    1.200160] SMP: Total of 1 processors activated (1066.00 BogoMIPS).
[    1.200165] CPU: All CPU(s) started in SVC mode.
[    1.200696] devtmpfs: initialized
[    1.202583] VFP support v0.3: implementor 41 architecture 3 part 30 
variant 9 rev 4
[    1.202704] clocksource: jiffies: mask: 0xffffffff max_cycles: 
0xffffffff, max_idle_ns: 19112604462750000 ns
[    1.202715] futex hash table entries: 512 (order: 3, 32768 bytes)
[    1.202821] pinctrl core: initialized pinctrl subsystem
[    1.203212] NET: Registered protocol family 16
[    1.203846] DMA: preallocated 256 KiB pool for atomic coherent 
allocations
[    1.204397] cpuidle: using governor ladder
[    1.204462] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 
watchpoint registers.
[    1.204469] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    1.204598] mvebu-pmsu: CPU hotplug support is currently broken on 
Armada 38x: disabling
[    1.204608] mvebu-pmsu: CPU idle is currently broken on Armada 38x: 
disabling
[    1.240390] SCSI subsystem initialized
[    1.260188] clocksource: Switched to clocksource arm_global_timer
[    1.286316] NET: Registered protocol family 2
[    1.286687] TCP established hash table entries: 8192 (order: 3, 32768 
bytes)
[    1.286746] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[    1.286841] TCP: Hash tables configured (established 8192 bind 8192)
[    1.286921] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    1.286959] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    1.287074] NET: Registered protocol family 1
[    1.307361] RPC: Registered named UNIX socket transport module.
[    1.307367] RPC: Registered udp transport module.
[    1.307372] RPC: Registered tcp transport module.
[    1.307376] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.307513] Unpacking initramfs...
[    1.439858] Freeing initrd memory: 2656K
[    1.440285] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 
counters available
[    1.441143] workingset: timestamp_bits=30 max_order=18 bucket_order=0
[    1.452415] bounce: pool size: 64 pages
[    1.452451] Block layer SCSI generic (bsg) driver version 0.4 loaded 
(major 251)
[    1.452459] io scheduler noop registered
[    1.452464] io scheduler deadline registered
[    1.452499] io scheduler cfq registered (default)
[    1.452505] io scheduler mq-deadline registered
[    1.452510] io scheduler kyber registered
[    1.453243] armada-38x-pinctrl f1018000.pinctrl: registered pinctrl 
driver
[    1.454825] mvebu-pcie soc:pcie: PCI host bridge to bus 0000:00
[    1.454837] pci_bus 0000:00: root bus resource [io 0x1000-0xfffff]
[    1.454845] pci_bus 0000:00: root bus resource [mem 
0xe0000000-0xe7ffffff]
[    1.454852] pci_bus 0000:00: root bus resource [bus 00-ff]
[    1.455028] PCI: bus0: Fast back to back transfers disabled
[    1.455037] pci 0000:00:01.0: bridge configuration invalid ([bus 
00-00]), reconfiguring
[    1.455102] PCI: bus1: Fast back to back transfers enabled
[    1.455129] pci 0000:00:01.0: PCI bridge to [bus 01]
[    1.455456] mv_xor f1060800.xor: Marvell shared XOR driver
[    1.510678] mv_xor f1060800.xor: Marvell XOR (Descriptor Mode): ( xor 
cpy intr )
[    1.510833] mv_xor f1060900.xor: Marvell shared XOR driver
[    1.570660] mv_xor f1060900.xor: Marvell XOR (Descriptor Mode): ( xor 
cpy intr )
[    1.594127] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    1.595218] console [ttyS0] disabled
[    1.615355] f1012000.serial: ttyS0 at MMIO 0xf1012000 (irq = 22, 
base_baud = 15625000) is a 16550A
[    2.284175] console [ttyS0] enabled
[    2.288684] pxa3xx-nand f10d0000.flash: This platform can't do DMA on 
this device
[    2.296924] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xda
[    2.303311] nand: Micron MT29F2G08ABAEAH4
[    2.307334] nand: 256 MiB, SLC, erase size: 128 KiB, page size: 2048, 
OOB size: 64
[    2.314939] pxa3xx-nand f10d0000.flash: ECC strength 16, ECC step 
size 2048
[    2.321936] Scanning device for bad blocks
[    2.530193] pxa3xx-nand f10d0000.flash: Wait time out!!!
[    2.740191] pxa3xx-nand f10d0000.flash: Wait time out!!!
[    2.950191] pxa3xx-nand f10d0000.flash: Wait time out!!!
[    3.160192] pxa3xx-nand f10d0000.flash: Wait time out!!!
[    3.370191] pxa3xx-nand f10d0000.flash: Wait time out!!!
[    3.580191] pxa3xx-nand f10d0000.flash: Wait time out!!!
[    3.790191] pxa3xx-nand f10d0000.flash: Wait time out!!!
[    4.000191] pxa3xx-nand f10d0000.flash: Wait time out!!!
[    4.210191] pxa3xx-nand f10d0000.flash: Wait time out!!!
[    4.420191] pxa3xx-nand f10d0000.flash: Wait time out!!!
...



More information about the linux-mtd mailing list