Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 Nov 2005 16:09:47 -0500
From:      Kris Kennaway <kris@obsecurity.org>
To:        John Baldwin <jhb@freebsd.org>
Cc:        freebsd-sparc64@freebsd.org, phk@freebsd.org
Subject:   Re: uart(4) busted on sparc64 now?
Message-ID:  <20051121210947.GA6984@xor.obsecurity.org>
In-Reply-To: <200511211500.10174.jhb@freebsd.org>
References:  <200511211422.57431.jhb@freebsd.org> <200511211431.31051.jhb@freebsd.org> <200511211500.10174.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--x+6KMIRAuhnl3hBn
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, Nov 21, 2005 at 03:00:09PM -0500, John Baldwin wrote:
> On Monday 21 November 2005 02:31 pm, John Baldwin wrote:
> > On Monday 21 November 2005 02:22 pm, John Baldwin wrote:
> > > So on Friday I updated my ultra60 to HEAD.  It had been running HEAD =
from
> > > about a month ago.  Today I came in and rebooted into the new kernel =
and
> > > now it hangs probing uart1 off of a PUC device.  Note that I do not h=
ave
> > > a keyboard and mouse plugged into this box.
> > >
> > > New dmesg:
> > >
> > > puc0: <Siemens SAB 82532 dual channel SCC> addr 0x1400400000-0x140040=
007f
> > > irq 43 on ebus0 uart0: <SAB 82532 v3.2, channel A> on puc0
> > > uart0: CTS oflow
> > > uart0: console (9600,n,8,1)
> > > uart1: <SAB 82532 v3.2, channel B> on puc0
> > > <hang>
> >
> > Looks like maybe it is spinning here:
> >
> > sab82532_bus_setsig(struct uart_softc *sc, int sig)
> > {
> >         struct uart_bas *bas;
> >         uint32_t new, old;
> >         uint8_t mode, pvr;
> >
> >         bas =3D &sc->sc_bas;
> >         do {
> >                 old =3D sc->sc_hwsig;
> >                 new =3D old;
> >                 if (sig & SER_DDTR) {
> >                         SIGCHG(sig & SER_DTR, new, SER_DTR,
> >                             SER_DDTR);
> >                 }
> >                 if (sig & SER_DRTS) {
> >                         SIGCHG(sig & SER_RTS, new, SER_RTS,
> >                             SER_DRTS);
> >                 }
> >         } while (!atomic_cmpset_32(&sc->sc_hwsig, old, new));
> >
> >
> > [halt - sent]
> > KDB: enter: Line break on console
> > [thread pid 0 tid 0 ]
> > Stopped at      kdb_enter+0x3c: ta              %xcc, 1
> > db> tr
> > Tracing pid 0 tid 0 td 0xc035a1f8
> > uart_intr_break() at uart_intr_break+0x24
> > uart_intr() at uart_intr+0x94
> > puc_intr() at puc_intr+0x54
> > psycho_intr_stub() at psycho_intr_stub+0x8
> > intr_execute_handlers() at intr_execute_handlers+0x78
> > intr_fast() at intr_fast+0x7c
> > -- interrupt level=3D0xd pil=3D0 %o7=3D0xc00ddb5c --
> > sab82532_bus_setsig() at sab82532_bus_setsig+0xa0
> > sab82532_bus_attach() at sab82532_bus_attach+0xf0
> > uart_bus_attach() at uart_bus_attach+0x2d4
> > ...
>=20
> FYI, turning PUC_FASTINTR back off fixes it.  I'll probably move that ove=
r to=20
> DEFAULTS rather than hardcoding it in the source so that it's feasible fo=
r=20
> folks to turn it off in the kernel configs instead of having to hack the=
=20
> kernel to turn this (mis)feature off.

I think it should be disabled by default.  E4500 machines are also
unbootable like this.

Kris


--x+6KMIRAuhnl3hBn
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (FreeBSD)

iD4DBQFDgjebWry0BWjoQKURAmaCAKDoipp88KwoHDe/F76N+0MfsDkBMACWLG0b
0yMCu98R8PW57Amr6yQuWQ==
=fIXA
-----END PGP SIGNATURE-----

--x+6KMIRAuhnl3hBn--



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