Mainline U-Boot, EHCI, usbkbd not working (workaround)

325 views
Skip to first unread message

Lars Doelle

unread,
Jan 4, 2015, 8:45:48 AM1/4/15
to linux...@googlegroups.com
Hi everyone,

while testing with mainline u-boot, I came over the
problem, that the USB keyboard is not recognized.

The device is an A20-OLinuXIno-LIME2. I used the
current A20-OLinuXino-Lime2_defconfig for building.

In my understanding, the issue should be reproducible
with all devices having an EHCI root hub.

---
sun7i# usb reset
(Re)start USB...
USB0: USB EHCI 1.00
scanning bus 0 for devices... cannot reset port 1!?
1 USB Device(s) found
USB1: USB EHCI 1.00
scanning bus 1 for devices... 1 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
sun7i# usb tree
USB device tree:
1 Hub (480 Mb/s, 0mA)
u-boot EHCI Host Controller

2 Hub (480 Mb/s, 0mA)
u-boot EHCI Host Controller
---

As a workaround, i plugged an USB hub in between:

---
sun7i# usb reset
(Re)start USB...
USB0: USB EHCI 1.00
scanning bus 0 for devices... 4 USB Device(s) found
USB1: USB EHCI 1.00
scanning bus 1 for devices... 1 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
sun7i# usb tree
USB device tree:
1 Hub (480 Mb/s, 0mA)
| u-boot EHCI Host Controller
|
+-2 Hub (480 Mb/s, 100mA)
| USB 2.0 Hub [MTT]
|
+-3 Hub (480 Mb/s, 100mA)
| USB 2.0 Hub [MTT]
|
+-4 Human Interface (1.5 Mb/s, 100mA)

5 Hub (480 Mb/s, 0mA)
u-boot EHCI Host Controller

sun7i#
USB device tree:
1 Hub (480 Mb/s, 0mA)
| u-boot EHCI Host Controller
|
+-2 Hub (480 Mb/s, 100mA)
| USB 2.0 Hub [MTT]
|
+-3 Hub (480 Mb/s, 100mA)
| USB 2.0 Hub [MTT]
|
+-4 Human Interface (1.5 Mb/s, 100mA)

5 Hub (480 Mb/s, 0mA)
u-boot EHCI Host Controller
---

Kind regards,

Lars

Toroshin Dmitry

unread,
Jan 4, 2015, 1:13:27 PM1/4/15
to linux...@googlegroups.com, lars....@on-line.de
The same on Wexler tab 7200: usb keyboard works only with exterenal hub.

B.R. Oake

unread,
Jan 4, 2015, 1:22:22 PM1/4/15
to linux...@googlegroups.com, u-b...@lists.denx.de
(This started on the linux-sunxi mailing list but will hopefully be
of interest on the U-Boot list)

On 04/01/15 13:45, Lars Doelle wrote:
> while testing with mainline u-boot, I came over the
> problem, that the USB keyboard is not recognized.
>
> The device is an A20-OLinuXIno-LIME2. I used the
> current A20-OLinuXino-Lime2_defconfig for building.
>
> In my understanding, the issue should be reproducible
> with all devices having an EHCI root hub.
>
> ---
> sun7i# usb reset
> (Re)start USB...
> USB0: USB EHCI 1.00
> scanning bus 0 for devices... cannot reset port 1!?
> 1 USB Device(s) found
> USB1: USB EHCI 1.00
> scanning bus 1 for devices... 1 USB Device(s) found
> scanning usb for storage devices... 0 Storage Device(s) found
> sun7i# usb tree
> USB device tree:
> 1 Hub (480 Mb/s, 0mA)
> u-boot EHCI Host Controller
>
> 2 Hub (480 Mb/s, 0mA)
> u-boot EHCI Host Controller
> ---
>
> As a workaround, i plugged an USB hub in between:
> [...]


I also have this problem. I've tried three different USB keyboards on
an A20-Olinuxino-Micro and a Banana Pi, and I always get that error
"cannot reset port N!?" where N is whichever USB socket I've plugged
it into, and U-Boot cannot see the keyboard. Once Linux has loaded,
the keyboard works without any trouble.

Can anyone suggest what is causing this?

Thank you,
B.R. Oake.

Hans de Goede

