xref: /openbmc/linux/Documentation/devicetree/bindings/bus/xlnx,versal-net-cdx.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1*c47a88e1SNipun Gupta# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*c47a88e1SNipun Gupta%YAML 1.2
3*c47a88e1SNipun Gupta---
4*c47a88e1SNipun Gupta$id: http://devicetree.org/schemas/bus/xlnx,versal-net-cdx.yaml#
5*c47a88e1SNipun Gupta$schema: http://devicetree.org/meta-schemas/core.yaml#
6*c47a88e1SNipun Gupta
7*c47a88e1SNipun Guptatitle: AMD CDX bus controller
8*c47a88e1SNipun Gupta
9*c47a88e1SNipun Guptadescription: |
10*c47a88e1SNipun Gupta  CDX bus controller for AMD devices is implemented to dynamically
11*c47a88e1SNipun Gupta  detect CDX bus and devices using the firmware.
12*c47a88e1SNipun Gupta  The CDX bus manages multiple FPGA based hardware devices, which
13*c47a88e1SNipun Gupta  can support network, crypto or any other specialized type of
14*c47a88e1SNipun Gupta  devices. These FPGA based devices can be added/modified dynamically
15*c47a88e1SNipun Gupta  on run-time.
16*c47a88e1SNipun Gupta
17*c47a88e1SNipun Gupta  All devices on the CDX bus will have a unique streamid (for IOMMU)
18*c47a88e1SNipun Gupta  and a unique device ID (for MSI) corresponding to a requestor ID
19*c47a88e1SNipun Gupta  (one to one associated with the device). The streamid and deviceid
20*c47a88e1SNipun Gupta  are used to configure SMMU and GIC-ITS respectively.
21*c47a88e1SNipun Gupta
22*c47a88e1SNipun Gupta  iommu-map property is used to define the set of stream ids
23*c47a88e1SNipun Gupta  corresponding to each device and the associated IOMMU.
24*c47a88e1SNipun Gupta
25*c47a88e1SNipun Gupta  The MSI writes are accompanied by sideband data (Device ID).
26*c47a88e1SNipun Gupta  The msi-map property is used to associate the devices with the
27*c47a88e1SNipun Gupta  device ID as well as the associated ITS controller.
28*c47a88e1SNipun Gupta
29*c47a88e1SNipun Gupta  rproc property (xlnx,rproc) is used to identify the remote processor
30*c47a88e1SNipun Gupta  with which APU (Application Processor Unit) interacts to find out
31*c47a88e1SNipun Gupta  the bus and device configuration.
32*c47a88e1SNipun Gupta
33*c47a88e1SNipun Guptamaintainers:
34*c47a88e1SNipun Gupta  - Nipun Gupta <nipun.gupta@amd.com>
35*c47a88e1SNipun Gupta  - Nikhil Agarwal <nikhil.agarwal@amd.com>
36*c47a88e1SNipun Gupta
37*c47a88e1SNipun Guptaproperties:
38*c47a88e1SNipun Gupta  compatible:
39*c47a88e1SNipun Gupta    const: xlnx,versal-net-cdx
40*c47a88e1SNipun Gupta
41*c47a88e1SNipun Gupta  iommu-map: true
42*c47a88e1SNipun Gupta
43*c47a88e1SNipun Gupta  msi-map: true
44*c47a88e1SNipun Gupta
45*c47a88e1SNipun Gupta  xlnx,rproc:
46*c47a88e1SNipun Gupta    $ref: /schemas/types.yaml#/definitions/phandle
47*c47a88e1SNipun Gupta    description:
48*c47a88e1SNipun Gupta      phandle to the remoteproc_r5 rproc node using which APU interacts
49*c47a88e1SNipun Gupta      with remote processor.
50*c47a88e1SNipun Gupta
51*c47a88e1SNipun Gupta  ranges: true
52*c47a88e1SNipun Gupta
53*c47a88e1SNipun Gupta  "#address-cells":
54*c47a88e1SNipun Gupta    enum: [1, 2]
55*c47a88e1SNipun Gupta
56*c47a88e1SNipun Gupta  "#size-cells":
57*c47a88e1SNipun Gupta    enum: [1, 2]
58*c47a88e1SNipun Gupta
59*c47a88e1SNipun Guptarequired:
60*c47a88e1SNipun Gupta  - compatible
61*c47a88e1SNipun Gupta  - iommu-map
62*c47a88e1SNipun Gupta  - msi-map
63*c47a88e1SNipun Gupta  - xlnx,rproc
64*c47a88e1SNipun Gupta  - ranges
65*c47a88e1SNipun Gupta  - "#address-cells"
66*c47a88e1SNipun Gupta  - "#size-cells"
67*c47a88e1SNipun Gupta
68*c47a88e1SNipun GuptaadditionalProperties: false
69*c47a88e1SNipun Gupta
70*c47a88e1SNipun Guptaexamples:
71*c47a88e1SNipun Gupta  - |
72*c47a88e1SNipun Gupta    cdx {
73*c47a88e1SNipun Gupta        compatible = "xlnx,versal-net-cdx";
74*c47a88e1SNipun Gupta        #address-cells = <1>;
75*c47a88e1SNipun Gupta        #size-cells = <1>;
76*c47a88e1SNipun Gupta        /* define map for RIDs 250-259 */
77*c47a88e1SNipun Gupta        iommu-map = <250 &smmu 250 10>;
78*c47a88e1SNipun Gupta        /* define msi map for RIDs 250-259 */
79*c47a88e1SNipun Gupta        msi-map = <250 &its 250 10>;
80*c47a88e1SNipun Gupta        xlnx,rproc = <&remoteproc_r5>;
81*c47a88e1SNipun Gupta        ranges;
82*c47a88e1SNipun Gupta    };
83