*BSD News Article 18328


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!agate!howland.reston.ans.net!math.ohio-state.edu!cs.utexas.edu!uunet!pipex!uknet!mcsun!sun4nl!philapd!apdnews!wilko
From: wilko@idca.tds.philips.nl (Wilko Bulte)
Newsgroups: comp.os.386bsd.bugs
Subject: Patches for sio.c on AST/4 cards
Message-ID: <572@apdnews.idca.tds.philips.nl>
Date: 13 Jul 93 08:20:23 GMT
Sender: news@idca.tds.philips.nl
Organization: Digital Equipment Corporation, Apeldoorn, The Netherlands.
Lines: 56


Below is a diff of sio.c (as of PK024) that solves the following
two problems with AST/4 multiport cards (and probably with AST/4
clones):

	1. Most of the times the first port on the AST is not configured
	   because it fails the IRQ test. People even reported
	   that random ports were not configured, never saw that
	   myself though;
	2. The last port of the AST/4 is always found to be a 8250
	   because the scratch register of the last port is used on
	   the AST for the interrupt register.

I hope that the changes made do not break any other multiport cards, and
work right on other peoples systems also.
SInce I only have an AST/4, I cannot try them myself. If no problems
turnup, I intend to send the patches to the patchkit coordinator.

Thanks to Bob Willcox (bob@obiwan.uucp) for putting me on the
right track.

Wilko


379,387c379
< 	/* ifndef below to avoid ports being 'overlooked'
< 	 * on AST/4 (like) cards. Probably we need to enable something
< 	 * or some timing quirk? Warm reboots (no poweroff) tend to
< 	 * work better than cold boots.
< 	 * WKB
< 	 */
< #ifndef COM_MULTIPORT
<       	    || !isa_irq_pending(dev) 
< #endif
---
> 	    || !isa_irq_pending(dev)
476,486c468
< 	if ( (scr1 != 0xa5 || scr2 != 0x5a) 
< 	/* The 0x1f, 0x9f stuff is needed to correctly recognize the
< 	 * last port on an AST/4 (like) card. The 'scratch' register
< 	 * of the last ACE is used for the interrupt vector of the AST/4
< 	 * WKB
<          */
< #ifdef COM_MULTIPORT	
<            && (COM_ISMULTIPORT(isdp)) && (scr1 != 0x1f || scr2 != 0x9f))
< #else
< 	)
< #endif
---
> 	if (scr1 != 0xa5 || scr2 != 0x5a)


--
 |   / o / /  _   Wilko Bulte               mail: wilko@idca.tds.philips.nl
 |/|/ / / /( (_)  |d|i|g|i|t|a|l| Equipment Corporation voice: +3155-432062
fax: +3155-432103 DTN: 829 2062 PO Box 245 - 7300 AE Apeldoorn - The Netherlands