Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Thu, 14 Mar 2002 15:48:39 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Thu, 14 Mar 2002 15:48:17 -0500 Received: from [206.40.202.198] ([206.40.202.198]:65433 "EHLO scsoftware.sc-software.com") by vger.kernel.org with ESMTP id ; Thu, 14 Mar 2002 15:48:13 -0500 Date: Thu, 14 Mar 2002 12:43:44 -0800 (PST) From: John Heil To: Linus Torvalds cc: , Martin Wilck Subject: Re: IO delay, port 0x80, and BIOS POST codes In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 14 Mar 2002, Linus Torvalds wrote: > Date: Thu, 14 Mar 2002 19:23:20 +0000 (UTC) > From: Linus Torvalds > To: linux-kernel@vger.kernel.org > Subject: Re: IO delay, port 0x80, and BIOS POST codes > > In article , > Alan Cox wrote: > >> Unfortunately we can't read this information because Linux uses > >> port 80 as "dummy" port for delay operations. (outb_p and friends, > >> actually there seem to be a more hard-coded references to port > >> 0x80 in the code). > > > >The dummy port needs to exist. By using 0x80 we have probably the only > >port we can safely use in this way. We know it fouls old style POST > >boards on odd occasions. > > In fact, port 0x80 is safe exactly _because_ it is used for BIOS POST > codes, which pretty much guarantees that it will never be used for > anything else. That tends to not be as true of any other ports. > > Also, it should be noted that to get the 1us delay, the port should be > behind the ISA bridge in a legacy world (in a modern all-PCI system it > doesn't really matter, because the ports that need more delays are > faster too, so this works out ok). That's why I personally would be > nervous about using some of the well-specified (but irrelevant) ports > that are on the PCI side of a super-IO controller. > > I suspect the _real_ solution is to stop using "inb_p/outb_p" and make > the delay explicit, although it may be that some drivers depend on the > fact that not only is the "outb $0x80" a delay, it also tends to act as > a posting barrier. > > Linus No, the better/correct port is 0xED which removes the conflict. We've used 0xED w/o problem doing an embedded linux implementation at kernel 2.4.1, where SMM issues were involved. (It was recommended to me by an x-Phoenix BIOS developer, because of its safety as well as conflict resolution, Johnh - ----------------------------------------------------------------- John Heil South Coast Software Custom systems software for UNIX and IBM MVS mainframes 1-714-774-6952 johnhscs@sc-software.com http://www.sc-software.com ----------------------------------------------------------------- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/