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.

OMAP-L137 EVM - problem with USB Host in linux-2.6.29-rc8-davinci1

Other Parts Discussed in Thread: OMAP-L137, OMAP-L138

Hi, 

I am having problems with USB Host functionality on linux-2.6.29-rc8-davinci1 for omap-L137. 

I use Uboot NFS booting, I am able to download Kernel on omapl (verification is ok I presume) and after run bootm command there is dead silence. 

The board is not responsive to ping and ssh and on UART2 there is no output on booting procedure. It freezes after line booting kernel

U-Boot > bootm
## Booting kernel from Legacy Image at c0007fc0 ...
  Image Name: Linux-2.6.29-rc8-davinci1
  Image Type: ARM Linux Kernel Image (uncompressed)
  Data Size: 1625041 Bytes = 1.5 MB
  Load Address: c0008000
  Entry Point: c0008000
  Verifying Checksum ... OK
  Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux.......................................................................................................... done, booting the kernel.

When I compile kernel without USB host side support it boots. I was using this guide to configure the kernel

http://wiki.davincidsp.com/index.php/USB_OTG_on_DaVinci

from what I can tell it should work. Any suggestions?

In config above the USB_HOST functionality was compiled into kernel.

In next config I added USB_HOST and USB_GADGET as module, compiled and booted kerenl - this time it booted.

But when I put in USB pen drive into USB0 ( i use special cable) I got kernel ooops.

As you can see module musb_hdrc has some init error.

