| # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/bus/xlnx,versal-net-cdx.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: AMD CDX bus controller |
| |
| description: | |
| CDX bus controller for AMD devices is implemented to dynamically |
| detect CDX bus and devices using the firmware. |
| 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. |
| |
| rproc property (xlnx,rproc) is used to identify the remote processor |
| with which APU (Application Processor Unit) interacts to find out |
| the bus and device configuration. |
| |
| maintainers: |
| - Nipun Gupta <nipun.gupta@amd.com> |
| - Nikhil Agarwal <nikhil.agarwal@amd.com> |
| |
| properties: |
| compatible: |
| const: xlnx,versal-net-cdx |
| |
| iommu-map: true |
| |
| msi-map: true |
| |
| xlnx,rproc: |
| $ref: /schemas/types.yaml#/definitions/phandle |
| description: |
| phandle to the remoteproc_r5 rproc node using which APU interacts |
| with remote processor. |
| |
| ranges: true |
| |
| "#address-cells": |
| enum: [1, 2] |
| |
| "#size-cells": |
| enum: [1, 2] |
| |
| required: |
| - compatible |
| - iommu-map |
| - msi-map |
| - xlnx,rproc |
| - ranges |
| - "#address-cells" |
| - "#size-cells" |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| cdx { |
| compatible = "xlnx,versal-net-cdx"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| /* 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>; |
| xlnx,rproc = <&remoteproc_r5>; |
| ranges; |
| }; |