1*20ca5516SBeleswar Padhi// SPDX-License-Identifier: GPL-2.0-only OR MIT 2*20ca5516SBeleswar Padhi/** 3*20ca5516SBeleswar Padhi * Device Tree Source for enabling IPC using TI SDK firmware on J721E SoCs 4*20ca5516SBeleswar Padhi * 5*20ca5516SBeleswar Padhi * Copyright (C) 2018-2025 Texas Instruments Incorporated - https://www.ti.com/ 6*20ca5516SBeleswar Padhi */ 7*20ca5516SBeleswar Padhi 8*20ca5516SBeleswar Padhi&reserved_memory { 9*20ca5516SBeleswar Padhi mcu_r5fss0_core1_dma_memory_region: memory@a1000000 { 10*20ca5516SBeleswar Padhi compatible = "shared-dma-pool"; 11*20ca5516SBeleswar Padhi reg = <0x00 0xa1000000 0x00 0x100000>; 12*20ca5516SBeleswar Padhi no-map; 13*20ca5516SBeleswar Padhi }; 14*20ca5516SBeleswar Padhi 15*20ca5516SBeleswar Padhi mcu_r5fss0_core1_memory_region: memory@a1100000 { 16*20ca5516SBeleswar Padhi compatible = "shared-dma-pool"; 17*20ca5516SBeleswar Padhi reg = <0x00 0xa1100000 0x00 0xf00000>; 18*20ca5516SBeleswar Padhi no-map; 19*20ca5516SBeleswar Padhi }; 20*20ca5516SBeleswar Padhi 21*20ca5516SBeleswar Padhi main_r5fss0_core0_dma_memory_region: memory@a2000000 { 22*20ca5516SBeleswar Padhi compatible = "shared-dma-pool"; 23*20ca5516SBeleswar Padhi reg = <0x00 0xa2000000 0x00 0x100000>; 24*20ca5516SBeleswar Padhi no-map; 25*20ca5516SBeleswar Padhi }; 26*20ca5516SBeleswar Padhi 27*20ca5516SBeleswar Padhi main_r5fss0_core0_memory_region: memory@a2100000 { 28*20ca5516SBeleswar Padhi compatible = "shared-dma-pool"; 29*20ca5516SBeleswar Padhi reg = <0x00 0xa2100000 0x00 0xf00000>; 30*20ca5516SBeleswar Padhi no-map; 31*20ca5516SBeleswar Padhi }; 32*20ca5516SBeleswar Padhi 33*20ca5516SBeleswar Padhi main_r5fss0_core1_dma_memory_region: memory@a3000000 { 34*20ca5516SBeleswar Padhi compatible = "shared-dma-pool"; 35*20ca5516SBeleswar Padhi reg = <0x00 0xa3000000 0x00 0x100000>; 36*20ca5516SBeleswar Padhi no-map; 37*20ca5516SBeleswar Padhi }; 38*20ca5516SBeleswar Padhi 39*20ca5516SBeleswar Padhi main_r5fss0_core1_memory_region: memory@a3100000 { 40*20ca5516SBeleswar Padhi compatible = "shared-dma-pool"; 41*20ca5516SBeleswar Padhi reg = <0x00 0xa3100000 0x00 0xf00000>; 42*20ca5516SBeleswar Padhi no-map; 43*20ca5516SBeleswar Padhi }; 44*20ca5516SBeleswar Padhi 45*20ca5516SBeleswar Padhi main_r5fss1_core0_dma_memory_region: memory@a4000000 { 46*20ca5516SBeleswar Padhi compatible = "shared-dma-pool"; 47*20ca5516SBeleswar Padhi reg = <0x00 0xa4000000 0x00 0x100000>; 48*20ca5516SBeleswar Padhi no-map; 49*20ca5516SBeleswar Padhi }; 50*20ca5516SBeleswar Padhi 51*20ca5516SBeleswar Padhi main_r5fss1_core0_memory_region: memory@a4100000 { 52*20ca5516SBeleswar Padhi compatible = "shared-dma-pool"; 53*20ca5516SBeleswar Padhi reg = <0x00 0xa4100000 0x00 0xf00000>; 54*20ca5516SBeleswar Padhi no-map; 55*20ca5516SBeleswar Padhi }; 56*20ca5516SBeleswar Padhi 57*20ca5516SBeleswar Padhi main_r5fss1_core1_dma_memory_region: memory@a5000000 { 58*20ca5516SBeleswar Padhi compatible = "shared-dma-pool"; 59*20ca5516SBeleswar Padhi reg = <0x00 0xa5000000 0x00 0x100000>; 60*20ca5516SBeleswar Padhi no-map; 61*20ca5516SBeleswar Padhi }; 62*20ca5516SBeleswar Padhi 63*20ca5516SBeleswar Padhi main_r5fss1_core1_memory_region: memory@a5100000 { 64*20ca5516SBeleswar Padhi compatible = "shared-dma-pool"; 65*20ca5516SBeleswar Padhi reg = <0x00 0xa5100000 0x00 0xf00000>; 66*20ca5516SBeleswar Padhi no-map; 67*20ca5516SBeleswar Padhi }; 68*20ca5516SBeleswar Padhi 69*20ca5516SBeleswar Padhi /* Carveout locations are flipped due to caching */ 70*20ca5516SBeleswar Padhi c66_1_dma_memory_region: memory@a6000000 { 71*20ca5516SBeleswar Padhi compatible = "shared-dma-pool"; 72*20ca5516SBeleswar Padhi reg = <0x00 0xa6000000 0x00 0x100000>; 73*20ca5516SBeleswar Padhi no-map; 74*20ca5516SBeleswar Padhi }; 75*20ca5516SBeleswar Padhi 76*20ca5516SBeleswar Padhi c66_0_memory_region: memory@a6100000 { 77*20ca5516SBeleswar Padhi compatible = "shared-dma-pool"; 78*20ca5516SBeleswar Padhi reg = <0x00 0xa6100000 0x00 0xf00000>; 79*20ca5516SBeleswar Padhi no-map; 80*20ca5516SBeleswar Padhi }; 81*20ca5516SBeleswar Padhi 82*20ca5516SBeleswar Padhi /* Carveout locations are flipped due to caching */ 83*20ca5516SBeleswar Padhi c66_0_dma_memory_region: memory@a7000000 { 84*20ca5516SBeleswar Padhi compatible = "shared-dma-pool"; 85*20ca5516SBeleswar Padhi reg = <0x00 0xa7000000 0x00 0x100000>; 86*20ca5516SBeleswar Padhi no-map; 87*20ca5516SBeleswar Padhi }; 88*20ca5516SBeleswar Padhi 89*20ca5516SBeleswar Padhi c66_1_memory_region: memory@a7100000 { 90*20ca5516SBeleswar Padhi compatible = "shared-dma-pool"; 91*20ca5516SBeleswar Padhi reg = <0x00 0xa7100000 0x00 0xf00000>; 92*20ca5516SBeleswar Padhi no-map; 93*20ca5516SBeleswar Padhi }; 94*20ca5516SBeleswar Padhi 95*20ca5516SBeleswar Padhi c71_0_dma_memory_region: memory@a8000000 { 96*20ca5516SBeleswar Padhi compatible = "shared-dma-pool"; 97*20ca5516SBeleswar Padhi reg = <0x00 0xa8000000 0x00 0x100000>; 98*20ca5516SBeleswar Padhi no-map; 99*20ca5516SBeleswar Padhi }; 100*20ca5516SBeleswar Padhi 101*20ca5516SBeleswar Padhi c71_0_memory_region: memory@a8100000 { 102*20ca5516SBeleswar Padhi compatible = "shared-dma-pool"; 103*20ca5516SBeleswar Padhi reg = <0x00 0xa8100000 0x00 0xf00000>; 104*20ca5516SBeleswar Padhi no-map; 105*20ca5516SBeleswar Padhi }; 106*20ca5516SBeleswar Padhi 107*20ca5516SBeleswar Padhi rtos_ipc_memory_region: memory@aa000000 { 108*20ca5516SBeleswar Padhi reg = <0x00 0xaa000000 0x00 0x01c00000>; 109*20ca5516SBeleswar Padhi alignment = <0x1000>; 110*20ca5516SBeleswar Padhi no-map; 111*20ca5516SBeleswar Padhi }; 112*20ca5516SBeleswar Padhi}; 113*20ca5516SBeleswar Padhi 114*20ca5516SBeleswar Padhi&mailbox0_cluster0 { 115*20ca5516SBeleswar Padhi status = "okay"; 116*20ca5516SBeleswar Padhi interrupts = <436>; 117*20ca5516SBeleswar Padhi 118*20ca5516SBeleswar Padhi mbox_mcu_r5fss0_core0: mbox-mcu-r5fss0-core0 { 119*20ca5516SBeleswar Padhi ti,mbox-rx = <0 0 0>; 120*20ca5516SBeleswar Padhi ti,mbox-tx = <1 0 0>; 121*20ca5516SBeleswar Padhi }; 122*20ca5516SBeleswar Padhi 123*20ca5516SBeleswar Padhi mbox_mcu_r5fss0_core1: mbox-mcu-r5fss0-core1 { 124*20ca5516SBeleswar Padhi ti,mbox-rx = <2 0 0>; 125*20ca5516SBeleswar Padhi ti,mbox-tx = <3 0 0>; 126*20ca5516SBeleswar Padhi }; 127*20ca5516SBeleswar Padhi}; 128*20ca5516SBeleswar Padhi 129*20ca5516SBeleswar Padhi&mailbox0_cluster1 { 130*20ca5516SBeleswar Padhi status = "okay"; 131*20ca5516SBeleswar Padhi interrupts = <432>; 132*20ca5516SBeleswar Padhi 133*20ca5516SBeleswar Padhi mbox_main_r5fss0_core0: mbox-main-r5fss0-core0 { 134*20ca5516SBeleswar Padhi ti,mbox-rx = <0 0 0>; 135*20ca5516SBeleswar Padhi ti,mbox-tx = <1 0 0>; 136*20ca5516SBeleswar Padhi }; 137*20ca5516SBeleswar Padhi 138*20ca5516SBeleswar Padhi mbox_main_r5fss0_core1: mbox-main-r5fss0-core1 { 139*20ca5516SBeleswar Padhi ti,mbox-rx = <2 0 0>; 140*20ca5516SBeleswar Padhi ti,mbox-tx = <3 0 0>; 141*20ca5516SBeleswar Padhi }; 142*20ca5516SBeleswar Padhi}; 143*20ca5516SBeleswar Padhi 144*20ca5516SBeleswar Padhi&mailbox0_cluster2 { 145*20ca5516SBeleswar Padhi status = "okay"; 146*20ca5516SBeleswar Padhi interrupts = <428>; 147*20ca5516SBeleswar Padhi 148*20ca5516SBeleswar Padhi mbox_main_r5fss1_core0: mbox-main-r5fss1-core0 { 149*20ca5516SBeleswar Padhi ti,mbox-rx = <0 0 0>; 150*20ca5516SBeleswar Padhi ti,mbox-tx = <1 0 0>; 151*20ca5516SBeleswar Padhi }; 152*20ca5516SBeleswar Padhi 153*20ca5516SBeleswar Padhi mbox_main_r5fss1_core1: mbox-main-r5fss1-core1 { 154*20ca5516SBeleswar Padhi ti,mbox-rx = <2 0 0>; 155*20ca5516SBeleswar Padhi ti,mbox-tx = <3 0 0>; 156*20ca5516SBeleswar Padhi }; 157*20ca5516SBeleswar Padhi}; 158*20ca5516SBeleswar Padhi 159*20ca5516SBeleswar Padhi&mailbox0_cluster3 { 160*20ca5516SBeleswar Padhi status = "okay"; 161*20ca5516SBeleswar Padhi interrupts = <424>; 162*20ca5516SBeleswar Padhi 163*20ca5516SBeleswar Padhi mbox_c66_0: mbox-c66-0 { 164*20ca5516SBeleswar Padhi ti,mbox-rx = <0 0 0>; 165*20ca5516SBeleswar Padhi ti,mbox-tx = <1 0 0>; 166*20ca5516SBeleswar Padhi }; 167*20ca5516SBeleswar Padhi 168*20ca5516SBeleswar Padhi mbox_c66_1: mbox-c66-1 { 169*20ca5516SBeleswar Padhi ti,mbox-rx = <2 0 0>; 170*20ca5516SBeleswar Padhi ti,mbox-tx = <3 0 0>; 171*20ca5516SBeleswar Padhi }; 172*20ca5516SBeleswar Padhi}; 173*20ca5516SBeleswar Padhi 174*20ca5516SBeleswar Padhi&mailbox0_cluster4 { 175*20ca5516SBeleswar Padhi status = "okay"; 176*20ca5516SBeleswar Padhi interrupts = <420>; 177*20ca5516SBeleswar Padhi 178*20ca5516SBeleswar Padhi mbox_c71_0: mbox-c71-0 { 179*20ca5516SBeleswar Padhi ti,mbox-rx = <0 0 0>; 180*20ca5516SBeleswar Padhi ti,mbox-tx = <1 0 0>; 181*20ca5516SBeleswar Padhi }; 182*20ca5516SBeleswar Padhi}; 183*20ca5516SBeleswar Padhi 184*20ca5516SBeleswar Padhi/* Timers are used by Remoteproc firmware */ 185*20ca5516SBeleswar Padhi&main_timer0 { 186*20ca5516SBeleswar Padhi status = "reserved"; 187*20ca5516SBeleswar Padhi}; 188*20ca5516SBeleswar Padhi 189*20ca5516SBeleswar Padhi&main_timer1 { 190*20ca5516SBeleswar Padhi status = "reserved"; 191*20ca5516SBeleswar Padhi}; 192*20ca5516SBeleswar Padhi 193*20ca5516SBeleswar Padhi&main_timer2 { 194*20ca5516SBeleswar Padhi status = "reserved"; 195*20ca5516SBeleswar Padhi}; 196*20ca5516SBeleswar Padhi 197*20ca5516SBeleswar Padhi&main_timer12 { 198*20ca5516SBeleswar Padhi status = "reserved"; 199*20ca5516SBeleswar Padhi}; 200*20ca5516SBeleswar Padhi 201*20ca5516SBeleswar Padhi&main_timer13 { 202*20ca5516SBeleswar Padhi status = "reserved"; 203*20ca5516SBeleswar Padhi}; 204*20ca5516SBeleswar Padhi 205*20ca5516SBeleswar Padhi&main_timer14 { 206*20ca5516SBeleswar Padhi status = "reserved"; 207*20ca5516SBeleswar Padhi}; 208*20ca5516SBeleswar Padhi 209*20ca5516SBeleswar Padhi&main_timer15 { 210*20ca5516SBeleswar Padhi status = "reserved"; 211*20ca5516SBeleswar Padhi}; 212*20ca5516SBeleswar Padhi 213*20ca5516SBeleswar Padhi&mcu_r5fss0 { 214*20ca5516SBeleswar Padhi status = "okay"; 215*20ca5516SBeleswar Padhi}; 216*20ca5516SBeleswar Padhi 217*20ca5516SBeleswar Padhi&mcu_r5fss0_core0 { 218*20ca5516SBeleswar Padhi status = "okay"; 219*20ca5516SBeleswar Padhi mboxes = <&mailbox0_cluster0 &mbox_mcu_r5fss0_core0>; 220*20ca5516SBeleswar Padhi memory-region = <&mcu_r5fss0_core0_dma_memory_region>, 221*20ca5516SBeleswar Padhi <&mcu_r5fss0_core0_memory_region>; 222*20ca5516SBeleswar Padhi}; 223*20ca5516SBeleswar Padhi 224*20ca5516SBeleswar Padhi&mcu_r5fss0_core1 { 225*20ca5516SBeleswar Padhi status = "okay"; 226*20ca5516SBeleswar Padhi mboxes = <&mailbox0_cluster0 &mbox_mcu_r5fss0_core1>; 227*20ca5516SBeleswar Padhi memory-region = <&mcu_r5fss0_core1_dma_memory_region>, 228*20ca5516SBeleswar Padhi <&mcu_r5fss0_core1_memory_region>; 229*20ca5516SBeleswar Padhi}; 230*20ca5516SBeleswar Padhi 231*20ca5516SBeleswar Padhi&main_r5fss0 { 232*20ca5516SBeleswar Padhi status = "okay"; 233*20ca5516SBeleswar Padhi ti,cluster-mode = <0>; 234*20ca5516SBeleswar Padhi}; 235*20ca5516SBeleswar Padhi 236*20ca5516SBeleswar Padhi&main_r5fss0_core0 { 237*20ca5516SBeleswar Padhi status = "okay"; 238*20ca5516SBeleswar Padhi mboxes = <&mailbox0_cluster1 &mbox_main_r5fss0_core0>; 239*20ca5516SBeleswar Padhi memory-region = <&main_r5fss0_core0_dma_memory_region>, 240*20ca5516SBeleswar Padhi <&main_r5fss0_core0_memory_region>; 241*20ca5516SBeleswar Padhi}; 242*20ca5516SBeleswar Padhi 243*20ca5516SBeleswar Padhi&main_r5fss0_core1 { 244*20ca5516SBeleswar Padhi status = "okay"; 245*20ca5516SBeleswar Padhi mboxes = <&mailbox0_cluster1 &mbox_main_r5fss0_core1>; 246*20ca5516SBeleswar Padhi memory-region = <&main_r5fss0_core1_dma_memory_region>, 247*20ca5516SBeleswar Padhi <&main_r5fss0_core1_memory_region>; 248*20ca5516SBeleswar Padhi}; 249*20ca5516SBeleswar Padhi 250*20ca5516SBeleswar Padhi&main_r5fss1 { 251*20ca5516SBeleswar Padhi status = "okay"; 252*20ca5516SBeleswar Padhi ti,cluster-mode = <0>; 253*20ca5516SBeleswar Padhi}; 254*20ca5516SBeleswar Padhi 255*20ca5516SBeleswar Padhi&main_r5fss1_core0 { 256*20ca5516SBeleswar Padhi status = "okay"; 257*20ca5516SBeleswar Padhi mboxes = <&mailbox0_cluster2 &mbox_main_r5fss1_core0>; 258*20ca5516SBeleswar Padhi memory-region = <&main_r5fss1_core0_dma_memory_region>, 259*20ca5516SBeleswar Padhi <&main_r5fss1_core0_memory_region>; 260*20ca5516SBeleswar Padhi}; 261*20ca5516SBeleswar Padhi 262*20ca5516SBeleswar Padhi&main_r5fss1_core1 { 263*20ca5516SBeleswar Padhi status = "okay"; 264*20ca5516SBeleswar Padhi mboxes = <&mailbox0_cluster2 &mbox_main_r5fss1_core1>; 265*20ca5516SBeleswar Padhi memory-region = <&main_r5fss1_core1_dma_memory_region>, 266*20ca5516SBeleswar Padhi <&main_r5fss1_core1_memory_region>; 267*20ca5516SBeleswar Padhi}; 268*20ca5516SBeleswar Padhi 269*20ca5516SBeleswar Padhi&c66_0 { 270*20ca5516SBeleswar Padhi status = "okay"; 271*20ca5516SBeleswar Padhi mboxes = <&mailbox0_cluster3 &mbox_c66_0>; 272*20ca5516SBeleswar Padhi memory-region = <&c66_0_dma_memory_region>, 273*20ca5516SBeleswar Padhi <&c66_0_memory_region>; 274*20ca5516SBeleswar Padhi}; 275*20ca5516SBeleswar Padhi 276*20ca5516SBeleswar Padhi&c66_1 { 277*20ca5516SBeleswar Padhi status = "okay"; 278*20ca5516SBeleswar Padhi mboxes = <&mailbox0_cluster3 &mbox_c66_1>; 279*20ca5516SBeleswar Padhi memory-region = <&c66_1_dma_memory_region>, 280*20ca5516SBeleswar Padhi <&c66_1_memory_region>; 281*20ca5516SBeleswar Padhi}; 282*20ca5516SBeleswar Padhi 283*20ca5516SBeleswar Padhi&c71_0 { 284*20ca5516SBeleswar Padhi status = "okay"; 285*20ca5516SBeleswar Padhi mboxes = <&mailbox0_cluster4 &mbox_c71_0>; 286*20ca5516SBeleswar Padhi memory-region = <&c71_0_dma_memory_region>, 287*20ca5516SBeleswar Padhi <&c71_0_memory_region>; 288*20ca5516SBeleswar Padhi}; 289