This is an automated email from the ASF dual-hosted git repository.

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new deeb41ce37f rpmsg: Remove rpmsg_lite transport support
deeb41ce37f is described below

commit deeb41ce37fb8184a628a80f3f295f2a90b8d84a
Author: Xiang Xiao <[email protected]>
AuthorDate: Thu Sep 25 13:55:11 2025 +0800

    rpmsg: Remove rpmsg_lite transport support
    
    rpmsg_virtio_lite is a second rpmsg virtio transport that runs without
    rptun, kept as a lighter option for small systems. It has its own rx
    thread, PM and dump code, so every fix and ops change in rpmsg_virtio
    has to be ported to it again, and the two keep drifting apart.
    
    We think the better way to serve small systems is to make rptun itself
    lighter, so one transport covers both cases. Remove rpmsg_virtio_lite,
    its ivshmem and sim front ends, and sim:rpserver_virtio and
    sim:rpproxy_virtio, its only in-tree users; without lite those two are
    sim:rpserver/rpproxy minus rptun. Boards on lite move to rptun with
    DRIVERS_VIRTIO_RPMSG, and ivshmem users to rptun_ivshmem.
    
    [skip-cmake-parity]: the sim CMake source list is
    arch/sim/src/sim/CMakeLists.txt, which is updated here; the parity
    check looks for arch/sim/src/CMakeLists.txt.
    
    Signed-off-by: Xiang Xiao <[email protected]>
    Signed-off-by: Bowen Wang <[email protected]>
---
 .github/CODEOWNERS                                 |   7 -
 arch/sim/src/Makefile                              |   4 -
 arch/sim/src/sim/CMakeLists.txt                    |   4 -
 arch/sim/src/sim/sim_internal.h                    |   7 -
 arch/sim/src/sim/sim_rpmsg_virtio.c                | 253 -------
 .../sim/sim/sim/configs/rpproxy_virtio/defconfig   |  88 ---
 .../sim/sim/sim/configs/rpserver_virtio/defconfig  | 113 ---
 boards/sim/sim/sim/src/sim_bringup.c               |   8 -
 drivers/pci/pci_drivers.c                          |  10 -
 drivers/rpmsg/CMakeLists.txt                       |   8 -
 drivers/rpmsg/Kconfig                              |  68 --
 drivers/rpmsg/Make.defs                            |   8 -
 drivers/rpmsg/rpmsg_virtio_ivshmem.c               | 382 ----------
 drivers/rpmsg/rpmsg_virtio_lite.c                  | 814 ---------------------
 include/nuttx/rpmsg/rpmsg_virtio_ivshmem.h         |  61 --
 include/nuttx/rpmsg/rpmsg_virtio_lite.h            | 223 ------
 16 files changed, 2058 deletions(-)

diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index f8e021a8ead..38c00344de9 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -6230,7 +6230,6 @@ arch/sim/src/sim/sim_openh264dec.h [email protected] 
[email protected]
 arch/sim/src/sim/sim_registerdump.c [email protected] [email protected] 
[email protected]
 arch/sim/src/sim/sim_releasestack.c [email protected] 
[email protected]
 arch/sim/src/sim/sim_rpmsg_port_uart.c [email protected]
-arch/sim/src/sim/sim_rpmsg_virtio.c [email protected] 
[email protected] [email protected] [email protected]
 arch/sim/src/sim/sim_rptun.c [email protected] [email protected] 
[email protected] [email protected] [email protected]
 arch/sim/src/sim/sim_rtc.c [email protected] [email protected] 
[email protected]
 arch/sim/src/sim/sim_saveusercontext.c [email protected] 
[email protected] [email protected]
@@ -12454,10 +12453,8 @@ boards/sim/sim/sim/configs/rc/defconfig 
[email protected] xiaoxiang@xiaomi.
 boards/sim/sim/sim/configs/romfs/defconfig [email protected] 
[email protected] [email protected] [email protected] 
[email protected]
 boards/sim/sim/sim/configs/rpproxy/defconfig [email protected] 
[email protected] [email protected] [email protected] 
[email protected]
 boards/sim/sim/sim/configs/rpproxy_uart/defconfig [email protected]
-boards/sim/sim/sim/configs/rpproxy_virtio/defconfig [email protected] 
[email protected]
 boards/sim/sim/sim/configs/rpserver/defconfig [email protected] 
[email protected] [email protected] [email protected] 
[email protected]
 boards/sim/sim/sim/configs/rpserver_uart/defconfig [email protected] 
[email protected]
-boards/sim/sim/sim/configs/rpserver_virtio/defconfig [email protected] 
[email protected] [email protected]
 boards/sim/sim/sim/configs/rtptools/defconfig [email protected] 
[email protected] [email protected] [email protected] 
[email protected]
 boards/sim/sim/sim/configs/rust/defconfig [email protected] 
[email protected] [email protected] [email protected] 
[email protected]
 boards/sim/sim/sim/configs/segger/defconfig [email protected] 
[email protected] [email protected] [email protected] 
[email protected]
@@ -13262,8 +13259,6 @@ drivers/rpmsg/rpmsg_port_uart.c [email protected] 
[email protected]
 drivers/rpmsg/rpmsg_router.h [email protected] [email protected]
 drivers/rpmsg/rpmsg_router_edge.c [email protected] [email protected] 
[email protected] [email protected]
 drivers/rpmsg/rpmsg_router_hub.c [email protected] [email protected] 
[email protected]
-drivers/rpmsg/rpmsg_virtio_ivshmem.c [email protected] 
[email protected] [email protected] [email protected] 
[email protected]
-drivers/rpmsg/rpmsg_virtio_lite.c [email protected]
 drivers/rptun/Kconfig [email protected] [email protected] 
[email protected] [email protected] [email protected]
 drivers/rptun/rptun.c [email protected] [email protected] 
[email protected] [email protected] [email protected]
 drivers/rptun/rptun_bmp.c [email protected]
@@ -14599,8 +14594,6 @@ include/nuttx/rmt/rmtchar.h [email protected] 
[email protected]
 include/nuttx/rpmsg/rpmsg.h [email protected] [email protected] 
[email protected] [email protected] [email protected]
 include/nuttx/rpmsg/rpmsg_port.h [email protected] [email protected] 
[email protected] [email protected]
 include/nuttx/rpmsg/rpmsg_router.h [email protected] [email protected]
-include/nuttx/rpmsg/rpmsg_virtio_ivshmem.h [email protected] 
[email protected]
-include/nuttx/rpmsg/rpmsg_virtio_lite.h [email protected]
 include/nuttx/rptun/rptun.h [email protected] [email protected] 
[email protected] [email protected] [email protected]
 include/nuttx/rptun/rptun_bmp.h [email protected]
 include/nuttx/rptun/rptun_ivshmem.h [email protected] 
[email protected]
diff --git a/arch/sim/src/Makefile b/arch/sim/src/Makefile
index b92f8eef9bc..95b392a40b5 100644
--- a/arch/sim/src/Makefile
+++ b/arch/sim/src/Makefile
@@ -317,10 +317,6 @@ ifeq ($(CONFIG_SIM_CANDEV_SOCK),y)
   CSRCS += sim_cansock.c
 endif
 
-ifeq ($(CONFIG_RPMSG_VIRTIO_LITE),y)
-  CSRCS += sim_rpmsg_virtio.c
-endif
-
 ifeq ($(CONFIG_RPMSG_PORT_UART),y)
   CSRCS += sim_rpmsg_port_uart.c
 endif
diff --git a/arch/sim/src/sim/CMakeLists.txt b/arch/sim/src/sim/CMakeLists.txt
index dc8b4c72e01..291be56838b 100644
--- a/arch/sim/src/sim/CMakeLists.txt
+++ b/arch/sim/src/sim/CMakeLists.txt
@@ -122,10 +122,6 @@ if(CONFIG_LIBM_TOOLCHAIN)
   list(APPEND STDLIBS m)
 endif()
 
-if(CONFIG_RPMSG_VIRTIO_LITE)
-  list(APPEND SRCS sim_rpmsg_virtio.c)
-endif()
-
 if(CONFIG_RPMSG_PORT_UART)
   list(APPEND SRCS sim_rpmsg_port_uart.c)
 endif()
diff --git a/arch/sim/src/sim/sim_internal.h b/arch/sim/src/sim/sim_internal.h
index 82ace1ecdd4..9bdf68ce570 100644
--- a/arch/sim/src/sim/sim_internal.h
+++ b/arch/sim/src/sim/sim_internal.h
@@ -442,13 +442,6 @@ void sim_netdriver_setmtu(int devidx, int mtu);
 int sim_rptun_init(const char *shmemname, const char *cpuname, int master);
 #endif
 
-/* sim_rpmsg_virtio.c *******************************************************/
-
-#ifdef CONFIG_RPMSG_VIRTIO_LITE
-int sim_rpmsg_virtio_init(const char *shmemname, const char *cpuname,
-                          bool master);
-#endif
-
 /* sim_rpmsg_port_uart.c ****************************************************/
 
 #ifdef CONFIG_RPMSG_PORT_UART
