~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/cache/l2c2x0.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: GPL-2.0
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/cache/l2c2x0.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: ARM L2 Cache Controller
  8 
  9 maintainers:
 10   - Rob Herring <robh@kernel.org>
 11 
 12 description: |+
 13   ARM cores often have a separate L2C210/L2C220/L2C310 (also known as PL210/
 14   PL220/PL310 and variants) based level 2 cache controller. All these various
 15   implementations of the L2 cache controller have compatible programming
 16   models (Note 1). Some of the properties that are just prefixed "cache-*" are
 17   taken from section 3.7.3 of the Devicetree Specification which can be found
 18   at:
 19   https://www.devicetree.org/specifications/
 20 
 21   Note 1: The description in this document doesn't apply to integrated L2
 22     cache controllers as found in e.g. Cortex-A15/A7/A57/A53. These
 23     integrated L2 controllers are assumed to be all preconfigured by
 24     early secure boot code. Thus no need to deal with their configuration
 25     in the kernel at all.
 26 
 27 allOf:
 28   - $ref: /schemas/cache-controller.yaml#
 29 
 30 properties:
 31   compatible:
 32     oneOf:
 33       - enum:
 34           - arm,pl310-cache
 35           - arm,l220-cache
 36           - arm,l210-cache
 37             # DEPRECATED by "brcm,bcm11351-a2-pl310-cache"
 38           - bcm,bcm11351-a2-pl310-cache
 39             # For Broadcom bcm11351 chipset where an
 40             # offset needs to be added to the address before passing down to the L2
 41             # cache controller
 42           - brcm,bcm11351-a2-pl310-cache
 43             # Marvell Controller designed to be
 44             # compatible with the ARM one, with system cache mode (meaning
 45             # maintenance operations on L1 are broadcasted to the L2 and L2
 46             # performs the same operation).
 47           - marvell,aurora-system-cache
 48             # Marvell Controller designed to be
 49             # compatible with the ARM one with outer cache mode.
 50           - marvell,aurora-outer-cache
 51       - items:
 52            # Marvell Tauros3 cache controller, compatible
 53            # with arm,pl310-cache controller.
 54           - const: marvell,tauros3-cache
 55           - const: arm,pl310-cache
 56 
 57   cache-level:
 58     const: 2
 59 
 60   cache-unified: true
 61   cache-size: true
 62   cache-sets: true
 63   cache-block-size: true
 64   cache-line-size: true
 65 
 66   reg:
 67     maxItems: 1
 68 
 69   arm,data-latency:
 70     description: Cycles of latency for Data RAM accesses. Specifies 3 cells of
 71       read, write and setup latencies. Minimum valid values are 1. Controllers
 72       without setup latency control should use a value of 0.
 73     $ref: /schemas/types.yaml#/definitions/uint32-array
 74     minItems: 2
 75     maxItems: 3
 76     items:
 77       minimum: 0
 78       maximum: 8
 79 
 80   arm,tag-latency:
 81     description: Cycles of latency for Tag RAM accesses. Specifies 3 cells of
 82       read, write and setup latencies. Controllers without setup latency control
 83       should use 0. Controllers without separate read and write Tag RAM latency
 84       values should only use the first cell.
 85     $ref: /schemas/types.yaml#/definitions/uint32-array
 86     minItems: 1
 87     maxItems: 3
 88     items:
 89       minimum: 0
 90       maximum: 8
 91 
 92   arm,dirty-latency:
 93     description: Cycles of latency for Dirty RAMs. This is a single cell.
 94     $ref: /schemas/types.yaml#/definitions/uint32
 95     minimum: 1
 96     maximum: 8
 97 
 98   arm,filter-ranges:
 99     description: <start length> Starting address and length of window to
