Re: Beaglebone USB driver (Mentor Graphics OTG)
HCI_BUS2SC(bus); > >switch (state) { >case USB_HW_POWER_SUSPEND: >case USB_HW_POWER_SHUTDOWN: >ehci_suspend(sc); >break; >case USB_HW_POWER_RESUME: >ehci_resume(sc); >break; >default: >break; >} > } > > If the musb requires that you stop tokens before going in and out of suspend, > you need to add functions like this: > > > ehci_device_resume/ehci_device_suspend > >> >> On the related note: can somebody suggest budget USB protocol analyzer >> with support for high-speed bus? >> > > http://www.totalphase.com/products/beagle_usb480/ > > There are more, but I don't have the list right now. > > You can probably just remove this check. We don't support LOW speed in device > mode. > > - > - if ((udev->speed != USB_SPEED_FULL) && > - (udev->speed != USB_SPEED_HIGH)) { > - /* not supported */ > - return; > + if (sc->sc_mode != MUSB2_HOST_MODE) { > + if ((udev->speed != USB_SPEED_FULL) && > + (udev->speed != USB_SPEED_HIGH)) { > + /* not supported */ > + return; > + } > } Removed > The musbotg_channel_free function is not sufficient! You need to program a > non-existing device address like 127 and wait for 2 ms I recommend. The ABORT > bits don't work with this controller last time I tried them! You can verify > this by loading and unloading the wireless driver. I guess that IN tokens > don't stop when you unload the driver. You will see this using an USB > analyzer. > > +#define MUSB2_MAX_DEVICES (USB_MAX_DEVICES - 1) > > +static void > +musbotg_channel_free(struct musbotg_softc *sc, struct musbotg_td *td) > +{ > + > + DPRINTFN(1, "ep_no=%d\n", td->channel); > + > + if (sc->sc_mode == MUSB2_DEVICE_MODE) > + return; > + > + if (td == NULL) > + return; > + if (td->channel == -1) > + return; > + > + musbotg_ep_int_set(sc, td->channel, 0); > + sc->sc_channel_mask &= ~(1 << td->channel); > + td->channel = -1; > > /* force transfer failure */ > MUSB2_WRITE_1(sc, MUSB2_REG_RXFADDR(0), 127); > XXX channel should not be re-used until after 2*125us. Can probably use ticks > for this! > > +} > > The 2ms can be done asynchronosly by implementing this function. See EHCI > driver. > > static void > musbotg_get_dma_delay(struct usb_device *udev, uint32_t *pus) > { > > if (host_mode) > *pus = 2000; /* microseconds */ > else > *pus = 0; > } Writing 127 to FADDR breaks driver. It can't even attach device properly. I do not completely understand the scenario behind this requirement. My recollection is: when we cancel IN transaction somehow we should ensure that function that currently handles it does not stuck forever. From what I see it's just impossible. There is internal NAK timer that fails the transaction once it reached configured value (or 3 by default AFAIR). Isn't it enough? I tried unloading active uwrtn driver - it unloads with some delay but as far as I can see from logs delay is not due to USB internal transactions code it must be upper layer. Could you, please, elaborate on the matter? Here is updated version of the patch: http://people.freebsd.org/~gonzo/arm/patches/beaglebone-usb-20130701.diff Besides cosmetic fixes I also synced dev/usb/controller/musb_otg_atmelarm.c to the latest changes of core logic: added required wrappers and some initializations. I do not longer have access to USB analyzer so my debugging abilities is somewhat limited now. ___ freebsd-usb@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-usb To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"
Current problem reports assigned to freebsd-usb@FreeBSD.org
Note: to view an individual PR, use: http://www.freebsd.org/cgi/query-pr.cgi?pr=(number). The following is a listing of current problems submitted by FreeBSD users. These represent problem reports covering all versions including experimental development code and obsolete releases. S Tracker Resp. Description o usb/180119 usbFreeBSD 9.1 umass driver does not correctly handle Pan o usb/179505 usbKernel detaches Arduino Leonardo (and similar) board u o usb/179342 usbFreebsd 10.0-current USB 3.0 not working (xhci_do_coma o usb/179109 usbAfter detach USB Flash a keyboard does not work. o usb/179107 usb[usb] After detach USB Flash a keyboard does not work. o usb/178773 usb[usbdevs] [patch] Huawei E303 USB 3G modem support o usb/178771 usb[usbdevs] [patch] Western Digital My Passport HD o usb/178722 usbFreeBSD 9.1-STABLE r250561 breaks support for webcam L o usb/178267 usb[usb] USB causing interrupt storm on irq16 o usb/177897 usb[u3g][patch] add support for the Huawei E352 modem o usb/177896 usbman page for usb_quirk suggests adding device to kerne o usb/177895 usbsimilar 1TB Western Digital "My Passports" - some load o usb/177666 usb[usbdevs] [patch] Add support for Texas Instruments / o usb/176913 usb[ehci] High interrupt load with ehci o usb/176841 usb[umass] Sony DSC-H2 USB connection fails o usb/176417 usb[xhci][cam][umass] kernelpanic while removing plugged o usb/175731 usbdetaching USB keyboard freezes other USB keyboards o usb/175639 usbnot detect usb netcard D-LINK DUB-E100 rev C1 o usb/175599 usb[usbdevs][patch]Liebert UPS PSI1000 being assigned uhi o usb/175551 usbSeagate 2TB USB extern hard disk have errors with Free o usb/175379 usbusb card-reader problem o usb/175302 usbdon't mount virtual driver CD for my phone o usb/174963 usbbuffalo wli-uc-gn wireless card sometimes unusable and o usb/174835 usbuaudio fails to create pcm/dsp device file o usb/174814 usb[PATCH] support for MiFi 2200 o usb/174695 usbusb keeps disconnecting mouse or keyboard o usb/174575 usbInterrupt storm error on startup o usb/174464 usbclone MAC address(es) on usb networks cdce(4) && ue[0- o usb/174254 usbMIDI keyboard not recognised o usb/173722 usb[xhci] xhci driver bug after suspend to RAM (ACPI S3 m o usb/173616 usbLG USB DVD-RW USB STALL o usb/173182 usbusbus appears as a network device o usb/172937 usbFreeBSD 9.1-RC2 usb3 port disconnects o usb/172633 usbSony Cybershot not recognized as USB mem stick o usb/172199 usb[xhci] high interrupts load xhci o usb/171354 usb[umass] Medium not present error on flash drive [regre o usb/171262 usbplug in sdhc via usb reader reboots machine o usb/171197 usbADATA Classic CH11 USB HDD doesn't work in FreeBSD 9.1 o usb/170699 usbFreeBSD 9.0 Doesn't list HDD or its partitions in part o usb/170688 usbpatch][usbdevs][wlan] Patch for ASUS Black Diamond USB o usb/170606 usbr239222 kernel panic at boot - usb locking issue o usb/170358 usb[ums] Wrong (duplicate) button numbers o usb/170123 usb[umass] HP v210w USB stick not supported o usb/169935 usb[keyboard] Unable use USB keyboard while panic o usb/169789 usb[u3g] [patch] add support for huawei e3131 o usb/169461 usb[ugen] USB2 high-speed device detected as full speed o usb/169428 usb[ugen] ugen not detecting all endpoints on device [reg o usb/168551 usb[umass] Issues with embedded card reader (Laptop ASUS o usb/168132 usb[umass] MATSHITA memory card size reported wrong, moun o usb/167847 usb[ural] dlink dwl-122g e crashes(?) when trying wap2 cr o usb/167001 usb[USB] [PATCH] add support for Smart G2 64MB memory key o usb/165815 usb[usbdevs] [patch] add k3772z 3g modem support o usb/165163 usb[keyboard] The USB RF keyboard and mouse become non-re o usb/164058 usb[umass] Lexar 8GB USB flash drive doesn't work by defa f usb/163328 usb[usb] Support for Atheros USB abgn devices o kern/163091 usb[panic] Fatal trap 12: page fault while in kernel mode f usb/162306 usbusb devices cant get address asignation, no memories, o usb/162054 usbusbdump just hangs on 9.0-RC1 f usb/161793 usbpoor EHCI usb2 i/o performance o usb/160436 usbucom wedges machine on parity error ? o usb/160299 usbMicroSDHC-to-USB adapters do not work in FreeBSD 8.x o usb/160192 usb[install] Installation from USB-Stick doesn't find the o usb/159274 usbUSB 3.0 Etron EJ168A