1 # SPDX-License-Identifier: (GPL-2.0 OR MIT)
4 $id: http://devicetree.org/schemas/riscv/cpus.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: RISC-V bindings for 'cpus' DT nodes
10 - Paul Walmsley <paul.walmsley@sifive.com>
11 - Palmer Dabbelt <palmer@sifive.com>
25 Identifies that the hart uses the RISC-V instruction set
26 and identifies the type of the hart.
30 - $ref: "/schemas/types.yaml#/definitions/string"
36 Identifies the MMU address translation mode used on this
37 hart. These values originate from the RISC-V Privileged
38 Specification document, available from
39 https://riscv.org/specifications/
43 - $ref: "/schemas/types.yaml#/definitions/string"
48 Identifies the specific RISC-V instruction set architecture
49 supported by the hart. These are documented in the RISC-V
50 User-Level ISA document, available from
51 https://riscv.org/specifications/
57 Specifies the clock frequency of the system timer in Hz.
58 This value is common to all harts on a single system image.
62 description: Describes the CPU's local interrupt controller
71 interrupt-controller: true
76 - interrupt-controller
81 - interrupt-controller
85 // Example 1: SiFive Freedom U540G Development Kit
89 timebase-frequency = <1000000>;
91 clock-frequency = <0>;
92 compatible = "sifive,rocket0", "riscv";
94 i-cache-block-size = <64>;
96 i-cache-size = <16384>;
98 riscv,isa = "rv64imac";
99 cpu_intc0: interrupt-controller {
100 #interrupt-cells = <1>;
101 compatible = "riscv,cpu-intc";
102 interrupt-controller;
106 clock-frequency = <0>;
107 compatible = "sifive,rocket0", "riscv";
108 d-cache-block-size = <64>;
110 d-cache-size = <32768>;
114 i-cache-block-size = <64>;
116 i-cache-size = <32768>;
119 mmu-type = "riscv,sv39";
121 riscv,isa = "rv64imafdc";
123 cpu_intc1: interrupt-controller {
124 #interrupt-cells = <1>;
125 compatible = "riscv,cpu-intc";
126 interrupt-controller;
132 // Example 2: Spike ISA Simulator with 1 Hart
134 #address-cells = <1>;
139 compatible = "riscv";
140 riscv,isa = "rv64imafdc";
141 mmu-type = "riscv,sv48";
142 interrupt-controller {
143 #interrupt-cells = <1>;
144 interrupt-controller;
145 compatible = "riscv,cpu-intc";