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