Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/Documentation/devicetree/bindings/cache/sifive,ccache0.yaml
26307 views
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
8
title: SiFive Composable Cache Controller
9
10
maintainers:
11
- Paul Walmsley <paul.walmsley@sifive.com>
12
13
description:
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
19
select:
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
31
properties:
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
85
allOf:
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
184
additionalProperties: false
185
186
required:
187
- compatible
188
- cache-block-size
189
- cache-level
190
- cache-sets
191
- cache-size
192
- cache-unified
193
- interrupts
194
- reg
195
196
examples:
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
};
213
214