linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] Documentation: remoteproc: update various sections
@ 2024-11-05  0:47 anish kumar
  2024-11-05  0:47 ` [PATCH 1/3] Documentation: remoteproc: update introduction section anish kumar
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: anish kumar @ 2024-11-05  0:47 UTC (permalink / raw)
  To: andersson, mathieu.poirier, corbet
  Cc: linux-kernel, linux-doc, linux-remoteproc, kernel test robot

V6:
divided the patches for each section as suggested by mathieu.
First patch is updating introduction section
second patch is for new overview section as suggested
third patch is for devm version of rprod_add

V5:
based on comment from mathieu poirier, remove all files
and combined that in the original file and as he adviced
nothing with respect to old documentation was changed.

V4:
Fixed compilation errors and moved documentation to
driver-api directory.

V3:
Seperated out the patches further to make the intention
clear for each patch.

V2:
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202410161444.jOKMsoGS-lkp@intel.com/

Hi Mathieu,

Hopefully this time around, I have not messed up
patches. I have created three patches.

Thanks,
anish

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/3] Documentation: remoteproc: update introduction section
  2024-11-05  0:47 [PATCH 0/3] Documentation: remoteproc: update various sections anish kumar
@ 2024-11-05  0:47 ` anish kumar
  2024-11-05  0:47 ` [PATCH 2/3] Documentation: remoteproc: add overview section anish kumar
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: anish kumar @ 2024-11-05  0:47 UTC (permalink / raw)
  To: andersson, mathieu.poirier, corbet
  Cc: linux-kernel, linux-doc, linux-remoteproc, anish kumar

Update the intrduction section to add key components
provided by remote processor framework.

Signed-off-by: anish kumar <yesanishhere@gmail.com>
---
 Documentation/staging/remoteproc.rst | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/Documentation/staging/remoteproc.rst b/Documentation/staging/remoteproc.rst
index 348ee7e508ac..eeebbeca71de 100644
--- a/Documentation/staging/remoteproc.rst
+++ b/Documentation/staging/remoteproc.rst
@@ -29,6 +29,23 @@ remoteproc will add those devices. This makes it possible to reuse the
 existing virtio drivers with remote processor backends at a minimal development
 cost.
 
+The primary purpose of the remoteproc framework is to download firmware
+for remote processors and manage their lifecycle. The framework consists
+of several key components:
+
+- **Character Driver**: Provides userspace access to control the remote
+  processor.
+- **ELF Utility**: Offers functions for handling ELF files and managing
+  resources requested by the remote processor.
+- **Remoteproc Core**: Manages firmware downloads and recovery actions
+  in case of a remote processor crash.
+- **Coredump**: Provides facilities for coredumping and tracing from
+  the remote processor in the event of a crash.
+- **Userspace Interaction**: Uses sysfs and debugfs to manage the
+  lifecycle and status of the remote processor.
+- **Virtio Support**: Facilitates interaction with the virtio and
+  rpmsg bus.
+
 User API
 ========
 
-- 
2.39.3 (Apple Git-146)


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/3] Documentation: remoteproc: add overview section
  2024-11-05  0:47 [PATCH 0/3] Documentation: remoteproc: update various sections anish kumar
  2024-11-05  0:47 ` [PATCH 1/3] Documentation: remoteproc: update introduction section anish kumar
