Subject: Re: Problems with Promise IDE controllers on NetBSD/alpha
To: Luke Mewburn <lukem@cs.rmit.edu.au>
From: Manuel Bouyer <bouyer@antioche.lip6.fr>
List: port-alpha
Date: 10/11/2000 20:29:09
On Wed, Oct 11, 2000 at 06:13:07PM +1100, Luke Mewburn wrote:
> I plugged a Promise UltraATA/100 card into my PC164 which has an NCR
> 53c810 SCSI controller & serial console (and has worked flawlessly for
> more than 12 months), and 1.5_ALPHA2 panics with:
> 
> 	pciide0 at pci0 dev 6 function 0: Promise Ultra100/ATA Bus Master IDE
> 	Accelerator (rev. 0x02)
> 	pciide0: bus-master DMA support present
> 	pciide0: primary channel configured to native-PCI mode
> 	pciide0: using eb164 irq 0 for native-PCI interrupt
> 
> 	unexpected machine check:
> 
> 	    mces    = 0x1
> 	    vector  = 0x660
> 	    param   = 0xfffffc0000006060
> 	    pc      = 0xfffffc00004c79f8
> 	    ra      = 0xfffffc000031dd64
> 	    curproc = 0xfffffc0000564830
> 		pid = 0, comm = swapper
> 
> 	panic: machine check
> 	Stopped in swapper at   cpu_Debugger+0x4:       ret     zero,(ra)

The problem is: the promise only supports I/O ranges from 0x0000 to 0x10000
(they just ignored the higther bits).
This is fine for a i386 but the PC164 SRM allocates I/O ranges over 0x10000
for PCI cards.

A patch has been posted to the list some time ago, which relocates the
I/O ports below 0x10000, but this is ugly: the patch doesn't check that
the I/O range is free.

--
Manuel Bouyer <bouyer@antioche.eu.org>
--