[OpenBIOS] [PATCH] PowerPC: Fix PCI I/O ports allocation
Aurelien Jarno
aurelien at aurel32.net
Fri Jan 16 21:03:05 CET 2009
On Fri, Jan 16, 2009 at 03:05:30AM +0100, Aurelien Jarno wrote:
> Long story, small patch...
>
> On the PowerPC target, the PCI devices using I/O ports are currently not
> working correctly with a relatively old kernel (<= 2.6.24). This is due
> to the assignation of I/O port 0, while the I/O ports start at 1, which
> keeps the device disabled. Recent version of Linux assign resources to
> those devices, that's why the problem wasn't present on those versions.
>
> Moreover the QEMU OldWorld machine have a few devices mapped on fixed
> I/O ports, that should be skipped when assigning I/O ports to PCI
> devices. Those devices are:
> - video card (0x3c0-0x3cf, 0x3b4-0x3b5, 0x3ba, 0x1ce-0x1cf, 0x1d0-0x1d1)
> - i8259 (0x20-0x21, 0xa0-0x1a, 0x4d0-0x4d1)
> - m48t59 (0x74-0x79)
> - OpenBIOS debug port (0xf00-0xf03)
I have removed the firmware debug and the i8259 from the current SVN.
> Given that ranges, I have decided to start mapping PCI I/O ports at
> 0x1000. Note that real G3 beige starts to map them at 0x400. This can be
> changed later, when we get rid of the i8259 and m48t59 and if we move
> the OpenBIOS debug port.
We can now move the start of the mapping to 0x400.
> I have done this change unconditionally because Sparc also have the
> problem, though the first I/O port can be chosen differently.
>
> Index: drivers/pci.c
> ===================================================================
> --- drivers/pci.c (révision 411)
> +++ drivers/pci.c (copie de travail)
> @@ -760,7 +760,8 @@
> /* Find all PCI bridges */
>
> mem_base = arch->mem_base;
> - io_base = arch->io_base;
> + /* I/O ports under 0x1000 are used by devices mapped at fixed location. */
> + io_base = arch->io_base + 0x1000;
> path = strdup("");
> for (bus = 0; bus<0x100; bus++) {
> ob_scan_pci_bus(bus, &mem_base, &io_base, &path);
>
> --
> .''`. Aurelien Jarno | GPG: 1024D/F1BCDB73
> : :' : Debian developer | Electrical Engineer
> `. `' aurel32 at debian.org | aurelien at aurel32.net
> `- people.debian.org/~aurel32 | www.aurel32.net
>
> --
> OpenBIOS http://openbios.org/
> Mailinglist: http://lists.openbios.org/mailman/listinfo
> Free your System - May the Forth be with you
>
--
.''`. Aurelien Jarno | GPG: 1024D/F1BCDB73
: :' : Debian developer | Electrical Engineer
`. `' aurel32 at debian.org | aurelien at aurel32.net
`- people.debian.org/~aurel32 | www.aurel32.net
More information about the OpenBIOS
mailing list