From owner-freebsd-current@FreeBSD.ORG Mon Apr 11 08:30:14 2005 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2DB3716A4CE for ; Mon, 11 Apr 2005 08:30:14 +0000 (GMT) Received: from mail05.syd.optusnet.com.au (mail05.syd.optusnet.com.au [211.29.132.186]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3FD1743D45 for ; Mon, 11 Apr 2005 08:30:13 +0000 (GMT) (envelope-from PeterJeremy@optushome.com.au) Received: from cirb503493.alcatel.com.au (c211-30-75-229.belrs2.nsw.optusnet.com.au [211.30.75.229]) j3B8U7AG009478 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); Mon, 11 Apr 2005 18:30:07 +1000 Received: from cirb503493.alcatel.com.au (localhost.alcatel.com.au [127.0.0.1])j3B8U67l097817; Mon, 11 Apr 2005 18:30:06 +1000 (EST) (envelope-from pjeremy@cirb503493.alcatel.com.au) Received: (from pjeremy@localhost)j3B8U6nu097816; Mon, 11 Apr 2005 18:30:06 +1000 (EST) (envelope-from pjeremy) Date: Mon, 11 Apr 2005 18:30:06 +1000 From: Peter Jeremy To: Matthew Dillon Message-ID: <20050411083006.GJ89047@cirb503493.alcatel.com.au> References: <20050406233405.O47071@carver.gumbysoft.com> <200504081656.51917.jhb@FreeBSD.org> <20050410152946.W82708@carver.gumbysoft.com> <20050410172818.D82708@carver.gumbysoft.com> <200504110231.j3B2VOYr047361@apollo.backplane.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200504110231.j3B2VOYr047361@apollo.backplane.com> User-Agent: Mutt/1.4.2i cc: freebsd-current@freebsd.org Subject: Re: Potential source of interrupt aliasing X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Apr 2005 08:30:14 -0000 On Sun, 2005-Apr-10 19:31:24 -0700, Matthew Dillon wrote: > The only way for an operating system to figure this stuff out on its > own is to understand the umpteen different bridge chips out there, > test physical interrupt sources (which is not always possible) to see > how they are actually routed, and ignore the BIOS completely. ISTR the old ISA probes for things like sio would raise an interrupt in the 16[45]50 and see what IRQ appeared. Given a plethora of bridges, this becomes more difficult if you can't trust that the BIOS has done anything right (like even routing the interrupt from source to an upstream interrupt controller). Presumably, these motherboards run Winbloze. And I understand that Winbloze uses interrupts, so presumably interrupt routing stuffups will break Winbloze just as badly as *BSD or Linux. What is Winbloze doing differently to work around broken BIOSes? > Intel really screwed up big time. Motorola had a much, much, MUCH > better mechanism where the actual devices generated the actual vector > number on the interrupt bus and the only thing you might have hardwired > would have been the IPL. But Intel doesn't work that way. Their stuff > is just totally screwed when it comes to handling interrupts. It's > completely 100% guarenteed pungent crapola to anyone who has ever > built hardware with a *REAL* interrupt subsystem. I'm as big a fan of Intel as you are but I don't think the problem here is Intel. I do agree that interrupt handling in the PC is stuffed - designing active-high interrupts using hardware that would automatically support wired-or of active-low interrupts suggests that someone in IBM had either done their tie up far too tight or had been over-indulging in recreational substances. Both the 8080 and 8085 supported vectored interrupts to a limited extent. The 6800 and 6809 don't support vectored interrupts. The Z-80, 68000 and 8086 all fully support vectored interrupts. But the Z-80 and 68000 both need the designer to (exclusively) use the Z-80 or 68000 peripheral chips in order to take advantage of their vectored interrupts. Using a separate interrupt controller means that you can use bog-standard peripherals that just have INTR outputs. It's a pity that the modern PC is hamstrung by design decisions made over 25 years ago. -- Peter Jeremy