All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fabien DESSENNE <fabien.dessenne@st.com>
To: Rob Herring <robh@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>,
	Maxime Coquelin <mcoquelin.stm32@gmail.com>,
	Alexandre TORGUE <alexandre.torgue@st.com>,
	Ohad Ben-Cohen <ohad@wizery.com>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-stm32@st-md-mailman.stormreply.com"
	<linux-stm32@st-md-mailman.stormreply.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-remoteproc@vger.kernel.org"
	<linux-remoteproc@vger.kernel.org>,
	Loic PALLARDY <loic.pallardy@st.com>,
	Arnaud POULIQUEN <arnaud.pouliquen@st.com>,
	Ludovic BARRE <ludovic.barre@st.com>,
	Benjamin GAIGNARD <benjamin.gaignard@st.com>
Subject: Re: [PATCH v2 2/8] dt-bindings: remoteproc: add bindings for stm32 remote processor driver
Date: Tue, 30 Apr 2019 14:14:56 +0000	[thread overview]
Message-ID: <ff424530-6e7b-cec9-910f-1897d60de2a1@st.com> (raw)
In-Reply-To: <20190430004051.GA7391@bogus>

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 <fabien.dessenne@st.com>
>> ---
>>   .../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 0000000..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 default
>> +		firmware and starts the remote processor.
> st,auto-boot
>
>> +
>> +Example:
>> +	m4_rproc: m4@0 {
>> +		compatible = "st,stm32mp1-m4";
>> +		reg = <0x00000000 0x10000>,
>> +		      <0x10000000 0x40000>,
>> +		      <0x30000000 0x40000>;
>> +		resets = <&rcc MCU_R>;
>> +		st,syscfg-holdboot = <&rcc 0x10C 0x1>;
>> +		st,syscfg-tz = <&rcc 0x000 0x1>;
>> +	};
>> -- 
>> 2.7.4
>>

WARNING: multiple messages have this Message-ID (diff)
From: Fabien DESSENNE <fabien.dessenne@st.com>
To: Rob Herring <robh@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>,
	Ohad Ben-Cohen <ohad@wizery.com>,
	Alexandre TORGUE <alexandre.torgue@st.com>,
	Loic PALLARDY <loic.pallardy@st.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	Arnaud POULIQUEN <arnaud.pouliquen@st.com>,
	"linux-remoteproc@vger.kernel.org"
	<linux-remoteproc@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	Ludovic BARRE <ludovic.barre@st.com>,
	Maxime Coquelin <mcoquelin.stm32@gmail.com>,
	"linux-stm32@st-md-mailman.stormreply.com"
	<linux-stm32@st-md-mailman.stormreply.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	Benjamin GAIGNARD <benjamin.gaignard@st.com>
Subject: Re: [PATCH v2 2/8] dt-bindings: remoteproc: add bindings for stm32 remote processor driver
Date: Tue, 30 Apr 2019 14:14:56 +0000	[thread overview]
Message-ID: <ff424530-6e7b-cec9-910f-1897d60de2a1@st.com> (raw)
In-Reply-To: <20190430004051.GA7391@bogus>

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 <fabien.dessenne@st.com>
>> ---
>>   .../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 0000000..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 default
>> +		firmware and starts the remote processor.
> st,auto-boot
>
>> +
>> +Example:
>> +	m4_rproc: m4@0 {
>> +		compatible = "st,stm32mp1-m4";
>> +		reg = <0x00000000 0x10000>,
>> +		      <0x10000000 0x40000>,
>> +		      <0x30000000 0x40000>;
>> +		resets = <&rcc MCU_R>;
>> +		st,syscfg-holdboot = <&rcc 0x10C 0x1>;
>> +		st,syscfg-tz = <&rcc 0x000 0x1>;
>> +	};
>> -- 
>> 2.7.4
>>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2019-04-30 14:14 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-16 14:58 [PATCH v2 0/8] stm32 m4 remoteproc on STM32MP157c Fabien Dessenne
2019-04-16 14:58 ` Fabien Dessenne
2019-04-16 14:58 ` Fabien Dessenne
2019-04-16 14:58 ` Fabien Dessenne
2019-04-16 14:58 ` [PATCH v2 1/8] dt-bindings: stm32: add bindings for ML-AHB interconnect Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne
2019-04-29 23:13   ` Rob Herring
2019-04-29 23:13     ` Rob Herring
2019-04-29 23:13     ` Rob Herring
2019-04-16 14:58 ` [PATCH v2 2/8] dt-bindings: remoteproc: add bindings for stm32 remote processor driver Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne
2019-04-30  0:40   ` Rob Herring
2019-04-30  0:40     ` Rob Herring
2019-04-30 14:14     ` Fabien DESSENNE [this message]
2019-04-30 14:14       ` Fabien DESSENNE
2019-04-30 14:14       ` Fabien DESSENNE
2019-04-30 20:37       ` Rob Herring
2019-04-30 20:37         ` Rob Herring
2019-04-30 20:37         ` Rob Herring
2019-04-16 14:58 ` [PATCH v2 3/8] remoteproc: stm32: add an ST stm32_rproc driver Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne
2019-04-16 14:58 ` [PATCH v2 4/8] ARM: dts: stm32: add m4 remoteproc support on STM32MP157c Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne
2019-04-16 14:58 ` [PATCH v2 5/8] ARM: dts: stm32: declare copro reserved memories on STM32MP157c-ed1 Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne
2019-04-16 14:58 ` [PATCH v2 6/8] ARM: dts: stm32: enable m4 coprocessor support " Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne
2019-04-16 14:58 ` [PATCH v2 7/8] ARM: dts: stm32: declare copro reserved memories on STM32MP157a-dk1 Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne
2019-04-16 14:58 ` [PATCH v2 8/8] ARM: dts: stm32: enable m4 coprocessor support " Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne
2019-04-16 14:58   ` Fabien Dessenne

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ff424530-6e7b-cec9-910f-1897d60de2a1@st.com \
    --to=fabien.dessenne@st.com \
    --cc=alexandre.torgue@st.com \
    --cc=arnaud.pouliquen@st.com \
    --cc=benjamin.gaignard@st.com \
    --cc=bjorn.andersson@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-remoteproc@vger.kernel.org \
    --cc=linux-stm32@st-md-mailman.stormreply.com \
    --cc=loic.pallardy@st.com \
    --cc=ludovic.barre@st.com \
    --cc=mark.rutland@arm.com \
    --cc=mcoquelin.stm32@gmail.com \
    --cc=ohad@wizery.com \
    --cc=robh@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.