134376eb1SArnaud Pouliquen# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 234376eb1SArnaud Pouliquen%YAML 1.2 334376eb1SArnaud Pouliquen--- 4*82f2734dSRob Herring$id: http://devicetree.org/schemas/remoteproc/st,stm32-rproc.yaml# 5*82f2734dSRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml# 634376eb1SArnaud Pouliquen 784e85359SKrzysztof Kozlowskititle: STMicroelectronics STM32 remote processor controller 834376eb1SArnaud Pouliquen 934376eb1SArnaud Pouliquendescription: 1034376eb1SArnaud Pouliquen This document defines the binding for the remoteproc component that loads and 1134376eb1SArnaud Pouliquen boots firmwares on the ST32MP family chipset. 1234376eb1SArnaud Pouliquen 1334376eb1SArnaud Pouliquenmaintainers: 14f4eedebdSPatrice Chotard - Fabien Dessenne <fabien.dessenne@foss.st.com> 15f4eedebdSPatrice Chotard - Arnaud Pouliquen <arnaud.pouliquen@foss.st.com> 1634376eb1SArnaud Pouliquen 1734376eb1SArnaud Pouliquenproperties: 1834376eb1SArnaud Pouliquen compatible: 1934376eb1SArnaud Pouliquen const: st,stm32mp1-m4 2034376eb1SArnaud Pouliquen 2134376eb1SArnaud Pouliquen reg: 2234376eb1SArnaud Pouliquen description: 2334376eb1SArnaud Pouliquen Address ranges of the RETRAM and MCU SRAM memories used by the remote 2434376eb1SArnaud Pouliquen processor. 2534376eb1SArnaud Pouliquen maxItems: 3 2634376eb1SArnaud Pouliquen 2734376eb1SArnaud Pouliquen resets: 2834376eb1SArnaud Pouliquen minItems: 1 2934376eb1SArnaud Pouliquen maxItems: 2 3034376eb1SArnaud Pouliquen 3134376eb1SArnaud Pouliquen reset-names: 32*82f2734dSRob Herring items: 3339bd2b6aSRob Herring - const: mcu_rst 3439bd2b6aSRob Herring - const: hold_boot 3539bd2b6aSRob Herring minItems: 1 3639bd2b6aSRob Herring 3739bd2b6aSRob Herring st,syscfg-holdboot: 3834376eb1SArnaud Pouliquen description: remote processor reset hold boot 3934376eb1SArnaud Pouliquen $ref: /schemas/types.yaml#/definitions/phandle-array 4034376eb1SArnaud Pouliquen items: 4134376eb1SArnaud Pouliquen - items: 42*82f2734dSRob Herring - description: Phandle of syscon block 4339bd2b6aSRob Herring - description: The offset of the hold boot setting register 4439bd2b6aSRob Herring - description: The field mask of the hold boot 4539bd2b6aSRob Herring 46be1de12cSArnaud Pouliquen st,syscfg-tz: 47be1de12cSArnaud Pouliquen deprecated: true 4834376eb1SArnaud Pouliquen description: 4934376eb1SArnaud Pouliquen Reference to the system configuration which holds the RCC trust zone mode 5034376eb1SArnaud Pouliquen $ref: /schemas/types.yaml#/definitions/phandle-array 5134376eb1SArnaud Pouliquen items: 5234376eb1SArnaud Pouliquen - items: 5371bbcd2eSArnaud Pouliquen - description: Phandle of syscon block 5471bbcd2eSArnaud Pouliquen - description: The offset of the trust zone setting register 5534376eb1SArnaud Pouliquen - description: The field mask of the trust zone state 5634376eb1SArnaud Pouliquen 5734376eb1SArnaud Pouliquen interrupts: 5834376eb1SArnaud Pouliquen description: Should contain the WWDG1 watchdog reset interrupt 5934376eb1SArnaud Pouliquen maxItems: 1 6034376eb1SArnaud Pouliquen 6134376eb1SArnaud Pouliquen wakeup-source: true 6234376eb1SArnaud Pouliquen 6334376eb1SArnaud Pouliquen mboxes: 6434376eb1SArnaud Pouliquen description: 6534376eb1SArnaud Pouliquen This property is required only if the rpmsg/virtio functionality is used. 6634376eb1SArnaud Pouliquen items: 6734376eb1SArnaud Pouliquen - description: | 6834376eb1SArnaud Pouliquen A channel (a) used to communicate through virtqueues with the 6934376eb1SArnaud Pouliquen remote proc. 7034376eb1SArnaud Pouliquen Bi-directional channel: 7134376eb1SArnaud Pouliquen - from local to remote = send message 7234376eb1SArnaud Pouliquen - from remote to local = send message ack 73aca8f94eSArnaud Pouliquen - description: | 74aca8f94eSArnaud Pouliquen A channel (b) working the opposite direction of channel (a) 7596af01cdSArnaud Pouliquen - description: | 76aca8f94eSArnaud Pouliquen A channel (c) used by the local proc to notify the remote proc that it 7796af01cdSArnaud Pouliquen is about to be shut down. 78aca8f94eSArnaud Pouliquen Unidirectional channel: 7934376eb1SArnaud Pouliquen - from local to remote, where ACK from the remote means that it is 8034376eb1SArnaud Pouliquen ready for shutdown 8134376eb1SArnaud Pouliquen - description: | 8234376eb1SArnaud Pouliquen A channel (d) used by the local proc to notify the remote proc that it 8334376eb1SArnaud Pouliquen has to stop interprocessor communication. 8434376eb1SArnaud Pouliquen Unidirectional channel: 8534376eb1SArnaud Pouliquen - from local to remote, where ACK from the remote means that communication 86aca8f94eSArnaud Pouliquen as been stopped on the remote side. 8734376eb1SArnaud Pouliquen minItems: 1 8834376eb1SArnaud Pouliquen 8934376eb1SArnaud Pouliquen mbox-names: 9034376eb1SArnaud Pouliquen items: 9134376eb1SArnaud Pouliquen - const: vq0 9234376eb1SArnaud Pouliquen - const: vq1 9334376eb1SArnaud Pouliquen - const: shutdown 9434376eb1SArnaud Pouliquen - const: detach 9534376eb1SArnaud Pouliquen minItems: 1 9634376eb1SArnaud Pouliquen 9734376eb1SArnaud Pouliquen memory-region: 98*82f2734dSRob Herring description: 9934376eb1SArnaud Pouliquen List of phandles to the reserved memory regions associated with the 10034376eb1SArnaud Pouliquen remoteproc device. This is variable and describes the memories shared with 10139bd2b6aSRob Herring the remote processor (e.g. remoteproc firmware and carveouts, rpmsg 10239bd2b6aSRob Herring vrings, ...). 10339bd2b6aSRob Herring (see ../reserved-memory/reserved-memory.txt) 104be1de12cSArnaud Pouliquen 105be1de12cSArnaud Pouliquen st,syscfg-pdds: 10634376eb1SArnaud Pouliquen $ref: /schemas/types.yaml#/definitions/phandle-array 107e67bae44SArnaud Pouliquen description: | 108*82f2734dSRob Herring Reference to the system configuration which holds the remote 109e67bae44SArnaud Pouliquen items: 110e67bae44SArnaud Pouliquen - items: 11139bd2b6aSRob Herring - description: Phandle of syscon block 11239bd2b6aSRob Herring - description: The offset of the power setting register 11339bd2b6aSRob Herring - description: The field mask of the PDDS selection 114be1de12cSArnaud Pouliquen 115be1de12cSArnaud Pouliquen st,syscfg-m4-state: 116e67bae44SArnaud Pouliquen $ref: /schemas/types.yaml#/definitions/phandle-array 117e67bae44SArnaud Pouliquen description: | 118*82f2734dSRob Herring Reference to the tamp register which exposes the Cortex-M4 state. 119e67bae44SArnaud Pouliquen items: 120e67bae44SArnaud Pouliquen - items: 121e67bae44SArnaud Pouliquen - description: Phandle of syscon block with the tamp register 12239bd2b6aSRob Herring - description: The offset of the tamp register 12339bd2b6aSRob Herring - description: The field mask of the Cortex-M4 state 12439bd2b6aSRob Herring 125be1de12cSArnaud Pouliquen st,syscfg-rsc-tbl: 126be1de12cSArnaud Pouliquen $ref: /schemas/types.yaml#/definitions/phandle-array 127e67bae44SArnaud Pouliquen description: | 12834376eb1SArnaud Pouliquen Reference to the tamp register which references the Cortex-M4 12934376eb1SArnaud Pouliquen resource table address. 13034376eb1SArnaud Pouliquen items: 13134376eb1SArnaud Pouliquen - items: 13234376eb1SArnaud Pouliquen - description: Phandle of syscon block with the tamp register 13334376eb1SArnaud Pouliquen - description: The offset of the tamp register 13434376eb1SArnaud Pouliquen - description: The field mask of the Cortex-M4 resource table address 13534376eb1SArnaud Pouliquen 13634376eb1SArnaud Pouliquen st,auto-boot: 13734376eb1SArnaud Pouliquen $ref: /schemas/types.yaml#/definitions/flag 13834376eb1SArnaud Pouliquen description: 13934376eb1SArnaud Pouliquen If defined, when remoteproc is probed, it loads the default firmware and 14034376eb1SArnaud Pouliquen starts the remote processor. 14134376eb1SArnaud Pouliquen 14234376eb1SArnaud Pouliquenrequired: 14334376eb1SArnaud Pouliquen - compatible 14434376eb1SArnaud Pouliquen - reg 14534376eb1SArnaud Pouliquen - resets 14634376eb1SArnaud Pouliquen 14734376eb1SArnaud PouliquenallOf: 14834376eb1SArnaud Pouliquen - if: 14934376eb1SArnaud Pouliquen properties: 15034376eb1SArnaud Pouliquen reset-names: 15134376eb1SArnaud Pouliquen not: 15234376eb1SArnaud Pouliquen contains: 15334376eb1SArnaud Pouliquen const: hold_boot 154e67bae44SArnaud Pouliquen then: 155e67bae44SArnaud Pouliquen required: 15634376eb1SArnaud Pouliquen - st,syscfg-holdboot 15734376eb1SArnaud Pouliquen else: 15834376eb1SArnaud Pouliquen properties: 159 st,syscfg-holdboot: false 160 161additionalProperties: false 162 163examples: 164 - | 165 #include <dt-bindings/reset/stm32mp1-resets.h> 166 m4@10000000 { 167 compatible = "st,stm32mp1-m4"; 168 reg = <0x10000000 0x40000>, 169 <0x30000000 0x40000>, 170 <0x38000000 0x10000>; 171 resets = <&rcc MCU_R>; 172 reset-names = "mcu_rst"; 173 /* Hold boot managed using system config*/ 174 st,syscfg-holdboot = <&rcc 0x10C 0x1>; 175 st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>; 176 st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>; 177 }; 178 - | 179 #include <dt-bindings/reset/stm32mp1-resets.h> 180 m4@10000000 { 181 compatible = "st,stm32mp1-m4"; 182 reg = <0x10000000 0x40000>, 183 <0x30000000 0x40000>, 184 <0x38000000 0x10000>; 185 /* Hold boot managed using SCMI reset controller */ 186 resets = <&scmi MCU_R>, <&scmi MCU_HOLD_BOOT_R>; 187 reset-names = "mcu_rst", "hold_boot"; 188 st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>; 189 st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>; 190 }; 191 192... 193