GNU Linux-libre 5.15.137-gnu
[releases.git] / Documentation / devicetree / bindings / riscv / sifive-l2-cache.yaml
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/riscv/sifive-l2-cache.yaml#
6 $schema: http://devicetree.org/meta-schemas/core.yaml#
7
8 title: SiFive L2 Cache Controller
9
10 maintainers:
11   - Sagar Kadam <sagar.kadam@sifive.com>
12   - Yash Shah <yash.shah@sifive.com>
13   - Paul Walmsley  <paul.walmsley@sifive.com>
14
15 description:
16   The SiFive Level 2 Cache Controller is used to provide access to fast copies
17   of memory for masters in a Core Complex. The Level 2 Cache Controller also
18   acts as directory-based coherency manager.
19   All the properties in ePAPR/DeviceTree specification applies for this platform.
20
21 allOf:
22   - $ref: /schemas/cache-controller.yaml#
23
24 select:
25   properties:
26     compatible:
27       contains:
28         enum:
29           - sifive,fu540-c000-ccache
30           - sifive,fu740-c000-ccache
31
32   required:
33     - compatible
34
35 properties:
36   compatible:
37     items:
38       - enum:
39           - sifive,fu540-c000-ccache
40           - sifive,fu740-c000-ccache
41       - const: cache
42
43   cache-block-size:
44     const: 64
45
46   cache-level:
47     const: 2
48
49   cache-sets:
50     enum: [1024, 2048]
51
52   cache-size:
53     const: 2097152
54
55   cache-unified: true
56
57   interrupts:
58     minItems: 3
59     items:
60       - description: DirError interrupt
61       - description: DataError interrupt
62       - description: DataFail interrupt
63       - description: DirFail interrupt
64
65   reg:
66     maxItems: 1
67
68   next-level-cache: true
69
70   memory-region:
71     maxItems: 1
72     description: |
73       The reference to the reserved-memory for the L2 Loosely Integrated Memory region.
74       The reserved memory node should be defined as per the bindings in reserved-memory.txt.
75
76 if:
77   properties:
78     compatible:
79       contains:
80         const: sifive,fu540-c000-ccache
81
82 then:
83   properties:
84     interrupts:
85       description: |
86         Must contain entries for DirError, DataError and DataFail signals.
87       maxItems: 3
88     cache-sets:
89       const: 1024
90
91 else:
92   properties:
93     interrupts:
94       description: |
95         Must contain entries for DirError, DataError, DataFail, DirFail signals.
96       minItems: 4
97     cache-sets:
98       const: 2048
99
100 additionalProperties: false
101
102 required:
103   - compatible
104   - cache-block-size
105   - cache-level
106   - cache-sets
107   - cache-size
108   - cache-unified
109   - interrupts
110   - reg
111
112 examples:
113   - |
114     cache-controller@2010000 {
115         compatible = "sifive,fu540-c000-ccache", "cache";
116         cache-block-size = <64>;
117         cache-level = <2>;
118         cache-sets = <1024>;
119         cache-size = <2097152>;
120         cache-unified;
121         reg = <0x2010000 0x1000>;
122         interrupt-parent = <&plic0>;
123         interrupts = <1>,
124                      <2>,
125                      <3>;
126         next-level-cache = <&L25>;
127         memory-region = <&l2_lim>;
128     };