From: Arnaud POULIQUEN <arnaud.pouliquen@foss.st.com>
To: Bjorn Andersson <bjorn.andersson@linaro.org>,
Ohad Ben-Cohen <ohad@wizery.com>,
Mathieu Poirier <mathieu.poirier@linaro.org>,
Andy Gross <agross@kernel.org>
Cc: <linux-remoteproc@vger.kernel.org>,
<linux-kernel@vger.kernel.org>,
<linux-stm32@st-md-mailman.stormreply.com>,
<linux-arm-msm@vger.kernel.org>
Subject: Re: [PATCH v5 00/16] introduce a generic IOCTL interface for RPMsg channels management
Date: Wed, 17 Mar 2021 10:29:47 +0100 [thread overview]
Message-ID: <8599da66-b7df-e4a5-fcf3-008620420372@foss.st.com> (raw)
In-Reply-To: <20210219111501.14261-1-arnaud.pouliquen@foss.st.com>
On 2/19/21 12:14 PM, Arnaud Pouliquen wrote:
> This series restructures the RPMsg char driver to decorrelate the control part and to
> create a generic RPMsg ioctl interface compatible with other RPMsg services.
>
> The V4 and V5 fix compilation issues reported by the kernel test robot <lkp@intel.com>
> and analyzed by Dan Carpenter <dan.carpenter@oracle.com>.
>
> The V3 is based on the guideline proposed by Mathieu Poirier to keep as much as possible
> the legacy implementation of the rpmsg_char used by the GLINK and SMD platforms.
>
> Objectives of the series:
> - Allow to create a service from Linux user application:
> - with a specific name
> - with or without name service announcement.
> - Allow to probe the same service by receiving either a NS announcement from the remote firmware
> or a Linux user application request.
> - Use these services independently of the RPMsg transport implementation (e.g be able to use
> RPMSg char with the RPMsg virtio bus).
>
> Steps in the series:
> - Extract the control part of the char dev and create the rpmsg_ctrl.c file (patches 1 to 6)
> - Enable the use of the chardev with the virtio backend (patches 7 to 11)
> - Introduce the RPMSG_CREATE_DEV_IOCTL IOCTL to instantiate RPMsg devices (patch 12)
> The application can then create or release a channel by specifying:
> - the name service of the device to instantiate.
> - the source address.
> - the destination address.
> - Instantiate the /dev/rpmsg interface on remote NS announcement (patches 13 to 16)
>
> In this revision, I do not divide the series into several parts in order to show a complete
> picture of the proposed evolution. To simplify the review, if requested, I can send it in
> several steps listed above.
No new revision of this series planned, but move forward by splitting it in 3
new series to ease the review.
The first step is addressed here:
https://patchwork.kernel.org/project/linux-remoteproc/list/?series=446305
>
> Known current Limitations:
> - Tested only with virtio RPMsg bus. The glink and smd drivers adaptations have not been tested
> (not able to test it).
> - For the virtio backend: No NS announcement is sent to the remote processor if the source
> address is set to RPMSG_ADDR_ANY.
> - For the virtio backend: the existing RPMSG_CREATE_EPT_IOCTL is working but the endpoints are
> not attached to an exiting channel.
> - to limit patches the pending RPMSG_DESTROY_DEV_IOCTL has not ben implemented. This will be
> proposed in a second step.
>
> This series can be applied on git/andersson/remoteproc.git for-next branch (d9ff3a5789cb).
>
> This series can be tested using rpmsgexport, rpmsgcreatedev and ping tools available here:
> https://github.com/arnopo/rpmsgexport.git
>
> Reference to the V4 discussion thread: https://lkml.org/lkml/2021/2/17/384
>
> Arnaud Pouliquen (16):
> rpmsg: char: rename rpmsg_char_init to rpmsg_chrdev_init
> rpmsg: move RPMSG_ADDR_ANY in user API
> rpmsg: add short description of the IOCTL defined in UAPI.
> rpmsg: char: export eptdev create an destroy functions
> rpmsg: char: dissociate the control device from the rpmsg class
> rpmsg: move the rpmsg control device from rpmsg_char to rpmsg_ctrl
> rpmsg: update rpmsg_chrdev_register_device function
> rpmsg: glink: add sendto and trysendto ops
> rpmsg: smd: add sendto and trysendto ops
> rpmsg: char: use sendto to specify the message destination address
> rpmsg: virtio: register the rpmsg_ctrl device
> rpmsg: ctrl: introduce RPMSG_CREATE_DEV_IOCTL
> rpmsg: char: introduce __rpmsg_chrdev_create_eptdev function
> rpmsg: char: introduce a RPMsg driver for the RPMsg char device
> rpmsg: char: no dynamic endpoint management for the default one
> rpmsg: char: return an error if device already open
>
> drivers/rpmsg/Kconfig | 9 ++
> drivers/rpmsg/Makefile | 1 +
> drivers/rpmsg/qcom_glink_native.c | 18 ++-
> drivers/rpmsg/qcom_smd.c | 18 ++-
> drivers/rpmsg/rpmsg_char.c | 237 +++++++++++-------------------
> drivers/rpmsg/rpmsg_char.h | 51 +++++++
> drivers/rpmsg/rpmsg_ctrl.c | 229 +++++++++++++++++++++++++++++
> drivers/rpmsg/rpmsg_internal.h | 10 +-
> drivers/rpmsg/virtio_rpmsg_bus.c | 57 ++++++-
> include/linux/rpmsg.h | 3 +-
> include/uapi/linux/rpmsg.h | 18 ++-
> 11 files changed, 485 insertions(+), 166 deletions(-)
> create mode 100644 drivers/rpmsg/rpmsg_char.h
> create mode 100644 drivers/rpmsg/rpmsg_ctrl.c
>
prev parent reply other threads:[~2021-03-17 9:30 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-19 11:14 [PATCH v5 00/16] introduce a generic IOCTL interface for RPMsg channels management Arnaud Pouliquen
2021-02-19 11:14 ` [PATCH v5 01/16] rpmsg: char: rename rpmsg_char_init to rpmsg_chrdev_init Arnaud Pouliquen
2021-02-19 11:14 ` [PATCH v5 02/16] rpmsg: move RPMSG_ADDR_ANY in user API Arnaud Pouliquen
2021-02-19 11:14 ` [PATCH v5 03/16] rpmsg: add short description of the IOCTL defined in UAPI Arnaud Pouliquen
2021-02-19 11:14 ` [PATCH v5 04/16] rpmsg: char: export eptdev create an destroy functions Arnaud Pouliquen
2021-03-02 17:57 ` Mathieu Poirier
2021-03-03 13:22 ` Arnaud POULIQUEN
2021-03-03 16:30 ` Mathieu Poirier
2021-02-19 11:14 ` [PATCH v5 05/16] rpmsg: char: dissociate the control device from the rpmsg class Arnaud Pouliquen
2021-03-02 18:01 ` Mathieu Poirier
2021-03-03 14:58 ` Arnaud POULIQUEN
2021-02-19 11:14 ` [PATCH v5 06/16] rpmsg: move the rpmsg control device from rpmsg_char to rpmsg_ctrl Arnaud Pouliquen
2021-03-02 18:35 ` Mathieu Poirier
2021-03-03 14:59 ` Arnaud POULIQUEN
2021-03-03 16:34 ` Mathieu Poirier
2021-02-19 11:14 ` [PATCH v5 07/16] rpmsg: update rpmsg_chrdev_register_device function Arnaud Pouliquen
2021-03-03 17:01 ` Mathieu Poirier
2021-02-19 11:14 ` [PATCH v5 08/16] rpmsg: glink: add sendto and trysendto ops Arnaud Pouliquen
2021-03-04 19:11 ` Mathieu Poirier
2021-03-05 10:46 ` Arnaud POULIQUEN
2021-03-05 16:55 ` Mathieu Poirier
2021-02-19 11:14 ` [PATCH v5 09/16] rpmsg: smd: " Arnaud Pouliquen
2021-02-19 11:14 ` [PATCH v5 10/16] rpmsg: char: use sendto to specify the message destination address Arnaud Pouliquen
2021-02-19 11:14 ` [PATCH v5 11/16] rpmsg: virtio: register the rpmsg_ctrl device Arnaud Pouliquen
2021-03-03 18:43 ` Mathieu Poirier
2021-03-04 9:20 ` Arnaud POULIQUEN
2021-02-19 11:14 ` [PATCH v5 12/16] rpmsg: ctrl: introduce RPMSG_CREATE_DEV_IOCTL Arnaud Pouliquen
2021-02-19 11:14 ` [PATCH v5 13/16] rpmsg: char: introduce __rpmsg_chrdev_create_eptdev function Arnaud Pouliquen
2021-03-04 18:55 ` Mathieu Poirier
2021-03-05 10:46 ` Arnaud POULIQUEN
2021-03-05 18:01 ` Mathieu Poirier
2021-03-04 19:05 ` Mathieu Poirier
2021-03-05 11:42 ` Arnaud POULIQUEN
2021-02-19 11:14 ` [PATCH v5 14/16] rpmsg: char: introduce a RPMsg driver for the RPMsg char device Arnaud Pouliquen
2021-02-19 11:15 ` [PATCH v5 15/16] rpmsg: char: no dynamic endpoint management for the default one Arnaud Pouliquen
2021-03-04 18:40 ` Mathieu Poirier
2021-03-05 11:09 ` Arnaud POULIQUEN
2021-03-05 17:39 ` Mathieu Poirier
2021-02-19 11:15 ` [PATCH v5 16/16] rpmsg: char: return an error if device already open Arnaud Pouliquen
2021-03-04 18:45 ` Mathieu Poirier
2021-03-17 9:29 ` Arnaud POULIQUEN [this message]
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=8599da66-b7df-e4a5-fcf3-008620420372@foss.st.com \
--to=arnaud.pouliquen@foss.st.com \
--cc=agross@kernel.org \
--cc=bjorn.andersson@linaro.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-remoteproc@vger.kernel.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=mathieu.poirier@linaro.org \
--cc=ohad@wizery.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.