From owner-freebsd-hackers Fri Feb 9 07:30:17 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id HAA16191 for hackers-outgoing; Fri, 9 Feb 1996 07:30:17 -0800 (PST) Received: from labinfo.iet.unipi.it (labinfo.iet.unipi.it [131.114.9.5]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id HAA16127 for ; Fri, 9 Feb 1996 07:29:47 -0800 (PST) Received: from localhost (luigi@localhost) by labinfo.iet.unipi.it (8.6.5/8.6.5) id QAA02610; Fri, 9 Feb 1996 16:30:13 +0100 From: Luigi Rizzo Message-Id: <199602091530.QAA02610@labinfo.iet.unipi.it> Subject: Re: scanpci.c and pci-related stuff To: se@zpr.uni-koeln.de (Stefan Esser) Date: Fri, 9 Feb 1996 16:30:12 +0100 (MET) Cc: hackers@freebsd.org In-Reply-To: <199602091507.AA07402@Sysiphos> from "Stefan Esser" at Feb 9, 96 04:07:22 pm X-Mailer: ELM [version 2.4 PL23] Content-Type: text Sender: owner-hackers@freebsd.org Precedence: bulk > 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 I guess you mean "cannot" > the details of the chip set. There are now > PCI BIOS calls that ought to allow such an >From the meteor.c driver : ... #ifdef METEOR_IRQ /* from the meteor.h file */ old_irq = pci_conf_read(tag, PCI_INTERRUPT_REG); pci_conf_write(tag, PCI_INTERRUPT_REG, METEOR_IRQ); new_irq = pci_conf_read(tag, PCI_INTERRUPT_REG); printf("meteor_attach: irq changed from %d to %d\n", (old_irq & 0xff), (new_irq & 0xff)); #endif METEOR_IRQ ... it looks like it is not that hard, if the above works. Note that I don't want to chang IRQ settings for an active board, just to remap the setting for a board which is not correctly recognised. It is intended as a fixit tool, "use at your own risk". > } 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. I have two identical PC-net PCI boards, plugged in adjacent slots. On one particular motherboard they are both configured with IRQ10, on a similar motherboard one gets IRQ10, the other IRQ11 Also, at times I'd like to free some specific IRQs. As an example: here I have a system with the following devices: sio0,1,2 (irq 3, 4, 5) lpt0 (irq7) ed0 (irq10, PCI) meteor (irq9,PCI) vga (irq11, PCI) and I'd like to put in a scanner (can use irq3,5,10) and an SB16. I must free irq10, and possibly irq9 as well. Luigi ==================================================================== Luigi Rizzo Dip. di Ingegneria dell'Informazione email: luigi@iet.unipi.it Universita' di Pisa tel: +39-50-568533 via Diotisalvi 2, 56126 PISA (Italy) fax: +39-50-568522 http://www.iet.unipi.it/~luigi/ ====================================================================