musb_hdrc musb_hdrc: musb_init_controller failed with status -2
Unable to handle kernel NULL pointer dereference at virtual address 00000008
pgd = c1f78000
[00000008] *pgd=c1ec7031, *pte=00000000, *ppte=00000000
Internal error: Oops: 17 [#1] PREEMPT
Modules linked in: musb_hdrc(+) nand usbcore nop_usb_xceiv mtd davinci_wdt nand_ids nand_ecc
CPU: 0 Not tainted (2.6.29-rc8-davinci1 #29)
PC is at musb_platform_exit+0x30/0x11c [musb_hdrc]
LR is at musb_platform_exit+0x2c/0x11c [musb_hdrc]
pc : [<bf04e87c>] lr : [<bf04e878>] psr: a0000013
sp : c1f07cc0 ip : c1f07cc0 fp : c1f07ce4
r10: 00000000 r9 : c02f5038 r8 : c0308f90
r7 : bf05503c r6 : 00000000 r5 : c1d580b8 r4 : c1d580b8
r3 : 00000000 r2 : bf055094 r1 : 00000000 r0 : c1d580b8
Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Control: 0005317f Table: c1f78000 DAC: 00000015
Process modprobe (pid: 2650, stack limit = 0xc1f06268)
Stack: (0xc1f07cc0 to 0xc1f08000)
7cc0: c00d1cf0 00000000 c1d580b8 00000000 bf05503c c0308f90 c1f07cfc c1f07ce8
7ce0: bf04d218 bf04e85c fffffffe c1d580b8 c1f07de4 c1f07d00 bf058b04 bf04d1c0
7d00: c0146d00 c0034920 c1c5a8d8 c18287a0 c1f07d34 c1f07d20 c009fca0 c0146cc4
7d20: c02f5090 c02f5098 0000003a fee00000 c02f5038 c009fc74 c00d2628 c1f07d48
7d40: c1e019c8 c1f07d58 00000019 07c0746c c00d26f0 c00d25c0 c1f4cd58 c1e019c8
7d60: c1f4cd58 00000000 c1f4cd58 c1f07d90 c1c5a8d8 00000001 c1f06000 00000000
7d80: c1f07dc4 c1f07d90 c00d37fc c00d2a1c c1c5a8d8 c18287a0 00000000 00000001
7da0: c00d2df8 c02f5098 00000000 c02f50dc bf05503c c0308f90 c1f07dd4 c02f5098
7dc0: c02f5120 bf05503c bf05503c c0308f90 c1f06000 00000000 c1f07df4 c1f07de8
7de0: c018624c bf0581c8 c1f07e14 c1f07df8 c0185310 c018623c c02f5098 c02f5120
7e00: bf05503c bf05503c c1f07e34 c1f07e18 c0185430 c0185244 c1f07e34 00000000
7e20: c1f07e38 c01853c4 c1f07e5c c1f07e38 c018478c c01853d4 c1c035d8 c02f50c8
7e40: 00000000 bf05503c 4013f000 c1d6c9e0 c1f07e6c c1f07e60 c0185148 c0184748
7e60: c1f07e9c c1f07e70 c0184d70 c0185138 bf051ad8 0000c174 bf05503c 0000c174
7e80: bf05503c 4013f000 bf058000 c03105ac c1f07ec4 c1f07ea0 c0185740 c0184cd8
7ea0: 0000c174 bf055020 4013f000 bf058000 c03105ac 00000000 c1f07ed4 c1f07ec8
7ec0: c0186498 c01856b8 c1f07ef4 c1f07ed8 c01864d0 c018643c c1f07f04 0000c174
7ee0: bf055098 4013f000 c1f07f04 c1f07ef8 bf05803c c01864c4 c1f07f7c c1f07f08
7f00: c00262dc bf058010 c1ca5e68 c1ca5e6c c1f07f44 c1f06000 bf055098 4013f000
7f20: 00000000 c0026fa8 c1f06000 00000000 c1f07f54 c1f07f40 c023e2a8 c0034920
7f40: c0037a0c 0000c174 bf055098 4013f000 00000000 c0026fa8 0000c174 bf055098
7f60: 4013f000 00000000 c0026fa8 00000000 c1f07fa4 c1f07f80 c006376c c0026298
7f80: 00000003 00000000 0000a320 00000000 bee43ccc 00000080 00000000 c1f07fa8
7fa0: c0026e00 c00636e4 0000a320 00000000 4013f000 0000c174 00016388 00000000
7fc0: 0000a320 00000000 bee43ccc 00000080 00016330 0001633c 00000000 00000000
7fe0: 000150a0 bee43a14 0000a724 400dead4 60000010 4013f000 00000000 00000000
Backtrace:
[<bf04e84c>] (musb_platform_exit+0x0/0x11c [musb_hdrc]) from [<bf04d218>] (musb_free+0x68/0x9c [musb_hdrc])
 r8:c0308f90 r7:bf05503c r6:00000000 r5:c1d580b8 r4:00000000
[<bf04d1b0>] (musb_free+0x0/0x9c [musb_hdrc]) from [<bf058b04>] (musb_probe+0x94c/0xb0c [musb_hdrc])
 r5:c1d580b8 r4:fffffffe
[<bf0581b8>] (musb_probe+0x0/0xb0c [musb_hdrc]) from [<c018624c>] (platform_drv_probe+0x20/0x24)
[<c018622c>] (platform_drv_probe+0x0/0x24) from [<c0185310>] (driver_probe_device+0xdc/0x190)
[<c0185234>] (driver_probe_device+0x0/0x190) from [<c0185430>] (__driver_attach+0x6c/0x90)
 r7:bf05503c r6:bf05503c r5:c02f5120 r4:c02f5098
[<c01853c4>] (__driver_attach+0x0/0x90) from [<c018478c>] (bus_for_each_dev+0x54/0x88)
 r6:c01853c4 r5:c1f07e38 r4:00000000
[<c0184738>] (bus_for_each_dev+0x0/0x88) from [<c0185148>] (driver_attach+0x20/0x28)
 r7:c1d6c9e0 r6:4013f000 r5:bf05503c r4:00000000
[<c0185128>] (driver_attach+0x0/0x28) from [<c0184d70>] (bus_add_driver+0xa8/0x218)
[<c0184cc8>] (bus_add_driver+0x0/0x218) from [<c0185740>] (driver_register+0x98/0x120)
 r8:c03105ac r7:bf058000 r6:4013f000 r5:bf05503c r4:0000c174
[<c01856a8>] (driver_register+0x0/0x120) from [<c0186498>] (platform_driver_register+0x6c/0x88)
[<c018642c>] (platform_driver_register+0x0/0x88) from [<c01864d0>] (platform_driver_probe+0x1c/0x98)
[<c01864b4>] (platform_driver_probe+0x0/0x98) from [<bf05803c>] (musb_init+0x3c/0x54 [musb_hdrc])
 r6:4013f000 r5:bf055098 r4:0000c174
[<bf058000>] (musb_init+0x0/0x54 [musb_hdrc]) from [<c00262dc>] (do_one_initcall+0x54/0x184)
[<c0026288>] (do_one_initcall+0x0/0x184) from [<c006376c>] (sys_init_module+0x98/0x198)
[<c00636d4>] (sys_init_module+0x0/0x198) from [<c0026e00>] (ret_fast_syscall+0x0/0x2c)
 r7:00000080 r6:bee43ccc r5:00000000 r4:0000a320
Code: e3a01000 e3a02001 ebffffd6 e5943074 (e5d33008)
---[ end trace b0d14c094d732846 ]---

  • The wiki article written above was written for some of our DaVinci platforms (as noted in the article).  I would recommend that before relying on wiki articles not specific to OMAP-L137, first take a look at the existing OMAP-L137 documentation.  For example, the following doc

         dvsdk_1_00_00_10/REL_LSP_02_20_00_07/PSP_02_20_00_07/docs/LSP_02.20_OMAP-L137_User_Guide.pdf

    has information on the different kernel configurations that need to be enabled to support USB on OMAP-l137.  For kernel related information, the PSP directory above provides good docs and examples..

  • Thanks for reply, I still have some unresolved issues on OMAP-l137 but I switched to OMAP-l138 and managed to boot kernel with USB support.

    Also found some sites with info about OMAP-l137(8) which are very helpfull.