diff --git a/arch/sim/src/sim/sim_rpmsg_virtio.c 
b/arch/sim/src/sim/sim_rpmsg_virtio.c
deleted file mode 100644
index 3b03626e663..00000000000
--- a/arch/sim/src/sim/sim_rpmsg_virtio.c
+++ /dev/null
@@ -1,253 +0,0 @@
-/****************************************************************************
- * arch/sim/src/sim/sim_rpmsg_virtio.c
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <string.h>
-
-#include <nuttx/drivers/addrenv.h>
-#include <nuttx/kmalloc.h>
-#include <nuttx/nuttx.h>
-#include <nuttx/rpmsg/rpmsg_virtio_lite.h>
-#include <nuttx/wqueue.h>
-
-#include "sim_internal.h"
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-#define SIM_RPMSG_VIRTIO_WORK_DELAY   1
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-struct sim_rpmsg_virtio_shmem_s
-{
-  volatile uintptr_t             base;
-  volatile unsigned int          seqs;
-  volatile unsigned int          seqm;
-  volatile unsigned int          boots;
-  volatile unsigned int          bootm;
-  struct rpmsg_virtio_lite_rsc_s rsc;
-  char                           buf[0x10000];
-};
-
-struct sim_rpmsg_virtio_dev_s
-{
-  struct rpmsg_virtio_lite_s      dev;
-  rpmsg_virtio_callback_t         callback;
-  void                            *arg;
-  int                             master;
-  uint32_t                        seq;
-  struct sim_rpmsg_virtio_shmem_s *shmem;
-  struct simple_addrenv_s         addrenv[2];
-  char                            cpuname[RPMSG_NAME_SIZE + 1];
-  char                            shmemname[RPMSG_NAME_SIZE + 1];
-
-  /* Work for transmit */
-
-  struct work_s                   work;
-};
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-static const char *
-sim_rpmsg_virtio_get_cpuname(struct rpmsg_virtio_lite_s *dev)
-{
-  struct sim_rpmsg_virtio_dev_s *priv =
-    container_of(dev, struct sim_rpmsg_virtio_dev_s, dev);
-
-  return priv->cpuname;
-}
-
-static struct rpmsg_virtio_lite_rsc_s *
-sim_rpmsg_virtio_get_resource(struct rpmsg_virtio_lite_s *dev)
-{
-  struct sim_rpmsg_virtio_dev_s *priv =
-    container_of(dev, struct sim_rpmsg_virtio_dev_s, dev);
-  struct rpmsg_virtio_lite_rsc_s *rsc;
-
-  priv->shmem = host_allocshmem(priv->shmemname, sizeof(*priv->shmem));
-  if (!priv->shmem)
-    {
-      return NULL;
-    }
-
-  rsc = &priv->shmem->rsc;
-
-  if (priv->master)
-    {
-      memset(priv->shmem, 0, sizeof(*priv->shmem));
-      rsc->rpmsg_vdev.id            = VIRTIO_ID_RPMSG;
-      rsc->rpmsg_vdev.dfeatures     = 1 << VIRTIO_RPMSG_F_NS |
-                                      1 << VIRTIO_RPMSG_F_ACK;
-      rsc->rpmsg_vdev.config_len    = sizeof(struct fw_rsc_config);
-      rsc->rpmsg_vdev.num_of_vrings = 2;
-      rsc->rpmsg_vring0.da          = 0;
-      rsc->rpmsg_vring0.align       = 8;
-      rsc->rpmsg_vring0.num         = 8;
-      rsc->rpmsg_vring1.da          = 0;
-      rsc->rpmsg_vring1.align       = 8;
-      rsc->rpmsg_vring1.num         = 8;
-      rsc->config.r2h_buf_size      = 2048;
-      rsc->config.h2r_buf_size      = 2048;
-
-      priv->shmem->base = (uintptr_t)priv->shmem;
-    }
-  else
-    {
-      /* Wait until master is ready */
-
-      while (priv->shmem->base == 0)
-        {
-          usleep(1000);
-        }
-
-      priv->addrenv[0].va   = (uintptr_t)priv->shmem;
-      priv->addrenv[0].pa   = priv->shmem->base;
-      priv->addrenv[0].size = sizeof(*priv->shmem);
-
-      simple_addrenv_initialize(&priv->addrenv[0]);
-    }
-
-  return rsc;
-}
-
-static int sim_rpmsg_virtio_is_master(struct rpmsg_virtio_lite_s *dev)
-{
-  struct sim_rpmsg_virtio_dev_s *priv =
-    container_of(dev, struct sim_rpmsg_virtio_dev_s, dev);
-
-  return priv->master;
-}
-
-static int
-sim_rpmsg_virtio_register_callback(struct rpmsg_virtio_lite_s *dev,
-                                   rpmsg_virtio_callback_t callback,
-                                   void *arg)
-{
-  struct sim_rpmsg_virtio_dev_s *priv =
-    container_of(dev, struct sim_rpmsg_virtio_dev_s, dev);
-
-  priv->callback = callback;
-  priv->arg      = arg;
-
-  return 0;
-}
-
-static void sim_rpmsg_virtio_work(void *arg)
-{
-  struct sim_rpmsg_virtio_dev_s *dev = (struct sim_rpmsg_virtio_dev_s *)arg;
-
-  if (dev->shmem != NULL)
-    {
-      bool should_notify = false;
-
-      if (dev->master && dev->seq != dev->shmem->seqs)
-        {
-          dev->seq = dev->shmem->seqs;
-          should_notify = true;
-        }
-      else if (!dev->master && dev->seq != dev->shmem->seqm)
-        {
-          dev->seq = dev->shmem->seqm;
-          should_notify = true;
-        }
-
-      if (should_notify && dev->callback != NULL)
-        {
-          dev->callback(dev->arg, RPMSG_VIRTIO_LITE_NOTIFY_ALL);
-        }
-    }
-
-  work_queue_next_wq(g_work_queue, &dev->work, sim_rpmsg_virtio_work, dev,
-                     SIM_RPMSG_VIRTIO_WORK_DELAY);
-}
-
-static int sim_rpmsg_virtio_notify(struct rpmsg_virtio_lite_s *dev,
-                                   uint32_t vqid)
-{
-  struct sim_rpmsg_virtio_dev_s *priv =
-    container_of(dev, struct sim_rpmsg_virtio_dev_s, dev);
-
-  if (priv->master)
-    {
-      priv->shmem->seqm++;
-    }
-  else
-    {
-      priv->shmem->seqs++;
-    }
-
-  return 0;
-}
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-static const struct rpmsg_virtio_lite_ops_s g_sim_rpmsg_virtio_ops =
-{
-  .get_cpuname       = sim_rpmsg_virtio_get_cpuname,
-  .get_resource      = sim_rpmsg_virtio_get_resource,
-  .is_master         = sim_rpmsg_virtio_is_master,
-  .notify            = sim_rpmsg_virtio_notify,
-  .register_callback = sim_rpmsg_virtio_register_callback,
-};
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-int sim_rpmsg_virtio_init(const char *shmemname, const char *cpuname,
-                          bool master)
-{
-  struct sim_rpmsg_virtio_dev_s *priv;
-  int ret;
-
-  priv = kmm_zalloc(sizeof(*priv));
-  if (priv == NULL)
-    {
-      return -ENOMEM;
-    }
-
-  priv->master = master;
-  priv->dev.ops = &g_sim_rpmsg_virtio_ops;
-  strlcpy(priv->cpuname, cpuname, RPMSG_NAME_SIZE);
-  strlcpy(priv->shmemname, shmemname, RPMSG_NAME_SIZE);
-
-  ret = rpmsg_virtio_lite_initialize(&priv->dev);
-  if (ret < 0)
-    {
-      kmm_free(priv);
-      return ret;
-    }
-
-  return work_queue_wq(g_work_queue, &priv->work, sim_rpmsg_virtio_work,
-                       priv, 0);
-}
diff --git a/boards/sim/sim/sim/configs/rpproxy_virtio/defconfig 
b/boards/sim/sim/sim/configs/rpproxy_virtio/defconfig
deleted file mode 100644
index fe6d66aa809..00000000000
--- a/boards/sim/sim/sim/configs/rpproxy_virtio/defconfig
+++ /dev/null
@@ -1,88 +0,0 @@
-#
-# This file is autogenerated: PLEASE DO NOT EDIT IT.
-#
-# You can use "make menuconfig" to make any modifications to the installed 
.config file.
-# You can then do "make savedefconfig" to generate a new defconfig file that 
includes your
-# modifications.
-#
-# CONFIG_NET_ETHERNET is not set
-CONFIG_ARCH="sim"
-CONFIG_ARCH_BOARD="sim"
-CONFIG_ARCH_BOARD_SIM=y
-CONFIG_ARCH_CHIP="sim"
-CONFIG_ARCH_SIM=y
-CONFIG_BLK_RPMSG=y
-CONFIG_BOARDCTL_POWEROFF=y
-CONFIG_BUILTIN=y
-CONFIG_DEBUG_ASSERTIONS=y
-CONFIG_DEBUG_FEATURES=y
-CONFIG_DEBUG_FS=y
-CONFIG_DEBUG_FS_ERROR=y
-CONFIG_DEBUG_SYMBOLS=y
-CONFIG_DEV_RPMSG=y
-CONFIG_DEV_SIMPLE_ADDRENV=y
-CONFIG_ETC_ROMFS=y
-CONFIG_EXAMPLES_HELLO=y
-CONFIG_EXAMPLES_RPMSGSOCKET=y
-CONFIG_EXPERIMENTAL=y
-CONFIG_FS_PROCFS=y
-CONFIG_FS_ROMFS=y
-CONFIG_FS_RPMSGFS=y
-CONFIG_IDLETHREAD_STACKSIZE=4096
-CONFIG_INIT_ENTRYPOINT="init_main"
-CONFIG_INPUT=y
-CONFIG_LIBC_EXECFUNCS=y
-CONFIG_LIBC_HOSTNAME="proxy"
-CONFIG_MTD=y
-CONFIG_MTD_BYTE_WRITE=y
-CONFIG_NDEBUG=y
-CONFIG_NET=y
-CONFIG_NETDB_DNSCLIENT=y
-CONFIG_NETDB_DNSCLIENT_MAXRESPONSE=176
-CONFIG_NETDB_DNSCLIENT_RECV_TIMEOUT=3
-CONFIG_NETDB_DNSSERVER_IPv4ADDR=0x771d1d1d
-CONFIG_NETUTILS_IPERF=y
-CONFIG_NET_RPMSG=y
-CONFIG_NET_USRSOCK=y
-CONFIG_NET_USRSOCK_ICMP=y
-CONFIG_NET_USRSOCK_RPMSG=y
-CONFIG_NET_USRSOCK_RPMSG_CPUNAME="server"
-CONFIG_NET_USRSOCK_TCP=y
-CONFIG_NET_USRSOCK_UDP=y
-CONFIG_NSH_BUILTIN_APPS=y
-CONFIG_NSH_PROMPT_STRING="proxy> "
-CONFIG_NSH_READLINE=y
-CONFIG_OPENAMP_DEBUG=y
-CONFIG_READLINE_CMD_HISTORY=y
-CONFIG_READLINE_TABCOMPLETION=y
-CONFIG_RPMSGMTD=y
-CONFIG_RPMSG_PING=y
-CONFIG_RPMSG_UART=y
-CONFIG_RPMSG_VIRTIO_LITE=y
-CONFIG_RTC=y
-CONFIG_RTC_ARCH=y
-CONFIG_RTC_DRIVER=y
-CONFIG_RTC_EXTERNAL=y
-CONFIG_RTC_RPMSG=y
-CONFIG_SCHED_CHILD_STATUS=y
-CONFIG_SCHED_HAVE_PARENT=y
-CONFIG_SCHED_WAITPID=y
-CONFIG_SENSORS=y
-CONFIG_SENSORS_RPMSG=y
-CONFIG_SIG_DEFAULT=y
-CONFIG_SYSLOG_PREFIX=y
-CONFIG_SYSLOG_PREFIX_STRING="proxy"
-CONFIG_SYSLOG_RPMSG=y
-CONFIG_SYSLOG_RPMSG_SERVER_NAME="server"
-CONFIG_SYSLOG_TIMESTAMP=y
-CONFIG_SYSTEM_CLE=y
-CONFIG_SYSTEM_NSH=y
-CONFIG_SYSTEM_NXINIT=y
-CONFIG_SYSTEM_PING=y
-CONFIG_UINPUT_BUTTONS=y
-CONFIG_UINPUT_KEYBOARD=y
-CONFIG_UINPUT_RPMSG=y
-CONFIG_UINPUT_TOUCH=y
-CONFIG_UORB=y
-CONFIG_UORB_LISTENER=y
-CONFIG_USENSOR=y
diff --git a/boards/sim/sim/sim/configs/rpserver_virtio/defconfig 
b/boards/sim/sim/sim/configs/rpserver_virtio/defconfig
deleted file mode 100644
index 81eaf95e44a..00000000000
--- a/boards/sim/sim/sim/configs/rpserver_virtio/defconfig
+++ /dev/null
@@ -1,113 +0,0 @@
-#
-# This file is autogenerated: PLEASE DO NOT EDIT IT.
-#
-# You can use "make menuconfig" to make any modifications to the installed 
.config file.
-# You can then do "make savedefconfig" to generate a new defconfig file that 
includes your
-# modifications.
-#
-CONFIG_ARCH="sim"
-CONFIG_ARCH_BOARD="sim"
-CONFIG_ARCH_BOARD_SIM=y
-CONFIG_ARCH_CHIP="sim"
-CONFIG_ARCH_SIM=y
-CONFIG_BLK_RPMSG_SERVER=y
-CONFIG_BOARDCTL_POWEROFF=y
-CONFIG_BUILTIN=y
-CONFIG_CLK=y
-CONFIG_CLK_RPMSG=y
-CONFIG_DEBUG_ASSERTIONS=y
-CONFIG_DEBUG_FEATURES=y
-CONFIG_DEBUG_FS=y
-CONFIG_DEBUG_FS_ERROR=y
-CONFIG_DEBUG_SYMBOLS=y
-CONFIG_DEV_RPMSG_SERVER=y
-CONFIG_DEV_SIMPLE_ADDRENV=y
-CONFIG_ETC_ROMFS=y
-CONFIG_EXAMPLES_RPMSGSOCKET=y
-CONFIG_EXPERIMENTAL=y
-CONFIG_FS_HOSTFS=y
-CONFIG_FS_PROCFS=y
-CONFIG_FS_ROMFS=y
-CONFIG_FS_RPMSGFS_SERVER=y
-CONFIG_IDLETHREAD_STACKSIZE=4096
-CONFIG_INIT_ENTRYPOINT="init_main"
-CONFIG_INPUT=y
-CONFIG_IOB_BUFSIZE=256
-CONFIG_IOB_NBUFFERS=512
-CONFIG_IOB_THROTTLE=32
-CONFIG_IOEXPANDER=y
-CONFIG_IOEXPANDER_RPMSG=y
-CONFIG_LIBC_EXECFUNCS=y
-CONFIG_LIBC_HOSTNAME="server"
-CONFIG_MTD=y
-CONFIG_MTD_BYTE_WRITE=y
-CONFIG_NDEBUG=y
-CONFIG_NET=y
-CONFIG_NETDB_DNSCLIENT=y
-CONFIG_NETDB_DNSCLIENT_MAXRESPONSE=176
-CONFIG_NETDB_DNSCLIENT_RECV_TIMEOUT=3
-CONFIG_NETDB_DNSSERVER_IPv4ADDR=0x771d1d1d
-CONFIG_NETDEV_STATISTICS=y
-CONFIG_NETINIT_DHCPC=y
-CONFIG_NETINIT_THREAD=y
-CONFIG_NETUTILS_DHCPC=y
-CONFIG_NETUTILS_IPERF=y
-CONFIG_NET_BROADCAST=y
-CONFIG_NET_ICMP_SOCKET=y
-CONFIG_NET_LOOPBACK=y
-CONFIG_NET_RPMSG=y
-CONFIG_NET_RPMSG_DRV=y
-CONFIG_NET_STATISTICS=y
-CONFIG_NET_TCP=y
-CONFIG_NET_TCP_WRITE_BUFFERS=y
-CONFIG_NET_UDP=y
-CONFIG_NET_UDP_WRITE_BUFFERS=y
-CONFIG_NET_USRSOCK_RPMSG_SERVER=y
-CONFIG_NSH_BUILTIN_APPS=y
-CONFIG_NSH_PROMPT_STRING="server> "
-CONFIG_NSH_READLINE=y
-CONFIG_OPENAMP_DEBUG=y
-CONFIG_RAMMTD=y
-CONFIG_READLINE_CMD_HISTORY=y
-CONFIG_READLINE_TABCOMPLETION=y
-CONFIG_REGULATOR=y
-CONFIG_REGULATOR_RPMSG=y
-CONFIG_RPMSGMTD_SERVER=y
-CONFIG_RPMSG_PING=y
-CONFIG_RPMSG_UART=y
-CONFIG_RPMSG_VIRTIO_LITE=y
-CONFIG_RTC=y
-CONFIG_RTC_ARCH=y
-CONFIG_RTC_DRIVER=y
-CONFIG_RTC_RPMSG=y
-CONFIG_RTC_RPMSG_SERVER=y
-CONFIG_SCHED_CHILD_STATUS=y
-CONFIG_SCHED_HAVE_PARENT=y
-CONFIG_SCHED_WAITPID=y
-CONFIG_SENSORS=y
-CONFIG_SENSORS_RPMSG=y
-CONFIG_SIG_DEFAULT=y
-CONFIG_SIM_HOSTFS=y
-CONFIG_SIM_NETDEV=y
-CONFIG_SIM_NET_BRIDGE=y
-CONFIG_SIM_RPMSG_MASTER=y
-CONFIG_SIM_UART0_NAME="/dev/ttyUSB0"
-CONFIG_SIM_UART_NUMBER=1
-CONFIG_SYSLOG_PREFIX=y
-CONFIG_SYSLOG_PREFIX_STRING="server"
-CONFIG_SYSLOG_RPMSG_SERVER=y
-CONFIG_SYSLOG_TIMESTAMP=y
-CONFIG_SYSTEM_CLE=y
-CONFIG_SYSTEM_CUTERM=y
-CONFIG_SYSTEM_CUTERM_DEFAULT_DEVICE="/dev/ttyproxy"
-CONFIG_SYSTEM_NSH=y
-CONFIG_SYSTEM_NXINIT=y
-CONFIG_SYSTEM_PING=y
-CONFIG_TTY_SIGINT=y
-CONFIG_UINPUT_BUTTONS=y
-CONFIG_UINPUT_KEYBOARD=y
-CONFIG_UINPUT_RPMSG=y
-CONFIG_UINPUT_TOUCH=y
-CONFIG_UORB=y
-CONFIG_UORB_LISTENER=y
-CONFIG_USENSOR=y
diff --git a/boards/sim/sim/sim/src/sim_bringup.c 
b/boards/sim/sim/sim/src/sim_bringup.c
index c47f9646a8c..912e0d4ab27 100644
--- a/boards/sim/sim/sim/src/sim_bringup.c
+++ b/boards/sim/sim/sim/src/sim_bringup.c
@@ -517,14 +517,6 @@ int sim_bringup(void)
 #  endif
 #endif
 
