Hi, we are using an board with an OMAP L138 with a exar xr21v141x [1], an usb to two serial port converter. The exar have drivers [2] for linux but aren't on mainline. We are having problems when using both ports at same time, the driver only receive the information from one port after the other was closed.
All testes were executed on a linux 3.0.20 from mainline with RT and linux-davinci patches applied.On musb_core.c there are some information about problems with multi point devices. The behavior that we are seeing is due to this ? Using a different approach, with a hub and two USB to serial converter from Prolific Technology Inc that uses the pl2303 driver, I get the same error.When opening one of the devices I can communicate and everything work fine. When trying to open a second one, with the first connected, I receive this error: pl2303 ttyUSB1: pl2303_open - failed submitting interrupt urb, error -28 This setup works on i386, so can this be a problem from MUSB ? Any way of resolve this, being able to receive data from both ports when both are open ? We are having problems compiling the latest release of linux-davinci kernel with usb support, even usb 1.0 interface don't work on OMAP L138 evm. Any info about this ?
Thanks. [1] - http://www.exar.com/connectivity/uart-and-bridging-solutions/usb-uarts/xr21v1412 [2] - http://www.exar.com/common/content/document.ashx?id=20835&languageid=1033 Regards, Aníbal
Carlos,
Can you try a hub with 2x one port serial-to-usb converter ? It gives the same error ...
I have attached an image to be clear the setup that we are using.
On pastebin [1] is the output from lsusb -t and lsusb -v.
[1] - http://pastebin.com/1q9PPjjW
Thanks
Aníbal
you were able to get the same behavior ?
Thanks.
Regards,
Anibal,
I tried with 2 usb serial adapters and they are detected but apparently a new serial port node is not created because the kernel does not have the drivers for them.
root@am180x-evm:~# lsusb -t2-1.1:1.0: No such file or directory2-1.2:1.0: No such file or directory/: Bus 02.Port 1: Dev 1, class="root_hub", Driver=musb-hdrc/1p, 480M |__ Port 1: Dev 2, If 0, class="hub", Driver=hub/4p, 480M |__ Port 1: Dev 5, If 0, class="vend"., Driver=, 12M |__ Port 2: Dev 6, If 0, class="vend"., Driver=, 12M/: Bus 01.Port 1: Dev 1, class="root_hub", Driver=ohci/1p, 12Mroot@am180x-evm:~# lsusb Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hubBus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 002 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUBBus 002 Device 005: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial PortBus 002 Device 006: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Portroot@am180x-evm:~#
root@am180x-evm:~# find /lib/modules/3.3.0/ -name pl2303
I will try to build another image with pl2303 support.
Carlos
I was able to reproduce the problem. I will pass the information to the kernel dev team.
See logs and procedure below:
am180x-evm login: rootroot@am180x-evm:~# lsusbBus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hubroot@am180x-evm:~# root@am180x-evm:~# insmod /lib/modules/3.3.0/kernel/drivers/usb/gadget/g_ether.ko gadget: using random self ethernet address gadget: using random host ethernet addressusb0: MAC c2:d8:0a:bd:43:c3usb0: HOST MAC c2:41:be:6b:a1:bb gadget: Ethernet Gadget, version: Memorial Day 2008 gadget: g_ether readymusb-hdrc musb-hdrc: MUSB HDRC host drivermusb-hdrc musb-hdrc: new USB bus registered, assigned bus number 2hub 2-0:1.0: USB hub foundhub 2-0:1.0: 1 port detectedroot@am180x-evm:~# usb 2-1: new high-speed USB device number 2 using musb-hdrcADDRCONF(NETDEV_UP): usb0: link is not readyhub 2-1:1.0: USB hub foundhub 2-1:1.0: 4 ports detectedusb 2-1.1: new full-speed USB device number 3 using musb-hdrcpl2303 2-1.1:1.0: pl2303 converter detectedusb 2-1.1: pl2303 converter now attached to ttyUSB0usb 2-1.2: new full-speed USB device number 4 using musb-hdrcpl2303 2-1.2:1.0: pl2303 converter detectedusb 2-1.2: pl2303 converter now attached to ttyUSB1
root@am180x-evm:~# lsusb -t/: Bus 02.Port 1: Dev 1, class="root_hub", Driver=musb-hdrc/1p, 480M |__ Port 1: Dev 2, If 0, class="hub", Driver=hub/4p, 480M |__ Port 1: Dev 3, If 0, class="vend"., Driver=pl2303, 12M |__ Port 2: Dev 4, If 0, class="vend"., Driver=pl2303, 12M/: Bus 01.Port 1: Dev 1, class="root_hub", Driver=ohci/1p, 12Mroot@am180x-evm:~#
Open telnet session and open microcom on /dev/ttyUSB0:
root@am180x-evm:~# microcom -s 115200 /dev/ttyUSB0
Open another telnet session and open microcom on /dev/ttyUSB1:
root@am180x-evm:~# microcom -s 115200 /dev/ttyUSB1microcom: can't open '/dev/ttyUSB1': Input/output errorroot@am180x-evm:~#
Also as you pointed out the following message is shown on the console:
root@am180x-evm:~# pl2303 ttyUSB1: pl2303_open - failed submitting interrupt urb, error -28
its the same error that I have.
If you need any help testing or validate the modifications, just ask.
any update ? Anyone have an idea why this happen ? It there a solution or a quick fix for this ?
hi team,
do we have any update regarding this issue, we need support asap since it has a deep impact on end customers, thanks a lot.
Hi
Please find the interrupt ep scheduling patch 3.x kernel and available at arago link at http://arago-project.org/git/projects/?p=linux-davinci.git;a=commit;h=2432b15edbd0ee4a7f274a215698a408c1b6522f . This feature will help to connect more interrupt devices on musb controller which has limited number of eps.
Make sure to enable "CONFIG_MUSB_SCHEDULE_INTR_EP" feature through Menuconfig.
Menuconfig->"Device Drivers"->"USB Support"
Regards
Ravi B
If my reply answers your question then please click on the green button "Verify Answer"
Hope this patch will resolve the issue you are observing.
Hi,I have some good news and some bad news.Good news:My previous test of connecting a hub to the OMAP L138 EVM and then connecting 2 usb2serial to the hub did not return any error and worked as expected.I also tried the same test with DMA using CPP4.1 and in PIO mode. Both tests were succesful.Bad news:When I did the test using DMA CPP4.1, althought it worked as expected, when I remove the device it is not properly disconnected, and no message appear on DMESG. After that, the usb stops working until I reboot the EVM. This problem does not occur in PIO mode.I tried a different test were I plugged a SMSC lan9512 EVM in PIO mode, and I get this error:root@arago:~# usb 2-1: new high-speed USB device number 2 using musb-hdrchub 2-1:1.0: USB hub foundhub 2-1:1.0: config failed, can't read hub descriptor (err -22)and then the usb stops working.If I plug the SMSC lan9512 EVM with USB in DMA CPP4.1, I get this error:root@arago:~# usb 2-1: new high-speed USB device number 2 using musb-hdrcusb 2-1: device not accepting address 2, error -71usb 2-1: new high-speed USB device number 3 using musb-hdrcusb 2-1: device not accepting address 3, error -71usb 2-1: new high-speed USB device number 4 using musb-hdrcusb 2-1: device descriptor read/8, error -32usb 2-1: can't set config #1, error -71and then the usb stops working, like when I use PIO mode.Please note that the SMSC lan9512 has driver support on the kernel, I just had to enable it, like I did for the usb to serial converters.
Regards,Aníbal
Hello team, could you please provide some feedback about this post? It is pending for almost 2 months... Thanks, Beatriz.