linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Kishon Vijay Abraham I <kishon@ti.com>
Cc: Tom Joseph <tjoseph@cadence.com>,
	Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
	Andrew Murray <amurray@thegoodpenguin.co.uk>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Mark Rutland <mark.rutland@arm.com>,
	linux-pci@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/3] dt-bindings: PCI: cadence: Deprecate inbound/outbound specific bindings
Date: Tue, 31 Mar 2020 10:45:29 -0600	[thread overview]
Message-ID: <20200331164529.GA32149@bogus> (raw)
In-Reply-To: <2a18a228-9248-24a8-c9cd-a041c62aa381@ti.com>

On Tue, Mar 31, 2020 at 09:08:12AM +0530, Kishon Vijay Abraham I wrote:
> Hi Rob,
> 
> On 3/30/2020 9:31 PM, Rob Herring wrote:
> > On Fri, Mar 27, 2020 at 04:17:25PM +0530, Kishon Vijay Abraham I wrote:
> >> Deprecate cdns,max-outbound-regions and cdns,no-bar-match-nbits for
> >> host mode as both these could be derived from "ranges" and "dma-ranges"
> >> property. "cdns,max-outbound-regions" property would still be required
> >> for EP mode.
> >>
> >> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
> >> ---
> >>  .../bindings/pci/cdns,cdns-pcie-ep.yaml       |  2 +-
> >>  .../bindings/pci/cdns,cdns-pcie-host.yaml     |  3 +--
> >>  .../devicetree/bindings/pci/cdns-pcie-ep.yaml | 25 +++++++++++++++++++
> >>  .../bindings/pci/cdns-pcie-host.yaml          | 10 ++++++++
> >>  .../devicetree/bindings/pci/cdns-pcie.yaml    |  8 ------
> >>  5 files changed, 37 insertions(+), 11 deletions(-)
> >>  create mode 100644 Documentation/devicetree/bindings/pci/cdns-pcie-ep.yaml
> >>
> >> diff --git a/Documentation/devicetree/bindings/pci/cdns,cdns-pcie-ep.yaml b/Documentation/devicetree/bindings/pci/cdns,cdns-pcie-ep.yaml
> >> index 2996f8d4777c..50ce5d79d2c7 100644
> >> --- a/Documentation/devicetree/bindings/pci/cdns,cdns-pcie-ep.yaml
> >> +++ b/Documentation/devicetree/bindings/pci/cdns,cdns-pcie-ep.yaml
> >> @@ -10,7 +10,7 @@ maintainers:
> >>    - Tom Joseph <tjoseph@cadence.com>
> >>  
> >>  allOf:
> >> -  - $ref: "cdns-pcie.yaml#"
> >> +  - $ref: "cdns-pcie-ep.yaml#"
> >>    - $ref: "pci-ep.yaml#"
> >>  
> >>  properties:
> >> diff --git a/Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.yaml b/Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.yaml
> >> index cabbe46ff578..84a8f095d031 100644
> >> --- a/Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.yaml
> >> +++ b/Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.yaml
> >> @@ -45,8 +45,6 @@ examples:
> >>              #size-cells = <2>;
> >>              bus-range = <0x0 0xff>;
> >>              linux,pci-domain = <0>;
> >> -            cdns,max-outbound-regions = <16>;
> >> -            cdns,no-bar-match-nbits = <32>;
> >>              vendor-id = <0x17cd>;
> >>              device-id = <0x0200>;
> >>  
> >> @@ -57,6 +55,7 @@ examples:
> >>  
> >>              ranges = <0x02000000 0x0 0x42000000  0x0 0x42000000  0x0 0x1000000>,
> >>                       <0x01000000 0x0 0x43000000  0x0 0x43000000  0x0 0x0010000>;
> >> +            dma-ranges = <0x02000000 0x0 0x0 0x0 0x0 0x1 0x00000000>;
> >>  
> >>              #interrupt-cells = <0x1>;
> >>  
> >> diff --git a/Documentation/devicetree/bindings/pci/cdns-pcie-ep.yaml b/Documentation/devicetree/bindings/pci/cdns-pcie-ep.yaml
> >> new file mode 100644
> >> index 000000000000..6150a7a7bdbf
> >> --- /dev/null
> >> +++ b/Documentation/devicetree/bindings/pci/cdns-pcie-ep.yaml
> >> @@ -0,0 +1,25 @@
> >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> >> +%YAML 1.2
> >> +---
> >> +$id: "http://devicetree.org/schemas/pci/cdns-pcie-ep.yaml#"
> >> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> >> +
> >> +title: Cadence PCIe Device
> >> +
> >> +maintainers:
> >> +  - Tom Joseph <tjoseph@cadence.com>
> >> +
> >> +allOf:
> >> +  - $ref: "cdns-pcie.yaml#"
> >> +
> >> +properties:
> >> +  cdns,max-outbound-regions:
> >> +    description: maximum number of outbound regions
> >> +    allOf:
> >> +      - $ref: /schemas/types.yaml#/definitions/uint32
> >> +    minimum: 1
> >> +    maximum: 32
> >> +    default: 32
> > 
> > I have a feeling that as the PCI endpoint binding evolves this won't be 
> > necessary. I can see a common need to define the number of BARs for an 
> > endpoint and then this will again just be error checking.
> 
> For every buffer given by the host, we have to create a new outbound
> translation. If there are no outbound regions, we have to report the error to
> the endpoint function driver. At-least for reporting the error, we'd need to
> have this binding no?

