*BSD News Article 60099


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!news.rmit.EDU.AU!news.unimelb.EDU.AU!munnari.OZ.AU!news.ecn.uoknor.edu!paladin.american.edu!gatech!newsfeed.internetmci.com!howland.reston.ans.net!Germany.EU.net!zib-berlin.de!news.tu-chemnitz.de!irz401!uriah.heep!news
From: j@uriah.heep.sax.de (J Wunsch)
Newsgroups: comp.unix.bsd.freebsd.misc
Subject: Re: ATI Mach-64 problems in Textmode!!!
Date: 19 Jan 1996 22:18:42 GMT
Organization: Private BSD site, Dresden
Lines: 83
Message-ID: <4dp5c2$4iv@uriah.heep.sax.de>
References: <199601110645.WAA10152@jaguar.cris.com> <Pine.SUN.3.91.960111150831.19397A-100000@fozzie.sun3.iaf.nl> <franky.821463790@pwood1> <4d9njd$mi0@fozzie.sun3.iaf.nl>
Reply-To: joerg_wunsch@uriah.heep.sax.de (Joerg Wunsch)
NNTP-Posting-Host: localhost.heep.sax.de
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Newsreader: knews 0.9.3

geert@fozzie.sun3.iaf.nl (Geert Bosch) writes:

> : We've got an Intel Atlantis board with a built-in Mach64 video card.
> : Same problem.  Have to disable the probes for the serial ports otherwise
> : the Mach64 is put in an inoperable state.
> 
> The strange thing is that it is not sufficient to disable the 4th serial
> port (which has a conflict with I/O-port 0x2e8 that the Mach-64 uses) but
> you've got to disable *all* serial ports. I wouldn't guess myself that
> *that* would be the solution (or rather: workaround).

I went through this today, too.  I've grabbed the patch from -current,
but it didn't fit quite well into 2.1R (the line next to the modified
code has been changed by the inclusion of the pccard [PCMCIA] code).

For the adventurous, here's the CVS diff from -current.  The line with
``#if NCRD > 0'' prevents the last hunk from patching cleanly into
2.1R, so you have to hand-craft the reject into the code.

Index: /sys/i386/isa/sio.c
===================================================================
RCS file: /home/cvs/src/sys/i386/isa/sio.c,v
retrieving revision 1.122
retrieving revision 1.123
diff -u -r1.122 -r1.123
--- sio.c	1995/11/29 14:39:57	1.122
+++ sio.c	1995/11/29 15:00:07	1.123
@@ -31,7 +31,7 @@
  * SUCH DAMAGE.
  *
  *	from: @(#)com.c	7.5 (Berkeley) 5/16/91
- *	$Id: sio.c,v 1.122 1995/11/29 14:39:57 julian Exp $
+ *	$Id: sio.c,v 1.123 1995/11/29 15:00:07 bde Exp $
  */
 
 #include "sio.h"
@@ -339,9 +339,6 @@
 	{ -1,		-1 }
 };
 
-/* XXX - configure this list */
-static Port_t likely_com_ports[] = { 0x3f8, 0x2f8, 0x3e8, 0x2e8, };
-
 static struct kern_devconf kdc_sio[NSIO] = { {
 	0, 0, 0,		/* filled in by dev_attach */
 	"sio", 0, { MDDT_ISA, 0, "tty" },
@@ -502,13 +499,13 @@
 	struct isa_device	*dev;
 {
 	static bool_t	already_init;
-	Port_t		*com_ptr;
 	bool_t		failures[10];
 	int		fn;
 	struct isa_device	*idev;
 	Port_t		iobase;
 	u_char		mcr_image;
 	int		result;
+	struct isa_device	*xdev;
 
 	sioregisterdev(dev);
 
@@ -519,11 +516,9 @@
 		 * from any used port that shares the interrupt vector.
 		 * XXX the gate enable is elsewhere for some multiports.
 		 */
-		for (com_ptr = likely_com_ports;
-		     com_ptr < &likely_com_ports[sizeof likely_com_ports
-						 / sizeof likely_com_ports[0]];
-		     ++com_ptr)
-			outb(*com_ptr + com_mcr, 0);
+		for (xdev = isa_devtab_tty; xdev->id_driver != NULL; xdev++)
+			if (xdev->id_driver == &siodriver && xdev->id_enabled)
+				outb(xdev->id_iobase + com_mcr, 0);
 #if NCRD > 0
 /*
  *	If PC-Card probe required, then register driver with

-- 
cheers, J"org

joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)