umass0: CBI reset failed, Timeout.... 4.10-R
Eitarou Kamo
e-kamo at trio.plala.or.jp
Sat Jul 24 04:48:53 PDT 2004
Hi commiter and all,
Eitarou Kamo wrote:
>Hi,
>
>I have some questions about umass and USB.
>
>I installed 4.10-R to Sony vaio laptop. and rebooted
>without any memory stick.
>In boot process, my machine said that
>
>umass0: CBI reset failed, TIMEOUT
>umass0: CBI bulk-in stall clear failed, TIMEOUT
>umass0: CBI bulk-out stall clear failed, TIMEOUT
>
>5 times( about 20 min). and didn't prompt "login:".
>
>and I look into source code by my debug print.
>
>It seems that reflexive loop occurs between uhci_callout( , ,
>uhci_poll_hub,)
>and uhci_poll_hub(). Now uhci_callout is called from uhci_power(). and
>uhci_poll_hub() have a path
>
>if (p[0] == 0)
>/* No change, try again in a while */
>return;
>
>If return here, loop occurs. Because uhci_poll_hub()
>includes uhci_callout( , , uhci_poll_hub,).
>
>Does anyone know? any idea?
>
>Any suggestion will be appreciated.
>
>
>
I posted this message and I now remembered suddenly.
Then, I'm writing this message.
|if (p[0] == 0)
|/* No change, try again in a while */
|return;
What does this path mean?
This path meant umass dev was none, I thought.
So reflexible loop occurs until umass device is recognized.
If so, I'd like a option to bypass this path when something
is set as the kernel param or anything else. which makes
the smooth boot process without umass devs.
Any idea or suggestion?
Eitarou
P.S.
Sorry not to trim below.
>++++++++++++++ unci_poll_hub()+++++++++++++++
>void
>uhci_poll_hub(void *addr)
>{
>usbd_xfer_handle xfer = addr;
>usbd_pipe_handle pipe = xfer->pipe;
>uhci_softc_t *sc = (uhci_softc_t *)pipe->device->bus;
>int s;
>u_char *p;
>
>DPRINTFN(20, ("uhci_poll_hub\n"));
>
>usb_callout(sc->sc_poll_handle, sc->sc_ival, uhci_poll_hub, xfer);
>
>p = KERNADDR(&xfer->dmabuf, 0);
>p[0] = 0;
>if (UREAD2(sc, UHCI_PORTSC1) & (UHCI_PORTSC_CSC|UHCI_PORTSC_OCIC))
>p[0] |= 1<<1;
>if (UREAD2(sc, UHCI_PORTSC2) & (UHCI_PORTSC_CSC|UHCI_PORTSC_OCIC))
>p[0] |= 1<<2;
>if (p[0] == 0)
>/* No change, try again in a while */
>return;
>
>xfer->actlen = 1;
>xfer->status = USBD_NORMAL_COMPLETION;
>s = splusb();
>xfer->device->bus->intr_context++;
>usb_transfer_complete(xfer);
>xfer->device->bus->intr_context--;
>splx(s);
>}
>
>++++++++++++++ unci_poll_hub()+++++++++++++++
>
>
>
--
***********************
Eitarou Kamo
Tel. +81 75 7035997
Fax +81 75 7035997
VoIP 050 10585997(domestic only)
e‐mail e-kamo at trio.plala.or.jp
For business:
Feel free to mail me(above), please.
Donation http://www.PayPal.Com
GPG FingerPrint:
032D FDF9 D27B 23F7 9A81 BF4C 626C FBAA BC3A 9895
************************************************************************
More information about the freebsd-hackers
mailing list