unread,
Jan 4, 2015, 2:05:29 PM1/4/15
to linux...@googlegroups.com, u-b...@lists.denx.de
Hi,
The problem is that u-boot does not allow building both ohci and
ehci drivers into the same u-boot binary, so we cannot enable both
usb-1 and usb-2 support at the same time.

So we're stuck with having only usb-2 support until someone reworks
u-boot's usb code, and keyboards and mice are typically usb-1 devices,
the workaround for this is to plug in a usb-2 hub so that the board
sees a usb-2 device, and then plug the mouse / keyboard into that
hub.

Regards,

Hans





>
> Thank you,
> B.R. Oake.
>

B.R. Oake

unread,
Jan 4, 2015, 4:52:01 PM1/4/15
to linux...@googlegroups.com, u-b...@lists.denx.de
On 04/01/15 19:05, Hans de Goede wrote:
> The problem is that u-boot does not allow building both ohci and
> ehci drivers into the same u-boot binary, so we cannot enable both
> usb-1 and usb-2 support at the same time.
>
> So we're stuck with having only usb-2 support until someone reworks
> u-boot's usb code, and keyboards and mice are typically usb-1 devices,
> the workaround for this is to plug in a usb-2 hub so that the board
> sees a usb-2 device, and then plug the mouse / keyboard into that
> hub.

Thanks for the explanation Hans.

At U-Boot time, the only USB device I would need is the keyboard, and
I would rather avoid adding a hub if I don't otherwise need one, so
perhaps I can build U-Boot with the OHCI driver enabled instead of EHCI?
I tried removing CONFIG_USB_EHCI and adding:

CONFIG_USB_OHCI_NEW
CONFIG_SYS_USB_OHCI_BOARD_INIT
CONFIG_SYS_USB_OHCI_CPU_INIT
CONFIG_SYS_USB_OHCI_REGS_BASE=0x01c14400
CONFIG_SYS_USB_OHCI_SLOT_NAME="sunxi_slot_0"
CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS=1

which built and ran, but gave the error "unknown command usb". Can
this approach be made to work?

Cheers,
B.R.

Simon Glass

unread,
Jan 4, 2015, 9:49:34 PM1/4/15
to Hans de Goede, linux...@googlegroups.com, U-Boot Mailing List, Marek Vašut
Hi Hans,
This could be solved by moving USB to driver model.

Marek do you know if anyone is looking at this?

Regards,
Simon

Marek Vasut

unread,
Jan 4, 2015, 10:22:00 PM1/4/15
to Simon Glass, Hans de Goede, linux...@googlegroups.com, U-Boot Mailing List
On Monday, January 05, 2015 at 03:49:32 AM, Simon Glass wrote:
> Hi Hans,

Hi all,

[...]

> > The problem is that u-boot does not allow building both ohci and
> > ehci drivers into the same u-boot binary, so we cannot enable both
> > usb-1 and usb-2 support at the same time.
> >
> > So we're stuck with having only usb-2 support until someone reworks
> > u-boot's usb code, and keyboards and mice are typically usb-1 devices,
> > the workaround for this is to plug in a usb-2 hub so that the board
> > sees a usb-2 device, and then plug the mouse / keyboard into that
> > hub.
>
> This could be solved by moving USB to driver model.
>
> Marek do you know if anyone is looking at this?

To my knowledge, noone at this point. I cannot tell when I will be able
to dive into this due to the university stuff, sorry about that :(

Best regards,
Marek Vasut

Hans de Goede

unread,
Jan 5, 2015, 2:10:34 AM1/5/15
to Simon Glass, linux...@googlegroups.com, U-Boot Mailing List, Marek Vašut
Hi,
Yes, that is what I was thinking too.

> Marek do you know if anyone is looking at this?

Actually I was about to ask you (Simon) if you are looking into converting
the usb stuff to dm, AFAIK no one else is working on this.

Regards,

Hans

Simon Glass

unread,
Jan 5, 2015, 11:34:09 AM1/5/15
to Hans de Goede, linux...@googlegroups.com, U-Boot Mailing List, Marek Vašut
Hi Hans,
I think Marek is busy for a while.

I'd like to get PCI over the line first, and I have a few other things
on my plate.

But I think it would not be too difficult to move the
usb_lowlevel_init() stuff into driver model. That would solve the
primary problem I think. I'll see how things look later in the month.

Regards,
Simon
Reply all
Reply to author
Forward
0 new messages