Thread (9 messages) 9 messages, 3 authors, 2007-07-06

Re: PCI IO range limitation

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2007-06-28 17:44:00

On Thu, 2007-06-28 at 12:20 +0200, Marian Balakowicz wrote:
Hi,

Trying to change PCI IO window base for 52xx target I found that
we are pretty much limited to a "0" offset only.

pci_process_bridge_OF_ranges() will not process any IO range that has
addresses set to anything else.

956:      case 1:         /* I/O space */
957:               if (ranges[2] != 0)
958:                       break;

When this range[2] checking is removed from
pci_process_bridge_OF_ranges() kernel boots ok with the non-zero PCI IO
base, but the PCI device I am using (e100) will not work.

I guess that with the above dropping of non-zero based PCI IO ranges
this is not supposed to be working. But does anyone know why?
We just fixed that for 64 bits but 32 bits still has the limitation.
Note that it's not a very good idea to have your IO range at !0 if
you're going to use anything ISA-like, such as a VGA video card or other
legacy devices behind a PCI southbridge or SuperIO.

Ben.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help