On Tue, Dec 11, 2007 at 11:27:24AM +1100, Benjamin Herrenschmidt wrote:
> > The GT-64111 system controller doesn't provide any kind of mapping
> > functionality that would help here. So legacy port addressing can only
> > work by exploiting aliases due to incomplete decoding of legacy ioport
> > addreses by the VT82C586 - but direct addressing is impossible.
>
> Ok, that explains how the "fix" that we reverted worked. It caused crap
> to be added to the top bits of the address :-)
>
> So here, what you really want to do is not a call to
> pcibios_resource_to_bus(), but you actually want to use a different bus
> address in the first place, that you know the HW will decode the same
> way.
>
> The best way to achieve that imho, is to do a header quirk that is run
> just after the generic probe code, which offsets the fixed legacy
> resources by 0x10000000 since that's really the bus address you are
> going to emit.
>
> Later on, your pcibios_fixup code should take that remove 0x10000000
> from all IO resources, since your 0xd0000000 mapping already maps
> 0x10000000 as you probably already do.
>
> The trick is, you don't want to convert a "resource" into a "bus
> address" here, but really issue a different bus address.
Oh well, I've cooked up a patch and posted it to linux-mips for testing.
Ralf
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]