arm,smmu-v3.txt 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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. - #iommu-cells : See the generic IOMMU binding described in
  23. devicetree/bindings/pci/pci-iommu.txt
  24. for details. For SMMUv3, must be 1, with each cell
  25. describing a single stream ID. All possible stream
  26. IDs which a device may emit must be described.
  27. ** SMMUv3 optional properties:
  28. - dma-coherent : Present if DMA operations made by the SMMU (page
  29. table walks, stream table accesses etc) are cache
  30. coherent with the CPU.
  31. NOTE: this only applies to the SMMU itself, not
  32. masters connected upstream of the SMMU.
  33. - msi-parent : See the generic MSI binding described in
  34. devicetree/bindings/interrupt-controller/msi.txt
  35. for a description of the msi-parent property.
  36. - hisilicon,broken-prefetch-cmd
  37. : Avoid sending CMD_PREFETCH_* commands to the SMMU.
  38. ** Example
  39. smmu@2b400000 {
  40. compatible = "arm,smmu-v3";
  41. reg = <0x0 0x2b400000 0x0 0x20000>;
  42. interrupts = <GIC_SPI 74 IRQ_TYPE_EDGE_RISING>,
  43. <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>,
  44. <GIC_SPI 77 IRQ_TYPE_EDGE_RISING>,
  45. <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>;
  46. interrupt-names = "eventq", "priq", "cmdq-sync", "gerror";
  47. dma-coherent;
  48. #iommu-cells = <1>;
  49. msi-parent = <&its 0xff0000>;
  50. };