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.

Linux/PROCESSOR-SDK-AM335X: MUSB PIO Mode

Part Number: PROCESSOR-SDK-AM335X

Tool/software: Linux

I'm trying to use most recent version of tisdk.

MUSB DMA mode works properly but it has problem with UAC2. However it works well with storage.

In order to solve UAC2 operation, I have to turn off DMA mode of MUSB by setting PIO_ONLY but still DMA operational.

How can I solve this issue?

Shin

  • Hi Shin,

    Have you tried hardcoding use_dma to 0 in musb_core.c?

    Best Regards,
    Yordan
  • Hi Yordan,

    I did it. It looks dma mode is disabled but problem is same with UAC2.

    When start UAC2 then message shown like this.

    [ 414.952521] sched: RT throttling activated
    [ 434.262561] INFO: rcu_preempt detected stalls on CPUs/tasks:
    [ 434.268787] (detected by 0, t=2102 jiffies, g=21722, c=21721, q=11)
    [ 434.275797] All QSes seen, last rcu_preempt kthread activity 2102 (13426-11324), jiffies_till_next_fqs=1, root ->qsmask 0x0
    [ 434.287297] Main R running 0 1191 1039 0x00000002
    [ 434.294195] Backtrace:
    [ 434.297496] [<c00134e4>] (dump_backtrace) from [<c00136e0>] (show_stack+0x18/0x1c)
    [ 434.305396] r7:c0914754 r6:c0914328 r5:0000040f r4:cbdbe100
    [ 434.312188] [<c00136c8>] (show_stack) from [<c0055c74>] (sched_show_task+0xbc/0x110)
    [ 434.320550] [<c0055bb8>] (sched_show_task) from [<c0077950>] (rcu_check_callbacks+0x8c8/0x8d4)
    [ 434.329469] r5:c0914328 r4:c09147ac
    [ 434.333822] [<c0077088>] (rcu_check_callbacks) from [<c007ac80>] (update_process_times+0x44/0x6c)
    [ 434.342989] r10:c091530c r9:c008a098 r8:00000000 r7:00000065 r6:00000000 r5:cbdbe100
    [ 434.351787] r4:ffffe000
    [ 434.354889] [<c007ac3c>] (update_process_times) from [<c008a094>] (tick_sched_handle+0x50/0x54)
    [ 434.363886] r7:00000065 r6:1bf1395d r5:cafddaa8 r4:c0915a40
    [ 434.370494] [<c008a044>] (tick_sched_handle) from [<c008a0fc>] (tick_sched_timer+0x64/0xb8)
    [ 434.379406] [<c008a098>] (tick_sched_timer) from [<c007b9d0>] (__hrtimer_run_queues.constprop.6+0x150/0x1e0)
    [ 434.389540] r7:c0915300 r6:cafdc000 r5:c0915a40 r4:c09152c0
    [ 434.396262] [<c007b880>] (__hrtimer_run_queues.constprop.6) from [<c007bc90>] (hrtimer_interrupt+0xb4/0x250)
    [ 434.406395] r10:c0915378 r9:cafdd978 r8:ffffffff r7:7fffffff r6:00000003 r5:cafdc000
    [ 434.415185] r4:c09152c0
    [ 434.418370] [<c007bbdc>] (hrtimer_interrupt) from [<c0020dac>] (omap2_gp_timer_interrupt+0x30/0x38)
    [ 434.427707] r10:c0954794 r9:cb804c00 r8:00000010 r7:00000000 r6:00000000 r5:cb804c10
    [ 434.436484] r4:c090ccb4
    [ 434.439641] [<c0020d7c>] (omap2_gp_timer_interrupt) from [<c006b694>] (handle_irq_event_percpu+0xb4/0x16c)
    [ 434.449823] [<c006b5e0>] (handle_irq_event_percpu) from [<c006b7b0>] (handle_irq_event+0x64/0x90)
    [ 434.458994] r10:c0956140 r9:00000010 r8:cb806000 r7:cafddbb0 r6:00000000 r5:cb804c10
    [ 434.467768] r4:cb804c00
    [ 434.470878] [<c006b74c>] (handle_irq_event) from [<c006e58c>] (handle_level_irq+0xb8/0x168)
    [ 434.479520] r5:cb804c10 r4:cb804c00
    [ 434.483795] [<c006e4d4>] (handle_level_irq) from [<c006ad5c>] (generic_handle_irq+0x2c/0x3c)
    [ 434.492511] r5:00000010 r4:c092bf84
    [ 434.496779] [<c006ad30>] (generic_handle_irq) from [<c006afc8>] (__handle_domain_irq+0x5c/0xb0)
    [ 434.505981] [<c006af6c>] (__handle_domain_irq) from [<c0009468>] (omap_intc_handle_irq+0x3c/0x98)
    [ 434.515141] r9:00000010 r8:cb806000 r7:cafddadc r6:ffffffff r5:600b0113 r4:c0985a40
    [ 434.524016] [<c000942c>] (omap_intc_handle_irq) from [<c0014194>] (__irq_svc+0x54/0x90)
    [ 434.532348] Exception stack(0xcafddaa8 to 0xcafddaf0)
    [ 434.537882] daa0: 00404140 00000101 c0956100 00000000 00000002 00000010
    [ 434.546607] dac0: 00000000 00000000 cb806000 00000010 c0956140 cafddb54 c0956140 cafddaf8
    [ 434.555198] dae0: c0035304 c0034e48 600b0113 ffffffff
    [ 434.560505] r5:600b0113 r4:c0034e48
    [ 434.564861] [<c0034dac>] (__do_softirq) from [<c0035304>] (irq_exit+0xec/0x120)
    [ 434.572452] r10:cab6b80c r9:00000010 r8:cb806000 r7:00000000 r6:00000000 r5:00000010
    [ 434.581237] r4:c092bf84
    [ 434.584314] [<c0035218>] (irq_exit) from [<c006afcc>] (__handle_domain_irq+0x60/0xb0)
    [ 434.592423] r5:00000010 r4:c092bf84
    [ 434.596675] [<c006af6c>] (__handle_domain_irq) from [<c0009468>] (omap_intc_handle_irq+0x3c/0x98)
    [ 434.605833] r9:00000010 r8:cbd4a010 r7:cafddbe4 r6:ffffffff r5:200b0013 r4:c0985a40
    [ 434.614708] [<c000942c>] (omap_intc_handle_irq) from [<c0014194>] (__irq_svc+0x54/0x90)
    [ 434.623023] Exception stack(0xcafddbb0 to 0xcafddbf8)
    [ 434.628482] dba0: d0d88410 d0d88412 000034a6 600b0013
    [ 434.637200] dbc0: cab6b800 caf59500 00000000 ca93e600 cbd4a010 00000010 cab6b80c cafddc5c
    [ 434.645853] dbe0: cafddb80 cafddc00 bf1bbaa0 bf1bcf10 200b0013 ffffffff
    [ 434.652737] r5:200b0013 r4:bf1bcf10
    [ 434.661932] [<bf1bcc48>] (musb_urb_enqueue [musb_hdrc]) from [<bf134280>] (usb_hcd_submit_urb+0xb4/0x8ac [usbcore])
    [ 434.672721] r10:c5045a00 r9:00000000 r8:02080020 r7:00000000 r6:ca93e600 r5:caf59508
    [ 434.681515] r4:caf59500
    [ 434.690021] [<bf1341cc>] (usb_hcd_submit_urb [usbcore]) from [<bf135be4>] (usb_submit_urb+0x2b8/0x4cc [usbcore])
    [ 434.700526] r10:c5045a00 r9:00000000 r8:00000004 r7:00000001 r6:c5047800 r5:02080020
    [ 434.709298] r4:caf59500
    [ 434.717211] [<bf13592c>] (usb_submit_urb [usbcore]) from [<bf3039c0>] (snd_usb_endpoint_start+0x12c/0x344 [snd_usb_audio])
    [ 434.728584] r10:c5045a00 r9:caf59500 r8:02080020 r7:cace0000 r6:00000000 r5:cace1000
    [ 434.737373] r4:cace0000
    [ 434.743081] [<bf303894>] (snd_usb_endpoint_start [snd_usb_audio]) from [<bf30c044>] (start_endpoints+0xe8/0x17c [snd_usb_audio])
    [ 434.754969] r10:c5045a00 r9:cafdc000 r8:00000001 r7:cace1000 r6:00000001 r5:caf69800
    [ 434.763743] r4:c5045410
    [ 434.769390] [<bf30bf5c>] (start_endpoints [snd_usb_audio]) from [<bf30deb4>] (snd_usb_pcm_prepare+0x338/0x3f8 [snd_usb_audio])
    [ 434.781114] r6:00000000 r5:caf69800 r4:c5045410
    [ 434.788007] [<bf30db7c>] (snd_usb_pcm_prepare [snd_usb_audio]) from [<c052b544>] (snd_pcm_do_prepare+0x1c/0x34)
    [ 434.798428] r10:c5045a00 r9:cafdc000 r8:00000001 r7:00000002 r6:c5045a00 r5:c094b9a8
    [ 434.807220] r4:c5045a00
    [ 434.810332] [<c052b528>] (snd_pcm_do_prepare) from [<c052b13c>] (snd_pcm_action_single+0x40/0x88)
    [ 434.819506] r5:c094b9a8 r4:c5045a00
    [ 434.823815] [<c052b0fc>] (snd_pcm_action_single) from [<c052b1e8>] (snd_pcm_action_nonatomic+0x64/0x6c)
    [ 434.833505] r7:00000029 r6:00000002 r5:c094b9a8 r4:c5045a00
    [ 434.840217] [<c052b184>] (snd_pcm_action_nonatomic) from [<c052da80>] (snd_pcm_common_ioctl1+0xa84/0xf58)
    [ 434.850074] r7:00000029 r6:00000002 r5:cac62cb8 r4:00000000
    [ 434.856762] [<c052cffc>] (snd_pcm_common_ioctl1) from [<c052e1d8>] (snd_pcm_playback_ioctl1+0x284/0x60c)
    [ 434.866540] r10:00000000 r9:cafdc000 r8:00000001 r7:00000029 r6:ca9680c0 r5:00000001
    [ 434.875319] r4:c5045a00
    [ 434.878453] [<c052df54>] (snd_pcm_playback_ioctl1) from [<c052e58c>] (snd_pcm_playback_ioctl+0x2c/0x38)
    [ 434.888136] r8:00000001 r7:00000029 r6:ca9680c0 r5:caea1850 r4:00000001
    [ 434.896007] [<c052e560>] (snd_pcm_playback_ioctl) from [<c0116538>] (do_vfs_ioctl+0x480/0x6f8)
    [ 434.905103] [<c01160b8>] (do_vfs_ioctl) from [<c01167ec>] (SyS_ioctl+0x3c/0x64)
    [ 434.912690] r10:00000000 r9:cafdc000 r8:00000001 r7:00004140 r6:ca9680c0 r5:00000029
    [ 434.921474] r4:ca9680c1
    [ 434.924574] [<c01167b0>] (SyS_ioctl) from [<c000fa00>] (ret_fast_syscall+0x0/0x3c)
    [ 434.932435] r9:cafdc000 r8:c000fbc4 r7:00000036 r6:b45fe2bc r5:0006c0ee r4:007e3318
    [ 434.941313] rcu_preempt kthread starved for 2102 jiffies! g21722 c21721 f0x2 s3 ->state=0x0
  • Hi,

    It seems that some real-time task is started in your system:
    [ 414.952521] sched: RT throttling activated
    [ 434.262561] INFO: rcu_preempt detected stalls on CPUs/tasks:

    Are you using the RT kernel or the non-RT one?

    Also can you share your full boot log & your dts file?

    Best Regards,
    Yordan