[SeaBIOS] error in write and read from usb hid device

Navid Movahedi n.movahedi67 at gmail.com
Mon Mar 16 06:17:13 CET 2015


Hi
Is there a mechanism to save log messages at boot time?
I tested again and found that ehci_wait_td function timeouts in all
execution of for loop including first.
which registers you want to know?
i got these information from log messages:

pipe->qh.current = 0x1eff8d80
pipe->qh.token = 0x00400141
pipe->qh.qtd_next = 0x1efff140
td->token = 0x00400c80
pipe->qh.info1 = 0x00400202
pipe->qh.info2 = 0x00400202


for uhci i used vmware workstation and it works perfectly and i can send
and receive data from hid device, but my real hardware does not have uhci
controller , instead it has 2 EHCI controller with rate matching hub, so i
should use ehci driver for this kind of controller.

On Sun, Mar 15, 2015 at 7:03 PM, Kevin O'Connor <kevin at koconnor.net> wrote:

> On Sun, Mar 15, 2015 at 12:32:04PM +0330, Navid Movahedi wrote:
> > Hi
> > I have a usb 1 HID device with 2 endpoints, 1 in, 1 out, and i want to
> > enumerate this usb device with seabios at boot time, so i hacked
> > seabios hid source code and add needed codes for this device. now
> > device is full functional with uhci driver in vmware and i have no
> > problem with read and write to device . the problem is for machines
> > with ehci controllers that don't have companion uhci controller and
> > uses rate matching hub to connect to this usb 1 device. The currewnt
> > status for this kind of controller is that the device is detected and
> > configured and 2 endpoints and corresponding 2 interrupt pipes are
> > allocated and initialized but when i use usb_send_pipe function to
> > write to device , error occurs . error is Timeout in ehci_wait_td
> > function in this section of code:
> >
> > for (i=0, td=tds; i<STACKQTDS; i++, td++) {
> >           ret = ehci_wait_td(pipe, td, end);
> >               if (ret)
> >                       return -1;
> > }
> >
> > timeout occurs for second td. i called usb_send_pipe function in this
> way:
> >
> > usb_send_pipe(out_pipe, USB_DIR_OUT , NULL , data, 64);
> >
> > is it correct?
> >
> > How can i solve this problem?
>
> We'd need to see the full seabios log in order to help.  When the EHCI
> controller complains, it should also print out some ehci registers
> which give further information on what the controller was doing at the
> time of the error.
>
> Was this second ehci setup also on vmware or on some other
> emulator/real hardware?
>
> -Kevin
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.seabios.org/pipermail/seabios/attachments/20150316/067425ba/attachment.html>


More information about the SeaBIOS mailing list