mirror of
https://github.com/apache/nuttx.git
synced 2025-12-16 09:45:18 +08:00
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:
committed by
Alan C. Assis
parent
db1ebe0095
commit
f0a3c43a54
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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);
|
||||
|
||||
835
drivers/rpmsg/rpmsg_virtio_lite.c
Normal file
835
drivers/rpmsg/rpmsg_virtio_lite.c
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user