xref: /freebsd-src/sys/contrib/device-tree/Bindings/arm/arm,vexpress-juno.yaml (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/arm/arm,vexpress-juno.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
77ef62cebSEmmanuel Vadottitle: ARM Versatile Express and Juno Boards
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Sudeep Holla <sudeep.holla@arm.com>
11c66ec88fSEmmanuel Vadot  - Linus Walleij <linus.walleij@linaro.org>
12c66ec88fSEmmanuel Vadot
13c66ec88fSEmmanuel Vadotdescription: |+
14c66ec88fSEmmanuel Vadot  ARM's Versatile Express platform were built as reference designs for exploring
15c66ec88fSEmmanuel Vadot  multicore Cortex-A class systems. The Versatile Express family contains both
16c66ec88fSEmmanuel Vadot  32 bit (Aarch32) and 64 bit (Aarch64) systems.
17c66ec88fSEmmanuel Vadot
18c66ec88fSEmmanuel Vadot  The board consist of a motherboard and one or more daughterboards (tiles). The
19c66ec88fSEmmanuel Vadot  motherboard provides a set of peripherals. Processor and RAM "live" on the
20c66ec88fSEmmanuel Vadot  tiles.
21c66ec88fSEmmanuel Vadot
22c66ec88fSEmmanuel Vadot  The motherboard and each core tile should be described by a separate Device
23c66ec88fSEmmanuel Vadot  Tree source file, with the tile's description including the motherboard file
24c66ec88fSEmmanuel Vadot  using an include directive. As the motherboard can be initialized in one of
25c66ec88fSEmmanuel Vadot  two different configurations ("memory maps"), care must be taken to include
26c66ec88fSEmmanuel Vadot  the correct one.
27c66ec88fSEmmanuel Vadot
28c66ec88fSEmmanuel Vadot  When a new generation of boards were introduced under the name "Juno", these
29c66ec88fSEmmanuel Vadot  shared to many common characteristics with the Versatile Express that the
30c66ec88fSEmmanuel Vadot  "arm,vexpress" compatible was retained in the root node, and these are
31c66ec88fSEmmanuel Vadot  included in this binding schema as well.
32c66ec88fSEmmanuel Vadot
33c66ec88fSEmmanuel Vadot  The root node indicates the CPU SoC on the core tile, and this
34c66ec88fSEmmanuel Vadot  is a daughterboard to the main motherboard. The name used in the compatible
35c66ec88fSEmmanuel Vadot  string shall match the name given in the core tile's technical reference
36c66ec88fSEmmanuel Vadot  manual, followed by "arm,vexpress" as an additional compatible value. If
37c66ec88fSEmmanuel Vadot  further subvariants are released of the core tile, even more fine-granular
38c66ec88fSEmmanuel Vadot  compatible strings with up to three compatible strings are used.
39c66ec88fSEmmanuel Vadot
40c66ec88fSEmmanuel Vadotproperties:
41c66ec88fSEmmanuel Vadot  $nodename:
42c66ec88fSEmmanuel Vadot    const: '/'
43c66ec88fSEmmanuel Vadot  compatible:
44c66ec88fSEmmanuel Vadot    oneOf:
45c66ec88fSEmmanuel Vadot      - description: CoreTile Express A9x4 (V2P-CA9) has 4 Cortex A9 CPU cores
46c66ec88fSEmmanuel Vadot          in MPCore configuration in a test chip on the core tile. See ARM
47c66ec88fSEmmanuel Vadot          DUI 0448I. This was the first Versatile Express platform.
48c66ec88fSEmmanuel Vadot        items:
49c66ec88fSEmmanuel Vadot          - const: arm,vexpress,v2p-ca9
50c66ec88fSEmmanuel Vadot          - const: arm,vexpress
51c66ec88fSEmmanuel Vadot      - description: CoreTile Express A5x2 (V2P-CA5s) has 2 Cortex A5 CPU cores
52c66ec88fSEmmanuel Vadot          in a test chip on the core tile. It is intended to evaluate NEON, FPU
53c66ec88fSEmmanuel Vadot          and Jazelle support in the Cortex A5 family. See ARM DUI 0541C.
54c66ec88fSEmmanuel Vadot        items:
55c66ec88fSEmmanuel Vadot          - const: arm,vexpress,v2p-ca5s
56c66ec88fSEmmanuel Vadot          - const: arm,vexpress
57c66ec88fSEmmanuel Vadot      - description: Coretile Express A15x2 (V2P-CA15) has 2 Cortex A15 CPU
58c66ec88fSEmmanuel Vadot          cores in a MPCore configuration in a test chip on the core tile. See
59c66ec88fSEmmanuel Vadot          ARM DUI 0604F.
60c66ec88fSEmmanuel Vadot        items:
61c66ec88fSEmmanuel Vadot          - const: arm,vexpress,v2p-ca15
62c66ec88fSEmmanuel Vadot          - const: arm,vexpress
63c66ec88fSEmmanuel Vadot      - description: CoreTile Express A15x4 (V2P-CA15, HBI-0237A) has 4 Cortex
64c66ec88fSEmmanuel Vadot          A15 CPU cores in a test chip on the core tile. This is the first test
65c66ec88fSEmmanuel Vadot          chip called "TC1".
66c66ec88fSEmmanuel Vadot        items:
67c66ec88fSEmmanuel Vadot          - const: arm,vexpress,v2p-ca15,tc1
68c66ec88fSEmmanuel Vadot          - const: arm,vexpress,v2p-ca15
69c66ec88fSEmmanuel Vadot          - const: arm,vexpress
70c66ec88fSEmmanuel Vadot      - description: Coretile Express A15x2 A7x3 (V2P-CA15_A7) has 2 Cortex A15
71c66ec88fSEmmanuel Vadot          CPU cores and 3 Cortex A7 cores in a big.LITTLE MPCore configuration
72c66ec88fSEmmanuel Vadot          in a test chip on the core tile. See ARM DDI 0503I.
73c66ec88fSEmmanuel Vadot        items:
74c66ec88fSEmmanuel Vadot          - const: arm,vexpress,v2p-ca15_a7
75c66ec88fSEmmanuel Vadot          - const: arm,vexpress
76c66ec88fSEmmanuel Vadot      - description: LogicTile Express 20MG (V2F-1XV7) has 2 Cortex A53 CPU
77c66ec88fSEmmanuel Vadot          cores in a test chip on the core tile. See ARM DDI 0498D.
78c66ec88fSEmmanuel Vadot        items:
79c66ec88fSEmmanuel Vadot          - const: arm,vexpress,v2f-1xv7,ca53x2
80c66ec88fSEmmanuel Vadot          - const: arm,vexpress,v2f-1xv7
81c66ec88fSEmmanuel Vadot          - const: arm,vexpress
82c66ec88fSEmmanuel Vadot      - description: Arm Versatile Express Juno "r0" (the first Juno board,
83c66ec88fSEmmanuel Vadot          V2M-Juno) was introduced as a vehicle for evaluating big.LITTLE on
84c66ec88fSEmmanuel Vadot          AArch64 CPU cores. It has 2 Cortex A57 CPU cores and 4 Cortex A53
85c66ec88fSEmmanuel Vadot          cores in a big.LITTLE configuration. It also features the MALI T624
86c66ec88fSEmmanuel Vadot          GPU. See ARM document 100113_0000_07_en.
87c66ec88fSEmmanuel Vadot        items:
88c66ec88fSEmmanuel Vadot          - const: arm,juno
89c66ec88fSEmmanuel Vadot          - const: arm,vexpress
90c66ec88fSEmmanuel Vadot      - description: Arm Versatile Express Juno r1 Development Platform
91c66ec88fSEmmanuel Vadot          (V2M-Juno r1) was introduced mainly aimed at development of PCIe
92c66ec88fSEmmanuel Vadot          based systems. Juno r1 also has support for AXI masters placed on
93c66ec88fSEmmanuel Vadot          the TLX connectors to join the coherency domain. Otherwise it is the
94c66ec88fSEmmanuel Vadot          same configuration as Juno r0. See ARM document 100122_0100_06_en.
95c66ec88fSEmmanuel Vadot        items:
96c66ec88fSEmmanuel Vadot          - const: arm,juno-r1
97c66ec88fSEmmanuel Vadot          - const: arm,juno
98c66ec88fSEmmanuel Vadot          - const: arm,vexpress
99c66ec88fSEmmanuel Vadot      - description: Arm Versatile Express Juno r2 Development Platform
100c66ec88fSEmmanuel Vadot          (V2M-Juno r2). It has the same feature set as Juno r0 and r1. See
101c66ec88fSEmmanuel Vadot          ARM document 100114_0200_04_en.
102c66ec88fSEmmanuel Vadot        items:
103c66ec88fSEmmanuel Vadot          - const: arm,juno-r2
104c66ec88fSEmmanuel Vadot          - const: arm,juno
105c66ec88fSEmmanuel Vadot          - const: arm,vexpress
106c66ec88fSEmmanuel Vadot      - description: Arm AEMv8a Versatile Express Real-Time System Model
107c66ec88fSEmmanuel Vadot          (VE RTSM) is a programmers view of the Versatile Express with Arm
108c66ec88fSEmmanuel Vadot          v8A hardware. See ARM DUI 0575D.
109c66ec88fSEmmanuel Vadot        items:
110c66ec88fSEmmanuel Vadot          - const: arm,rtsm_ve,aemv8a
111c66ec88fSEmmanuel Vadot          - const: arm,vexpress
112c66ec88fSEmmanuel Vadot      - description: Arm FVP (Fixed Virtual Platform) base model revision C
113c66ec88fSEmmanuel Vadot          See ARM Document 100964_1190_00_en.
114c66ec88fSEmmanuel Vadot        items:
115c66ec88fSEmmanuel Vadot          - const: arm,fvp-base-revc
116c66ec88fSEmmanuel Vadot          - const: arm,vexpress
117c66ec88fSEmmanuel Vadot      - description: Arm Foundation model for Aarch64
118c66ec88fSEmmanuel Vadot        items:
119c66ec88fSEmmanuel Vadot          - const: arm,foundation-aarch64
120c66ec88fSEmmanuel Vadot          - const: arm,vexpress
121c66ec88fSEmmanuel Vadot
122c66ec88fSEmmanuel Vadot  arm,vexpress,position:
123c66ec88fSEmmanuel Vadot    description: When daughterboards are stacked on one site, their position
124c66ec88fSEmmanuel Vadot      in the stack be be described this attribute.
125f126890aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
126c66ec88fSEmmanuel Vadot    minimum: 0
127c66ec88fSEmmanuel Vadot    maximum: 3
128c66ec88fSEmmanuel Vadot
129c66ec88fSEmmanuel Vadot  arm,vexpress,dcc:
130c66ec88fSEmmanuel Vadot    description: When describing tiles consisting of more than one DCC, its
131c66ec88fSEmmanuel Vadot      number can be specified with this attribute.
132f126890aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
133c66ec88fSEmmanuel Vadot    minimum: 0
134c66ec88fSEmmanuel Vadot    maximum: 3
135c66ec88fSEmmanuel Vadot
136c66ec88fSEmmanuel VadotpatternProperties:
137c66ec88fSEmmanuel Vadot  "^bus@[0-9a-f]+$":
138c66ec88fSEmmanuel Vadot    description: Static Memory Bus (SMB) node, if this exists it describes
139c66ec88fSEmmanuel Vadot      the connection between the motherboard and any tiles. Sometimes the
140c66ec88fSEmmanuel Vadot      compatible is placed directly under this node, sometimes it is placed
1418cc087a1SEmmanuel Vadot      in a subnode named "motherboard-bus". Sometimes the compatible includes
142c66ec88fSEmmanuel Vadot      "arm,vexpress,v2?-p1" sometimes (on software models) is is just
1438cc087a1SEmmanuel Vadot      "simple-bus". If the compatible is placed in the "motherboard-bus" node,
144c66ec88fSEmmanuel Vadot      it is stricter and always has two compatibles.
145c66ec88fSEmmanuel Vadot    type: object
146*aa1a8ff2SEmmanuel Vadot    $ref: /schemas/simple-bus.yaml
147fac71e4eSEmmanuel Vadot    unevaluatedProperties: false
148c66ec88fSEmmanuel Vadot
149c66ec88fSEmmanuel Vadot    properties:
150c66ec88fSEmmanuel Vadot      compatible:
151c66ec88fSEmmanuel Vadot        oneOf:
152c66ec88fSEmmanuel Vadot          - items:
153c66ec88fSEmmanuel Vadot              - enum:
154c66ec88fSEmmanuel Vadot                  - arm,vexpress,v2m-p1
155c66ec88fSEmmanuel Vadot                  - arm,vexpress,v2p-p1
156c66ec88fSEmmanuel Vadot              - const: simple-bus
157c66ec88fSEmmanuel Vadot          - const: simple-bus
1588cc087a1SEmmanuel Vadot
1598cc087a1SEmmanuel Vadot    patternProperties:
1608cc087a1SEmmanuel Vadot      '^motherboard-bus@':
161c66ec88fSEmmanuel Vadot        type: object
162c66ec88fSEmmanuel Vadot        description: The motherboard description provides a single "motherboard"
163c66ec88fSEmmanuel Vadot          node using 2 address cells corresponding to the Static Memory Bus
164c66ec88fSEmmanuel Vadot          used between the motherboard and the tile. The first cell defines the
165c66ec88fSEmmanuel Vadot          Chip Select (CS) line number, the second cell address offset within
166c66ec88fSEmmanuel Vadot          the CS. All interrupt lines between the motherboard and the tile
167c66ec88fSEmmanuel Vadot          are active high and are described using single cell.
168c66ec88fSEmmanuel Vadot        properties:
169c66ec88fSEmmanuel Vadot          "#address-cells":
170c66ec88fSEmmanuel Vadot            const: 2
171c66ec88fSEmmanuel Vadot          "#size-cells":
172c66ec88fSEmmanuel Vadot            const: 1
1738cc087a1SEmmanuel Vadot          ranges: true
1748cc087a1SEmmanuel Vadot
175c66ec88fSEmmanuel Vadot          compatible:
176c66ec88fSEmmanuel Vadot            items:
177c66ec88fSEmmanuel Vadot              - enum:
178c66ec88fSEmmanuel Vadot                  - arm,vexpress,v2m-p1
179c66ec88fSEmmanuel Vadot                  - arm,vexpress,v2p-p1
180c66ec88fSEmmanuel Vadot              - const: simple-bus
181c66ec88fSEmmanuel Vadot          arm,v2m-memory-map:
182c66ec88fSEmmanuel Vadot            description: This describes the memory map type.
183f126890aSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/string
184c66ec88fSEmmanuel Vadot            enum:
185c66ec88fSEmmanuel Vadot              - rs1
186c66ec88fSEmmanuel Vadot              - rs2
187c66ec88fSEmmanuel Vadot
1888cc087a1SEmmanuel Vadot          arm,hbi:
189f126890aSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
1908cc087a1SEmmanuel Vadot            description: This indicates the ARM HBI (Hardware Board ID), this is
1918cc087a1SEmmanuel Vadot              ARM's unique board model ID, visible on the PCB's silkscreen.
1928cc087a1SEmmanuel Vadot
1938cc087a1SEmmanuel Vadot          arm,vexpress,site:
1948cc087a1SEmmanuel Vadot            description: As Versatile Express can be configured in number of physically
1958cc087a1SEmmanuel Vadot              different setups, the device tree should describe platform topology.
1968cc087a1SEmmanuel Vadot              For this reason the root node and main motherboard node must define this
1978cc087a1SEmmanuel Vadot              property, describing the physical location of the children nodes.
1988cc087a1SEmmanuel Vadot              0 means motherboard site, while 1 and 2 are daughterboard sites, and
1998cc087a1SEmmanuel Vadot              0xf means "sisterboard" which is the site containing the main CPU tile.
200f126890aSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
2018cc087a1SEmmanuel Vadot            minimum: 0
2028cc087a1SEmmanuel Vadot            maximum: 15
2038cc087a1SEmmanuel Vadot
204c66ec88fSEmmanuel Vadot        required:
205c66ec88fSEmmanuel Vadot          - compatible
2068cc087a1SEmmanuel Vadot
2078cc087a1SEmmanuel Vadot        additionalProperties:
2088cc087a1SEmmanuel Vadot          type: object
2098cc087a1SEmmanuel Vadot
210c66ec88fSEmmanuel Vadot    required:
211c66ec88fSEmmanuel Vadot      - compatible
212c66ec88fSEmmanuel Vadot
213c66ec88fSEmmanuel VadotallOf:
214c66ec88fSEmmanuel Vadot  - if:
215c66ec88fSEmmanuel Vadot      properties:
216c66ec88fSEmmanuel Vadot        compatible:
217c66ec88fSEmmanuel Vadot          contains:
218c66ec88fSEmmanuel Vadot            enum:
219c66ec88fSEmmanuel Vadot              - arm,vexpress,v2p-ca9
220c66ec88fSEmmanuel Vadot              - arm,vexpress,v2p-ca5s
221c66ec88fSEmmanuel Vadot              - arm,vexpress,v2p-ca15
222c66ec88fSEmmanuel Vadot              - arm,vexpress,v2p-ca15_a7
223c66ec88fSEmmanuel Vadot              - arm,vexpress,v2f-1xv7,ca53x2
224c66ec88fSEmmanuel Vadot    then:
225c66ec88fSEmmanuel Vadot      required:
226c66ec88fSEmmanuel Vadot        - arm,hbi
227c66ec88fSEmmanuel Vadot
2286be33864SEmmanuel VadotadditionalProperties: true
2296be33864SEmmanuel Vadot
230c66ec88fSEmmanuel Vadot...
231