Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1254338

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

From Bjorn Helgaas <helgaas@kernel.org>
Newsgroups linux.kernel
Subject Re: [PATCH v7 03/60] sparc/PCI: Unify pci_register_region()
Date 2015-10-23 07:40 +0200
Message-ID <qmDf4-pc-9@gated-at.bofh.it> (permalink)
References <qlNJy-Ca-59@gated-at.bofh.it> <qlRtL-69M-1@gated-at.bofh.it> <qm69s-2wo-29@gated-at.bofh.it> <qmcHU-3Ao-5@gated-at.bofh.it> <qmf33-76A-5@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Thu, Oct 22, 2015 at 02:47:42PM +1100, Benjamin Herrenschmidt wrote:
> On Wed, 2015-10-21 at 18:27 -0700, David Miller wrote:
> > From: Yinghai Lu <yinghai@kernel.org>
> > 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.

Lots of architectures do this, and the PCI core supports it by keeping
a list of all the host bridge windows.  Each entry has a struct
resource that contains the CPU address, as well as the offset from the
CPU address to the PCI address.  The arch or host bridge driver uses
pci_add_resource_offset() to tell the core about the window and the
offset.

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

Back to linux.kernel | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

Re: [PATCH v7 03/60] sparc/PCI: Unify pci_register_region() Bjorn Helgaas <helgaas@kernel.org> - 2015-10-21 00:00 +0200
  Re: [PATCH v7 03/60] sparc/PCI: Unify pci_register_region() Yinghai Lu <yinghai@kernel.org> - 2015-10-21 00:20 +0200
    Re: [PATCH v7 03/60] sparc/PCI: Unify pci_register_region() Yinghai Lu <yinghai@kernel.org> - 2015-10-21 00:40 +0200
      Re: [PATCH v7 03/60] sparc/PCI: Unify pci_register_region() Bjorn Helgaas <helgaas@kernel.org> - 2015-10-21 04:40 +0200
        Re: [PATCH v7 03/60] sparc/PCI: Unify pci_register_region() Yinghai Lu <yinghai@kernel.org> - 2015-10-21 20:20 +0200
          Re: [PATCH v7 03/60] sparc/PCI: Unify pci_register_region() Bjorn Helgaas <helgaas@kernel.org> - 2015-10-21 21:00 +0200
            Re: [PATCH v7 03/60] sparc/PCI: Unify pci_register_region() Yinghai Lu <yinghai@kernel.org> - 2015-10-22 00:40 +0200
              Re: [PATCH v7 03/60] sparc/PCI: Unify pci_register_region() Yinghai Lu <yinghai@kernel.org> - 2015-10-22 01:00 +0200
                Re: [PATCH v7 03/60] sparc/PCI: Unify pci_register_region() Yinghai Lu <yinghai@kernel.org> - 2015-10-22 03:20 +0200
                Re: [PATCH v7 03/60] sparc/PCI: Unify pci_register_region() Yinghai Lu <yinghai@kernel.org> - 2015-10-22 22:00 +0200
          Re: [PATCH v7 03/60] sparc/PCI: Unify pci_register_region() David Miller <davem@davemloft.net> - 2015-10-22 03:20 +0200
            Re: [PATCH v7 03/60] sparc/PCI: Unify pci_register_region() Benjamin Herrenschmidt <benh@kernel.crashing.org> - 2015-10-22 05:50 +0200
              Re: [PATCH v7 03/60] sparc/PCI: Unify pci_register_region() Bjorn Helgaas <helgaas@kernel.org> - 2015-10-23 07:40 +0200

csiph-web