Back to home page

OSCL-LXR

 
 

    


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 ...