All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peng Fan <peng.fan@nxp.com>
To: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: "ohad@wizery.com" <ohad@wizery.com>,
	"bjorn.andersson@linaro.org" <bjorn.andersson@linaro.org>,
	"o.rempel@pengutronix.de" <o.rempel@pengutronix.de>,
	"shawnguo@kernel.org" <shawnguo@kernel.org>,
	"s.hauer@pengutronix.de" <s.hauer@pengutronix.de>,
	"kernel@pengutronix.de" <kernel@pengutronix.de>,
	"festevam@gmail.com" <festevam@gmail.com>,
	dl-linux-imx <linux-imx@nxp.com>,
	"linux-remoteproc@vger.kernel.org"
	<linux-remoteproc@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"paul@crapouillou.net" <paul@crapouillou.net>,
	"matthias.bgg@gmail.com" <matthias.bgg@gmail.com>,
	"agross@kernel.org" <agross@kernel.org>,
	"patrice.chotard@st.com" <patrice.chotard@st.com>
Subject: RE: [PATCH V5 7/8] remoteproc: imx_rproc: ignore mapping vdev regions
Date: Tue, 12 Jan 2021 09:41:12 +0000	[thread overview]
Message-ID: <DB6PR0402MB2760F6F982C32B6557467C9188AA0@DB6PR0402MB2760.eurprd04.prod.outlook.com> (raw)
In-Reply-To: <20210111215023.GJ144935@xps15>

