xlnx,versal-net-cdx.yaml 2.2 KB

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