Message ID | 1462557972-32699-1-git-send-email-bjorn.andersson@linaro.org |
---|---|
State | New |
Headers | show |
Hi Bjorn, On 05/06/2016 01:06 PM, Bjorn Andersson wrote: > rpmsg is not user selectable so the rpmsg sample should not depend on > it, as this limits the possibility of compiling the sample client > without any other clients. > > Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> > --- > samples/Kconfig | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/samples/Kconfig b/samples/Kconfig > index d54f28c6dc5e..61a251e579ed 100644 > --- a/samples/Kconfig > +++ b/samples/Kconfig > @@ -57,7 +57,8 @@ config SAMPLE_KDB > > config SAMPLE_RPMSG_CLIENT > tristate "Build rpmsg client sample -- loadable modules only" > - depends on RPMSG && m > + select RPMSG > + depends on m Well, I believe this has to do with the fact that we also need to have a remoteproc driver enabled, as you cannot have the sample running by itself. A remoteproc driver implementing RPMSG would select it, and then this sample can be enabled. In fact, I follow this for all rpmsg bus drivers. regards Suman > help > Build an rpmsg client sample driver, which demonstrates how > to communicate with an AMP-configured remote processor over >
On Fri 06 May 12:25 PDT 2016, Suman Anna wrote: > Hi Bjorn, > > On 05/06/2016 01:06 PM, Bjorn Andersson wrote: > > rpmsg is not user selectable so the rpmsg sample should not depend on > > it, as this limits the possibility of compiling the sample client > > without any other clients. > > > > Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> > > --- > > samples/Kconfig | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/samples/Kconfig b/samples/Kconfig > > index d54f28c6dc5e..61a251e579ed 100644 > > --- a/samples/Kconfig > > +++ b/samples/Kconfig > > @@ -57,7 +57,8 @@ config SAMPLE_KDB > > > > config SAMPLE_RPMSG_CLIENT > > tristate "Build rpmsg client sample -- loadable modules only" > > - depends on RPMSG && m > > + select RPMSG > > + depends on m > > Well, I believe this has to do with the fact that we also need to have a > remoteproc driver enabled, as you cannot have the sample running by > itself. A remoteproc driver implementing RPMSG would select it, and then > this sample can be enabled. In fact, I follow this for all rpmsg bus > drivers. > That does sound backwards though. Remoteproc provides means to control the life cycle of your remote processor and establish (among other things) the virtio channels for e.g. rpmsg, but it certainly does not depend on rpmsg. As far as I can see there's 8 other types of virtio services supported and I presume we're supposed to select those based on the device's need. But based on this I believe the correct solution is not to fix the sample but to make RPMSG selectable in itself. Regards, Bjorn
On 05/06/2016 05:15 PM, Bjorn Andersson wrote: > On Fri 06 May 12:25 PDT 2016, Suman Anna wrote: > >> Hi Bjorn, >> >> On 05/06/2016 01:06 PM, Bjorn Andersson wrote: >>> rpmsg is not user selectable so the rpmsg sample should not depend on >>> it, as this limits the possibility of compiling the sample client >>> without any other clients. >>> >>> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> >>> --- >>> samples/Kconfig | 3 ++- >>> 1 file changed, 2 insertions(+), 1 deletion(-) >>> >>> diff --git a/samples/Kconfig b/samples/Kconfig >>> index d54f28c6dc5e..61a251e579ed 100644 >>> --- a/samples/Kconfig >>> +++ b/samples/Kconfig >>> @@ -57,7 +57,8 @@ config SAMPLE_KDB >>> >>> config SAMPLE_RPMSG_CLIENT >>> tristate "Build rpmsg client sample -- loadable modules only" >>> - depends on RPMSG && m >>> + select RPMSG >>> + depends on m >> >> Well, I believe this has to do with the fact that we also need to have a >> remoteproc driver enabled, as you cannot have the sample running by >> itself. A remoteproc driver implementing RPMSG would select it, and then >> this sample can be enabled. In fact, I follow this for all rpmsg bus >> drivers. >> > > That does sound backwards though. Remoteproc provides means to control > the life cycle of your remote processor and establish (among other > things) the virtio channels for e.g. rpmsg, but it certainly does not > depend on rpmsg. True, but the boot of a remote processor that supports virtio devices is automatic only when you have the virtio_rpmsg_bus probed because of the link between remoteproc_virtio and virtio_rpmsg_bus. > > As far as I can see there's 8 other types of virtio services supported > and I presume we're supposed to select those based on the device's need. > > > But based on this I believe the correct solution is not to fix the > sample but to make RPMSG selectable in itself. Yeah, agreed. regards Suman
On Wed 11 May 08:39 PDT 2016, Suman Anna wrote: > On 05/06/2016 05:15 PM, Bjorn Andersson wrote: > > On Fri 06 May 12:25 PDT 2016, Suman Anna wrote: > > > >> Hi Bjorn, > >> > >> On 05/06/2016 01:06 PM, Bjorn Andersson wrote: > >>> rpmsg is not user selectable so the rpmsg sample should not depend on > >>> it, as this limits the possibility of compiling the sample client > >>> without any other clients. > >>> > >>> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> > >>> --- > >>> samples/Kconfig | 3 ++- > >>> 1 file changed, 2 insertions(+), 1 deletion(-) > >>> > >>> diff --git a/samples/Kconfig b/samples/Kconfig > >>> index d54f28c6dc5e..61a251e579ed 100644 > >>> --- a/samples/Kconfig > >>> +++ b/samples/Kconfig > >>> @@ -57,7 +57,8 @@ config SAMPLE_KDB > >>> > >>> config SAMPLE_RPMSG_CLIENT > >>> tristate "Build rpmsg client sample -- loadable modules only" > >>> - depends on RPMSG && m > >>> + select RPMSG > >>> + depends on m > >> > >> Well, I believe this has to do with the fact that we also need to have a > >> remoteproc driver enabled, as you cannot have the sample running by > >> itself. A remoteproc driver implementing RPMSG would select it, and then > >> this sample can be enabled. In fact, I follow this for all rpmsg bus > >> drivers. > >> > > > > That does sound backwards though. Remoteproc provides means to control > > the life cycle of your remote processor and establish (among other > > things) the virtio channels for e.g. rpmsg, but it certainly does not > > depend on rpmsg. > > True, but the boot of a remote processor that supports virtio devices is > automatic only when you have the virtio_rpmsg_bus probed because of > the link between remoteproc_virtio and virtio_rpmsg_bus. > If I read the code correctly we register the virtios found in the resource table, which will trigger a probe of a virtio driver with the matching "id". The probed vdev will acquire the virtqueues through the find_vqs op, which will upon matching boot the remoteproc. So as far as I understand this does not only apply to rpmsg, but to any virtio driver. Not saying that the "depends" is wrong, just trying to better understand the relationship between these components. > > > > As far as I can see there's 8 other types of virtio services supported > > and I presume we're supposed to select those based on the device's need. > > > > > > But based on this I believe the correct solution is not to fix the > > sample but to make RPMSG selectable in itself. > > Yeah, agreed. > I'll send a patch for that next time I'm messing around in there. Regards, Bjorn
diff --git a/samples/Kconfig b/samples/Kconfig index d54f28c6dc5e..61a251e579ed 100644 --- a/samples/Kconfig +++ b/samples/Kconfig @@ -57,7 +57,8 @@ config SAMPLE_KDB config SAMPLE_RPMSG_CLIENT tristate "Build rpmsg client sample -- loadable modules only" - depends on RPMSG && m + select RPMSG + depends on m help Build an rpmsg client sample driver, which demonstrates how to communicate with an AMP-configured remote processor over
rpmsg is not user selectable so the rpmsg sample should not depend on it, as this limits the possibility of compiling the sample client without any other clients. Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> --- samples/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -- 2.5.0