linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kishon Vijay Abraham I <kishon@ti.com>
To: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
	Arnd Bergmann <arnd@arndb.de>, Jon Mason <jdmason@kudzu.us>,
	Dave Jiang <dave.jiang@intel.com>,
	Allen Hubbe <allenbh@gmail.com>, Tom Joseph <tjoseph@cadence.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Rob Herring <robh+dt@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jonathan Corbet <corbet@lwn.net>, <linux-pci@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<devicetree@vger.kernel.org>, <linux-ntb@googlegroups.com>
Subject: Re: [PATCH 01/19] dt-bindings: PCI: Endpoint: Add DT bindings for PCI EPF NTB Device
Date: Fri, 22 May 2020 11:23:46 +0530	[thread overview]
Message-ID: <73193475-5244-554d-df71-df600f70c0d9@ti.com> (raw)
In-Reply-To: <20200514145927.17555-2-kishon@ti.com>

Hi RobH,

On 5/14/2020 8:29 PM, Kishon Vijay Abraham I wrote:
> Add device tree schema for PCI endpoint function bus to which
> endpoint function devices should be attached. Then add device tree
> schema for PCI endpoint function device to include bindings thats
> generic to all endpoint functions. Finally add device tree schema
> for PCI endpoint NTB function device by including the generic
> device tree schema for PCIe endpoint function.
> 
> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
> ---
>  .../bindings/pci/endpoint/pci-epf-bus.yaml    | 42 +++++++++++
>  .../bindings/pci/endpoint/pci-epf-device.yaml | 69 +++++++++++++++++++
>  .../bindings/pci/endpoint/pci-epf-ntb.yaml    | 68 ++++++++++++++++++
>  3 files changed, 179 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/pci/endpoint/pci-epf-bus.yaml
>  create mode 100644 Documentation/devicetree/bindings/pci/endpoint/pci-epf-device.yaml
>  create mode 100644 Documentation/devicetree/bindings/pci/endpoint/pci-epf-ntb.yaml
> 
> diff --git a/Documentation/devicetree/bindings/pci/endpoint/pci-epf-bus.yaml b/Documentation/devicetree/bindings/pci/endpoint/pci-epf-bus.yaml
> new file mode 100644
> index 000000000000..1c504f2e85e4
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/pci/endpoint/pci-epf-bus.yaml
> @@ -0,0 +1,42 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +# Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com/
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/pci/endpoint/pci-epf-bus.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: PCI Endpoint Function Bus
> +
> +maintainers:
> +  - Kishon Vijay Abraham I <kishon@ti.com>
> +
> +properties:
> +  compatible:
> +    const: pci-epf-bus
> +
> +patternProperties:
> +  "^func@[0-9a-f]+$":
> +    type: object
> +    description: |
> +      PCI Endpoint Function Bus node should have subnodes for each of
> +      the implemented endpoint function. It should follow the bindings
> +      specified for endpoint function in
> +      Documentation/devicetree/bindings/pci/endpoint/
> +
> +examples:
> +  - |
> +    epf_bus {
> +      compatible = "pci-epf-bus";
> +
> +      func@0 {
> +        compatible = "pci-epf-ntb";
> +        epcs = <&pcie0_ep>, <&pcie1_ep>;
> +        epc-names = "primary", "secondary";
> +        reg = <0>;

I'm not sure how to represent "reg" property properly for cases like this where
it represents ID and not a memory resource. I seem to get warning for
"reg_format" even after adding address-cells and size-cells property in
epf_bus. Can you give some hints here please?

> +        epf,vendor-id = /bits/ 16 <0x104c>;

I want to make vendor-id and device-id as 16 bits from the beginning at-least
for PCIe endpoint. So I'm prefixing these properties with "epf,". However I get
this "do not match any of the regexes:". Can we add "epf" as a standard prefix?

Thanks
Kishon
> +        epf,device-id = /bits/ 16 <0xb00d>;
> +        num-mws = <4>;
> +        mws-size = <0x0 0x100000>, <0x0 0x100000>, <0x0 0x100000>, <0x0 0x100000>;
> +      };
> +    };
> +...
> diff --git a/Documentation/devicetree/bindings/pci/endpoint/pci-epf-device.yaml b/Documentation/devicetree/bindings/pci/endpoint/pci-epf-device.yaml
> new file mode 100644
> index 000000000000..cee72864c8ca
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/pci/endpoint/pci-epf-device.yaml
> @@ -0,0 +1,69 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +# Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com/
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/pci/endpoint/pci-epf-device.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: PCI Endpoint Function Device
> +
> +maintainers:
> +  - Kishon Vijay Abraham I <kishon@ti.com>
> +
> +properties:
> +  compatible:
> +    const: pci-epf-bus
> +
> +properties:
> +  $nodename:
> +    pattern: "^func@"
> +
> +  epcs:
> +    description:
> +      Phandle to the endpoint controller device. Should have "2" entries for
> +      NTB endpoint function and "1" entry for others.
> +    minItems: 1
> +    maxItems: 2
> +
> +  epc-names:
> +    description:
> +      Must contain an entry for each entry in "epcs" when "epcs" have more than
> +      one entry.
> +
> +  reg:
> +    maxItems: 0
> +    description: Must contain the index number of the function.
> +
> +  epf,vendor-id:
> +    description:
> +      The PCI vendor ID
> +    allOf:
> +      - $ref: /schemas/types.yaml#/definitions/uint16
> +
> +  epf,device-id:
> +    description:
> +      The PCI device ID
> +    allOf:
> +      - $ref: /schemas/types.yaml#/definitions/uint16
> +
> +  epf,baseclass-code:
> +    description: Code to classify the type of operation the function performs
> +    allOf:
> +      - $ref: /schemas/types.yaml#/definitions/uint8
> +
> +  epf,subclass-code:
> +    description:
> +      Specifies a base class sub-class, which identifies more specifically the
> +      operation of the Function
> +    allOf:
> +      - $ref: /schemas/types.yaml#/definitions/uint8
> +
> +  epf,subsys-vendor-id:
> +    description: Code to identify vendor of the add-in card or subsystem
> +    allOf:
> +      - $ref: /schemas/types.yaml#/definitions/uint16
> +
> +  epf,subsys-id:
> +    description: Code to specify an id that is specific to a vendor
> +    allOf:
> +      - $ref: /schemas/types.yaml#/definitions/uint16
> diff --git a/Documentation/devicetree/bindings/pci/endpoint/pci-epf-ntb.yaml b/Documentation/devicetree/bindings/pci/endpoint/pci-epf-ntb.yaml
> new file mode 100644
> index 000000000000..92c2e522b9e5
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/pci/endpoint/pci-epf-ntb.yaml
> @@ -0,0 +1,68 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +# Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com/
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/pci/endpoint/pci-epf-ntb.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: PCI Endpoint NTB Function Device
> +
> +maintainers:
> +  - Kishon Vijay Abraham I <kishon@ti.com>
> +
> +allOf:
> +  - $ref: "pci-epf-device.yaml#"
> +
> +properties:
> +  compatible:
> +    const: pci-epf-ntb
> +
> +  epcs:
> +    minItems: 2
> +    maxItems: 2
> +
> +  epc-names:
> +    items:
> +      - const: primary
> +      - const: secondary
> +
> +  num-mws:
> +    description:
> +      Specify the number of memory windows
> +    allOf:
> +      - $ref: /schemas/types.yaml#/definitions/uint8
> +    minimum: 1
> +    maximum: 4
> +
> +  mws-size:
> +    description:
> +      List of 'num-mws' entries containing size of each memory window.
> +    minItems: 1
> +    maxItems: 4
> +
> +required:
> +  - compatible
> +  - epcs
> +  - epc-names
> +  - epf,vendor-id
> +  - epf,device-id
> +  - num-mws
> +  - mws-size
> +
> +examples:
> +  - |
> +    epf_bus {
> +      compatible = "pci-epf-bus";
> +
> +      func@0 {
> +        compatible = "pci-epf-ntb";
> +        reg = <0>;
> +        epcs = <&pcie0_ep>, <&pcie1_ep>;
> +        epc-names = "primary", "secondary";
> +        epf,vendor-id = /bits/ 16 <0x104c>;
> +        epf,device-id = /bits/ 16 <0xb00d>;
> +        num-mws = <4>;
> +        mws-size = <0x0 0x100000>, <0x0 0x100000>, <0x0 0x100000>, <0x0 0x100000>;
> +      };
> +    };
> +...
> 

  parent reply	other threads:[~2020-05-22  5:54 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-14 14:59 [PATCH 00/19] Implement NTB Controller using multiple PCI EP Kishon Vijay Abraham I
2020-05-14 14:59 ` [PATCH 01/19] dt-bindings: PCI: Endpoint: Add DT bindings for PCI EPF NTB Device Kishon Vijay Abraham I
2020-05-15  2:38   ` Rob Herring
2020-05-22  5:53   ` Kishon Vijay Abraham I [this message]
2020-05-14 14:59 ` [PATCH 02/19] Documentation: PCI: Add specification for the *PCI NTB* function device Kishon Vijay Abraham I
2020-05-14 14:59 ` [PATCH 03/19] PCI: endpoint: Add API to get reference to EPC from device-tree Kishon Vijay Abraham I
2020-05-14 14:59 ` [PATCH 04/19] PCI: endpoint: Add API to create EPF device from device tree Kishon Vijay Abraham I
2020-05-14 14:59 ` [PATCH 05/19] PCI: endpoint: Add "pci-epf-bus" driver Kishon Vijay Abraham I
2020-05-14 14:59 ` [PATCH 06/19] PCI: endpoint: Make *_get_first_free_bar() take into account 64 bit BAR Kishon Vijay Abraham I
2020-05-14 14:59 ` [PATCH 07/19] PCI: endpoint: Add helper API to get the 'next' unreserved BAR Kishon Vijay Abraham I
2020-05-14 14:59 ` [PATCH 08/19] PCI: endpoint: Make *_free_bar() to return error codes on failure Kishon Vijay Abraham I
2020-05-14 14:59 ` [PATCH 09/19] PCI: endpoint: Remove unused pci_epf_match_device() Kishon Vijay Abraham I
2020-05-14 14:59 ` [PATCH 10/19] PCI: endpoint: Make pci_epf_driver ops optional Kishon Vijay Abraham I
2020-05-14 14:59 ` [PATCH 11/19] PCI: endpoint: Add helper API to populate header with values from DT Kishon Vijay Abraham I
2020-05-14 14:59 ` [PATCH 12/19] PCI: endpoint: Add support to associate secondary EPC with EPF Kishon Vijay Abraham I
2020-05-14 14:59 ` [PATCH 13/19] PCI: endpoint: Add pci_epc_ops to map MSI irq Kishon Vijay Abraham I
2020-05-14 14:59 ` [PATCH 14/19] PCI: cadence: Implement ->msi_map_irq() ops Kishon Vijay Abraham I
2020-05-14 14:59 ` [PATCH 15/19] PCI: endpoint: Add EP function driver to provide NTB functionality Kishon Vijay Abraham I
2020-05-14 14:59 ` [PATCH 16/19] PCI: Add TI J721E device to pci ids Kishon Vijay Abraham I
2020-05-14 14:59 ` [PATCH 17/19] NTB: Add support for EPF PCI-Express Non-Transparent Bridge Kishon Vijay Abraham I
2020-05-14 14:59 ` [PATCH 18/19] NTB: tool: Enable the NTB/PCIe link on the local or remote side of bridge Kishon Vijay Abraham I
2020-05-14 14:59 ` [PATCH 19/19] NTB: ntb_perf/ntb_tool: Use PCI device for dma_alloc_coherent() Kishon Vijay Abraham I
2020-05-22 16:11 ` [PATCH 00/19] Implement NTB Controller using multiple PCI EP Rob Herring
2020-05-23  1:47   ` 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=73193475-5244-554d-df71-df600f70c0d9@ti.com \
    --to=kishon@ti.com \
    --cc=allenbh@gmail.com \
    --cc=arnd@arndb.de \
    --cc=bhelgaas@google.com \
    --cc=corbet@lwn.net \
    --cc=dave.jiang@intel.com \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jdmason@kudzu.us \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-ntb@googlegroups.com \
    --cc=linux-pci@vger.kernel.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=robh+dt@kernel.org \
    --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).