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
+1 -1
View File
@@ -254,7 +254,7 @@ ifeq ($(CONFIG_SIM_LIBUSB),y)
endif endif
endif endif
ifeq ($(CONFIG_RPMSG_VIRTIO),y) ifeq ($(CONFIG_RPMSG_VIRTIO_LITE),y)
CSRCS += sim_rpmsg_virtio.c CSRCS += sim_rpmsg_virtio.c
endif endif
+1 -1
View File
@@ -119,7 +119,7 @@ if(CONFIG_LIBM_TOOLCHAIN)
list(APPEND STDLIBS m) list(APPEND STDLIBS m)
endif() endif()
if(CONFIG_RPMSG_VIRTIO) if(CONFIG_RPMSG_VIRTIO_LITE)
list(APPEND SRCS sim_rpmsg_vritio.c) list(APPEND SRCS sim_rpmsg_vritio.c)
endif() endif()
+1 -1
View File
@@ -415,7 +415,7 @@ int sim_rptun_init(const char *shmemname, const char *cpuname, int master);
/* sim_rpmsg_virtio.c *******************************************************/ /* sim_rpmsg_virtio.c *******************************************************/
#ifdef CONFIG_RPMSG_VIRTIO #ifdef CONFIG_RPMSG_VIRTIO_LITE
int sim_rpmsg_virtio_init(const char *shmemname, const char *cpuname, int sim_rpmsg_virtio_init(const char *shmemname, const char *cpuname,
bool master); bool master);
#endif #endif
+22 -20
View File
@@ -29,7 +29,7 @@
#include <nuttx/drivers/addrenv.h> #include <nuttx/drivers/addrenv.h>
#include <nuttx/kmalloc.h> #include <nuttx/kmalloc.h>
#include <nuttx/nuttx.h> #include <nuttx/nuttx.h>
#include <nuttx/rpmsg/rpmsg_virtio.h> #include <nuttx/rpmsg/rpmsg_virtio_lite.h>
#include <nuttx/wdog.h> #include <nuttx/wdog.h>
#include "sim_internal.h" #include "sim_internal.h"
@@ -46,18 +46,18 @@
struct sim_rpmsg_virtio_shmem_s struct sim_rpmsg_virtio_shmem_s
{ {
volatile uintptr_t base; volatile uintptr_t base;
volatile unsigned int seqs; volatile unsigned int seqs;
volatile unsigned int seqm; volatile unsigned int seqm;
volatile unsigned int boots; volatile unsigned int boots;
volatile unsigned int bootm; volatile unsigned int bootm;
struct rpmsg_virtio_rsc_s rsc; struct rpmsg_virtio_lite_rsc_s rsc;
char buf[0x10000]; char buf[0x10000];
}; };
struct sim_rpmsg_virtio_dev_s struct sim_rpmsg_virtio_dev_s
{ {
struct rpmsg_virtio_s dev; struct rpmsg_virtio_lite_s dev;
rpmsg_virtio_callback_t callback; rpmsg_virtio_callback_t callback;
void *arg; void *arg;
int master; int master;
@@ -76,7 +76,8 @@ struct sim_rpmsg_virtio_dev_s
* Private Functions * Private Functions
****************************************************************************/ ****************************************************************************/
static const char *sim_rpmsg_virtio_get_cpuname(struct rpmsg_virtio_s *dev) static const char *
sim_rpmsg_virtio_get_cpuname(struct rpmsg_virtio_lite_s *dev)
{ {
struct sim_rpmsg_virtio_dev_s *priv = struct sim_rpmsg_virtio_dev_s *priv =
container_of(dev, struct sim_rpmsg_virtio_dev_s, dev); container_of(dev, struct sim_rpmsg_virtio_dev_s, dev);
@@ -84,13 +85,13 @@ static const char *sim_rpmsg_virtio_get_cpuname(struct rpmsg_virtio_s *dev)
return priv->cpuname; return priv->cpuname;
} }
static struct rpmsg_virtio_rsc_s * static struct rpmsg_virtio_lite_rsc_s *
sim_rpmsg_virtio_get_resource(struct rpmsg_virtio_s *dev) sim_rpmsg_virtio_get_resource(struct rpmsg_virtio_lite_s *dev)
{ {
struct sim_rpmsg_virtio_dev_s *priv = struct sim_rpmsg_virtio_dev_s *priv =
container_of(dev, struct sim_rpmsg_virtio_dev_s, dev); container_of(dev, struct sim_rpmsg_virtio_dev_s, dev);
struct rpmsg_virtio_rsc_s *rsc; struct rpmsg_virtio_lite_rsc_s *rsc;
struct rpmsg_virtio_cmd_s *cmd; struct rpmsg_virtio_lite_cmd_s *cmd;
priv->shmem = host_allocshmem(priv->shmemname, sizeof(*priv->shmem)); priv->shmem = host_allocshmem(priv->shmemname, sizeof(*priv->shmem));
if (!priv->shmem) if (!priv->shmem)
@@ -141,7 +142,7 @@ sim_rpmsg_virtio_get_resource(struct rpmsg_virtio_s *dev)
return rsc; return rsc;
} }
static int sim_rpmsg_virtio_is_master(struct rpmsg_virtio_s *dev) static int sim_rpmsg_virtio_is_master(struct rpmsg_virtio_lite_s *dev)
{ {
struct sim_rpmsg_virtio_dev_s *priv = struct sim_rpmsg_virtio_dev_s *priv =
container_of(dev, struct sim_rpmsg_virtio_dev_s, dev); container_of(dev, struct sim_rpmsg_virtio_dev_s, dev);
@@ -150,7 +151,7 @@ static int sim_rpmsg_virtio_is_master(struct rpmsg_virtio_s *dev)
} }
static int static int
sim_rpmsg_virtio_register_callback(struct rpmsg_virtio_s *dev, sim_rpmsg_virtio_register_callback(struct rpmsg_virtio_lite_s *dev,
rpmsg_virtio_callback_t callback, rpmsg_virtio_callback_t callback,
void *arg) void *arg)
{ {
@@ -184,7 +185,7 @@ static void sim_rpmsg_virtio_work(wdparm_t arg)
if (should_notify && dev->callback != NULL) if (should_notify && dev->callback != NULL)
{ {
dev->callback(dev->arg, RPMSG_VIRTIO_NOTIFY_ALL); dev->callback(dev->arg, RPMSG_VIRTIO_LITE_NOTIFY_ALL);
} }
} }
@@ -192,7 +193,8 @@ static void sim_rpmsg_virtio_work(wdparm_t arg)
sim_rpmsg_virtio_work, (wdparm_t)dev); sim_rpmsg_virtio_work, (wdparm_t)dev);
} }
static int sim_rpmsg_virtio_notify(struct rpmsg_virtio_s *dev, uint32_t vqid) static int sim_rpmsg_virtio_notify(struct rpmsg_virtio_lite_s *dev,
uint32_t vqid)
{ {
struct sim_rpmsg_virtio_dev_s *priv = struct sim_rpmsg_virtio_dev_s *priv =
container_of(dev, struct sim_rpmsg_virtio_dev_s, dev); container_of(dev, struct sim_rpmsg_virtio_dev_s, dev);
@@ -213,7 +215,7 @@ static int sim_rpmsg_virtio_notify(struct rpmsg_virtio_s *dev, uint32_t vqid)
* Private Data * Private Data
****************************************************************************/ ****************************************************************************/
static const struct rpmsg_virtio_ops_s g_sim_rpmsg_virtio_ops = static const struct rpmsg_virtio_lite_ops_s g_sim_rpmsg_virtio_ops =
{ {
.get_cpuname = sim_rpmsg_virtio_get_cpuname, .get_cpuname = sim_rpmsg_virtio_get_cpuname,
.get_resource = sim_rpmsg_virtio_get_resource, .get_resource = sim_rpmsg_virtio_get_resource,
@@ -243,7 +245,7 @@ int sim_rpmsg_virtio_init(const char *shmemname, const char *cpuname,
strlcpy(priv->cpuname, cpuname, RPMSG_NAME_SIZE); strlcpy(priv->cpuname, cpuname, RPMSG_NAME_SIZE);
strlcpy(priv->shmemname, shmemname, RPMSG_NAME_SIZE); strlcpy(priv->shmemname, shmemname, RPMSG_NAME_SIZE);
ret = rpmsg_virtio_initialize(&priv->dev); ret = rpmsg_virtio_lite_initialize(&priv->dev);
if (ret < 0) if (ret < 0)
{ {
kmm_free(priv); kmm_free(priv);
+1 -1
View File
@@ -485,7 +485,7 @@ int sim_bringup(void)
# endif # endif
#endif #endif
#ifdef CONFIG_RPMSG_VIRTIO #ifdef CONFIG_RPMSG_VIRTIO_LITE
# ifdef CONFIG_SIM_RPMSG_MASTER # ifdef CONFIG_SIM_RPMSG_MASTER
sim_rpmsg_virtio_init("server-proxy", "proxy", true); sim_rpmsg_virtio_init("server-proxy", "proxy", true);
# else # else
+2 -2
View File
@@ -47,8 +47,8 @@ if(CONFIG_RPMSG)
list(APPEND SRCS rpmsg_port_uart.c) list(APPEND SRCS rpmsg_port_uart.c)
endif() endif()
if(CONFIG_RPMSG_VIRTIO) if(CONFIG_RPMSG_VIRTIO_LITE)
list(APPEND SRCS rpmsg_virtio.c) list(APPEND SRCS rpmsg_virtio_lite.c)
endif() endif()
if(CONFIG_RPMSG_VIRTIO_IVSHMEM) if(CONFIG_RPMSG_VIRTIO_IVSHMEM)
+28 -10
View File
@@ -107,32 +107,50 @@ config RPMSG_PORT_UART_DEBUG
endif # RPMSG_PORT_UART endif # RPMSG_PORT_UART
config RPMSG_VIRTIO config RPMSG_VIRTIO_LITE
bool "rpmsg virtio transport support" bool "rpmsg virtio transport support"
default n default n
select RPMSG select RPMSG
if RPMSG_VIRTIO if RPMSG_VIRTIO_LITE
config RPMSG_VIRTIO_PRIORITY config RPMSG_VIRTIO_LITE_PRIORITY
int "rpmsg virtio rx thread priority" int "rpmsg virtio lite rx thread priority"
default 224 default 224
config RPMSG_VIRTIO_STACKSIZE config RPMSG_VIRTIO_LITE_STACKSIZE
int "rpmsg virtio rx thread stack size" int "rpmsg virtio lite rx thread stack size"
default DEFAULT_TASK_STACKSIZE default DEFAULT_TASK_STACKSIZE
config RPMSG_VIRTIO_IVSHMEM config RPMSG_VIRTIO_IVSHMEM
bool "rpmsg virtio ivshmem support" bool "rpmsg virtio lite ivshmem support"
default n default n
depends on PCI_IVSHMEM depends on PCI_IVSHMEM
---help--- ---help---
This is rpmsg virtio driver based on pci ivshmem. 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 if RPMSG_VIRTIO_IVSHMEM
config RPMSG_VIRTIO_IVSHMEM_NAME config RPMSG_VIRTIO_IVSHMEM_NAME
string "rpmsg virtio ivshmem name" string "rpmsg virtio lite ivshmem name"
---help--- ---help---
Using this config to custom the rpmsg virtio ivshmem id, cpuname and role, Using this config to custom the rpmsg virtio ivshmem id, cpuname and role,
using ";" to split the names. 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" with remote cpu ids: "0","1", names: "cpu1", "cpu2", and roles: "master", "slave"
config RPMSG_VIRTIO_IVSHMEM_BUFFSIZE config RPMSG_VIRTIO_IVSHMEM_BUFFSIZE
int "rpmsg virtio ivshmem rpmsg buffer size" int "rpmsg virtio lite ivshmem rpmsg buffer size"
default 2048 default 2048
---help--- ---help---
The rpmsg buffer size in share memory, the RX and TX buffer size The rpmsg buffer size in share memory, the RX and TX buffer size
are same for now. are same for now.
config RPMSG_VIRTIO_IVSHMEM_BUFFNUM config RPMSG_VIRTIO_IVSHMEM_BUFFNUM
int "rpmsg virtio ivshmem rpmsg buffer number" int "rpmsg virtio lite ivshmem rpmsg buffer number"
default 8 default 8
---help--- ---help---
The rpmsg virtio buffer number in share memory, the RX and TX buffer number The rpmsg virtio buffer number in share memory, the RX and TX buffer number
+2 -2
View File
@@ -51,8 +51,8 @@ ifeq ($(CONFIG_RPMSG_PORT_UART),y)
CSRCS += rpmsg_port_uart.c CSRCS += rpmsg_port_uart.c
endif endif
ifeq ($(CONFIG_RPMSG_VIRTIO),y) ifeq ($(CONFIG_RPMSG_VIRTIO_LITE),y)
CSRCS += rpmsg_virtio.c CSRCS += rpmsg_virtio_lite.c
CFLAGS += ${INCDIR_PREFIX}$(TOPDIR)$(DELIM)openamp$(DELIM)open-amp$(DELIM)lib CFLAGS += ${INCDIR_PREFIX}$(TOPDIR)$(DELIM)openamp$(DELIM)open-amp$(DELIM)lib
endif endif
File diff suppressed because it is too large Load Diff
+26 -25
View File
@@ -32,8 +32,8 @@
#include <nuttx/drivers/addrenv.h> #include <nuttx/drivers/addrenv.h>
#include <nuttx/pci/pci_ivshmem.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_ivshmem.h>
#include <nuttx/rpmsg/rpmsg_virtio_lite.h>
#include <nuttx/wdog.h> #include <nuttx/wdog.h>
/**************************************************************************** /****************************************************************************
@@ -53,15 +53,15 @@
struct rpmsg_virtio_ivshmem_mem_s struct rpmsg_virtio_ivshmem_mem_s
{ {
volatile uint64_t basem; volatile uint64_t basem;
volatile uint32_t seqs; volatile uint32_t seqs;
volatile uint32_t seqm; volatile uint32_t seqm;
struct rpmsg_virtio_rsc_s rsc; struct rpmsg_virtio_lite_rsc_s rsc;
}; };
struct rpmsg_virtio_ivshmem_dev_s struct rpmsg_virtio_ivshmem_dev_s
{ {
struct rpmsg_virtio_s dev; struct rpmsg_virtio_lite_s dev;
struct ivshmem_driver_s drv; struct ivshmem_driver_s drv;
FAR struct ivshmem_device_s *ivdev; FAR struct ivshmem_device_s *ivdev;
rpmsg_virtio_callback_t callback; rpmsg_virtio_callback_t callback;
@@ -84,15 +84,15 @@ struct rpmsg_virtio_ivshmem_dev_s
****************************************************************************/ ****************************************************************************/
static const FAR char * 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);
static FAR struct rpmsg_virtio_rsc_s * static FAR struct rpmsg_virtio_lite_rsc_s *
rpmsg_virtio_ivshmem_get_resource(FAR struct rpmsg_virtio_s *dev); rpmsg_virtio_ivshmem_get_resource(FAR struct rpmsg_virtio_lite_s *dev);
static int static int
rpmsg_virtio_ivshmem_is_master(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_s *dev, static int rpmsg_virtio_ivshmem_notify(FAR struct rpmsg_virtio_lite_s *dev,
uint32_t notifyid); uint32_t notifyid);
static int 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, rpmsg_virtio_callback_t callback,
FAR void *arg); FAR void *arg);
static int rpmsg_virtio_ivshmem_probe(FAR struct ivshmem_device_s *ivdev); 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 * 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_cpuname = rpmsg_virtio_ivshmem_get_cpuname,
.get_resource = rpmsg_virtio_ivshmem_get_resource, .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 * 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 *priv =
(FAR struct rpmsg_virtio_ivshmem_dev_s *)dev; (FAR struct rpmsg_virtio_ivshmem_dev_s *)dev;
return priv->cpuname; return priv->cpuname;
} }
static FAR struct rpmsg_virtio_rsc_s * static FAR struct rpmsg_virtio_lite_rsc_s *
rpmsg_virtio_ivshmem_get_resource(FAR struct rpmsg_virtio_s *dev) 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 *priv =
(FAR struct rpmsg_virtio_ivshmem_dev_s *)dev; (FAR struct rpmsg_virtio_ivshmem_dev_s *)dev;
FAR struct rpmsg_virtio_rsc_s *rsc; FAR struct rpmsg_virtio_lite_rsc_s *rsc;
FAR struct rpmsg_virtio_cmd_s *cmd; FAR struct rpmsg_virtio_lite_cmd_s *cmd;
rsc = &priv->shmem->rsc; rsc = &priv->shmem->rsc;
cmd = RPMSG_VIRTIO_RSC2CMD(rsc); cmd = RPMSG_VIRTIO_LITE_RSC2CMD(rsc);
if (priv->master) if (priv->master)
{ {
@@ -178,14 +178,15 @@ rpmsg_virtio_ivshmem_get_resource(FAR struct rpmsg_virtio_s *dev)
return rsc; 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 *priv =
(FAR struct rpmsg_virtio_ivshmem_dev_s *)dev; (FAR struct rpmsg_virtio_ivshmem_dev_s *)dev;
return priv->master; 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) uint32_t vqid)
{ {
FAR struct rpmsg_virtio_ivshmem_dev_s *priv = 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 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, rpmsg_virtio_callback_t callback,
FAR void *arg) FAR void *arg)
{ {
@@ -231,7 +232,7 @@ static int rpmsg_virtio_ivshmem_interrupt(int irq, FAR void *context,
if (priv->callback != NULL) if (priv->callback != NULL)
{ {
priv->callback(priv->arg, RPMSG_VIRTIO_NOTIFY_ALL); priv->callback(priv->arg, RPMSG_VIRTIO_LITE_NOTIFY_ALL);
} }
return 0; return 0;
@@ -260,7 +261,7 @@ static void rpmsg_virtio_ivshmem_wdog(wdparm_t arg)
if (should_notify && priv->callback != NULL) 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, 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 */ /* Do rpmsg virtio initialize */
ret = rpmsg_virtio_initialize(&priv->dev); ret = rpmsg_virtio_lite_initialize(&priv->dev);
if (ret < 0) if (ret < 0)
{ {
rpmsgerr("Rpmsg virtio initialize failed, ret=%d\n", ret); rpmsgerr("Rpmsg virtio initialize failed, ret=%d\n", ret);
File diff suppressed because it is too large Load Diff
@@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
* include/nuttx/rpmsg/rpmsg_virtio.h * include/nuttx/rpmsg/rpmsg_virtio_lite.h
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *
@@ -20,8 +20,8 @@
* *
****************************************************************************/ ****************************************************************************/
#ifndef __INCLUDE_NUTTX_RPMSG_RPMSG_VIRTIO_H #ifndef __INCLUDE_NUTTX_RPMSG_RPMSG_VIRTIO_LITE_H
#define __INCLUDE_NUTTX_RPMSG_RPMSG_VIRTIO_H #define __INCLUDE_NUTTX_RPMSG_RPMSG_VIRTIO_LITE_H
/**************************************************************************** /****************************************************************************
* Included Files * Included Files
@@ -29,7 +29,7 @@
#include <nuttx/config.h> #include <nuttx/config.h>
#ifdef CONFIG_RPMSG_VIRTIO #ifdef CONFIG_RPMSG_VIRTIO_LITE
#include <nuttx/rpmsg/rpmsg.h> #include <nuttx/rpmsg/rpmsg.h>
#include <openamp/rpmsg_virtio.h> #include <openamp/rpmsg_virtio.h>
@@ -39,24 +39,24 @@
* Pre-processor Definitions * Pre-processor Definitions
****************************************************************************/ ****************************************************************************/
#define RPMSG_VIRTIO_NOTIFY_ALL UINT32_MAX #define RPMSG_VIRTIO_LITE_NOTIFY_ALL UINT32_MAX
#define RPMSG_VIRTIO_CMD_PANIC 0x1 #define RPMSG_VIRTIO_LITE_CMD_PANIC 0x1
#define RPMSG_VIRTIO_CMD_MASK 0xffff #define RPMSG_VIRTIO_LITE_CMD_MASK 0xffff
#define RPMSG_VIRTIO_CMD_SHIFT 16 #define RPMSG_VIRTIO_LITE_CMD_SHIFT 16
#define RPMSG_VIRTIO_CMD(c,v) (((c) << RPMSG_VIRTIO_CMD_SHIFT) | \ #define RPMSG_VIRTIO_LITE_CMD(c,v) (((c) << RPMSG_VIRTIO_LITE_CMD_SHIFT) | \
((v) & RPMSG_VIRTIO_CMD_MASK)) ((v) & RPMSG_VIRTIO_LITE_CMD_MASK))
#define RPMSG_VIRTIO_GET_CMD(c) ((c) >> RPMSG_VIRTIO_CMD_SHIFT) #define RPMSG_VIRTIO_LITE_GET_CMD(c) ((c) >> RPMSG_VIRTIO_LITE_CMD_SHIFT)
#define RPMSG_VIRTIO_RSC2CMD(r) \ #define RPMSG_VIRTIO_LITE_RSC2CMD(r) \
((FAR struct rpmsg_virtio_cmd_s *) \ ((FAR struct rpmsg_virtio_lite_cmd_s *) \
&((FAR struct resource_table *)(r))->reserved[0]) &((FAR struct resource_table *)(r))->reserved[0])
/* Access macros ************************************************************/ /* Access macros ************************************************************/
/**************************************************************************** /****************************************************************************
* Name: RPMSG_VIRTIO_GET_LOCAL_CPUNAME * Name: RPMSG_VIRTIO_LITE_GET_LOCAL_CPUNAME
* *
* Description: * Description:
* Get remote cpu name * Get remote cpu name
@@ -69,11 +69,11 @@
* *
****************************************************************************/ ****************************************************************************/
#define RPMSG_VIRTIO_GET_LOCAL_CPUNAME(d) \ #define RPMSG_VIRTIO_LITE_GET_LOCAL_CPUNAME(d) \
((d)->ops->get_local_cpuname ? (d)->ops->get_local_cpuname(d) : "") ((d)->ops->get_local_cpuname ? (d)->ops->get_local_cpuname(d) : "")
/**************************************************************************** /****************************************************************************
* Name: RPMSG_VIRTIO_GET_CPUNAME * Name: RPMSG_VIRTIO_LITE_GET_CPUNAME
* *
* Description: * Description:
* Get remote cpu name * Get remote cpu name
@@ -86,11 +86,11 @@
* *
****************************************************************************/ ****************************************************************************/
#define RPMSG_VIRTIO_GET_CPUNAME(d) \ #define RPMSG_VIRTIO_LITE_GET_CPUNAME(d) \
((d)->ops->get_cpuname ? (d)->ops->get_cpuname(d) : "") ((d)->ops->get_cpuname ? (d)->ops->get_cpuname(d) : "")
/**************************************************************************** /****************************************************************************
* Name: RPMSG_VIRTIO_GET_RESOURCE * Name: RPMSG_VIRTIO_LITE_GET_RESOURCE
* *
* Description: * Description:
* Get rpmsg virtio resource * Get rpmsg virtio resource
@@ -103,11 +103,11 @@
* *
****************************************************************************/ ****************************************************************************/
#define RPMSG_VIRTIO_GET_RESOURCE(d) \ #define RPMSG_VIRTIO_LITE_GET_RESOURCE(d) \
((d)->ops->get_resource ? (d)->ops->get_resource(d) : NULL) ((d)->ops->get_resource ? (d)->ops->get_resource(d) : NULL)
/**************************************************************************** /****************************************************************************
* Name: RPMSG_VIRTIO_IS_MASTER * Name: RPMSG_VIRTIO_LITE_IS_MASTER
* *
* Description: * Description:
* Is master or not * Is master or not
@@ -120,11 +120,11 @@
* *
****************************************************************************/ ****************************************************************************/
#define RPMSG_VIRTIO_IS_MASTER(d) \ #define RPMSG_VIRTIO_LITE_IS_MASTER(d) \
((d)->ops->is_master ? (d)->ops->is_master(d) : false) ((d)->ops->is_master ? (d)->ops->is_master(d) : false)
/**************************************************************************** /****************************************************************************
* Name: RPMSG_VIRTIO_REGISTER_CALLBACK * Name: RPMSG_VIRTIO_LITE_REGISTER_CALLBACK
* *
* Description: * Description:
* Attach to receive a callback when something is received on RPTUN * Attach to receive a callback when something is received on RPTUN
@@ -139,11 +139,11 @@
* *
****************************************************************************/ ****************************************************************************/
#define RPMSG_VIRTIO_REGISTER_CALLBACK(d,c,a) \ #define RPMSG_VIRTIO_LITE_REGISTER_CALLBACK(d,c,a) \
((d)->ops->register_callback ? (d)->ops->register_callback(d,c,a) : -ENOSYS) ((d)->ops->register_callback ? (d)->ops->register_callback(d,c,a) : -ENOSYS)
/**************************************************************************** /****************************************************************************
* Name: RPMSG_VIRTIO_NOTIFY * Name: RPMSG_VIRTIO_LITE_NOTIFY
* *
* Description: * Description:
* Notify remote core there is a message to get. * Notify remote core there is a message to get.
@@ -157,7 +157,7 @@
* *
****************************************************************************/ ****************************************************************************/
#define RPMSG_VIRTIO_NOTIFY(d,v) \ #define RPMSG_VIRTIO_LITE_NOTIFY(d,v) \
((d)->ops->notify ? (d)->ops->notify(d,v) : -ENOSYS) ((d)->ops->notify ? (d)->ops->notify(d,v) : -ENOSYS)
/**************************************************************************** /****************************************************************************
@@ -166,13 +166,13 @@
typedef CODE int (*rpmsg_virtio_callback_t)(FAR void *arg, uint32_t vqid); typedef CODE int (*rpmsg_virtio_callback_t)(FAR void *arg, uint32_t vqid);
begin_packed_struct struct rpmsg_virtio_cmd_s begin_packed_struct struct rpmsg_virtio_lite_cmd_s
{ {
uint32_t cmd_master; uint32_t cmd_master;
uint32_t cmd_slave; uint32_t cmd_slave;
} end_packed_struct; } end_packed_struct;
struct aligned_data(8) rpmsg_virtio_rsc_s struct aligned_data(8) rpmsg_virtio_lite_rsc_s
{ {
struct resource_table rsc_tbl_hdr; struct resource_table rsc_tbl_hdr;
uint32_t offset[2]; uint32_t offset[2];
@@ -183,23 +183,24 @@ struct aligned_data(8) rpmsg_virtio_rsc_s
struct fw_rsc_config config; struct fw_rsc_config config;
}; };
struct rpmsg_virtio_s; struct rpmsg_virtio_lite_s;
struct rpmsg_virtio_ops_s struct rpmsg_virtio_lite_ops_s
{ {
CODE FAR const char *(*get_local_cpuname)(FAR struct rpmsg_virtio_s *dev); CODE FAR const char *
CODE FAR const char *(*get_cpuname)(FAR struct rpmsg_virtio_s *dev); (*get_local_cpuname)(FAR struct rpmsg_virtio_lite_s *dev);
CODE FAR struct rpmsg_virtio_rsc_s * CODE FAR const char *(*get_cpuname)(FAR struct rpmsg_virtio_lite_s *dev);
(*get_resource)(FAR struct rpmsg_virtio_s *dev); CODE FAR struct rpmsg_virtio_lite_rsc_s *
CODE int (*is_master)(FAR struct rpmsg_virtio_s *dev); (*get_resource)(FAR struct rpmsg_virtio_lite_s *dev);
CODE int (*notify)(FAR struct rpmsg_virtio_s *dev, uint32_t vqid); CODE int (*is_master)(FAR struct rpmsg_virtio_lite_s *dev);
CODE int (*register_callback)(FAR struct rpmsg_virtio_s *dev, CODE int (*notify)(FAR struct rpmsg_virtio_lite_s *dev, uint32_t vqid);
CODE int (*register_callback)(FAR struct rpmsg_virtio_lite_s *dev,
rpmsg_virtio_callback_t callback, rpmsg_virtio_callback_t callback,
FAR void *arg); FAR void *arg);
}; };
struct rpmsg_virtio_s struct rpmsg_virtio_lite_s
{ {
FAR const struct rpmsg_virtio_ops_s *ops; FAR const struct rpmsg_virtio_lite_ops_s *ops;
}; };
/**************************************************************************** /****************************************************************************
@@ -214,12 +215,12 @@ extern "C"
#define EXTERN extern #define EXTERN extern
#endif #endif
int rpmsg_virtio_initialize(FAR struct rpmsg_virtio_s *dev); int rpmsg_virtio_lite_initialize(FAR struct rpmsg_virtio_lite_s *dev);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* CONFIG_RPTUN */ #endif /* CONFIG_RPMSG_VIRTIO_LITE */
#endif /* __INCLUDE_NUTTX_RPMSG_RPMSG_VIRTIO_H */ #endif /* __INCLUDE_NUTTX_RPMSG_RPMSG_VIRTIO_LITE_H */