But isn't the endpoint defined to have some number of BARs? The PCI host 
doesn't decide that.

> > 
> > What's the result if you write to a non-existent region in register 
> > CDNS_PCIE_AT_OB_REGION_PCI_ADDR0/1? If the register is non-existent and 
> > doesn't abort, you could detect this instead.
> 
> I'm not sure if we should ever try to write to a non-existent register though
> the behavior could be different in different platforms. IMHO maximum number of
> outbound regions is a HW property and is best described in device tree.

AIUI, PCI defines non-existent (config space) registers to return all 
1s. Not sure if this register is in PCI config space or the host SoC bus 
(e.g. AXI). It seems PCI bridges get done both ways from what I've seen.

Rob

  reply	other threads:[~2020-03-31 16:45 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-27 10:47 [PATCH 0/3] PCI: cadence: Deprecate inbound/outbound specific bindings Kishon Vijay Abraham I
2020-03-27 10:47 ` [PATCH 1/3] dt-bindings: " Kishon Vijay Abraham I
2020-03-30 16:01   ` Rob Herring
2020-03-31  3:38     ` Kishon Vijay Abraham I
2020-03-31 16:45       ` Rob Herring [this message]
2020-04-01  3:08         ` Kishon Vijay Abraham I
2020-04-03  5:42           ` Kishon Vijay Abraham I
2020-04-10 16:38   ` Rob Herring
2020-04-11  2:21     ` Kishon Vijay Abraham I
2020-03-27 10:47 ` [PATCH 2/3] PCI: cadence: Use "dma-ranges" instead of "cdns,no-bar-match-nbits" property Kishon Vijay Abraham I
2020-03-27 14:52   ` Bjorn Helgaas
2020-03-27 10:47 ` [PATCH 3/3] PCI: Cadence: Remove using "cdns,max-outbound-regions" DT property Kishon Vijay Abraham I
2020-03-27 14:54   ` Bjorn Helgaas
2020-03-27 15:27     ` Kishon Vijay Abraham I

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=20200331164529.GA32149@bogus \
    --to=robh@kernel.org \
    --cc=amurray@thegoodpenguin.co.uk \
    --cc=bhelgaas@google.com \
    --cc=devicetree@vger.kernel.org \
    --cc=kishon@ti.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=mark.rutland@arm.com \
    --cc=tjoseph@cadence.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).