sifive,ccache0.yaml 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
  2. # Copyright (C) 2020 SiFive, Inc.
  3. %YAML 1.2
  4. ---
  5. $id: http://devicetree.org/schemas/cache/sifive,ccache0.yaml#
  6. $schema: http://devicetree.org/meta-schemas/core.yaml#
  7. title: SiFive Composable Cache Controller
  8. maintainers:
  9. - Paul Walmsley <paul.walmsley@sifive.com>
  10. description:
  11. The SiFive Composable Cache Controller is used to provide access to fast copies
  12. of memory for masters in a Core Complex. The Composable Cache Controller also
  13. acts as directory-based coherency manager.
  14. All the properties in ePAPR/DeviceTree specification applies for this platform.
  15. select:
  16. properties:
  17. compatible:
  18. contains:
  19. enum:
  20. - sifive,ccache0
  21. - sifive,fu540-c000-ccache
  22. - sifive,fu740-c000-ccache
  23. required:
  24. - compatible
  25. properties:
  26. compatible:
  27. oneOf:
  28. - items:
  29. - enum:
  30. - sifive,ccache0
  31. - sifive,fu540-c000-ccache
  32. - sifive,fu740-c000-ccache
  33. - const: cache
  34. - items:
  35. - enum:
  36. - starfive,jh7100-ccache
  37. - starfive,jh7110-ccache
  38. - const: sifive,ccache0
  39. - const: cache
  40. - items:
  41. - const: microchip,mpfs-ccache
  42. - const: sifive,fu540-c000-ccache
  43. - const: cache
  44. cache-block-size:
  45. const: 64
  46. cache-level:
  47. enum: [2, 3]
  48. cache-sets:
  49. enum: [1024, 2048]
  50. cache-size:
  51. const: 2097152
  52. cache-unified: true
  53. interrupts:
  54. minItems: 3
  55. items:
  56. - description: DirError interrupt
  57. - description: DataError interrupt
  58. - description: DataFail interrupt
  59. - description: DirFail interrupt
  60. reg:
  61. maxItems: 1
  62. next-level-cache: true
  63. memory-region:
  64. maxItems: 1
  65. description: |
  66. The reference to the reserved-memory for the L2 Loosely Integrated Memory region.
  67. The reserved memory node should be defined as per the bindings in reserved-memory.txt.
  68. allOf:
  69. - $ref: /schemas/cache-controller.yaml#
  70. - if:
  71. properties:
  72. compatible:
  73. contains:
  74. enum:
  75. - sifive,fu740-c000-ccache
  76. - starfive,jh7100-ccache
  77. - starfive,jh7110-ccache
  78. - microchip,mpfs-ccache
  79. then:
  80. properties:
  81. interrupts:
  82. description: |
  83. Must contain entries for DirError, DataError, DataFail, DirFail signals.
  84. minItems: 4
  85. else:
  86. properties:
  87. interrupts:
  88. description: |
  89. Must contain entries for DirError, DataError and DataFail signals.
  90. maxItems: 3
  91. - if:
  92. properties:
  93. compatible:
  94. contains:
  95. enum:
  96. - sifive,fu740-c000-ccache
  97. - starfive,jh7100-ccache
  98. - starfive,jh7110-ccache
  99. then:
  100. properties:
  101. cache-sets:
  102. const: 2048
  103. else:
  104. properties:
  105. cache-sets:
  106. const: 1024
  107. - if:
  108. properties:
  109. compatible:
  110. contains:
  111. const: sifive,ccache0
  112. then:
  113. properties:
  114. cache-level:
  115. enum: [2, 3]
  116. else:
  117. properties:
  118. cache-level:
  119. const: 2
  120. additionalProperties: false
  121. required:
  122. - compatible
  123. - cache-block-size
  124. - cache-level
  125. - cache-sets
  126. - cache-size
  127. - cache-unified
  128. - interrupts
  129. - reg
  130. examples:
  131. - |
  132. cache-controller@2010000 {
  133. compatible = "sifive,fu540-c000-ccache", "cache";
  134. cache-block-size = <64>;
  135. cache-level = <2>;
  136. cache-sets = <1024>;
  137. cache-size = <2097152>;
  138. cache-unified;
  139. reg = <0x2010000 0x1000>;
  140. interrupt-parent = <&plic0>;
  141. interrupts = <1>,
  142. <2>,
  143. <3>;
  144. next-level-cache = <&L25>;
  145. memory-region = <&l2_lim>;
  146. };