Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Jul 1996 19:47:31 +0200 (MET DST)
From:      Stefan Esser <se@zpr.uni-koeln.de>
To:        Kees.Koster@nym.sc.philips.com
Cc:        freebsd-hardware@freebsd.org
Subject:   Re: SOYO SY-30F2 blues
Message-ID:  <199607181747.TAA00328@x14.mi.uni-koeln.de>
In-Reply-To: <3EC09A1000B@NLNMG01.nym.sc.philips.com>
References:  <3EC09A1000B@NLNMG01.nym.sc.philips.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199607181747.TAA00328>