mbox series

[v8,0/2] Add rpmsg tty driver

Message ID 20210930160520.19678-1-arnaud.pouliquen@foss.st.com (mailing list archive)
Headers show
Series Add rpmsg tty driver | expand

Message

Arnaud Pouliquen Sept. 30, 2021, 4:05 p.m. UTC
This new revision reopens subject started a long time ago. Previous revision discussions
available here [1]. 

This patchset introduces a TTY console on top of the RPMsg framework which
enables the following use cases:
- Provide a console to communicate easily with the remote processor application.
- Provide an interface to get the remote processor log traces without ring
  buffer limitation.
- Ease the migration from MPU + MCU processors to multi core processors
  (MPU and MCU integrated in one processor) by offering a virtual serial link.

An alternative of this proposed solution would consist in using the virtio
console:
The drawback with that solution is that it requires a specific virtio buffer
(in addition to the one already used for RPMsg) which does not fit with remote
processors with little memory. The proposed solution allows to multiplex the
console with the other rpmsg services, optimizing the memory.

The first patch adds an API to the rpmsg framework ('get max transmission unit')
and the second one is the rpmsg tty driver itself.

Update vs previous revision [1]:
  - simplify the patch by removing the control part(CTS) to keep only the stream part.
  - rebase on kernel V5.15-rc1
  - take into account v7 review comments.

Notice that I kept the Acked-by and Reviewed-by in "rpmsg: core: add API to get MTU" commit
even though I'm not sure if it's still relevant after such a long period...

[1] https://lkml.org/lkml/2020/3/24/1394 

Arnaud Pouliquen (2):
  rpmsg: core: add API to get MTU
  tty: add rpmsg driver

 Documentation/serial/tty_rpmsg.rst |  15 ++
 drivers/rpmsg/rpmsg_core.c         |  21 +++
 drivers/rpmsg/rpmsg_internal.h     |   2 +
 drivers/rpmsg/virtio_rpmsg_bus.c   |  10 ++
 drivers/tty/Kconfig                |   9 +
 drivers/tty/Makefile               |   1 +
 drivers/tty/rpmsg_tty.c            | 275 +++++++++++++++++++++++++++++
 include/linux/rpmsg.h              |  10 ++
 8 files changed, 343 insertions(+)
 create mode 100644 Documentation/serial/tty_rpmsg.rst
 create mode 100644 drivers/tty/rpmsg_tty.c