arm,smmu-v3.txt 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. * ARM SMMUv3 Architecture Implementation
  2. The SMMUv3 architecture is a significant departure from previous
  3. revisions, replacing the MMIO register interface with in-memory command
  4. and event queues and adding support for the ATS and PRI components of
  5. the PCIe specification.
  6. ** SMMUv3 required properties:
  7. - compatible : Should include:
  8. * "arm,smmu-v3" for any SMMUv3 compliant
  9. implementation. This entry should be last in the
  10. compatible list.
  11. - reg : Base address and size of the SMMU.
  12. - interrupts : Non-secure interrupt list describing the wired
  13. interrupt sources corresponding to entries in
  14. interrupt-names. If no wired interrupts are
  15. present then this property may be omitted.
  16. - interrupt-names : When the interrupts property is present, should
  17. include the following:
  18. * "eventq" - Event Queue not empty
  19. * "priq" - PRI Queue not empty
  20. * "cmdq-sync" - CMD_SYNC complete
  21. * "gerror" - Global Error activated
  22. * "combined" - The combined interrupt is optional,
  23. and should only be provided if the
  24. hardware supports just a single,
  25. combined interrupt line.
  26. If provided, then the combined interrupt
  27. will be used in preference to any others.
  28. - #iommu-cells : See the generic IOMMU binding described in
  29. devicetree/bindings/pci/pci-iommu.txt
  30. for details. For SMMUv3, must be 1, with each cell
  31. describing a single stream ID. All possible stream
  32. IDs which a device may emit must be described.
  33. ** SMMUv3 optional properties:
  34. - dma-coherent : Present if DMA operations made by the SMMU (page
  35. table walks, stream table accesses etc) are cache
  36. coherent with the CPU.
  37. NOTE: this only applies to the SMMU itself, not
  38. masters connected upstream of the SMMU.
  39. - msi-parent : See the generic MSI binding described in
  40. devicetree/bindings/interrupt-controller/msi.txt
  41. for a description of the msi-parent property.
  42. - hisilicon,broken-prefetch-cmd
  43. : Avoid sending CMD_PREFETCH_* commands to the SMMU.
  44. - cavium,cn9900-broken-page1-regspace
  45. : Replaces all page 1 offsets used for EVTQ_PROD/CONS,
  46. PRIQ_PROD/CONS register access with page 0 offsets.
  47. Set for Cavium ThunderX2 silicon that doesn't support
  48. SMMU page1 register space.
  49. ** Example
  50. smmu@2b400000 {
  51. compatible = "arm,smmu-v3";
  52. reg = <0x0 0x2b400000 0x0 0x20000>;
  53. interrupts = <GIC_SPI 74 IRQ_TYPE_EDGE_RISING>,
  54. <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>,
  55. <GIC_SPI 77 IRQ_TYPE_EDGE_RISING>,
  56. <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>;
  57. interrupt-names = "eventq", "priq", "cmdq-sync", "gerror";
  58. dma-coherent;
  59. #iommu-cells = <1>;
  60. msi-parent = <&its 0xff0000>;
  61. };