rpmsg/rpmsg_virtio_lite: rename rpmsg_virtio to rpmsg_virtio_lite

Because rpmsg_virtio_lite is a better name to inform user that the
rpmsg virtio (original name) is a lite implementation of rpmsg virtio.

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
This commit is contained in:
Bowen Wang
2024-08-19 19:54:35 +08:00
committed by Alan C. Assis
parent db1ebe0095
commit f0a3c43a54
12 changed files with 962 additions and 789 deletions

View File

@@ -47,8 +47,8 @@ if(CONFIG_RPMSG)
list(APPEND SRCS rpmsg_port_uart.c)
endif()
if(CONFIG_RPMSG_VIRTIO)
list(APPEND SRCS rpmsg_virtio.c)
if(CONFIG_RPMSG_VIRTIO_LITE)
list(APPEND SRCS rpmsg_virtio_lite.c)
endif()
if(CONFIG_RPMSG_VIRTIO_IVSHMEM)

View File

@@ -107,32 +107,50 @@ config RPMSG_PORT_UART_DEBUG
endif # RPMSG_PORT_UART
config RPMSG_VIRTIO
config RPMSG_VIRTIO_LITE
bool "rpmsg virtio transport support"
default n
select RPMSG
if RPMSG_VIRTIO
if RPMSG_VIRTIO_LITE
config RPMSG_VIRTIO_PRIORITY
int "rpmsg virtio rx thread priority"
config RPMSG_VIRTIO_LITE_PRIORITY
int "rpmsg virtio lite rx thread priority"
default 224
config RPMSG_VIRTIO_STACKSIZE
int "rpmsg virtio rx thread stack size"
config RPMSG_VIRTIO_LITE_STACKSIZE
int "rpmsg virtio lite rx thread stack size"
default DEFAULT_TASK_STACKSIZE
config RPMSG_VIRTIO_IVSHMEM
bool "rpmsg virtio ivshmem support"
bool "rpmsg virtio lite ivshmem support"
default n
depends on PCI_IVSHMEM
---help---
This is rpmsg virtio driver based on pci ivshmem.
config RPMSG_VIRTIO_LITE_PM
bool "rpmsg virtio lite power management"
depends on PM
default n
---help---
If TX/RX buffer is supplied and powered by each CPU.
And when one CPU in DEEP sleep, then it's buffer will
goto RAM-retention mode, can't access from another CPU.
So, we provide this method to resolve this.
config RPMSG_VIRTIO_LITE_PM_AUTORELAX
bool "rpmsg virtio lite pm autorelax"
depends on RPMSG_VIRTIO_LITE_PM
default y
---help---
use wd_timer to auto relax pm
if RPMSG_VIRTIO_IVSHMEM
config RPMSG_VIRTIO_IVSHMEM_NAME
string "rpmsg virtio ivshmem name"
string "rpmsg virtio lite ivshmem name"
---help---
Using this config to custom the rpmsg virtio ivshmem id, cpuname and role,
using ";" to split the names.
@@ -141,14 +159,14 @@ config RPMSG_VIRTIO_IVSHMEM_NAME
with remote cpu ids: "0","1", names: "cpu1", "cpu2", and roles: "master", "slave"
config RPMSG_VIRTIO_IVSHMEM_BUFFSIZE
int "rpmsg virtio ivshmem rpmsg buffer size"
int "rpmsg virtio lite ivshmem rpmsg buffer size"
default 2048
---help---
The rpmsg buffer size in share memory, the RX and TX buffer size
are same for now.
config RPMSG_VIRTIO_IVSHMEM_BUFFNUM
int "rpmsg virtio ivshmem rpmsg buffer number"
int "rpmsg virtio lite ivshmem rpmsg buffer number"
default 8
---help---
The rpmsg virtio buffer number in share memory, the RX and TX buffer number

View File

