mlan at cpu.lu
Fri Sep 10 04:14:48 EST 1999
On 10 Sep, this message from Ryuichi Oikawa echoed through cyberspace:
> I've tried Adaptec PowerDomain 3094UWD, dual channel UW SCSI card
> with PCI-PCI bridge and two SCSI controllers under the bridge,
> and I noticed driver related and OF related problems.
> First I tried vger 2.2.12 kernel that caused machine check exception
> at first IO write transaction. I thought that this was normal because
> OF didn't properly set up P2P bridge's IO forwarding window.
> The real problem was this part(aic7xxx.c):
> #ifdef MMAPIO
> if ( !(temp_p->flags & AHC_MULTI_CHANNEL) ||
> ((temp_p->chip != (AHC_AIC7870 | AHC_PCI)) &&
> (temp_p->chip != (AHC_AIC7880 | AHC_PCI))) )
> ...... select MMIO and does ioremap ....
> ...... if it fails select normal IO ....
> that rejected my SCSI card from MMIO forcing normal IO resulting in machin
> check. So I had to ignore this statement by #if !defined(__powerpc__) ...
> #endif statement.
> Does anyone know what is this restriction for?
I could imagine that certain Adaptec SCSI chips use a regular PCI
memory region for their registers, while others use a PCI I/O region.
There are chances that the PCI I/O region is not enabled on your board,
and therefore accessing it results in a machine check.
Can you send me the output of lspci -vv, preferably once without the
aic7xxx driver in the kernel, and once with your fixes?
> After that aic7xxx.c properly detected two SCSI chips but entered in a
> timeout/resetting loop:-( Apparently interrupts weren't fixed-up by
IRQs do get fixed, even on devices behind P2P bridges... iff OF did
assing IRQs, that is, as you found below.
> So I scanned OF searching for correnct IRQ number and
> found it at AAPL,interrupts field of P2P bridge. SCSI controllers didn't
> have any AAPL,interrupts of course. It seems OF inserts AAPL,interrupts
> only at the top node of the slot when it detects a card in the physical
> slot. Therefore I had to change arch/ppc/kernel/prom.c as
Your fix looks OK to me; on PowerMacs, all PCI devices in any one slot
share the same interrupt, as the four PCI interrupt pins are OR'ed
together per slot.
> I don't know if it is OF(PowerMac8500, OF 1.0.5) version specific,
> or SCSI card specific, or PowerMac OF nature. Any ideas?
Either OF-specific in general, or one of the many bugs in OF 1.0.5.
Anyway, as I said, your patch wouldn't break anything, even if OF did
assign IRQs already.
Michel Lanners | " Read Philosophy. Study Art.
23, Rue Paul Henkes | Ask Questions. Make Mistakes.
L-1710 Luxembourg |
email mlan at cpu.lu |
http://www.cpu.lu/~mlan | Learn Always. "
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-dev