0001 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: "http://devicetree.org/schemas/remoteproc/st,stm32-rproc.yaml#"
0005 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
0006
0007 title: STMicroelectronics STM32 remote processor controller bindings
0008
0009 description:
0010 This document defines the binding for the remoteproc component that loads and
0011 boots firmwares on the ST32MP family chipset.
0012
0013 maintainers:
0014 - Fabien Dessenne <fabien.dessenne@foss.st.com>
0015 - Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
0016
0017 properties:
0018 compatible:
0019 const: st,stm32mp1-m4
0020
0021 reg:
0022 description:
0023 Address ranges of the RETRAM and MCU SRAM memories used by the remote
0024 processor.
0025 maxItems: 3
0026
0027 resets:
0028 maxItems: 1
0029
0030 st,syscfg-holdboot:
0031 description: remote processor reset hold boot
0032 $ref: "/schemas/types.yaml#/definitions/phandle-array"
0033 items:
0034 - items:
0035 - description: Phandle of syscon block
0036 - description: The offset of the hold boot setting register
0037 - description: The field mask of the hold boot
0038
0039 st,syscfg-tz:
0040 description:
0041 Reference to the system configuration which holds the RCC trust zone mode
0042 $ref: "/schemas/types.yaml#/definitions/phandle-array"
0043 items:
0044 - items:
0045 - description: Phandle of syscon block
0046 - description: The offset of the trust zone setting register
0047 - description: The field mask of the trust zone state
0048
0049 interrupts:
0050 description: Should contain the WWDG1 watchdog reset interrupt
0051 maxItems: 1
0052
0053 wakeup-source: true
0054
0055 mboxes:
0056 description:
0057 This property is required only if the rpmsg/virtio functionality is used.
0058 items:
0059 - description: |
0060 A channel (a) used to communicate through virtqueues with the
0061 remote proc.
0062 Bi-directional channel:
0063 - from local to remote = send message
0064 - from remote to local = send message ack
0065 - description: |
0066 A channel (b) working the opposite direction of channel (a)
0067 - description: |
0068 A channel (c) used by the local proc to notify the remote proc that it
0069 is about to be shut down.
0070 Unidirectional channel:
0071 - from local to remote, where ACK from the remote means that it is
0072 ready for shutdown
0073 - description: |
0074 A channel (d) used by the local proc to notify the remote proc that it
0075 has to stop interprocessor communnication.
0076 Unidirectional channel:
0077 - from local to remote, where ACK from the remote means that communnication
0078 as been stopped on the remote side.
0079 minItems: 1
0080
0081 mbox-names:
0082 items:
0083 - const: vq0
0084 - const: vq1
0085 - const: shutdown
0086 - const: detach
0087 minItems: 1
0088
0089 memory-region:
0090 description:
0091 List of phandles to the reserved memory regions associated with the
0092 remoteproc device. This is variable and describes the memories shared with
0093 the remote processor (e.g. remoteproc firmware and carveouts, rpmsg
0094 vrings, ...).
0095 (see ../reserved-memory/reserved-memory.txt)
0096
0097 st,syscfg-pdds:
0098 $ref: "/schemas/types.yaml#/definitions/phandle-array"
0099 description: |
0100 Reference to the system configuration which holds the remote
0101 items:
0102 - items:
0103 - description: Phandle of syscon block
0104 - description: The offset of the power setting register
0105 - description: The field mask of the PDDS selection
0106
0107 st,syscfg-m4-state:
0108 $ref: "/schemas/types.yaml#/definitions/phandle-array"
0109 description: |
0110 Reference to the tamp register which exposes the Cortex-M4 state.
0111 items:
0112 - items:
0113 - description: Phandle of syscon block with the tamp register
0114 - description: The offset of the tamp register
0115 - description: The field mask of the Cortex-M4 state
0116
0117 st,syscfg-rsc-tbl:
0118 $ref: "/schemas/types.yaml#/definitions/phandle-array"
0119 description: |
0120 Reference to the tamp register which references the Cortex-M4
0121 resource table address.
0122 items:
0123 - items:
0124 - description: Phandle of syscon block with the tamp register
0125 - description: The offset of the tamp register
0126 - description: The field mask of the Cortex-M4 resource table address
0127
0128 st,auto-boot:
0129 $ref: /schemas/types.yaml#/definitions/flag
0130 description:
0131 If defined, when remoteproc is probed, it loads the default firmware and
0132 starts the remote processor.
0133
0134 required:
0135 - compatible
0136 - reg
0137 - resets
0138 - st,syscfg-holdboot
0139 - st,syscfg-tz
0140
0141 additionalProperties: false
0142
0143 examples:
0144 - |
0145 #include <dt-bindings/reset/stm32mp1-resets.h>
0146 m4_rproc: m4@10000000 {
0147 compatible = "st,stm32mp1-m4";
0148 reg = <0x10000000 0x40000>,
0149 <0x30000000 0x40000>,
0150 <0x38000000 0x10000>;
0151 resets = <&rcc MCU_R>;
0152 st,syscfg-holdboot = <&rcc 0x10C 0x1>;
0153 st,syscfg-tz = <&rcc 0x000 0x1>;
0154 st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>;
0155 st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>;
0156 };
0157
0158 ...