-#ifdef CONFIG_RPMSG_VIRTIO_LITE
-#  ifdef CONFIG_SIM_RPMSG_MASTER
-  sim_rpmsg_virtio_init("server-proxy", "proxy", true);
-#  else
-  sim_rpmsg_virtio_init("server-proxy", "server", false);
-#  endif
-#endif
-
 #ifdef CONFIG_RPMSG_PORT_UART
 #  ifdef CONFIG_SIM_RPMSG_MASTER
   sim_rpmsg_port_uart_init("server", "proxy", "/dev/ttyVS0");
diff --git a/drivers/pci/pci_drivers.c b/drivers/pci/pci_drivers.c
index b0f6027cb2f..3c94e750cee 100644
--- a/drivers/pci/pci_drivers.c
+++ b/drivers/pci/pci_drivers.c
@@ -28,7 +28,6 @@
 
 #include <nuttx/pci/pci.h>
 #include <nuttx/rptun/rptun_ivshmem.h>
-#include <nuttx/rpmsg/rpmsg_virtio_ivshmem.h>
 #include <nuttx/virtio/virtio-pci.h>
 #include <nuttx/net/e1000.h>
 #include <nuttx/net/igc.h>
@@ -81,15 +80,6 @@ int pci_register_drivers(void)
     }
 #endif
 
-#ifdef CONFIG_RPMSG_VIRTIO_IVSHMEM
-  ret = pci_register_rpmsg_virtio_ivshmem_driver();
-  if (ret < 0)
-    {
-      pcierr("pci_register_rpmsg_virtio_ivshmem_driver failed, ret=%d\n",
-             ret);
-    }
-#endif
-
   /* Initialization pci qemu test driver */
 
 #ifdef CONFIG_PCI_QEMU_TEST
diff --git a/drivers/rpmsg/CMakeLists.txt b/drivers/rpmsg/CMakeLists.txt
index 9c6b0418366..7f0304096d7 100644
--- a/drivers/rpmsg/CMakeLists.txt
+++ b/drivers/rpmsg/CMakeLists.txt
@@ -57,14 +57,6 @@ if(CONFIG_RPMSG)
     list(APPEND SRCS rpmsg_virtio.c)
   endif()
 
-  if(CONFIG_RPMSG_VIRTIO_LITE)
-    list(APPEND SRCS rpmsg_virtio_lite.c)
-  endif()
-
-  if(CONFIG_RPMSG_VIRTIO_IVSHMEM)
-    list(APPEND SRCS rpmsg_virtio_ivshmem.c)
-  endif()
-
   if(CONFIG_RPMSG_ROUTER)
     list(APPEND SRCS rpmsg_router_hub.c rpmsg_router_edge.c)
   endif()
diff --git a/drivers/rpmsg/Kconfig b/drivers/rpmsg/Kconfig
index ea819a64ecb..13cfea7a66f 100644
--- a/drivers/rpmsg/Kconfig
+++ b/drivers/rpmsg/Kconfig
@@ -218,71 +218,3 @@ config RPMSG_VIRTIO_PM_AUTORELAX
 
 endif # RPMSG_VIRTIO
 
