xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/arm/cpus.yaml (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun%YAML 1.2
3*4882a593Smuzhiyun---
4*4882a593Smuzhiyun$id: http://devicetree.org/schemas/arm/cpus.yaml#
5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml#
6*4882a593Smuzhiyun
7*4882a593Smuzhiyuntitle: ARM CPUs bindings
8*4882a593Smuzhiyun
9*4882a593Smuzhiyunmaintainers:
10*4882a593Smuzhiyun  - Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
11*4882a593Smuzhiyun
12*4882a593Smuzhiyundescription: |+
13*4882a593Smuzhiyun  The device tree allows to describe the layout of CPUs in a system through
14*4882a593Smuzhiyun  the "cpus" node, which in turn contains a number of subnodes (ie "cpu")
15*4882a593Smuzhiyun  defining properties for every cpu.
16*4882a593Smuzhiyun
17*4882a593Smuzhiyun  Bindings for CPU nodes follow the Devicetree Specification, available from:
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun  https://www.devicetree.org/specifications/
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun  with updates for 32-bit and 64-bit ARM systems provided in this document.
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun  ================================
24*4882a593Smuzhiyun  Convention used in this document
25*4882a593Smuzhiyun  ================================
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun  This document follows the conventions described in the Devicetree
28*4882a593Smuzhiyun  Specification, with the addition:
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun  - square brackets define bitfields, eg reg[7:0] value of the bitfield in
31*4882a593Smuzhiyun    the reg property contained in bits 7 down to 0
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun  =====================================
34*4882a593Smuzhiyun  cpus and cpu node bindings definition
35*4882a593Smuzhiyun  =====================================
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun  The ARM architecture, in accordance with the Devicetree Specification,
38*4882a593Smuzhiyun  requires the cpus and cpu nodes to be present and contain the properties
39*4882a593Smuzhiyun  described below.
40*4882a593Smuzhiyun
41*4882a593Smuzhiyunproperties:
42*4882a593Smuzhiyun  reg:
43*4882a593Smuzhiyun    maxItems: 1
44*4882a593Smuzhiyun    description: |
45*4882a593Smuzhiyun      Usage and definition depend on ARM architecture version and
46*4882a593Smuzhiyun      configuration:
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun      On uniprocessor ARM architectures previous to v7
49*4882a593Smuzhiyun      this property is required and must be set to 0.
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun      On ARM 11 MPcore based systems this property is
52*4882a593Smuzhiyun        required and matches the CPUID[11:0] register bits.
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun        Bits [11:0] in the reg cell must be set to
55*4882a593Smuzhiyun        bits [11:0] in CPU ID register.
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun        All other bits in the reg cell must be set to 0.
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun      On 32-bit ARM v7 or later systems this property is
60*4882a593Smuzhiyun        required and matches the CPU MPIDR[23:0] register
61*4882a593Smuzhiyun        bits.
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun        Bits [23:0] in the reg cell must be set to
64*4882a593Smuzhiyun        bits [23:0] in MPIDR.
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun        All other bits in the reg cell must be set to 0.
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun      On ARM v8 64-bit systems this property is required
69*4882a593Smuzhiyun        and matches the MPIDR_EL1 register affinity bits.
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun        * If cpus node's #address-cells property is set to 2
72*4882a593Smuzhiyun
73*4882a593Smuzhiyun          The first reg cell bits [7:0] must be set to
74*4882a593Smuzhiyun          bits [39:32] of MPIDR_EL1.
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun          The second reg cell bits [23:0] must be set to
77*4882a593Smuzhiyun          bits [23:0] of MPIDR_EL1.
78*4882a593Smuzhiyun
79*4882a593Smuzhiyun        * If cpus node's #address-cells property is set to 1
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun          The reg cell bits [23:0] must be set to bits [23:0]
82*4882a593Smuzhiyun          of MPIDR_EL1.
83*4882a593Smuzhiyun
84*4882a593Smuzhiyun      All other bits in the reg cells must be set to 0.
85*4882a593Smuzhiyun
86*4882a593Smuzhiyun  compatible:
87*4882a593Smuzhiyun    enum:
88*4882a593Smuzhiyun      - arm,arm710t
89*4882a593Smuzhiyun      - arm,arm720t
90*4882a593Smuzhiyun      - arm,arm740t
91*4882a593Smuzhiyun      - arm,arm7ej-s
92*4882a593Smuzhiyun      - arm,arm7tdmi
93*4882a593Smuzhiyun      - arm,arm7tdmi-s
94*4882a593Smuzhiyun      - arm,arm9es
95*4882a593Smuzhiyun      - arm,arm9ej-s
96*4882a593Smuzhiyun      - arm,arm920t
97*4882a593Smuzhiyun      - arm,arm922t
98*4882a593Smuzhiyun      - arm,arm925
99*4882a593Smuzhiyun      - arm,arm926e-s
100*4882a593Smuzhiyun      - arm,arm926ej-s
101*4882a593Smuzhiyun      - arm,arm940t
102*4882a593Smuzhiyun      - arm,arm946e-s
103*4882a593Smuzhiyun      - arm,arm966e-s
104*4882a593Smuzhiyun      - arm,arm968e-s
105*4882a593Smuzhiyun      - arm,arm9tdmi
106*4882a593Smuzhiyun      - arm,arm1020e
107*4882a593Smuzhiyun      - arm,arm1020t
108*4882a593Smuzhiyun      - arm,arm1022e
109*4882a593Smuzhiyun      - arm,arm1026ej-s
110*4882a593Smuzhiyun      - arm,arm1136j-s
111*4882a593Smuzhiyun      - arm,arm1136jf-s
112*4882a593Smuzhiyun      - arm,arm1156t2-s
113*4882a593Smuzhiyun      - arm,arm1156t2f-s
114*4882a593Smuzhiyun      - arm,arm1176jzf
115*4882a593Smuzhiyun      - arm,arm1176jz-s
116*4882a593Smuzhiyun      - arm,arm1176jzf-s
117*4882a593Smuzhiyun      - arm,arm11mpcore
118*4882a593Smuzhiyun      - arm,armv8 # Only for s/w models
119*4882a593Smuzhiyun      - arm,cortex-a5
120*4882a593Smuzhiyun      - arm,cortex-a7
121*4882a593Smuzhiyun      - arm,cortex-a8
122*4882a593Smuzhiyun      - arm,cortex-a9
123*4882a593Smuzhiyun      - arm,cortex-a12
124*4882a593Smuzhiyun      - arm,cortex-a15
125*4882a593Smuzhiyun      - arm,cortex-a17
126*4882a593Smuzhiyun      - arm,cortex-a32
127*4882a593Smuzhiyun      - arm,cortex-a34
128*4882a593Smuzhiyun      - arm,cortex-a35
129*4882a593Smuzhiyun      - arm,cortex-a53
130*4882a593Smuzhiyun      - arm,cortex-a55
131*4882a593Smuzhiyun      - arm,cortex-a57
132*4882a593Smuzhiyun      - arm,cortex-a65
133*4882a593Smuzhiyun      - arm,cortex-a72
134*4882a593Smuzhiyun      - arm,cortex-a73
135*4882a593Smuzhiyun      - arm,cortex-a75
136*4882a593Smuzhiyun      - arm,cortex-a76
137*4882a593Smuzhiyun      - arm,cortex-a77
138*4882a593Smuzhiyun      - arm,cortex-m0
139*4882a593Smuzhiyun      - arm,cortex-m0+
140*4882a593Smuzhiyun      - arm,cortex-m1
141*4882a593Smuzhiyun      - arm,cortex-m3
142*4882a593Smuzhiyun      - arm,cortex-m4
143*4882a593Smuzhiyun      - arm,cortex-r4
144*4882a593Smuzhiyun      - arm,cortex-r5
145*4882a593Smuzhiyun      - arm,cortex-r7
146*4882a593Smuzhiyun      - arm,neoverse-e1
147*4882a593Smuzhiyun      - arm,neoverse-n1
148*4882a593Smuzhiyun      - brcm,brahma-b15
149*4882a593Smuzhiyun      - brcm,brahma-b53
150*4882a593Smuzhiyun      - brcm,vulcan
151*4882a593Smuzhiyun      - cavium,thunder
152*4882a593Smuzhiyun      - cavium,thunder2
153*4882a593Smuzhiyun      - faraday,fa526
154*4882a593Smuzhiyun      - intel,sa110
155*4882a593Smuzhiyun      - intel,sa1100
156*4882a593Smuzhiyun      - marvell,feroceon
157*4882a593Smuzhiyun      - marvell,mohawk
158*4882a593Smuzhiyun      - marvell,pj4a
159*4882a593Smuzhiyun      - marvell,pj4b
160*4882a593Smuzhiyun      - marvell,sheeva-v5
161*4882a593Smuzhiyun      - marvell,sheeva-v7
162*4882a593Smuzhiyun      - nvidia,tegra132-denver
163*4882a593Smuzhiyun      - nvidia,tegra186-denver
164*4882a593Smuzhiyun      - nvidia,tegra194-carmel
165*4882a593Smuzhiyun      - qcom,krait
166*4882a593Smuzhiyun      - qcom,kryo
167*4882a593Smuzhiyun      - qcom,kryo260
168*4882a593Smuzhiyun      - qcom,kryo280
169*4882a593Smuzhiyun      - qcom,kryo385
170*4882a593Smuzhiyun      - qcom,kryo468
171*4882a593Smuzhiyun      - qcom,kryo485
172*4882a593Smuzhiyun      - qcom,scorpion
173*4882a593Smuzhiyun
174*4882a593Smuzhiyun  enable-method:
175*4882a593Smuzhiyun    $ref: '/schemas/types.yaml#/definitions/string'
176*4882a593Smuzhiyun    oneOf:
177*4882a593Smuzhiyun      # On ARM v8 64-bit this property is required
178*4882a593Smuzhiyun      - enum:
179*4882a593Smuzhiyun          - psci
180*4882a593Smuzhiyun          - spin-table
181*4882a593Smuzhiyun      # On ARM 32-bit systems this property is optional
182*4882a593Smuzhiyun      - enum:
183*4882a593Smuzhiyun          - actions,s500-smp
184*4882a593Smuzhiyun          - allwinner,sun6i-a31
185*4882a593Smuzhiyun          - allwinner,sun8i-a23
186*4882a593Smuzhiyun          - allwinner,sun9i-a80-smp
187*4882a593Smuzhiyun          - allwinner,sun8i-a83t-smp
188*4882a593Smuzhiyun          - amlogic,meson8-smp
189*4882a593Smuzhiyun          - amlogic,meson8b-smp
190*4882a593Smuzhiyun          - arm,realview-smp
191*4882a593Smuzhiyun          - aspeed,ast2600-smp
192*4882a593Smuzhiyun          - brcm,bcm11351-cpu-method
193*4882a593Smuzhiyun          - brcm,bcm23550
194*4882a593Smuzhiyun          - brcm,bcm2836-smp
195*4882a593Smuzhiyun          - brcm,bcm63138
196*4882a593Smuzhiyun          - brcm,bcm-nsp-smp
197*4882a593Smuzhiyun          - brcm,brahma-b15
198*4882a593Smuzhiyun          - marvell,armada-375-smp
199*4882a593Smuzhiyun          - marvell,armada-380-smp
200*4882a593Smuzhiyun          - marvell,armada-390-smp
201*4882a593Smuzhiyun          - marvell,armada-xp-smp
202*4882a593Smuzhiyun          - marvell,98dx3236-smp
203*4882a593Smuzhiyun          - marvell,mmp3-smp
204*4882a593Smuzhiyun          - mediatek,mt6589-smp
205*4882a593Smuzhiyun          - mediatek,mt81xx-tz-smp
206*4882a593Smuzhiyun          - qcom,gcc-msm8660
207*4882a593Smuzhiyun          - qcom,kpss-acc-v1
208*4882a593Smuzhiyun          - qcom,kpss-acc-v2
209*4882a593Smuzhiyun          - renesas,apmu
210*4882a593Smuzhiyun          - renesas,r9a06g032-smp
211*4882a593Smuzhiyun          - rockchip,rk3036-smp
212*4882a593Smuzhiyun          - rockchip,rk3066-smp
213*4882a593Smuzhiyun          - socionext,milbeaut-m10v-smp
214*4882a593Smuzhiyun          - ste,dbx500-smp
215*4882a593Smuzhiyun          - ti,am3352
216*4882a593Smuzhiyun          - ti,am4372
217*4882a593Smuzhiyun
218*4882a593Smuzhiyun  cpu-release-addr:
219*4882a593Smuzhiyun    $ref: '/schemas/types.yaml#/definitions/uint64'
220*4882a593Smuzhiyun
221*4882a593Smuzhiyun    description:
222*4882a593Smuzhiyun      Required for systems that have an "enable-method"
223*4882a593Smuzhiyun        property value of "spin-table".
224*4882a593Smuzhiyun      On ARM v8 64-bit systems must be a two cell
225*4882a593Smuzhiyun        property identifying a 64-bit zero-initialised
226*4882a593Smuzhiyun        memory location.
227*4882a593Smuzhiyun
228*4882a593Smuzhiyun  cpu-idle-states:
229*4882a593Smuzhiyun    $ref: '/schemas/types.yaml#/definitions/phandle-array'
230*4882a593Smuzhiyun    description: |
231*4882a593Smuzhiyun      List of phandles to idle state nodes supported
232*4882a593Smuzhiyun      by this cpu (see ./idle-states.yaml).
233*4882a593Smuzhiyun
234*4882a593Smuzhiyun  capacity-dmips-mhz:
235*4882a593Smuzhiyun    $ref: '/schemas/types.yaml#/definitions/uint32'
236*4882a593Smuzhiyun    description:
237*4882a593Smuzhiyun      u32 value representing CPU capacity (see ./cpu-capacity.txt) in
238*4882a593Smuzhiyun      DMIPS/MHz, relative to highest capacity-dmips-mhz
239*4882a593Smuzhiyun      in the system.
240*4882a593Smuzhiyun
241*4882a593Smuzhiyun  dynamic-power-coefficient:
242*4882a593Smuzhiyun    $ref: '/schemas/types.yaml#/definitions/uint32'
243*4882a593Smuzhiyun    description:
244*4882a593Smuzhiyun      A u32 value that represents the running time dynamic
245*4882a593Smuzhiyun      power coefficient in units of uW/MHz/V^2. The
246*4882a593Smuzhiyun      coefficient can either be calculated from power
247*4882a593Smuzhiyun      measurements or derived by analysis.
248*4882a593Smuzhiyun
249*4882a593Smuzhiyun      The dynamic power consumption of the CPU  is
250*4882a593Smuzhiyun      proportional to the square of the Voltage (V) and
251*4882a593Smuzhiyun      the clock frequency (f). The coefficient is used to
252*4882a593Smuzhiyun      calculate the dynamic power as below -
253*4882a593Smuzhiyun
254*4882a593Smuzhiyun      Pdyn = dynamic-power-coefficient * V^2 * f
255*4882a593Smuzhiyun
256*4882a593Smuzhiyun      where voltage is in V, frequency is in MHz.
257*4882a593Smuzhiyun
258*4882a593Smuzhiyun  power-domains:
259*4882a593Smuzhiyun    $ref: '/schemas/types.yaml#/definitions/phandle-array'
260*4882a593Smuzhiyun    description:
261*4882a593Smuzhiyun      List of phandles and PM domain specifiers, as defined by bindings of the
262*4882a593Smuzhiyun      PM domain provider (see also ../power_domain.txt).
263*4882a593Smuzhiyun
264*4882a593Smuzhiyun  power-domain-names:
265*4882a593Smuzhiyun    $ref: '/schemas/types.yaml#/definitions/string-array'
266*4882a593Smuzhiyun    description:
267*4882a593Smuzhiyun      A list of power domain name strings sorted in the same order as the
268*4882a593Smuzhiyun      power-domains property.
269*4882a593Smuzhiyun
270*4882a593Smuzhiyun      For PSCI based platforms, the name corresponding to the index of the PSCI
271*4882a593Smuzhiyun      PM domain provider, must be "psci".
272*4882a593Smuzhiyun
273*4882a593Smuzhiyun  qcom,saw:
274*4882a593Smuzhiyun    $ref: '/schemas/types.yaml#/definitions/phandle'
275*4882a593Smuzhiyun    description: |
276*4882a593Smuzhiyun      Specifies the SAW* node associated with this CPU.
277*4882a593Smuzhiyun
278*4882a593Smuzhiyun      Required for systems that have an "enable-method" property
279*4882a593Smuzhiyun      value of "qcom,kpss-acc-v1" or "qcom,kpss-acc-v2"
280*4882a593Smuzhiyun
281*4882a593Smuzhiyun      * arm/msm/qcom,saw2.txt
282*4882a593Smuzhiyun
283*4882a593Smuzhiyun  qcom,acc:
284*4882a593Smuzhiyun    $ref: '/schemas/types.yaml#/definitions/phandle'
285*4882a593Smuzhiyun    description: |
286*4882a593Smuzhiyun      Specifies the ACC* node associated with this CPU.
287*4882a593Smuzhiyun
288*4882a593Smuzhiyun      Required for systems that have an "enable-method" property
289*4882a593Smuzhiyun      value of "qcom,kpss-acc-v1" or "qcom,kpss-acc-v2"
290*4882a593Smuzhiyun
291*4882a593Smuzhiyun      * arm/msm/qcom,kpss-acc.txt
292*4882a593Smuzhiyun
293*4882a593Smuzhiyun  rockchip,pmu:
294*4882a593Smuzhiyun    $ref: '/schemas/types.yaml#/definitions/phandle'
295*4882a593Smuzhiyun    description: |
296*4882a593Smuzhiyun      Specifies the syscon node controlling the cpu core power domains.
297*4882a593Smuzhiyun
298*4882a593Smuzhiyun      Optional for systems that have an "enable-method"
299*4882a593Smuzhiyun      property value of "rockchip,rk3066-smp"
300*4882a593Smuzhiyun      While optional, it is the preferred way to get access to
301*4882a593Smuzhiyun      the cpu-core power-domains.
302*4882a593Smuzhiyun
303*4882a593Smuzhiyun  secondary-boot-reg:
304*4882a593Smuzhiyun    $ref: '/schemas/types.yaml#/definitions/uint32'
305*4882a593Smuzhiyun    description: |
306*4882a593Smuzhiyun      Required for systems that have an "enable-method" property value of
307*4882a593Smuzhiyun      "brcm,bcm11351-cpu-method", "brcm,bcm23550" or "brcm,bcm-nsp-smp".
308*4882a593Smuzhiyun
309*4882a593Smuzhiyun      This includes the following SoCs: |
310*4882a593Smuzhiyun      BCM11130, BCM11140, BCM11351, BCM28145, BCM28155, BCM21664, BCM23550
311*4882a593Smuzhiyun      BCM58522, BCM58525, BCM58535, BCM58622, BCM58623, BCM58625, BCM88312
312*4882a593Smuzhiyun
313*4882a593Smuzhiyun      The secondary-boot-reg property is a u32 value that specifies the
314*4882a593Smuzhiyun      physical address of the register used to request the ROM holding pen
315*4882a593Smuzhiyun      code release a secondary CPU. The value written to the register is
316*4882a593Smuzhiyun      formed by encoding the target CPU id into the low bits of the
317*4882a593Smuzhiyun      physical start address it should jump to.
318*4882a593Smuzhiyun
319*4882a593Smuzhiyunif:
320*4882a593Smuzhiyun  # If the enable-method property contains one of those values
321*4882a593Smuzhiyun  properties:
322*4882a593Smuzhiyun    enable-method:
323*4882a593Smuzhiyun      contains:
324*4882a593Smuzhiyun        enum:
325*4882a593Smuzhiyun          - brcm,bcm11351-cpu-method
326*4882a593Smuzhiyun          - brcm,bcm23550
327*4882a593Smuzhiyun          - brcm,bcm-nsp-smp
328*4882a593Smuzhiyun  # and if enable-method is present
329*4882a593Smuzhiyun  required:
330*4882a593Smuzhiyun    - enable-method
331*4882a593Smuzhiyun
332*4882a593Smuzhiyunthen:
333*4882a593Smuzhiyun  required:
334*4882a593Smuzhiyun    - secondary-boot-reg
335*4882a593Smuzhiyun
336*4882a593Smuzhiyunrequired:
337*4882a593Smuzhiyun  - device_type
338*4882a593Smuzhiyun  - reg
339*4882a593Smuzhiyun  - compatible
340*4882a593Smuzhiyun
341*4882a593Smuzhiyundependencies:
342*4882a593Smuzhiyun  rockchip,pmu: [enable-method]
343*4882a593Smuzhiyun
344*4882a593SmuzhiyunadditionalProperties: true
345*4882a593Smuzhiyun
346*4882a593Smuzhiyunexamples:
347*4882a593Smuzhiyun  - |
348*4882a593Smuzhiyun    cpus {
349*4882a593Smuzhiyun      #size-cells = <0>;
350*4882a593Smuzhiyun      #address-cells = <1>;
351*4882a593Smuzhiyun
352*4882a593Smuzhiyun      cpu@0 {
353*4882a593Smuzhiyun        device_type = "cpu";
354*4882a593Smuzhiyun        compatible = "arm,cortex-a15";
355*4882a593Smuzhiyun        reg = <0x0>;
356*4882a593Smuzhiyun      };
357*4882a593Smuzhiyun
358*4882a593Smuzhiyun      cpu@1 {
359*4882a593Smuzhiyun        device_type = "cpu";
360*4882a593Smuzhiyun        compatible = "arm,cortex-a15";
361*4882a593Smuzhiyun        reg = <0x1>;
362*4882a593Smuzhiyun      };
363*4882a593Smuzhiyun
364*4882a593Smuzhiyun      cpu@100 {
365*4882a593Smuzhiyun        device_type = "cpu";
366*4882a593Smuzhiyun        compatible = "arm,cortex-a7";
367*4882a593Smuzhiyun        reg = <0x100>;
368*4882a593Smuzhiyun      };
369*4882a593Smuzhiyun
370*4882a593Smuzhiyun      cpu@101 {
371*4882a593Smuzhiyun        device_type = "cpu";
372*4882a593Smuzhiyun        compatible = "arm,cortex-a7";
373*4882a593Smuzhiyun        reg = <0x101>;
374*4882a593Smuzhiyun      };
375*4882a593Smuzhiyun    };
376*4882a593Smuzhiyun
377*4882a593Smuzhiyun  - |
378*4882a593Smuzhiyun    // Example 2 (Cortex-A8 uniprocessor 32-bit system):
379*4882a593Smuzhiyun    cpus {
380*4882a593Smuzhiyun      #size-cells = <0>;
381*4882a593Smuzhiyun      #address-cells = <1>;
382*4882a593Smuzhiyun
383*4882a593Smuzhiyun      cpu@0 {
384*4882a593Smuzhiyun        device_type = "cpu";
385*4882a593Smuzhiyun        compatible = "arm,cortex-a8";
386*4882a593Smuzhiyun        reg = <0x0>;
387*4882a593Smuzhiyun      };
388*4882a593Smuzhiyun    };
389*4882a593Smuzhiyun
390*4882a593Smuzhiyun  - |
391*4882a593Smuzhiyun    // Example 3 (ARM 926EJ-S uniprocessor 32-bit system):
392*4882a593Smuzhiyun    cpus {
393*4882a593Smuzhiyun      #size-cells = <0>;
394*4882a593Smuzhiyun      #address-cells = <1>;
395*4882a593Smuzhiyun
396*4882a593Smuzhiyun      cpu@0 {
397*4882a593Smuzhiyun        device_type = "cpu";
398*4882a593Smuzhiyun        compatible = "arm,arm926ej-s";
399*4882a593Smuzhiyun        reg = <0x0>;
400*4882a593Smuzhiyun      };
401*4882a593Smuzhiyun    };
402*4882a593Smuzhiyun
403*4882a593Smuzhiyun  - |
404*4882a593Smuzhiyun    //  Example 4 (ARM Cortex-A57 64-bit system):
405*4882a593Smuzhiyun    cpus {
406*4882a593Smuzhiyun      #size-cells = <0>;
407*4882a593Smuzhiyun      #address-cells = <2>;
408*4882a593Smuzhiyun
409*4882a593Smuzhiyun      cpu@0 {
410*4882a593Smuzhiyun        device_type = "cpu";
411*4882a593Smuzhiyun        compatible = "arm,cortex-a57";
412*4882a593Smuzhiyun        reg = <0x0 0x0>;
413*4882a593Smuzhiyun        enable-method = "spin-table";
414*4882a593Smuzhiyun        cpu-release-addr = <0 0x20000000>;
415*4882a593Smuzhiyun      };
416*4882a593Smuzhiyun
417*4882a593Smuzhiyun      cpu@1 {
418*4882a593Smuzhiyun        device_type = "cpu";
419*4882a593Smuzhiyun        compatible = "arm,cortex-a57";
420*4882a593Smuzhiyun        reg = <0x0 0x1>;
421*4882a593Smuzhiyun        enable-method = "spin-table";
422*4882a593Smuzhiyun        cpu-release-addr = <0 0x20000000>;
423*4882a593Smuzhiyun      };
424*4882a593Smuzhiyun
425*4882a593Smuzhiyun      cpu@100 {
426*4882a593Smuzhiyun        device_type = "cpu";
427*4882a593Smuzhiyun        compatible = "arm,cortex-a57";
428*4882a593Smuzhiyun        reg = <0x0 0x100>;
429*4882a593Smuzhiyun        enable-method = "spin-table";
430*4882a593Smuzhiyun        cpu-release-addr = <0 0x20000000>;
431*4882a593Smuzhiyun      };
432*4882a593Smuzhiyun
433*4882a593Smuzhiyun      cpu@101 {
434*4882a593Smuzhiyun        device_type = "cpu";
435*4882a593Smuzhiyun        compatible = "arm,cortex-a57";
436*4882a593Smuzhiyun        reg = <0x0 0x101>;
437*4882a593Smuzhiyun        enable-method = "spin-table";
438*4882a593Smuzhiyun        cpu-release-addr = <0 0x20000000>;
439*4882a593Smuzhiyun      };
440*4882a593Smuzhiyun
441*4882a593Smuzhiyun      cpu@10000 {
442*4882a593Smuzhiyun        device_type = "cpu";
443*4882a593Smuzhiyun        compatible = "arm,cortex-a57";
444*4882a593Smuzhiyun        reg = <0x0 0x10000>;
445*4882a593Smuzhiyun        enable-method = "spin-table";
446*4882a593Smuzhiyun        cpu-release-addr = <0 0x20000000>;
447*4882a593Smuzhiyun      };
448*4882a593Smuzhiyun
449*4882a593Smuzhiyun      cpu@10001 {
450*4882a593Smuzhiyun        device_type = "cpu";
451*4882a593Smuzhiyun        compatible = "arm,cortex-a57";
452*4882a593Smuzhiyun        reg = <0x0 0x10001>;
453*4882a593Smuzhiyun        enable-method = "spin-table";
454*4882a593Smuzhiyun        cpu-release-addr = <0 0x20000000>;
455*4882a593Smuzhiyun      };
456*4882a593Smuzhiyun
457*4882a593Smuzhiyun      cpu@10100 {
458*4882a593Smuzhiyun        device_type = "cpu";
459*4882a593Smuzhiyun        compatible = "arm,cortex-a57";
460*4882a593Smuzhiyun        reg = <0x0 0x10100>;
461*4882a593Smuzhiyun        enable-method = "spin-table";
462*4882a593Smuzhiyun        cpu-release-addr = <0 0x20000000>;
463*4882a593Smuzhiyun      };
464*4882a593Smuzhiyun
465*4882a593Smuzhiyun      cpu@10101 {
466*4882a593Smuzhiyun        device_type = "cpu";
467*4882a593Smuzhiyun        compatible = "arm,cortex-a57";
468*4882a593Smuzhiyun        reg = <0x0 0x10101>;
469*4882a593Smuzhiyun        enable-method = "spin-table";
470*4882a593Smuzhiyun        cpu-release-addr = <0 0x20000000>;
471*4882a593Smuzhiyun      };
472*4882a593Smuzhiyun
473*4882a593Smuzhiyun      cpu@100000000 {
474*4882a593Smuzhiyun        device_type = "cpu";
475*4882a593Smuzhiyun        compatible = "arm,cortex-a57";
476*4882a593Smuzhiyun        reg = <0x1 0x0>;
477*4882a593Smuzhiyun        enable-method = "spin-table";
478*4882a593Smuzhiyun        cpu-release-addr = <0 0x20000000>;
479*4882a593Smuzhiyun      };
480*4882a593Smuzhiyun
481*4882a593Smuzhiyun      cpu@100000001 {
482*4882a593Smuzhiyun        device_type = "cpu";
483*4882a593Smuzhiyun        compatible = "arm,cortex-a57";
484*4882a593Smuzhiyun        reg = <0x1 0x1>;
485*4882a593Smuzhiyun        enable-method = "spin-table";
486*4882a593Smuzhiyun        cpu-release-addr = <0 0x20000000>;
487*4882a593Smuzhiyun      };
488*4882a593Smuzhiyun
489*4882a593Smuzhiyun      cpu@100000100 {
490*4882a593Smuzhiyun        device_type = "cpu";
491*4882a593Smuzhiyun        compatible = "arm,cortex-a57";
492*4882a593Smuzhiyun        reg = <0x1 0x100>;
493*4882a593Smuzhiyun        enable-method = "spin-table";
494*4882a593Smuzhiyun        cpu-release-addr = <0 0x20000000>;
495*4882a593Smuzhiyun      };
496*4882a593Smuzhiyun
497*4882a593Smuzhiyun      cpu@100000101 {
498*4882a593Smuzhiyun        device_type = "cpu";
499*4882a593Smuzhiyun        compatible = "arm,cortex-a57";
500*4882a593Smuzhiyun        reg = <0x1 0x101>;
501*4882a593Smuzhiyun        enable-method = "spin-table";
502*4882a593Smuzhiyun        cpu-release-addr = <0 0x20000000>;
503*4882a593Smuzhiyun      };
504*4882a593Smuzhiyun
505*4882a593Smuzhiyun      cpu@100010000 {
506*4882a593Smuzhiyun        device_type = "cpu";
507*4882a593Smuzhiyun        compatible = "arm,cortex-a57";
508*4882a593Smuzhiyun        reg = <0x1 0x10000>;
509*4882a593Smuzhiyun        enable-method = "spin-table";
510*4882a593Smuzhiyun        cpu-release-addr = <0 0x20000000>;
511*4882a593Smuzhiyun      };
512*4882a593Smuzhiyun
513*4882a593Smuzhiyun      cpu@100010001 {
514*4882a593Smuzhiyun        device_type = "cpu";
515*4882a593Smuzhiyun        compatible = "arm,cortex-a57";
516*4882a593Smuzhiyun        reg = <0x1 0x10001>;
517*4882a593Smuzhiyun        enable-method = "spin-table";
518*4882a593Smuzhiyun        cpu-release-addr = <0 0x20000000>;
519*4882a593Smuzhiyun      };
520*4882a593Smuzhiyun
521*4882a593Smuzhiyun      cpu@100010100 {
522*4882a593Smuzhiyun        device_type = "cpu";
523*4882a593Smuzhiyun        compatible = "arm,cortex-a57";
524*4882a593Smuzhiyun        reg = <0x1 0x10100>;
525*4882a593Smuzhiyun        enable-method = "spin-table";
526*4882a593Smuzhiyun        cpu-release-addr = <0 0x20000000>;
527*4882a593Smuzhiyun      };
528*4882a593Smuzhiyun
529*4882a593Smuzhiyun      cpu@100010101 {
530*4882a593Smuzhiyun        device_type = "cpu";
531*4882a593Smuzhiyun        compatible = "arm,cortex-a57";
532*4882a593Smuzhiyun        reg = <0x1 0x10101>;
533*4882a593Smuzhiyun        enable-method = "spin-table";
534*4882a593Smuzhiyun        cpu-release-addr = <0 0x20000000>;
535*4882a593Smuzhiyun      };
536*4882a593Smuzhiyun    };
537*4882a593Smuzhiyun...
538