1b3a9737cSLeo Yan/* 2b3a9737cSLeo Yan * Copyright (c) 2020-2024, Arm Limited. All rights reserved. 3b3a9737cSLeo Yan * 4b3a9737cSLeo Yan * SPDX-License-Identifier: BSD-3-Clause 5b3a9737cSLeo Yan */ 6b3a9737cSLeo Yan 7b3a9737cSLeo Yan/dts-v1/; 8b3a9737cSLeo Yan 9b3a9737cSLeo Yan#include <dt-bindings/interrupt-controller/arm-gic.h> 10b3a9737cSLeo Yan#include <dt-bindings/interrupt-controller/irq.h> 11b3a9737cSLeo Yan#include <platform_def.h> 12b3a9737cSLeo Yan 13defcfb2bSLeo Yan#define LIT_CAPACITY 239 14defcfb2bSLeo Yan#define MID_CAPACITY 686 15defcfb2bSLeo Yan#define BIG_CAPACITY 1024 16defcfb2bSLeo Yan 17defcfb2bSLeo Yan#define MHU_TX_ADDR 46040000 /* hex */ 186c069e71SBoyan Karatotev#define MHU_TX_COMPAT "arm,mhuv3" 196c069e71SBoyan Karatotev#define MHU_TX_INT_NAME "" 206c069e71SBoyan Karatotev 21defcfb2bSLeo Yan#define MHU_RX_ADDR 46140000 /* hex */ 226c069e71SBoyan Karatotev#define MHU_RX_COMPAT "arm,mhuv3" 236c069e71SBoyan Karatotev#define MHU_OFFSET 0x10000 246c069e71SBoyan Karatotev#define MHU_MBOX_CELLS 3 256c069e71SBoyan Karatotev#define MHU_RX_INT_NUM 300 266c069e71SBoyan Karatotev#define MHU_RX_INT_NAME "combined-mbx" 276c069e71SBoyan Karatotev 28*7aca660cSJagdish Gediya#define LIT_CPU_PMU_COMPATIBLE "arm,cortex-a520-pmu" 29*7aca660cSJagdish Gediya#define MID_CPU_PMU_COMPATIBLE "arm,cortex-a725-pmu" 30*7aca660cSJagdish Gediya#define BIG_CPU_PMU_COMPATIBLE "arm,cortex-x925-pmu" 31*7aca660cSJagdish Gediya 32defcfb2bSLeo Yan#define MPAM_ADDR 0x0 0x5f010000 /* 0x5f01_0000 */ 33defcfb2bSLeo Yan#define UARTCLK_FREQ 3750000 34defcfb2bSLeo Yan 35defcfb2bSLeo Yan#if TARGET_FLAVOUR_FVP 36defcfb2bSLeo Yan#define DPU_ADDR 4000000000 37defcfb2bSLeo Yan#define DPU_IRQ 579 38defcfb2bSLeo Yan#elif TARGET_FLAVOUR_FPGA 39defcfb2bSLeo Yan#define DPU_ADDR 2cc00000 40defcfb2bSLeo Yan#define DPU_IRQ 69 41defcfb2bSLeo Yan#endif 42defcfb2bSLeo Yan 43b3a9737cSLeo Yan#include "tc-common.dtsi" 44b3a9737cSLeo Yan#if TARGET_FLAVOUR_FVP 45b3a9737cSLeo Yan#include "tc-fvp.dtsi" 464e772e6bSLeo Yan#else 474e772e6bSLeo Yan#include "tc-fpga.dtsi" 48b3a9737cSLeo Yan#endif /* TARGET_FLAVOUR_FVP */ 49b3a9737cSLeo Yan#include "tc-base.dtsi" 50f9565b2aSLeo Yan 51f9565b2aSLeo Yan/ { 52f9565b2aSLeo Yan cpus { 53f9565b2aSLeo Yan CPU2:cpu@200 { 54f9565b2aSLeo Yan clocks = <&scmi_dvfs 1>; 55f9565b2aSLeo Yan capacity-dmips-mhz = <MID_CAPACITY>; 56f9565b2aSLeo Yan }; 57f9565b2aSLeo Yan 58f9565b2aSLeo Yan CPU3:cpu@300 { 59f9565b2aSLeo Yan clocks = <&scmi_dvfs 1>; 60f9565b2aSLeo Yan capacity-dmips-mhz = <MID_CAPACITY>; 61f9565b2aSLeo Yan }; 62f9565b2aSLeo Yan 63f9565b2aSLeo Yan CPU6:cpu@600 { 64f9565b2aSLeo Yan clocks = <&scmi_dvfs 2>; 65f9565b2aSLeo Yan capacity-dmips-mhz = <BIG_CAPACITY>; 66f9565b2aSLeo Yan }; 67f9565b2aSLeo Yan 68f9565b2aSLeo Yan CPU7:cpu@700 { 69f9565b2aSLeo Yan clocks = <&scmi_dvfs 2>; 70f9565b2aSLeo Yan capacity-dmips-mhz = <BIG_CAPACITY>; 71f9565b2aSLeo Yan }; 72f9565b2aSLeo Yan }; 73f9565b2aSLeo Yan 741401a42cSJagdish Gediya cs-pmu@0 { 751401a42cSJagdish Gediya compatible = "arm,coresight-pmu"; 761401a42cSJagdish Gediya reg = <0x0 MCN_PMU_ADDR(0) 0x0 0xffc>; 771401a42cSJagdish Gediya }; 781401a42cSJagdish Gediya 791401a42cSJagdish Gediya cs-pmu@1 { 801401a42cSJagdish Gediya compatible = "arm,coresight-pmu"; 811401a42cSJagdish Gediya reg = <0x0 MCN_PMU_ADDR(1) 0x0 0xffc>; 821401a42cSJagdish Gediya }; 831401a42cSJagdish Gediya 841401a42cSJagdish Gediya cs-pmu@2 { 851401a42cSJagdish Gediya compatible = "arm,coresight-pmu"; 861401a42cSJagdish Gediya reg = <0x0 MCN_PMU_ADDR(2) 0x0 0xffc>; 871401a42cSJagdish Gediya }; 881401a42cSJagdish Gediya 891401a42cSJagdish Gediya cs-pmu@3 { 901401a42cSJagdish Gediya compatible = "arm,coresight-pmu"; 911401a42cSJagdish Gediya reg = <0x0 MCN_PMU_ADDR(3) 0x0 0xffc>; 921401a42cSJagdish Gediya }; 931401a42cSJagdish Gediya 9477080f6aSJagdish Gediya spe-pmu-mid { 9577080f6aSJagdish Gediya status = "okay"; 9677080f6aSJagdish Gediya }; 9777080f6aSJagdish Gediya 9877080f6aSJagdish Gediya spe-pmu-big { 9977080f6aSJagdish Gediya status = "okay"; 10077080f6aSJagdish Gediya }; 10177080f6aSJagdish Gediya 102d3ae6777SJagdish Gediya dsu-pmu { 103d3ae6777SJagdish Gediya compatible = "arm,dsu-pmu"; 104d3ae6777SJagdish Gediya cpus = <&CPU0>, <&CPU1>, <&CPU2>, <&CPU3>, <&CPU4>, <&CPU5>, <&CPU6>, <&CPU7>; 105d3ae6777SJagdish Gediya }; 106d3ae6777SJagdish Gediya 107169eb7daSJagdish Gediya ni-pmu { 108169eb7daSJagdish Gediya compatible = "arm,ni-tower"; 109169eb7daSJagdish Gediya reg = <0x0 0x4f000000 0x0 0x4000000>; 110169eb7daSJagdish Gediya }; 111169eb7daSJagdish Gediya 112f2596ff1SBoyan Karatotev sram: sram@6000000 { 113f2596ff1SBoyan Karatotev cpu_scp_scmi_p2a: scp-shmem@80 { 114f2596ff1SBoyan Karatotev compatible = "arm,scmi-shmem"; 115f2596ff1SBoyan Karatotev reg = <0x80 0x80>; 116f2596ff1SBoyan Karatotev }; 117f2596ff1SBoyan Karatotev }; 118f2596ff1SBoyan Karatotev 119f2596ff1SBoyan Karatotev firmware { 120f2596ff1SBoyan Karatotev scmi { 121f2596ff1SBoyan Karatotev mboxes = <&mbox_db_tx 0 0 0 &mbox_db_rx 0 0 0 &mbox_db_rx 0 0 1>; 122f2596ff1SBoyan Karatotev shmem = <&cpu_scp_scmi_a2p &cpu_scp_scmi_p2a>; 123f2596ff1SBoyan Karatotev }; 124f2596ff1SBoyan Karatotev }; 1252458b387SLeo Yan 126ebc991b3SJagdish Gediya gic: interrupt-controller@GIC_CTRL_ADDR { 127ebc991b3SJagdish Gediya ppi-partitions { 128ebc991b3SJagdish Gediya ppi_partition_little: interrupt-partition-0 { 129ebc991b3SJagdish Gediya affinity = <&CPU0>, <&CPU1>; 130ebc991b3SJagdish Gediya }; 131ebc991b3SJagdish Gediya 132ebc991b3SJagdish Gediya ppi_partition_mid: interrupt-partition-1 { 133ebc991b3SJagdish Gediya affinity = <&CPU2>, <&CPU3>, <&CPU4>, <&CPU5>; 134ebc991b3SJagdish Gediya }; 135ebc991b3SJagdish Gediya 136ebc991b3SJagdish Gediya ppi_partition_big: interrupt-partition-2 { 137ebc991b3SJagdish Gediya affinity = <&CPU6>, <&CPU7>; 138ebc991b3SJagdish Gediya }; 139ebc991b3SJagdish Gediya }; 140ebc991b3SJagdish Gediya }; 141ebc991b3SJagdish Gediya 1422458b387SLeo Yan#if TARGET_FLAVOUR_FVP 1432458b387SLeo Yan smmu_700: iommu@3f000000 { 1442458b387SLeo Yan status = "okay"; 1452458b387SLeo Yan }; 1460458d3acSJackson Cooper-Driver 1470458d3acSJackson Cooper-Driver smmu_700_dpu: iommu@4002a00000 { 1480458d3acSJackson Cooper-Driver status = "okay"; 1490458d3acSJackson Cooper-Driver }; 1504c6960caSBen Horgan#else 1514c6960caSBen Horgan smmu_600: smmu@2ce00000 { 1524c6960caSBen Horgan status = "okay"; 1534c6960caSBen Horgan }; 1542458b387SLeo Yan#endif 1552458b387SLeo Yan 1560458d3acSJackson Cooper-Driver dp0: display@DPU_ADDR { 1570458d3acSJackson Cooper-Driver#if TARGET_FLAVOUR_FVP 1580458d3acSJackson Cooper-Driver iommus = <&smmu_700_dpu 0x000>, <&smmu_700_dpu 0x100>, 1590458d3acSJackson Cooper-Driver <&smmu_700_dpu 0x200>, <&smmu_700_dpu 0x600>; 1604c6960caSBen Horgan#else /* TARGET_FLAVOUR_FPGA */ 1614c6960caSBen Horgan iommus = <&smmu_600 0>, <&smmu_600 1>, <&smmu_600 2>, <&smmu_600 3>, 1624c6960caSBen Horgan <&smmu_600 4>, <&smmu_600 5>, <&smmu_600 6>, <&smmu_600 7>, 1634c6960caSBen Horgan <&smmu_600 8>, <&smmu_600 9>; 1640458d3acSJackson Cooper-Driver#endif 1650458d3acSJackson Cooper-Driver }; 1660458d3acSJackson Cooper-Driver 1672458b387SLeo Yan gpu: gpu@2d000000 { 1682458b387SLeo Yan#if TARGET_FLAVOUR_FVP 1692458b387SLeo Yan iommus = <&smmu_700 0x200>; 1702458b387SLeo Yan#endif 1712458b387SLeo Yan }; 172f9565b2aSLeo Yan}; 173