On 4/10/09, Deepak Mundra <[email protected]> wrote: > > Dear All, > > In addition, i would like to attached a few debug prints associated > with the scenario's described in my previous email: > > A. When we boot through this kernel(with USB drivers as a kernel > component): > > 1. We see that the boot process detects the on board USB Hub, and > > the boot process fails at the kernel IP-Config routines(the board is > > configured > > to get an IP address through DHCP) > > 2. The serial console does not seem to respond > > 3. At this point, If we connect / dicsonnect a USB Keyboard,Mouse > > device, the driver prints the appropriate messages indicating that > > these devices have been connected / disconnected. > > For this scenario, The boot up messages are like this : > ; > ; > ; > usbcore: registered new interface driver usbfs > usbcore: registered new interface driver hub > usbcore: registered new device driver usb > musb_hdrc: version 6.0, cppi-dma, host, debug=0 > musb_hdrc: USB Host mode controller at c8000000 using DMA, IRQ 12 > musb_hdrc musb_hdrc: MUSB HDRC host driver > musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1 > usb usb1: configuration #1 chosen from 1 choice > hub 1-0:1.0: USB hub found > hub 1-0:1.0: 1 port detected > ; > ; > More boot messages...... > ; > 0x00050000-0x00250000 : "kernel" > <5>0x00250000-0x01000000 : "filesystem" > 0x00250000-0x01000000 : "filesystem" > <5>usbmon: debugfs is not available > usbmon: debugfs is not available > <6>Initializing USB Mass Storage driver... > Initializing USB Mass Storage driver... > <6>usbcore: registered new interface driver usb-storage > usbcore: registered new interface driver usb-storage > <6>USB Mass Storage support registered. > USB Mass Storage support registered. > <6>mice: PS/2 mouse device common for all mice > mice: PS/2 mouse device common for all mice > <6>usbcore: registered new interface driver usbhid > usbcore: registered new interface driver usbhid > <6>drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver > drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver > <6>TCP cubic registered > TCP cubic registered > <6>NET: Registered protocol family 1 > NET: Registered protocol family 1 > <6>NET: Registered protocol family 17 > NET: Registered protocol family 17 > <5>Sending DHCP requests .Sending DHCP requests ........... timed out! > timed out! > <3>IP-Config: Retrying forever (NFS root)... > IP-Config: Retrying forever (NFS root)... > <5>Sending DHCP requests .Sending DHCP requests ........... timed out! > timed out! > <3>IP-Config: Retrying forever (NFS root)... > IP-Config: Retrying forever (NFS root)... > <5>Sending DHCP requests .Sending DHCP requests ........... timed out! > timed out! > <3>IP-Config: Retrying forever (NFS root)... > IP-Config: Retrying forever (NFS root)... > > As you can see, The IP-Config DHCP requests keep failing, IP is not > assigned and the board cannot proceed to boot from NFS. Why would the > USB function cause the IP-Config DHCP routines to fail?? > > > > B. When we boot through this kernel with the USB drivers compiled as > > modules ( HID support compiled within kernel) > > 1. The boot process, IP-Config, launching of shell happens successfully. > > 2. From the shell launched on the serial console, if we insmod > > musb_hdrc.ko, insmod command does not seem to return to console prompt > > and the serial console freezes like described in (A) above. Again > > devices > > connected / disconnected are still reported correctly on the > > frozen serial console.The USB devices seem to work properly, causing > > the serial console to freeze. > > In this case, the boot messages are like this: > > start of boot. > ; > ; > ; > ; > ; > <6>NET: Registered protocol family 1 > NET: Registered protocol family 1 > <6>NET: Registered protocol family 17 > NET: Registered protocol family 17 > <5>Sending DHCP requests .Sending DHCP requests ...,, OK > OK > IP-Config: Got DHCP answer from 0.0.0.0, IP-Config: Got DHCP answer > from 0.0.0.0, my address is 192.168.1.194 > my address is 192.168.1.194 > IP-Config: Complete:IP-Config: Complete: > device=eth0 > device=eth0, addr=192.168.1.194, addr=192.168.1.194, > mask=255.255.255.0, mask=255.255.255.0, gw=192.168.1.1, > gw=192.168.1.1, ..... > ; > ; > ; > ; > 192.168.1.194 login: root > #insmod ./musb_hdrc.ko > [email protected]:~# insmod ./musb_hdrc.ko > <6>musb_hdrc: version 6.0, cppi-dma, host, debug=0 > musb_hdrc: version 6.0, cppi-dma, host, debug=0 > <7>musb_hdrc: ConfigData=0x06 (UTMI-8, dyn FIFOs, SoftConn) > <7>musb_hdrc: MHDRC RTL version 1.300 > <7>musb_hdrc: setup fifo_mode 2 > <7>musb_hdrc: 7/9 max ep, 2624/4096 memory > <7>musb_hdrc: hw_ep 0shared, max 64 > <7>musb_hdrc: hw_ep 1tx, max 512 > <7>musb_hdrc: hw_ep 1rx, max 512 > <7>musb_hdrc: hw_ep 2tx, max 512 > <7>musb_hdrc: hw_ep 2rx, max 512 > <7>musb_hdrc: hw_ep 3shared, max 256 > <7>musb_hdrc: hw_ep 4shared, max 256 > <6>musb_hdrc: USB Host mode controller at c8050000 using DMA, IRQ 12 > musb_hdrc: USB Host mode controller at c8050000 using DMA, IRQ 12 > <6>musb_hdrc musb_hdrc: MUSB HDRC host driver > musb_hdrc musb_hdrc: MUSB HDRC host driver > <6>musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1 > musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1 > <6>usb usb1: configuration #1 chosen from 1 choice > usb usb1: configuration #1 chosen from 1 choice > <6>hub 1-0:1.0: USB hub found > hub 1-0:1.0: USB hub found > <6>hub 1-0:1.0: 1 port detected > hub 1-0:1.0: 1 port detected > [email protected]:~# <6>usb 1-1: new high speed USB device using > musb_hdrc and address 2 > usb 1-1: new high speed USB device using musb_hdrc and address 2 > <6>usb 1-1: configuration #1 chosen from 1 choice > usb 1-1: configuration #1 chosen from 1 choice > <6>hub 1-1:1.0: USB hub found > hub 1-1:1.0: USB hub found > <6>hub 1-1:1.0: 4 ports detected > hub 1-1:1.0: 4 ports detected > ; > ; > ; > [Does not return to # prompt, serial console does not respond] > At this point if i connect,disconnect a USB Keyboard/Mouse/Flash drive..... > ; > ; > <6>usb 1-1.1: new low speed USB device using musb_hdrc and address 3 > usb 1-1.1: new low speed USB device using musb_hdrc and address 3 > <6>usb 1-1.1: configuration #1 chosen from 1 choice > usb 1-1.1: configuration #1 chosen from 1 choice > <6>input: USB Mouse as /class/input/input0 > input: USB Mouse as /class/input/input0 > <6>inputinput: USB HID v1.10 Mouse [USB Mouse] on usb-musb_hdrc-1.1 > : USB HID v1.10 Mouse [USB Mouse] on usb-musb_hdrc-1.1 > <6>usb 1-1.1: USB disconnect, address 3 > usb 1-1.1: USB disconnect, address 3 > <6>usb 1-1.1: new low speed USB device using musb_hdrc and address 4 > usb 1-1.1: new low speed USB device using musb_hdrc and address 4 > <6>usb 1-1.1: configuration #1 chosen from 1 choice > usb 1-1.1: configuration #1 chosen from 1 choice > <6>input: Logitech Logitech USB Keyboard as /class/input/input1 > input: Logitech Logitech USB Keyboard as /class/input/input1 > <6>inputinput: USB HID v1.10 Keyboard [Logitech Logitech USB Keyboard] > on usb-musb_hdrc-1.1 > : USB HID v1.10 Keyboard [Logitech Logitech USB Keyboard] on > usb-musb_hdrc-1.1 > <6>usb 1-1.1: USB disconnect, address 4 > usb 1-1.1: USB disconnect, address 4 > <6>usb 1-1.1: new high speed USB device using musb_hdrc and address 5 > usb 1-1.1: new high speed USB device using musb_hdrc and address 5 > <6>usb 1-1.1: configuration #1 chosen from 1 choice > usb 1-1.1: configuration #1 chosen from 1 choice > <6>usb 1-1.1: USB disconnect, address 5 > usb 1-1.1: USB disconnect, address 5 > ; > ; > ; > [Still we are not returned to prompt] > > Pointer will be appreciated!! > > > regards, > Deepak > > On 4/10/09, Deepak Mundra <[email protected]> wrote: >> >> Dear All, >> >> We are working on getting the Linux 2.6.23 kernel working on our Custom >> Board. >> Due to a certain legacy driver ( written only for 2.6.23) we are >> forced to use 2.6.23. >> So far most of the Interfaces on our hardware are working perfectly >> fine with the 2.6.23 kernel. However an issue still remains with the >> USB function. I wil describe this to you: >> >> 1. Our board has a onboard hub chip. >> 2. We compile the 2.6.23 kernel with DaVinci musb drivers, USB HID >> device support. >> >> A. When we boot through this kernel(with USB drivers as a kernel >> component): >> 1. We see that the boot process detects the on board USB Hub, and >> the boot process fails at the kernel IP-Config routines(the board is >> configured >> to get an IP address through DHCP) >> 2. The serial console does not seem to respond >> 3. At this point, If we connect / disconnect a USB Keyboard,Mouse >> device, the driver prints the appropriate messages indicating that >> these devices have been connected / disconnected. >> >> B. When we boot through this kernel with the USB drivers compiled as >> modules ( HID support compiled within kernel) >> 1. The boot process, IP-Config, launching of shell happens successfully. >> 2. From the shell launched on the serial console, if we insmod >> musb_hdrc.ko, insmod command does not seem to return to console prompt >> and the serial console freezes like described in (A) above. Again >> devices >> connected / disconnected are still reported correctly on the >> frozen serial console.The USB devices seem to work properly, causing >> the serial console to freeze. >> >> Observing the above two, here is what we tried: >> >> C. With the kernel with the USB drivers compiled as modules and: >> 1. Boot the kernel with the usb musb support compiled as module >> 2. Wait for shell to appear on serial console, start sshd daemon >> from the console shell >> 3. Login to the board via ssh, and insmod musb_hdrc.ko - here the >> insmod returns to the shell!! However, the serial console freezes like >> (A) above. >> 4. USB devices connected / disconnected are detected properly >> 5. The ssh terminal looks to be healthy, allowing running of >> applications. >> >> Could some one point out what the issue could be? >> I am looking to fix this behaviour in my 2.6.23 kernel tree, and use >> the usb function as a kernel compiled functionality. >> >> I understand the 2.6.23 kernel tree may not be of focus at the moment, >> but a few pointers on the possible solutions would help me >> tremendously as i am trying to get this fixed. >> >> Look forward to some suggestions/pointers. >> >> regards, >> Deepak > >
Dear All, Continuing on my previous emails, i have a few more findings. My USB kernel config looks as below: # # USB Host Controller Drivers # # CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_SL811_HCD is not set # CONFIG_USB_R8A66597_HCD is not set CONFIG_USB_MUSB_HDRC=m CONFIG_USB_MUSB_SOC=y # # DaVinci 644x USB support # CONFIG_USB_MUSB_HOST=y # CONFIG_USB_MUSB_PERIPHERAL is not set # CONFIG_USB_MUSB_OTG is not set CONFIG_USB_MUSB_HDRC_HCD=y CONFIG_MUSB_PIO_ONLY=y CONFIG_USB_MUSB_LOGLEVEL=6 Now, when i boot my kernel, compiled with musb_hdrc as a loadable module, on loading of which from shell, we see that the following OOPS is coming. I have attached herewith the System.map file for the compiled kernel. Any help will be appreciated! [email protected]:~/23_DMA_TEST# insmod ./musb_hdrc.ko <6>musb_hdrc: version 6.0/dbg, cppi-dma, host, debug=6 musb_hdrc: version 6.0/dbg, cppi-dma, host, debug=6 <7>DaVinci OTG revision 00147900 phy 1f0 control 00 <7>musb_hdrc: ConfigData=0x06 (UTMI-8, dyn FIFOs, SoftConn) <7>musb_hdrc: MHDRC RTL version 1.300 <7>musb_hdrc: setup fifo_mode 2 <7>musb_hdrc: 7/9 max ep, 2624/4096 memory <7>musb_hdrc: hw_ep 0shared, max 64 <7>musb_hdrc: hw_ep 1tx, max 512 <7>musb_hdrc: hw_ep 1rx, max 512 <7>musb_hdrc: hw_ep 2tx, max 512 <7>musb_hdrc: hw_ep 2rx, max 512 <7>musb_hdrc: hw_ep 3shared, max 256 <7>musb_hdrc: hw_ep 4shared, max 256 <6>musb_hdrc: USB Host mode controller at c8050000 using DMA, IRQ 12 musb_hdrc: USB Host mode controller at c8050000 using DMA, IRQ 12 <6>musb_hdrc musb_hdrc: MUSB HDRC host driver musb_hdrc musb_hdrc: MUSB HDRC host driver <6>musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1 musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1 <6>usb usb1: configuration #1 chosen from 1 choice usb usb1: configuration #1 chosen from 1 choice <6>hub 1-0:1.0: USB hub found hub 1-0:1.0: USB hub found <6>hub 1-0:1.0: 1 port detected hub 1-0:1.0: 1 port detected <7>musb_start 869: <== devctl 98 <7>musb_hub_control 414: set feature 8 <7>davinci_interrupt 295: IRQ 01000000 <7>davinci_interrupt 355: VBUS off (b_idle), devctl 99 <7>davinci_interrupt 295: IRQ 01000000 <7>davinci_interrupt 355: VBUS on (a_wait_vrise), devctl 19 <7>davinci_interrupt 295: IRQ 00100000 <7>musb_interrupt 1543: ** IRQ host usb0010 tx0000 rx0000 <7>musb_stage0_irq 400: <== Power=e0, DevCtl=5d, int_usb=0x10 <7>musb_stage0_irq 636: CONNECT (a_host) devctl 5d <1>Unable to handle kernel NULL pointer dereference at virtual address 00000000 Unable to handle kernel NULL pointer dereference at virtual address 00000000 <1>pgd = c6a00000 pgd = c6a00000 <1>[00000000] *pgd=869de031[00000000] *pgd=869de031, *pte=00000000, *pte=00000000, *ppte=00000000, *ppte=00000000 Internal error: Oops: 817 [#1] Internal error: Oops: 817 [#1] Modules linked in:Modules linked in: musb_hdrc musb_hdrc CPU: 0 Not tainted (2.6.23firstattempt-davinci1 #38) CPU: 0 Not tainted (2.6.23firstattempt-davinci1 #38) PC is at queue_work+0x48/0x64 PC is at queue_work+0x48/0x64 LR is at __init_begin+0x3fff8000/0x34 LR is at __init_begin+0x3fff8000/0x34 pc : [<c00427a0>] lr : [<00000000>] psr: 00000093 sp : c69ffeac ip : 00000000 fp : c69ffebc pc : [<c00427a0>] lr : [<00000000>] psr: 00000093 sp : c69ffeac ip : 00000000 fp : c69ffebc r10: 00000001 r9 : 00000010 r8 : 0000005d r10: 00000001 r9 : 00000010 r8 : 0000005d r7 : 00000000 r6 : 0000005d r5 : c05cd8c0 r4 : c05cd8c8 r7 : 00000000 r6 : 0000005d r5 : c05cd8c0 r4 : c05cd8c8 r3 : 00000000 r2 : c05cd8cc r1 : 00000000 r0 : c043f9e0 r3 : 00000000 r2 : c05cd8cc r1 : 00000000 r0 : c043f9e0 Flags: nzcv IRQs off FIQs on Mode SVC_32 ISA ARM Segment user Flags: nzcv IRQs off FIQs on Mode SVC_32 ISA ARM Segment user Control: 0005317f Table: 86a00000 DAC: 00000015 Control: 0005317f Table: 86a00000 DAC: 00000015 Process default.hotplug (pid: 1038, stack limit = 0xc69fe258) Process default.hotplug (pid: 1038, stack limit = 0xc69fe258) Stack: (0xc69ffeac to 0xc6a00000) Stack: (0xc69ffeac to 0xc6a00000) fea0: fea0: c05cd800 c05cd800 c69ffecc c69ffecc c69ffec0 c69ffec0 c0042dd4 c0042dd4 c0042768 c0042768 fec0: fec0: c69fff18 c69fff18 c69ffed0 c69ffed0 bf0009f0 bf0009f0 c0042dc8 c0042dc8 0000005d 0000005d 00000010 00000010 00000000 00000000 00000000 00000000 fee0: fee0: c8050400 c8050400 00000010 00000010 000000e0 000000e0 000000e0 000000e0 c05cd8c0 c05cd8c0 00100000 00100000 00000000 00000000 00000000 00000000 ff00: ff00: c8050000 c8050000 c69fe000 c69fe000 40000013 40000013 c69fff50 c69fff50 c69fff1c c69fff1c bf001420 bf001420 bf0004c8 bf0004c8 c69fe000 c69fe000 ff20: ff20: 000000b9 000000b9 00100077 00100077 c76f1580 c76f1580 00000000 00000000 00000000 00000000 0000000c 0000000c beebbe1c beebbe1c c69fe000 c69fe000 ff40: ff40: 4017a000 4017a000 c69fff70 c69fff70 c69fff54 c69fff54 c0055ae8 c0055ae8 bf00122c bf00122c c02db218 c02db218 0000000c 0000000c c76f1580 c76f1580 ff60: ff60: 000b4825 000b4825 c69fff8c c69fff8c c69fff74 c69fff74 c0057064 c0057064 c0055ab4 c0055ab4 c02db218 c02db218 c0323260 c0323260 00000000 00000000 ff80: ff80: c69fffac c69fffac c69fff90 c69fff90 c001f048 c001f048 c0056f74 c0056f74 0000000c 0000000c ffffffff ffffffff fec48000 fec48000 0000001d 0000001d ffa0: ffa0: 00000000 00000000 c69fffb0 c69fffb0 c001fc04 c001fc04 c001f010 c001f010 40017d10 40017d10 beebbe70 beebbe70 0009c4f0 0009c4f0 beebbe20 beebbe20 ffc0: ffc0: 0000001d 0000001d 00000001 00000001 0000001d 0000001d 000b4825 000b4825 beebbe1c beebbe1c 000a60ec 000a60ec 4017a000 4017a000 00000001 00000001 ffe0: ffe0: 000a1134 000a1134 beebbe00 beebbe00 400ddccc 400ddccc 400ddcd0 400ddcd0 20000010 20000010 ffffffff ffffffff 00000000 00000000 00000000 00000000 Backtrace: Backtrace: [<c0042758>] [<c0042758>] (queue_work+0x0/0x64) (queue_work+0x0/0x64) from [<c0042dd4>] from [<c0042dd4>] (schedule_work+0x1c/0x24) (schedule_work+0x1c/0x24) r4:c05cd800 r4:c05cd800 [<c0042db8>] [<c0042db8>] (schedule_work+0x0/0x24) (schedule_work+0x0/0x24) from [<bf0009f0>] from [<bf0009f0>] (musb_interrupt+0x538/0x7fc [musb_hdrc]) (musb_interrupt+0x538/0x7fc [musb_hdrc]) [<bf0004b8>] [<bf0004b8>] (musb_interrupt+0x0/0x7fc [musb_hdrc]) (musb_interrupt+0x0/0x7fc [musb_hdrc]) from [<bf001420>] from [<bf001420>] (davinci_interr) (davinci_interrupt+0x204/0x290 [musb_hdrc]) [<bf00121c>] [<bf00121c>] (davinci_interrupt+0x0/0x290 [musb_hdrc]) (davinci_interrupt+0x0/0x290 [musb_hdrc]) from [<c0055ae8>] from [<c0055ae8>] (handle_I) (handle_IRQ_event+0x44/0x84) [<c0055aa4>] [<c0055aa4>] (handle_IRQ_event+0x0/0x84) (handle_IRQ_event+0x0/0x84) from [<c0057064>] from [<c0057064>] (handle_edge_irq+0x100/0x144) (handle_edge_irq+0x100/0x144) r7:000b4825 r7:000b4825 r6:c76f1580 r6:c76f1580 r5:0000000c r5:0000000c r4:c02db218 r4:c02db218 [<c0056f64>] [<c0056f64>] (handle_edge_irq+0x0/0x144) (handle_edge_irq+0x0/0x144) from [<c001f048>] from [<c001f048>] (asm_do_IRQ+0x48/0x60) (asm_do_IRQ+0x48/0x60) r6:00000000 r6:00000000 r5:c0323260 r5:c0323260 r4:c02db218 r4:c02db218 [<c001f000>] [<c001f000>] (asm_do_IRQ+0x0/0x60) (asm_do_IRQ+0x0/0x60) from [<c001fc04>] from [<c001fc04>] (__irq_usr+0x44/0x80) (__irq_usr+0x44/0x80) Exception stack(0xc69fffb0 to 0xc69ffff8) Exception stack(0xc69fffb0 to 0xc69ffff8) ffa0: ffa0: 40017d10 40017d10 beebbe70 beebbe70 0009c4f0 0009c4f0 beebbe20 beebbe20 ffc0: ffc0: 0000001d 0000001d 00000001 00000001 0000001d 0000001d 000b4825 000b4825 beebbe1c beebbe1c 000a60ec 000a60ec 4017a000 4017a000 00000001 00000001 ffe0: ffe0: 000a1134 000a1134 beebbe00 beebbe00 400ddccc 400ddccc 400ddcd0 400ddcd0 20000010 20000010 ffffffff ffffffff r6:0000001d r6:0000001d r5:fec48000 r5:fec48000 r4:ffffffff r4:ffffffff Code: Code: e2842004 e2842004 1a000006 1a000006 e5943004 e5943004 e1530002 e1530002 (158ee000) (158ee000) <0>Kernel panic - not syncing: Fatal exception in interrupt Kernel panic - not syncing: Fatal exception in interrupt regards, Deepak
_______________________________________________ Davinci-linux-open-source mailing list [email protected] http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
