Re: [PATCH v2 2/8] dt-bindings: remoteproc: add bindings for stm32 remote processor driver
On Tue, Apr 30, 2019 at 9:15 AM Fabien DESSENNE wrote: > > Hi Rob, > > > On 30/04/2019 2:40 AM, Rob Herring wrote: > > On Tue, Apr 16, 2019 at 04:58:13PM +0200, Fabien Dessenne wrote: > >> Add the device tree bindings document for the stm32 remoteproc devices. > >> > >> Signed-off-by: Fabien Dessenne > >> --- > >> .../devicetree/bindings/remoteproc/stm32-rproc.txt | 64 > >> ++ > >> 1 file changed, 64 insertions(+) > >> create mode 100644 > >> Documentation/devicetree/bindings/remoteproc/stm32-rproc.txt > >> > >> diff --git a/Documentation/devicetree/bindings/remoteproc/stm32-rproc.txt > >> b/Documentation/devicetree/bindings/remoteproc/stm32-rproc.txt > >> new file mode 100644 > >> index 000..430132c > >> --- /dev/null > >> +++ b/Documentation/devicetree/bindings/remoteproc/stm32-rproc.txt > >> @@ -0,0 +1,64 @@ > >> +STMicroelectronics STM32 Remoteproc > >> +--- > >> +This document defines the binding for the remoteproc component that loads > >> and > >> +boots firmwares on the ST32MP family chipset. > >> + > >> +Required properties: > >> +- compatible: Must be "st,stm32mp1-m4" > >> +- reg: Address ranges of the remote processor dedicated > >> memories. > >> +The parent node should provide an appropriate ranges property > >> +for properly translating these into bus addresses. > > dma-ranges, but that's independent of 'reg'. > > > > It needs to list how many reg regions and what they are. > > The "reg" property needs to be removed since it is not used by the > driver : the "memory-region" property (defined below) provides with all > the needed memory information. I'm not sure that's the right direction. reserved-memory nodes generally should be in the range of system memory (i.e. what /memory nodes define). > Unfortunately, when I remove this "reg" property from the DeviceTree, I > have this warning when building (W=123) the DTB: > > "Warning (avoid_unnecessary_addr_size): /mlahb: unnecessary > #address-cells/#size-cells without "ranges" or child "reg" property" > > IMHO, there is something wrong in the dtc script which seems to ignore > the "dma-ranges" property that needs to have #address-cells/#size-cells > defined. Just like "ranges". Perhaps. > > The quick patch below (add check for "dma-ranges" ) in > scripts/dtc/checks.c solves this issue. > > static void check_avoid_unnecessary_addr_size(struct check *c, struct > dt_info *dti, >struct node *node) > { > ... > if (get_property(node, "ranges") || get_property(node, > "dma-ranges") || !node->children) > return; > ... > > Can you confirm that I can remove the "reg" property and ignore the warning? That should cause another warning because the 'simple-bus' checks expect to have nodes with addresses as 'simple-bus' means MMIO bus. That may have been the check which was broken for a while and I just fixed not too long ago. Rob
Re: [PATCH v2 2/8] dt-bindings: remoteproc: add bindings for stm32 remote processor driver
Hi Rob, On 30/04/2019 2:40 AM, Rob Herring wrote: > On Tue, Apr 16, 2019 at 04:58:13PM +0200, Fabien Dessenne wrote: >> Add the device tree bindings document for the stm32 remoteproc devices. >> >> Signed-off-by: Fabien Dessenne >> --- >> .../devicetree/bindings/remoteproc/stm32-rproc.txt | 64 >> ++ >> 1 file changed, 64 insertions(+) >> create mode 100644 >> Documentation/devicetree/bindings/remoteproc/stm32-rproc.txt >> >> diff --git a/Documentation/devicetree/bindings/remoteproc/stm32-rproc.txt >> b/Documentation/devicetree/bindings/remoteproc/stm32-rproc.txt >> new file mode 100644 >> index 000..430132c >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/remoteproc/stm32-rproc.txt >> @@ -0,0 +1,64 @@ >> +STMicroelectronics STM32 Remoteproc >> +--- >> +This document defines the binding for the remoteproc component that loads >> and >> +boots firmwares on the ST32MP family chipset. >> + >> +Required properties: >> +- compatible: Must be "st,stm32mp1-m4" >> +- reg: Address ranges of the remote processor dedicated >> memories. >> +The parent node should provide an appropriate ranges property >> +for properly translating these into bus addresses. > dma-ranges, but that's independent of 'reg'. > > It needs to list how many reg regions and what they are. The "reg" property needs to be removed since it is not used by the driver : the "memory-region" property (defined below) provides with all the needed memory information. Unfortunately, when I remove this "reg" property from the DeviceTree, I have this warning when building (W=123) the DTB: "Warning (avoid_unnecessary_addr_size): /mlahb: unnecessary #address-cells/#size-cells without "ranges" or child "reg" property" IMHO, there is something wrong in the dtc script which seems to ignore the "dma-ranges" property that needs to have #address-cells/#size-cells defined. Just like "ranges". The quick patch below (add check for "dma-ranges" ) in scripts/dtc/checks.c solves this issue. static void check_avoid_unnecessary_addr_size(struct check *c, struct dt_info *dti, struct node *node) { ... if (get_property(node, "ranges") || get_property(node, "dma-ranges") || !node->children) return; ... Can you confirm that I can remove the "reg" property and ignore the warning? BR Fabien > >> +- resets: Reference to a reset controller asserting the remote processor. >> +- st,syscfg-holdboot: Reference to the system configuration which holds the >> +remote processor reset hold boot >> +1st cell: phandle of syscon block >> +2nd cell: register offset containing the hold boot setting >> +3rd cell: register bitmask for the hold boot field >> +- st,syscfg-tz: Reference to the system configuration which holds the RCC >> trust >> +zone mode >> +1st cell: phandle to syscon block >> +2nd cell: register offset containing the RCC trust zone mode setting >> +3rd cell: register bitmask for the RCC trust zone mode bit >> + >> +Optional properties: >> +- interrupts: Should contain the watchdog interrupt >> +- mboxes: This property is required only if the rpmsg/virtio functionality >> +is used. List of phandle and mailbox channel specifiers: >> +- a channel (a) used to communicate through virtqueues with the >> + remote proc. >> + Bi-directional channel: >> + - from local to remote = send message >> + - from remote to local = send message ack >> +- a channel (b) working the opposite direction of channel (a) >> +- a channel (c) used by the local proc to notify the remote proc >> + that it is about to be shut down. >> + Unidirectional channel: >> + - from local to remote, where ACK from the remote means >> +that it is ready for shutdown >> +- mbox-names: This property is required if the mboxes property is >> used. >> +- must be "vq0" for channel (a) >> +- must be "vq1" for channel (b) >> +- must be "shutdown" for channel (c) >> +- memory-region: List of phandles to the reserved memory regions associated >> with >> +the remoteproc device. This is variable and describes the >> +memories shared with the remote processor (eg: remoteproc >> +firmware and carveouts, rpmsg vrings, ...). >> +(see ../reserved-memory/reserved-memory.txt) >> +- st,syscfg-pdds: Reference to the system configuration which holds the >> remote >> +processor deep sleep setting >> +1st cell: phandle to syscon block >> +2nd cell: register offset containing the deep sleep setting >> +3rd cell: register bitmask for the deep sleep bit >> +- auto_boot:If defined, when remoteproc is probed, it loads the
Re: [PATCH v2 2/8] dt-bindings: remoteproc: add bindings for stm32 remote processor driver
On Tue, Apr 16, 2019 at 04:58:13PM +0200, Fabien Dessenne wrote: > Add the device tree bindings document for the stm32 remoteproc devices. > > Signed-off-by: Fabien Dessenne > --- > .../devicetree/bindings/remoteproc/stm32-rproc.txt | 64 > ++ > 1 file changed, 64 insertions(+) > create mode 100644 > Documentation/devicetree/bindings/remoteproc/stm32-rproc.txt > > diff --git a/Documentation/devicetree/bindings/remoteproc/stm32-rproc.txt > b/Documentation/devicetree/bindings/remoteproc/stm32-rproc.txt > new file mode 100644 > index 000..430132c > --- /dev/null > +++ b/Documentation/devicetree/bindings/remoteproc/stm32-rproc.txt > @@ -0,0 +1,64 @@ > +STMicroelectronics STM32 Remoteproc > +--- > +This document defines the binding for the remoteproc component that loads and > +boots firmwares on the ST32MP family chipset. > + > +Required properties: > +- compatible:Must be "st,stm32mp1-m4" > +- reg: Address ranges of the remote processor dedicated > memories. > + The parent node should provide an appropriate ranges property > + for properly translating these into bus addresses. dma-ranges, but that's independent of 'reg'. It needs to list how many reg regions and what they are. > +- resets:Reference to a reset controller asserting the remote processor. > +- st,syscfg-holdboot: Reference to the system configuration which holds the > + remote processor reset hold boot > + 1st cell: phandle of syscon block > + 2nd cell: register offset containing the hold boot setting > + 3rd cell: register bitmask for the hold boot field > +- st,syscfg-tz: Reference to the system configuration which holds the RCC > trust > + zone mode > + 1st cell: phandle to syscon block > + 2nd cell: register offset containing the RCC trust zone mode setting > + 3rd cell: register bitmask for the RCC trust zone mode bit > + > +Optional properties: > +- interrupts:Should contain the watchdog interrupt > +- mboxes:This property is required only if the rpmsg/virtio functionality > + is used. List of phandle and mailbox channel specifiers: > + - a channel (a) used to communicate through virtqueues with the > + remote proc. > + Bi-directional channel: > + - from local to remote = send message > + - from remote to local = send message ack > + - a channel (b) working the opposite direction of channel (a) > + - a channel (c) used by the local proc to notify the remote proc > + that it is about to be shut down. > + Unidirectional channel: > + - from local to remote, where ACK from the remote means > + that it is ready for shutdown > +- mbox-names:This property is required if the mboxes property is > used. > + - must be "vq0" for channel (a) > + - must be "vq1" for channel (b) > + - must be "shutdown" for channel (c) > +- memory-region: List of phandles to the reserved memory regions associated > with > + the remoteproc device. This is variable and describes the > + memories shared with the remote processor (eg: remoteproc > + firmware and carveouts, rpmsg vrings, ...). > + (see ../reserved-memory/reserved-memory.txt) > +- st,syscfg-pdds: Reference to the system configuration which holds the > remote > + processor deep sleep setting > + 1st cell: phandle to syscon block > + 2nd cell: register offset containing the deep sleep setting > + 3rd cell: register bitmask for the deep sleep bit > +- auto_boot: If defined, when remoteproc is probed, it loads the default > + firmware and starts the remote processor. st,auto-boot > + > +Example: > + m4_rproc: m4@0 { > + compatible = "st,stm32mp1-m4"; > + reg = <0x 0x1>, > + <0x1000 0x4>, > + <0x3000 0x4>; > + resets = < MCU_R>; > + st,syscfg-holdboot = < 0x10C 0x1>; > + st,syscfg-tz = < 0x000 0x1>; > + }; > -- > 2.7.4 >
[PATCH v2 2/8] dt-bindings: remoteproc: add bindings for stm32 remote processor driver
Add the device tree bindings document for the stm32 remoteproc devices. Signed-off-by: Fabien Dessenne --- .../devicetree/bindings/remoteproc/stm32-rproc.txt | 64 ++ 1 file changed, 64 insertions(+) create mode 100644 Documentation/devicetree/bindings/remoteproc/stm32-rproc.txt diff --git a/Documentation/devicetree/bindings/remoteproc/stm32-rproc.txt b/Documentation/devicetree/bindings/remoteproc/stm32-rproc.txt new file mode 100644 index 000..430132c --- /dev/null +++ b/Documentation/devicetree/bindings/remoteproc/stm32-rproc.txt @@ -0,0 +1,64 @@ +STMicroelectronics STM32 Remoteproc +--- +This document defines the binding for the remoteproc component that loads and +boots firmwares on the ST32MP family chipset. + +Required properties: +- compatible: Must be "st,stm32mp1-m4" +- reg: Address ranges of the remote processor dedicated memories. + The parent node should provide an appropriate ranges property + for properly translating these into bus addresses. +- resets: Reference to a reset controller asserting the remote processor. +- st,syscfg-holdboot: Reference to the system configuration which holds the + remote processor reset hold boot + 1st cell: phandle of syscon block + 2nd cell: register offset containing the hold boot setting + 3rd cell: register bitmask for the hold boot field +- st,syscfg-tz: Reference to the system configuration which holds the RCC trust + zone mode + 1st cell: phandle to syscon block + 2nd cell: register offset containing the RCC trust zone mode setting + 3rd cell: register bitmask for the RCC trust zone mode bit + +Optional properties: +- interrupts: Should contain the watchdog interrupt +- mboxes: This property is required only if the rpmsg/virtio functionality + is used. List of phandle and mailbox channel specifiers: + - a channel (a) used to communicate through virtqueues with the + remote proc. + Bi-directional channel: + - from local to remote = send message + - from remote to local = send message ack + - a channel (b) working the opposite direction of channel (a) + - a channel (c) used by the local proc to notify the remote proc + that it is about to be shut down. + Unidirectional channel: + - from local to remote, where ACK from the remote means + that it is ready for shutdown +- mbox-names: This property is required if the mboxes property is used. + - must be "vq0" for channel (a) + - must be "vq1" for channel (b) + - must be "shutdown" for channel (c) +- memory-region: List of phandles to the reserved memory regions associated with + the remoteproc device. This is variable and describes the + memories shared with the remote processor (eg: remoteproc + firmware and carveouts, rpmsg vrings, ...). + (see ../reserved-memory/reserved-memory.txt) +- st,syscfg-pdds: Reference to the system configuration which holds the remote + processor deep sleep setting + 1st cell: phandle to syscon block + 2nd cell: register offset containing the deep sleep setting + 3rd cell: register bitmask for the deep sleep bit +- auto_boot: If defined, when remoteproc is probed, it loads the default + firmware and starts the remote processor. + +Example: + m4_rproc: m4@0 { + compatible = "st,stm32mp1-m4"; + reg = <0x 0x1>, + <0x1000 0x4>, + <0x3000 0x4>; + resets = < MCU_R>; + st,syscfg-holdboot = < 0x10C 0x1>; + st,syscfg-tz = < 0x000 0x1>; + }; -- 2.7.4