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 28defcfb2bSLeo Yan#define MPAM_ADDR 0x0 0x5f010000 /* 0x5f01_0000 */ 29defcfb2bSLeo Yan#define UARTCLK_FREQ 3750000 30defcfb2bSLeo Yan 31defcfb2bSLeo Yan#if TARGET_FLAVOUR_FVP 32defcfb2bSLeo Yan#define DPU_ADDR 4000000000 33defcfb2bSLeo Yan#define DPU_IRQ 579 34defcfb2bSLeo Yan#elif TARGET_FLAVOUR_FPGA 35defcfb2bSLeo Yan#define DPU_ADDR 2cc00000 36defcfb2bSLeo Yan#define DPU_IRQ 69 37defcfb2bSLeo Yan#endif 38defcfb2bSLeo Yan 39b3a9737cSLeo Yan#include "tc-common.dtsi" 40b3a9737cSLeo Yan#if TARGET_FLAVOUR_FVP 41b3a9737cSLeo Yan#include "tc-fvp.dtsi" 424e772e6bSLeo Yan#else 434e772e6bSLeo Yan#include "tc-fpga.dtsi" 44b3a9737cSLeo Yan#endif /* TARGET_FLAVOUR_FVP */ 45b3a9737cSLeo Yan#include "tc-base.dtsi" 46f9565b2aSLeo Yan 47f9565b2aSLeo Yan/ { 48f9565b2aSLeo Yan cpus { 49f9565b2aSLeo Yan CPU2:cpu@200 { 50f9565b2aSLeo Yan clocks = <&scmi_dvfs 1>; 51f9565b2aSLeo Yan capacity-dmips-mhz = <MID_CAPACITY>; 52f9565b2aSLeo Yan }; 53f9565b2aSLeo Yan 54f9565b2aSLeo Yan CPU3:cpu@300 { 55f9565b2aSLeo Yan clocks = <&scmi_dvfs 1>; 56f9565b2aSLeo Yan capacity-dmips-mhz = <MID_CAPACITY>; 57f9565b2aSLeo Yan }; 58f9565b2aSLeo Yan 59f9565b2aSLeo Yan CPU6:cpu@600 { 60f9565b2aSLeo Yan clocks = <&scmi_dvfs 2>; 61f9565b2aSLeo Yan capacity-dmips-mhz = <BIG_CAPACITY>; 62f9565b2aSLeo Yan }; 63f9565b2aSLeo Yan 64f9565b2aSLeo Yan CPU7:cpu@700 { 65f9565b2aSLeo Yan clocks = <&scmi_dvfs 2>; 66f9565b2aSLeo Yan capacity-dmips-mhz = <BIG_CAPACITY>; 67f9565b2aSLeo Yan }; 68f9565b2aSLeo Yan }; 69f9565b2aSLeo Yan 70f9565b2aSLeo Yan cpu-pmu { 71f9565b2aSLeo Yan interrupt-affinity = <&CPU0>, <&CPU1>, <&CPU2>, <&CPU3>, 72f9565b2aSLeo Yan <&CPU4>, <&CPU5>, <&CPU6>, <&CPU7>; 73f9565b2aSLeo Yan }; 74f2596ff1SBoyan Karatotev 751401a42cSJagdish Gediya cs-pmu@0 { 761401a42cSJagdish Gediya compatible = "arm,coresight-pmu"; 771401a42cSJagdish Gediya reg = <0x0 MCN_PMU_ADDR(0) 0x0 0xffc>; 781401a42cSJagdish Gediya }; 791401a42cSJagdish Gediya 801401a42cSJagdish Gediya cs-pmu@1 { 811401a42cSJagdish Gediya compatible = "arm,coresight-pmu"; 821401a42cSJagdish Gediya reg = <0x0 MCN_PMU_ADDR(1) 0x0 0xffc>; 831401a42cSJagdish Gediya }; 841401a42cSJagdish Gediya 851401a42cSJagdish Gediya cs-pmu@2 { 861401a42cSJagdish Gediya compatible = "arm,coresight-pmu"; 871401a42cSJagdish Gediya reg = <0x0 MCN_PMU_ADDR(2) 0x0 0xffc>; 881401a42cSJagdish Gediya }; 891401a42cSJagdish Gediya 901401a42cSJagdish Gediya cs-pmu@3 { 911401a42cSJagdish Gediya compatible = "arm,coresight-pmu"; 921401a42cSJagdish Gediya reg = <0x0 MCN_PMU_ADDR(3) 0x0 0xffc>; 931401a42cSJagdish Gediya }; 941401a42cSJagdish Gediya 95*77080f6aSJagdish Gediya spe-pmu-mid { 96*77080f6aSJagdish Gediya status = "okay"; 97*77080f6aSJagdish Gediya }; 98*77080f6aSJagdish Gediya 99*77080f6aSJagdish Gediya spe-pmu-big { 100*77080f6aSJagdish Gediya status = "okay"; 101*77080f6aSJagdish Gediya }; 102*77080f6aSJagdish Gediya 103d3ae6777SJagdish Gediya dsu-pmu { 104d3ae6777SJagdish Gediya compatible = "arm,dsu-pmu"; 105d3ae6777SJagdish Gediya cpus = <&CPU0>, <&CPU1>, <&CPU2>, <&CPU3>, <&CPU4>, <&CPU5>, <&CPU6>, <&CPU7>; 106d3ae6777SJagdish Gediya }; 107d3ae6777SJagdish Gediya 108169eb7daSJagdish Gediya ni-pmu { 109169eb7daSJagdish Gediya compatible = "arm,ni-tower"; 110169eb7daSJagdish Gediya reg = <0x0 0x4f000000 0x0 0x4000000>; 111169eb7daSJagdish Gediya }; 112169eb7daSJagdish Gediya 113f2596ff1SBoyan Karatotev sram: sram@6000000 { 114f2596ff1SBoyan Karatotev cpu_scp_scmi_p2a: scp-shmem@80 { 115f2596ff1SBoyan Karatotev compatible = "arm,scmi-shmem"; 116f2596ff1SBoyan Karatotev reg = <0x80 0x80>; 117f2596ff1SBoyan Karatotev }; 118f2596ff1SBoyan Karatotev }; 119f2596ff1SBoyan Karatotev 120f2596ff1SBoyan Karatotev firmware { 121f2596ff1SBoyan Karatotev scmi { 122f2596ff1SBoyan Karatotev mboxes = <&mbox_db_tx 0 0 0 &mbox_db_rx 0 0 0 &mbox_db_rx 0 0 1>; 123f2596ff1SBoyan Karatotev shmem = <&cpu_scp_scmi_a2p &cpu_scp_scmi_p2a>; 124f2596ff1SBoyan Karatotev }; 125f2596ff1SBoyan Karatotev }; 1262458b387SLeo Yan 127ebc991b3SJagdish Gediya gic: interrupt-controller@GIC_CTRL_ADDR { 128ebc991b3SJagdish Gediya ppi-partitions { 129ebc991b3SJagdish Gediya ppi_partition_little: interrupt-partition-0 { 130ebc991b3SJagdish Gediya affinity = <&CPU0>, <&CPU1>; 131ebc991b3SJagdish Gediya }; 132ebc991b3SJagdish Gediya 133ebc991b3SJagdish Gediya ppi_partition_mid: interrupt-partition-1 { 134ebc991b3SJagdish Gediya affinity = <&CPU2>, <&CPU3>, <&CPU4>, <&CPU5>; 135ebc991b3SJagdish Gediya }; 136ebc991b3SJagdish Gediya 137ebc991b3SJagdish Gediya ppi_partition_big: interrupt-partition-2 { 138ebc991b3SJagdish Gediya affinity = <&CPU6>, <&CPU7>; 139ebc991b3SJagdish Gediya }; 140ebc991b3SJagdish Gediya }; 141ebc991b3SJagdish Gediya }; 142ebc991b3SJagdish Gediya 1432458b387SLeo Yan#if TARGET_FLAVOUR_FVP 1442458b387SLeo Yan smmu_700: iommu@3f000000 { 1452458b387SLeo Yan status = "okay"; 1462458b387SLeo Yan }; 1470458d3acSJackson Cooper-Driver 1480458d3acSJackson Cooper-Driver smmu_700_dpu: iommu@4002a00000 { 1490458d3acSJackson Cooper-Driver status = "okay"; 1500458d3acSJackson Cooper-Driver }; 1514c6960caSBen Horgan#else 1524c6960caSBen Horgan smmu_600: smmu@2ce00000 { 1534c6960caSBen Horgan status = "okay"; 1544c6960caSBen Horgan }; 1552458b387SLeo Yan#endif 1562458b387SLeo Yan 1570458d3acSJackson Cooper-Driver dp0: display@DPU_ADDR { 1580458d3acSJackson Cooper-Driver#if TARGET_FLAVOUR_FVP 1590458d3acSJackson Cooper-Driver iommus = <&smmu_700_dpu 0x000>, <&smmu_700_dpu 0x100>, 1600458d3acSJackson Cooper-Driver <&smmu_700_dpu 0x200>, <&smmu_700_dpu 0x600>; 1614c6960caSBen Horgan#else /* TARGET_FLAVOUR_FPGA */ 1624c6960caSBen Horgan iommus = <&smmu_600 0>, <&smmu_600 1>, <&smmu_600 2>, <&smmu_600 3>, 1634c6960caSBen Horgan <&smmu_600 4>, <&smmu_600 5>, <&smmu_600 6>, <&smmu_600 7>, 1644c6960caSBen Horgan <&smmu_600 8>, <&smmu_600 9>; 1650458d3acSJackson Cooper-Driver#endif 1660458d3acSJackson Cooper-Driver }; 1670458d3acSJackson Cooper-Driver 1682458b387SLeo Yan gpu: gpu@2d000000 { 1692458b387SLeo Yan#if TARGET_FLAVOUR_FVP 1702458b387SLeo Yan iommus = <&smmu_700 0x200>; 1712458b387SLeo Yan#endif 1722458b387SLeo Yan }; 173f9565b2aSLeo Yan}; 174