PCI IO range limitation

Benjamin Herrenschmidt benh at kernel.crashing.org
Fri Jun 29 03:43:54 EST 2007


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.





More information about the Linuxppc-dev mailing list