xref: /linux/Documentation/devicetree/bindings/remoteproc/ti,k3-dsp-rproc.yaml (revision a1ff5a7d78a036d6c2178ee5acd6ba4946243800)
1440b075bSKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
22a218020SSuman Anna%YAML 1.2
32a218020SSuman Anna---
42a218020SSuman Anna$id: http://devicetree.org/schemas/remoteproc/ti,k3-dsp-rproc.yaml#
52a218020SSuman Anna$schema: http://devicetree.org/meta-schemas/core.yaml#
62a218020SSuman Anna
72a218020SSuman Annatitle: TI K3 DSP devices
82a218020SSuman Anna
92a218020SSuman Annamaintainers:
102a218020SSuman Anna  - Suman Anna <s-anna@ti.com>
112a218020SSuman Anna
122a218020SSuman Annadescription: |
132a218020SSuman Anna  The TI K3 family of SoCs usually have one or more TI DSP Core sub-systems
142a218020SSuman Anna  that are used to offload some of the processor-intensive tasks or algorithms,
152a218020SSuman Anna  for achieving various system level goals.
162a218020SSuman Anna
172a218020SSuman Anna  These processor sub-systems usually contain additional sub-modules like
182a218020SSuman Anna  L1 and/or L2 caches/SRAMs, an Interrupt Controller, an external memory
192a218020SSuman Anna  controller, a dedicated local power/sleep controller etc. The DSP processor
202a218020SSuman Anna  cores in the K3 SoCs are usually either a TMS320C66x CorePac processor or a
212a218020SSuman Anna  TMS320C71x CorePac processor.
222a218020SSuman Anna
232a218020SSuman Anna  Each DSP Core sub-system is represented as a single DT node. Each node has a
242a218020SSuman Anna  number of required or optional properties that enable the OS running on the
252a218020SSuman Anna  host processor (Arm CorePac) to perform the device management of the remote
262a218020SSuman Anna  processor and to communicate with the remote processor.
272a218020SSuman Anna
282a218020SSuman Annaproperties:
292a218020SSuman Anna  compatible:
30c6caf22eSSuman Anna    enum:
3144d90833SHari Nagalla      - ti,am62a-c7xv-dsp
32c6caf22eSSuman Anna      - ti,j721e-c66-dsp
33c6caf22eSSuman Anna      - ti,j721e-c71-dsp
3483b57e60SHari Nagalla      - ti,j721s2-c71-dsp
352a218020SSuman Anna    description:
3644d90833SHari Nagalla      Use "ti,am62a-c7xv-dsp" for AM62A Deep learning DSPs on K3 AM62A SoCs
372a218020SSuman Anna      Use "ti,j721e-c66-dsp" for C66x DSPs on K3 J721E SoCs
38c6caf22eSSuman Anna      Use "ti,j721e-c71-dsp" for C71x DSPs on K3 J721E SoCs
3983b57e60SHari Nagalla      Use "ti,j721s2-c71-dsp" for C71x DSPs on K3 J721S2 SoCs
402a218020SSuman Anna
412a218020SSuman Anna  resets:
422a218020SSuman Anna    description: |
432a218020SSuman Anna      Should contain the phandle to the reset controller node managing the
442a218020SSuman Anna      local resets for this device, and a reset specifier.
452a218020SSuman Anna    maxItems: 1
462a218020SSuman Anna
472a218020SSuman Anna  firmware-name:
482a218020SSuman Anna    description: |
492a218020SSuman Anna      Should contain the name of the default firmware image
502a218020SSuman Anna      file located on the firmware search path
512a218020SSuman Anna
522a218020SSuman Anna  mboxes:
532a218020SSuman Anna    description: |
542a218020SSuman Anna      OMAP Mailbox specifier denoting the sub-mailbox, to be used for
552a218020SSuman Anna      communication with the remote processor. This property should match
562a218020SSuman Anna      with the sub-mailbox node used in the firmware image.
572a218020SSuman Anna    maxItems: 1
582a218020SSuman Anna
592a218020SSuman Anna  memory-region:
602a218020SSuman Anna    minItems: 2
612a218020SSuman Anna    maxItems: 8
622a218020SSuman Anna    description: |
632a218020SSuman Anna      phandle to the reserved memory nodes to be associated with the remoteproc
642a218020SSuman Anna      device. There should be at least two reserved memory nodes defined. The
652a218020SSuman Anna      reserved memory nodes should be carveout nodes, and should be defined as
662a218020SSuman Anna      per the bindings in
672a218020SSuman Anna      Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
682a218020SSuman Anna    items:
692a218020SSuman Anna      - description: region used for dynamic DMA allocations like vrings and
702a218020SSuman Anna                     vring buffers
712a218020SSuman Anna      - description: region reserved for firmware image sections
722a218020SSuman Anna    additionalItems: true
732a218020SSuman Anna
742a218020SSuman Anna# Optional properties:
752a218020SSuman Anna# --------------------
762a218020SSuman Anna
772a218020SSuman Anna  sram:
782a218020SSuman Anna    $ref: /schemas/types.yaml#/definitions/phandle-array
792a218020SSuman Anna    minItems: 1
802a218020SSuman Anna    maxItems: 4
8139bd2b6aSRob Herring    items:
8239bd2b6aSRob Herring      maxItems: 1
832a218020SSuman Anna    description: |
842a218020SSuman Anna      phandles to one or more reserved on-chip SRAM regions. The regions
852a218020SSuman Anna      should be defined as child nodes of the respective SRAM node, and
862a218020SSuman Anna      should be defined as per the generic bindings in,
872a218020SSuman Anna      Documentation/devicetree/bindings/sram/sram.yaml
882a218020SSuman Anna
89*430e2978SHari NagallaallOf:
90*430e2978SHari Nagalla  - if:
91c6caf22eSSuman Anna      properties:
92c6caf22eSSuman Anna        compatible:
93c6caf22eSSuman Anna          enum:
94c6caf22eSSuman Anna            - ti,j721e-c66-dsp
95c6caf22eSSuman Anna    then:
96c6caf22eSSuman Anna      properties:
97c6caf22eSSuman Anna        reg:
98c6caf22eSSuman Anna          items:
99c6caf22eSSuman Anna            - description: Address and Size of the L2 SRAM internal memory region
100c6caf22eSSuman Anna            - description: Address and Size of the L1 PRAM internal memory region
101c6caf22eSSuman Anna            - description: Address and Size of the L1 DRAM internal memory region
102c6caf22eSSuman Anna        reg-names:
103c6caf22eSSuman Anna          items:
104c6caf22eSSuman Anna            - const: l2sram
105c6caf22eSSuman Anna            - const: l1pram
106c6caf22eSSuman Anna            - const: l1dram
107*430e2978SHari Nagalla
108*430e2978SHari Nagalla  - if:
109c6caf22eSSuman Anna      properties:
110c6caf22eSSuman Anna        compatible:
111c6caf22eSSuman Anna          enum:
112c6caf22eSSuman Anna            - ti,j721e-c71-dsp
11383b57e60SHari Nagalla            - ti,j721s2-c71-dsp
114c6caf22eSSuman Anna    then:
115c6caf22eSSuman Anna      properties:
116c6caf22eSSuman Anna        reg:
117c6caf22eSSuman Anna          items:
118c6caf22eSSuman Anna            - description: Address and Size of the L2 SRAM internal memory region
119c6caf22eSSuman Anna            - description: Address and Size of the L1 DRAM internal memory region
120c6caf22eSSuman Anna        reg-names:
121c6caf22eSSuman Anna          items:
122c6caf22eSSuman Anna            - const: l2sram
123c6caf22eSSuman Anna            - const: l1dram
124c6caf22eSSuman Anna
125*430e2978SHari Nagalla  - if:
126*430e2978SHari Nagalla      properties:
127*430e2978SHari Nagalla        compatible:
128*430e2978SHari Nagalla          enum:
129*430e2978SHari Nagalla            - ti,am62a-c7xv-dsp
130*430e2978SHari Nagalla    then:
131*430e2978SHari Nagalla      properties:
132*430e2978SHari Nagalla        reg:
133*430e2978SHari Nagalla          items:
134*430e2978SHari Nagalla            - description: Address and Size of the L2 SRAM internal memory region
135*430e2978SHari Nagalla        reg-names:
136*430e2978SHari Nagalla          items:
137*430e2978SHari Nagalla            - const: l2sram
138*430e2978SHari Nagalla
139*430e2978SHari Nagalla  - $ref: /schemas/arm/keystone/ti,k3-sci-common.yaml#
140*430e2978SHari Nagalla
1412a218020SSuman Annarequired:
1422a218020SSuman Anna  - compatible
1432a218020SSuman Anna  - reg
1442a218020SSuman Anna  - reg-names
1452a218020SSuman Anna  - ti,sci
1462a218020SSuman Anna  - ti,sci-dev-id
1472a218020SSuman Anna  - ti,sci-proc-ids
1482a218020SSuman Anna  - resets
1492a218020SSuman Anna  - firmware-name
1502a218020SSuman Anna  - mboxes
1512a218020SSuman Anna  - memory-region
1522a218020SSuman Anna
1532a218020SSuman AnnaunevaluatedProperties: false
1542a218020SSuman Anna
1552a218020SSuman Annaexamples:
1562a218020SSuman Anna  - |
157f13f5d72SSinthu Raja    soc {
1582a218020SSuman Anna        #address-cells = <2>;
1592a218020SSuman Anna        #size-cells = <2>;
1602a218020SSuman Anna
16124a4b57aSRob Herring        mailbox0_cluster3: mailbox-0 {
16224a4b57aSRob Herring            #mbox-cells = <1>;
16324a4b57aSRob Herring        };
16424a4b57aSRob Herring
16524a4b57aSRob Herring        mailbox0_cluster4: mailbox-1 {
16624a4b57aSRob Herring            #mbox-cells = <1>;
16724a4b57aSRob Herring        };
16824a4b57aSRob Herring
1692a218020SSuman Anna        bus@100000 {
1702a218020SSuman Anna            compatible = "simple-bus";
1712a218020SSuman Anna            #address-cells = <2>;
1722a218020SSuman Anna            #size-cells = <2>;
1732a218020SSuman Anna            ranges = <0x00 0x00100000 0x00 0x00100000 0x00 0x00020000>, /* ctrl mmr */
174c6caf22eSSuman Anna                     <0x00 0x64800000 0x00 0x64800000 0x00 0x00800000>, /* C71_0 */
1752a218020SSuman Anna                     <0x4d 0x80800000 0x4d 0x80800000 0x00 0x00800000>, /* C66_0 */
1762a218020SSuman Anna                     <0x4d 0x81800000 0x4d 0x81800000 0x00 0x00800000>; /* C66_1 */
1772a218020SSuman Anna
1782a218020SSuman Anna            /* J721E C66_0 DSP node */
1792a218020SSuman Anna            dsp@4d80800000 {
1802a218020SSuman Anna                compatible = "ti,j721e-c66-dsp";
1812a218020SSuman Anna                reg = <0x4d 0x80800000 0x00 0x00048000>,
1822a218020SSuman Anna                      <0x4d 0x80e00000 0x00 0x00008000>,
1832a218020SSuman Anna                      <0x4d 0x80f00000 0x00 0x00008000>;
1842a218020SSuman Anna                reg-names = "l2sram", "l1pram", "l1dram";
1852a218020SSuman Anna                ti,sci = <&dmsc>;
1862a218020SSuman Anna                ti,sci-dev-id = <142>;
1872a218020SSuman Anna                ti,sci-proc-ids = <0x03 0xFF>;
1882a218020SSuman Anna                resets = <&k3_reset 142 1>;
1892a218020SSuman Anna                firmware-name = "j7-c66_0-fw";
1902a218020SSuman Anna                memory-region = <&c66_0_dma_memory_region>,
1912a218020SSuman Anna                                <&c66_0_memory_region>;
1922a218020SSuman Anna                mboxes = <&mailbox0_cluster3 &mbox_c66_0>;
1932a218020SSuman Anna            };
194c6caf22eSSuman Anna
195c6caf22eSSuman Anna            /* J721E C71_0 DSP node */
196c6caf22eSSuman Anna            c71_0: dsp@64800000 {
197c6caf22eSSuman Anna                compatible = "ti,j721e-c71-dsp";
198c6caf22eSSuman Anna                reg = <0x00 0x64800000 0x00 0x00080000>,
199c6caf22eSSuman Anna                      <0x00 0x64e00000 0x00 0x0000c000>;
200c6caf22eSSuman Anna                reg-names = "l2sram", "l1dram";
201c6caf22eSSuman Anna                ti,sci = <&dmsc>;
202c6caf22eSSuman Anna                ti,sci-dev-id = <15>;
203c6caf22eSSuman Anna                ti,sci-proc-ids = <0x30 0xFF>;
204c6caf22eSSuman Anna                resets = <&k3_reset 15 1>;
205c6caf22eSSuman Anna                firmware-name = "j7-c71_0-fw";
206c6caf22eSSuman Anna                memory-region = <&c71_0_dma_memory_region>,
207c6caf22eSSuman Anna                                <&c71_0_memory_region>;
208c6caf22eSSuman Anna                mboxes = <&mailbox0_cluster4 &mbox_c71_0>;
209c6caf22eSSuman Anna            };
2102a218020SSuman Anna        };
2112a218020SSuman Anna    };
212