From owner-freebsd-hackers Wed Jan 3 10:50:54 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id KAA00190 for hackers-outgoing; Wed, 3 Jan 1996 10:50:54 -0800 (PST) Received: from sl-007.sl.cybercomm.net (sl-007.sl.cybercomm.net [199.171.196.135]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id KAA00177 for ; Wed, 3 Jan 1996 10:50:49 -0800 (PST) Received: from sl-007.sl.cybercomm.net (localhost [127.0.0.1]) by sl-007.sl.cybercomm.net (8.6.12/8.6.12) with SMTP id NAA04479; Wed, 3 Jan 1996 13:50:03 -0500 Date: Wed, 3 Jan 1996 13:49:57 -0500 (EST) From: Sujal Patel X-Sender: smpatel@sl-000.sl.cybercomm.net To: Luigi Rizzo cc: freebsd-hackers@FreeBSD.ORG Subject: Re: FreeDetect & Plug n Play In-Reply-To: <199601031448.PAA22549@labinfo.iet.unipi.it> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-hackers@FreeBSD.ORG Precedence: bulk On Wed, 3 Jan 1996, Luigi Rizzo wrote: > Basically (details may be incorrect), ISA PnP devices all listen > for writes on a couple of ports (one is the printer status, so that > nobody should write there). There the CPU issues commands that are > understood by PnP devices. Using some binary-search technique one > can disable all but one device, identify it, set its I/O address > and other stuff, and then continue with the next devices. The basic idea to configure a PnP device is to address each device one at a time. Here is a basic breakdown of how you would address a *single* PnP device. 1: Send a long sequence of predefined "stuff" to LPT2's Status Port to tell all PnP cards to go into `isolation mode'. 2: Find a port that is unused between 0x203-0x3ff 3: Run a the `isolation protocol' which iteratively isolates each card and assigns it a unique number (CSN). This basically relies on a unique serial number which is in every PnP device. This is outlined in all it's gory detail on Intel's web site, if anyone's interested. 4: Wake up each card (addressing it by it's unique CSN), look at it's configuration data, and configure it's resources. Sujal