Subject: ip27 PCI devices

From: Paul Chapman <[email-masked]>
Date: Mon, 11 Apr 2005 16:30:22 -0400

Hello,

I've been experimenting with trying various PCI cards I have lying
around in my Origin 200, to see if I can make any of them work.

So far, I've had no luck: all of them have resource collisions with the
IOC3 (presumably because of its address decoding).  They're detected
fine in /proc/pci.

So: has anyone had any luck with anything they've tried?  In particular,
I'm looking for an ethernet card that works (and is readily available),
since the performance of the IOC3 is pretty wretched.

Thanks,
Paul Chapman

---

From: Ralf Baechle <[email-masked]>
Date: Tue, 12 Apr 2005 11:58:15 +0100

> around in my Origin 200, to see if I can make any of them work.

The current Linux implementation limits IP27 to cards with 64-bit
addressing capability.

> IOC3 (presumably because of its address decoding).  They're detected

What kernel version are you trying?

> since the performance of the IOC3 is pretty wretched.

That actually also seems to be more of a limitation of how the IP27 code
is setting up RRBs for PCI devices, so any driver is expected to deliver
a somewhat modest (understatement!) performance.  Fixing fortunately isn't
too hard ...

  Ralf

---

From: "Maciej W. Rozycki" <[email-masked]>
Date: Tue, 12 Apr 2005 12:18:15 +0100 (BST)

> The current Linux implementation limits IP27 to cards with 64-bit

 Do we have a problem with our implementation of PCI DMA masks or is the 
low 4GB of PCI address space already consumed on this system?  The problem 
is most 32-bit PCI cards unfortunately do not support DAC.

  Maciej

---

From: Ralf Baechle <[email-masked]>
Date: Tue, 12 Apr 2005 12:42:52 +0100

> is most 32-bit PCI cards unfortunately do not support DAC.

32-bit devices can only address a tiny fraction of the address space on
IP27.  To make matters more interesting, there is no memory at all in the
low 4GB of the crosstalk address space,  so 32-bit PCI has to rely on the
yet non-existing support for the IOMMU.  SGI trying to save a little too
much money on the external SRAM for the IOMMU in the Origin 200 finally
made it a hard to use in an OS, deadlock prone thing.

  Ralf