@ 2024-11-05  0:47 ` anish kumar
  2024-11-05  0:47 ` [PATCH 3/3] Documentation: remoteproc: add a note to rproc_add anish kumar
  2024-11-05 13:00 ` [PATCH 0/3] Documentation: remoteproc: update various sections Mathieu Poirier
  3 siblings, 0 replies; 6+ messages in thread
From: anish kumar @ 2024-11-05  0:47 UTC (permalink / raw)
  To: andersson, mathieu.poirier, corbet
  Cc: linux-kernel, linux-doc, linux-remoteproc, anish kumar

Added overview section which details
how the remote processor framework works and
how it handles crashes.

Signed-off-by: anish kumar <yesanishhere@gmail.com>
---
 Documentation/staging/remoteproc.rst | 43 ++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/Documentation/staging/remoteproc.rst b/Documentation/staging/remoteproc.rst
index eeebbeca71de..e0bf68ceade8 100644
--- a/Documentation/staging/remoteproc.rst
+++ b/Documentation/staging/remoteproc.rst
@@ -46,6 +46,49 @@ of several key components:
 - **Virtio Support**: Facilitates interaction with the virtio and
   rpmsg bus.
 
+Overview
+========
+
+The framework begins by gathering information about the firmware file
+to be downloaded through the request_firmware function. It supports
+the ELF format and parses the firmware image to identify the physical
+addresses that need to be populated from the corresponding ELF sections.
+Once this information is obtained from the driver, the framework transfers
+the data to the specified addresses and starts the remote processor,
+along with subdevices.
+
+Dependent devices, referred to as `subdevices` within the framework,
+are also managed post-registration by their respective drivers.
+Subdevices can register themselves using `rproc_(add/remove)_subdev`.
+Non-remoteproc drivers can use subdevices as a way to logically connect
+to remote and get lifecycle notifications of the remote.
+
+The framework oversees the lifecycle of the remote and
+provides the `rproc_report_crash` function, which the driver invokes
+upon receiving a crash notification from the remote. The
+notification method can differ based on the design of the remote
+processor and its communication with the application processor. For
+instance, if the remote is a DSP equipped with a watchdog,
+unresponsive behavior triggers the watchdog, generating an interrupt
+that routes to the application processor, allowing it to call
+`rproc_report_crash` in the driver's interrupt context.
+
+During crash handling, the framework performs the following actions:
+
+a. Sends a request to stop the remote and any connected or
+   dependent subdevices.
+b. Generates a coredump, dumping all `resources` requested by the
+   remote alongside relevant debugging information. Resources are
+   explained below.
+c. Reloads the firmware and restarts the remote processor.
+
+If the `RPROC_FEAT_ATTACH_ON_RECOVERY` flag is set, the detach and
+attach callbacks of the driver are invoked without reloading the
+firmware. This is useful when the remote requires no
+assistance for recovery, or when the application processor can restart
+independently. After recovery, the application processor can reattach
+to the remote.
+
 User API
 ========
 
-- 
2.39.3 (Apple Git-146)


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 3/3] Documentation: remoteproc: add a note to rproc_add
  2024-11-05  0:47 [PATCH 0/3] Documentation: remoteproc: update various sections anish kumar
  2024-11-05  0:47 ` [PATCH 1/3] Documentation: remoteproc: update introduction section anish kumar
  2024-11-05  0:47 ` [PATCH 2/3] Documentation: remoteproc: add overview section anish kumar
@ 2024-11-05  0:47 ` anish kumar
  2024-11-05 13:00 ` [PATCH 0/3] Documentation: remoteproc: update various sections Mathieu Poirier
  3 siblings, 0 replies; 6+ messages in thread
From: anish kumar @ 2024-11-05  0:47 UTC (permalink / raw)
  To: andersson, mathieu.poirier, corbet
  Cc: linux-kernel, linux-doc, linux-remoteproc, anish kumar

Added a note to the rproc_add description regarding
the availability of the resource-managed variant of the API.

Signed-off-by: anish kumar <yesanishhere@gmail.com>
---
 Documentation/staging/remoteproc.rst | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/Documentation/staging/remoteproc.rst b/Documentation/staging/remoteproc.rst
index e0bf68ceade8..658ef7a28dd2 100644
--- a/Documentation/staging/remoteproc.rst
+++ b/Documentation/staging/remoteproc.rst
@@ -223,6 +223,14 @@ If found, those virtio devices will be created and added, so as a result
 of registering this remote processor, additional virtio drivers might get
 probed.
 
+.. note::
+
+  there is a resource managed version of this api called devm_rproc_add.
+  Most of the times, you should use that unless you need to explicitly
+  control the rproc registration with the core. If you are using devm
+  variant of this api, then rproc_del will automatically get called when
+  driver is unloaded.
+
 ::
 
   int rproc_del(struct rproc *rproc)
-- 
2.39.3 (Apple Git-146)


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 0/3] Documentation: remoteproc: update various sections
  2024-11-05  0:47 [PATCH 0/3] Documentation: remoteproc: update various sections anish kumar
                   ` (2 preceding siblings ...)
  2024-11-05  0:47 ` [PATCH 3/3] Documentation: remoteproc: add a note to rproc_add anish kumar
@ 2024-11-05 13:00 ` Mathieu Poirier
  2024-11-05 14:30   ` Jonathan Corbet
  3 siblings, 1 reply; 6+ messages in thread
From: Mathieu Poirier @ 2024-11-05 13:00 UTC (permalink / raw)
  To: anish kumar
  Cc: andersson, corbet, linux-kernel, linux-doc, linux-remoteproc,
	kernel test robot

On Mon, 4 Nov 2024 at 17:47, anish kumar <yesanishhere@gmail.com> wrote:
>
> V6:
> divided the patches for each section as suggested by mathieu.
> First patch is updating introduction section
> second patch is for new overview section as suggested
> third patch is for devm version of rprod_add
>
> V5:
> based on comment from mathieu poirier, remove all files
> and combined that in the original file and as he adviced
> nothing with respect to old documentation was changed.
>
> V4:
> Fixed compilation errors and moved documentation to
> driver-api directory.
>
> V3:
> Seperated out the patches further to make the intention
> clear for each patch.
>
> V2:
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202410161444.jOKMsoGS-lkp@intel.com/
>
> Hi Mathieu,
>
> Hopefully this time around, I have not messed up
> patches. I have created three patches.

And the patchset version?

> Thanks,
> anish

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 0/3] Documentation: remoteproc: update various sections
  2024-11-05 13:00 ` [PATCH 0/3] Documentation: remoteproc: update various sections Mathieu Poirier
@ 2024-11-05 14:30   ` Jonathan Corbet
  0 siblings, 0 replies; 6+ messages in thread
From: Jonathan Corbet @ 2024-11-05 14:30 UTC (permalink / raw)
  To: Mathieu Poirier, anish kumar
  Cc: andersson, linux-kernel, linux-doc, linux-remoteproc,
	kernel test robot

Mathieu Poirier <mathieu.poirier@linaro.org> writes:

> On Mon, 4 Nov 2024 at 17:47, anish kumar <yesanishhere@gmail.com> wrote:

>> Hopefully this time around, I have not messed up
>> patches. I have created three patches.
>
> And the patchset version?

Also, please include the cover-letter text with each posting.

jon

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-11-05 14:30 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-05  0:47 [PATCH 0/3] Documentation: remoteproc: update various sections anish kumar
2024-11-05  0:47 ` [PATCH 1/3] Documentation: remoteproc: update introduction section anish kumar
2024-11-05  0:47 ` [PATCH 2/3] Documentation: remoteproc: add overview section anish kumar
2024-11-05  0:47 ` [PATCH 3/3] Documentation: remoteproc: add a note to rproc_add anish kumar
2024-11-05 13:00 ` [PATCH 0/3] Documentation: remoteproc: update various sections Mathieu Poirier
2024-11-05 14:30   ` Jonathan Corbet

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).