*BSD News Article 8888


Return to BSD News archive

Newsgroups: comp.unix.bsd
Path: sserve!manuel.anu.edu.au!munnari.oz.au!uunet!mcsun!Germany.EU.net!ira.uka.de!smurf.sub.org!flatlin!bad
From: bad@flatlin.ka.sub.org (Christoph Badura)
Subject: Re: [386BSD] 16550 Not Resetting.
Organization: Guru Systems/Funware Department
Date: Mon, 7 Dec 1992 17:24:41 GMT
Message-ID: <BywGD5.K5x@flatlin.ka.sub.org>
References: <CGD.92Nov26175845@toe.CS.Berkeley.EDU> <1992Nov28.032555.20511@gagetalker.com> <CGD.92Nov27220347@eden.CS.Berkeley.EDU>
Lines: 34

In <CGD.92Nov27220347@eden.CS.Berkeley.EDU> cgd@eden.CS.Berkeley.EDU (Chris G. Demetriou) writes:
>In article <1992Nov28.032555.20511@gagetalker.com> scotty@gagetalker.com (Scott Turner) writes:
>>386BSD should reset the FIFO's during shutdown, then the BIOS will be able to
>>autodetect the UART and these problems won't occur in DOS mode.
>*NOT*.

>Why do i say "misfeature"?  because that would require a *major* addition
>to the per-driver stuff, and would add (in my opinion, unneeded)
>complexity to system shutdown.

This doesn't require a major addition to the driver.

Two things need to be done:

1) At the first open of the device, enable the FIFOs on the 550s.

2) In the driver's close routine, disable the FIFOs after all data has
been drained from them.  [Disabling the FIFOs clears all data in them,
but the close routine has to wait for all data in the transmitter FIFO
to drain anyway.  (The receiver FIFO is of course not an issue.)]


An alternative approach would be to adopt a per-driver halt routine,
that is called during a shutdown(2) system call.  This would solve the
problem with the Ethernet cards not being reset upon shutdown.  This
would also provide a way to support other devices that require special
treatment upon shutdown.  (BTW SYS V.3 and up (and Xenix) support such
a halt routine.

-- 
				Christoph Badura  ---  bad@flatlin.ka.sub.org

AIX is a better... is a better...  is a better... OpenSystem.
					IBM Rep at GUUG Symposium '92