Alin Jerpelea
286d37026c
drivers: migrate to SPDX identifier
...
Most tools used for compliance and SBOM generation use SPDX identifiers
This change brings us a step closer to an easy SBOM generation.
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2024-11-06 18:02:25 +08:00
wangyongrong
8e799ff823
rpmsg: upgrade API passing on parameters with the upgrade of OpenAMP
...
All the rpmsg transport layer and rpmsg services sync the API
with new OpenAMP
Signed-off-by: wangyongrong <wangyongrong@xiaomi.com>
2024-10-09 23:32:58 +08:00
chao an
4195851845
drivers/rpmsg: replace metal_list_for_each to safety version
...
replace metal_list_for_each to safety version to avoid invalid access to deleted node in destory flow
Signed-off-by: chao an <anchao@lixiang.com>
2024-09-26 08:36:14 +08:00
wangjianyu3
73b7128fb6
drivers/rpmsg: Fix a typo error of rpmsg_device_destory()
...
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-09-25 01:51:18 +08:00
wangjianyu3
b8029d28a3
drivers/rpmsg: Using safe list iterating in rpmsg_device_created()
...
To fix list access after delete error
Test:
/* Export */
rpmsgdev_export("SERVER", "/dev/DEVNAME");
/* Register */
rpmsgdev_register("CLIENT", "/dev/DEVNAME", "/dev/server-DEVNAME", 0);
Log:
[ap] kasan_report: kasan detected a read access error, address at 0x40b7ae78,size is 8, return address: 0x402a3c50
[ap] kasan_show_memory: Shadow bytes around the buggy address:
[ap] kasan_show_memory: 0x40b7ae20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ap] kasan_show_memory: 0x40b7ae30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ap] kasan_show_memory: 0x40b7ae40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ap] kasan_show_memory: 0x40b7ae50: 20 af b7 40 00 00 00 00 c0 17 2a 40 00 00 00 00
[ap] kasan_show_memory: 0x40b7ae60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ap] kasan_show_memory: 0x40b7ae70: 00 00 00 00 00 00 00 00[b0 f7 b3 40 00 00 00 00]
[ap] kasan_show_memory: 0x40b7ae80: c8 48 b8 40 00 00 00 00 00 00 00 00 00 00 00 00
[ap] kasan_show_memory: 0x40b7ae90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ap] kasan_show_memory: 0x40b7aea0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ap] kasan_show_memory: 0x40b7aeb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
$ addr2line -fe nuttx/nuttx 0x402a3c50
rpmsg_device_created
/workspace/nuttx/drivers/rpmsg/rpmsg.c:395 (discriminator 2)
Reported by rongyichang@xiaomi.com
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-09-25 01:51:18 +08:00
Bowen Wang
ab47465dd5
drivers/rpmsg: add get_local_cpuname to rpmsg ops
...
Add get_local_cpuname to the rpmsg framework ops to support communicate
with the same remote core with multi rpmsg transport.
Some rpmsg services will send local cpu name to remote core and then let
remote core to connect local core by using this cpu name, when there are
multi rpmsg channels with same remote core, the remote core may connect
to incorrect core, so use the error rpmsg channel.
For example, there are two rpmsg channels between ap and audio:
ap core audio core
[ap1] <-- rpmsg virtio1 --> [audio1]
[ap2] <-- rpmsg virtio2 --> [audio2]
When we want to use the rpmsg virtio1 to communicate, ap core may send
local cpuname "ap2" to audio, so the audio core use remote cpu "ap2" to
connect with ap, and resulting in the use of incorrect rpmsg channel.
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2024-09-17 01:55:51 +08:00
yintao
38af7001b6
drivers/rpmsg: fix the race condtion about rpmsg_device_created
...
xxx_rpmsg_device_created may be called repeatedly.
rptun thread app thread
rptun_dev_start xxx_rpmsg_init
... rpmsg_register_callback
priv->...= rpmsg_ns_unbind;
priv->..= rptun_notify_wait;
if (ns_unbind_cb)
(switch app thread) device_created()
xxx_rpmsg_device_created
metal_list_add_tail(g_cb);
...
rpmsg_device_created();
cb->device_created
xxx_rpmsg_device_created;
Signed-off-by: yintao <yintao@xiaomi.com>
2024-09-14 17:34:52 +08:00
Bowen Wang
1f96a0b5e9
drivers/rpmsg: fix recursive assert when call rpmsg_dump_all() in irq
...
Because call mutex lock is forbidden in interrupt.
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2024-09-14 17:34:52 +08:00
Xiang Xiao
56745e300a
rpmsg: Reformat drivers/rpmsg/rpmsg.c
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2024-08-27 01:48:16 +08:00
Yongrong Wang
88ec55f6af
rpmsg.c: move onceinit judge logic to common part
...
move rptun/rpmsg_virtio onceinit judge logic to rpmsg_register.
Signed-off-by: Yongrong Wang <wangyongrong@xiaomi.com>
2024-08-27 01:48:16 +08:00
wangyongrong
10a8c2be92
rptun ioctl: Strip rpmsg ioctl and rptun ioctl.
...
rptun ioctl only handle RPTUNIOC_START, RPTUNIOC_STOP, RPTUNIOC_RESET,
rpmsg ioctl handles the public ioctl commands part.
Signed-off-by: wangyongrong <wangyongrong@xiaomi.com>
2024-02-19 02:15:45 -08:00
wangyongrong
ce832c6377
rptun_ping: Strip rptun_ping out of rptun and rename to rpmsg_ping
...
It should be possible to use ping without rptun being enabled, so striped rptun_ping out of rptun and rename to rpmsg_ping.
Signed-off-by: wangyongrong <wangyongrong@xiaomi.com>
2024-01-30 04:08:59 -08:00
wangyongrong
5651612f45
rptun: extract rptun char to rpmsg/rpmsg.c
...
Signed-off-by: wangyongrong <wangyongrong@xiaomi.com>
2024-01-26 00:42:28 -08:00
wangyongrong
5018964155
rpmsgfs: decoupling rpmsgfs server and rpmsg virtio.
...
create a new general api to make rpmsgfs work with virtio/spi/uart transport.
Signed-off-by: wangyongrong <wangyongrong@xiaomi.com>
2024-01-24 06:52:13 -08:00
wangyongrong
7508a10e20
rptun: Strip rpmsg and rptun
...
nuttx/driver/rpmsg: new folder, extract common rpmsg api in rptun.c to rpmsg.c.
rpmsg provide rpmsg_ops to each backend for specific implementation.
Signed-off-by: wangyongrong <wangyongrong@xiaomi.com>
2024-01-16 15:58:32 +01:00