Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 24 Jul 2004 20:55:54 +0900
From:      Eitarou Kamo <e-kamo@trio.plala.or.jp>
To:        freebsd-hackers@freebsd.org
Subject:   Re: umass0: CBI reset failed, Timeout.... 4.10-R
Message-ID:  <41024E4A.40907@trio.plala.or.jp>
In-Reply-To: <40CF0A84.1020807@trio.plala.or.jp>
References:  <40CF0A84.1020807@trio.plala.or.jp>

next in thread | previous in thread | raw e-mail | index | archive | help
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$B!>(Bmail   e-kamo@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 
************************************************************************

                                        





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?41024E4A.40907>