File Index
Files and directories
Sign in
FILE

l2c2x0.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/cache/l2c2x0.yaml YAML
  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
  7title: ARM L2 Cache Controller
  8
  9maintainers:
 10  - Rob Herring <robh@kernel.org>
 11
 12description: |+
 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
 27allOf:
 28  - $ref: /schemas/cache-controller.yaml#
 29
 30properties:
 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    minItems: 2
104    maxItems: 2
105
106  arm,io-coherent:
107    description: indicates that the system is operating in an hardware
108      I/O coherent mode. Valid only when the arm,pl310-cache compatible
109      string is used.
110    type: boolean
111
112  interrupts:
113    # Either a single combined interrupt or up to 9 individual interrupts
114    minItems: 1
115    maxItems: 9
116
117  cache-id-part:
118    description: cache id part number to be used if it is not present
119      on hardware
120    $ref: /schemas/types.yaml#/definitions/uint32
121
122  wt-override:
123    description: If present then L2 is forced to Write through mode
124    type: boolean
125
126  arm,double-linefill:
127    description: Override double linefill enable setting. Enable if
128      non-zero, disable if zero.
129    $ref: /schemas/types.yaml#/definitions/uint32
130    enum: [0, 1]
131
132  arm,double-linefill-incr:
133    description: Override double linefill on INCR read. Enable
134      if non-zero, disable if zero.
135    $ref: /schemas/types.yaml#/definitions/uint32
136    enum: [0, 1]
137
138  arm,double-linefill-wrap:
139    description: Override double linefill on WRAP read. Enable
140      if non-zero, disable if zero.
141    $ref: /schemas/types.yaml#/definitions/uint32
142    enum: [0, 1]
143
144  arm,prefetch-drop:
145    description: Override prefetch drop enable setting. Enable if non-zero,
146      disable if zero.
147    $ref: /schemas/types.yaml#/definitions/uint32
148    enum: [0, 1]
149
150  arm,prefetch-offset:
151    description: Override prefetch offset value.
152    $ref: /schemas/types.yaml#/definitions/uint32
153    enum: [0, 1, 2, 3, 4, 5, 6, 7, 15, 23, 31]
154
155  arm,shared-override:
156    description: The default behavior of the L220 or PL310 cache
157      controllers with respect to the shareable attribute is to transform "normal
158      memory non-cacheable transactions" into "cacheable no allocate" (for reads)
159      or "write through no write allocate" (for writes).
160      On systems where this may cause DMA buffer corruption, this property must
161      be specified to indicate that such transforms are precluded.
162    type: boolean
163
164  arm,parity-enable:
165    description: enable parity checking on the L2 cache (L220 or PL310).
166    type: boolean
167
168  arm,parity-disable:
169    description: disable parity checking on the L2 cache (L220 or PL310).
170    type: boolean
171
172  marvell,ecc-enable:
173    description: enable ECC protection on the L2 cache
174    type: boolean
175
176  arm,outer-sync-disable:
177    description: disable the outer sync operation on the L2 cache.
178      Some core tiles, especially ARM PB11MPCore have a faulty L220 cache that
179      will randomly hang unless outer sync operations are disabled.
180    type: boolean
181
182  prefetch-data:
183    description: |
184      Data prefetch. Value: <0> (forcibly disable), <1>
185      (forcibly enable), property absent (retain settings set by firmware)
186    $ref: /schemas/types.yaml#/definitions/uint32
187    enum: [0, 1]
188
189  prefetch-instr:
190    description: |
191      Instruction prefetch. Value: <0> (forcibly disable),
192      <1> (forcibly enable), property absent (retain settings set by
193      firmware)
194    $ref: /schemas/types.yaml#/definitions/uint32
195    enum: [0, 1]
196
197  arm,dynamic-clock-gating:
198    description: |
199      L2 dynamic clock gating. Value: <0> (forcibly
200      disable), <1> (forcibly enable), property absent (OS specific behavior,
201      preferably retain firmware settings)
202    $ref: /schemas/types.yaml#/definitions/uint32
203    enum: [0, 1]
204
205  arm,standby-mode:
206    description: L2 standby mode enable. Value <0> (forcibly disable),
207      <1> (forcibly enable), property absent (OS specific behavior,
208      preferably retain firmware settings)
209    $ref: /schemas/types.yaml#/definitions/uint32
210    enum: [0, 1]
211
212  arm,early-bresp-disable:
213    description: Disable the CA9 optimization Early BRESP (PL310)
214    type: boolean
215
216  arm,full-line-zero-disable:
217    description: Disable the CA9 optimization Full line of zero
218      write (PL310)
219    type: boolean
220
221required:
222  - compatible
223  - cache-unified
224  - reg
225
226additionalProperties: false
227
228examples:
229  - |
230    cache-controller@fff12000 {
231        compatible = "arm,pl310-cache";
232        reg = <0xfff12000 0x1000>;
233        arm,data-latency = <1 1 1>;
234        arm,tag-latency = <2 2 2>;
235        arm,filter-ranges = <0x80000000 0x8000000>;
236        cache-unified;
237        cache-level = <2>;
238        interrupts = <45>;
239    };
240
241...
~/ Read-only file preview.