18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/arm/arm,vexpress-juno.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: ARM Versatile Express and Juno Boards Device Tree Bindings
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Sudeep Holla <sudeep.holla@arm.com>
118c2ecf20Sopenharmony_ci  - Linus Walleij <linus.walleij@linaro.org>
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_cidescription: |+
148c2ecf20Sopenharmony_ci  ARM's Versatile Express platform were built as reference designs for exploring
158c2ecf20Sopenharmony_ci  multicore Cortex-A class systems. The Versatile Express family contains both
168c2ecf20Sopenharmony_ci  32 bit (Aarch32) and 64 bit (Aarch64) systems.
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci  The board consist of a motherboard and one or more daughterboards (tiles). The
198c2ecf20Sopenharmony_ci  motherboard provides a set of peripherals. Processor and RAM "live" on the
208c2ecf20Sopenharmony_ci  tiles.
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci  The motherboard and each core tile should be described by a separate Device
238c2ecf20Sopenharmony_ci  Tree source file, with the tile's description including the motherboard file
248c2ecf20Sopenharmony_ci  using an include directive. As the motherboard can be initialized in one of
258c2ecf20Sopenharmony_ci  two different configurations ("memory maps"), care must be taken to include
268c2ecf20Sopenharmony_ci  the correct one.
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci  When a new generation of boards were introduced under the name "Juno", these
298c2ecf20Sopenharmony_ci  shared to many common characteristics with the Versatile Express that the
308c2ecf20Sopenharmony_ci  "arm,vexpress" compatible was retained in the root node, and these are
318c2ecf20Sopenharmony_ci  included in this binding schema as well.
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ci  The root node indicates the CPU SoC on the core tile, and this
348c2ecf20Sopenharmony_ci  is a daughterboard to the main motherboard. The name used in the compatible
358c2ecf20Sopenharmony_ci  string shall match the name given in the core tile's technical reference
368c2ecf20Sopenharmony_ci  manual, followed by "arm,vexpress" as an additional compatible value. If
378c2ecf20Sopenharmony_ci  further subvariants are released of the core tile, even more fine-granular
388c2ecf20Sopenharmony_ci  compatible strings with up to three compatible strings are used.
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ciproperties:
418c2ecf20Sopenharmony_ci  $nodename:
428c2ecf20Sopenharmony_ci    const: '/'
438c2ecf20Sopenharmony_ci  compatible:
448c2ecf20Sopenharmony_ci    oneOf:
458c2ecf20Sopenharmony_ci      - description: CoreTile Express A9x4 (V2P-CA9) has 4 Cortex A9 CPU cores
468c2ecf20Sopenharmony_ci          in MPCore configuration in a test chip on the core tile. See ARM
478c2ecf20Sopenharmony_ci          DUI 0448I. This was the first Versatile Express platform.
488c2ecf20Sopenharmony_ci        items:
498c2ecf20Sopenharmony_ci          - const: arm,vexpress,v2p-ca9
508c2ecf20Sopenharmony_ci          - const: arm,vexpress
518c2ecf20Sopenharmony_ci      - description: CoreTile Express A5x2 (V2P-CA5s) has 2 Cortex A5 CPU cores
528c2ecf20Sopenharmony_ci          in a test chip on the core tile. It is intended to evaluate NEON, FPU
538c2ecf20Sopenharmony_ci          and Jazelle support in the Cortex A5 family. See ARM DUI 0541C.
548c2ecf20Sopenharmony_ci        items:
558c2ecf20Sopenharmony_ci          - const: arm,vexpress,v2p-ca5s
568c2ecf20Sopenharmony_ci          - const: arm,vexpress
578c2ecf20Sopenharmony_ci      - description: Coretile Express A15x2 (V2P-CA15) has 2 Cortex A15 CPU
588c2ecf20Sopenharmony_ci          cores in a MPCore configuration in a test chip on the core tile. See
598c2ecf20Sopenharmony_ci          ARM DUI 0604F.
608c2ecf20Sopenharmony_ci        items:
618c2ecf20Sopenharmony_ci          - const: arm,vexpress,v2p-ca15
628c2ecf20Sopenharmony_ci          - const: arm,vexpress
638c2ecf20Sopenharmony_ci      - description: CoreTile Express A15x4 (V2P-CA15, HBI-0237A) has 4 Cortex
648c2ecf20Sopenharmony_ci          A15 CPU cores in a test chip on the core tile. This is the first test
658c2ecf20Sopenharmony_ci          chip called "TC1".
668c2ecf20Sopenharmony_ci        items:
678c2ecf20Sopenharmony_ci          - const: arm,vexpress,v2p-ca15,tc1
688c2ecf20Sopenharmony_ci          - const: arm,vexpress,v2p-ca15
698c2ecf20Sopenharmony_ci          - const: arm,vexpress
708c2ecf20Sopenharmony_ci      - description: Coretile Express A15x2 A7x3 (V2P-CA15_A7) has 2 Cortex A15
718c2ecf20Sopenharmony_ci          CPU cores and 3 Cortex A7 cores in a big.LITTLE MPCore configuration
728c2ecf20Sopenharmony_ci          in a test chip on the core tile. See ARM DDI 0503I.
738c2ecf20Sopenharmony_ci        items:
748c2ecf20Sopenharmony_ci          - const: arm,vexpress,v2p-ca15_a7
758c2ecf20Sopenharmony_ci          - const: arm,vexpress
768c2ecf20Sopenharmony_ci      - description: LogicTile Express 20MG (V2F-1XV7) has 2 Cortex A53 CPU
778c2ecf20Sopenharmony_ci          cores in a test chip on the core tile. See ARM DDI 0498D.
788c2ecf20Sopenharmony_ci        items:
798c2ecf20Sopenharmony_ci          - const: arm,vexpress,v2f-1xv7,ca53x2
808c2ecf20Sopenharmony_ci          - const: arm,vexpress,v2f-1xv7
818c2ecf20Sopenharmony_ci          - const: arm,vexpress
828c2ecf20Sopenharmony_ci      - description: Arm Versatile Express Juno "r0" (the first Juno board,
838c2ecf20Sopenharmony_ci          V2M-Juno) was introduced as a vehicle for evaluating big.LITTLE on
848c2ecf20Sopenharmony_ci          AArch64 CPU cores. It has 2 Cortex A57 CPU cores and 4 Cortex A53
858c2ecf20Sopenharmony_ci          cores in a big.LITTLE configuration. It also features the MALI T624
868c2ecf20Sopenharmony_ci          GPU. See ARM document 100113_0000_07_en.
878c2ecf20Sopenharmony_ci        items:
888c2ecf20Sopenharmony_ci          - const: arm,juno
898c2ecf20Sopenharmony_ci          - const: arm,vexpress
908c2ecf20Sopenharmony_ci      - description: Arm Versatile Express Juno r1 Development Platform
918c2ecf20Sopenharmony_ci          (V2M-Juno r1) was introduced mainly aimed at development of PCIe
928c2ecf20Sopenharmony_ci          based systems. Juno r1 also has support for AXI masters placed on
938c2ecf20Sopenharmony_ci          the TLX connectors to join the coherency domain. Otherwise it is the
948c2ecf20Sopenharmony_ci          same configuration as Juno r0. See ARM document 100122_0100_06_en.
958c2ecf20Sopenharmony_ci        items:
968c2ecf20Sopenharmony_ci          - const: arm,juno-r1
978c2ecf20Sopenharmony_ci          - const: arm,juno
988c2ecf20Sopenharmony_ci          - const: arm,vexpress
998c2ecf20Sopenharmony_ci      - description: Arm Versatile Express Juno r2 Development Platform
1008c2ecf20Sopenharmony_ci          (V2M-Juno r2). It has the same feature set as Juno r0 and r1. See
1018c2ecf20Sopenharmony_ci          ARM document 100114_0200_04_en.
1028c2ecf20Sopenharmony_ci        items:
1038c2ecf20Sopenharmony_ci          - const: arm,juno-r2
1048c2ecf20Sopenharmony_ci          - const: arm,juno
1058c2ecf20Sopenharmony_ci          - const: arm,vexpress
1068c2ecf20Sopenharmony_ci      - description: Arm AEMv8a Versatile Express Real-Time System Model
1078c2ecf20Sopenharmony_ci          (VE RTSM) is a programmers view of the Versatile Express with Arm
1088c2ecf20Sopenharmony_ci          v8A hardware. See ARM DUI 0575D.
1098c2ecf20Sopenharmony_ci        items:
1108c2ecf20Sopenharmony_ci          - const: arm,rtsm_ve,aemv8a
1118c2ecf20Sopenharmony_ci          - const: arm,vexpress
1128c2ecf20Sopenharmony_ci      - description: Arm FVP (Fixed Virtual Platform) base model revision C
1138c2ecf20Sopenharmony_ci          See ARM Document 100964_1190_00_en.
1148c2ecf20Sopenharmony_ci        items:
1158c2ecf20Sopenharmony_ci          - const: arm,fvp-base-revc
1168c2ecf20Sopenharmony_ci          - const: arm,vexpress
1178c2ecf20Sopenharmony_ci      - description: Arm Foundation model for Aarch64
1188c2ecf20Sopenharmony_ci        items:
1198c2ecf20Sopenharmony_ci          - const: arm,foundation-aarch64
1208c2ecf20Sopenharmony_ci          - const: arm,vexpress
1218c2ecf20Sopenharmony_ci
1228c2ecf20Sopenharmony_ci  arm,hbi:
1238c2ecf20Sopenharmony_ci    $ref: '/schemas/types.yaml#/definitions/uint32'
1248c2ecf20Sopenharmony_ci    description: This indicates the ARM HBI (Hardware Board ID), this is
1258c2ecf20Sopenharmony_ci      ARM's unique board model ID, visible on the PCB's silkscreen.
1268c2ecf20Sopenharmony_ci
1278c2ecf20Sopenharmony_ci  arm,vexpress,site:
1288c2ecf20Sopenharmony_ci    description: As Versatile Express can be configured in number of physically
1298c2ecf20Sopenharmony_ci      different setups, the device tree should describe platform topology.
1308c2ecf20Sopenharmony_ci      For this reason the root node and main motherboard node must define this
1318c2ecf20Sopenharmony_ci      property, describing the physical location of the children nodes.
1328c2ecf20Sopenharmony_ci      0 means motherboard site, while 1 and 2 are daughterboard sites, and
1338c2ecf20Sopenharmony_ci      0xf means "sisterboard" which is the site containing the main CPU tile.
1348c2ecf20Sopenharmony_ci    $ref: '/schemas/types.yaml#/definitions/uint32'
1358c2ecf20Sopenharmony_ci    minimum: 0
1368c2ecf20Sopenharmony_ci    maximum: 15
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ci  arm,vexpress,position:
1398c2ecf20Sopenharmony_ci    description: When daughterboards are stacked on one site, their position
1408c2ecf20Sopenharmony_ci      in the stack be be described this attribute.
1418c2ecf20Sopenharmony_ci    $ref: '/schemas/types.yaml#/definitions/uint32'
1428c2ecf20Sopenharmony_ci    minimum: 0
1438c2ecf20Sopenharmony_ci    maximum: 3
1448c2ecf20Sopenharmony_ci
1458c2ecf20Sopenharmony_ci  arm,vexpress,dcc:
1468c2ecf20Sopenharmony_ci    description: When describing tiles consisting of more than one DCC, its
1478c2ecf20Sopenharmony_ci      number can be specified with this attribute.
1488c2ecf20Sopenharmony_ci    $ref: '/schemas/types.yaml#/definitions/uint32'
1498c2ecf20Sopenharmony_ci    minimum: 0
1508c2ecf20Sopenharmony_ci    maximum: 3
1518c2ecf20Sopenharmony_ci
1528c2ecf20Sopenharmony_cipatternProperties:
1538c2ecf20Sopenharmony_ci  "^bus@[0-9a-f]+$":
1548c2ecf20Sopenharmony_ci    description: Static Memory Bus (SMB) node, if this exists it describes
1558c2ecf20Sopenharmony_ci      the connection between the motherboard and any tiles. Sometimes the
1568c2ecf20Sopenharmony_ci      compatible is placed directly under this node, sometimes it is placed
1578c2ecf20Sopenharmony_ci      in a subnode named "motherboard". Sometimes the compatible includes
1588c2ecf20Sopenharmony_ci      "arm,vexpress,v2?-p1" sometimes (on software models) is is just
1598c2ecf20Sopenharmony_ci      "simple-bus". If the compatible is placed in the "motherboard" node,
1608c2ecf20Sopenharmony_ci      it is stricter and always has two compatibles.
1618c2ecf20Sopenharmony_ci    type: object
1628c2ecf20Sopenharmony_ci    $ref: '/schemas/simple-bus.yaml'
1638c2ecf20Sopenharmony_ci
1648c2ecf20Sopenharmony_ci    properties:
1658c2ecf20Sopenharmony_ci      compatible:
1668c2ecf20Sopenharmony_ci        oneOf:
1678c2ecf20Sopenharmony_ci          - items:
1688c2ecf20Sopenharmony_ci              - enum:
1698c2ecf20Sopenharmony_ci                  - arm,vexpress,v2m-p1
1708c2ecf20Sopenharmony_ci                  - arm,vexpress,v2p-p1
1718c2ecf20Sopenharmony_ci              - const: simple-bus
1728c2ecf20Sopenharmony_ci          - const: simple-bus
1738c2ecf20Sopenharmony_ci      motherboard:
1748c2ecf20Sopenharmony_ci        type: object
1758c2ecf20Sopenharmony_ci        description: The motherboard description provides a single "motherboard"
1768c2ecf20Sopenharmony_ci          node using 2 address cells corresponding to the Static Memory Bus
1778c2ecf20Sopenharmony_ci          used between the motherboard and the tile. The first cell defines the
1788c2ecf20Sopenharmony_ci          Chip Select (CS) line number, the second cell address offset within
1798c2ecf20Sopenharmony_ci          the CS. All interrupt lines between the motherboard and the tile
1808c2ecf20Sopenharmony_ci          are active high and are described using single cell.
1818c2ecf20Sopenharmony_ci        properties:
1828c2ecf20Sopenharmony_ci          "#address-cells":
1838c2ecf20Sopenharmony_ci            const: 2
1848c2ecf20Sopenharmony_ci          "#size-cells":
1858c2ecf20Sopenharmony_ci            const: 1
1868c2ecf20Sopenharmony_ci          compatible:
1878c2ecf20Sopenharmony_ci            items:
1888c2ecf20Sopenharmony_ci              - enum:
1898c2ecf20Sopenharmony_ci                  - arm,vexpress,v2m-p1
1908c2ecf20Sopenharmony_ci                  - arm,vexpress,v2p-p1
1918c2ecf20Sopenharmony_ci              - const: simple-bus
1928c2ecf20Sopenharmony_ci          arm,v2m-memory-map:
1938c2ecf20Sopenharmony_ci            description: This describes the memory map type.
1948c2ecf20Sopenharmony_ci            $ref: '/schemas/types.yaml#/definitions/string'
1958c2ecf20Sopenharmony_ci            enum:
1968c2ecf20Sopenharmony_ci              - rs1
1978c2ecf20Sopenharmony_ci              - rs2
1988c2ecf20Sopenharmony_ci
1998c2ecf20Sopenharmony_ci        required:
2008c2ecf20Sopenharmony_ci          - compatible
2018c2ecf20Sopenharmony_ci    required:
2028c2ecf20Sopenharmony_ci      - compatible
2038c2ecf20Sopenharmony_ci
2048c2ecf20Sopenharmony_ciallOf:
2058c2ecf20Sopenharmony_ci  - if:
2068c2ecf20Sopenharmony_ci      properties:
2078c2ecf20Sopenharmony_ci        compatible:
2088c2ecf20Sopenharmony_ci          contains:
2098c2ecf20Sopenharmony_ci            enum:
2108c2ecf20Sopenharmony_ci              - arm,vexpress,v2p-ca9
2118c2ecf20Sopenharmony_ci              - arm,vexpress,v2p-ca5s
2128c2ecf20Sopenharmony_ci              - arm,vexpress,v2p-ca15
2138c2ecf20Sopenharmony_ci              - arm,vexpress,v2p-ca15_a7
2148c2ecf20Sopenharmony_ci              - arm,vexpress,v2f-1xv7,ca53x2
2158c2ecf20Sopenharmony_ci    then:
2168c2ecf20Sopenharmony_ci      required:
2178c2ecf20Sopenharmony_ci        - arm,hbi
2188c2ecf20Sopenharmony_ci
2198c2ecf20Sopenharmony_ciadditionalProperties: true
2208c2ecf20Sopenharmony_ci
2218c2ecf20Sopenharmony_ci...
222