This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM335x musb_hdrc_mod

Other Parts Discussed in Thread: AM3359

Hello dear.

I  have found a problems. 

This problem was caused during file transfer using USB.

So, I had to capture the log. 

------------------------ System info --------------------------------------------------------

Hardware : AM3359(Beaglebone black)

Software: ti-sdk-am335x-evm-07.00.00.00

--------------------------     log  --------------------------------------------------------------

[Fri Jun 13 11:02:00.473 2014] [ 1979.318416] pgd = dd3ac000
[Fri Jun 13 11:02:00.473 2014] [ 1979.321256] [fffffff8] *pgd=9fcf2821, *pte=00000000, *ppte=00000000
[Fri Jun 13 11:02:00.473 2014] [ 1979.327864] Internal error: Oops: 17 [#1] ARM
[Fri Jun 13 11:02:00.473 2014] [ 1979.332440] Modules linked in: cdc_acm qcserial usb_wwan usbserial usb_f_mass_storage libcomposite configfs musb_dsps musb_hdrc musb_am335x
[Fri Jun 13 11:02:00.473 2014] [ 1979.345659] CPU: 0 PID: 1570 Comm: control-proc Tainted: G W 3.12.10-ti2013.12.01 #20
[Fri Jun 13 11:02:00.473 2014] [ 1979.354801] task: dd73fa40 ti: db80c000 task.ti: db80c000
[Fri Jun 13 11:02:00.473 2014] [ 1979.360519] PC is at musb_g_rx+0x8c/0x1bc [musb_hdrc]
[Fri Jun 13 11:02:00.473 2014] [ 1979.365841] LR is at musb_interrupt+0xa4/0x95c [musb_hdrc]
[Fri Jun 13 11:02:00.473 2014] [ 1979.371605] pc : [<bf00be08>] lr : [<bf005bec>] psr: 200f0193
[Fri Jun 13 11:02:00.473 2014] [ 1979.371605] sp : db80dcd0 ip : 00000000 fp : db80dd04
[Fri Jun 13 11:02:00.473 2014] [ 1979.383665] r10: 00000000 r9 : e09aed26 r8 : dd5ea4b8
[Fri Jun 13 11:02:00.473 2014] [ 1979.389155] r7 : 00000000 r6 : ffffffcc r5 : dd5ea010 r4 : dd5ea470
[Fri Jun 13 11:02:00.489 2014] [ 1979.396013] r3 : e09aed20 r2 : 00000000 r1 : e09aed26 r0 : dd5ea3f0
[Fri Jun 13 11:02:00.489 2014] [ 1979.402874] Flags: nzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment user
[Fri Jun 13 11:02:00.489 2014] [ 1979.410464] Control: 10c5387d Table: 9d3ac019 DAC: 00000015
[Fri Jun 13 11:02:00.489 2014] [ 1979.416501] Process control-proc (pid: 1570, stack limit = 0xdb80c240)
[Fri Jun 13 11:02:00.489 2014] [ 1979.423358] Stack: (0xdb80dcd0 to 0xdb80e000)
[Fri Jun 13 11:02:00.489 2014] [ 1979.427937] dcc0: ffffffcc 00000019 db80dd04 00000001
[Fri Jun 13 11:02:00.489 2014] [ 1979.436534] dce0: 00000002 dd5ea010 00000001 00000019 00000000 00000000 db80dd4c db80dd08
[Fri Jun 13 11:02:00.489 2014] [ 1979.445129] dd00: bf005bec bf00bd88 c006d508 c026294c db80dd3c db80dd20 c07b66fc c07ad300
[Fri Jun 13 11:02:00.489 2014] [ 1979.453725] dd20: db80dd84 bf02afb4 dd5ea010 00000000 e09b0800 a00f0193 00000001 dd64c3c0
[Fri Jun 13 11:02:00.489 2014] [ 1979.462319] dd40: db80dd84 db80dd50 bf02a7fc bf005b54 c03d4d08 00000000 00000000 db961280
[Fri Jun 13 11:02:00.489 2014] [ 1979.470915] dd60: 00000023 00000000 00000000 00000023 c07e2d91 dd005340 db80ddbc db80dd88
[Fri Jun 13 11:02:00.489 2014] [ 1979.479511] dd80: c006dc90 bf02a644 c00716ac c00303a0 db80ddbc dd005340 00000023 db80dfb0
[Fri Jun 13 11:02:00.504 2014] [ 1979.488107] dda0: 00000023 db80c000 00000006 00000100 db80ddd4 db80ddc0 c006de24 c006dc48
[Fri Jun 13 11:02:00.504 2014] [ 1979.496706] ddc0: 00024000 dd005340 db80ddec db80ddd8 c00701dc c006de00 c0070154 00000023
[Fri Jun 13 11:02:00.504 2014] [ 1979.505302] dde0: db80de04 db80ddf0 c006d598 c0070160 00000110 c07b66fc db80de24 db80de08
[Fri Jun 13 11:02:00.504 2014] [ 1979.513898] de00: c0015480 c006d57c 00000080 fa200000 db80de48 c07e3bd4 db80de44 db80de28
[Fri Jun 13 11:02:00.504 2014] [ 1979.522494] de20: c000879c c0015454 c03d4d08 200f0113 ffffffff db80de7c db80deac db80de48
[Fri Jun 13 11:02:00.504 2014] [ 1979.531090] de40: c0540b80 c0008740 00000000 dd0672c0 dd2dc3f0 c07640c4 dd718640 600f0113
[Fri Jun 13 11:02:00.504 2014] [ 1979.539688] de60: ffffff92 00000000 db80c000 00000006 00000100 db80deac db80de78 db80de90
[Fri Jun 13 11:02:00.504 2014] [ 1979.548284] de80: bf078fec c03d4d08 200f0113 ffffffff dd718654 db80deb0 dd65c4e8 dd65c4ec
[Fri Jun 13 11:02:00.504 2014] [ 1979.556879] dea0: db80ded4 db80deb0 c03d4e08 c03d4ca8 dd718954 dd718954 00000000 00000000
[Fri Jun 13 11:02:00.504 2014] [ 1979.565476] dec0: c07ac37c c07e4c00 db80def4 db80ded8 c00483a0 c03d4da0 00000001 00000018
[Fri Jun 13 11:02:00.504 2014] [ 1979.574073] dee0: c07e4c5c c07e4c40 db80df3c db80def8 c004875c c0048344 db80df24 db80df08
[Fri Jun 13 11:02:00.504 2014] [ 1979.582672] df00: 00000018 00400040 00028ffb 0000000a 00000023 600f0193 00000023 00000000
[Fri Jun 13 11:02:00.504 2014] [ 1979.591269] df20: 00000023 be878bf8 00000000 be878bf8 db80df54 db80df40 c00488e0 c00486a0
[Fri Jun 13 11:02:00.504 2014] [ 1979.599867] df40: 00000000 db80c000 db80df6c db80df58 c0048b58 c004889c 00000110 c07b66fc
[Fri Jun 13 11:02:00.504 2014] [ 1979.608464] df60: db80df8c db80df70 c0015484 c0048ac8 00000080 fa200000 db80dfb0 c07e3bd4
[Fri Jun 13 11:02:00.504 2014] [ 1979.617060] df80: db80dfac db80df90 c000879c c0015454 0003440a 400f0030 ffffffff 00000000
[Fri Jun 13 11:02:00.504 2014] [ 1979.625655] dfa0: 00000000 db80dfb0 c0540d60 c0008740 00000000 b57942e0 b5794364 00000000
[Fri Jun 13 11:02:00.504 2014] [ 1979.634251] dfc0: 001ab6bc 00000000 001aa244 00000000 be878bf8 00000000 be878bf8 b5794514
[Fri Jun 13 11:02:00.504 2014] [ 1979.642847] dfe0: 00000000 b5790bcc 0003490d 0003440a 400f0030 ffffffff 00000000 00000000
[Fri Jun 13 11:02:00.504 2014] [ 1979.651438] Backtrace:
[Fri Jun 13 11:02:00.504 2014] [ 1979.654044] [<bf00bd7c>] (musb_g_rx+0x0/0x1bc [musb_hdrc]) from [<bf005bec>] (musb_interrupt+0xa4/0x95c [musb_hdrc])
[Fri Jun 13 11:02:00.770 2014] [ 1979.665126] [<bf005b48>] (musb_interrupt+0x0/0x95c [musb_hdrc]) from [<bf02a7fc>] (dsps_interrupt+0x1c4/0x2dc [musb_dsps])
[Fri Jun 13 11:02:00.770 2014] [ 1979.676749] [<bf02a638>] (dsps_interrupt+0x0/0x2dc [musb_dsps]) from [<c006dc90>] (handle_irq_event_percpu+0x54/0x1b8)
[Fri Jun 13 11:02:00.770 2014] [ 1979.687994] [<c006dc3c>] (handle_irq_event_percpu+0x0/0x1b8) from [<c006de24>] (handle_irq_event+0x30/0x40)
[Fri Jun 13 11:02:00.770 2014] [ 1979.698238] [<c006ddf4>] (handle_irq_event+0x0/0x40) from [<c00701dc>] (handle_level_irq+0x88/0xdc)
[Fri Jun 13 11:02:00.770 2014] [ 1979.707742] r4:dd005340 r3:00024000
[Fri Jun 13 11:02:00.770 2014] [ 1979.711509] [<c0070154>] (handle_level_irq+0x0/0xdc) from [<c006d598>] (generic_handle_irq+0x28/0x38)
[Fri Jun 13 11:02:00.770 2014] [ 1979.721195] r4:00000023 r3:c0070154
[Fri Jun 13 11:02:00.770 2014] [ 1979.724972] [<c006d570>] (generic_handle_irq+0x0/0x38) from [<c0015480>] (handle_IRQ+0x38/0x8c)
[Fri Jun 13 11:02:00.770 2014] [ 1979.734112] r4:c07b66fc r3:00000110
[Fri Jun 13 11:02:00.770 2014] [ 1979.737880] [<c0015448>] (handle_IRQ+0x0/0x8c) from [<c000879c>] (omap3_intc_handle_irq+0x68/0x7c)
[Fri Jun 13 11:02:00.770 2014] [ 1979.747288] r6:c07e3bd4 r5:db80de48 r4:fa200000 r3:00000080
[Fri Jun 13 11:02:00.770 2014] [ 1979.753260] [<c0008734>] (omap3_intc_handle_irq+0x0/0x7c) from [<c0540b80>] (__irq_svc+0x40/0x54)
[Fri Jun 13 11:02:00.785 2014] [ 1979.762579] Exception stack(0xdb80de48 to 0xdb80de90)
[Fri Jun 13 11:02:00.785 2014] [ 1979.767889] de40: 00000000 dd0672c0 dd2dc3f0 c07640c4 dd718640 600f0113
[Fri Jun 13 11:02:00.785 2014] [ 1979.776486] de60: ffffff92 00000000 db80c000 00000006 00000100 db80deac db80de78 db80de90
[Fri Jun 13 11:02:00.785 2014] [ 1979.785079] de80: bf078fec c03d4d08 200f0113 ffffffff
[Fri Jun 13 11:02:00.785 2014] [ 1979.790385] r7:db80de7c r6:ffffffff r5:200f0113 r4:c03d4d08
[Fri Jun 13 11:02:00.785 2014] [ 1979.796356] [<c03d4c9c>] (__usb_hcd_giveback_urb+0x0/0xf8) from [<c03d4e08>] (usb_giveback_urb_bh+0x74/0xa4)
[Fri Jun 13 11:02:00.785 2014] [ 1979.806682] r6:dd65c4ec r5:dd65c4e8 r4:db80deb0 r3:dd718654
[Fri Jun 13 11:02:00.785 2014] [ 1979.812657] [<c03d4d94>] (usb_giveback_urb_bh+0x0/0xa4) from [<c00483a0>] (tasklet_action+0x68/0xbc)
[Fri Jun 13 11:02:00.785 2014] [ 1979.822253] r6:c07e4c00 r5:c07ac37c r4:00000000
[Fri Jun 13 11:02:00.785 2014] [ 1979.827121] [<c0048338>] (tasklet_action+0x0/0xbc) from [<c004875c>] (__do_softirq+0xc8/0x1ac)
[Fri Jun 13 11:02:00.785 2014] [ 1979.836170] r7:c07e4c40 r6:c07e4c5c r5:00000018 r4:00000001
[Fri Jun 13 11:02:00.785 2014] [ 1979.842139] [<c0048694>] (__do_softirq+0x0/0x1ac) from [<c00488e0>] (do_softirq+0x50/0x5c)
[Fri Jun 13 11:02:00.801 2014] [ 1979.850829] [<c0048890>] (do_softirq+0x0/0x5c) from [<c0048b58>] (irq_exit+0x9c/0xf0)
[Fri Jun 13 11:02:00.801 2014] [ 1979.859054] r4:db80c000 r3:00000000
[Fri Jun 13 11:02:00.801 2014] [ 1979.862822] [<c0048abc>] (irq_exit+0x0/0xf0) from [<c0015484>] (handle_IRQ+0x3c/0x8c)
[Fri Jun 13 11:02:00.801 2014] [ 1979.871047] r4:c07b66fc r3:00000110
[Fri Jun 13 11:02:00.801 2014] [ 1979.874816] [<c0015448>] (handle_IRQ+0x0/0x8c) from [<c000879c>] (omap3_intc_handle_irq+0x68/0x7c)
[Fri Jun 13 11:02:00.801 2014] [ 1979.884230] r6:c07e3bd4 r5:db80dfb0 r4:fa200000 r3:00000080
[Fri Jun 13 11:02:00.801 2014] [ 1979.890199] [<c0008734>] (omap3_intc_handle_irq+0x0/0x7c) from [<c0540d60>] (__irq_usr+0x40/0x60)
[Fri Jun 13 11:02:00.801 2014] [ 1979.899519] Exception stack(0xdb80dfb0 to 0xdb80dff8)
[Fri Jun 13 11:02:00.801 2014] [ 1979.904829] dfa0: 00000000 b57942e0 b5794364 00000000
[Fri Jun 13 11:02:00.801 2014] [ 1979.913425] dfc0: 001ab6bc 00000000 001aa244 00000000 be878bf8 00000000 be878bf8 b5794514
[Fri Jun 13 11:02:00.801 2014] [ 1979.922017] dfe0: 00000000 b5790bcc 0003490d 0003440a 400f0030 ffffffff
[Fri Jun 13 11:02:00.801 2014] [ 1979.928963] r7:00000000 r6:ffffffff r5:400f0030 r4:0003440a
[Fri Jun 13 11:02:00.801 2014] [ 1979.934930] Code: e3c22004 e2839006 e6ff2072 e1c920b0 (e51ca008)
[Fri Jun 13 11:02:00.801 2014] [ 1979.941347] ---[ end trace d3380fe526a28a17 ]---
[Fri Jun 13 11:02:00.801 2014] [ 1979.946200] Kernel panic - not syncing: Fatal exception in interrupt

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

and I try to analysis.. but its to hard to me.

So, I have a search in our friend(google)

as a result, I change the kernel configuration for debug level

and I get a disassemble code..

----------------------------------------  disassemble code below -----------------------------------------------------------

static inline void __raw_writew(u16 val, volatile void __iomem *addr)
{
asm volatile("strh %1, %0"
86c4: e1a04001 mov r4, r1
86c8: e1c120b0 strh r2, [r1]
86cc: ea000047 b 87f0 <musb_g_rx+0x1b0>
musb_writew(epio, MUSB_RXCSR, csr);
return;
}

if (csr & MUSB_RXCSR_P_OVERRUN) {
86d0: e3120004 tst r2, #4
86d4: 0a000007 beq 86f8 <musb_g_rx+0xb8>
/- csr |= MUSB_RXCSR_P_WZC_BITS; *-
csr &= ~MUSB_RXCSR_P_OVERRUN;
86d8: e3c22004 bic r2, r2, #4
86dc: e2839006 add r9, r3, #6
86e0: e6ff2072 uxth r2, r2
86e4: e1c920b0 strh r2, [r9]
musb_writew(epio, MUSB_RXCSR, csr);

dev_dbg(musb->controller, "%s iso overrun on %p\n", musb_ep->name, request);
if (request->status == -EINPROGRESS)
86e8: e51ca008 ldr sl, [ip, #-8]
86ec: e37a0073 cmn sl, #115 ; 0x73
request->status = -EOVERFLOW;
86f0: 03e0a04a mvneq sl, #74 ; 0x4a
86f4: 050ca008 streq sl, [ip, #-8]
86f8: e3570000 cmp r7, #0
86fc: 0a000038 beq 87e4 <musb_g_rx+0x1a4>
if (csr & MUSB_RXCSR_INCOMPRX) {
/- REVISIT not necessarily an error *-
dev_dbg(musb->controller, "%s, incomprx\n", musb_ep->end_point.name);
}

if (dma_channel_status(dma) == MUSB_DMA_STATUS_BUSY) {
8700: e597a00c ldr sl, [r7, #12]
8704: e35a0002 cmp sl, #2
8708: 0a000038 beq 87f0 <musb_g_rx+0x1b0>
dev_dbg(musb->controller, "%s busy, csr %04x\n",
musb_ep->end_point.name, csr);
return;
}

if (dma && (csr & MUSB_RXCSR_DMAENAB)) {
870c: e3120a02 tst r2, #8192 ; 0x2000
8710: 0a000033 beq 87e4 <musb_g_rx+0x1a4>
csr &= ~(MUSB_RXCSR_AUTOCLEAR
8714: e59fa0dc ldr sl, [pc, #220] ; 87f8 <musb_g_rx+0x1b8>

This is a double.. triple difficult to me..

I wonder about how to solve.. 

I am extremely thankful to your help.

Best regards

Jun