Re: [PATCH v7 03/60] sparc/PCI: Unify pci_register_region()

From: Benjamin Herrenschmidt
Date: Wed Oct 21 2015 - 23:49:12 EST


On Wed, 2015-10-21 at 18:27 -0700, David Miller wrote:
> From: Yinghai Lu <yinghai@xxxxxxxxxx>
> Date: Wed, 21 Oct 2015 11:16:53 -0700
>
> > otherwise we need to compare res with pbm->mem_space or pbm
> ->mem64_space
> > to get direct parent for request_resource_conflict() calling in
> > pci_register_legacy_regions().
>
> Right, this is the issue.
>
> On sparc64, the cpu physical base address used for accessing 64-bit
> and non-64-bit memory spaces is different.
>
> And that's why the resource values will be different.

This is the same on power btw, we have separate PowerBus windows to the
PHB that get mapped respectively to 32-bit PCI MMIO and 64-bit PCI
MMIO. The former gets "remapped" to generates 0-based PCI cycles, while
the latter is 1:1. So the offset between CPU and PCI changes depending
on which window you hit.

Cheers,
Ben.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/