> Subject: Re: [PATCH V5 7/8] remoteproc: imx_rproc: ignore mapping vdev
> regions
> 
> On Tue, Dec 29, 2020 at 11:30:18AM +0800, peng.fan@nxp.com wrote:
> > From: Peng Fan <peng.fan@nxp.com>
> >
> > vdev regions are vdev0vring0, vdev0vring1, vdevbuffer and similar.
> > They are handled by remoteproc common code, no need to map in imx
> > rproc driver.
> >
> > Signed-off-by: Peng Fan <peng.fan@nxp.com>
> > ---
> >  drivers/remoteproc/imx_rproc.c | 3 +++
> >  1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/remoteproc/imx_rproc.c
> > b/drivers/remoteproc/imx_rproc.c index f80428afb8a7..e62a53ee128e
> > 100644
> > --- a/drivers/remoteproc/imx_rproc.c
> > +++ b/drivers/remoteproc/imx_rproc.c
> > @@ -417,6 +417,9 @@ static int imx_rproc_addr_init(struct imx_rproc
> *priv,
> >  		struct resource res;
> >
> >  		node = of_parse_phandle(np, "memory-region", a);
> > +		/* Not map vdev region */
> > +		if (!strcmp(node->name, "vdev"))
> > +			continue;
> 
> I am very confused and because I don't see an example for the DT in the
> bindings document I have to guess what is going on.

V6 will include the DT yaml.

> 
> So I am guessing that you have laid out the memory regions for the vrings and
> the vdev0buffer in the DT "memory-region".

The dts part will be similar as following:

+    #include <dt-bindings/clock/imx8mm-clock.h>
+    rsc_table: rsc_table@550ff000 {
+      no-map;
+      reg = <0x550ff000 0x1000>;
+    };
+
+    vdev0vring0: vdev0vring0@55000000 {
+      no-map;
+      reg = <0x55000000 0x8000>;
+    };
+
+    vdev0vring1: vdev0vring1@55008000 {
+      reg = <0x55008000 0x8000>;
+      no-map;
+    };
+
+    vdevbuffer: vdevbuffer@55400000 {
+      compatible = "shared-dma-pool";
+      reg = <0x55400000 0x100000>;
+      no-map;
+    };
+
+    imx8mm-cm4 {
+      compatible = "fsl,imx8mm-cm4";
+      clocks = <&clk IMX8MM_CLK_M4_DIV>;
+      mbox-names = "tx", "rx", "rxdb";
+      mboxes = <&mu 0 1
+                &mu 1 1
+                &mu 3 1>;
+      memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>, <&rsc_table>;
+      syscon = <&src>;
+    };

> 
> For the vrings I don't see the allocation of a carveout, which means that you
> will take the memory out of the DMA pool and the reserve memory will be
> wasted.

imx_rproc_parse_memory_regions will alloc carveout.

> 
> For the vdev0buffer, what you have will work *only* if that entry is the first
> one in the list of memory regions, as we agreed here [2].

Yes. I agree and follow this rule from then.

Thanks,
Peng.

> 
> [1].
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Felixir.b
> ootlin.com%2Flinux%2Fv5.11-rc3%2Fsource%2Fdrivers%2Fremoteproc%2Fre
> moteproc_core.c%23L321&amp;data=04%7C01%7Cpeng.fan%40nxp.com%7
> C581784529b1646b9d34b08d8b67ae8c7%7C686ea1d3bc2b4c6fa92cd99c5c
> 301635%7C0%7C0%7C637459986311799770%7CUnknown%7CTWFpbGZsb3
> d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0
> %3D%7C1000&amp;sdata=Qur6YiTWlak0ZRnrUZRzawfoO38EBrAItqZm66b4
> m20%3D&amp;reserved=0
> [2].
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatch
> work.kernel.org%2Fproject%2Flinux-remoteproc%2Fpatch%2F202007221315
> 43.7024-1-peng.fan%40nxp.com%2F&amp;data=04%7C01%7Cpeng.fan%40n
> xp.com%7C581784529b1646b9d34b08d8b67ae8c7%7C686ea1d3bc2b4c6fa9
> 2cd99c5c301635%7C0%7C0%7C637459986311799770%7CUnknown%7CTW
> FpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJX
> VCI6Mn0%3D%7C1000&amp;sdata=b%2F8muWtb3yxKIsnXmKmRGYYV33%2
> FHjwA6a8x58geY7eE%3D&amp;reserved=0
> 
> >  		err = of_address_to_resource(node, 0, &res);
> >  		if (err) {
> >  			dev_err(dev, "unable to resolve memory region\n");
> > --
> > 2.28.0
> >

WARNING: multiple messages have this Message-ID (diff)
From: Peng Fan <peng.fan@nxp.com>
To: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: "ohad@wizery.com" <ohad@wizery.com>,
	"patrice.chotard@st.com" <patrice.chotard@st.com>,
	"festevam@gmail.com" <festevam@gmail.com>,
	"s.hauer@pengutronix.de" <s.hauer@pengutronix.de>,
	"linux-remoteproc@vger.kernel.org"
	<linux-remoteproc@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"bjorn.andersson@linaro.org" <bjorn.andersson@linaro.org>,
	"paul@crapouillou.net" <paul@crapouillou.net>,
	"o.rempel@pengutronix.de" <o.rempel@pengutronix.de>,
	"agross@kernel.org" <agross@kernel.org>,
	dl-linux-imx <linux-imx@nxp.com>,
	"kernel@pengutronix.de" <kernel@pengutronix.de>,
	"matthias.bgg@gmail.com" <matthias.bgg@gmail.com>,
	"shawnguo@kernel.org" <shawnguo@kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>
Subject: RE: [PATCH V5 7/8] remoteproc: imx_rproc: ignore mapping vdev regions
Date: Tue, 12 Jan 2021 09:41:12 +0000	[thread overview]
Message-ID: <DB6PR0402MB2760F6F982C32B6557467C9188AA0@DB6PR0402MB2760.eurprd04.prod.outlook.com> (raw)
In-Reply-To: <20210111215023.GJ144935@xps15>

> Subject: Re: [PATCH V5 7/8] remoteproc: imx_rproc: ignore mapping vdev
> regions
> 
> On Tue, Dec 29, 2020 at 11:30:18AM +0800, peng.fan@nxp.com wrote:
> > From: Peng Fan <peng.fan@nxp.com>
> >
> > vdev regions are vdev0vring0, vdev0vring1, vdevbuffer and similar.
> > They are handled by remoteproc common code, no need to map in imx
> > rproc driver.
> >
> > Signed-off-by: Peng Fan <peng.fan@nxp.com>
> > ---
> >  drivers/remoteproc/imx_rproc.c | 3 +++
> >  1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/remoteproc/imx_rproc.c
> > b/drivers/remoteproc/imx_rproc.c index f80428afb8a7..e62a53ee128e
> > 100644
> > --- a/drivers/remoteproc/imx_rproc.c
> > +++ b/drivers/remoteproc/imx_rproc.c
> > @@ -417,6 +417,9 @@ static int imx_rproc_addr_init(struct imx_rproc
> *priv,
> >  		struct resource res;
> >
> >  		node = of_parse_phandle(np, "memory-region", a);
> > +		/* Not map vdev region */
> > +		if (!strcmp(node->name, "vdev"))
> > +			continue;
> 
> I am very confused and because I don't see an example for the DT in the
> bindings document I have to guess what is going on.

V6 will include the DT yaml.

> 
> So I am guessing that you have laid out the memory regions for the vrings and
> the vdev0buffer in the DT "memory-region".

The dts part will be similar as following:

+    #include <dt-bindings/clock/imx8mm-clock.h>
+    rsc_table: rsc_table@550ff000 {
+      no-map;
+      reg = <0x550ff000 0x1000>;
+    };
+
+    vdev0vring0: vdev0vring0@55000000 {
+      no-map;
+      reg = <0x55000000 0x8000>;
+    };
+
+    vdev0vring1: vdev0vring1@55008000 {
+      reg = <0x55008000 0x8000>;
+      no-map;
+    };
+
+    vdevbuffer: vdevbuffer@55400000 {
+      compatible = "shared-dma-pool";
+      reg = <0x55400000 0x100000>;
+      no-map;
+    };
+
+    imx8mm-cm4 {
+      compatible = "fsl,imx8mm-cm4";
+      clocks = <&clk IMX8MM_CLK_M4_DIV>;
+      mbox-names = "tx", "rx", "rxdb";
+      mboxes = <&mu 0 1
+                &mu 1 1
+                &mu 3 1>;
+      memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>, <&rsc_table>;
+      syscon = <&src>;
+    };

> 
> For the vrings I don't see the allocation of a carveout, which means that you
> will take the memory out of the DMA pool and the reserve memory will be
> wasted.

imx_rproc_parse_memory_regions will alloc carveout.

> 
> For the vdev0buffer, what you have will work *only* if that entry is the first
> one in the list of memory regions, as we agreed here [2].

Yes. I agree and follow this rule from then.

Thanks,
Peng.

> 
> [1].
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Felixir.b
> ootlin.com%2Flinux%2Fv5.11-rc3%2Fsource%2Fdrivers%2Fremoteproc%2Fre
> moteproc_core.c%23L321&amp;data=04%7C01%7Cpeng.fan%40nxp.com%7
> C581784529b1646b9d34b08d8b67ae8c7%7C686ea1d3bc2b4c6fa92cd99c5c
> 301635%7C0%7C0%7C637459986311799770%7CUnknown%7CTWFpbGZsb3
> d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0
> %3D%7C1000&amp;sdata=Qur6YiTWlak0ZRnrUZRzawfoO38EBrAItqZm66b4
> m20%3D&amp;reserved=0
> [2].
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatch
> work.kernel.org%2Fproject%2Flinux-remoteproc%2Fpatch%2F202007221315
> 43.7024-1-peng.fan%40nxp.com%2F&amp;data=04%7C01%7Cpeng.fan%40n
> xp.com%7C581784529b1646b9d34b08d8b67ae8c7%7C686ea1d3bc2b4c6fa9
> 2cd99c5c301635%7C0%7C0%7C637459986311799770%7CUnknown%7CTW
> FpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJX
> VCI6Mn0%3D%7C1000&amp;sdata=b%2F8muWtb3yxKIsnXmKmRGYYV33%2
> FHjwA6a8x58geY7eE%3D&amp;reserved=0
> 
> >  		err = of_address_to_resource(node, 0, &res);
> >  		if (err) {
> >  			dev_err(dev, "unable to resolve memory region\n");
> > --
> > 2.28.0
> >

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-01-12  9:42 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-29  3:30 [PATCH V5 0/8] remoteproc: imx_rproc: support iMX8MQ/M peng.fan
2020-12-29  3:30 ` peng.fan
2020-12-29  3:30 ` [PATCH V5 1/8] remoteproc: introduce is_iomem to rproc_mem_entry peng.fan
2020-12-29  3:30   ` peng.fan
2021-01-11 18:53   ` Mathieu Poirier
2021-01-11 18:53     ` Mathieu Poirier
2020-12-29  3:30 ` [PATCH V5 2/8] remoteproc: add is_iomem to da_to_va peng.fan
2020-12-29  3:30   ` peng.fan
2020-12-30 15:14   ` kernel test robot
2020-12-30 15:14     ` kernel test robot
2020-12-30 15:20   ` kernel test robot
2020-12-30 15:20     ` kernel test robot
2021-01-11 20:25   ` Mathieu Poirier
2021-01-11 20:25     ` Mathieu Poirier
2020-12-29  3:30 ` [PATCH V5 3/8] remoteproc: imx_rproc: correct err message peng.fan
2020-12-29  3:30   ` peng.fan
2021-01-11 20:35   ` Mathieu Poirier
2021-01-11 20:35     ` Mathieu Poirier
2021-01-11 20:44   ` Mathieu Poirier
2021-01-11 20:44     ` Mathieu Poirier
2020-12-29  3:30 ` [PATCH V5 4/8] remoteproc: imx_rproc: use devm_ioremap peng.fan
2020-12-29  3:30   ` peng.fan
2021-01-11 20:46   ` Mathieu Poirier
2021-01-11 20:46     ` Mathieu Poirier
2020-12-29  3:30 ` [PATCH V5 5/8] remoteproc: imx_rproc: add i.MX specific parse fw hook peng.fan
2020-12-29  3:30   ` peng.fan
2020-12-29  3:30 ` [PATCH V5 6/8] remoteproc: imx_rproc: support i.MX8MQ/M peng.fan
2020-12-29  3:30   ` peng.fan
2021-01-11 21:40   ` Mathieu Poirier
2021-01-11 21:40     ` Mathieu Poirier
2020-12-29  3:30 ` [PATCH V5 7/8] remoteproc: imx_rproc: ignore mapping vdev regions peng.fan
2020-12-29  3:30   ` peng.fan
2021-01-11 21:50   ` Mathieu Poirier
2021-01-11 21:50     ` Mathieu Poirier
2021-01-12  9:41     ` Peng Fan [this message]
2021-01-12  9:41       ` Peng Fan
2021-01-12 18:46       ` Mathieu Poirier
2021-01-12 18:46         ` Mathieu Poirier
2021-01-13  2:19         ` Peng Fan
2021-01-13  2:19           ` Peng Fan
2021-01-13 16:17           ` Mathieu Poirier
2021-01-13 16:17             ` Mathieu Poirier
2021-01-14  9:52             ` Peng Fan
2021-01-14  9:52               ` Peng Fan
2021-01-14 17:10               ` Mathieu Poirier
2021-01-14 17:10                 ` Mathieu Poirier
2021-01-15  3:29                 ` Peng Fan
2021-01-15  3:29                   ` Peng Fan
2020-12-29  3:30 ` [PATCH V5 8/8] remoteproc: imx_proc: enable virtio/mailbox peng.fan
2020-12-29  3:30   ` peng.fan

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=DB6PR0402MB2760F6F982C32B6557467C9188AA0@DB6PR0402MB2760.eurprd04.prod.outlook.com \
    --to=peng.fan@nxp.com \
    --cc=agross@kernel.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=festevam@gmail.com \
    --cc=kernel@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-remoteproc@vger.kernel.org \
    --cc=mathieu.poirier@linaro.org \
    --cc=matthias.bgg@gmail.com \
    --cc=o.rempel@pengutronix.de \
    --cc=ohad@wizery.com \
    --cc=patrice.chotard@st.com \
    --cc=paul@crapouillou.net \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@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.