All of lore.kernel.org
 help / color / mirror / Atom feed
From: Loic PALLARDY <loic.pallardy@st.com>
To: Peter Griffin <peter.griffin@linaro.org>,
	Lee Jones <lee.jones@linaro.org>
Cc: "ohad@wizery.com" <ohad@wizery.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"f.fainelli@gmail.com" <f.fainelli@gmail.com>,
	"kernel@stlinux.com" <kernel@stlinux.com>,
	"Nathan_Lynch@mentor.com" <Nathan_Lynch@mentor.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"s-anna@ti.com" <s-anna@ti.com>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>
Subject: RE: [STLinux Kernel] [PATCH v5 7/7] ARM: STiH407: Move over to using the 'reserved-memory' API for obtaining DMA memory
Date: Thu, 17 Mar 2016 09:05:53 +0000	[thread overview]
Message-ID: <D0C04901035AEF47BB4C8387F4AA41F5359967@SAFEX1NODE23.st.com> (raw)
In-Reply-To: <20160316201051.GA10042@griffinp-ThinkPad-X1-Carbon-2nd>

Hi Lee, Pete,

The coprocessor memory map defined below is for test. Addresses have been arbitrary fixed.
The audio and video firmware you want to use are for product configuration.
For sure memory mapping must be adapted or firmware recompiled.

About coherency between firmware characteristics (linked address, position independent or not, size) and DT definition, you're right, some checks are missing in this version. It shouldn't be possible to load/start a firmware if DT reserved memory is not aligned with firmware resource table and firmware start address.

Lee, I propose to have a short discussion during next ST LT weekly meeting to list missing features and identify ST internal remoteproc patches for upstream.

Regards,
Loic

> -----Original Message-----
> From: Peter Griffin [mailto:peter.griffin@linaro.org]
> Sent: Wednesday, March 16, 2016 9:11 PM
> To: Lee Jones <lee.jones@linaro.org>
> Cc: ohad@wizery.com; devicetree@vger.kernel.org; f.fainelli@gmail.com;
> kernel@stlinux.com; Nathan_Lynch@mentor.com; linux-
> kernel@vger.kernel.org; s-anna@ti.com; linux-arm-
> kernel@lists.infradead.org
> Subject: Re: [STLinux Kernel] [PATCH v5 7/7] ARM: STiH407: Move over to
> using the 'reserved-memory' API for obtaining DMA memory
> 
> Hi Lee,
> 
> On Wed, 16 Mar 2016, Lee Jones wrote:
> 
> > On Wed, 16 Mar 2016, Peter Griffin wrote:
> >
> > > Hi Lee,
> > >
> > > On Tue, 12 Jan 2016, Lee Jones wrote:
> > >
> > > > Doing so saves quite a bit of code in the driver.
> > > >
> > > > For more information on the 'reserved-memory' bindings see:
> > > >
> > > >
> > > > Documentation/devicetree/bindings/reserved-memory/reserved-
> memory.
> > > > txt
> > > >
> > > > Suggested-by: Suman Anna <s-anna@ti.com>
> > > > Signed-off-by: Lee Jones <lee.jones@linaro.org>
> > > > ---
> > > >  arch/arm/boot/dts/stih407-family.dtsi | 46
> > > > +++++++++++++++++++++++++++++------
> > > >  1 file changed, 38 insertions(+), 8 deletions(-)
> > > >
> > > > diff --git a/arch/arm/boot/dts/stih407-family.dtsi
> > > > b/arch/arm/boot/dts/stih407-family.dtsi
> > > > index 15c20b6..27b8efc 100644
> > > > --- a/arch/arm/boot/dts/stih407-family.dtsi
> > > > +++ b/arch/arm/boot/dts/stih407-family.dtsi
> > > > @@ -15,6 +15,36 @@
> > > >  	#address-cells = <1>;
> > > >  	#size-cells = <1>;
> > > >
> > > > +	reserved-memory {
> > > > +		#address-cells = <1>;
> > > > +		#size-cells = <1>;
> > > > +		ranges;
> > > > +
> > > > +		gp0_reserved: rproc@40000000 {
> > > > +			compatible = "shared-dma-pool";
> > > > +			reg = <0x40000000 0x01000000>;
> > > > +			no-map;
> > > > +		};
> > > > +
> > > > +		gp1_reserved: rproc@41000000 {
> > > > +			compatible = "shared-dma-pool";
> > > > +			reg = <0x41000000 0x01000000>;
> > > > +			no-map;
> > > > +		};
> > > > +
> > > > +		audio_reserved: rproc@42000000 {
> > > > +			compatible = "shared-dma-pool";
> > > > +			reg = <0x42000000 0x01000000>;
> > > > +			no-map;
> > > > +		};
> > > > +
> > > > +		dmu_reserved: rproc@43000000 {
> > > > +			compatible = "shared-dma-pool";
> > > > +			reg = <0x43000000 0x01000000>;
> > > > +			no-map;
> > > > +		};
> > >
> > > I don't believe these reserved memory ranges are correct for
> audio_reserved and dmu_reserved.
> > >
> > > For example my vid_firmware-stih407.elf is linked at 0x41c00000 base
> > > address and my audio_firmware-bd-stih407.elf is linked at 0x40c00000.
> > >
> > > So with all the st231 rproc nodes enabled I guess it would still
> > > work. But currently I think st231_gp0 is reserving the memory region
> > > for st231_audio, and st231-gp1 is reserving the memory region for
> st231_dmu.
> >
> > These addresses are taken from internally tested code.
> 
> Yes I did check the internal kernel, it would appear to be wrong there as well.
> One of the joys of mailing list code review I guess :-)
> 
> > I don't have
> > access to the LMI layout documentation (if it even exists) so can't
> > check for myself.
> 
> >  Isn't this just DDR anyway?
> 
> Yes it is DDR
> 
> > So in theory we can
> > configure each devices' slice where ever we feel is appropriate?
> 
> Nope. The st231 audio and video firmwares are provided by ST as binary
> blobs and aren't AFAIK compiled as position independent code. So the
> reserved-memory region needs to match where the firmware has been
> linked to run from.
> 
> > How
> > is memory allocated to the DMU and Audio drivers?  Do you have scripts
> > which link the aforementioned binaries?
> 
> I don't have any scripts, firmware source code or even a st200 toolset.
> 
> >
> > If you think there is an issue, I suggest the best thing to do is ping
> > Ludovic, since he is the author of the original code.
> 
> Ok I will ping Ludovic and point him at this thread.
> 
> I think maybe the internal kernel rproc driver was only used to reserve
> memory, manage clocks, and co-processor reset / power lines, and multicom
> actually loaded the firmware elf file.
> 
> The reason for coming to that conclusion is that if rproc driver was loading the
> firmware I can't see how you would end up with a correctly booted co-
> processor with a reserved-memory node which doesn't match up with
> where the firmware is linked to run from.
> 
> Did you manage to boot audio or video co-pro successfully with the dt nodes
> as they currently are in this patch?
> 
> regards,
> 
> Peter.
> 
> _______________________________________________
> Kernel mailing list
> Kernel@stlinux.com
> http://www.stlinux.com/mailman/listinfo/kernel

