From: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
To: Bjorn Helgaas <bhelgaas@google.com>
Cc: Srikanth Thokala <sthokal@xilinx.com>,
Arnd Bergmann <arnd@arndb.de>,
"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
Michal Simek <michal.simek@xilinx.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Rob Herring <robh+dt@kernel.org>,
Grant Likely <grant.likely@linaro.org>,
linux-arm <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH] pcie: Add Xilinx PCIe Host Bridge IP driver
Date: Tue, 18 Feb 2014 17:35:23 -0700 [thread overview]
Message-ID: <20140219003523.GJ29304@obsidianresearch.com> (raw)
In-Reply-To: <CAErSpo5FGPhgnp8Gfy-1_Lk7ckCi7U5+z5pLnPU+jScPxD5yUQ@mail.gmail.com>
On Tue, Feb 18, 2014 at 02:32:58PM -0700, Bjorn Helgaas wrote:
> [+cc Arnd]
>
> On Sun, Feb 16, 2014 at 8:33 AM, Srikanth Thokala <sthokal@xilinx.com> wrote:
> > This is the driver for Xilinx AXI PCIe Host Bridge Soft IP
> >
> > Signed-off-by: Srikanth Thokala <sthokal@xilinx.com>
> > - Rebased on v3.14.0-rc2
> > .../devicetree/bindings/pci/xilinx-pcie.txt | 43 +
> > drivers/pci/host/Kconfig | 7 +
> > drivers/pci/host/Makefile | 1 +
> > drivers/pci/host/pci-xilinx.c | 985 ++++++++++++++++++++
> > 4 files changed, 1036 insertions(+)
> > create mode 100644 Documentation/devicetree/bindings/pci/xilinx-pcie.txt
> > create mode 100644 drivers/pci/host/pci-xilinx.c
> >
> > diff --git a/Documentation/devicetree/bindings/pci/xilinx-pcie.txt b/Documentation/devicetree/bindings/pci/xilinx-pcie.txt
> > new file mode 100644
> > index 0000000..66a2487
> > +++ b/Documentation/devicetree/bindings/pci/xilinx-pcie.txt
> > @@ -0,0 +1,43 @@
> > +* Xilinx AXI PCIe Root Port Bridge DT description
> > +
> > +Required properties:
> > +- #address-cells: Address representation for root ports, set to <3>
> > +- #size-cells: Size representation for root ports, set to <2>
> > +- compatible: Should contain "xlnx,axi-pcie-1.00.a"
> > +- reg: Should contain AXI PCIe registers location and length
> > +- interrupts: Should contain AXI PCIe interrupt
> > +- ranges: ranges for the PCI memory regions
> > + Please refer to the standard PCI bus binding document for a more
> > + detailed explanation
> > +- xlnx,axibar-num: Number of memory regions configured in the hardware,
> > + maximum being three which is configurable in the hardware.
> > +- xlnx,include-rc: Root Port (=1) or End Point (=0)
> > +- xlnx,pciebar2axibar-0: Translation address from PCIe to AXI
> > + Only one PCIe BAR is applicable in Root port mode, it can be
> > + either 32/64-bit. If it is 64-bit BAR, lower 32 bits are present
> > + in 'xlnx,pciebar2axibar-0' and Upper 32 bits in 'xlnx,pciebar2
> > + axibar-1'. And if it is 32-bit BAR, only 'xlnx,pciebar2axibar-0'
> > + is valid
> > +
> > +Optional properties
> > +- xlnx,pciebar-as: PCIe BAR aperture size is 32 (=0) or 64-bit (=1).
> > +- xlnx,pciebar2axibar-1: Translation address from PCIe to AXI, contains
> > + upper 32 bits if PCIe BAR size is 64-bit. When xlnx,pciebar-as
> > + is set, this is a required property and should contain a valid
> > + value (other than FF's)
>
> I hardly know anything about DT, but xlnx,pciebar2axibar-0,
> xlnx,pciebar-as, and xlnx,pciebar2axibar-1 look strange to me. Is
> that really the DT way of dealing with 32/64-bit BARs and host bridge
> address translation? I don't see similar things in the other files in
> Documentation/devicetree/bindings/pci/, even though some of the other
> drivers/pci/host/*.c files do use pci_add_resource_offset(), which
> indicates that they support address translation.
I agree Bjorn.
These should use the standard ranges mechanism for translations and
apertures.
Also, IMHO, only root ports should be supported in a host bridge
driver. A PCI end point is something entirely different.
I think with those two observations all the xlnx properties should go
away.
Thanks,
Jason
WARNING: multiple messages have this Message-ID (diff)
From: jgunthorpe@obsidianresearch.com (Jason Gunthorpe)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] pcie: Add Xilinx PCIe Host Bridge IP driver
Date: Tue, 18 Feb 2014 17:35:23 -0700 [thread overview]
Message-ID: <20140219003523.GJ29304@obsidianresearch.com> (raw)
In-Reply-To: <CAErSpo5FGPhgnp8Gfy-1_Lk7ckCi7U5+z5pLnPU+jScPxD5yUQ@mail.gmail.com>
On Tue, Feb 18, 2014 at 02:32:58PM -0700, Bjorn Helgaas wrote:
> [+cc Arnd]
>
> On Sun, Feb 16, 2014 at 8:33 AM, Srikanth Thokala <sthokal@xilinx.com> wrote:
> > This is the driver for Xilinx AXI PCIe Host Bridge Soft IP
> >
> > Signed-off-by: Srikanth Thokala <sthokal@xilinx.com>
> > - Rebased on v3.14.0-rc2
> > .../devicetree/bindings/pci/xilinx-pcie.txt | 43 +
> > drivers/pci/host/Kconfig | 7 +
> > drivers/pci/host/Makefile | 1 +
> > drivers/pci/host/pci-xilinx.c | 985 ++++++++++++++++++++
> > 4 files changed, 1036 insertions(+)
> > create mode 100644 Documentation/devicetree/bindings/pci/xilinx-pcie.txt
> > create mode 100644 drivers/pci/host/pci-xilinx.c
> >
> > diff --git a/Documentation/devicetree/bindings/pci/xilinx-pcie.txt b/Documentation/devicetree/bindings/pci/xilinx-pcie.txt
> > new file mode 100644
> > index 0000000..66a2487
> > +++ b/Documentation/devicetree/bindings/pci/xilinx-pcie.txt
> > @@ -0,0 +1,43 @@
> > +* Xilinx AXI PCIe Root Port Bridge DT description
> > +
> > +Required properties:
> > +- #address-cells: Address representation for root ports, set to <3>
> > +- #size-cells: Size representation for root ports, set to <2>
> > +- compatible: Should contain "xlnx,axi-pcie-1.00.a"
> > +- reg: Should contain AXI PCIe registers location and length
> > +- interrupts: Should contain AXI PCIe interrupt
> > +- ranges: ranges for the PCI memory regions
> > + Please refer to the standard PCI bus binding document for a more
> > + detailed explanation
> > +- xlnx,axibar-num: Number of memory regions configured in the hardware,
> > + maximum being three which is configurable in the hardware.
> > +- xlnx,include-rc: Root Port (=1) or End Point (=0)
> > +- xlnx,pciebar2axibar-0: Translation address from PCIe to AXI
> > + Only one PCIe BAR is applicable in Root port mode, it can be
> > + either 32/64-bit. If it is 64-bit BAR, lower 32 bits are present
> > + in 'xlnx,pciebar2axibar-0' and Upper 32 bits in 'xlnx,pciebar2
> > + axibar-1'. And if it is 32-bit BAR, only 'xlnx,pciebar2axibar-0'
> > + is valid
> > +
> > +Optional properties
> > +- xlnx,pciebar-as: PCIe BAR aperture size is 32 (=0) or 64-bit (=1).
> > +- xlnx,pciebar2axibar-1: Translation address from PCIe to AXI, contains
> > + upper 32 bits if PCIe BAR size is 64-bit. When xlnx,pciebar-as
> > + is set, this is a required property and should contain a valid
> > + value (other than FF's)
>
> I hardly know anything about DT, but xlnx,pciebar2axibar-0,
> xlnx,pciebar-as, and xlnx,pciebar2axibar-1 look strange to me. Is
> that really the DT way of dealing with 32/64-bit BARs and host bridge
> address translation? I don't see similar things in the other files in
> Documentation/devicetree/bindings/pci/, even though some of the other
> drivers/pci/host/*.c files do use pci_add_resource_offset(), which
> indicates that they support address translation.
I agree Bjorn.
These should use the standard ranges mechanism for translations and
apertures.
Also, IMHO, only root ports should be supported in a host bridge
driver. A PCI end point is something entirely different.
I think with those two observations all the xlnx properties should go
away.
Thanks,
Jason
next prev parent reply other threads:[~2014-02-19 0:35 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-16 15:33 [PATCH] pcie: Add Xilinx PCIe Host Bridge IP driver Srikanth Thokala
2014-02-16 15:33 ` Srikanth Thokala
2014-02-18 21:32 ` Bjorn Helgaas
2014-02-18 21:32 ` Bjorn Helgaas
2014-02-19 0:35 ` Jason Gunthorpe [this message]
2014-02-19 0:35 ` Jason Gunthorpe
2014-02-20 7:09 ` Srikanth Thokala
2014-02-20 7:09 ` Srikanth Thokala
2014-02-20 17:45 ` Jason Gunthorpe
2014-02-20 17:45 ` Jason Gunthorpe
2014-02-21 14:48 ` Srikanth Thokala
2014-02-21 14:48 ` Srikanth Thokala
2014-02-21 16:28 ` Jason Gunthorpe
2014-02-21 16:28 ` Jason Gunthorpe
2014-02-25 12:27 ` Srikanth Thokala
2014-02-25 12:27 ` Srikanth Thokala
2014-02-19 8:54 ` Michal Simek
2014-02-19 8:54 ` Michal Simek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140219003523.GJ29304@obsidianresearch.com \
--to=jgunthorpe@obsidianresearch.com \
--cc=arnd@arndb.de \
--cc=bhelgaas@google.com \
--cc=grant.likely@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=michal.simek@xilinx.com \
--cc=robh+dt@kernel.org \
--cc=sthokal@xilinx.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.