AnsweredAssumed Answered

Kernel crash on i.MX6UL when iPhone is connected

Question asked by Ravi Kumar on Aug 10, 2018

We are connecting iPhone to OTG port of i.MX6UL evaluation board through lighting cable as shown below.


iPhone <-----> Lightning cable <------> USB OTG cable <------> i.MX6UL OTG port

We could see following crash if we connect iPhone to i.MX6UL after booting the board. If we connect iPhone to i.MX6UL and then poweron the board then crash is not observed. The Kernel version is 4.9.11.

--------------------------------------------------------------------------------------------------
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = 80004000
[00000000] *pgd=00000000
Internal error: Oops: 805 [#1] PREEMPT SMP ARM
Modules linked in: g_ffs
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.9.11-02214-ga0732804f70f #72
Hardware name: Freescale i.MX6 UltraLite (Device Tree)
task: 80d06380 task.stack: 80d00000
PC is at expire_timers+0x38/0xa8
LR is at _raw_spin_lock+0x10/0x50
pc : [<8018098c>] lr : [<80827310>] psr: 200f0193
sp : 80d01e48 ip : 8bb36e60 fp : 40000001
r10: 80d02080 r9 : 8820e1e0 r8 : 80140ec4
r7 : 00000000 r6 : 00000200 r5 : 80d01e68 r4 : 8bb333c0
r3 : 8820e1f0 r2 : 00000200 r1 : 00000000 r0 : 8bb333c0
Flags: nzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment none
Control: 10c53c7d Table: 8870406a DAC: 00000051
Process swapper/0 (pid: 0, stack limit = 0x80d00210)
Stack: (0x80d01e48 to 0x80d02000)
1e40: 00000001 80d01e68 8bb333c0 80d02d00 80d03288 80d02080
1e60: 80d02080 80180a90 8820e1f0 8801c000 80c70d10 0aec4000 ffffaf70 8048f60c
1e80: 80daf450 10c43c98 00000000 00000001 80d02084 80d00000 00000101 8013199c
1ea0: 8801c060 8801c060 80d01ea0 80d69380 0000000a ffffaf71 80d02d00 00200100
1ec0: 8801c000 80c70cdc 00000000 00000010 00000000 00000001 80d01f30 88006000
1ee0: 000000f0 80131db0 80c70cdc 80170044 80d1c000 80d033f0 f4a0200c 80d01f30
1f00: f4a02000 f4a03000 00000000 801014e8 805f12c0 200f0013 ffffffff 80d01f64
1f20: d4badac6 80d00000 00000000 8010bc4c 00000000 80ab5b68 00000001 0aec4000
1f40: b08619fe 00000015 8bb35e28 00000001 d4badac6 00000015 00000000 000000f0
1f60: 29aaaaab 80d01f80 80166b00 805f12c0 200f0013 ffffffff 00000051 00000000
1f80: 8bb35e28 80d00000 80d030ec 00000001 80d0313c 8bb35e28 80d09314 80c71e20
1fa0: 80d03144 80166d28 80d01fa8 80d11aaa 00000000 ffffffff 00000000 80c00c58
1fc0: ffffffff ffffffff 00000000 80c00684 00000000 80c5ea30 80d68294 80d030d8
1fe0: 80c5ea2c 80d07568 8000406a 410fc075 00000000 8000807c 00000000 00000000
[<8018098c>] (expire_timers) from [<80180a90>] (run_timer_softirq+0x94/0x18c)
[<80180a90>] (run_timer_softirq) from [<8013199c>] (__do_softirq+0xe4/0x22c)
[<8013199c>] (__do_softirq) from [<80131db0>] (irq_exit+0xcc/0x108)
[<80131db0>] (irq_exit) from [<80170044>] (__handle_domain_irq+0x80/0xec)
[<80170044>] (__handle_domain_irq) from [<801014e8>] (gic_handle_irq+0x48/0x8c)
[<801014e8>] (gic_handle_irq) from [<8010bc4c>] (__irq_svc+0x6c/0xa8)
Exception stack(0x80d01f30 to 0x80d01f78)
1f20: 00000000 80ab5b68 00000001 0aec4000
1f40: b08619fe 00000015 8bb35e28 00000001 d4badac6 00000015 00000000 000000f0
1f60: 29aaaaab 80d01f80 80166b00 805f12c0 200f0013 ffffffff
[<8010bc4c>] (__irq_svc) from [<805f12c0>] (cpuidle_enter_state+0x178/0x2a0)
[<805f12c0>] (cpuidle_enter_state) from [<80166d28>] (cpu_startup_entry+0x148/0x218)
[<80166d28>] (cpu_startup_entry) from [<80c00c58>] (start_kernel+0x37c/0x388)
Code: e5843004 e5932000 e5931004 e3520000 (e5812000)
---[ end trace 762349429eda3af6 ]---
Kernel panic - not syncing: Fatal exception in interrupt
---[ end Kernel panic - not syncing: Fatal exception in interrupt

--------------------------------------------------------------------------------------------------

We have two i.mx6ul evaluation boards. The crash observed in one evaluation board, but didn't see on the other.

Can you guide to understand what is the cause.

Outcomes