Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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
8title: SiFive Composable Cache Controller
9
10maintainers:
11 - Paul Walmsley <paul.walmsley@sifive.com>
12
13description:
14 The SiFive Composable Cache Controller is used to provide access to fast copies
15 of memory for masters in a Core Complex. The Composable Cache Controller also
16 acts as directory-based coherency manager.
17 All the properties in ePAPR/DeviceTree specification applies for this platform.
18
19select:
20 properties:
21 compatible:
22 contains:
23 enum:
24 - sifive,ccache0
25 - sifive,fu540-c000-ccache
26 - sifive,fu740-c000-ccache
27
28 required:
29 - compatible
30
31properties:
32 compatible:
33 oneOf:
34 - items:
35 - enum:
36 - sifive,ccache0
37 - sifive,fu540-c000-ccache
38 - sifive,fu740-c000-ccache
39 - const: cache
40 - items:
41 - enum:
42 - eswin,eic7700-l3-cache
43 - starfive,jh7100-ccache
44 - starfive,jh7110-ccache
45 - const: sifive,ccache0
46 - const: cache
47 - items:
48 - const: microchip,mpfs-ccache
49 - const: sifive,fu540-c000-ccache
50 - const: cache
51
52 cache-block-size:
53 const: 64
54
55 cache-level:
56 enum: [2, 3]
57
58 cache-sets:
59 enum: [1024, 2048, 4096]
60
61 cache-size:
62 enum: [2097152, 4194304]
63
64 cache-unified: true
65
66 interrupts:
67 minItems: 3
68 items:
69 - description: DirError interrupt
70 - description: DataError interrupt
71 - description: DataFail interrupt
72 - description: DirFail interrupt
73
74 reg:
75 maxItems: 1
76
77 next-level-cache: true
78
79 memory-region:
80 maxItems: 1
81 description: |
82 The reference to the reserved-memory for the L2 Loosely Integrated Memory region.
83 The reserved memory node should be defined as per the bindings in reserved-memory.txt.
84
85allOf:
86 - $ref: /schemas/cache-controller.yaml#
87
88 - if:
89 properties:
90 compatible:
91 contains:
92 enum:
93 - eswin,eic7700-l3-cache
94 - sifive,fu740-c000-ccache
95 - starfive,jh7100-ccache
96 - starfive,jh7110-ccache
97 - microchip,mpfs-ccache
98
99 then:
100 properties:
101 interrupts:
102 description: |
103 Must contain entries for DirError, DataError, DataFail, DirFail signals.
104 minItems: 4
105
106 else:
107 properties:
108 interrupts:
109 description: |
110 Must contain entries for DirError, DataError and DataFail signals.
111 maxItems: 3
112
113 - if:
114 properties:
115 compatible:
116 contains:
117 const: eswin,eic7700-l3-cache
118
119 then:
120 properties:
121 cache-size:
122 const: 4194304
123
124 else:
125 properties:
126 cache-size:
127 const: 2097152
128
129 - if:
130 properties:
131 compatible:
132 contains:
133 enum:
134 - sifive,fu740-c000-ccache
135 - starfive,jh7100-ccache
136 - starfive,jh7110-ccache
137
138 then:
139 properties:
140 cache-sets:
141 const: 2048
142
143 - if:
144 properties:
145 compatible:
146 contains:
147 enum:
148 - microchip,mpfs-ccache
149 - sifive,fu540-c000-ccache
150
151 then:
152 properties:
153 cache-sets:
154 const: 1024
155
156 - if:
157 properties:
158 compatible:
159 contains:
160 enum:
161 - eswin,eic7700-l3-cache
162
163 then:
164 properties:
165 cache-sets:
166 const: 4096
167
168 - if:
169 properties:
170 compatible:
171 contains:
172 const: sifive,ccache0
173
174 then:
175 properties:
176 cache-level:
177 enum: [2, 3]
178
179 else:
180 properties:
181 cache-level:
182 const: 2
183
184additionalProperties: false
185
186required:
187 - compatible
188 - cache-block-size
189 - cache-level
190 - cache-sets
191 - cache-size
192 - cache-unified
193 - interrupts
194 - reg
195
196examples:
197 - |
198 cache-controller@2010000 {
199 compatible = "sifive,fu540-c000-ccache", "cache";
200 cache-block-size = <64>;
201 cache-level = <2>;
202 cache-sets = <1024>;
203 cache-size = <2097152>;
204 cache-unified;
205 reg = <0x2010000 0x1000>;
206 interrupt-parent = <&plic0>;
207 interrupts = <1>,
208 <2>,
209 <3>;
210 next-level-cache = <&L25>;
211 memory-region = <&l2_lim>;
212 };