[3245] in linux-scsi channel archive

home help back first fref pref prev next nref lref last post

Re: more ncr53c875 driver troubles...

daemon@ATHENA.MIT.EDU (Gerard Roudier)
Fri Feb 6 22:31:51 1998

Date: 	Fri, 6 Feb 1998 23:04:44 +0100 (MET)
From: Gerard Roudier <groudier@club-internet.fr>
To: sage <sage@newdream.net>
cc: linux-scsi@vger.rutgers.edu
In-Reply-To: <34DA71B0.1CCB56DA@newdream.net>


On Thu, 5 Feb 1998, sage wrote:

> Heya,
> 
> It turns out the copy of the 2.0.33 kernel source didn't have the flag
> to enable the 53c8xx driver for some reason.  I got that compiled in and
> finding the card, but now it's having trouble fully initiallizing
> because it can't get it's own IRQ.. it invariably chooses the one that's
> already being used by the Adaptec 2940.

PCI device IRQ number assignment is performed by the PCI BIOS prior 
system boot-up. PCI device drivers must use IRQ numbers assigned 
by the PCI BIOS. They have no choice.

Since PCI interrupt lines use level sensitive drivers, IRQ number 
are shareable by PCI devices. So, the both devices shall be able to 
share the same IRQ under any serious O/S as recommended by PCI
specifications.

> I've played with the PCI BIOS settings, enabling Plug & Play and
> changing the IRQ search order, but none of this seems to have any effect
> (other than making both cards try to use a different IRQ).  I also tried
> disabling the shared irq feature in ncr53c8xx.h and passing the various
> ncr53c8xx=irqm:? flags to the kernel.

The way IRQ number are user-assignable depends on the setup program used 
by the mother board. I would be very surprised if your Mobo Setup would 
not allow you to assign different ISA IRQ to the 2 PCI boards.

Using the same IRQ for the both devices SHALL work. But, since sharing 
IRQ may have some performance impact, it is recommended not to share 
IRQs when there are enough free IRQs for each PCI device to use a 
private one.

'irqm' option has nothing to do with either IRQ sharing or assignment.
It allows the ncr53c8xx chips to use edge triggered interrupt line
drivers. It should only be used for old broken PCI motherboards that
didn't conform to PCI specifications with regard to PCI interrupt lines 
drivers. 

> Does anyone know how I might resolve this?  I didn't see anything in the
> README.ncr53c8xx file or on usenet that seemed applicable.
> 
> Here's what i get when i boot (this was after i disabled the shared irq
> feature in the source, but was almost exactly the same before that as
> well):

In order for an IRQ to be shared by 2 PCI devices, both drivers shall
allow the other driver to share IRQs. So, you just hacked a driver that 
was very probably right on IRQ sharing.

> aic7xxx: <Adaptec AHA-294X SCSI host adapter> at PCI 16
> aic7xxx: Warning - detected auto-termination.  Please verify driver
>          detected settings and use manual termination if necessary.
> aic7xxx: BIOS enabled, IO Port 0xec00, IO Mem 0xffadf000, IRQ 10,
> Revision B
> aic7xxx: Single Channel, SCSI ID 7, 16/16 SCBs, QFull 16, QMask 0x1f
> ncr53c8xx: at PCI bus 0, device 12, function 0
> ncr53c8xx: 53c875 detected 
> ncr53c875-0: rev=0x03, base=0xffadef00, io_port=0xe800, irq=10
> ncr53c875-0: ID 7, Fast-20, Parity Checking
> ncr53c875-0: on-board RAM at 0xffadd000
> ncr53c875-0: request irq 10 failure
> ncr53c875-0: detaching...
> scsi0 : Adaptec AHA274x/284x/294x (EISA/VLB/PCI-Fast SCSI) 4.1.1/3.2.1
> scsi : 1 host.


Regards, Gerard.


home help back first fref pref prev next nref lref last post