100       filter. Addresses in the filter window are directed to the M1 port. Other
101       addresses will go to the M0 port.
102     $ref: /schemas/types.yaml#/definitions/uint32-array
103     items:
104       minItems: 2
105       maxItems: 2
106 
107   arm,io-coherent:
108     description: indicates that the system is operating in an hardware
109       I/O coherent mode. Valid only when the arm,pl310-cache compatible
110       string is used.
111     type: boolean
112 
113   interrupts:
114     # Either a single combined interrupt or up to 9 individual interrupts
115     minItems: 1
116     maxItems: 9
117 
118   cache-id-part:
119     description: cache id part number to be used if it is not present
120       on hardware
121     $ref: /schemas/types.yaml#/definitions/uint32
122 
123   wt-override:
124     description: If present then L2 is forced to Write through mode
125     type: boolean
126 
127   arm,double-linefill:
128     description: Override double linefill enable setting. Enable if
129       non-zero, disable if zero.
130     $ref: /schemas/types.yaml#/definitions/uint32
131     enum: [0, 1]
132 
133   arm,double-linefill-incr:
134     description: Override double linefill on INCR read. Enable
135       if non-zero, disable if zero.
136     $ref: /schemas/types.yaml#/definitions/uint32
137     enum: [0, 1]
138 
139   arm,double-linefill-wrap:
140     description: Override double linefill on WRAP read. Enable
141       if non-zero, disable if zero.
142     $ref: /schemas/types.yaml#/definitions/uint32
143     enum: [0, 1]
144 
145   arm,prefetch-drop:
146     description: Override prefetch drop enable setting. Enable if non-zero,
147       disable if zero.
148     $ref: /schemas/types.yaml#/definitions/uint32
149     enum: [0, 1]
150 
151   arm,prefetch-offset:
152     description: Override prefetch offset value.
153     $ref: /schemas/types.yaml#/definitions/uint32
154     enum: [0, 1, 2, 3, 4, 5, 6, 7, 15, 23, 31]
155 
156   arm,shared-override:
157     description: The default behavior of the L220 or PL310 cache
158       controllers with respect to the shareable attribute is to transform "normal
159       memory non-cacheable transactions" into "cacheable no allocate" (for reads)
160       or "write through no write allocate" (for writes).
161       On systems where this may cause DMA buffer corruption, this property must
162       be specified to indicate that such transforms are precluded.
163     type: boolean
164 
165   arm,parity-enable:
166     description: enable parity checking on the L2 cache (L220 or PL310).
167     type: boolean
168 
169   arm,parity-disable:
170     description: disable parity checking on the L2 cache (L220 or PL310).
171     type: boolean
172 
173   marvell,ecc-enable:
174     description: enable ECC protection on the L2 cache
175     type: boolean
176 
177   arm,outer-sync-disable:
178     description: disable the outer sync operation on the L2 cache.
179       Some core tiles, especially ARM PB11MPCore have a faulty L220 cache that
180       will randomly hang unless outer sync operations are disabled.
181     type: boolean
182 
183   prefetch-data:
184     description: |
185       Data prefetch. Value: <0> (forcibly disable), <1>
186       (forcibly enable), property absent (retain settings set by firmware)
187     $ref: /schemas/types.yaml#/definitions/uint32
188     enum: [0, 1]
189 
190   prefetch-instr:
191     description: |
192       Instruction prefetch. Value: <0> (forcibly disable),
193       <1> (forcibly enable), property absent (retain settings set by
194       firmware)
195     $ref: /schemas/types.yaml#/definitions/uint32
196     enum: [0, 1]
197 
198   arm,dynamic-clock-gating:
199     description: |
200       L2 dynamic clock gating. Value: <0> (forcibly
201       disable), <1> (forcibly enable), property absent (OS specific behavior,
202       preferably retain firmware settings)
203     $ref: /schemas/types.yaml#/definitions/uint32
204     enum: [0, 1]
205 
206   arm,standby-mode:
207     description: L2 standby mode enable. Value <0> (forcibly disable),
208       <1> (forcibly enable), property absent (OS specific behavior,
209       preferably retain firmware settings)
210     $ref: /schemas/types.yaml#/definitions/uint32
211     enum: [0, 1]
212 
213   arm,early-bresp-disable:
214     description: Disable the CA9 optimization Early BRESP (PL310)
215     type: boolean
216 
217   arm,full-line-zero-disable:
218     description: Disable the CA9 optimization Full line of zero
219       write (PL310)
220     type: boolean
221 
222 required:
223   - compatible
224   - cache-unified
225   - reg
226 
227 additionalProperties: false
228 
229 examples:
230   - |
231     cache-controller@fff12000 {
232         compatible = "arm,pl310-cache";
233         reg = <0xfff12000 0x1000>;
234         arm,data-latency = <1 1 1>;
235         arm,tag-latency = <2 2 2>;
236         arm,filter-ranges = <0x80000000 0x8000000>;
237         cache-unified;
238         cache-level = <2>;
239         interrupts = <45>;
240     };
241 
242 ...

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php