From owner-freebsd-hackers Fri Feb 9 07:08:47 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id HAA14635 for hackers-outgoing; Fri, 9 Feb 1996 07:08:47 -0800 (PST) Received: from Sysiphos (Sysiphos.MI.Uni-Koeln.DE [134.95.212.10]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id HAA14624 for ; Fri, 9 Feb 1996 07:08:31 -0800 (PST) Received: by Sysiphos id AA07402 (5.67b/IDA-1.5 for hackers@freebsd.org); Fri, 9 Feb 1996 16:07:42 +0100 Message-Id: <199602091507.AA07402@Sysiphos> From: se@zpr.uni-koeln.de (Stefan Esser) Date: Fri, 9 Feb 1996 16:07:41 +0100 In-Reply-To: Luigi Rizzo "scanpci.c and pci-related stuff" (Feb 9, 13:17) X-Mailer: Mail User's Shell (7.2.6 alpha(2) 7/9/95) To: Luigi Rizzo Subject: Re: scanpci.c and pci-related stuff Cc: hackers@freebsd.org Sender: owner-hackers@freebsd.org Precedence: bulk On Feb 9, 13:17, Luigi Rizzo wrote: } Subject: scanpci.c and pci-related stuff } I noticed in /usr/X11R6/bin a program called scanpci which apparently } scans the pci bus looking for devices. } } The source is deep into the XF86 source tree, } } /usr/src/X11R6/xc/programs/Xserver/hw/xfree86/etc/scanpci.c } } and apparently compiles easily. I find it useful, and although it } has some funny imprecisions (it detects the SAA 7116 by Philips as } an "Intel SAA7116") I believe it is a nice tool for scanning system } configurations. Scanning the PCI bus is quite simple, if you know which configuration mode (1 or 2) to use and have access to I/O ports (i.e. it maust be a setuid ROOT program). } How about contacting the author Robin Cutshaw (robin@xfree86.org) } to see if it can be included in /sbin ? The source (which I will } be glad to post if needed, it's about 30KB) have a berkeley-like } copyright, so that should not be much of a problem. There is code in the PCI sources, that prints out a lot of information about PCI chip sets (boot with -v, if you got some kind of Intel chip set). But it surely is useful to have a user land tool to do the scan. } And, one thing I would like to know, is if there exist any program to } reconfigure a peripheral on the PCI bus. What do you mean with "reconfigure" ??? The PCI bus is designed to be configured by the BIOS, and you can query the values choosen (memory, port and IRQ mappings, which possibly have resulted in chip set registers being set accordingly) but you can't easily modify them. If an interrupt has been assigned to some PCI chip, for example, then the chip set has set up a connection from the PCI IntA line to some IRQ input of the system interrupt controller (in the simplest case). You can change this value without knowing the details of the chip set. There are now PCI BIOS calls that ought to allow such an assignment to be done from user code, but I'd rather not rely on it, since I doubt the functionality is working in more than 5% of the PCI systems currently in use ... Similar problems exist with I/O and memory mappings. There might be hardware limitations which are known to the PCI BIOS (e.g. only accesses to the address range 1GB to 2GB are routed to the PCI bus at all). } I believe I have a broken BIOS on one of our motherboards which } incorrectly assigns the same interrupt to two boards. I'd like to } override this somehow. And I would also like to avoid using INT10 on } the PCI bus, as many ISA board often use this interrupt line and they } cannot be configured on INT11, 12 or 13 The PCI BIOS is not necessarily broken, if it assigns one IRQ to multiple devices. Most motherboards sold until mid 1995 had the PCI IntA line of one slot connected to IntB of its neighbour, under the assumption, that devices that use IntB (multi-function devices or PCI to PCI bridges) aren't commonly used. Please describe the situation where the same IRQ was used for two PCI devices. PCI requires the hardware and software to deal with shared interrupts, and FreeBSD got a good implementation of the required software ... Regards, STefan -- Stefan Esser, Zentrum fuer Paralleles Rechnen Tel: +49 221 4706021 Universitaet zu Koeln, Weyertal 80, 50931 Koeln FAX: +49 221 4705160 ============================================================================== http://www.zpr.uni-koeln.de/~se