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>