All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] axs103: add support of generic OHCI USB 1.1 controller
Date: Mon, 21 Dec 2015 23:18:45 +0100	[thread overview]
Message-ID: <201512212318.45308.marex@denx.de> (raw)
In-Reply-To: <1450730048.4971.0.camel@synopsys.com>

On Monday, December 21, 2015 at 09:34:08 PM, Alexey Brodkin wrote:
> Hi,
> 
> On Thu, 2015-12-17 at 16:08 +0100, Marek Vasut wrote:
> > On Thursday, December 17, 2015 at 02:32:26 PM, Alexey Brodkin wrote:
> > > Hi Marek,
> > > 
> > > On Thu, 2015-12-17 at 05:01 +0100, Marek Vasut wrote:
> > > > On Wednesday, December 16, 2015 at 08:54:11 PM, Alexey Brodkin wrote:
> > > > > Hi Marek,
> > > > 
> > > > Hi!
> > > > 
> > > > > On Wed, 2015-12-16 at 17:52 +0100, Marek Vasut wrote:
> > > > > > On Wednesday, December 16, 2015 at 05:05:15 PM, Alexey Brodkin 
wrote:
> > > > > > > This commit adds support of USB 1.1 storage media on AXS103
> > > > > > > board. For some yet unknown reason USB 2.0 doesn't work on
> > > > > > > AXS103 board issuing messages like this:
> > > > > > > ------------------------>8-------------------
> > > > > > > AXS# usb start
> > > > > > > starting USB...
> > > > > > > USB0:   USB EHCI 1.00
> > > > > > > scanning bus 0 for devices... EHCI timed out on TD -
> > > > > > > token=0x80008c80 unable to get device descriptor (error=-1)
> > > > > > > 1 USB Device(s) found
> > > > > > > ------------------------>8-------------------
> > > > > > 
> > > > > > Try defining CONFIG_EHCI_IS_TDI , that _might_ help.
> > > > > 
> > > > > Thanks for that tip but it made no difference to me.
> > > > > I need to look deeper into that problem.
> > > > 
> > > > I remember seeing that stuff multiple times before, but it might be a
> > > > different issue. It was usually triggered by some sort of corruption
> > > > during the transfer. On ARM, that was often caused by cache issues.
> > > 
> > > Believe me I know how much of a grief caches bring so the first thing I
> > > do when seeing unexpected behavior I disable caches :)
> > > 
> > > > > Just a bit of a context here.
> > > > > 
> > > > > I'm playing with ARC SP board which consists of 2 parts:
> > > > >  [1] Baseboard with all peripherals and their connectors
> > > > >  [2] Daughterboard with CPU and DDR
> > > > > 
> > > > > Baseboard is connected to CPU-board via AXI tunnel.
> > > > > 
> > > > > And when CPU-board is the one with ASIC based on ARC770
> > > > > that runs at 700 MHz I see USB 2.0 working perfectly fine.
> > > > > 
> > > > > But if I use CPU-board that sports FPGA with ARC HS38 CPU
> > > > > running at 75 MHz I see the first asynchronous tarnsaction
> > > > > on US 2.0 never happens.
> > > > 
> > > > Connect signaltap or chipscope ? :)
> > > 
> > > Well I don't have either of those tools sitting on my desk but
> > > if absolutely required I'll do that :)
> > > 
> > > > > In particular in ehci_submit_async() after we enable async.
> > > > > schedule setting CMD_ASE command STS_ASS gets set but then token's
> > > > > status stays active forever i.e. following is always true:
> > > > > --------------------->8---------------------
> > > > > QT_TOKEN_GET_STATUS(token) & QT_TOKEN_STATUS_ACTIVE
> > > > > --------------------->8---------------------
> > > > > 
> > > > > Note USB host controller, phy and usb dongle are exactly the same.
> > > > > And USB 1.1 (OHCI) works perfectly fine at the same time.
> > > > 
> > > > Try adding #define DEBUG at the first line of common/usb.c , so we
> > > > can get some more debugging info. Also adding the same into
> > > > common/usb_hub.c helps.
> > > 
> > > Did that and here's my log:
> > > 
> > > --------------------->8---------------------
> > > starting USB...
> > > USB0:   ehci_register: dev='ehci at 0xe0040000', ctrl=9fd94100,
> > > hccr=e0040000, hcor=e0040010, init=0 Register 1111 NbrPorts 1
> > > USB EHCI 1.00
> > > scanning bus 0 for devices... ehci_submit_control_msg:
> > > dev='ehci at 0xe0040000', udev=9fd7c000, udev->dev='ehci at 0xe004000 req=6
> > > (0x6), type=128 (0x80), value=256, index=0
> > > USB_DT_DEVICE request
> > > ehci_submit_control_msg: dev='ehci at 0xe0040000', udev=9fd7c000,
> > > udev->dev='ehci at 0xe0040000', portnr=0 req=5 (0x5), type=0 (0x0),
> > > value=1, index=0
> > > USB_REQ_SET_ADDRESS
> > > Len is 0
> > > ehci_submit_control_msg: dev='ehci at 0xe0040000', udev=9fd7c000,
> > > udev->dev='ehci at 0xe0040000', portnr=0 req=6 (0x6), type=128 (0x80),
> > > value=256, index=0
> > > USB_DT_DEVICE request
> > > ehci_submit_control_msg: dev='ehci at 0xe0040000', udev=9fd7c000,
> > > udev->dev='ehci at 0xe0040000', portnr=0 req=6 (0x6), type=128 (0x80),
> > > value=512, index=0
> > > USB_DT_CONFIG config
> > > ehci_submit_control_msg: dev='ehci at 0xe0040000', udev=9fd7c000,
> > > udev->dev='ehci at 0xe0040000', portnr=0 req=6 (0x6), type=128 (0x80),
> > > value=512, index=0
> > > USB_DT_CONFIG config
> > > ehci_submit_control_msg: dev='ehci at 0xe0040000', udev=9fd7c000,
> > > udev->dev='ehci at 0xe0040000', portnr=0 req=9 (0x9), type=0 (0x0),
> > > value=1, index=0
> > > USB_REQ_SET_CONFIGURATION
> > > Len is 0
> > > ehci_submit_control_msg: dev='ehci at 0xe0040000', udev=9fd7c000,
> > > udev->dev='ehci at 0xe0040000', portnr=0 req=6 (0x6), type=128 (0x80),
> > > value=768, index=0
> > > USB_DT_STRING config
> > > ehci_submit_control_msg: dev='ehci at 0xe0040000', udev=9fd7c000,
> > > udev->dev='ehci at 0xe0040000', portnr=0 req=6 (0x6), type=128 (0x80),
> > > value=769, index=1
> > > USB_DT_STRING config
> > > ehci_submit_control_msg: dev='ehci at 0xe0040000', udev=9fd7c000,
> > > udev->dev='ehci at 0xe0040000', portnr=0 req=6 (0x6), type=128 (0x80),
> > > value=770, index=1
> > > USB_DT_STRING config
> > > ehci_submit_control_msg: dev='ehci at 0xe0040000', udev=9fd94380,
> > > udev->dev='usb_hub', portnr=0 req=6 (0x6), type=160 (0xa0),
> > > value=10496, index=0
> > > USB_DT_HUB config
> > > ehci_submit_control_msg: dev='ehci at 0xe0040000', udev=9fd94380,
> > > udev->dev='usb_hub', portnr=0 req=6 (0x6), type=160 (0xa0),
> > > value=10496, index=0
> > > USB_DT_HUB config
> > > ehci_submit_control_msg: dev='ehci at 0xe0040000', udev=9fd94380,
> > > udev->dev='usb_hub', portnr=0 req=0 (0x0), type=160 (0xa0), value=0,
> > > index=0
> > > ehci_submit_control_msg: dev='ehci at 0xe0040000', udev=9fd94380,
> > > udev->dev='usb_hub', portnr=0 req=3 (0x3), type=35 (0x23), value=8,
> > > index=1
> > > Len is 0
> > > ehci_submit_control_msg: dev='ehci at 0xe0040000', udev=9fd94380,
> > > udev->dev='usb_hub', portnr=0 req=0 (0x0), type=163 (0xa3), value=0,
> > > index=1
> > > ehci_submit_control_msg: dev='ehci at 0xe0040000', udev=9fd94380,
> > > udev->dev='usb_hub', portnr=0 req=0 (0x0), type=163 (0xa3), value=0,
> > > index=1
> > > ehci_submit_control_msg: dev='ehci at 0xe0040000', udev=9fd94380,
> > > udev->dev='usb_hub', portnr=0 req=1 (0x1), type=35 (0x23), value=16,
> > > index=1
> > > Len is 0
> > > ehci_submit_control_msg: dev='ehci at 0xe0040000', udev=9fd94380,
> > > udev->dev='usb_hub', portnr=0 req=3 (0x3), type=35 (0x23), value=4,
> > > index=1
> > > Len is 0
> > > ehci_submit_control_msg: dev='ehci at 0xe0040000', udev=9fd94380,
> > > udev->dev='usb_hub', portnr=0 req=0 (0x0), type=163 (0xa3), value=0,
> > > index=1
> > > ehci_submit_control_msg: dev='ehci at 0xe0040000', udev=9fd94380,
> > > udev->dev='usb_hub', portnr=0 req=1 (0x1), type=35 (0x23), value=20,
> > > index=1
> > > Len is 0
> > > ehci_submit_control_msg: dev='ehci at 0xe0040000', udev=9fd7b100,
> > > udev->dev='usb_hub', portnr=1 dev=9fd7b100, pipe=80000083,
> > > buffer=9fd7ae00, length=64, req=9fd7ad00 req=6 (0x6), type=128 (0x80),
> > > value=256 (0x100), index=0
> > > EHCI timed out on TD - token=0x80008c80
> > > dev=0, usbsts=0x1, p[1]=0x1005, p[2]=0x0
> > > unable to get device descriptor (error=-1)
> > > ehci_submit_control_msg: dev='ehci at 0xe0040000', udev=9fd94380,
> > > udev->dev='usb_hub', portnr=0 req=1 (0x1), type=35 (0x23), value=1,
> > > index=1
> > > Len is 0
> > > 1 USB Device(s) found
> > > AXS#
> > > --------------------->8---------------------
> > > 
> > > Makes any sense?
> > 
> > Am I reading it correctly that the root hub (the one built into the
> > controller) is misbehaving here ?
> > 
> > > Note in case of ARC770 the log is very similar except the fact that it
> > > goes further to successful device detection.
> 
> Applied to u-boot-arc, thanks!

Uh, sorry I didn't get back to you about this. I am wrestling my own issues with
the DWC2 USB core :-/ Looks like it doesn't work with USB3340 LPM-capable PHY 
(it only starts in FS mode), but works with non-LPM-capable USB3300 PHY and 
starts in HS mode.

Did you figure your issue out by any chance ?

  reply	other threads:[~2015-12-21 22:18 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-16 16:05 [U-Boot] [PATCH] axs103: add support of generic OHCI USB 1.1 controller Alexey Brodkin
2015-12-16 16:52 ` Marek Vasut
2015-12-16 19:54   ` Alexey Brodkin
2015-12-17  4:01     ` Marek Vasut
2015-12-17 13:32       ` Alexey Brodkin
2015-12-17 15:08         ` Marek Vasut
2015-12-17 15:24           ` Alexey Brodkin
2015-12-21 20:34           ` Alexey Brodkin
2015-12-21 22:18             ` Marek Vasut [this message]
2015-12-23 11:59               ` Alexey Brodkin
2015-12-24  9:51                 ` Marek Vasut

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201512212318.45308.marex@denx.de \
    --to=marex@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.