RPMsg-Lite User's Guide  Rev. 5.1.1
NXP Semiconductors
RPMsg-Lite Configuration

The RPMsg-Lite can be configured at the compile time. The default configuration is defined in the rpmsg_default_config.h header file. This configuration can be customized by the user by including rpmsg_config.h file with custom settings. This section summarizes all possible RPMsg-Lite configuration options. More...

Overview

The RPMsg-Lite can be configured at the compile time. The default configuration is defined in the rpmsg_default_config.h header file. This configuration can be customized by the user by including rpmsg_config.h file with custom settings. This section summarizes all possible RPMsg-Lite configuration options.

Files

file  rpmsg_default_config.h
 

Configuration options

#define RL_MS_PER_INTERVAL
 
#define RL_ALLOW_CUSTOM_SHMEM_CONFIG
 
#define RL_BUFFER_PAYLOAD_SIZE
 
#define RL_BUFFER_COUNT
 
#define RL_API_HAS_ZEROCOPY
 
#define RL_USE_STATIC_API
 
#define RL_CLEAR_USED_BUFFERS
 
#define RL_USE_MCMGR_IPC_ISR_HANDLER
 
#define RL_USE_ENVIRONMENT_CONTEXT
 
#define RL_DEBUG_CHECK_BUFFERS
 
#define RL_ALLOW_CONSUMED_BUFFERS_NOTIFICATION
 
#define RL_ASSERT(x)
 
#define RL_ASSERT_BOOL(b)
 

Macro Definition Documentation

#define RL_MS_PER_INTERVAL

Delay in milliseconds used in non-blocking API functions for polling. The default value is 1.

#define RL_ALLOW_CUSTOM_SHMEM_CONFIG

This option allows to define custom shared memory configuration and replacing the shared memory related global settings from rpmsg_config.h This is useful when multiple instances are running in parallel but different shared memory arrangement (vring size & alignment, buffers size & count) is required. Note, that once enabled the platform_get_custom_shmem_config() function needs to be implemented in platform layer. The default value is 0 (all RPMsg_Lite instances use the same shared memory arrangement as defined by common config macros).

#define RL_BUFFER_PAYLOAD_SIZE

Size of the buffer payload, it must be equal to (240, 496, 1008, ...) [2^n - 16]. Ensure the same value is defined on both sides of rpmsg communication. The default value is 496U.

#define RL_BUFFER_COUNT

Number of the buffers, it must be power of two (2, 4, ...). The default value is 2U. Note this value defines the buffer count for one direction of the rpmsg communication only, i.e. if the default value of 2 is used in rpmsg_config.h files for the master and the remote side, 4 buffers in total are created in the shared memory.

#define RL_API_HAS_ZEROCOPY

Zero-copy API functions enabled/disabled. The default value is 1 (enabled).

#define RL_USE_STATIC_API

Static API functions (no dynamic allocation) enabled/disabled. The default value is 0 (static API disabled).

#define RL_CLEAR_USED_BUFFERS

Clearing used buffers before returning back to the pool of free buffers enabled/disabled. The default value is 0 (disabled).

#define RL_USE_MCMGR_IPC_ISR_HANDLER

When enabled IPC interrupts are managed by the Multicore Manager (IPC interrupts router), when disabled RPMsg-Lite manages IPC interrupts by itself. The default value is 0 (no MCMGR IPC ISR handler used).

#define RL_USE_ENVIRONMENT_CONTEXT

When enabled the environment layer uses its own context. Added for QNX port mainly, but can be used if required. The default value is 0 (no context, saves some RAM).

#define RL_DEBUG_CHECK_BUFFERS

When enabled buffer pointers passed to rpmsg_lite_send_nocopy() and rpmsg_lite_release_rx_buffer() functions (enabled by RL_API_HAS_ZEROCOPY config) are checked to avoid passing invalid buffer pointer. The default value is 0 (disabled). Do not use in RPMsg-Lite to Linux configuration.

#define RL_ALLOW_CONSUMED_BUFFERS_NOTIFICATION

When enabled the opposite side is notified each time received buffers are consumed and put into the queue of available buffers. Enable this option in RPMsg-Lite to Linux configuration to allow unblocking of the Linux blocking send. The default value is 0 (RPMsg-Lite to RPMsg-Lite communication).

#define RL_ASSERT (   x)

Assert implementation.