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