From owner-freebsd-hardware Thu Jul 18 10:48:14 1996 Return-Path: owner-hardware Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id KAA05135 for hardware-outgoing; Thu, 18 Jul 1996 10:48:14 -0700 (PDT) Received: from Sisyphos (Sisyphos.MI.Uni-Koeln.DE [134.95.212.10]) by freefall.freebsd.org (8.7.5/8.7.3) with SMTP id KAA05128 for ; Thu, 18 Jul 1996 10:48:08 -0700 (PDT) Received: from x14.mi.uni-koeln.de (annexr2-49.slip.Uni-Koeln.DE) by Sisyphos with SMTP id AA14705 (5.67b/IDA-1.5 for ); Thu, 18 Jul 1996 19:47:45 +0200 Received: (from se@localhost) by x14.mi.uni-koeln.de (8.7.5/8.6.9) id TAA00328; Thu, 18 Jul 1996 19:47:31 +0200 (MET DST) Date: Thu, 18 Jul 1996 19:47:31 +0200 (MET DST) Message-Id: <199607181747.TAA00328@x14.mi.uni-koeln.de> From: Stefan Esser To: Kees.Koster@nym.sc.philips.com Cc: freebsd-hardware@freebsd.org Subject: Re: SOYO SY-30F2 blues In-Reply-To: <3EC09A1000B@NLNMG01.nym.sc.philips.com> References: <3EC09A1000B@NLNMG01.nym.sc.philips.com> Sender: owner-hardware@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Kees Jan Koster writes: > > > > boot -v reveals that both the SCSI and the VGA card use int# a. and > > > > occupy the same memory address. This is regardless of the settings I > > > > do in the bios (Award modular bios). It is not a problem that both cards use Int A, since this may be a different interrupt line for each PCI slot, and there is not even an IRQ assigned in your case ... The overlapping memory mappings are a totally different issue, I agree ... > > > It sounds like maybe the bios on the VGA card or the motherboard bios > > > are not doing the right thing with respect to memory space assignment. > > > Yes, that was my thought too. Any idea how to cure this? I looked > into /sys/pci/pci.c, but I could not figure out if it was possible to > make FreeBSD do the memory allocation, or manually setting the pci > parameters, such as int# and memory base. Could someone inform me > about this, please? Is it possible to manually configure pci devices? > There seems to be a pci_alloc() function, but the comment claims it's > not complete nor tested. That's scary :-( Would it make a difference > if I await the 2.1.5-release cdrom? No, it won't, for sure ! Short answer: Try to get a PCI BIOS update for your motherboard. The current version is buggy if it assigns the same mappings to different devices! The code in pci_alloc() will never be implemented, since it was meant to provide a workaround for systems with buggy PCI BIOS implementations, but all currently sold systems do this better than a PCI driver possibly could :) The problem is, that the BIOS has knowledge about certain PCI cards, which can't easily be duplicated in the FreeBSD PCI driver, and does know the PCI Int to ISA IRQ routing hardware, which has to be setup to match the IRQs used. While PCI supports interrupt sharing, and the code in FreeBSD does as well, the IRQ mapping will never have to be changed. The originally planned (re)assignment of mappings has been dropped, because the most likely need for it arises in old systems that didn't know about PCI to PCI bridges (as found on the Adaptec 3940 or on 4 channel Ethernet cards, for example). But since the IRQ routing hardware has to be set accordingly, and that can't be done in a hardware independent way on all (including OLD systems), there is no way to use such a card. Sorry, but there is hardly any generic way to solve your problem in a device driver. I can send you a fix, which will modify the NCR address to any value you choose, but you will have to compile that address into your kernel, which precludes its use on other FreeBSD systems. (Ok. I can make it dependent on the specific characteristics of your system, but there will never be an official version that includes that patch.) Regards, STefan