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