2022-10-14 04:45:11

by Nipun Gupta

[permalink] [raw]
Subject: [RFC PATCH v4 1/8] dt-bindings: bus: add CDX bus device tree bindings

This patch adds a devicetree binding documentation for CDX
bus.

Signed-off-by: Nipun Gupta <[email protected]>
---
.../devicetree/bindings/bus/xlnx,cdx.yaml | 65 +++++++++++++++++++
MAINTAINERS | 6 ++
2 files changed, 71 insertions(+)
create mode 100644 Documentation/devicetree/bindings/bus/xlnx,cdx.yaml

diff --git a/Documentation/devicetree/bindings/bus/xlnx,cdx.yaml b/Documentation/devicetree/bindings/bus/xlnx,cdx.yaml
new file mode 100644
index 000000000000..984ff65b668a
--- /dev/null
+++ b/Documentation/devicetree/bindings/bus/xlnx,cdx.yaml
@@ -0,0 +1,65 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/bus/xlnx,cdx.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: AMD CDX bus controller
+
+description: |
+ CDX bus controller detects CDX devices using CDX firmware and
+ add those to cdx bus. The CDX bus manages multiple FPGA based
+ hardware devices, which can support network, crypto or any other
+ specialized type of devices. These FPGA based devices can be
+ added/modified dynamically on run-time.
+
+ All devices on the CDX bus will have a unique streamid (for IOMMU)
+ and a unique device ID (for MSI) corresponding to a requestor ID
+ (one to one associated with the device). The streamid and deviceid
+ are used to configure SMMU and GIC-ITS respectively.
+
+ iommu-map property is used to define the set of stream ids
+ corresponding to each device and the associated IOMMU.
+
+ The MSI writes are accompanied by sideband data (Device ID).
+ The msi-map property is used to associate the devices with the
+ device ID as well as the associated ITS controller.
+
+maintainers:
+ - Nipun Gupta <[email protected]>
+ - Nikhil Agarwal <[email protected]>
+
+properties:
+ compatible:
+ const: xlnx,cdxbus-controller-1.0
+
+ reg:
+ maxItems: 1
+
+ iommu-map: true
+
+ msi-map: true
+
+required:
+ - compatible
+ - reg
+ - iommu-map
+ - msi-map
+
+additionalProperties: false
+
+examples:
+ - |
+ soc {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ cdx: cdx@4000000 {
+ compatible = "xlnx,cdxbus-controller-1.0";
+ reg = <0x00000000 0x04000000 0 0x1000>;
+ /* define map for RIDs 250-259 */
+ iommu-map = <250 &smmu 250 10>;
+ /* define msi map for RIDs 250-259 */
+ msi-map = <250 &its 250 10>;
+ };
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index f5ca4aefd184..5f48f11fe0c3 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -935,6 +935,12 @@ S: Supported
F: drivers/crypto/ccp/
F: include/linux/ccp.h

+AMD CDX BUS DRIVER
+M: Nipun Gupta <[email protected]>
+M: Nikhil Agarwal <[email protected]>
+S: Maintained
+F: Documentation/devicetree/bindings/bus/xlnx,cdx.yaml
+
AMD CRYPTOGRAPHIC COPROCESSOR (CCP) DRIVER - SEV SUPPORT
M: Brijesh Singh <[email protected]>
M: Tom Lendacky <[email protected]>
--
2.25.1


2022-10-14 14:37:50

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [RFC PATCH v4 1/8] dt-bindings: bus: add CDX bus device tree bindings

On Fri, Oct 14, 2022 at 10:10:42AM +0530, Nipun Gupta wrote:
> This patch adds a devicetree binding documentation for CDX
> bus.

Please read submitting-patches.rst and what it says about commit
messages.

>
> Signed-off-by: Nipun Gupta <[email protected]>
> ---
> .../devicetree/bindings/bus/xlnx,cdx.yaml | 65 +++++++++++++++++++
> MAINTAINERS | 6 ++
> 2 files changed, 71 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/bus/xlnx,cdx.yaml
>
> diff --git a/Documentation/devicetree/bindings/bus/xlnx,cdx.yaml b/Documentation/devicetree/bindings/bus/xlnx,cdx.yaml
> new file mode 100644
> index 000000000000..984ff65b668a
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/bus/xlnx,cdx.yaml
> @@ -0,0 +1,65 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/bus/xlnx,cdx.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: AMD CDX bus controller
> +
> +description: |
> + CDX bus controller detects CDX devices using CDX firmware and
> + add those to cdx bus. The CDX bus manages multiple FPGA based
> + hardware devices, which can support network, crypto or any other
> + specialized type of devices. These FPGA based devices can be
> + added/modified dynamically on run-time.
> +
> + All devices on the CDX bus will have a unique streamid (for IOMMU)
> + and a unique device ID (for MSI) corresponding to a requestor ID
> + (one to one associated with the device). The streamid and deviceid
> + are used to configure SMMU and GIC-ITS respectively.
> +
> + iommu-map property is used to define the set of stream ids
> + corresponding to each device and the associated IOMMU.
> +
> + The MSI writes are accompanied by sideband data (Device ID).
> + The msi-map property is used to associate the devices with the
> + device ID as well as the associated ITS controller.
> +
> +maintainers:
> + - Nipun Gupta <[email protected]>
> + - Nikhil Agarwal <[email protected]>
> +
> +properties:
> + compatible:
> + const: xlnx,cdxbus-controller-1.0

Where does 1.0 come from?

> +
> + reg:
> + maxItems: 1
> +
> + iommu-map: true
> +
> + msi-map: true
> +
> +required:
> + - compatible
> + - reg
> + - iommu-map
> + - msi-map
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + soc {
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + cdx: cdx@4000000 {

bus@...

> + compatible = "xlnx,cdxbus-controller-1.0";
> + reg = <0x00000000 0x04000000 0 0x1000>;
> + /* define map for RIDs 250-259 */
> + iommu-map = <250 &smmu 250 10>;
> + /* define msi map for RIDs 250-259 */
> + msi-map = <250 &its 250 10>;
> + };
> + };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index f5ca4aefd184..5f48f11fe0c3 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -935,6 +935,12 @@ S: Supported
> F: drivers/crypto/ccp/
> F: include/linux/ccp.h
>
> +AMD CDX BUS DRIVER
> +M: Nipun Gupta <[email protected]>
> +M: Nikhil Agarwal <[email protected]>
> +S: Maintained
> +F: Documentation/devicetree/bindings/bus/xlnx,cdx.yaml
> +
> AMD CRYPTOGRAPHIC COPROCESSOR (CCP) DRIVER - SEV SUPPORT
> M: Brijesh Singh <[email protected]>
> M: Tom Lendacky <[email protected]>
> --
> 2.25.1
>
>

2022-10-17 10:24:27

by Nipun Gupta

[permalink] [raw]
Subject: RE: [RFC PATCH v4 1/8] dt-bindings: bus: add CDX bus device tree bindings

[AMD Official Use Only - General]



> -----Original Message-----
> From: Rob Herring <[email protected]>
> Sent: Friday, October 14, 2022 7:47 PM
> To: Gupta, Nipun <[email protected]>
> Cc: [email protected]; [email protected];
> [email protected]; [email protected]; [email protected];
> [email protected]; Gupta, Puneet (DCG-ENG) <[email protected]>;
> [email protected]; [email protected]; [email protected];
> [email protected]; [email protected]; [email protected];
> [email protected]; [email protected]; [email protected];
> [email protected]; [email protected]; [email protected]; [email protected];
> [email protected]; [email protected]; [email protected]; linux-arm-
> [email protected]; [email protected]; linux-
> [email protected]; [email protected]; [email protected];
> [email protected]; Anand, Harpreet <[email protected]>; Agarwal,
> Nikhil <[email protected]>; Simek, Michal <[email protected]>;
> Radovanovic, Aleksandar <[email protected]>; git (AMD-Xilinx)
> <[email protected]>
> Subject: Re: [RFC PATCH v4 1/8] dt-bindings: bus: add CDX bus device tree
> bindings
>
> Caution: This message originated from an External Source. Use proper caution
> when opening attachments, clicking links, or responding.
>
>
> On Fri, Oct 14, 2022 at 10:10:42AM +0530, Nipun Gupta wrote:
> > This patch adds a devicetree binding documentation for CDX
> > bus.
>
> Please read submitting-patches.rst and what it says about commit
> messages.

Thanks for pointing. I had a look at the file and will update accordingly

>
> >
> > Signed-off-by: Nipun Gupta <[email protected]>
> > ---
> > .../devicetree/bindings/bus/xlnx,cdx.yaml | 65 +++++++++++++++++++
> > MAINTAINERS | 6 ++
> > 2 files changed, 71 insertions(+)
> > create mode 100644 Documentation/devicetree/bindings/bus/xlnx,cdx.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/bus/xlnx,cdx.yaml
> b/Documentation/devicetree/bindings/bus/xlnx,cdx.yaml
> > new file mode 100644
> > index 000000000000..984ff65b668a
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/bus/xlnx,cdx.yaml
> > @@ -0,0 +1,65 @@
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id:
> https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevicetre
> e.org%2Fschemas%2Fbus%2Fxlnx%2Ccdx.yaml%23&amp;data=05%7C01%7Cnip
> un.gupta%40amd.com%7C16a836a178fa4e373c9308daadeecd32%7C3dd8961f
> e4884e608e11a82d994e183d%7C0%7C0%7C638013538406495866%7CUnknow
> n%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haW
> wiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=44F%2Bw51YMeCyE78g
> 3EmevxqYx%2FybbeKdlkDv1X6XDcM%3D&amp;reserved=0
> > +$schema:
> https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevicetre
> e.org%2Fmeta-
> schemas%2Fcore.yaml%23&amp;data=05%7C01%7Cnipun.gupta%40amd.com%
> 7C16a836a178fa4e373c9308daadeecd32%7C3dd8961fe4884e608e11a82d994e
> 183d%7C0%7C0%7C638013538406495866%7CUnknown%7CTWFpbGZsb3d8eyJ
> WIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C
> 3000%7C%7C%7C&amp;sdata=FPADx3bdmJg%2BfnEs%2BUtNTMPo3U1aiX3wv
> w57EQvleK4%3D&amp;reserved=0
> > +
> > +title: AMD CDX bus controller
> > +
> > +description: |
> > + CDX bus controller detects CDX devices using CDX firmware and
> > + add those to cdx bus. The CDX bus manages multiple FPGA based
> > + hardware devices, which can support network, crypto or any other
> > + specialized type of devices. These FPGA based devices can be
> > + added/modified dynamically on run-time.
> > +
> > + All devices on the CDX bus will have a unique streamid (for IOMMU)
> > + and a unique device ID (for MSI) corresponding to a requestor ID
> > + (one to one associated with the device). The streamid and deviceid
> > + are used to configure SMMU and GIC-ITS respectively.
> > +
> > + iommu-map property is used to define the set of stream ids
> > + corresponding to each device and the associated IOMMU.
> > +
> > + The MSI writes are accompanied by sideband data (Device ID).
> > + The msi-map property is used to associate the devices with the
> > + device ID as well as the associated ITS controller.
> > +
> > +maintainers:
> > + - Nipun Gupta <[email protected]>
> > + - Nikhil Agarwal <[email protected]>
> > +
> > +properties:
> > + compatible:
> > + const: xlnx,cdxbus-controller-1.0
>
> Where does 1.0 come from?

This came up in internal review comment, but seems that there is no need for
having the controller versioning. We will remove in the next set of patches.

>
> > +
> > + reg:
> > + maxItems: 1
> > +
> > + iommu-map: true
> > +
> > + msi-map: true
> > +
> > +required:
> > + - compatible
> > + - reg
> > + - iommu-map
> > + - msi-map
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > + - |
> > + soc {
> > + #address-cells = <2>;
> > + #size-cells = <2>;
> > +
> > + cdx: cdx@4000000 {
>
> bus@...

Sure. Will update.

Thanks,
Nipun

>
> > + compatible = "xlnx,cdxbus-controller-1.0";
> > + reg = <0x00000000 0x04000000 0 0x1000>;
> > + /* define map for RIDs 250-259 */
> > + iommu-map = <250 &smmu 250 10>;
> > + /* define msi map for RIDs 250-259 */
> > + msi-map = <250 &its 250 10>;
> > + };
> > + };
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index f5ca4aefd184..5f48f11fe0c3 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -935,6 +935,12 @@ S: Supported
> > F: drivers/crypto/ccp/
> > F: include/linux/ccp.h
> >
> > +AMD CDX BUS DRIVER
> > +M: Nipun Gupta <[email protected]>
> > +M: Nikhil Agarwal <[email protected]>
> > +S: Maintained
> > +F: Documentation/devicetree/bindings/bus/xlnx,cdx.yaml
> > +
> > AMD CRYPTOGRAPHIC COPROCESSOR (CCP) DRIVER - SEV SUPPORT
> > M: Brijesh Singh <[email protected]>
> > M: Tom Lendacky <[email protected]>
> > --
> > 2.25.1
> >
> >