-config RPMSG_VIRTIO_LITE
-       bool "rpmsg virtio transport support"
-       default n
-       select RPMSG
-
-if RPMSG_VIRTIO_LITE
-
-config RPMSG_VIRTIO_LITE_PRIORITY
-       int "rpmsg virtio lite rx thread priority"
-       default 224
-
-config RPMSG_VIRTIO_LITE_STACKSIZE
-       int "rpmsg virtio lite rx thread stack size"
-       default DEFAULT_TASK_STACKSIZE
-
-config RPMSG_VIRTIO_IVSHMEM
-       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 lite ivshmem name"
-       ---help---
-               Using this config to custom the rpmsg virtio ivshmem id, 
cpuname and role,
-               using ";" to split the names.
-               For example, if RPMSG_VIRTIO_IVSHMEM_CPUNAME = 
"0:cpu1:m;1:cpu2:s" and pass
-               two ivshmem devices to the qemu, we will get two rpmsg virtio 
ivshmem drivers
-               with remote cpu ids: "0","1", names: "cpu1", "cpu2", and roles: 
"master", "slave"
-
-config RPMSG_VIRTIO_IVSHMEM_BUFFSIZE
-       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 lite ivshmem rpmsg buffer number"
-       default 8
-       ---help---
-               The rpmsg virtio buffer number in share memory, the RX and TX 
buffer number
-               are same for now.
-
-endif
-
-endif
diff --git a/drivers/rpmsg/Make.defs b/drivers/rpmsg/Make.defs
index 5c991e2380b..f7c6b7e4e5a 100644
--- a/drivers/rpmsg/Make.defs
+++ b/drivers/rpmsg/Make.defs
@@ -70,14 +70,6 @@ ifeq ($(CONFIG_RPMSG_VIRTIO),y)
 CSRCS += rpmsg_virtio.c
 endif
 
-ifeq ($(CONFIG_RPMSG_VIRTIO_LITE),y)
-CSRCS += rpmsg_virtio_lite.c
-endif
-
-ifeq ($(CONFIG_RPMSG_VIRTIO_IVSHMEM),y)
-CSRCS += rpmsg_virtio_ivshmem.c
-endif
-
 DEPPATH += --dep-path rpmsg
 VPATH += :rpmsg
 
