1*aa1a8ff2SEmmanuel 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/remoteproc/ti,k3-dsp-rproc.yaml# 5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6c66ec88fSEmmanuel Vadot 7c66ec88fSEmmanuel Vadottitle: TI K3 DSP devices 8c66ec88fSEmmanuel Vadot 9c66ec88fSEmmanuel Vadotmaintainers: 10c66ec88fSEmmanuel Vadot - Suman Anna <s-anna@ti.com> 11c66ec88fSEmmanuel Vadot 12c66ec88fSEmmanuel Vadotdescription: | 13c66ec88fSEmmanuel Vadot The TI K3 family of SoCs usually have one or more TI DSP Core sub-systems 14c66ec88fSEmmanuel Vadot that are used to offload some of the processor-intensive tasks or algorithms, 15c66ec88fSEmmanuel Vadot for achieving various system level goals. 16c66ec88fSEmmanuel Vadot 17c66ec88fSEmmanuel Vadot These processor sub-systems usually contain additional sub-modules like 18c66ec88fSEmmanuel Vadot L1 and/or L2 caches/SRAMs, an Interrupt Controller, an external memory 19c66ec88fSEmmanuel Vadot controller, a dedicated local power/sleep controller etc. The DSP processor 20c66ec88fSEmmanuel Vadot cores in the K3 SoCs are usually either a TMS320C66x CorePac processor or a 21c66ec88fSEmmanuel Vadot TMS320C71x CorePac processor. 22c66ec88fSEmmanuel Vadot 23c66ec88fSEmmanuel Vadot Each DSP Core sub-system is represented as a single DT node. Each node has a 24c66ec88fSEmmanuel Vadot number of required or optional properties that enable the OS running on the 25c66ec88fSEmmanuel Vadot host processor (Arm CorePac) to perform the device management of the remote 26c66ec88fSEmmanuel Vadot processor and to communicate with the remote processor. 27c66ec88fSEmmanuel Vadot 28c66ec88fSEmmanuel VadotallOf: 29c66ec88fSEmmanuel Vadot - $ref: /schemas/arm/keystone/ti,k3-sci-common.yaml# 30c66ec88fSEmmanuel Vadot 31c66ec88fSEmmanuel Vadotproperties: 32c66ec88fSEmmanuel Vadot compatible: 33c66ec88fSEmmanuel Vadot enum: 34cb7aa33aSEmmanuel Vadot - ti,am62a-c7xv-dsp 35c66ec88fSEmmanuel Vadot - ti,j721e-c66-dsp 36c66ec88fSEmmanuel Vadot - ti,j721e-c71-dsp 37e67e8565SEmmanuel Vadot - ti,j721s2-c71-dsp 38c66ec88fSEmmanuel Vadot description: 39cb7aa33aSEmmanuel Vadot Use "ti,am62a-c7xv-dsp" for AM62A Deep learning DSPs on K3 AM62A SoCs 40c66ec88fSEmmanuel Vadot Use "ti,j721e-c66-dsp" for C66x DSPs on K3 J721E SoCs 41c66ec88fSEmmanuel Vadot Use "ti,j721e-c71-dsp" for C71x DSPs on K3 J721E SoCs 42e67e8565SEmmanuel Vadot Use "ti,j721s2-c71-dsp" for C71x DSPs on K3 J721S2 SoCs 43c66ec88fSEmmanuel Vadot 44c66ec88fSEmmanuel Vadot resets: 45c66ec88fSEmmanuel Vadot description: | 46c66ec88fSEmmanuel Vadot Should contain the phandle to the reset controller node managing the 47c66ec88fSEmmanuel Vadot local resets for this device, and a reset specifier. 48c66ec88fSEmmanuel Vadot maxItems: 1 49c66ec88fSEmmanuel Vadot 50c66ec88fSEmmanuel Vadot firmware-name: 51c66ec88fSEmmanuel Vadot description: | 52c66ec88fSEmmanuel Vadot Should contain the name of the default firmware image 53c66ec88fSEmmanuel Vadot file located on the firmware search path 54c66ec88fSEmmanuel Vadot 55c66ec88fSEmmanuel Vadot mboxes: 56c66ec88fSEmmanuel Vadot description: | 57c66ec88fSEmmanuel Vadot OMAP Mailbox specifier denoting the sub-mailbox, to be used for 58c66ec88fSEmmanuel Vadot communication with the remote processor. This property should match 59c66ec88fSEmmanuel Vadot with the sub-mailbox node used in the firmware image. 60c66ec88fSEmmanuel Vadot maxItems: 1 61c66ec88fSEmmanuel Vadot 62c66ec88fSEmmanuel Vadot memory-region: 63c66ec88fSEmmanuel Vadot minItems: 2 64c66ec88fSEmmanuel Vadot maxItems: 8 65c66ec88fSEmmanuel Vadot description: | 66c66ec88fSEmmanuel Vadot phandle to the reserved memory nodes to be associated with the remoteproc 67c66ec88fSEmmanuel Vadot device. There should be at least two reserved memory nodes defined. The 68c66ec88fSEmmanuel Vadot reserved memory nodes should be carveout nodes, and should be defined as 69c66ec88fSEmmanuel Vadot per the bindings in 70c66ec88fSEmmanuel Vadot Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt 71c66ec88fSEmmanuel Vadot items: 72c66ec88fSEmmanuel Vadot - description: region used for dynamic DMA allocations like vrings and 73c66ec88fSEmmanuel Vadot vring buffers 74c66ec88fSEmmanuel Vadot - description: region reserved for firmware image sections 75c66ec88fSEmmanuel Vadot additionalItems: true 76c66ec88fSEmmanuel Vadot 77c66ec88fSEmmanuel Vadot# Optional properties: 78c66ec88fSEmmanuel Vadot# -------------------- 79c66ec88fSEmmanuel Vadot 80c66ec88fSEmmanuel Vadot sram: 81c66ec88fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 82c66ec88fSEmmanuel Vadot minItems: 1 83c66ec88fSEmmanuel Vadot maxItems: 4 84c9ccf3a3SEmmanuel Vadot items: 85c9ccf3a3SEmmanuel Vadot maxItems: 1 86c66ec88fSEmmanuel Vadot description: | 87c66ec88fSEmmanuel Vadot phandles to one or more reserved on-chip SRAM regions. The regions 88c66ec88fSEmmanuel Vadot should be defined as child nodes of the respective SRAM node, and 89c66ec88fSEmmanuel Vadot should be defined as per the generic bindings in, 90c66ec88fSEmmanuel Vadot Documentation/devicetree/bindings/sram/sram.yaml 91c66ec88fSEmmanuel Vadot 92c66ec88fSEmmanuel Vadotif: 93c66ec88fSEmmanuel Vadot properties: 94c66ec88fSEmmanuel Vadot compatible: 95c66ec88fSEmmanuel Vadot enum: 96c66ec88fSEmmanuel Vadot - ti,j721e-c66-dsp 97c66ec88fSEmmanuel Vadotthen: 98c66ec88fSEmmanuel Vadot properties: 99c66ec88fSEmmanuel Vadot reg: 100c66ec88fSEmmanuel Vadot items: 101c66ec88fSEmmanuel Vadot - description: Address and Size of the L2 SRAM internal memory region 102c66ec88fSEmmanuel Vadot - description: Address and Size of the L1 PRAM internal memory region 103c66ec88fSEmmanuel Vadot - description: Address and Size of the L1 DRAM internal memory region 104c66ec88fSEmmanuel Vadot reg-names: 105c66ec88fSEmmanuel Vadot items: 106c66ec88fSEmmanuel Vadot - const: l2sram 107c66ec88fSEmmanuel Vadot - const: l1pram 108c66ec88fSEmmanuel Vadot - const: l1dram 109c66ec88fSEmmanuel Vadotelse: 110c66ec88fSEmmanuel Vadot if: 111c66ec88fSEmmanuel Vadot properties: 112c66ec88fSEmmanuel Vadot compatible: 113c66ec88fSEmmanuel Vadot enum: 114cb7aa33aSEmmanuel Vadot - ti,am62a-c7xv-dsp 115c66ec88fSEmmanuel Vadot - ti,j721e-c71-dsp 116e67e8565SEmmanuel Vadot - ti,j721s2-c71-dsp 117c66ec88fSEmmanuel Vadot then: 118c66ec88fSEmmanuel Vadot properties: 119c66ec88fSEmmanuel Vadot reg: 120c66ec88fSEmmanuel Vadot items: 121c66ec88fSEmmanuel Vadot - description: Address and Size of the L2 SRAM internal memory region 122c66ec88fSEmmanuel Vadot - description: Address and Size of the L1 DRAM internal memory region 123c66ec88fSEmmanuel Vadot reg-names: 124c66ec88fSEmmanuel Vadot items: 125c66ec88fSEmmanuel Vadot - const: l2sram 126c66ec88fSEmmanuel Vadot - const: l1dram 127c66ec88fSEmmanuel Vadot 128c66ec88fSEmmanuel Vadotrequired: 129c66ec88fSEmmanuel Vadot - compatible 130c66ec88fSEmmanuel Vadot - reg 131c66ec88fSEmmanuel Vadot - reg-names 132c66ec88fSEmmanuel Vadot - ti,sci 133c66ec88fSEmmanuel Vadot - ti,sci-dev-id 134c66ec88fSEmmanuel Vadot - ti,sci-proc-ids 135c66ec88fSEmmanuel Vadot - resets 136c66ec88fSEmmanuel Vadot - firmware-name 137c66ec88fSEmmanuel Vadot - mboxes 138c66ec88fSEmmanuel Vadot - memory-region 139c66ec88fSEmmanuel Vadot 140c66ec88fSEmmanuel VadotunevaluatedProperties: false 141c66ec88fSEmmanuel Vadot 142c66ec88fSEmmanuel Vadotexamples: 143c66ec88fSEmmanuel Vadot - | 1448cc087a1SEmmanuel Vadot soc { 145c66ec88fSEmmanuel Vadot #address-cells = <2>; 146c66ec88fSEmmanuel Vadot #size-cells = <2>; 147c66ec88fSEmmanuel Vadot 148c9ccf3a3SEmmanuel Vadot mailbox0_cluster3: mailbox-0 { 149c9ccf3a3SEmmanuel Vadot #mbox-cells = <1>; 150c9ccf3a3SEmmanuel Vadot }; 151c9ccf3a3SEmmanuel Vadot 152c9ccf3a3SEmmanuel Vadot mailbox0_cluster4: mailbox-1 { 153c9ccf3a3SEmmanuel Vadot #mbox-cells = <1>; 154c9ccf3a3SEmmanuel Vadot }; 155c9ccf3a3SEmmanuel Vadot 156c66ec88fSEmmanuel Vadot bus@100000 { 157c66ec88fSEmmanuel Vadot compatible = "simple-bus"; 158c66ec88fSEmmanuel Vadot #address-cells = <2>; 159c66ec88fSEmmanuel Vadot #size-cells = <2>; 160c66ec88fSEmmanuel Vadot ranges = <0x00 0x00100000 0x00 0x00100000 0x00 0x00020000>, /* ctrl mmr */ 161c66ec88fSEmmanuel Vadot <0x00 0x64800000 0x00 0x64800000 0x00 0x00800000>, /* C71_0 */ 162c66ec88fSEmmanuel Vadot <0x4d 0x80800000 0x4d 0x80800000 0x00 0x00800000>, /* C66_0 */ 163c66ec88fSEmmanuel Vadot <0x4d 0x81800000 0x4d 0x81800000 0x00 0x00800000>; /* C66_1 */ 164c66ec88fSEmmanuel Vadot 165c66ec88fSEmmanuel Vadot /* J721E C66_0 DSP node */ 166c66ec88fSEmmanuel Vadot dsp@4d80800000 { 167c66ec88fSEmmanuel Vadot compatible = "ti,j721e-c66-dsp"; 168c66ec88fSEmmanuel Vadot reg = <0x4d 0x80800000 0x00 0x00048000>, 169c66ec88fSEmmanuel Vadot <0x4d 0x80e00000 0x00 0x00008000>, 170c66ec88fSEmmanuel Vadot <0x4d 0x80f00000 0x00 0x00008000>; 171c66ec88fSEmmanuel Vadot reg-names = "l2sram", "l1pram", "l1dram"; 172c66ec88fSEmmanuel Vadot ti,sci = <&dmsc>; 173c66ec88fSEmmanuel Vadot ti,sci-dev-id = <142>; 174c66ec88fSEmmanuel Vadot ti,sci-proc-ids = <0x03 0xFF>; 175c66ec88fSEmmanuel Vadot resets = <&k3_reset 142 1>; 176c66ec88fSEmmanuel Vadot firmware-name = "j7-c66_0-fw"; 177c66ec88fSEmmanuel Vadot memory-region = <&c66_0_dma_memory_region>, 178c66ec88fSEmmanuel Vadot <&c66_0_memory_region>; 179c66ec88fSEmmanuel Vadot mboxes = <&mailbox0_cluster3 &mbox_c66_0>; 180c66ec88fSEmmanuel Vadot }; 181c66ec88fSEmmanuel Vadot 182c66ec88fSEmmanuel Vadot /* J721E C71_0 DSP node */ 183c66ec88fSEmmanuel Vadot c71_0: dsp@64800000 { 184c66ec88fSEmmanuel Vadot compatible = "ti,j721e-c71-dsp"; 185c66ec88fSEmmanuel Vadot reg = <0x00 0x64800000 0x00 0x00080000>, 186c66ec88fSEmmanuel Vadot <0x00 0x64e00000 0x00 0x0000c000>; 187c66ec88fSEmmanuel Vadot reg-names = "l2sram", "l1dram"; 188c66ec88fSEmmanuel Vadot ti,sci = <&dmsc>; 189c66ec88fSEmmanuel Vadot ti,sci-dev-id = <15>; 190c66ec88fSEmmanuel Vadot ti,sci-proc-ids = <0x30 0xFF>; 191c66ec88fSEmmanuel Vadot resets = <&k3_reset 15 1>; 192c66ec88fSEmmanuel Vadot firmware-name = "j7-c71_0-fw"; 193c66ec88fSEmmanuel Vadot memory-region = <&c71_0_dma_memory_region>, 194c66ec88fSEmmanuel Vadot <&c71_0_memory_region>; 195c66ec88fSEmmanuel Vadot mboxes = <&mailbox0_cluster4 &mbox_c71_0>; 196c66ec88fSEmmanuel Vadot }; 197c66ec88fSEmmanuel Vadot }; 198c66ec88fSEmmanuel Vadot }; 199