Hi all! I need your help. I have a custom board based on mpc52xx. kernel: 2.6.21 arch: powerpc u-boot: 1.2.0
The board reach the shell and everything seems to work fine. But when i plug-in a usb-storage the system try to do all the necessary operations to enable the device but after these prints: ============================================ [EMAIL PROTECTED]> hub 1-0:1.0: state 7 ports 2 chg 0000 evt 0004 ppc-of-ohci f0001000.usb: GetStatus roothub.portstatus [1] = 0x00010101 CSC PPS CCS hub 1-0:1.0: port 2, status 0101, change 0001, 12 Mb/s hub 1-0:1.0: debounce: port 2: total 100ms stable 100ms status 0x101 ppc-of-ohci f0001000.usb: GetStatus roothub.portstatus [1] = 0x00100103 PRSC PPS PES CCS usb 1-2: new full speed USB device using ppc-of-ohci and address 2 ============================================ the system sleep for just 1 minute and return with these prints: ============================================ BUG: soft lockup detected on CPU#0! Call Trace: [C7E05A50] [C0007FD8] show_stack+0x3c/0x194 (unreliable) [C7E05A80] [C004A380] softlockup_tick+0xa4/0xd4 [C7E05AA0] [C002B998] run_local_timers+0x18/0x28 [C7E05AB0] [C002B9D8] update_process_times+0x30/0x7c [C7E05AC0] [C003FF3C] tick_sched_timer+0xb0/0x280 [C7E05B20] [C003C538] hrtimer_interrupt+0x214/0x26c [C7E05B80] [C000E744] timer_interrupt+0x88/0x354 [C7E05BF0] [C0011C04] ret_from_except+0x0/0x14 --- Exception: 901 at handle_IRQ_event+0x7c/0x1e8 LR = handle_level_irq+0x90/0x13c [C7E05CB0] [C7F15C00] 0xc7f15c00 (unreliable) [C7E05CD0] [C004C2E0] handle_level_irq+0x90/0x13c [C7E05CE0] [C0006304] do_IRQ+0x98/0xbc [C7E05CF0] [C0011C04] ret_from_except+0x0/0x14 --- Exception: 501 at schedule+0x38/0x64c LR = schedule_timeout+0x68/0xe4 [C7E05DB0] [C01A1650] usb_hcd_submit_urb+0x190/0x8a0 (unreliable) [C7E05E00] [C02389A4] schedule_timeout+0x68/0xe4 [C7E05E40] [C0238378] wait_for_completion_timeout+0x8c/0x138 [C7E05E80] [C01A2B60] usb_start_wait_urb+0x64/0x124 [C7E05EB0] [C01A2E1C] usb_control_msg+0xc4/0xf0 [C7E05EF0] [C019D0D0] hub_port_init+0x424/0x614 [C7E05F40] [C019F42C] hub_thread+0x434/0xe64 [C7E05FC0] [C0037E60] kthread+0xc0/0xfc [C7E05FF0] [C00123F8] original_kernel_thread+0x44/0x60 ppc-of-ohci f0001000.usb: OHCI Unrecoverable Error, disabled ppc-of-ohci f0001000.usb: OHCI controller state ppc-of-ohci f0001000.usb: OHCI 1.0, NO legacy support registers ppc-of-ohci f0001000.usb: control 0x093 HCFS=operational CLE CBSR=3 ppc-of-ohci f0001000.usb: cmdstatus 0x00000 SOC=0 ppc-of-ohci f0001000.usb: intrstatus 0x00000074 RHSC FNO UE SF ppc-of-ohci f0001000.usb: intrenable 0x8000001a MIE UE RD WDH ppc-of-ohci f0001000.usb: ed_controlhead 07fcc000 ppc-of-ohci f0001000.usb: ed_controlcurrent fffffff0 ppc-of-ohci f0001000.usb: hcca frame #ddb6 ppc-of-ohci f0001000.usb: roothub.a 02001202 POTPGT=2 NOCP NPS NDP=2(2) ppc-of-ohci f0001000.usb: roothub.b 00000000 PPCM=0000 DR=0000 ppc-of-ohci f0001000.usb: roothub.status 00008000 DRWE ppc-of-ohci f0001000.usb: roothub.portstatus [0] 0x00000100 PPS ppc-of-ohci f0001000.usb: roothub.portstatus [1] 0x00030100 PESC CSC PPS ppc-of-ohci f0001000.usb: HC died; cleaning up irq 134: nobody cared (try booting with the "irqpoll" option) Call Trace: [C046FDF0] [C0007FD8] show_stack+0x3c/0x194 (unreliable) [C046FE20] [C004B358] __report_bad_irq+0x34/0xac [C046FE40] [C004B4AC] note_interrupt+0xdc/0x288 [C046FE70] [C004C344] handle_level_irq+0xf4/0x13c [C046FE80] [C0006304] do_IRQ+0x98/0xbc [C046FE90] [C0011C04] ret_from_except+0x0/0x14 --- Exception: 501 at schedule+0x304/0x64c LR = schedule+0x2d8/0x64c [C046FFA0] [C004A2B4] watchdog+0x4c/0x74 [C046FFC0] [C0037E60] kthread+0xc0/0xfc [C046FFF0] [C00123F8] original_kernel_thread+0x44/0x60 handlers: [<c01a1008>] (usb_hcd_irq+0x0/0x9c) Disabling IRQ #134 usb 1-2: khubd timed out on ep0in len=0/64 hub 1-0:1.0: cannot reset port 2 (err = -19) hub 1-0:1.0: cannot disable port 2 (err = -19) ppc-of-ohci f0001000.usb: leak ed c7fcc000 (#00) state 0 (has tds) hub 1-0:1.0: cannot reset port 2 (err = -19) hub 1-0:1.0: cannot disable port 2 (err = -19) hub 1-0:1.0: cannot reset port 2 (err = -19) hub 1-0:1.0: cannot disable port 2 (err = -19) hub 1-0:1.0: cannot reset port 2 (err = -19) hub 1-0:1.0: cannot disable port 2 (err = -19) hub 1-0:1.0: cannot disable port 2 (err = -19) hub 1-0:1.0: state 0 ports 2 chg 0000 evt 0004 ============================================ I'd like to follow the message "try booting with the "irqpoll" option" but i don't know how to enable this option! I had looked for this option in my kernel but there isn't any similar symbol. At boot time i can see these prints for usb-driver: ============================================ ohci_hcd: 2006 August 04 USB 1.1 'Open' Host Controller (OHCI) Driver ohci_hcd: block sizes: ed 64 td 64 ppc-of-ohci f0001000.usb: initializing PPC-OF USB Controller irq: irq_create_mapping(0xc0455480, 0x86) irq: -> using host @c0455480 irq: -> obtained virq 134 ppc-of-ohci f0001000.usb: OF OHCI drivers/usb/core/inode.c: creating file 'devices' drivers/usb/core/inode.c: creating file '001' ppc-of-ohci f0001000.usb: new USB bus registered, assigned bus number 1 ppc-of-ohci f0001000.usb: irq 134, io mem 0xf0001000 ppc-of-ohci f0001000.usb: created debug files ppc-of-ohci f0001000.usb: resetting from state 'reset', control = 0x0 ppc-of-ohci f0001000.usb: OHCI controller state ppc-of-ohci f0001000.usb: OHCI 1.0, NO legacy support registers ppc-of-ohci f0001000.usb: control 0x083 HCFS=operational CBSR=3 ppc-of-ohci f0001000.usb: cmdstatus 0x00000 SOC=0 ppc-of-ohci f0001000.usb: intrstatus 0x00000004 SF ppc-of-ohci f0001000.usb: intrenable 0x8000005a MIE RHSC UE RD WDH ppc-of-ohci f0001000.usb: hcca frame #0000 ppc-of-ohci f0001000.usb: roothub.a 02001202 POTPGT=2 NOCP NPS NDP=2(2) ppc-of-ohci f0001000.usb: roothub.b 00000000 PPCM=0000 DR=0000 ppc-of-ohci f0001000.usb: roothub.status 00008000 DRWE ppc-of-ohci f0001000.usb: roothub.portstatus [0] 0x00000100 PPS ppc-of-ohci f0001000.usb: roothub.portstatus [1] 0x00000100 PPS usb usb1: default language 0x0409 usb usb1: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb1: Product: OF OHCI usb usb1: Manufacturer: Linux 2.6.21.7-hrt1-WR2.0bl_standard ohci_hcd usb usb1: SerialNumber: PPC-OF USB usb usb1: uevent usb usb1: usb_probe_device usb usb1: configuration #1 chosen from 1 choice usb usb1: adding 1-0:1.0 (config #1, interface 0) usb 1-0:1.0: uevent hub 1-0:1.0: usb_probe_interface hub 1-0:1.0: usb_probe_interface - got id hub 1-0:1.0: USB hub found hub 1-0:1.0: 2 ports detected hub 1-0:1.0: standalone hub hub 1-0:1.0: ganged power switching hub 1-0:1.0: global over-current protection hub 1-0:1.0: power on to power good time: 4ms hub 1-0:1.0: local power source is good hub 1-0:1.0: no over-current condition exists hub 1-0:1.0: enabling power on all ports hub 1-0:1.0: state 7 ports 2 chg 0000 evt 0000 ============================================ Other info: - I ahve the same problem with a new kernel (2.6.26) - on my u-boot the usb is completely operational - the actual kernel (2.6.21) compiled for PPC enable usb device and it work fine - MOST IMPORTANT: usb is on the Ethernet pin group instead of on the USB in group. The kernel change the value of port_config when it boots (arch/powerpc/lite5200.c). I had to modify my device tree source for this?? Any idea is appreciate. Thanks
_______________________________________________ Linuxppc-embedded mailing list Linuxppc-embedded@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-embedded