Currently the IHC (Inter Hart Communication) depends on OpenAMP and
rptun. However, the bootloader portion of the IHC doesn't need
either of them. Now they are wasting a lot of bootloader space.
Reorganize the bootloader portion into a separate file 'mpfs_ihc_sbi.c'.
This file contains the OpenSBI vendor extensions, or the only required
functionalities for the bootloader. On the other hand, 'mpfs_ihc.c'
contains the non-bootloader code.
This patch also makes it possible to utilize 2 RPMSG channels. This
has been tested so that 2 separate NuttXs on harts 1 and 2 communicate
with Linux kernel that runs on harts 3 and 4.
New configuration files are added as well:
- rpmsg-ch1: sample config for RPMSG
- rpmsg-ch2: sample config for another RPMSG channel
- rpmsg-sbi: sample bootloader config for RPMSG/OpenSBI
Signed-off-by: Eero Nurkkala <eero.nurkkala@offcode.fi>
This reverts commit ea9144bda8.
The commit made Icicle MPFS DDR useless. Revert the change for now.
Signed-off-by: Eero Nurkkala <eero.nurkkala@offcode.fi>
instead of lib_psa_[get|set]stackaddr.c since the later doesn't exist in kernel mode
regression by:
commit b9b032af72
Author: Xiang Xiao <xiaoxiang@xiaomi.com>
Date: Thu Oct 20 03:10:23 2022 +0800
sched/spawn: Support task_spawnattr_[set|get]stacksize in kernel mode
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
common/arm_backtrace_sp.c: In function 'up_backtrace':
common/arm_backtrace_sp.c:253:15: warning: assignment to 'long unsigned int' from 'uint8_t *' {aka 'unsigned char *'} makes integer from pointer without a cast [-Wint-conversion]
253 | top = g_intstacktop;
|
TIMER_SETTIME(2)
NAME
timer_settime, timer_gettime - arm/disarm and fetch state of POSIX per-process timer
SYNOPSIS
#include <time.h>
int timer_settime(timer_t timerid, int flags,
const struct itimerspec *new_value,
struct itimerspec *old_value);
int timer_gettime(timer_t timerid, struct itimerspec *curr_value);
...
ERRORS
...
EINVAL timerid is invalid.
Signed-off-by: chao an <anchao@xiaomi.com>
modify the return value according to posix standard
------------
SCHED_GET_PRIORITY_MAX(2)
NAME
sched_get_priority_max, sched_get_priority_min - get static priority range
RETURN VALUE
On success, sched_get_priority_max() and sched_get_priority_min() return the
maximum/minimum priority value for the named scheduling policy.
On error, -1 is returned, and errno is set appropriately.
ERRORS
EINVAL The argument policy does not identify a defined scheduling policy.
Signed-off-by: chao an <anchao@xiaomi.com>
devif/ipv6_input.c: In function 'ipv6_input':
devif/ipv6_input.c:59:33: error: 'TCPIPv6BUF' undeclared (first use in this function); did you mean 'IPv6BUF'?
59 | #define PAYLOAD ((FAR uint8_t *)TCPIPv6BUF)
| ^~~~~~~~~~
devif/ipv6_input.c:302:14: note: in expansion of macro 'PAYLOAD'
302 | payload = PAYLOAD; /* Assume payload starts right after IPv6 header */
|
Signed-off-by: chao an <anchao@xiaomi.com>
api_edrx->enable > LTE_ENABLE)
~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
Error: modem/alt1250/altcom_hdlr.c:901:24: error: result of comparison of constant 0 with expression of type 'bool' is always false [-Werror,-Wtautological-constant-compare]
if (api_edrx->enable < LTE_DISABLE ||
~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
cxd56_set_volume(CXD56_AUDIO_VOLID_MIXER_OUT, dev->volume);
~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: audio/cxd56.c:2735:34: error: implicit conversion from enumeration type 'enum cxd56_audio_volid_e' to different enumeration type 'enum cxd56_vol_id_e' [-Werror,-Wenum-conversion]
cxd56_set_volume(CXD56_AUDIO_VOLID_MIXER_OUT, priv->volume);
~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: audio/cxd56.c:2736:34: error: implicit conversion from enumeration type 'enum cxd56_audio_volid_e' to different enumeration type 'enum cxd56_vol_id_e' [-Werror,-Wenum-conversion]
cxd56_set_volume(CXD56_AUDIO_VOLID_MIXER_IN1, 0);
~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: audio/cxd56.c:2737:34: error: implicit conversion from enumeration type 'enum cxd56_audio_volid_e' to different enumeration type 'enum cxd56_vol_id_e' [-Werror,-Wenum-conversion]
cxd56_set_volume(CXD56_AUDIO_VOLID_MIXER_IN2, 0);
~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: audio/cxd56.c:2755:34: error: implicit conversion from enumeration type 'enum cxd56_audio_volid_e' to different enumeration type 'enum cxd56_vol_id_e' [-Werror,-Wenum-conversion]
cxd56_set_volume(CXD56_AUDIO_VOLID_MIXER_OUT,
~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: audio/cxd56.c:2757:34: error: implicit conversion from enumeration type 'enum cxd56_audio_volid_e' to different enumeration type 'enum cxd56_vol_id_e' [-Werror,-Wenum-conversion]
cxd56_set_volume(CXD56_AUDIO_VOLID_MIXER_IN1,
~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: audio/cxd56.c:2759:34: error: implicit conversion from enumeration type 'enum cxd56_audio_volid_e' to different enumeration type 'enum cxd56_vol_id_e' [-Werror,-Wenum-conversion]
cxd56_set_volume(CXD56_AUDIO_VOLID_MIXER_IN2,
~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: audio/cxd56.c:2764:34: error: implicit conversion from enumeration type 'enum cxd56_audio_volid_e' to different enumeration type 'enum cxd56_vol_id_e' [-Werror,-Wenum-conversion]
cxd56_set_volume(CXD56_AUDIO_VOLID_MIXER_OUT, priv->volume);
~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: audio/cxd56.c:2765:34: error: implicit conversion from enumeration type 'enum cxd56_audio_volid_e' to different enumeration type 'enum cxd56_vol_id_e' [-Werror,-Wenum-conversion]
cxd56_set_volume(CXD56_AUDIO_VOLID_MIXER_IN1, 0);
~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: audio/cxd56.c:2766:34: error: implicit conversion from enumeration type 'enum cxd56_audio_volid_e' to different enumeration type 'enum cxd56_vol_id_e' [-Werror,-Wenum-conversion]
cxd56_set_volume(CXD56_AUDIO_VOLID_MIXER_IN2, 0);
~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>