Return to BSD News archive
Newsgroups: comp.unix.bsd.freebsd.misc Path: euryale.cc.adfa.oz.au!newshost.carno.net.au!harbinger.cc.monash.edu.au!nntp.coast.net!news2.acs.oakland.edu!news.tacom.army.mil!news.webspan.net!www.nntp.primenet.com!nntp.primenet.com!hunter.premier.net!news.mathworks.com!EU.net!sun4nl!wmt!usenet From: Rene de Vries <revr@cadre.nl> Subject: Re: UUCP on ASUS P55TP4N X-Nntp-Posting-Host: ganymedes Content-Type: text/plain; charset=us-ascii Message-ID: <325116D1.37E4@cadre.nl> Sender: usenet@wmt.nl Content-Transfer-Encoding: 7bit Cc: rene@freeze.iaf.nl Organization: Cayenne Software - a Bachman and Cadre company References: <DyEyAF.8I@acme1.ruhr.de> <52nu1t$8cc@godzilla.zeta.org.au> Mime-Version: 1.0 Date: Tue, 1 Oct 1996 13:04:17 GMT X-Mailer: Mozilla 3.0 (X11; I; SunOS 5.4 sun4m) Lines: 62 Bruce Evans wrote: > > In article <DyEyAF.8I@acme1.ruhr.de>, > Christoph Haas <chris@acme1.ruhr.de> wrote: > >I'm succesfully running FreeBSD 2.1.5-STABLE on my old 486/100. Taylor UUCP can use the modem on /dev/cuaa1 (which is an onboard multi-i/o chip) without any problems. Now I moved to a new system based on an ASUS P55TP4N. The kernel detects 2 serial ports and I can use both of them with a mouse in X11 (so the hardware seems to be ok). When I start a ppp session with a modem conected to one of the ports, everything seems to be allright, but when I try to use UUCP on this port, I get tons of error > k > >sums, missing packets etc.). Is there a known bug in the sources (maybe the sio drivers) or on the board ? > > This is a known bug in the UART used on some ASUS P55TP boards. It shows > up mainly under uccp and gdb-remote because they make (usually null) changes > to the UART settings while data is arriving. Try the enclosed work-around. > It makes null changes harmless. > > diff -c2 sio.c~ sio.c > *** sio.c~ Sat Sep 14 19:30:41 1996 > --- sio.c Mon Sep 30 15:26:21 1996 > *************** > *** 1937,1943 **** > > if (divisor != 0) { > outb(iobase + com_cfcr, cfcr | CFCR_DLAB); > ! outb(iobase + com_dlbl, divisor & 0xFF); > ! outb(iobase + com_dlbh, (u_int) divisor >> 8); > } > outb(iobase + com_cfcr, com->cfcr_image = cfcr); > --- 1956,1975 ---- > > if (divisor != 0) { > + u_char dlbh; > + u_char dlbl; > + > outb(iobase + com_cfcr, cfcr | CFCR_DLAB); > ! /* > ! * Only set the divisor registers if they would change, > ! * since on some 16550 incompatibles (UMC8669F), setting > ! * them while input is arriving them loses sync until > ! * data stops arriving. > ! */ > ! dlbl = divisor & 0xFF; > ! if (inb(iobase + com_dlbl) != dlbl) > ! outb(iobase + com_dlbl, dlbl); > ! dlbh = (u_int) divisor >> 8; > ! if (inb(iobase + com_dlbh) != dlbh) > ! outb(iobase + com_dlbh, dlbh); > } > outb(iobase + com_cfcr, com->cfcr_image = cfcr); > -- > Bruce Evans bde@zeta.org.au Some time ago I posted a message on freebsd-hackers containing a more suffisticated patch. This patch checks if the new baudrate is different from the old one, if not so the speed is set, otherwise the speed is left at the old (and new) value. (I mailed it as rene@freeze.iaf.nl; this was a patch to FreeBSD 2.1) --- _ _ _ __ _ |- |_| |- |- / |- Rene de Vries revr@cadre.nl | |\ |_ |_ /_ |_ Cayenne Software Inc., European Operations, PD, Delft, NL