@@ -51,8 +51,8 @@ ifeq ($(CONFIG_RPMSG_PORT_UART),y)
CSRCS += rpmsg_port_uart.c
endif
ifeq ($(CONFIG_RPMSG_VIRTIO),y)
CSRCS += rpmsg_virtio.c
ifeq ($(CONFIG_RPMSG_VIRTIO_LITE),y)
CSRCS += rpmsg_virtio_lite.c
CFLAGS += ${INCDIR_PREFIX}$(TOPDIR)$(DELIM)openamp$(DELIM)open-amp$(DELIM)lib
endif

File diff suppressed because it is too large Load Diff

View File

@@ -32,8 +32,8 @@
#include <nuttx/drivers/addrenv.h>
#include <nuttx/pci/pci_ivshmem.h>
#include <nuttx/rpmsg/rpmsg_virtio.h>
#include <nuttx/rpmsg/rpmsg_virtio_ivshmem.h>
#include <nuttx/rpmsg/rpmsg_virtio_lite.h>
#include <nuttx/wdog.h>
/****************************************************************************
@@ -53,15 +53,15 @@
struct rpmsg_virtio_ivshmem_mem_s
{
volatile uint64_t basem;
volatile uint32_t seqs;
volatile uint32_t seqm;
struct rpmsg_virtio_rsc_s rsc;
volatile uint64_t basem;
volatile uint32_t seqs;
volatile uint32_t seqm;
struct rpmsg_virtio_lite_rsc_s rsc;
};
struct rpmsg_virtio_ivshmem_dev_s
{
struct rpmsg_virtio_s dev;
struct rpmsg_virtio_lite_s dev;
struct ivshmem_driver_s drv;
FAR struct ivshmem_device_s *ivdev;
rpmsg_virtio_callback_t callback;
@@ -84,15 +84,15 @@ struct rpmsg_virtio_ivshmem_dev_s
****************************************************************************/
static const FAR char *
rpmsg_virtio_ivshmem_get_cpuname(FAR struct rpmsg_virtio_s *dev);
static FAR struct rpmsg_virtio_rsc_s *
rpmsg_virtio_ivshmem_get_resource(FAR struct rpmsg_virtio_s *dev);
rpmsg_virtio_ivshmem_get_cpuname(FAR struct rpmsg_virtio_lite_s *dev);
static FAR struct rpmsg_virtio_lite_rsc_s *
rpmsg_virtio_ivshmem_get_resource(FAR struct rpmsg_virtio_lite_s *dev);
static int
rpmsg_virtio_ivshmem_is_master(FAR struct rpmsg_virtio_s *dev);
static int rpmsg_virtio_ivshmem_notify(FAR struct rpmsg_virtio_s *dev,
rpmsg_virtio_ivshmem_is_master(FAR struct rpmsg_virtio_lite_s *dev);
static int rpmsg_virtio_ivshmem_notify(FAR struct rpmsg_virtio_lite_s *dev,
uint32_t notifyid);
static int
rpmsg_virtio_ivshmem_register_callback(FAR struct rpmsg_virtio_s *dev,
rpmsg_virtio_ivshmem_register_callback(FAR struct rpmsg_virtio_lite_s *dev,
rpmsg_virtio_callback_t callback,
FAR void *arg);
static int rpmsg_virtio_ivshmem_probe(FAR struct ivshmem_device_s *ivdev);
@@ -102,7 +102,7 @@ static void rpmsg_virtio_ivshmem_remove(FAR struct ivshmem_device_s *ivdev);
* Private Data
****************************************************************************/
static const struct rpmsg_virtio_ops_s g_rpmsg_virtio_ivshmem_ops =
static const struct rpmsg_virtio_lite_ops_s g_rpmsg_virtio_ivshmem_ops =
{
.get_cpuname = rpmsg_virtio_ivshmem_get_cpuname,
.get_resource = rpmsg_virtio_ivshmem_get_resource,
@@ -116,23 +116,23 @@ static const struct rpmsg_virtio_ops_s g_rpmsg_virtio_ivshmem_ops =
****************************************************************************/
static const FAR char *
rpmsg_virtio_ivshmem_get_cpuname(FAR struct rpmsg_virtio_s *dev)
rpmsg_virtio_ivshmem_get_cpuname(FAR struct rpmsg_virtio_lite_s *dev)
{
FAR struct rpmsg_virtio_ivshmem_dev_s *priv =
(FAR struct rpmsg_virtio_ivshmem_dev_s *)dev;
return priv->cpuname;
}
static FAR struct rpmsg_virtio_rsc_s *
rpmsg_virtio_ivshmem_get_resource(FAR struct rpmsg_virtio_s *dev)
static FAR struct rpmsg_virtio_lite_rsc_s *
rpmsg_virtio_ivshmem_get_resource(FAR struct rpmsg_virtio_lite_s *dev)
{
FAR struct rpmsg_virtio_ivshmem_dev_s *priv =
(FAR struct rpmsg_virtio_ivshmem_dev_s *)dev;
FAR struct rpmsg_virtio_rsc_s *rsc;
FAR struct rpmsg_virtio_cmd_s *cmd;
FAR struct rpmsg_virtio_lite_rsc_s *rsc;
FAR struct rpmsg_virtio_lite_cmd_s *cmd;
rsc = &priv->shmem->rsc;
cmd = RPMSG_VIRTIO_RSC2CMD(rsc);
cmd = RPMSG_VIRTIO_LITE_RSC2CMD(rsc);
if (priv->master)
{
@@ -178,14 +178,15 @@ rpmsg_virtio_ivshmem_get_resource(FAR struct rpmsg_virtio_s *dev)
return rsc;
}
static int rpmsg_virtio_ivshmem_is_master(FAR struct rpmsg_virtio_s *dev)
static int
rpmsg_virtio_ivshmem_is_master(FAR struct rpmsg_virtio_lite_s *dev)
{
FAR struct rpmsg_virtio_ivshmem_dev_s *priv =
(FAR struct rpmsg_virtio_ivshmem_dev_s *)dev;
return priv->master;
}
static int rpmsg_virtio_ivshmem_notify(FAR struct rpmsg_virtio_s *dev,
static int rpmsg_virtio_ivshmem_notify(FAR struct rpmsg_virtio_lite_s *dev,
uint32_t vqid)
{
FAR struct rpmsg_virtio_ivshmem_dev_s *priv =
@@ -208,7 +209,7 @@ static int rpmsg_virtio_ivshmem_notify(FAR struct rpmsg_virtio_s *dev,
}
static int
rpmsg_virtio_ivshmem_register_callback(FAR struct rpmsg_virtio_s *dev,
rpmsg_virtio_ivshmem_register_callback(FAR struct rpmsg_virtio_lite_s *dev,
rpmsg_virtio_callback_t callback,
FAR void *arg)
{
@@ -231,7 +232,7 @@ static int rpmsg_virtio_ivshmem_interrupt(int irq, FAR void *context,
if (priv->callback != NULL)
{
priv->callback(priv->arg, RPMSG_VIRTIO_NOTIFY_ALL);
priv->callback(priv->arg, RPMSG_VIRTIO_LITE_NOTIFY_ALL);
}
return 0;
@@ -260,7 +261,7 @@ static void rpmsg_virtio_ivshmem_wdog(wdparm_t arg)
if (should_notify && priv->callback != NULL)
{
priv->callback(priv->arg, RPMSG_VIRTIO_NOTIFY_ALL);
priv->callback(priv->arg, RPMSG_VIRTIO_LITE_NOTIFY_ALL);
}
wd_start(&priv->wdog, RPMSG_VIRTIO_IVSHMEM_WDOG_DELAY,
@@ -288,7 +289,7 @@ static int rpmsg_virtio_ivshmem_probe(FAR struct ivshmem_device_s *ivdev)
/* Do rpmsg virtio initialize */
ret = rpmsg_virtio_initialize(&priv->dev);
ret = rpmsg_virtio_lite_initialize(&priv->dev);
if (ret < 0)
{
rpmsgerr("Rpmsg virtio initialize failed, ret=%d\n", ret);

File diff suppressed because it is too large Load Diff