diff --git a/drivers/rpmsg/rpmsg_virtio_ivshmem.c 
b/drivers/rpmsg/rpmsg_virtio_ivshmem.c
deleted file mode 100644
index 2eec277d038..00000000000
--- a/drivers/rpmsg/rpmsg_virtio_ivshmem.c
+++ /dev/null
@@ -1,382 +0,0 @@
-/****************************************************************************
- * drivers/rpmsg/rpmsg_virtio_ivshmem.c
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <nuttx/debug.h>
-#include <errno.h>
-#include <stdio.h>
-
-#include <nuttx/drivers/addrenv.h>
-#include <nuttx/kmalloc.h>
-#include <nuttx/pci/pci_ivshmem.h>
-#include <nuttx/rpmsg/rpmsg_virtio_ivshmem.h>
-#include <nuttx/rpmsg/rpmsg_virtio_lite.h>
-#include <nuttx/wdog.h>
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-#define rpmsg_virtio_ivshmem_from(dev) \
-  container_of(ivshmem_get_driver(dev), struct rpmsg_virtio_ivshmem_dev_s, drv)
-
-#define RPMSG_VIRTIO_IVSHMEM_WDOG_DELAY    MSEC2TICK(1)
-
-#define RPMSG_VIRTIO_VRING_ALIGNMENT       8
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-struct rpmsg_virtio_ivshmem_mem_s
-{
-  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_lite_s             dev;
-  struct ivshmem_driver_s                drv;
-  FAR struct ivshmem_device_s           *ivdev;
-  rpmsg_virtio_callback_t                callback;
-  FAR void                              *arg;
-  uint32_t                               seq;
-  FAR struct rpmsg_virtio_ivshmem_mem_s *shmem;
-  size_t                                 shmem_size;
-  struct simple_addrenv_s                addrenv[2];
-  int                                    master;
-  char                                   cpuname[RPMSG_NAME_SIZE + 1];
-  FAR struct pci_device_s               *ivshmem;
-
-  /* Wdog for transmit */
-
-  struct wdog_s                          wdog;
-};
-
-/****************************************************************************
- * Private Function Prototypes
- ****************************************************************************/
-
-static const FAR char *
-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_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_lite_s *dev,
-                                       rpmsg_virtio_callback_t callback,
-                                       FAR void *arg);
-static int rpmsg_virtio_ivshmem_probe(FAR struct ivshmem_device_s *ivdev);
-static void rpmsg_virtio_ivshmem_remove(FAR struct ivshmem_device_s *ivdev);
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-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,
-  .is_master         = rpmsg_virtio_ivshmem_is_master,
-  .notify            = rpmsg_virtio_ivshmem_notify,
-  .register_callback = rpmsg_virtio_ivshmem_register_callback,
-};
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-static const FAR char *
-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_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_lite_rsc_s *rsc;
-  FAR struct rpmsg_virtio_lite_cmd_s *cmd;
-
-  rsc = &priv->shmem->rsc;
-  cmd = RPMSG_VIRTIO_LITE_RSC2CMD(rsc);
-
-  if (priv->master)
-    {
-      memset(priv->shmem, 0, priv->shmem_size);
-      rsc->rpmsg_vdev.id            = VIRTIO_ID_RPMSG;
-      rsc->rpmsg_vdev.dfeatures     = 1 << VIRTIO_RPMSG_F_NS |
-                                      1 << VIRTIO_RPMSG_F_ACK;
-      rsc->rpmsg_vdev.config_len    = sizeof(struct fw_rsc_config);
-      rsc->rpmsg_vdev.num_of_vrings = 2;
-      rsc->rpmsg_vring0.da          = 0;
-      rsc->rpmsg_vring0.align       = RPMSG_VIRTIO_VRING_ALIGNMENT;
-      rsc->rpmsg_vring0.num         = CONFIG_RPMSG_VIRTIO_IVSHMEM_BUFFNUM;
-      rsc->rpmsg_vring1.da          = 0;
-      rsc->rpmsg_vring1.align       = RPMSG_VIRTIO_VRING_ALIGNMENT;
-      rsc->rpmsg_vring1.num         = CONFIG_RPMSG_VIRTIO_IVSHMEM_BUFFNUM;
-      rsc->config.r2h_buf_size      = CONFIG_RPMSG_VIRTIO_IVSHMEM_BUFFSIZE;
-      rsc->config.h2r_buf_size      = CONFIG_RPMSG_VIRTIO_IVSHMEM_BUFFSIZE;
-      cmd->cmd_slave                = 0;
-
-      priv->shmem->basem = (uint64_t)(uintptr_t)priv->shmem;
-    }
-  else
-    {
-      /* Wait until master is ready, slave needs to use master base to
-       * initialize addrenv.
-       */
-
-      while (priv->shmem->basem == 0)
-        {
-          usleep(1000);
-        }
-
-      priv->addrenv[0].va   = (uint64_t)(uintptr_t)priv->shmem;
-      priv->addrenv[0].pa   = priv->shmem->basem;
-      priv->addrenv[0].size = priv->shmem_size;
-
-      simple_addrenv_initialize(&priv->addrenv[0]);
-
-      priv->shmem->basem = 0;
-    }
-
-  return rsc;
-}
-
-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_lite_s *dev,
-                                       uint32_t vqid)
-{
-  FAR struct rpmsg_virtio_ivshmem_dev_s *priv =
-    (FAR struct rpmsg_virtio_ivshmem_dev_s *)dev;
-
-  if (ivshmem_support_irq(priv->ivdev))
-    {
-      ivshmem_kick_peer(priv->ivdev);
-    }
-  else if (priv->master)
-    {
-      priv->shmem->seqm++;
-    }
-  else
-    {
-      priv->shmem->seqs++;
-    }
-
-  return 0;
-}
-
-static int
-rpmsg_virtio_ivshmem_register_callback(FAR struct rpmsg_virtio_lite_s *dev,
-                                       rpmsg_virtio_callback_t callback,
-                                       FAR void *arg)
-{
-  FAR struct rpmsg_virtio_ivshmem_dev_s *priv =
-    (FAR struct rpmsg_virtio_ivshmem_dev_s *)dev;
-
-  priv->callback = callback;
-  priv->arg      = arg;
-  return 0;
-}
-
-/****************************************************************************
- * Name: rpmsg_virtio_ivshmem_interrupt
- ****************************************************************************/
-
-static int rpmsg_virtio_ivshmem_interrupt(int irq, FAR void *context,
-                                          FAR void *arg)
-{
-  FAR struct rpmsg_virtio_ivshmem_dev_s *priv = arg;
-
-  if (priv->callback != NULL)
-    {
-      priv->callback(priv->arg, RPMSG_VIRTIO_LITE_NOTIFY_ALL);
-    }
-
-  return 0;
-}
-
-/****************************************************************************
- * Name: rpmsg_virtio_ivshmem_wdog
- ****************************************************************************/
-
-static void rpmsg_virtio_ivshmem_wdog(wdparm_t arg)
-{
-  FAR struct rpmsg_virtio_ivshmem_dev_s *priv =
-    (FAR struct rpmsg_virtio_ivshmem_dev_s *)arg;
-  bool should_notify = false;
-
-  if (priv->master && priv->seq != priv->shmem->seqs)
-    {
-      priv->seq = priv->shmem->seqs;
-      should_notify = true;
-    }
-  else if (!priv->master && priv->seq != priv->shmem->seqm)
-    {
-      priv->seq = priv->shmem->seqm;
-      should_notify = true;
-    }
-
-  if (should_notify && priv->callback != NULL)
-    {
-      priv->callback(priv->arg, RPMSG_VIRTIO_LITE_NOTIFY_ALL);
-    }
-
-  wd_start(&priv->wdog, RPMSG_VIRTIO_IVSHMEM_WDOG_DELAY,
-           rpmsg_virtio_ivshmem_wdog, (wdparm_t)priv);
-}
-
-/****************************************************************************
- * Name: rpmsg_virtio_ivshmem_probe
- ****************************************************************************/
-
-static int rpmsg_virtio_ivshmem_probe(FAR struct ivshmem_device_s *ivdev)
-{
-  FAR struct rpmsg_virtio_ivshmem_dev_s *priv =
-    rpmsg_virtio_ivshmem_from(ivdev);
-  int ret;
-
-  /* Do the rpmsg virtio ivshmem init */
-
-  priv->ivdev = ivdev;
-  priv->dev.ops = &g_rpmsg_virtio_ivshmem_ops;
-  priv->shmem = ivshmem_get_shmem(ivdev, &priv->shmem_size);
-
-  ivshmem_attach_irq(ivdev, rpmsg_virtio_ivshmem_interrupt, priv);
-  ivshmem_control_irq(ivdev, true);
-
-  /* Do rpmsg virtio initialize */
-
-  ret = rpmsg_virtio_lite_initialize(&priv->dev);
-  if (ret < 0)
-    {
-      rpmsgerr("Rpmsg virtio initialize failed, ret=%d\n", ret);
-      goto err;
-    }
-
-  if (!ivshmem_support_irq(ivdev))
-    {
-      ret = wd_start(&priv->wdog, RPMSG_VIRTIO_IVSHMEM_WDOG_DELAY,
-                     rpmsg_virtio_ivshmem_wdog, (wdparm_t)priv);
-      if (ret < 0)
-        {
-          rpmsgerr("ERROR: wd_start failed: %d\n", ret);
-          goto err;
-        }
-    }
-
-  return ret;
-
-err:
-  ivshmem_control_irq(ivdev, false);
-  ivshmem_detach_irq(ivdev);
-  return ret;
-}
-
-/****************************************************************************
- * Name: rpmsg_virtio_ivshmem_remove
- ****************************************************************************/
-
-static void rpmsg_virtio_ivshmem_remove(FAR struct ivshmem_device_s *ivdev)
-{
-  FAR struct rpmsg_virtio_ivshmem_dev_s *priv =
-    rpmsg_virtio_ivshmem_from(ivdev);
-
-  if (!ivshmem_support_irq(ivdev))
-    {
-      wd_cancel(&priv->wdog);
-    }
-
-  ivshmem_control_irq(ivdev, false);
-  ivshmem_detach_irq(ivdev);
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-int pci_register_rpmsg_virtio_ivshmem_driver(void)
-{
-  FAR char *name = CONFIG_RPMSG_VIRTIO_IVSHMEM_NAME;
-
-  while (name != NULL)
-    {
-      FAR const char *str;
-
-      FAR struct rpmsg_virtio_ivshmem_dev_s * priv =
-        kmm_zalloc(sizeof(*priv));
-
-      if (priv == NULL)
-        {
-          return -ENOMEM;
-        }
-
-      priv->drv.id = strtoul(name, &name, 0);
-      str = strchr(++name, ':');
-      snprintf(priv->cpuname, RPMSG_NAME_SIZE, "%.*s", (int)(str - name),
-               name);
-      priv->master = *(str + 1) == 'm';
-
-      pciinfo("Register ivshmem driver, id=%d, cpuname=%s, master=%d\n",
-              priv->drv.id, priv->cpuname, priv->master);
-
-      priv->drv.probe = rpmsg_virtio_ivshmem_probe;
-      priv->drv.remove = rpmsg_virtio_ivshmem_remove;
-      if (ivshmem_register_driver(&priv->drv) < 0)
-        {
-          kmm_free(priv);
-        }
-
-      name = strchr(str, ';');
-      if (name != NULL)
-        {
-          name++;
-        }
-    }
-
-  return 0;
-}
diff --git a/drivers/rpmsg/rpmsg_virtio_lite.c 
b/drivers/rpmsg/rpmsg_virtio_lite.c
deleted file mode 100644
index 7e10e401141..00000000000
--- a/drivers/rpmsg/rpmsg_virtio_lite.c
+++ /dev/null
@@ -1,814 +0,0 @@
-/****************************************************************************
- * drivers/rpmsg/rpmsg_virtio_lite.c
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <nuttx/debug.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/param.h>
-
-#include <metal/cache.h>
-#include <nuttx/kmalloc.h>
-#include <nuttx/kthread.h>
-#include <nuttx/nuttx.h>
-#include <nuttx/power/pm.h>
-#include <nuttx/semaphore.h>
-#include <nuttx/rpmsg/rpmsg_virtio_lite.h>
-
-#include "rpmsg.h"
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-#define RPMSG_VIRTIO_LITE_TIMEOUT_MS 20
-#define RPMSG_VIRTIO_LITE_NOTIFYID   0
-
-#ifdef CONFIG_OPENAMP_CACHE
-#  define RPMSG_VIRTIO_INVALIDATE(x) metal_cache_invalidate(&x, sizeof(x))
-#else
-#  define RPMSG_VIRTIO_INVALIDATE(x)
-#endif
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-struct rpmsg_virtio_lite_priv_s
-{
-  struct rpmsg_s                     rpmsg;
-  struct rpmsg_virtio_device         rvdev;
-  FAR struct rpmsg_virtio_lite_s     *dev;
-  FAR struct rpmsg_virtio_lite_rsc_s *rsc;
-  struct virtio_device               vdev;
-  struct rpmsg_virtio_shm_pool       pool[2];
-  struct virtio_vring_info           rvrings[2];
-  sem_t                              semtx;
-  sem_t                              semrx;
-  pid_t                              tid;
-  uint16_t                           headrx;
-#ifdef CONFIG_RPMSG_VIRTIO_LITE_PM
-  struct pm_wakelock_s               wakelock;
-  struct wdog_s                      wdog;
-#endif
-};
-
-/****************************************************************************
- * Private Function Prototypes
- ****************************************************************************/
-
-static int rpmsg_virtio_lite_wait(FAR struct rpmsg_s *rpmsg, FAR sem_t *sem);
-static int rpmsg_virtio_lite_post(FAR struct rpmsg_s *rpmsg, FAR sem_t *sem);
-static void rpmsg_virtio_lite_panic(FAR struct rpmsg_s *rpmsg);
-static void rpmsg_virtio_lite_dump(FAR struct rpmsg_s *rpmsg);
-
-static int
-rpmsg_virtio_lite_create_virtqueues_(FAR struct virtio_device *vdev,
-                                     unsigned int flags,
-                                     unsigned int nvqs,
-                                     FAR const char *names[],
-                                     vq_callback callbacks[],
-                                     FAR void *callback_args[]);
-static uint8_t rpmsg_virtio_lite_get_status_(FAR struct virtio_device *dev);
-static void rpmsg_virtio_lite_set_status_(FAR struct virtio_device *dev,
-                                          uint8_t status);
-static uint64_t
-rpmsg_virtio_lite_get_features_(FAR struct virtio_device *dev);
-static void rpmsg_virtio_lite_set_features(FAR struct virtio_device *dev,
-                                           uint64_t feature);
-static void rpmsg_virtio_lite_notify(FAR struct virtqueue *vq);
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-static const struct rpmsg_ops_s g_rpmsg_virtio_lite_ops =
-{
-  .wait               = rpmsg_virtio_lite_wait,
-  .post               = rpmsg_virtio_lite_post,
-  .panic              = rpmsg_virtio_lite_panic,
-  .dump               = rpmsg_virtio_lite_dump,
-};
-
-static const struct virtio_dispatch g_rpmsg_virtio_lite_dispatch =
-{
-  .create_virtqueues = rpmsg_virtio_lite_create_virtqueues_,
-  .get_status        = rpmsg_virtio_lite_get_status_,
-  .set_status        = rpmsg_virtio_lite_set_status_,
-  .get_features      = rpmsg_virtio_lite_get_features_,
-  .set_features      = rpmsg_virtio_lite_set_features,
-  .notify            = rpmsg_virtio_lite_notify,
-};
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-#if defined(CONFIG_OPENAMP_DEBUG) || \
-    defined(CONFIG_RPMSG_VIRTIO_LITE_PM_AUTORELAX)
-static int
-rpmsg_virtio_lite_buffer_nused(FAR struct rpmsg_virtio_device *rvdev,
-                               bool rx)
-{
-  FAR struct virtqueue *vq = rx ? rvdev->rvq : rvdev->svq;
-  uint16_t nused = vq->vq_ring.avail->idx - vq->vq_ring.used->idx;
-
-  if ((rpmsg_virtio_get_role(rvdev) == RPMSG_HOST) ^ rx)
-    {
-      return nused;
-    }
-  else
-    {
-      return vq->vq_nentries - nused;
-    }
-}
-#endif
-
-static void
-rpmsg_virtio_lite_wakeup_tx(FAR struct rpmsg_virtio_lite_priv_s *priv)
-{
-  int semcount;
-
-  nxsem_get_value(&priv->semtx, &semcount);
-  while (semcount++ < 1)
-    {
-      nxsem_post(&priv->semtx);
-    }
-}
-
-#ifdef CONFIG_RPMSG_VIRTIO_LITE_PM
-
-#ifdef CONFIG_RPMSG_VIRTIO_LITE_PM_AUTORELAX
-static void rpmsg_virtio_lite_pm_callback(wdparm_t arg)
-{
-  FAR struct rpmsg_virtio_lite_priv_s *priv =
-    (FAR struct rpmsg_virtio_lite_priv_s *)arg;
-
-  if (rpmsg_virtio_lite_buffer_nused(&priv->rvdev, false))
-    {
-      rpmsg_virtio_lite_wakeup_tx(priv);
-
-      wd_start(&priv->wdog, MSEC2TICK(RPMSG_VIRTIO_LITE_TIMEOUT_MS),
-               rpmsg_virtio_lite_pm_callback, (wdparm_t)priv);
-    }
-  else
-    {
-      pm_wakelock_relax(&priv->wakelock);
-    }
-}
-#endif
-
-static inline void
-rpmsg_virtio_lite_pm_action(FAR struct rpmsg_virtio_lite_priv_s *priv,
-                            bool stay)
-{
-  irqstate_t flags;
-  int count;
-
-  flags = enter_critical_section();
-
-  count = pm_wakelock_staycount(&priv->wakelock);
-  if (stay && count == 0)
-    {
-      pm_wakelock_stay(&priv->wakelock);
-#ifdef CONFIG_RPMSG_VIRTIO_LITE_PM_AUTORELAX
-      wd_start(&priv->wdog, MSEC2TICK(RPMSG_VIRTIO_LITE_TIMEOUT_MS),
-               rpmsg_virtio_lite_pm_callback, (wdparm_t)priv);
-#endif
-    }
-
-#ifndef CONFIG_RPMSG_VIRTIO_LITE_PM_AUTORELAX
-  if (!stay && count > 0 &&
-      rpmsg_virtio_lite_buffer_nused(&priv->rvdev, false) == 0)
-    {
-      pm_wakelock_relax(&priv->wakelock);
-    }
-#endif
-
-  leave_critical_section(flags);
-}
-
-static inline bool
-rpmsg_virtio_lite_available_rx(FAR struct rpmsg_virtio_lite_priv_s *priv)
-{
-  FAR struct rpmsg_virtio_device *rvdev = &priv->rvdev;
-  FAR struct virtqueue *rvq = rvdev->rvq;
-
-  if (rpmsg_virtio_get_role(rvdev) == RPMSG_HOST)
-    {
-      return priv->headrx != rvq->vq_used_cons_idx;
-    }
-  else
-    {
-      return priv->headrx != rvq->vq_available_idx;
-    }
-}
-
-#else
-#  define rpmsg_virtio_lite_pm_action(priv, stay)
-#  define rpmsg_virtio_lite_available_rx(priv) true
-#endif
-
-static inline void
-rpmsg_virtio_lite_update_rx(FAR struct rpmsg_virtio_lite_priv_s *priv)
-{
-  FAR struct rpmsg_virtio_device *rvdev = &priv->rvdev;
-  FAR struct virtqueue *rvq = rvdev->rvq;
-
-  if (rpmsg_virtio_get_role(rvdev) == RPMSG_HOST)
-    {
-      RPMSG_VIRTIO_INVALIDATE(rvq->vq_ring.used->idx);
-      priv->headrx = rvq->vq_ring.used->idx;
-    }
-  else
-    {
-      RPMSG_VIRTIO_INVALIDATE(rvq->vq_ring.avail->idx);
-      priv->headrx = rvq->vq_ring.avail->idx;
-    }
-}
-
-static FAR struct rpmsg_virtio_lite_priv_s *
-rpmsg_virtio_lite_get_priv(FAR struct virtio_device *vdev)
-{
-  FAR struct rpmsg_virtio_device *rvdev = vdev->priv;
-
-  return metal_container_of(rvdev, struct rpmsg_virtio_lite_priv_s, rvdev);
-}
-
-static int
-rpmsg_virtio_lite_create_virtqueues_(FAR struct virtio_device *vdev,
-                                     unsigned int flags,
-                                     unsigned int nvqs,
-                                     FAR const char *names[],
-                                     vq_callback callbacks[],
-                                     FAR void *callback_args[])
-{
-  int ret;
-  int i;
-
-  if (nvqs > vdev->vrings_num)
-    {
-      return ERROR_VQUEUE_INVLD_PARAM;
-    }
-
-  /* Initialize virtqueue for each vring */
-
-  for (i = 0; i < nvqs; i++)
-    {
-      FAR struct virtio_vring_info *vinfo = &vdev->vrings_info[i];
-      FAR struct vring_alloc_info *valloc = &vinfo->info;
-#ifndef CONFIG_OPENAMP_VIRTIO_DEVICE_ONLY
-      if (vdev->role == VIRTIO_DEV_DRIVER)
-        {
-          size_t offset;
-
-          offset = metal_io_virt_to_offset(vinfo->io, valloc->vaddr);
-          metal_io_block_set(vinfo->io, offset, 0,
-                             vring_size(valloc->num_descs, valloc->align));
-        }
-#endif
-
-      ret = virtqueue_create(vdev, i, names[i], valloc,
-                             callbacks[i], vdev->func->notify,
-                             vinfo->vq);
-      if (ret < 0)
-        {
-          return ret;
-        }
-    }
-
-  return 0;
-}
-
-static uint8_t rpmsg_virtio_lite_get_status_(FAR struct virtio_device *vdev)
-{
-  FAR struct rpmsg_virtio_lite_priv_s *priv =
-    rpmsg_virtio_lite_get_priv(vdev);
-
-  return priv->rsc->rpmsg_vdev.status;
-}
-
-static void rpmsg_virtio_lite_set_status_(FAR struct virtio_device *vdev,
-                                          uint8_t status)
-{
-  FAR struct rpmsg_virtio_lite_priv_s *priv =
-    rpmsg_virtio_lite_get_priv(vdev);
-
-  priv->rsc->rpmsg_vdev.status = status;
-}
-
-static uint64_t
-rpmsg_virtio_lite_get_features_(FAR struct virtio_device *vdev)
-{
-  FAR struct rpmsg_virtio_lite_priv_s *priv =
-    rpmsg_virtio_lite_get_priv(vdev);
-
-  return priv->rsc->rpmsg_vdev.dfeatures;
-}
-
-static void rpmsg_virtio_lite_set_features(FAR struct virtio_device *vdev,
-                                           uint64_t features)
-{
-  FAR struct rpmsg_virtio_lite_priv_s *priv =
-    rpmsg_virtio_lite_get_priv(vdev);
-
-  priv->rsc->rpmsg_vdev.gfeatures = features;
-}
-
-static void rpmsg_virtio_lite_notify(FAR struct virtqueue *vq)
-{
-  FAR struct virtio_device *vdev = vq->vq_dev;
-  FAR struct rpmsg_virtio_lite_priv_s *priv =
-    rpmsg_virtio_lite_get_priv(vdev);
-  FAR struct virtqueue *svq = priv->rvdev.svq;
-
-  if (vdev->vrings_info->notifyid ==
-      vdev->vrings_info[svq->vq_queue_index].notifyid)
-    {
-      rpmsg_virtio_lite_pm_action(priv, true);
-    }
-
-  RPMSG_VIRTIO_LITE_NOTIFY(priv->dev, vdev->vrings_info->notifyid);
-}
-
-static bool
-rpmsg_virtio_lite_is_recursive(FAR struct rpmsg_virtio_lite_priv_s *priv)
-{
-  return nxsched_gettid() == priv->tid;
-}
-
-static int rpmsg_virtio_lite_wait(FAR struct rpmsg_s *rpmsg, FAR sem_t *sem)
-{
-  FAR struct rpmsg_virtio_lite_priv_s *priv =
-    (FAR struct rpmsg_virtio_lite_priv_s *)rpmsg;
-  int ret;
-
-  if (!rpmsg_virtio_lite_is_recursive(priv))
-    {
-      return nxsem_wait_uninterruptible(sem);
-    }
-
-  while (1)
-    {
-      ret = nxsem_trywait(sem);
-      if (ret >= 0)
-        {
-          break;
-        }
-
-      nxsem_wait(&priv->semtx);
-      virtqueue_notification(priv->rvdev.rvq);
-    }
-
-  return ret;
-}
-
-static int rpmsg_virtio_lite_post(FAR struct rpmsg_s *rpmsg, FAR sem_t *sem)
-{
-  FAR struct rpmsg_virtio_lite_priv_s *priv =
-    (FAR struct rpmsg_virtio_lite_priv_s *)rpmsg;
-  int semcount;
-  int ret;
-
-  nxsem_get_value(sem, &semcount);
-  ret = nxsem_post(sem);
-
-  if (priv && semcount >= 0)
-    {
-      rpmsg_virtio_lite_wakeup_tx(priv);
-    }
-
-  return ret;
-}
-
-static void rpmsg_virtio_lite_panic(FAR struct rpmsg_s *rpmsg)
-{
-  FAR struct rpmsg_virtio_lite_priv_s *priv =
-    (FAR struct rpmsg_virtio_lite_priv_s *)rpmsg;
-  FAR struct rpmsg_virtio_lite_cmd_s *cmd =
-    RPMSG_VIRTIO_LITE_RSC2CMD(priv->rsc);
-
-  if (RPMSG_VIRTIO_LITE_IS_MASTER(priv->dev))
-    {
-      cmd->cmd_master = RPMSG_VIRTIO_LITE_CMD(
-        RPMSG_VIRTIO_LITE_CMD_PANIC, 0);
-    }
-  else
-    {
-      cmd->cmd_slave = RPMSG_VIRTIO_LITE_CMD(
-        RPMSG_VIRTIO_LITE_CMD_PANIC, 0);
-    }
-
-  rpmsg_virtio_lite_notify(priv->vdev.vrings_info->vq);
-}
-
-#ifdef CONFIG_OPENAMP_DEBUG
-static void
-rpmsg_virtio_lite_dump_buffer(FAR struct rpmsg_virtio_device *rvdev, bool rx)
-{
-  FAR struct virtqueue *vq = rx ? rvdev->rvq : rvdev->svq;
-  int num;
-  int i;
-
-  num = rpmsg_virtio_lite_buffer_nused(rvdev, rx);
-  metal_log(METAL_LOG_EMERGENCY,
-            "    %s buffer, total %d, pending %d\n",
-            rx ? "RX" : "TX", vq->vq_nentries, num);
-
-  for (i = 0; i < num; i++)
-    {
-      FAR void *addr;
-      int desc_idx;
-
-      if ((rpmsg_virtio_get_role(rvdev) == RPMSG_HOST) ^ rx)
-        {
-          desc_idx = (vq->vq_ring.used->idx + i) & (vq->vq_nentries - 1);
-          desc_idx = vq->vq_ring.avail->ring[desc_idx];
-        }
-      else
-        {
-          desc_idx = (vq->vq_ring.avail->idx + i) & (vq->vq_nentries - 1);
-          desc_idx = vq->vq_ring.used->ring[desc_idx].id;
-        }
-
-      addr = metal_io_phys_to_virt(vq->shm_io,
-                                   vq->vq_ring.desc[desc_idx].addr);
-      if (addr)
-        {
-          FAR struct rpmsg_hdr *hdr = addr;
-          FAR struct rpmsg_endpoint *ept;
-
-          ept = rpmsg_get_ept_from_addr(&rvdev->rdev,
-                                        rx ? hdr->dst : hdr->src);
-          if (ept)
-            {
-              metal_log(METAL_LOG_EMERGENCY,
-                        "      %s buffer %p hold by %s\n",
-                        rx ? "RX" : "TX", hdr, ept->name);
-            }
-        }
-    }
-}
-
-static void rpmsg_virtio_lite_dump(FAR struct rpmsg_s *rpmsg)
-{
-  FAR struct rpmsg_virtio_lite_priv_s *priv =
-      (FAR struct rpmsg_virtio_lite_priv_s *)rpmsg;
-  FAR struct rpmsg_device *rdev = rpmsg_get_rdev_by_rpmsg(rpmsg);
-  FAR struct rpmsg_virtio_device *rvdev = &priv->rvdev;
-  bool needlock = true;
-
-  metal_log(METAL_LOG_EMERGENCY, "Remote: %s headrx %d\n",
-            RPMSG_VIRTIO_LITE_GET_CPUNAME(priv->dev), priv->headrx);
-
-  if (!rvdev->vdev)
-    {
-      return;
-    }
-
-  if (up_interrupt_context() || sched_idletask())
-    {
-      needlock = false;
-    }
-
-  if (needlock)
-    {
-      metal_mutex_acquire(&rdev->lock);
-    }
-
-  metal_log(METAL_LOG_EMERGENCY,
-            "Dump rpmsg info between cpu (master: %s)%s <==> %s:\n",
-            rpmsg_virtio_get_role(rvdev) == RPMSG_HOST ? "yes" : "no",
-            CONFIG_RPMSG_LOCAL_CPUNAME, rpmsg_get_cpuname(rdev));
-
-  metal_log(METAL_LOG_EMERGENCY, "rpmsg vq RX:\n");
-  virtqueue_dump(rvdev->rvq);
-  metal_log(METAL_LOG_EMERGENCY, "rpmsg vq TX:\n");
-  virtqueue_dump(rvdev->svq);
-
-  rpmsg_dump_epts(rdev);
-
-  metal_log(METAL_LOG_EMERGENCY, "  rpmsg buffer list:\n");
-
-  rpmsg_virtio_lite_dump_buffer(rvdev, true);
-  rpmsg_virtio_lite_dump_buffer(rvdev, false);
-
-  if (needlock)
-    {
-      metal_mutex_release(&rdev->lock);
-    }
-}
-#else
-static void rpmsg_virtio_lite_dump(FAR struct rpmsg_s *rpmsg)
-{
-  /* Nothing */
-}
-#endif
-
-static void
-rpmsg_virtio_lite_wakeup_rx(FAR struct rpmsg_virtio_lite_priv_s *priv)
-{
-  int semcount;
-
-  nxsem_get_value(&priv->semrx, &semcount);
-  if (semcount < 1)
-    {
-      nxsem_post(&priv->semrx);
-    }
-}
-
-static void rpmsg_virtio_lite_command(struct rpmsg_virtio_lite_priv_s *priv)
-{
-  FAR struct rpmsg_virtio_lite_cmd_s *rpmsg_virtio_cmd =
-    RPMSG_VIRTIO_LITE_RSC2CMD(priv->rsc);
-  uint32_t cmd;
-
-  if (RPMSG_VIRTIO_LITE_IS_MASTER(priv->dev))
-    {
-      cmd = rpmsg_virtio_cmd->cmd_slave;
-      rpmsg_virtio_cmd->cmd_slave = 0;
-    }
-  else
-    {
-      cmd = rpmsg_virtio_cmd->cmd_master;
-      rpmsg_virtio_cmd->cmd_master = 0;
-    }
-
-  switch (RPMSG_VIRTIO_LITE_GET_CMD(cmd))
-    {
-      case RPMSG_VIRTIO_LITE_CMD_PANIC:
-        PANIC();
-        break;
-
-      default:
-        break;
-    }
-}
-
-static int rpmsg_virtio_lite_callback(FAR void *arg, uint32_t vqid)
-{
-  FAR struct rpmsg_virtio_lite_priv_s *priv = arg;
-  FAR struct rpmsg_virtio_device *rvdev = &priv->rvdev;
-  FAR struct virtio_device *vdev = rvdev->vdev;
-  FAR struct virtqueue *rvq = rvdev->rvq;
-  FAR struct virtqueue *svq = rvdev->svq;
-
-  rpmsg_virtio_lite_command(priv);
-
-  if (vqid == RPMSG_VIRTIO_LITE_NOTIFY_ALL ||
-      vqid == vdev->vrings_info[rvq->vq_queue_index].notifyid)
-    {
-      rpmsg_virtio_lite_update_rx(priv);
-      rpmsg_virtio_lite_wakeup_rx(priv);
-    }
-
-  if (vqid == RPMSG_VIRTIO_LITE_NOTIFY_ALL ||
-      vqid == vdev->vrings_info[svq->vq_queue_index].notifyid)
-    {
-      rpmsg_virtio_lite_wakeup_tx(priv);
-      rpmsg_virtio_lite_pm_action(priv, false);
-    }
-
-  return OK;
-}
-
-static int rpmsg_virtio_lite_notify_wait(FAR struct rpmsg_device *rdev,
-                                         uint32_t id)
-{
-  FAR struct rpmsg_virtio_lite_priv_s *priv =
-    metal_container_of(rdev, struct rpmsg_virtio_lite_priv_s, rvdev.rdev);
-
-  if (!rpmsg_virtio_lite_is_recursive(priv))
-    {
-      return RPMSG_EOPNOTSUPP;
-    }
-
-  /* Wait to wakeup */
-
-  nxsem_tickwait(&priv->semtx, MSEC2TICK(RPMSG_VIRTIO_LITE_TIMEOUT_MS));
-  virtqueue_notification(priv->rvdev.rvq);
-
-  return 0;
-}
-
-static int rpmsg_virtio_lite_start(FAR struct rpmsg_virtio_lite_priv_s *priv)
-{
-  FAR struct virtio_vring_info *rvrings = priv->rvrings;
-  FAR struct virtio_device *vdev = &priv->vdev;
-  FAR struct rpmsg_virtio_lite_rsc_s *rsc;
-  struct rpmsg_virtio_config config;
-  FAR void *shbuf0;
-  FAR void *shbuf1;
-  uint32_t align0;
-  uint32_t align1;
-  uint32_t tbsz;
-  uint32_t v0sz;
-  uint32_t v1sz;
-  uint32_t shbufsz0;
-  uint32_t shbufsz1;
-  int ret;
-
-  rsc = RPMSG_VIRTIO_LITE_GET_RESOURCE(priv->dev);
-  if (!rsc)
-    {
-      return -EINVAL;
-    }
-
-  priv->rsc = rsc;
-
-  vdev->notifyid = RPMSG_VIRTIO_LITE_NOTIFYID;
-  vdev->vrings_num = rsc->rpmsg_vdev.num_of_vrings;
-  vdev->role = RPMSG_VIRTIO_LITE_IS_MASTER(priv->dev) ?
-               RPMSG_HOST : RPMSG_REMOTE;
-  vdev->func = &g_rpmsg_virtio_lite_dispatch;
-
-  align0 = rsc->rpmsg_vring0.align;
-  align1 = rsc->rpmsg_vring1.align;
-  tbsz = ALIGN_UP(sizeof(*rsc), MAX(align0, align1));
-  v0sz = ALIGN_UP(vring_size(rsc->rpmsg_vring0.num, align0), align0);
-  v1sz = ALIGN_UP(vring_size(rsc->rpmsg_vring1.num, align1), align1);
-
-  shbuf0   = (FAR char *)rsc + tbsz + v0sz + v1sz;
-  shbufsz0 = rsc->config.r2h_buf_size * rsc->rpmsg_vring0.num;
-  shbuf1   = shbuf0 + shbufsz0;
-  shbufsz1 = rsc->config.h2r_buf_size * rsc->rpmsg_vring1.num;
-
-  rvrings[0].io = metal_io_get_region();
-  rvrings[0].info.vaddr = (FAR char *)rsc + tbsz;
-  rvrings[0].info.num_descs = rsc->rpmsg_vring0.num;
-  rvrings[0].info.align = rsc->rpmsg_vring0.align;
-  rvrings[0].vq = virtqueue_allocate(rsc->rpmsg_vring0.num);
-  if (rvrings[0].vq == NULL)
-    {
-      return -ENOMEM;
-    }
-
-  rvrings[1].io = metal_io_get_region();
-  rvrings[1].info.vaddr = (FAR char *)rsc + tbsz + v0sz;
-  rvrings[1].info.num_descs = rsc->rpmsg_vring1.num;
-  rvrings[1].info.align = rsc->rpmsg_vring1.align;
-  rvrings[1].vq = virtqueue_allocate(rsc->rpmsg_vring1.num);
-  if (rvrings[1].vq == NULL)
-    {
-      ret = -ENOMEM;
-      goto err_vq0;
-    }
-
-  vdev->vrings_info = &rvrings[0];
-
-  rpmsg_virtio_init_shm_pool(&priv->pool[0], shbuf0, shbufsz0);
-  rpmsg_virtio_init_shm_pool(&priv->pool[1], shbuf1, shbufsz1);
-
-  memset(&config, 0, sizeof(config));
-  config.h2r_buf_size = rsc->config.h2r_buf_size;
-  config.r2h_buf_size = rsc->config.r2h_buf_size;
-  config.split_shpool = true;
-
-  ret = rpmsg_init_vdev_with_config(&priv->rvdev, vdev, rpmsg_ns_bind,
-                                    metal_io_get_region(),
-                                    priv->pool, &config);
-  if (ret != 0)
-    {
-      rpmsgerr("rpmsg_init_vdev failed %d\n", ret);
-      ret = -ENOMEM;
-      goto err_vq1;
-    }
-
-  priv->rvdev.rdev.ns_unbind_cb = rpmsg_ns_unbind;
-  priv->rvdev.notify_wait_cb = rpmsg_virtio_lite_notify_wait;
-
-  RPMSG_VIRTIO_LITE_REGISTER_CALLBACK(priv->dev, rpmsg_virtio_lite_callback,
-                                      priv);
-
-  rpmsg_virtio_lite_update_rx(priv);
-  rpmsg_virtio_lite_wakeup_rx(priv);
-
-  /* Broadcast device_created to all registers */
-
-  rpmsg_device_created(&priv->rpmsg);
-
-  return 0;
-
-err_vq1:
-  virtqueue_free(rvrings[1].vq);
-err_vq0:
-  virtqueue_free(rvrings[0].vq);
-  return ret;
-}
-
-static int rpmsg_virtio_lite_thread(int argc, FAR char *argv[])
-{
-  FAR struct rpmsg_virtio_lite_priv_s *priv =
-    (FAR struct rpmsg_virtio_lite_priv_s *)
-    ((uintptr_t)strtoul(argv[2], NULL, 16));
-  int ret;
-
-  priv->tid = nxsched_gettid();
-
-  ret = rpmsg_virtio_lite_start(priv);
-  if (ret < 0)
-    {
-      rpmsgerr("rpmsg virtio thread start failed %d\n", ret);
-      return ret;
-    }
-
-  while (1)
-    {
-      nxsem_wait_uninterruptible(&priv->semrx);
-      if (rpmsg_virtio_lite_available_rx(priv))
-        {
-          virtqueue_notification(priv->rvdev.rvq);
-        }
-    }
-
-  return 0;
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-int rpmsg_virtio_lite_initialize(FAR struct rpmsg_virtio_lite_s *dev)
-{
-  FAR struct rpmsg_virtio_lite_priv_s *priv;
-  FAR char *argv[3];
-  char name[64];
-  char arg1[32];
-  int ret;
-
-  priv = kmm_zalloc(sizeof(struct rpmsg_virtio_lite_priv_s));
-  if (priv == NULL)
-    {
-      return -ENOMEM;
-    }
-
-  priv->dev = dev;
-  nxsem_init(&priv->semrx, 0, 0);
-  nxsem_init(&priv->semtx, 0, 0);
-  strlcpy(priv->rpmsg.cpuname, RPMSG_VIRTIO_LITE_GET_CPUNAME(dev),
-          sizeof(priv->rpmsg.cpuname));
-  strlcpy(priv->rpmsg.local_cpuname,
-          RPMSG_VIRTIO_LITE_GET_LOCAL_CPUNAME(dev),
-          sizeof(priv->rpmsg.local_cpuname));
-
-  snprintf(name, sizeof(name), "/dev/rpmsg/%s", priv->rpmsg.cpuname);
-  ret = rpmsg_register(name, &priv->rpmsg, &g_rpmsg_virtio_lite_ops);
-  if (ret < 0)
-    {
-      goto err_driver;
-    }
-
-  snprintf(arg1, sizeof(arg1), "%p", priv);
-  argv[0] = (FAR char *)priv->rpmsg.cpuname;
-  argv[1] = arg1;
-  argv[2] = NULL;
-
-  ret = kthread_create("rpmsg_virtio", CONFIG_RPMSG_VIRTIO_LITE_PRIORITY,
-                       CONFIG_RPMSG_VIRTIO_LITE_STACKSIZE,
-                       rpmsg_virtio_lite_thread, argv);
-  if (ret < 0)
-    {
-      goto err_thread;
-    }
-
-#ifdef CONFIG_RPMSG_VIRTIO_LITE_PM
-  snprintf(name, sizeof(name), "rpmsg-virtio-%s", priv->rpmsg.cpuname);
-  pm_wakelock_init(&priv->wakelock, name, PM_IDLE_DOMAIN, PM_IDLE);
-#endif
-
-  return OK;
-
-err_thread:
-  rpmsg_unregister(name, &priv->rpmsg);
-
-err_driver:
-  nxsem_destroy(&priv->semrx);
-  nxsem_destroy(&priv->semtx);
-  kmm_free(priv);
-
-  return ret;
-}
diff --git a/include/nuttx/rpmsg/rpmsg_virtio_ivshmem.h 
b/include/nuttx/rpmsg/rpmsg_virtio_ivshmem.h
deleted file mode 100644
index 21f296d09e0..00000000000
--- a/include/nuttx/rpmsg/rpmsg_virtio_ivshmem.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
- * include/nuttx/rpmsg/rpmsg_virtio_ivshmem.h
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-#ifndef __INCLUDE_NUTTX_RPMSG_RPMSG_VIRTIO_IVSHMEM_H
-#define __INCLUDE_NUTTX_RPMSG_RPMSG_VIRTIO_IVSHMEM_H
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#ifdef CONFIG_RPMSG_VIRTIO_IVSHMEM
-
-/****************************************************************************
- * Public Function Prototypes
- ****************************************************************************/
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/****************************************************************************
- * Name: rpmsg_virtio_ivshmem_driver_init
- *
- * Description:
- *   Initializes the rptun ivshmem driver.
- *
- * Returned Value:
- *   OK on success, negated errno on failure
- *
- ****************************************************************************/
-
-int pci_register_rpmsg_virtio_ivshmem_driver(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* CONFIG_RPMSG_VIRTIO_IVSHMEM */
-#endif /* __INCLUDE_NUTTX_RPMSG_RPMSG_VIRTIO_IVSHMEM_H */
diff --git a/include/nuttx/rpmsg/rpmsg_virtio_lite.h 
b/include/nuttx/rpmsg/rpmsg_virtio_lite.h
deleted file mode 100644
index 1b39406bd6b..00000000000
--- a/include/nuttx/rpmsg/rpmsg_virtio_lite.h
+++ /dev/null
@@ -1,223 +0,0 @@
-/****************************************************************************
- * include/nuttx/rpmsg/rpmsg_virtio_lite.h
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-#ifndef __INCLUDE_NUTTX_RPMSG_RPMSG_VIRTIO_LITE_H
-#define __INCLUDE_NUTTX_RPMSG_RPMSG_VIRTIO_LITE_H
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#ifdef CONFIG_RPMSG_VIRTIO_LITE
-
-#include <nuttx/rpmsg/rpmsg.h>
-#include <openamp/rpmsg_virtio.h>
-#include <openamp/remoteproc.h>
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-#define RPMSG_VIRTIO_LITE_NOTIFY_ALL UINT32_MAX
-
-#define RPMSG_VIRTIO_LITE_CMD_PANIC  0x1
-#define RPMSG_VIRTIO_LITE_CMD_MASK   0xffff
-#define RPMSG_VIRTIO_LITE_CMD_SHIFT  16
-
-#define RPMSG_VIRTIO_LITE_CMD(c,v)   (((c) << RPMSG_VIRTIO_LITE_CMD_SHIFT) | \
-                                      ((v) & RPMSG_VIRTIO_LITE_CMD_MASK))
-#define RPMSG_VIRTIO_LITE_GET_CMD(c) ((c) >> RPMSG_VIRTIO_LITE_CMD_SHIFT)
-
-#define RPMSG_VIRTIO_LITE_RSC2CMD(r) \
-  ((FAR struct rpmsg_virtio_lite_cmd_s *) \
-   &((FAR struct resource_table *)(r))->reserved[0])
-
-/* Access macros ************************************************************/
-
-/****************************************************************************
- * Name: RPMSG_VIRTIO_LITE_GET_LOCAL_CPUNAME
- *
- * Description:
- *   Get remote cpu name
- *
- * Input Parameters:
- *   dev  - Device-specific state data
- *
- * Returned Value:
- *   Cpu name on success, NULL on failure.
- *
- ****************************************************************************/
-
-#define RPMSG_VIRTIO_LITE_GET_LOCAL_CPUNAME(d) \
-  ((d)->ops->get_local_cpuname ? (d)->ops->get_local_cpuname(d) : "")
-
-/****************************************************************************
- * Name: RPMSG_VIRTIO_LITE_GET_CPUNAME
- *
- * Description:
- *   Get remote cpu name
- *
- * Input Parameters:
- *   dev  - Device-specific state data
- *
- * Returned Value:
- *   Cpu name on success, NULL on failure.
- *
- ****************************************************************************/
-
-#define RPMSG_VIRTIO_LITE_GET_CPUNAME(d) \
-  ((d)->ops->get_cpuname ? (d)->ops->get_cpuname(d) : "")
-
-/****************************************************************************
- * Name: RPMSG_VIRTIO_LITE_GET_RESOURCE
- *
- * Description:
- *   Get rpmsg virtio resource
- *
- * Input Parameters:
- *   dev  - Device-specific state data
- *
- * Returned Value:
- *   Resource pointer on success, NULL on failure
- *
- ****************************************************************************/
-
-#define RPMSG_VIRTIO_LITE_GET_RESOURCE(d) \
-  ((d)->ops->get_resource ? (d)->ops->get_resource(d) : NULL)
-
-/****************************************************************************
- * Name: RPMSG_VIRTIO_LITE_IS_MASTER
- *
- * Description:
- *   Is master or not
- *
- * Input Parameters:
- *   dev  - Device-specific state data
- *
- * Returned Value:
- *   True master, false remote
- *
- ****************************************************************************/
-
-#define RPMSG_VIRTIO_LITE_IS_MASTER(d) \
-  ((d)->ops->is_master ? (d)->ops->is_master(d) : false)
-
-/****************************************************************************
- * Name: RPMSG_VIRTIO_LITE_REGISTER_CALLBACK
- *
- * Description:
- *   Attach to receive a callback when something is received on RPTUN
- *
- * Input Parameters:
- *   dev      - Device-specific state data
- *   callback - The function to be called when something has been received
- *   arg      - A caller provided value to return with the callback
- *
- * Returned Value:
- *   OK unless an error occurs.  Then a negated errno value is returned
- *
- ****************************************************************************/
-
-#define RPMSG_VIRTIO_LITE_REGISTER_CALLBACK(d,c,a) \
-  ((d)->ops->register_callback ? (d)->ops->register_callback(d,c,a) : -ENOSYS)
-
-/****************************************************************************
- * Name: RPMSG_VIRTIO_LITE_NOTIFY
- *
- * Description:
- *   Notify remote core there is a message to get.
- *
- * Input Parameters:
- *   dev  - Device-specific state data
- *   vqid - Message to notify
- *
- * Returned Value:
- *   OK unless an error occurs.  Then a negated errno value is returned
- *
- ****************************************************************************/
-
-#define RPMSG_VIRTIO_LITE_NOTIFY(d,v) \
-  ((d)->ops->notify ? (d)->ops->notify(d,v) : -ENOSYS)
-
-/****************************************************************************
- * Public Types
- ****************************************************************************/
-
-typedef CODE int (*rpmsg_virtio_callback_t)(FAR void *arg, uint32_t vqid);
-
-begin_packed_struct struct rpmsg_virtio_lite_cmd_s
-{
-  uint32_t cmd_master;
-  uint32_t cmd_slave;
-} end_packed_struct;
-
-struct aligned_data(8) rpmsg_virtio_lite_rsc_s
-{
-  struct resource_table    rsc_tbl_hdr;
-  uint32_t                 offset[2];
-  struct fw_rsc_trace      log_trace;
-  struct fw_rsc_vdev       rpmsg_vdev;
-  struct fw_rsc_vdev_vring rpmsg_vring0;
-  struct fw_rsc_vdev_vring rpmsg_vring1;
-  struct fw_rsc_config     config;
-};
-
-struct rpmsg_virtio_lite_s;
-struct rpmsg_virtio_lite_ops_s
-{
-  CODE FAR const char *
-  (*get_local_cpuname)(FAR struct rpmsg_virtio_lite_s *dev);
-  CODE FAR const char *(*get_cpuname)(FAR struct rpmsg_virtio_lite_s *dev);
-  CODE FAR struct rpmsg_virtio_lite_rsc_s *
-  (*get_resource)(FAR struct rpmsg_virtio_lite_s *dev);
-  CODE int (*is_master)(FAR struct rpmsg_virtio_lite_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,
-                                FAR void *arg);
-};
-
-struct rpmsg_virtio_lite_s
-{
-  FAR const struct rpmsg_virtio_lite_ops_s *ops;
-};
-
-/****************************************************************************
- * Public Function Prototypes
- ****************************************************************************/
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-int rpmsg_virtio_lite_initialize(FAR struct rpmsg_virtio_lite_s *dev);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* CONFIG_RPMSG_VIRTIO_LITE */
-
-#endif /* __INCLUDE_NUTTX_RPMSG_RPMSG_VIRTIO_LITE_H */

Reply via email to