xref: /openbmc/linux/Documentation/devicetree/bindings/remoteproc/ti,k3-dsp-rproc.yaml (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1*440b075bSKrzysztof 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 AnnaallOf:
292a218020SSuman Anna  - $ref: /schemas/arm/keystone/ti,k3-sci-common.yaml#
302a218020SSuman Anna
312a218020SSuman Annaproperties:
322a218020SSuman Anna  compatible:
33c6caf22eSSuman Anna    enum:
3444d90833SHari Nagalla      - ti,am62a-c7xv-dsp
35c6caf22eSSuman Anna      - ti,j721e-c66-dsp
36c6caf22eSSuman Anna      - ti,j721e-c71-dsp
3783b57e60SHari Nagalla      - ti,j721s2-c71-dsp
382a218020SSuman Anna    description:
3944d90833SHari Nagalla      Use "ti,am62a-c7xv-dsp" for AM62A Deep learning DSPs on K3 AM62A SoCs
402a218020SSuman Anna      Use "ti,j721e-c66-dsp" for C66x DSPs on K3 J721E SoCs
41c6caf22eSSuman Anna      Use "ti,j721e-c71-dsp" for C71x DSPs on K3 J721E SoCs
4283b57e60SHari Nagalla      Use "ti,j721s2-c71-dsp" for C71x DSPs on K3 J721S2 SoCs
432a218020SSuman Anna
442a218020SSuman Anna  resets:
452a218020SSuman Anna    description: |
462a218020SSuman Anna      Should contain the phandle to the reset controller node managing the
472a218020SSuman Anna      local resets for this device, and a reset specifier.
482a218020SSuman Anna    maxItems: 1
492a218020SSuman Anna
502a218020SSuman Anna  firmware-name:
512a218020SSuman Anna    description: |
522a218020SSuman Anna      Should contain the name of the default firmware image
532a218020SSuman Anna      file located on the firmware search path
542a218020SSuman Anna
552a218020SSuman Anna  mboxes:
562a218020SSuman Anna    description: |
572a218020SSuman Anna      OMAP Mailbox specifier denoting the sub-mailbox, to be used for
582a218020SSuman Anna      communication with the remote processor. This property should match
592a218020SSuman Anna      with the sub-mailbox node used in the firmware image.
602a218020SSuman Anna    maxItems: 1
612a218020SSuman Anna
622a218020SSuman Anna  memory-region:
632a218020SSuman Anna    minItems: 2
642a218020SSuman Anna    maxItems: 8
652a218020SSuman Anna    description: |
662a218020SSuman Anna      phandle to the reserved memory nodes to be associated with the remoteproc
672a218020SSuman Anna      device. There should be at least two reserved memory nodes defined. The
682a218020SSuman Anna      reserved memory nodes should be carveout nodes, and should be defined as
692a218020SSuman Anna      per the bindings in
702a218020SSuman Anna      Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
712a218020SSuman Anna    items:
722a218020SSuman Anna      - description: region used for dynamic DMA allocations like vrings and
732a218020SSuman Anna                     vring buffers
742a218020SSuman Anna      - description: region reserved for firmware image sections
752a218020SSuman Anna    additionalItems: true
762a218020SSuman Anna
772a218020SSuman Anna# Optional properties:
782a218020SSuman Anna# --------------------
792a218020SSuman Anna
802a218020SSuman Anna  sram:
812a218020SSuman Anna    $ref: /schemas/types.yaml#/definitions/phandle-array
822a218020SSuman Anna    minItems: 1
832a218020SSuman Anna    maxItems: 4
8439bd2b6aSRob Herring    items:
8539bd2b6aSRob Herring      maxItems: 1
862a218020SSuman Anna    description: |
872a218020SSuman Anna      phandles to one or more reserved on-chip SRAM regions. The regions
882a218020SSuman Anna      should be defined as child nodes of the respective SRAM node, and
892a218020SSuman Anna      should be defined as per the generic bindings in,
902a218020SSuman Anna      Documentation/devicetree/bindings/sram/sram.yaml
912a218020SSuman Anna
92c6caf22eSSuman Annaif:
93c6caf22eSSuman Anna  properties:
94c6caf22eSSuman Anna    compatible:
95c6caf22eSSuman Anna      enum:
96c6caf22eSSuman Anna        - ti,j721e-c66-dsp
97c6caf22eSSuman Annathen:
98c6caf22eSSuman Anna  properties:
99c6caf22eSSuman Anna    reg:
100c6caf22eSSuman Anna      items:
101c6caf22eSSuman Anna        - description: Address and Size of the L2 SRAM internal memory region
102c6caf22eSSuman Anna        - description: Address and Size of the L1 PRAM internal memory region
103c6caf22eSSuman Anna        - description: Address and Size of the L1 DRAM internal memory region
104c6caf22eSSuman Anna    reg-names:
105c6caf22eSSuman Anna      items:
106c6caf22eSSuman Anna        - const: l2sram
107c6caf22eSSuman Anna        - const: l1pram
108c6caf22eSSuman Anna        - const: l1dram
109c6caf22eSSuman Annaelse:
110c6caf22eSSuman Anna  if:
111c6caf22eSSuman Anna    properties:
112c6caf22eSSuman Anna      compatible:
113c6caf22eSSuman Anna        enum:
11444d90833SHari Nagalla          - ti,am62a-c7xv-dsp
115c6caf22eSSuman Anna          - ti,j721e-c71-dsp
11683b57e60SHari Nagalla          - ti,j721s2-c71-dsp
117c6caf22eSSuman Anna  then:
118c6caf22eSSuman Anna    properties:
119c6caf22eSSuman Anna      reg:
120c6caf22eSSuman Anna        items:
121c6caf22eSSuman Anna          - description: Address and Size of the L2 SRAM internal memory region
122c6caf22eSSuman Anna          - description: Address and Size of the L1 DRAM internal memory region
123c6caf22eSSuman Anna      reg-names:
124c6caf22eSSuman Anna        items:
125c6caf22eSSuman Anna          - const: l2sram
126c6caf22eSSuman Anna          - const: l1dram
127c6caf22eSSuman Anna
1282a218020SSuman Annarequired:
1292a218020SSuman Anna  - compatible
1302a218020SSuman Anna  - reg
1312a218020SSuman Anna  - reg-names
1322a218020SSuman Anna  - ti,sci
1332a218020SSuman Anna  - ti,sci-dev-id
1342a218020SSuman Anna  - ti,sci-proc-ids
1352a218020SSuman Anna  - resets
1362a218020SSuman Anna  - firmware-name
1372a218020SSuman Anna  - mboxes
1382a218020SSuman Anna  - memory-region
1392a218020SSuman Anna
1402a218020SSuman AnnaunevaluatedProperties: false
1412a218020SSuman Anna
1422a218020SSuman Annaexamples:
1432a218020SSuman Anna  - |
144f13f5d72SSinthu Raja    soc {
1452a218020SSuman Anna        #address-cells = <2>;
1462a218020SSuman Anna        #size-cells = <2>;
1472a218020SSuman Anna
14824a4b57aSRob Herring        mailbox0_cluster3: mailbox-0 {
14924a4b57aSRob Herring            #mbox-cells = <1>;
15024a4b57aSRob Herring        };
15124a4b57aSRob Herring
15224a4b57aSRob Herring        mailbox0_cluster4: mailbox-1 {
15324a4b57aSRob Herring            #mbox-cells = <1>;
15424a4b57aSRob Herring        };
15524a4b57aSRob Herring
1562a218020SSuman Anna        bus@100000 {
1572a218020SSuman Anna            compatible = "simple-bus";
1582a218020SSuman Anna            #address-cells = <2>;
1592a218020SSuman Anna            #size-cells = <2>;
1602a218020SSuman Anna            ranges = <0x00 0x00100000 0x00 0x00100000 0x00 0x00020000>, /* ctrl mmr */
161c6caf22eSSuman Anna                     <0x00 0x64800000 0x00 0x64800000 0x00 0x00800000>, /* C71_0 */
1622a218020SSuman Anna                     <0x4d 0x80800000 0x4d 0x80800000 0x00 0x00800000>, /* C66_0 */
1632a218020SSuman Anna                     <0x4d 0x81800000 0x4d 0x81800000 0x00 0x00800000>; /* C66_1 */
1642a218020SSuman Anna
1652a218020SSuman Anna            /* J721E C66_0 DSP node */
1662a218020SSuman Anna            dsp@4d80800000 {
1672a218020SSuman Anna                compatible = "ti,j721e-c66-dsp";
1682a218020SSuman Anna                reg = <0x4d 0x80800000 0x00 0x00048000>,
1692a218020SSuman Anna                      <0x4d 0x80e00000 0x00 0x00008000>,
1702a218020SSuman Anna                      <0x4d 0x80f00000 0x00 0x00008000>;
1712a218020SSuman Anna                reg-names = "l2sram", "l1pram", "l1dram";
1722a218020SSuman Anna                ti,sci = <&dmsc>;
1732a218020SSuman Anna                ti,sci-dev-id = <142>;
1742a218020SSuman Anna                ti,sci-proc-ids = <0x03 0xFF>;
1752a218020SSuman Anna                resets = <&k3_reset 142 1>;
1762a218020SSuman Anna                firmware-name = "j7-c66_0-fw";
1772a218020SSuman Anna                memory-region = <&c66_0_dma_memory_region>,
1782a218020SSuman Anna                                <&c66_0_memory_region>;
1792a218020SSuman Anna                mboxes = <&mailbox0_cluster3 &mbox_c66_0>;
1802a218020SSuman Anna            };
181c6caf22eSSuman Anna
182c6caf22eSSuman Anna            /* J721E C71_0 DSP node */
183c6caf22eSSuman Anna            c71_0: dsp@64800000 {
184c6caf22eSSuman Anna                compatible = "ti,j721e-c71-dsp";
185c6caf22eSSuman Anna                reg = <0x00 0x64800000 0x00 0x00080000>,
186c6caf22eSSuman Anna                      <0x00 0x64e00000 0x00 0x0000c000>;
187c6caf22eSSuman Anna                reg-names = "l2sram", "l1dram";
188c6caf22eSSuman Anna                ti,sci = <&dmsc>;
189c6caf22eSSuman Anna                ti,sci-dev-id = <15>;
190c6caf22eSSuman Anna                ti,sci-proc-ids = <0x30 0xFF>;
191c6caf22eSSuman Anna                resets = <&k3_reset 15 1>;
192c6caf22eSSuman Anna                firmware-name = "j7-c71_0-fw";
193c6caf22eSSuman Anna                memory-region = <&c71_0_dma_memory_region>,
194c6caf22eSSuman Anna                                <&c71_0_memory_region>;
195c6caf22eSSuman Anna                mboxes = <&mailbox0_cluster4 &mbox_c71_0>;
196c6caf22eSSuman Anna            };
1972a218020SSuman Anna        };
1982a218020SSuman Anna    };
199