1*54fd6939SJiyong Park/* 2*54fd6939SJiyong Park * Copyright (c) 2020, Arm Limited. All rights reserved. 3*54fd6939SJiyong Park * 4*54fd6939SJiyong Park * SPDX-License-Identifier: BSD-3-Clause 5*54fd6939SJiyong Park */ 6*54fd6939SJiyong Park 7*54fd6939SJiyong Park/dts-v1/; 8*54fd6939SJiyong Park#include "morello.dtsi" 9*54fd6939SJiyong Park 10*54fd6939SJiyong Park/ { 11*54fd6939SJiyong Park 12*54fd6939SJiyong Park chosen { 13*54fd6939SJiyong Park stdout-path = "serial0:115200n8"; 14*54fd6939SJiyong Park }; 15*54fd6939SJiyong Park 16*54fd6939SJiyong Park reserved-memory { 17*54fd6939SJiyong Park #address-cells = <2>; 18*54fd6939SJiyong Park #size-cells = <2>; 19*54fd6939SJiyong Park ranges; 20*54fd6939SJiyong Park 21*54fd6939SJiyong Park secure-firmware@ff000000 { 22*54fd6939SJiyong Park reg = <0 0xff000000 0 0x01000000>; 23*54fd6939SJiyong Park no-map; 24*54fd6939SJiyong Park }; 25*54fd6939SJiyong Park }; 26*54fd6939SJiyong Park 27*54fd6939SJiyong Park cpus { 28*54fd6939SJiyong Park #address-cells = <2>; 29*54fd6939SJiyong Park #size-cells = <0>; 30*54fd6939SJiyong Park 31*54fd6939SJiyong Park cpu-map { 32*54fd6939SJiyong Park cluster0 { 33*54fd6939SJiyong Park core0 { 34*54fd6939SJiyong Park cpu = <&CPU0>; 35*54fd6939SJiyong Park }; 36*54fd6939SJiyong Park core1 { 37*54fd6939SJiyong Park cpu = <&CPU1>; 38*54fd6939SJiyong Park }; 39*54fd6939SJiyong Park }; 40*54fd6939SJiyong Park cluster1 { 41*54fd6939SJiyong Park core0 { 42*54fd6939SJiyong Park cpu = <&CPU2>; 43*54fd6939SJiyong Park }; 44*54fd6939SJiyong Park core1 { 45*54fd6939SJiyong Park cpu = <&CPU3>; 46*54fd6939SJiyong Park }; 47*54fd6939SJiyong Park }; 48*54fd6939SJiyong Park }; 49*54fd6939SJiyong Park CPU0: cpu0@0 { 50*54fd6939SJiyong Park compatible = "arm,armv8"; 51*54fd6939SJiyong Park reg = <0x0 0x0>; 52*54fd6939SJiyong Park device_type = "cpu"; 53*54fd6939SJiyong Park enable-method = "psci"; 54*54fd6939SJiyong Park clocks = <&scmi_dvfs 0>; 55*54fd6939SJiyong Park }; 56*54fd6939SJiyong Park CPU1: cpu1@100 { 57*54fd6939SJiyong Park compatible = "arm,armv8"; 58*54fd6939SJiyong Park reg = <0x0 0x100>; 59*54fd6939SJiyong Park device_type = "cpu"; 60*54fd6939SJiyong Park enable-method = "psci"; 61*54fd6939SJiyong Park clocks = <&scmi_dvfs 0>; 62*54fd6939SJiyong Park }; 63*54fd6939SJiyong Park CPU2: cpu2@10000 { 64*54fd6939SJiyong Park compatible = "arm,armv8"; 65*54fd6939SJiyong Park reg = <0x0 0x10000>; 66*54fd6939SJiyong Park device_type = "cpu"; 67*54fd6939SJiyong Park enable-method = "psci"; 68*54fd6939SJiyong Park clocks = <&scmi_dvfs 1>; 69*54fd6939SJiyong Park }; 70*54fd6939SJiyong Park CPU3: cpu3@10100 { 71*54fd6939SJiyong Park compatible = "arm,armv8"; 72*54fd6939SJiyong Park reg = <0x0 0x10100>; 73*54fd6939SJiyong Park device_type = "cpu"; 74*54fd6939SJiyong Park enable-method = "psci"; 75*54fd6939SJiyong Park clocks = <&scmi_dvfs 1>; 76*54fd6939SJiyong Park }; 77*54fd6939SJiyong Park }; 78*54fd6939SJiyong Park 79*54fd6939SJiyong Park /* The first bank of memory, memory map is actually provided by UEFI. */ 80*54fd6939SJiyong Park memory@80000000 { 81*54fd6939SJiyong Park #address-cells = <2>; 82*54fd6939SJiyong Park #size-cells = <2>; 83*54fd6939SJiyong Park device_type = "memory"; 84*54fd6939SJiyong Park /* [0x80000000-0xffffffff] */ 85*54fd6939SJiyong Park reg = <0x00000000 0x80000000 0x0 0x80000000>; 86*54fd6939SJiyong Park }; 87*54fd6939SJiyong Park 88*54fd6939SJiyong Park memory@8080000000 { 89*54fd6939SJiyong Park #address-cells = <2>; 90*54fd6939SJiyong Park #size-cells = <2>; 91*54fd6939SJiyong Park device_type = "memory"; 92*54fd6939SJiyong Park /* [0x8080000000-0x83ffffffff] */ 93*54fd6939SJiyong Park reg = <0x00000080 0x80000000 0x1 0x80000000>; 94*54fd6939SJiyong Park }; 95*54fd6939SJiyong Park 96*54fd6939SJiyong Park virtio_block@1c170000 { 97*54fd6939SJiyong Park compatible = "virtio,mmio"; 98*54fd6939SJiyong Park reg = <0x0 0x1c170000 0x0 0x200>; 99*54fd6939SJiyong Park interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 100*54fd6939SJiyong Park }; 101*54fd6939SJiyong Park 102*54fd6939SJiyong Park virtio_net@1c180000 { 103*54fd6939SJiyong Park compatible = "virtio,mmio"; 104*54fd6939SJiyong Park reg = <0x0 0x1c180000 0x0 0x200>; 105*54fd6939SJiyong Park interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; 106*54fd6939SJiyong Park }; 107*54fd6939SJiyong Park 108*54fd6939SJiyong Park virtio_rng@1c190000 { 109*54fd6939SJiyong Park compatible = "virtio,mmio"; 110*54fd6939SJiyong Park reg = <0x0 0x1c190000 0x0 0x200>; 111*54fd6939SJiyong Park interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; 112*54fd6939SJiyong Park }; 113*54fd6939SJiyong Park 114*54fd6939SJiyong Park virtio_p9@1c1a0000 { 115*54fd6939SJiyong Park compatible = "virtio,mmio"; 116*54fd6939SJiyong Park reg = <0x0 0x1c1a0000 0x0 0x200>; 117*54fd6939SJiyong Park interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 118*54fd6939SJiyong Park }; 119*54fd6939SJiyong Park 120*54fd6939SJiyong Park ethernet@1d100000 { 121*54fd6939SJiyong Park compatible = "smsc,lan91c111"; 122*54fd6939SJiyong Park reg = <0x0 0x1d100000 0x0 0x10000>; 123*54fd6939SJiyong Park interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 124*54fd6939SJiyong Park }; 125*54fd6939SJiyong Park 126*54fd6939SJiyong Park kmi@1c150000 { 127*54fd6939SJiyong Park compatible = "arm,pl050", "arm,primecell"; 128*54fd6939SJiyong Park reg = <0x0 0x1c150000 0x0 0x1000>; 129*54fd6939SJiyong Park interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; 130*54fd6939SJiyong Park clocks = <&bp_clock24mhz>, <&bp_clock24mhz>; 131*54fd6939SJiyong Park clock-names = "KMIREFCLK", "apb_pclk"; 132*54fd6939SJiyong Park }; 133*54fd6939SJiyong Park 134*54fd6939SJiyong Park kmi@1c160000 { 135*54fd6939SJiyong Park compatible = "arm,pl050", "arm,primecell"; 136*54fd6939SJiyong Park reg = <0x0 0x1c160000 0x0 0x1000>; 137*54fd6939SJiyong Park interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 138*54fd6939SJiyong Park clocks = <&bp_clock24mhz>, <&bp_clock24mhz>; 139*54fd6939SJiyong Park clock-names = "KMIREFCLK", "apb_pclk"; 140*54fd6939SJiyong Park }; 141*54fd6939SJiyong Park 142*54fd6939SJiyong Park firmware { 143*54fd6939SJiyong Park scmi { 144*54fd6939SJiyong Park compatible = "arm,scmi"; 145*54fd6939SJiyong Park mbox-names = "tx", "rx"; 146*54fd6939SJiyong Park mboxes = <&mailbox 1 0 &mailbox 1 1>; 147*54fd6939SJiyong Park shmem = <&cpu_scp_hpri0 &cpu_scp_hpri1>; 148*54fd6939SJiyong Park #address-cells = <1>; 149*54fd6939SJiyong Park #size-cells = <0>; 150*54fd6939SJiyong Park 151*54fd6939SJiyong Park scmi_dvfs: protocol@13 { 152*54fd6939SJiyong Park reg = <0x13>; 153*54fd6939SJiyong Park #clock-cells = <1>; 154*54fd6939SJiyong Park }; 155*54fd6939SJiyong Park }; 156*54fd6939SJiyong Park }; 157*54fd6939SJiyong Park 158*54fd6939SJiyong Park bp_clock24mhz: clock24mhz { 159*54fd6939SJiyong Park compatible = "fixed-clock"; 160*54fd6939SJiyong Park #clock-cells = <0>; 161*54fd6939SJiyong Park clock-frequency = <24000000>; 162*54fd6939SJiyong Park clock-output-names = "bp:clock24mhz"; 163*54fd6939SJiyong Park }; 164*54fd6939SJiyong Park}; 165*54fd6939SJiyong Park 166*54fd6939SJiyong Park&gic { 167*54fd6939SJiyong Park reg = <0x0 0x30000000 0 0x10000>, /* GICD */ 168*54fd6939SJiyong Park <0x0 0x300c0000 0 0x80000>; /* GICR */ 169*54fd6939SJiyong Park interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 170*54fd6939SJiyong Park}; 171