Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 86 additions & 0 deletions boards/sim/sim/sim/configs/rpproxy_virtio/defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
#
# 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_EXAMPLES_HELLO=y
CONFIG_EXAMPLES_RPMSGSOCKET=y
CONFIG_FS_PROCFS=y
CONFIG_FS_RPMSGFS=y
CONFIG_IDLETHREAD_STACKSIZE=4096
CONFIG_INIT_ENTRYPOINT="nsh_main"
CONFIG_INPUT=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_ARCHINIT=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=y
CONFIG_RTC=y
CONFIG_RTC_ARCH=y
CONFIG_RTC_DRIVER=y
CONFIG_RTC_EXTERNAL=y
CONFIG_RTC_RPMSG=y
CONFIG_RTC_RPMSG_SERVER_NAME="server"
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_M32=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_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
111 changes: 111 additions & 0 deletions boards/sim/sim/sim/configs/rpserver_virtio/defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
#
# 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_EXAMPLES_RPMSGSOCKET=y
CONFIG_FS_HOSTFS=y
CONFIG_FS_PROCFS=y
CONFIG_FS_RPMSGFS_SERVER=y
CONFIG_IDLETHREAD_STACKSIZE=4096
CONFIG_INIT_ENTRYPOINT="nsh_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_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_TCPBACKLOG=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_ARCHINIT=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=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_M32=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_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
8 changes: 8 additions & 0 deletions boards/sim/sim/sim/src/sim_bringup.c
Original file line number Diff line number Diff line change
Expand Up @@ -483,6 +483,14 @@ int sim_bringup(void)
# endif
#endif

#ifdef CONFIG_RPMSG_VIRTIO
# 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_DEV_RPMSG
rpmsgdev_register("server", "/dev/console", "/dev/server-console", 0);
rpmsgdev_register("server", "/dev/null", "/dev/server-null", 0);
Expand Down
3 changes: 2 additions & 1 deletion drivers/clk/clk.c
Original file line number Diff line number Diff line change
Expand Up @@ -1337,8 +1337,9 @@ FAR struct clk_s *clk_register(FAR const char *name,
return clk;
}

out:
clk_list_unlock(irqflags);

out:
if (clk->parents)
{
kmm_free(clk->parents);
Expand Down
8 changes: 8 additions & 0 deletions drivers/clk/clk.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,14 @@ static inline uint32_t clk_read(uint32_t reg)
return *((volatile uint32_t *)(uintptr_t)reg);
}

static inline bool clk_is_best_rate_closest(uint32_t rate, uint32_t now,
uint32_t best)
{
uint32_t rate1 = rate > now ? (rate - now) : (now - rate);
uint32_t rate2 = rate > best ? (rate - best) : (best - rate);
return rate1 < rate2;
}

static inline uint32_t gcd(uint32_t a, uint32_t b)
{
uint32_t r;
Expand Down
2 changes: 1 addition & 1 deletion drivers/clk/clk_divider.c
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ static bool _is_best_div(uint32_t rate, uint32_t now,
{
if (flags & CLK_DIVIDER_ROUND_CLOSEST)
{
return abs(rate - now) < abs(rate - best);
return clk_is_best_rate_closest(rate, now, best);
}

return now <= rate && now > best;
Expand Down
2 changes: 1 addition & 1 deletion drivers/clk/clk_multiplier.c
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ static bool __is_best_rate(uint32_t rate, uint32_t new,
{
if (flags & CLK_MULT_ROUND_CLOSEST)
{
return abs(rate - new) < abs(rate - best);
return clk_is_best_rate_closest(rate, new, best);
}

return new >= rate && new < best;
Expand Down
2 changes: 1 addition & 1 deletion drivers/clk/clk_mux.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ static bool mux_is_better_rate(uint32_t rate, uint32_t now,
{
if (flags & CLK_MUX_ROUND_CLOSEST)
{
return abs(now - rate) < abs(best - rate);
return clk_is_best_rate_closest(rate, now, best);
}

return now <= rate && now > best;
Expand Down
12 changes: 6 additions & 6 deletions drivers/rpmsg/rpmsg_virtio.c
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,9 @@ static int rpmsg_virtio_create_virtqueues_(FAR struct virtio_device *vdev,
static uint8_t rpmsg_virtio_get_status_(FAR struct virtio_device *dev);
static void rpmsg_virtio_set_status_(FAR struct virtio_device *dev,
uint8_t status);
static uint32_t rpmsg_virtio_get_features_(FAR struct virtio_device *dev);
static uint64_t rpmsg_virtio_get_features_(FAR struct virtio_device *dev);
static void rpmsg_virtio_set_features(FAR struct virtio_device *dev,
uint32_t feature);
uint64_t feature);
static void rpmsg_virtio_notify(FAR struct virtqueue *vq);

/****************************************************************************
Expand Down Expand Up @@ -181,15 +181,15 @@ static void rpmsg_virtio_set_status_(FAR struct virtio_device *vdev,
priv->rsc->rpmsg_vdev.status = status;
}

static uint32_t rpmsg_virtio_get_features_(FAR struct virtio_device *vdev)
static uint64_t rpmsg_virtio_get_features_(FAR struct virtio_device *vdev)
{
FAR struct rpmsg_virtio_priv_s *priv = rpmsg_virtio_get_priv(vdev);

return priv->rsc->rpmsg_vdev.dfeatures;
}

static void rpmsg_virtio_set_features(FAR struct virtio_device *vdev,
uint32_t features)
uint64_t features)
{
FAR struct rpmsg_virtio_priv_s *priv = rpmsg_virtio_get_priv(vdev);

Expand Down Expand Up @@ -582,7 +582,7 @@ static int rpmsg_virtio_start(FAR struct rpmsg_virtio_priv_s *priv)
}

priv->rvdev.rdev.ns_unbind_cb = rpmsg_ns_unbind;
priv->rvdev.rdev.notify_wait_cb = rpmsg_virtio_notify_wait;
priv->rvdev.notify_wait_cb = rpmsg_virtio_notify_wait;

RPMSG_VIRTIO_REGISTER_CALLBACK(priv->dev, rpmsg_virtio_callback, priv);

Expand All @@ -604,7 +604,7 @@ static int rpmsg_virtio_start(FAR struct rpmsg_virtio_priv_s *priv)
static int rpmsg_virtio_thread(int argc, FAR char *argv[])
{
FAR struct rpmsg_virtio_priv_s *priv = (FAR struct rpmsg_virtio_priv_s *)
((uintptr_t)strtoul(argv[2], NULL, 0));
((uintptr_t)strtoul(argv[2], NULL, 16));
int ret;

priv->tid = nxsched_gettid();
Expand Down
2 changes: 1 addition & 1 deletion drivers/syslog/vsyslog.c
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ int nx_vsyslog(int priority, FAR const IPTR char *fmt, FAR va_list *ap)
"[%s] "
# endif
# else
"[%5jd.%06ld] "
"[%5ju.%06ld] "
# endif
#endif

Expand Down
1 change: 1 addition & 0 deletions include/nuttx/rpmsg/rpmsg_virtio.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@

#include <nuttx/rpmsg/rpmsg.h>
#include <openamp/rpmsg_virtio.h>
#include <openamp/remoteproc.h>

/****************************************************************************
* Pre-processor Definitions
Expand Down