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-L138: unstable work of USB <-> Ethernet network bridge

Other Parts Discussed in Thread: OMAP-L138, DA8XX

Hello!

I have BaseBoard from LogicPD and SOM for OMAP-L138. I use Linux kernel from TI's DaVinci-PSP-SDK-03.20.00.14. My target is creation of HighSpeed network bridge. I use two network interfaces usb0 and eth0. For this I have configured Linux to support USB gadget stack and I use g_ether.ko module. I have configured Inventra musb_hdrc.ko to work in perephirial mode. Also I have configured Linux to support bridging and use "brctl" utility to configure bridge over USB <-> Ethernet. After device configuration my bridge works fine and I can use it to get access into network. But after few minutes of fine working my network connection becomes broken. I lose connection to any machine in the network. I have investigated that duration of stable working relates with traffic over my bridge. But for small traffic appearance of unstability is the question of time.

I connect the device to PC over USB. I have tried to use different mini USB cabeles with different length to detect dependence on it. Also I have used different host PC OSs, like Windows and Linux. For different host PC OSs g_ether works in different configurations. For Windows it works in RNDIS mode (g_ether gadget: high speed config #2: RNDIS), for Linux it works in CDC mode (g_ether gadget: high speed config #1: CDC Ethernet (ECM)). But failure result doesn't depend from this parameters.

When connection becomes failure I shouldn't power off my device but I should always reinitialize my device in PC OSs. This is only one way to repare connection over bridge. By reason of this I think that main problem concentraited in USB stack. For example after device reinitialization sometimes I saw similar errors in terminal:

usb_tx_ch_teardown 931: Invalid PD(c1ca4040)popped from TearDn completionqueue

Sometimes when connection is broken I can see an other errors:

da8xx_interrupt 512: Unhandled USB IRQ 00080000
da8xx_interrupt 512: Unhandled USB IRQ 00080000
da8xx_interrupt 512: Unhandled USB IRQ 00080000
da8xx_interrupt 512: Unhandled USB IRQ 00080000

Can anybody give me advices to solve this problem?


And one question more. Everytime when my device is being initialized in PC OS I see similar error:

da8xx_interrupt 512: Unhandled USB IRQ 00090000

What does it mean? Is it mean that musb_hdrc doesn't support some standard USB requests? I have read in an other post that when musb_hdrc for OMAP-L138 is configered for non Host mode it doesn't support few standard request.

  • About my second question I think my supposition is right. I have rebuit Linux kernel. In new build I have changed configuration for Inventra High Speed Dual Role Controller to set it into Host and Perephrial (Non OTG) Device mode. These warnings have dissapeared. But main issue is still being in progress.

  • As I understood from /drivers/usb/musb/from musb_core.c the string:

    Unhandled USB IRQ 00080000

    means that driver can't process some SOF packet. Appearence of this string accompanies connection breakdown everytime.

    I have investigated network traffic through my bridge when connection was broken down. And I found that no data have been transmitted to the host PC over usb0 interface after connection breakdown. But in the same time receiving data from PC is stable. As I understand musb can't process any Tx transfer after unhandled SOF packet.

    Also in file musb_core.c I found commented processing of interrupt MUSB_INTR_SOF in function musb_stage0_irq().

    It is very important to us to know that current issue isn't hardawre problem. Otherwise case we will be obliged to find other platform for development and production.

    Can I get comments from TI???

  • I have found some interesting post about my problem. Tomorow I will try to apply it to solve problem.

    http://e2e.ti.com/support/embedded/linux/f/354/t/91815.aspx#318926

  • Alexey,

    Since you are on 03.20.00.14 release so can you try the latest usb dma driver as available at below link,

    http://arago-project.org/git/people/?p=sekhar/linux-omapl1.git;a=shortlog;h=refs/heads/DAVINCIPSP_03.20.00.14

    You would need to apply top three patches to update the driver.

    Regards,
    Ajay

  • Ajay,

    thank you for reply! I will try to apply these patches. I wiil write results.

  • Ajay,

    thanks a lot! Your patches is helpful for my issue!