WARNING: multiple messages have this Message-ID (diff)
From: loic.pallardy@st.com (Loic PALLARDY)
To: linux-arm-kernel@lists.infradead.org
Subject: [STLinux Kernel] [PATCH v5 7/7] ARM: STiH407: Move over to using the 'reserved-memory' API for obtaining DMA memory
Date: Thu, 17 Mar 2016 09:05:53 +0000	[thread overview]
Message-ID: <D0C04901035AEF47BB4C8387F4AA41F5359967@SAFEX1NODE23.st.com> (raw)
In-Reply-To: <20160316201051.GA10042@griffinp-ThinkPad-X1-Carbon-2nd>

Hi Lee, Pete,

The coprocessor memory map defined below is for test. Addresses have been arbitrary fixed.
The audio and video firmware you want to use are for product configuration.
For sure memory mapping must be adapted or firmware recompiled.

About coherency between firmware characteristics (linked address, position independent or not, size) and DT definition, you're right, some checks are missing in this version. It shouldn't be possible to load/start a firmware if DT reserved memory is not aligned with firmware resource table and firmware start address.

Lee, I propose to have a short discussion during next ST LT weekly meeting to list missing features and identify ST internal remoteproc patches for upstream.

Regards,
Loic

> -----Original Message-----
> From: Peter Griffin [mailto:peter.griffin at linaro.org]
> Sent: Wednesday, March 16, 2016 9:11 PM
> To: Lee Jones <lee.jones@linaro.org>
> Cc: ohad at wizery.com; devicetree at vger.kernel.org; f.fainelli at gmail.com;
> kernel at stlinux.com; Nathan_Lynch at mentor.com; linux-
> kernel at vger.kernel.org; s-anna at ti.com; linux-arm-
> kernel at lists.infradead.org
> Subject: Re: [STLinux Kernel] [PATCH v5 7/7] ARM: STiH407: Move over to
> using the 'reserved-memory' API for obtaining DMA memory
> 
> Hi Lee,
> 
> On Wed, 16 Mar 2016, Lee Jones wrote:
> 
> > On Wed, 16 Mar 2016, Peter Griffin wrote:
> >
> > > Hi Lee,
> > >
> > > On Tue, 12 Jan 2016, Lee Jones wrote:
> > >
> > > > Doing so saves quite a bit of code in the driver.
> > > >
> > > > For more information on the 'reserved-memory' bindings see:
> > > >
> > > >
> > > > Documentation/devicetree/bindings/reserved-memory/reserved-
> memory.
> > > > txt
> > > >
> > > > Suggested-by: Suman Anna <s-anna@ti.com>
> > > > Signed-off-by: Lee Jones <lee.jones@linaro.org>
> > > > ---
> > > >  arch/arm/boot/dts/stih407-family.dtsi | 46
> > > > +++++++++++++++++++++++++++++------
> > > >  1 file changed, 38 insertions(+), 8 deletions(-)
> > > >
> > > > diff --git a/arch/arm/boot/dts/stih407-family.dtsi
> > > > b/arch/arm/boot/dts/stih407-family.dtsi
> > > > index 15c20b6..27b8efc 100644
> > > > --- a/arch/arm/boot/dts/stih407-family.dtsi
> > > > +++ b/arch/arm/boot/dts/stih407-family.dtsi
> > > > @@ -15,6 +15,36 @@
> > > >  	#address-cells = <1>;
> > > >  	#size-cells = <1>;
> > > >
> > > > +	reserved-memory {
> > > > +		#address-cells = <1>;
> > > > +		#size-cells = <1>;
> > > > +		ranges;
> > > > +
> > > > +		gp0_reserved: rproc at 40000000 {
> > > > +			compatible = "shared-dma-pool";
> > > > +			reg = <0x40000000 0x01000000>;
> > > > +			no-map;
> > > > +		};
> > > > +
> > > > +		gp1_reserved: rproc at 41000000 {
> > > > +			compatible = "shared-dma-pool";
> > > > +			reg = <0x41000000 0x01000000>;
> > > > +			no-map;
> > > > +		};
> > > > +
> > > > +		audio_reserved: rproc at 42000000 {
> > > > +			compatible = "shared-dma-pool";
> > > > +			reg = <0x42000000 0x01000000>;
> > > > +			no-map;
> > > > +		};
> > > > +
> > > > +		dmu_reserved: rproc at 43000000 {
> > > > +			compatible = "shared-dma-pool";
> > > > +			reg = <0x43000000 0x01000000>;
> > > > +			no-map;
> > > > +		};
> > >
> > > I don't believe these reserved memory ranges are correct for
> audio_reserved and dmu_reserved.
> > >
> > > For example my vid_firmware-stih407.elf is linked at 0x41c00000 base
> > > address and my audio_firmware-bd-stih407.elf is linked at 0x40c00000.
> > >
> > > So with all the st231 rproc nodes enabled I guess it would still
> > > work. But currently I think st231_gp0 is reserving the memory region
> > > for st231_audio, and st231-gp1 is reserving the memory region for
> st231_dmu.
> >
> > These addresses are taken from internally tested code.
> 
> Yes I did check the internal kernel, it would appear to be wrong there as well.
> One of the joys of mailing list code review I guess :-)
> 
> > I don't have
> > access to the LMI layout documentation (if it even exists) so can't
> > check for myself.
> 
> >  Isn't this just DDR anyway?
> 
> Yes it is DDR
> 
> > So in theory we can
> > configure each devices' slice where ever we feel is appropriate?
> 
> Nope. The st231 audio and video firmwares are provided by ST as binary
> blobs and aren't AFAIK compiled as position independent code. So the
> reserved-memory region needs to match where the firmware has been
> linked to run from.
> 
> > How
> > is memory allocated to the DMU and Audio drivers?  Do you have scripts
> > which link the aforementioned binaries?
> 
> I don't have any scripts, firmware source code or even a st200 toolset.
> 
> >
> > If you think there is an issue, I suggest the best thing to do is ping
> > Ludovic, since he is the author of the original code.
> 
> Ok I will ping Ludovic and point him at this thread.
> 
> I think maybe the internal kernel rproc driver was only used to reserve
> memory, manage clocks, and co-processor reset / power lines, and multicom
> actually loaded the firmware elf file.
> 
> The reason for coming to that conclusion is that if rproc driver was loading the
> firmware I can't see how you would end up with a correctly booted co-
> processor with a reserved-memory node which doesn't match up with
> where the firmware is linked to run from.
> 
> Did you manage to boot audio or video co-pro successfully with the dt nodes
> as they currently are in this patch?
> 
> regards,
> 
> Peter.
> 
> _______________________________________________
> Kernel mailing list
> Kernel at stlinux.com
> http://www.stlinux.com/mailman/listinfo/kernel

  reply	other threads:[~2016-03-17  9:06 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-12 12:46 [PATCH v5 0/7] remoteproc: Add driver for STMicroelectronics platforms Lee Jones
2016-01-12 12:46 ` Lee Jones
2016-01-12 12:46 ` Lee Jones
2016-01-12 12:46 ` [PATCH v5 1/7] remoteproc: debugfs: Check of invalid 'count' value Lee Jones
2016-01-12 12:46   ` Lee Jones
2016-01-12 12:46   ` Lee Jones
2016-01-12 12:46 ` [PATCH v5 2/7] remoteproc: dt: Provide bindings for ST's Remote Processor Controller driver Lee Jones
2016-01-12 12:46   ` Lee Jones
2016-01-12 14:33   ` Rob Herring
2016-01-12 14:33     ` Rob Herring
2016-01-12 14:33     ` Rob Herring
2016-01-12 14:46     ` Lee Jones
2016-01-12 14:46       ` Lee Jones
2016-03-16 16:39   ` [STLinux Kernel] " Peter Griffin
2016-03-16 16:39     ` Peter Griffin
2016-01-12 12:46 ` [PATCH v5 3/7] remoteproc: debugfs: Add ability to boot remote processor using debugfs Lee Jones
2016-01-12 12:46   ` Lee Jones
2016-01-12 12:46   ` Lee Jones
2016-03-16 16:44   ` [STLinux Kernel] " Peter Griffin
2016-03-16 16:44     ` Peter Griffin
2016-03-16 16:44     ` Peter Griffin
2016-01-12 12:46 ` [PATCH v5 4/7] remoteproc: Supply controller driver for ST's Remote Processors Lee Jones
2016-01-12 12:46   ` Lee Jones
2016-01-12 14:47   ` Lee Jones
2016-01-12 14:47     ` Lee Jones
2016-03-16 16:38   ` [STLinux Kernel] " Peter Griffin
2016-03-16 16:38     ` Peter Griffin
2016-01-12 12:46 ` [PATCH v5 5/7] MAINTAINERS: Add ST's Remote Processor Driver to ARM/STI ARCHITECTURE Lee Jones
2016-01-12 12:46   ` Lee Jones
2016-01-12 12:46   ` Lee Jones
2016-03-16 16:40   ` [STLinux Kernel] " Peter Griffin
2016-03-16 16:40     ` Peter Griffin
2016-01-12 12:46 ` [PATCH v5 6/7] ARM: STiH407: Add nodes for RemoteProc Lee Jones
2016-01-12 12:46   ` Lee Jones
2016-04-13 22:04   ` Olof Johansson
2016-04-13 22:04     ` Olof Johansson
2016-04-13 22:04     ` Olof Johansson
2016-01-12 12:46 ` [PATCH v5 7/7] ARM: STiH407: Move over to using the 'reserved-memory' API for obtaining DMA memory Lee Jones
2016-01-12 12:46   ` Lee Jones
2016-03-16 16:35   ` [STLinux Kernel] " Peter Griffin
2016-03-16 16:35     ` Peter Griffin
2016-03-16 16:35     ` Peter Griffin
2016-03-16 16:55     ` Lee Jones
2016-03-16 16:55       ` Lee Jones
2016-03-16 16:55       ` Lee Jones
2016-03-16 20:10       ` Peter Griffin
2016-03-16 20:10         ` Peter Griffin
2016-03-16 20:10         ` Peter Griffin
2016-03-17  9:05         ` Loic PALLARDY [this message]
2016-03-17  9:05           ` Loic PALLARDY
2016-03-17  9:05           ` Loic PALLARDY
2016-03-17 10:18           ` Lee Jones
2016-03-17 10:18             ` Lee Jones
2016-03-17 10:18             ` Lee Jones
2016-01-27  7:31 ` [PATCH v5 0/7] remoteproc: Add driver for STMicroelectronics platforms Lee Jones
2016-01-27  7:31   ` Lee Jones
2016-01-27  7:31   ` Lee Jones
2016-01-27 19:19   ` Bjorn Andersson
2016-01-27 19:19     ` Bjorn Andersson
2016-03-02 15:43     ` Lee Jones
2016-03-02 15:43       ` Lee Jones

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=D0C04901035AEF47BB4C8387F4AA41F5359967@SAFEX1NODE23.st.com \
    --to=loic.pallardy@st.com \
    --cc=Nathan_Lynch@mentor.com \
    --cc=devicetree@vger.kernel.org \
    --cc=f.fainelli@gmail.com \
    --cc=kernel@stlinux.com \
    --cc=lee.jones@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ohad@wizery.com \
    --cc=peter.griffin@linaro.org \
    --cc=s-anna@ti.com \
    /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.