Re: [U-Boot] [linux-sunxi] Mainline U-Boot, EHCI, usbkbd not working (workaround)

(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.

Hi,
On 04-01-15 19:21, B.R. Oake wrote:
(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?
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.

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.

Hi Hans,
On 4 January 2015 at 12:05, Hans de Goede hdegoede@redhat.com wrote:
Hi,
On 04-01-15 19:21, B.R. Oake wrote:
(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?
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?
Regards, Simon

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

Hi,
On 05-01-15 03:49, Simon Glass wrote:
Hi Hans,
On 4 January 2015 at 12:05, Hans de Goede hdegoede@redhat.com wrote:
Hi,
On 04-01-15 19:21, B.R. Oake wrote:
(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?
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.
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

Hi Hans,
On 5 January 2015 at 00:10, Hans de Goede hdegoede@redhat.com wrote:
Hi,
On 05-01-15 03:49, Simon Glass wrote:
Hi Hans,
On 4 January 2015 at 12:05, Hans de Goede hdegoede@redhat.com wrote:
Hi,
On 04-01-15 19:21, B.R. Oake wrote:
(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?
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.
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.
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

apt-get install gcc-4.7-arm-linux-gnueabihf ncurses-dev uboot-mkimage build-essential git http://lists.denx.de/pipermail/u-boot/2015-January/200162.html
participants (5)
-
B.R. Oake
-
Hans de Goede
-
John Morelli
-
Marek Vasut
-
Simon Glass