162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/bus/xlnx,versal-net-cdx.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: AMD CDX bus controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cidescription: |
1062306a36Sopenharmony_ci  CDX bus controller for AMD devices is implemented to dynamically
1162306a36Sopenharmony_ci  detect CDX bus and devices using the firmware.
1262306a36Sopenharmony_ci  The CDX bus manages multiple FPGA based hardware devices, which
1362306a36Sopenharmony_ci  can support network, crypto or any other specialized type of
1462306a36Sopenharmony_ci  devices. These FPGA based devices can be added/modified dynamically
1562306a36Sopenharmony_ci  on run-time.
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci  All devices on the CDX bus will have a unique streamid (for IOMMU)
1862306a36Sopenharmony_ci  and a unique device ID (for MSI) corresponding to a requestor ID
1962306a36Sopenharmony_ci  (one to one associated with the device). The streamid and deviceid
2062306a36Sopenharmony_ci  are used to configure SMMU and GIC-ITS respectively.
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci  iommu-map property is used to define the set of stream ids
2362306a36Sopenharmony_ci  corresponding to each device and the associated IOMMU.
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci  The MSI writes are accompanied by sideband data (Device ID).
2662306a36Sopenharmony_ci  The msi-map property is used to associate the devices with the
2762306a36Sopenharmony_ci  device ID as well as the associated ITS controller.
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci  rproc property (xlnx,rproc) is used to identify the remote processor
3062306a36Sopenharmony_ci  with which APU (Application Processor Unit) interacts to find out
3162306a36Sopenharmony_ci  the bus and device configuration.
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_cimaintainers:
3462306a36Sopenharmony_ci  - Nipun Gupta <nipun.gupta@amd.com>
3562306a36Sopenharmony_ci  - Nikhil Agarwal <nikhil.agarwal@amd.com>
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ciproperties:
3862306a36Sopenharmony_ci  compatible:
3962306a36Sopenharmony_ci    const: xlnx,versal-net-cdx
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci  iommu-map: true
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci  msi-map: true
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci  xlnx,rproc:
4662306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle
4762306a36Sopenharmony_ci    description:
4862306a36Sopenharmony_ci      phandle to the remoteproc_r5 rproc node using which APU interacts
4962306a36Sopenharmony_ci      with remote processor.
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci  ranges: true
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci  "#address-cells":
5462306a36Sopenharmony_ci    enum: [1, 2]
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci  "#size-cells":
5762306a36Sopenharmony_ci    enum: [1, 2]
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_cirequired:
6062306a36Sopenharmony_ci  - compatible
6162306a36Sopenharmony_ci  - iommu-map
6262306a36Sopenharmony_ci  - msi-map
6362306a36Sopenharmony_ci  - xlnx,rproc
6462306a36Sopenharmony_ci  - ranges
6562306a36Sopenharmony_ci  - "#address-cells"
6662306a36Sopenharmony_ci  - "#size-cells"
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ciadditionalProperties: false
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ciexamples:
7162306a36Sopenharmony_ci  - |
7262306a36Sopenharmony_ci    cdx {
7362306a36Sopenharmony_ci        compatible = "xlnx,versal-net-cdx";
7462306a36Sopenharmony_ci        #address-cells = <1>;
7562306a36Sopenharmony_ci        #size-cells = <1>;
7662306a36Sopenharmony_ci        /* define map for RIDs 250-259 */
7762306a36Sopenharmony_ci        iommu-map = <250 &smmu 250 10>;
7862306a36Sopenharmony_ci        /* define msi map for RIDs 250-259 */
7962306a36Sopenharmony_ci        msi-map = <250 &its 250 10>;
8062306a36Sopenharmony_ci        xlnx,rproc = <&remoteproc_r5>;
8162306a36Sopenharmony_ci        ranges;
8262306a36Sopenharmony_ci    };
83