mbox series

[v4,0/9] remoteproc: Add support for attaching with rproc

Message ID 20200601175139.22097-1-mathieu.poirier@linaro.org (mailing list archive)
Headers show
Series remoteproc: Add support for attaching with rproc | expand

Message

Mathieu Poirier June 1, 2020, 5:51 p.m. UTC
This fourth iteration implements a solution that is fairly different from
what was proposed in V3 and earlier versions.  Three aspects have been 
revisited:

1) Only the scenario where the remoteproc core is attaching to the remote
   processor is implemented.  Other scenarios where actions need to be 
   taken when the remote processor is stopped or crashes will be
   considered in subsequent versions.

2) The introduction of a new RPROC_DETACHED state to be set by platform
   drivers when needing to attach to an already running remote processor.

3) New functions are introduced to replicate the functionality provided by
   rproc_fw_boot() and rproc_start(), minus operations related to firmware
   management. 

Enhancement to the documentation has been left out intentionally until it
is agreed to move forward with this implementation.

Applies cleanly on rproc-next(7dcef3988eed) and will be rebased on v5.8-rc1
when it comes out in two weeks.

Thanks,
Mathieu

Mathieu Poirier (9):
  remoteproc: Add new RPROC_DETACHED state
  remoteproc: Add new attach() remoteproc operation
  remoteproc: Introducing function rproc_attach()
  remoteproc: Introducing function rproc_actuate()
  remoteproc: Introducing function rproc_validate()
  remoteproc: Refactor function rproc_boot()
  remoteproc: Refactor function rproc_trigger_auto_boot()
  remoteproc: Refactor function rproc_free_vring()
  remoteproc: Properly handle firmware name when attaching

 drivers/remoteproc/remoteproc_core.c     | 226 +++++++++++++++++++++--
 drivers/remoteproc/remoteproc_internal.h |   8 +
 drivers/remoteproc/remoteproc_sysfs.c    |  17 +-
 include/linux/remoteproc.h               |   9 +-
 4 files changed, 243 insertions(+), 17 deletions(-)

Comments

Arnaud POULIQUEN June 4, 2020, 2:24 p.m. UTC | #1
Hi Mathieu,

On 6/1/20 7:51 PM, Mathieu Poirier wrote:
> This fourth iteration implements a solution that is fairly different from
> what was proposed in V3 and earlier versions.  Three aspects have been 
> revisited:
> 
> 1) Only the scenario where the remoteproc core is attaching to the remote
>    processor is implemented.  Other scenarios where actions need to be 
>    taken when the remote processor is stopped or crashes will be
>    considered in subsequent versions.
> 
> 2) The introduction of a new RPROC_DETACHED state to be set by platform
>    drivers when needing to attach to an already running remote processor.
> 
> 3) New functions are introduced to replicate the functionality provided by
>    rproc_fw_boot() and rproc_start(), minus operations related to firmware
>    management. 
> 
> Enhancement to the documentation has been left out intentionally until it
> is agreed to move forward with this implementation.

Look good to me, i have only a minor concerns about the code duplication
introduced by the point 3)

If you are agree with that, I plan to do a new review on the stm32 series
when you will start the documentation :-)

Regards,
Arnaud

> 
> Applies cleanly on rproc-next(7dcef3988eed) and will be rebased on v5.8-rc1
> when it comes out in two weeks.
> 
> Thanks,
> Mathieu
> 
> Mathieu Poirier (9):
>   remoteproc: Add new RPROC_DETACHED state
>   remoteproc: Add new attach() remoteproc operation
>   remoteproc: Introducing function rproc_attach()
>   remoteproc: Introducing function rproc_actuate()
>   remoteproc: Introducing function rproc_validate()
>   remoteproc: Refactor function rproc_boot()
>   remoteproc: Refactor function rproc_trigger_auto_boot()
>   remoteproc: Refactor function rproc_free_vring()
>   remoteproc: Properly handle firmware name when attaching
> 
>  drivers/remoteproc/remoteproc_core.c     | 226 +++++++++++++++++++++--
>  drivers/remoteproc/remoteproc_internal.h |   8 +
>  drivers/remoteproc/remoteproc_sysfs.c    |  17 +-
>  include/linux/remoteproc.h               |   9 +-
>  4 files changed, 243 insertions(+), 17 deletions(-)
>
Mathieu Poirier June 4, 2020, 8:27 p.m. UTC | #2
On Thu, 4 Jun 2020 at 08:24, Arnaud POULIQUEN <arnaud.pouliquen@st.com> wrote:
>
> Hi Mathieu,
>
> On 6/1/20 7:51 PM, Mathieu Poirier wrote:
> > This fourth iteration implements a solution that is fairly different from
> > what was proposed in V3 and earlier versions.  Three aspects have been
> > revisited:
> >
> > 1) Only the scenario where the remoteproc core is attaching to the remote
> >    processor is implemented.  Other scenarios where actions need to be
> >    taken when the remote processor is stopped or crashes will be
> >    considered in subsequent versions.
> >
> > 2) The introduction of a new RPROC_DETACHED state to be set by platform
> >    drivers when needing to attach to an already running remote processor.
> >
> > 3) New functions are introduced to replicate the functionality provided by
> >    rproc_fw_boot() and rproc_start(), minus operations related to firmware
> >    management.
> >
> > Enhancement to the documentation has been left out intentionally until it
> > is agreed to move forward with this implementation.
>
> Look good to me, i have only a minor concerns about the code duplication
> introduced by the point 3)
>

This is an idea Bjorn and I have decided to try in the hope of making
the state machine, and the feature as a whole, easier to understand.
It might be one of those rare cases where more code is better.

> If you are agree with that, I plan to do a new review on the stm32 series
> when you will start the documentation :-)

A wise decision...

Thanks for taking the time to look at this,
Mathieu

>
> Regards,
> Arnaud
>
> >
> > Applies cleanly on rproc-next(7dcef3988eed) and will be rebased on v5.8-rc1
> > when it comes out in two weeks.
> >
> > Thanks,
> > Mathieu
> >
> > Mathieu Poirier (9):
> >   remoteproc: Add new RPROC_DETACHED state
> >   remoteproc: Add new attach() remoteproc operation
> >   remoteproc: Introducing function rproc_attach()
> >   remoteproc: Introducing function rproc_actuate()
> >   remoteproc: Introducing function rproc_validate()
> >   remoteproc: Refactor function rproc_boot()
> >   remoteproc: Refactor function rproc_trigger_auto_boot()
> >   remoteproc: Refactor function rproc_free_vring()
> >   remoteproc: Properly handle firmware name when attaching
> >
> >  drivers/remoteproc/remoteproc_core.c     | 226 +++++++++++++++++++++--
> >  drivers/remoteproc/remoteproc_internal.h |   8 +
> >  drivers/remoteproc/remoteproc_sysfs.c    |  17 +-
> >  include/linux/remoteproc.h               |   9 +-
> >  4 files changed, 243 insertions(+), 17 deletions(-)
> >