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

Simon Glass
2015-01-05T16:34:08Z

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