From owner-freebsd-hackers Fri Apr 11 11:01:33 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id LAA07147 for hackers-outgoing; Fri, 11 Apr 1997 11:01:33 -0700 (PDT) Received: from phaeton.artisoft.com (phaeton.Artisoft.COM [198.17.250.50]) by freefall.freebsd.org (8.8.5/8.8.5) with SMTP id LAA07131 for ; Fri, 11 Apr 1997 11:01:24 -0700 (PDT) Received: (from terry@localhost) by phaeton.artisoft.com (8.6.11/8.6.9) id KAA11690; Fri, 11 Apr 1997 10:41:22 -0700 From: Terry Lambert Message-Id: <199704111741.KAA11690@phaeton.artisoft.com> Subject: Re: Solved problem with com ports & Mach64. To: kta@alien.ru (Tatiana Kichkaylo) Date: Fri, 11 Apr 1997 10:41:22 -0700 (MST) Cc: hackers@FreeBSD.ORG In-Reply-To: <199704100450.LAA23340@robin.alien.ru> from "Tatiana Kichkaylo" at Apr 10, 97 10:23:08 am X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk > It's 1997 now, and I think I'm not the first with this problem, but... > > >Environment: > > Release: FreeBSD 2.1-STABLE i386 from Walnut Creec CDROM, Jan 1996 > Intel motherboard with chipset Triton rev 2 and on-board video Mach64. > Only com1 & com2 present. Address space of com3 & com4 is used by video > card. Actually, the standard for the interface implemented by the Mach32 and Mach64 chips require that they ignore the ports unless they are selected into a graphic mode that uses them. The implementation is buggy. > >Description: > > In boot time, when a kernel probes sio, monitor falls into green mode. > Reason: in /usr/src/sys/i386/isa/sio.c in function sioprobe kernel writes > into all likely_com_ports, while some of them are video ports now. Yes, this is a destructive probe. > >How-To-Repeat: > > Boot from any kernel with any sio turned on. With all of com ports turned > off booting is Ok. > > >Fix: > > With /usr/src/sys/i386/isa/sio.c > > 341a342 > > #if NSIO>2 > 342a344,346 > > #else > > static Port_t likely_com_ports[] = { 0x3f8, 0x2f8, }; > > #endif > > I've just decreased the length of this array for sioprobe > (and other functions) never writes to my video ports. This was discussed on -current under the name "Mach32". The typical "fix" is to turn off the ports until you can rebuild a kernel that options out COM4: (you can leave the COM3: probe in; it won't upset the chips). The actual fix is to go to the ATI WWW site and download the Mach32 assembly language detection code, and incorporate the detection as a negative probe for COM4:. I actually posted the ATI code in the previous discussion of the problem. Regards, Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.